๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

Oracle๊ณผ MySQL์˜ ์ฐจ์ด์ 

by hhenyy 2024. 2. 7.
 

๐Ÿ“Œ 1. Oracle vs MySQL


๐Ÿ“Ž Intro: DB(Data Base)๋ž€?

์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์— ์˜ํ•ด ๊ณต์œ ๋˜์–ด ์‚ฌ์šฉ๋  ๋ชฉ์ ์œผ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์ž๋ฃŒ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ €์žฅํ•จ์œผ๋กœ์จ ์ž๋ฃŒ ๊ฒ€์ƒ‰๊ณผ ๊ฐฑ์‹ ์˜ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Ž Oracle๊ณผ MySQL

๋ฐฑ์—”๋“œ๋ฅผ ๋ฐฐ์šฐ๋‹ค๋ณด๋ฉด DB๋Š” ๋ฐ˜๋“œ์‹œ ๋ฐฐ์›Œ์•ผํ•˜๋Š” ์กด์žฌ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” DB๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ๋„ Oracle๊ณผ MySQL์„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

ํŠนํžˆ ๋ˆ์ด ์ ๊ฑฐ๋‚˜ ์ค‘์†Œ๊ธฐ์—…๋“ค์€ ๋Œ€์ฒด๋กœ MySQL์„ ์„ ํ˜ธํ•˜๊ณ , ์ถฉ๋ถ„ํ•œ ์˜ˆ์‚ฐ๊ณผ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ํฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€๊ธฐ์—…์€ ๋Œ€์ฒด๋กœ Oracle์„ ์„ ํ˜ธํ•œ๋‹ค.

์‹ค์ œ๋กœ ๋‚˜๋„ ํ•™์›์—์„œ ๋ฐฐ์šธ๋•Œ, MySQL→Oracle์ˆœ์œผ๋กœ DB๋ฅผ ๋ฐฐ์šธ๋งŒํผ ๋‘๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์€ ํ˜„์—…์—์„œ ์†๊ผฝํžˆ๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” DBํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ทธ ์™ธ์—๋„ SQLite, DBeaver, MariaDB๋“ฑ ๋งŽ์€ ์ข…๋ฅ˜์˜ ๊ด€๋ฆฌ ํˆด์ด ์กด์žฌํ•˜์ง€๋งŒ ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋จผ์ € ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์ข‹์„ ๋“ฏํ•˜๋‹ค.

์˜ค๋Š˜์€ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” 2๊ฐ€์ง€ DB๊ด€๋ฆฌ ํˆด์— ๋Œ€ํ•ด ๋‘๋“œ๋Ÿฌ์ง€๋Š” ํŠน์ง•๊ณผ ๋ฌธ๋ฒ•์ ์ธ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฉด์ ‘์—๋„ ๋งŽ์ด ๋‚˜์˜ฌ ์งˆ๋ฌธ์ผ ๊ฒƒ ๊ฐ™๊ณ , ์ •๋ฆฌํ•ด๋‘๋ฉด ํ™•์‹คํ•˜๊ฒŒ ๋ฌธ๋ฒ•์  ์ฐจ์ด๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.


๐Ÿ“Œ 2. Oracle


๐Ÿ“Ž ์˜ค๋ผํด(Oracle)์ด๋ž€?

์˜ค๋ผํด์ด๋ž€ ๋ฏธ๊ตญ์˜ ์˜ค๋ผํด ํšŒ์‚ฌ์—์„œ ์ œ์ž‘ํ•œ ์„ธ๊ณ„ ์ ์œ ์œจ 1์œ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ฉฐ ํ˜„์žฌ ์œ ๋‹‰์Šค ์ฒด์ œ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” DBMS์ด๋‹ค.

๐Ÿ“Ž ์˜ค๋ผํด ์žฅ์ 

๐Ÿ‘‰ ๊ด€๋ฆฌ์‹œ์Šคํ…œ

  • Multiple databases ํŠœ๋‹ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ‘‰ ๋ณ€ํ™”๊ด€๋ฆฌ

  • ๋ณ€๊ฒฝ plan์„ ์ž‘์„ฑํ•˜๊ณ  ์‹ค์ œ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒ์‚ฐ ์‹œ์Šคํ…œ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋Š”๋‹ค.

