๐ณDataBase
Last updated
Last updated
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ ๋ง๋๋ก ์ ์ํ๋ฉด โ๋ฐ์ดํฐ์ ์งํฉโ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ผ์์ํ ๋๋ถ๋ถ์ ์ ๋ณด๊ฐ ์ ์ฅ๋๊ณ ๊ด๋ฆฌ๋ฉ๋๋ค. ์ค๋ ๋ณด๋ด๊ฑฐ๋ ๋ฐ์ ์นด์นด์คํก ๋ฉ์์ง, ์ธ์คํ๊ทธ๋จ์ ๋ฑ๋กํ ์ฌ์ง, ์นดํ์์ ๊ตฌ๋งคํ ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ ๋ฑ์ ์ ๋ณด๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ก๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ โ๋ฐ์ดํฐ์ ์งํฉโ์ด๋ผ๊ณ ์ ์ํ๋ค๋ฉด, ์ด๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด์ํ๋ ์ํํธ์จ์ด๋ฅผ DBMS(Database Management System)๋ผ๊ณ ํฉ๋๋ค. ๋ค์ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๊ณต์ ํ๊ณ ๋์์ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
์๋ก ์ํ์ ์๊ธ ๊ณ์ข๋ ๋ง์ ์ฌ๋๋ค์ด ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ๋ฌ ๋ช ์ ์๊ธ ๊ณ์ข ์ ๋ณด๋ฅผ ๋ชจ์ ๋์ ๊ฒ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ์ํ์ด ๊ฐ์ง๊ณ ์๋ ์๊ธ ๊ณ์ข ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ฌ๋ฌ ๋ช ์ด ๋์์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์๊ธ ๊ณ์ข ์ฃผ์ธ, ์ํ ์ง์, ์ธํฐ๋ท ๋ฑ ํน, ATM ๊ธฐ๊ธฐ ๋ฑ์์ ๋ชจ๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๊น์. ์ด๋ฌํ ๊ฒ์ด ๊ฐ๋ฅํ ์ด์ ๋ ๋ฐ๋ก DBMS๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
DBMS์ ๊ฐ์ ์ํํธ์จ์ด๋ ํน์ ๋ชฉ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฌธ์๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์๋์ํ๊ธ(HWP)์ด๋ ์๋(Word), ํ ๊ณ์ฐ์ ์ํด์๋ ์์ (Excel)์ด๋ ์บํฌ(Calc), ๋ฉ์ง ์ฌ์ง์ ํธ์งํ๋ ค๋ฉด ํฌํ ์ต(PhotoShop)์ด๋ ๊นํ(Gimp)์ ๊ฐ์ ์ํํธ์จ์ด๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ํํธ์จ์ด, ์ฆ DBMS๋ฅผ ์ค์นํด์ผ ํ๋๋ฐ ๋ํ์ ์ผ๋ก MySQL, ์ค๋ผํด(Oracle), SQL ์๋ฒ, MariaDB ๋ฑ์ด ์์ต๋๋ค. ์ํํธ์จ์ด ๊ฐ๊ฐ์ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ํน์ง์ด ๋ค๋ฅด์ง๋ง ํน์ ๋ชฉ์ ์ ์ํด์๋ ์ด๋ค ๊ฒ์ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ ํํ๋ก ์ ์ฅํ๋ค.
์ฝ๊ฒ ์๊ฐํ๋ฉด ์์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค๊ณ ๋ณด๋ฉด๋๋ค.
์ค์ ๋ก ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ๋ค์ ํ(row)์ ์ ์ฅ๋๊ณ , ํญ๋ชฉ์ ์์ฑ์ ์ด(column)์ด๋ผ๊ณ ํํํ๋ค. ์ด์ ํญ๋ชฉ์ ์์ฑ์ธ ๋งํผ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์ ํ์ด ์ ํด์ง๋ค.
๊ฐ๊ฐ์ ์ด์ ์ ์ผํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์์ ๋ง์ ํ์ (number, string๋ฑ)์ ๊ฐ์ง๊ณ ์๋ค. ์ด์ ํ๋(field) ๋๋ ์์ฑ(attribute)์ด๋ผ๊ณ ๋ ํ๋ค.
ํ์ ๊ด๊ณ๋ ๋ฐ์ดํฐ์ ๋ฌถ์์ ์๋ฏธํ๋ค. ํ ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ๊ฐ์ ์์ ์ด์ ๊ฐ์ง๋ค. ํ์ ํํ(tuple)์ด๋ ๋ ์ฝ๋(record)๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
ํ ์ด๋ธ์ ๊ฐ๊ฐ์ ํ๊ณผ ์ด์ ๋์ํ๋ ๊ฐ์ ๊ฐ๋๋ค. ์ด ๊ฐ์ ์ด์ ํ์ ์ ๋ง์์ผํ๋ค.
ํ ์ด๋ธ์์ ํ์ ์๋ณ์๋ก ์ด์ฉ๋๋ ์ด์ (key)๋๋ ๊ธฐ๋ณธ ํค(primary key)๋ผ๊ณ ํ๋ค. ๊ฐ์ฒด์ JS์์ ๊ฐ์ฒด์ id์ ์ ์ฌํ ์ญํ ์ ํ๋ค. ์ฆ, ํ ์ด๋ธ์์ ์ ์ฅ๋ ๋ ์ฝ๋๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ํ๋ณด ํค(candidate key) ์ค์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์๊ฐ ์ง์ ํ ์์ฑ์ ์๋ฏธํ๋ค.
ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ ๊ด๊ณ๋ฅผ ๋งบ๋ ํ ์ด๋ธ ์์ ๋ค๋ผ ๋ค์๊ณผ ๊ฐ์ด ๋๋ ์ ์์ต๋๋ค.
์ผ๋์ผ ๊ด๊ณ
์ผ๋๋ค ๊ด๊ณ
๋ค๋๋ค ๊ด๊ณ
โ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ์ด๋ฌํ ๊ด๊ณ๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์ธ๋ ํค(foreigh key)๋ผ๋ ๊ฒ์ ์ฌ์ฉํ๋ค. ์ธ๋ ํค๋ ํ ํ ์ด๋ธ์ ํค ์ค์์ ๋ค๋ฅธ ํ ์ด๋ธ์ ํ(row)์ ์๋ณํ ์ ์๋ ํค๋ฅผ ์๋ฏธํ๋ค.
์คํค๋ง๋ ํ
์ด๋ธ์ ๋์์ธํ๊ธฐ ์ํ ์ฒญ์ฌ์ง ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ด๋ฌํ ์คํค๋ง๋ ํ
์ด๋ธ์ ๊ฐ ์ด์ ๋ํ ํญ๋ชฉ๊ณผ ํ์
๋ฟ๋ง ์๋๋ผ ๊ธฐ๋ณธ ํค์ ์ธ๋ํค๋ ๋ํ๋ด์ผ ํ๋ค.
์คํค๋ง๋ ๊ฐ์ฒด-๊ด๊ณ ๋ค์ด์ด๊ทธ๋จ(entity-relationship diagram)์ด๋ ๋ฌธ์์ด๋ก ํํํ ์ ์๋ค.
Reservation(ID, Name, Date, RoomNum)
Structured Query Language(SQL)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด๋ก, ์ฃผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉํ๋ค. ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ๋์์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ ํ๋ก๊ทธ๋จ์ธ์ด์ธ SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ ์ฝ์ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ SQL์ relation์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ๊ตฌ์กฐํ๋ ํ ์ด๋ธ์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ์ฉ ํ ์ ์๋ค. SQL์ ์ฌ์ฉํ๋ ๊ด๊ณํ๋ฐ์ดํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์. MySQL, Oracle, SQLite, PostgreSQL๋ฑ
๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ๋์ง ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ ์ด๋ธ์ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํํ๋ก ์ ์ฅํ๋ค.
Key - Value DB : redis
Graph DB : Amazon Neptune
Docoment DB : mongoDB, CouchDB, Cloud Firesotre
Column-family DB : cassandra, Google Bigtable
Search engine : elastic, CloudSearch