๋ฐ์ดํฐ๋ฒ ์ด์ค VS DBMS
Oracle, MySQL๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํํธ์จ์ด๋ฅผ '๋ฐ์ดํฐ๋ฒ ์ด์ค'๋ผ๊ณ ํํ ๋ถ๋ฅด๋๋ฐ ์ ํํ ๊ตฌ๋ถํ์๋ฉด DBMS(DataBase Management System)๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํํธ์จ์ด๋ฅผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ DBMS๋ก ์์ฑ๋๊ณ ์กฐ์๋๋ ์ ์ฅ๊ณต๊ฐ์ ๋งํ๋ค.
RDB(Relational Database)๋ DBMS์ ์ผ์ข ์ด๋ค. Oracle, Microsoft SQL Server, DB2, PostgreSQL, MySQL ๋ฑ์ด ๋ง์ด ์ฌ์ฉ๋๋ค. ์ด RDB๋ ๊ฐ๊ฐ์ ํน์ง์ด ์๊ณ ๋ด๋ถ ์ํคํ ์ฒ๊ฐ ์กฐ๊ธ์ฉ ๋ค๋ฅด์ง๋ง ๊ฒฐ๊ตญ RDB๋ก์จ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ ๋ชฉ์ ์ ๋ชจ๋ ๋์ผํ๋ฏ๋ก ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ ์ ์ฌํ๋ค.
DBMS ์ํคํ ์ฒ
์ฌ์ฉ์(์ดํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์, ๊ฐ๋ฐ์)์๊ฒ์ ์ ๋ ฅ๋ SQL ๊ตฌ๋ฌธ์ ์ค๊ฐ์ ์๋ DBMS๋ฅผ ํตํด ๋ค์ํ ์ฒ๋ฆฌ๊ฐ ์ํ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฅ์ฅ์น์ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ด๋ค.
DBMS ๋ด๋ถ ๊ธฐ๋ฅ์ ๋ํด ๊ฐ๋จํ ์์๋ณด์.
โช๏ธ ์ฟผ๋ฆฌ ํ๊ฐ ์์ง๊ณผ ์คํ ๊ณํ(์คํ ํ๋) ๊ทธ๋ฆฌ๊ณ ์ ๊ทผ ๋ฉ์๋
์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ SQL ๊ตฌ๋ฌธ์ ๋ถ์ํ๊ณ ์ด๋ค ์์๋ก ๊ธฐ์ต์ฅ์น์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ง ๊ฒฐ์ ํ๋ค. ์ด๋ ๊ฒฐ์ ๋๋ ๊ณํ์ ์คํ ๊ณํ(Explain Plan)์ด๋ผ ํ๋ค. ์ด๋ฌํ ์คํ ๊ณํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ ๊ทผ ๋ฉ์๋(Access Method)๋ผ ํ๋ค.
์ฆ, ์ฟผ๋ฆฌ ํ๊ฐ ์์ง์ ์คํ ๊ณํ์ ์ธ์ฐ๊ณ ์คํํ๋ DBMS์ ํต์ฌ ๋ชจ๋์ด๋ฉฐ ์ฑ๋ฅ๊ณผ๋ ๊น์ ๊ด๋ จ์ด ์๋ค.
โช๏ธ ๋ฒํผ ๋งค๋์
DBMS๋ ๋ฒํผ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ๋ณดํด๋๋๋ฐ ์ด ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ฒํผ ๋งค๋์ ์ด๋ค. ๋์คํฌ ์ฉ๋ ๋งค๋์ ์ ์ฐ๋๋์ด ์๋ํ๋ค. ์ฟผ๋ฆฌ ํ๊ฐ ์์ง๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฑ๋ฅ๊ณผ ๊ด๋ จ์ด ์๋ค.
โช๏ธ ๋์คํฌ ์ฉ๋ ๋งค๋์
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์์ ์ค ๊ฐ์ฅ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ํํธ์จ์ด์ด๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ์คํ๋๋ ๋์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ๋์ง๋ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํด์ผ ํ๋ค.
๋์คํฌ ์ฉ๋ ๋งค๋์ ๋ ์ด๋์ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ง ๊ด๋ฆฌํ๊ณ ๋ฐ์ดํฐ์ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ์ ์ดํ๋ค.
โช๏ธ ํธ๋์ญ์ ๋งค๋์ ์ ๋ฝ ๋งค๋์
์์ฉ ์์คํ ์์๋ ์๋ฐฑ~์์ฒ๋ช ํน์ ๊ทธ ์ด์์ ์ฌ์ฉ์๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋ค. ์ด ๋ ๊ฐ๊ฐ์ ์ฒ๋ฆฌ๋ DBMS ๋ด๋ถ์์ ํธ๋์ญ์ ๋จ์๋ก ๊ด๋ฆฌ๋๋ค. ์ด๋ฌํ ํธ๋์ญ์ ์ ์ ํฉ์ฑ์ ์ ์งํ๋ฉด์ ์คํํ๊ณ ํ์์ ๋ฐ์ดํฐ์ ๋ฝ์ ๊ฑธ์ด ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ฒญ์ ๋๊ธฐํ๋ ๊ฒ์ด ํธ๋์ญ์ ๋งค๋์ ์ ๋ฝ ๋งค๋์ ์ ์ญํ ์ด๋ค. ์ด๋ ์ฌ๋ฌ SQL์ ๋์์ ์คํํ ๋ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ๋ฉ์ปค๋์ฆ์ด๋ค.
โช๏ธ ๋ฆฌ์ปค๋ฒ๋ฆฌ ๋งค๋์
์์คํ ์ ์ธ์ ๋ ์ฅ์ ๊ฐ ๋ฐ์ํ ์ ์๊ณ DB์ ๋ฐ์ดํฐ ์ค์๋ ์ ๋ ์ ์ค๋๋ฉด ์๋๋ ๋ฐ์ดํฐ๊ฐ ์๋ค. ๋ฆฌ์ปค๋ฒ๋ฆฌ ๋งค๋์ ๋ ์ฅ์ ๋ฐ ๋ฐ์ดํฐ ์ ์ค์ ๋๋นํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๋ฐฑ์ ํ๊ณ ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.
ํ ์ด๋ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กด์ฌํ๋ ํน์ ํ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ตฌ์กฐ์ฒด
ํ์ ๋ฆฌ์คํธ, ์ํ ์นดํ๋ก๊ทธ ๋ฆฌ์คํธ ๋ฑ์ ์ ์ฅํ๋ ํ ์ด๋ธ์ ์๋ก ๋ค ์ ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ๋ค์ ๊ณ ์ ํ ์ด๋ฆ์ ๊ฐ์ง๋ค. ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๊ฐ์ ์ด๋ฆ์ ํ ์ด๋ธ์ด ์กด์ฌํ ์ ์๋ค.
์คํค๋ง
์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ ์๋์ง, ์ด๋ป๊ฒ ๋๋๋์ง, ๊ฐ ์ ๋ณด๊ฐ ์ด๋ค ์ด๋ฆ์ ๊ฐ๋์ง ๋ฑ์ ์ ๋ณด ์งํฉ์ ์คํค๋ง๋ผ๊ณ ํ๋ค. ์คํค๋ง๋ผ๋ ๊ฐ๋ ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ ์ด๋ธ, ํ ์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋๋ฐ ์ฌ์ฉํ๋ค. ์ฆ ์คํค๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ๊ตฌ์กฐ, ์์ฑ์ ๋ํ ์ ๋ณด์ด๋ค.
์ปฌ๋ผ
ํ ์ด๋ธ์ ํ๋ ์ด์์ ์ปฌ๋ผ(Column)์ผ๋ก ๊ตฌ์ฑ๋๊ณ ์ปฌ๋ผ์ ํ ์ด๋ธ ๋ด์์ ํน์ ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ํ๋๋ผ๊ณ ๋ ํํํ๋ค.
์๋ฅผ ๋ค์ด ํ์ ํ ์ด๋ธ์ ํ์ ๋ฒํธ ์ปฌ๋ผ, ํ์ ์ด๋ฆ ์ปฌ๋ผ, ํ์ ์ฃผ์ ์ปฌ๋ผ ๋ฑ์ด ์์ ์ ์๋ค.
์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋๋์ด ๋ฃ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๋ค. ์ฃผ์๋ผ๋ ์ ๋ณด๋ฅผ ์๋ฅผ ๋ค๋ฉด ์, ๊ตฌ, ๋, ์ฐํธ๋ฒํธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ ๋ค๋ฅธ ์ปฌ๋ผ์ผ๋ก ๋๋ ์ ์ฅํด์ผ ์ด ์ค ํน์ ์ปฌ๋ผ์ผ๋ก ์ ๋ ฌํ๊ฑฐ๋ ์ฟผ๋ฆฌํ ์ ์๋ค.
์ปฌ๋ผ์ ์ผ๋ง๋ ์๊ฒ ๋๋ ๊ฒ์ธ๊ฐ ํ๋ ๊ฒ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ๊ทธ ๊ธฐ์ค ์ค ํ๋๊ฐ ์ ๋ ฌ์ ํ์์ฑ์ด๋ค.
๋ฐ์ดํฐ ํ์
ํ ์ด๋ธ์ ๊ฐ ์ปฌ๋ผ์ ์ปฌ๋ผ์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ์ ํ์ ์ ์ํ๋ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ๋๋ค. ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ ๋ง๋ ๋ฐ์ดํฐ๋ง ์ ์ฅ์ด ํ์ฉ๋๋ฉฐ ๊ทธ ์ธ๋ ์ ํ๋๋ค. ์๋ฅผ ๋ค๋ฉด ์ซ์ ํ์ ์ปฌ๋ผ์ ๋ฌธ์ ๊ฐ์ ๋ฃ์ ์ ์๋ค.
๋ฐ์ดํฐ ํ์ ์ ๋ฐ์ดํฐ๊ฐ ๋๋ฐ๋ก ์ ๋ ฅ๋๊ฒ ํ๊ณ ๋์คํฌ ์ฌ์ฉ๋์ ์ต์ ํํ๋๋ฐ ์ค์ํ ์ญํ ์ ํ๋ฏ๋ก ํ ์ด๋ธ ์์ฑ ์ ์ ์ ํ ๋ฐ์ดํฐ ํ์ ์ ์ง์ ํ๋ค.
ํ(Row)
ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ ํ(row)์ผ๋ก ์ ์ฅ๋๋ค. ํ ์ด๋ธ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ = ๋ ์ฝ๋๋ ๊ฐ๊ฐ์ ํ์ ์ ์ฅ๋๋ค.
์๋ฅผ ๋ค์ด ํ์ ํ ์ด๋ธ์ ํ ํ์๋ ํ ๋ช ์ ํ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
์ฃผ ํค(PK, Primary Key)
์ฃผ ํค(PK, Primary Key)๋ ํ ์ด๋ธ์ ๊ฐ ํ์ ๊ตฌ๋ณํ ์ ์๋ ์ปฌ๋ผ(๋๋ ์ปฌ๋ผ ์งํฉ)์ด๋ค.(์ดํ PK)
์๋ฅผ ๋ค์ด ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ๊ฐ์ง ์ฃผ๋ฌธ ํ ์ด๋ธ์ ์ฃผ๋ฌธ ID ์ปฌ๋ผ์ PK๋ก ์ฌ์ฉํ ์ ์๋ค.
PK๋ ํน์ ํ์ ์ฐธ์กฐํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ค.
PK๋ ํญ์ ์ ์๋์ด์ผ ํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ํ ์ด๋ธ์ PK๋ฅผ ์ ์ํด์ ๋ฐ์ดํฐ ์กฐ์, ๊ด๋ฆฌ๋ฅผ ๋ณด์ฅํ ์ ์์ด์ผ ํ๋ค.
PK ์กฐ๊ฑด
๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ปฌ๋ผ์ PK๊ฐ ๋ ์ ์๋ค.
- ๊ฐ์ PK ๊ฐ์ ๊ฐ๋ ํ์ด 1๊ฐ๋ง ์กด์ฌํ๋ค. (Unique)
- ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค. (Not Null)
- ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์๋ค.
- ๊ฐ์ด ์ฌ์ฌ์ฉ๋ ์ ์๋ค. (๋จ, ์ญ์ ๋ ํ์ ๊ฐ์ ์ถํ ์ฌ์ฌ์ฉ๋ ์๋ ์๋ค.)
์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ด PK๋ก ์ ์๋ ์๋ ์๋๋ฐ ์ด ๊ฒฝ์ฐ ๊ฐ ๊ฐ๋ณ ์ปฌ๋ผ์ด ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง ํ์๋ ์๋ค.
SQL
SQL์ ๊ตฌ์กฐํ๋ ์ง์ ์ธ์ด(Structured Query Language)๋ก ์์คํ์ ๋๋ ์ํ์ด๋ผ๊ณ ๋ฐ์ํ๋ค.
SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํตํ๊ฒ์ํด ๊ณ ์๋ ์ธ์ด์ด๋ค.
SQL์ ์ฒซ ๋ฒ์งธ ๋ชฉ์ ์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ๊ฒ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํ๋ ๊ฒ์ด๋ค.
ํ์ค SQL(ANSI SQL)
๋ง์ DBMS์ ์์ ์ ์์คํ ์ ๊ณ ์ ํ SQL ๊ตฌ๋ฌธ, ์ง์์ด๊ฐ ์๋๋ฐ ์ด๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๊ธฐ๋ ํ์ง๋ง ํด๋น DBMS์ ์์กด์ ์ด๊ณ ๋ค๋ฅธ DBMS์ ํธํ๋์ง ์๋๋ค๋ ๋จ์ ์ด ์๋ค. ํ์ค SQL์ ANSI ํ์ค ์์ํ์์ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ANSI SQL์ด๋ผ๊ณ ํ๋ค. ๋ํ DBMS๋ ๋ชจ๋ ANSI SQL์ ์ง์ํ๋ค. ํ์ฅ๋ SQL์ผ๋ก๋ PL-SQL, Transact-SQL ๋ฑ์ด ์๋ค.
SQL VS Query
์ฟผ๋ฆฌ๋ ์ข์ ์๋ฏธ๋ก๋ SQL์ SELECT ๊ตฌ๋ฌธ์, ๋์ ์๋ฏธ๋ก๋ SQL ์ ์ฒด๋ฅผ ์๋ฏธํ๋ค.
Commit
Commit์ด๋ INSERT, DELETE, UPDATE์ ๊ฐ์ ๊ฐฑ์ ์ฒ๋ฆฌ๋ฅผ 'ํ์ 'ํ๋ ๊ฒ์ด๋ค. DBMS๋ commit๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์์ํํ๋ค.
๐ ์ฐธ๊ณ ์์
- ์์ ์กํ๋ 10๋ถ SQL
- SQL ๋ ๋ฒจ์
'DatabaseยทSQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Redis] โRDBโ ํฌ๋งท์ ํ์ผ์ ๋ด์ฉ์ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ (0) | 2023.03.07 |
---|---|
DBMS์ ๊ธฐ์ต์ฅ์น์ ๊ด๊ณ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ (0) | 2021.09.28 |
Oracle WITH ๊ตฌ๋ฌธ์ MySQL๋ก ๋ณํํ๊ธฐ (0) | 2020.12.08 |
MySQL Workbench ์ฌ์ฉ ์ค Error: DBMS connection is not available (0) | 2020.12.07 |
Oracle์ TO_CHAR ํจ์์ ๋์๋๋ MySQL ํจ์ (2) | 2020.12.06 |
๋๊ธ