๐Ÿ‘‰ ๊ฒฝ๊ณ 

  • ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ณ„์ • ๋ฐ ์ด๋ฉ”์ผ๋กœ ์—ฐ๋ฝ์ด ์˜จ๋‹ค.
  • ๊ฒฝ๊ณ ๋Š” ์—์ •๋œ ๊ฐ€์ข… ์ •์ง€ ์‹œ๊ฐ„ ๋™์•ˆ ์ฐจ๋‹จ ๋  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

  • DBMS ์‹คํ–‰ ์ปดํ“จํ„ฐ / ์„œ๋ฒ„ ์—ญํ•  ์ปดํ“จํ„ฐ / DB ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ปดํ“จํ„ฐ ๋‹ค๋ฅด๊ฒŒ ๋ถ„์‚ฐ์ฒ˜๋ฆฌํ•œ๋‹ค.

๐Ÿ‘‰ ์šฉ๋Ÿ‰&์ฒ˜๋ฆฌ

  • ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ๊ณ ์„ฑ๋Šฅ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • Cost ๋น„์šฉ์„ ์ตœ์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”๊ณผ ์ธ๋ฑ์Šค๋ฅผ ๋ถ„์„ํ•œ๋‹ค.

๐Ÿ“Ž ์˜ค๋ผํด ๋‹จ์ 

๐Ÿ‘‰ ๋น„์šฉ์ ์ธ ๋ถ€๋‹ด ์ฆ๊ฐ€
๐Ÿ‘‰ ๊ธฐ๋Šฅ์ด ๋งŽ์•„ ์ดˆ๋ณด์ž์—๊ฒŒ ์–ด๋ ค์›€
๐Ÿ‘‰ ๋†’์€ ์ง€์› ํ•˜๋“œ์›จ์–ด ์‚ฌ์–‘์ด ํ•„์š”ํ•จ


๐Ÿ“Œ 3. MySQL


๐Ÿ“Ž MySQL ์ด๋ž€?

MySQL์€ ์ „์„ธ๊ณ„์ ์œผ๋กœ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉฐ, MySQL AB์‚ฌ๊ฐ€ ๊ฐœ๋ฐœํ•˜์—ฌ ๋ฐฐํฌ ๋ฐ ํŒ๋งคํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌํˆด์ด๋‹ค.

๐Ÿ“Ž MySQL ์žฅ์ 

๐Ÿ‘‰ ์šฉ๋Ÿ‰&์ฒ˜๋ฆฌ

  • MySQL์€ ์˜ค์ง 1MB์˜ RAM๋งŒ ์‚ฌ์šฉํ• ๋งŒํผ ์šฉ๋Ÿ‰ ์ฐจ์ง€๊ฐ€ ์ ๋‹ค = ๋งค์šฐ ์ ์€ ์˜ค๋ฒ„ ํ—ค๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์šฉ์ดํ•˜๋‹ค.

๐Ÿ‘‰ ์ ‘๊ทผ์„ฑ

  • ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ํˆด์— ๋น„ํ•ด ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์‰ฝ๋‹ค.

๐Ÿ‘‰ ์ง€์›

  • ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฑฐ์˜ ๋ชจ๋“  ์šด์˜์ฒด์ œ ์‚ฌ์šฉ์„ ์ง€์›ํ•œ๋‹ค.

๐Ÿ‘‰ ์œ ์—ฐ์„ฑ

  • ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ์ด๋‹ค.

๐Ÿ‘‰ ๊ฐ€๊ฒฉ

  • MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฌด๋ฃŒ๋ผ์„œ ๋น„์šฉ์ ์ธ ๋ถ€๋‹ด์ด ์ ๋‹ค.
  • ์˜คํ”ˆ์†Œ์Šค๋Š” ๋ฌด๋ฃŒ, ์ƒ์—…์šฉ์€ ์œ ๋ฃŒ์ด๋‹ค.

๐Ÿ“Ž MySQL ๋‹จ์ 

๐Ÿ‘‰ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋Š” ์„ฑ๋Šฅ ์ €ํ•˜
๐Ÿ‘‰ ํŠธ๋žœ์žญ์…˜ ์ง€์›์ด ์™„๋ฒฝํ•˜์ง€ ์•Š์Œ
๐Ÿ‘‰ ์‚ฌ์šฉ์ž์ •์˜ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์ด ์‰ฝ์ง€ ์•Š๊ณ  ์œ ์—ฐํ•˜์ง€ ์•Š์Œ


๐Ÿ“Œ 4. ์ฐจ์ด์ 


๐Ÿ“Ž ๊ตฌ์กฐ์  ์ฐจ์ด

๐Ÿ‘‰ Oracle: DB ์„œ๋ฒ„๊ฐ€ ํ†ตํ•ฉ๋œ ํ•˜๋‚˜์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹
๐Ÿ‘‰ MySQL: DB ์„œ๋ฒ„๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹

๐Ÿ“Ž ์กฐ์ธ ๋ฐฉ์‹์˜ ์ฐจ์ด

