Oracle๊ณผ MySQL์ ์ฐจ์ด์
๐ 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 ํ๊ฒฝ์์๋ ์ค์น๊ฐ ๊ฐ๋ฅ
๐ ๊ตฌ๋ฌธ์ ์ฐจ์ด
- Null ๊ฐ ํ์ธ ํจ์
- Oracle: NVL
- MySQL: IFNULL
- ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ ํ์ธ ํจ์
- Oracle: SYSDATE
- MySQL: DATE()
- ๋ ์ง ํฌ๋ฉง ๋ณํ
- Oracle: TO_CHAR
- MySQL: DATE_FORMAT
- ์์ผ ๋ณํ์ ์ซ์ ๋ฒ์
- Oracle: ์ผ,์,ํ,์,๋ชฉ,๊ธ,ํ ๋ฅผ 1,2,3,4,5,6,7๋ก ์ธ์
- MySQL: ์ผ,์,ํ,์,๋ชฉ,๊ธ,ํ ๋ฅผ 0, 1,2,3,4,5,6๋ก ์ธ์
- ๋ฌธ์์ ๋ฌธ์ ํฉ์น๋ ๋ฐฉ๋ฒ
- Oracle: ' '
- MySQL: COMCAT
- ํ๋ณํ ๋ฐฉ๋ฒ
- Oracle: TO_CHAR
- MySQL: CAST
- ํ์ด์ง ์ฒ๋ฆฌ
- Oracle: ROWNU BETWEEN 0 AND 10
- MySQL: LIMIT
- ์ํ์ค ์ฌ์ฉ์ ๋ค์ ๋ฒํธ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ
- Oracle: ์ํ์ค๋ช .NEXTVAL
- MySQL: ์ํ์ค๋ช
.CURRVAL
๐ 5. ๋ง๋ฌด๋ฆฌ
๋๋ค ๊น์ด ์ฌ์ฉ์ ์ํด๋ดค์ง๋ง, ๊ฒํก๊ธฐ์์ผ๋ก ์ฌ์ฉํด๋ณธ ๊ฒฐ๊ณผ ํ์คํ MySQL์ด ์ด๋ณด์๊ฐ ์ฌ์ฉํ๊ธฐ ํธํ๋ค. ๋ด๊ฐ ์๊ฐ๋์์ธ์ ์ ๊ณตํด์ ๊ทธ๋ฐ์ง ๋ชฐ๋ผ๋ UI/UX๊ฐ ํจ์ฌ ์ข๋ค. ์กฐ์ฌํด๋ณด๋ ์ค๋ผํด์ด ํจ์ฌ ๊ธฐ๋ฅ์ ์ธ ๋ฉด์์ ์ฐ์ํด ๋ณด์ด์ง๋ง, UI/UX๊ฐ ๊ทธ๋ฆฌ ์ข์ง ๋ชปํด์ ์ ๋ป ์ฌ์ฉํ๊ธฐ ์ด๋ ค์๋ณด์ธ๋ค. ํ์ง๋ง ํฐ ํธ๋ํฝ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋๊ธฐ์
์์ ์ค๋ผํด์ ์ฌ์ฉํ๋ค๊ณ ํ๋ ์ต์ํด์ง๋๋ก ๋
ธ๋ ฅํด์ผ๊ฒ ๋ค.