๐Ÿ‘‰ Oracle: ์ค‘์ฒฉ ๋ฃจํ”„ ์กฐ์ธ, ํ•ด์‹œ ์กฐ์ธ, ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ ๋ฐฉ์‹์„ ์ œ๊ณต
๐Ÿ‘‰ MySQL: ์ค‘์ฒฉ ๋ฃจํ”„ ์กฐ์ธ ๋ฐฉ์‹์„ ์ œ๊ณต

๐Ÿ“Ž ํ™•์žฅ์„ฑ์˜ ์ฐจ์ด

๐Ÿ‘‰ Oracle: ๋ณ„๋„์˜ DBMS์„ ์„ค์น˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ๐Ÿ‘‰ MySQL: ๋ณ„๋„์˜ DBMS์„ ์„ค์น˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“Ž ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์œจ์˜ ์ฐจ์ด

๐Ÿ‘‰ Oracle: ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์œจ์ด ์ปค์„œ ์ตœ์†Œ ์ˆ˜๋ฐฑMB ์ด์ƒ์ด ๋˜์–ด์•ผ ์„ค์น˜ ๊ฐ€๋Šฅ
๐Ÿ‘‰ MySQL: ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์œจ์ด ๋‚ฎ์•„์„œ 1MB ํ™˜๊ฒฝ์—์„œ๋„ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅ

๐Ÿ“Ž ๊ตฌ๋ฌธ์˜ ์ฐจ์ด

  1. Null ๊ฐ’ ํ™•์ธ ํ•จ์ˆ˜
  • Oracle: NVL
  • MySQL: IFNULL
  1. ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ํ™•์ธ ํ•จ์ˆ˜
  • Oracle: SYSDATE
  • MySQL: DATE()
  1. ๋‚ ์งœ ํฌ๋ฉง ๋ณ€ํ™˜
  • Oracle: TO_CHAR
  • MySQL: DATE_FORMAT
  1. ์š”์ผ ๋ณ€ํ™˜์˜ ์ˆซ์ž ๋ฒ”์œ„
  • Oracle: ์ผ,์›”,ํ™”,์ˆ˜,๋ชฉ,๊ธˆ,ํ† ๋ฅผ 1,2,3,4,5,6,7๋กœ ์ธ์‹
  • MySQL: ์ผ,์›”,ํ™”,์ˆ˜,๋ชฉ,๊ธˆ,ํ† ๋ฅผ 0, 1,2,3,4,5,6๋กœ ์ธ์‹
  1. ๋ฌธ์ž์™€ ๋ฌธ์ž ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•
  • Oracle: ' '
  • MySQL: COMCAT
  1. ํ˜•๋ณ€ํ™˜ ๋ฐฉ๋ฒ•
  • Oracle: TO_CHAR
  • MySQL: CAST
  1. ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ
  • Oracle: ROWNU BETWEEN 0 AND 10
  • MySQL: LIMIT
  1. ์‹œํ€€์Šค ์‚ฌ์šฉ์‹œ ๋‹ค์Œ ๋ฒˆํ˜ธ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•
  • Oracle: ์‹œํ€€์Šค๋ช….NEXTVAL
  • MySQL: ์‹œํ€€์Šค๋ช….CURRVAL


๐Ÿ“Œ 5. ๋งˆ๋ฌด๋ฆฌ


๋‘˜๋‹ค ๊นŠ์ด ์‚ฌ์šฉ์€ ์•ˆํ•ด๋ดค์ง€๋งŒ, ๊ฒ‰ํ•ก๊ธฐ์‹์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฐ๊ณผ ํ™•์‹คํžˆ MySQL์ด ์ดˆ๋ณด์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๋‹ค. ๋‚ด๊ฐ€ ์‹œ๊ฐ๋””์ž์ธ์„ ์ „๊ณตํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ๋ชฐ๋ผ๋„ UI/UX๊ฐ€ ํ›จ์”ฌ ์ข‹๋‹ค. ์กฐ์‚ฌํ•ด๋ณด๋‹ˆ ์˜ค๋ผํด์ด ํ›จ์”ฌ ๊ธฐ๋Šฅ์ ์ธ ๋ฉด์—์„œ ์šฐ์ˆ˜ํ•ด ๋ณด์ด์ง€๋งŒ, UI/UX๊ฐ€ ๊ทธ๋ฆฌ ์ข‹์ง€ ๋ชปํ•ด์„œ ์„ ๋œป ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ํฐ ํŠธ๋ž˜ํ”ฝ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋Œ€๊ธฐ์—…์—์„œ ์˜ค๋ผํด์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ต์ˆ™ํ•ด์ง€๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค.


๐Ÿ“– ์ฐธ๊ณ