Database ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋๋ ๊ณณ์ด๋ค. ์ง์ง ๋ง ๊ทธ๋๋ก data ์ base ์ธ ๊ฒ์ด๋ค.
์์ฒญ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฅ๊ธฐ๊ฐ ๊ด๋ฆฌํ๋ ค๋ฉด ์์คํ ์ด ํ์ํ๋ฐ ์ด๋ฅผ *DBMS, ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋ผ๊ณ ํ๋ค. ์ด๊ฒ๋ ์ดํด๊ฐ ์ฝ๋ค. ์ด๋ฅผ ํต์นญํ์ฌ ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด๋ค.
DBMS, ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค (RDBMS) ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ ์๋ค. ๋จผ์ ์ดํด๋ณผ ๊ฒ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๊ณ ๋น๊ด๊ณํ์ ๋์ค์ ๋ฐ๋ก ์ ๋ฆฌํด๋ณด์.
๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ 2์ฐจ์ ํ ์ด๋ธ ํ์์ผ๋ก ์ ์ฅ ๋์ด์๋ค. ํ ์ด๋ธ์ ์๊ฐํ๋ฉด ์ด ๊ณผ ํ์ผ๋ก ์กด์ฌํ๋๋ฐ ๊ฐ ํ ๋ค์ด ํค๋ก ์ค์ ๋๊ณ ์ด ์ ๋ฐ์ดํฐ์ ๊ฐ์ด ๋ค์ด๊ฐ๋ค.
์์ ํ๋ฅผ ๋ณด๋ฉด ๋นจ๊ฐ์ ์์ ๋ค์ด๊ฐ ๊ฒ์ด ์ด, ์ฆ ์ ๋ชฉ์ด์ key ์ด๋ค. ํ๋์์ ํค์ ๋ง๋ ๋ฐ์ดํฐ๋ค์ด๋ค.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ Primary Key ์ค์ฌ์ PK ์ด๋ค. ๋ชจ๋ ํ ์ด๋ธ์ ์ด PK๋ฅผ ๊ฐ์ง๋๋ฐ ์ค๋ณต๋๋ ๊ฐ์ด ์์ด์ ์ด๊ฒ์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์๊ณ ์ ๋ฌํ๊ธฐ๋ ํ๋ค. ํต์นญ ๊ธฐ๋ณธํค ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์๋ ์ด ๊ฐ ๊ฐ์ ํ ์ด๋ธ์ ๊ด๊ณ์ ๋ง๊ฒ PK๋ก ์ฐ๊ฒฐ ์์ผ์ค๋ค. ๊ทธ๋์ผ ์ด๋ค ํ ์ด๋ธ์ด ์ด๋ค ํ ์ด๋ธ์ ์ฐธ์กฐํ๊ณ ์๋์ง ์ ์ ์๊ณ ๊ทธ๊ฒ์ ๋ฐํ์ผ๋ก ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
๊ด๊ณ๋ฅผ ์ฐ๊ฒฐํ๋๋ฐ ์ธ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. One to One
, One to Many
, Many to Many
.
์ ๋๊ฐ ํ ์ด๋ธ์ ์ผ ๋ ์ผ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. user_profile ํ ์ด๋ธ ์ User_pk ์ด ์ User ํ ์ด๋ธ์ pk ๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ค. ์ฆ User_pk ๋ foreign key (fk) ์ธ๋ํค ์ด๋ค.
๊ฐ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณด๋ฉด ๋ณต์กํด๋ณด์ด๋ ํ ์ด๋ธ์ ์ด ๋ง ๋ณด์ฌ์ง๊ฒ ํด์ ๋น๊ตํ๋ฉด
์ด๋ ๊ฒ ํํ ํ ์ ์์ต๋๋ค. ์ผ ๋ ์ผ ๊ด๊ณ์์๋ ์ฐธ์กฐํ๋ ํ ์ด๋ธ์ ํ ๊ฐ์๋ ์ฐธ์กฐ ๋นํ๋ ํ ์ด๋ธ์ ํ ๊ฐ์์ ๋์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก User_pk ๋ ๊ฒน์น์ง ์๊ฒ๋ฉ๋๋ค.
์ผ ๋ ์ผ ๊ด๊ณ์์ ์ฐธ์กฐ ํ๋ ํ ์ด๋ธ๊ณผ ์ฐธ์กฐ ๋นํ๋ ํ ์ด๋ธ์ ํ ๊ฐ์๊ฐ ๊ฐ์๋ค๋ฉด ์ผ ๋ ๋ค ๊ด๊ณ์์๋ ๋ฌ๋ผ์ง๋๋ค. ํ๋ฅผ ๋ณด๋ฉด์ ํ์ธํ๋ฉด ์ดํด๊ฐ ์ ๊ฐ๋๋ค.
์์ ๊ทธ๋ฆผ์ ๋ง๋ก ์ค๋ช ํ๋ฉด customer ํ ์ด๋ธ๊ณผ order ํ ์ด๋ธ์ ์ผ ๋ ๋ค ๊ด๊ณ์ ๋๋ค. order ํ ์ด๋ธ์ customer_pk ์ด์ customer ํ ์ด๋ธ์ pk ์ด์ ์ฐธ์กฐํ๊ณ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง๋ ์ผ ๋ ์ผ ๊ด๊ณ์ ๋์ผํ์ง๋ง ์ด๋ ๊ฒ ์๊ฐํด๋ด ์๋ค. ํ์ ์ ์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ์ฌ๋์ customer ํ ์ด๋ธ์์ pk = 1์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ์ ์ฌ๋์ด ๋ก๋ณถ์ด์ ํผ์, ์นํจ์ ์ฃผ๋ฌธํ๋ค๊ณ ํ๋ฉด order ํ ์ด๋ธ์ customer_pk ์ด์ ๋ฐ์ดํฐ ๊ฐ์ 1 ์ด ์ฌ๋ฌ ํ ์๊ธธ ๊ฒ ์ ๋๋ค. ๊ทธ๋ฆผ์ ํ์ด ๋ณด๋ฉด ์ด๋ ์ต๋๋ค.
์ด ๋ ํ ์ด๋ธ์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ ๋ customer ํ ์ด๋ธ์ด ์ผ ( 1 ), order ํ ์ด๋ธ์ด ๋ค ( N ) ์ ๊ด๊ณ์ ์๋ค๊ณ ํ ์ ์์ต๋๋ค.
๋ง์ฝ ์ ๊ณต์์ ์ ์ถ๊ฐํ๋ค๊ณ ์๊ฐํด๋ด
์๋ค. ์ฑ
์ ํผ์ ๋ง๋๋๊ฑด ์ด๋ ค์ด ์ผ์ธ๋ฐ, ์ ๊ณต์์ ์ ๋์ฑ ํ๋ค๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ๋์ด ํจ๊ป ์งํํฉ๋๋ค. ๊ทธ ๋ ํ
์ด๋ธ์ ์ดํด๋ณด๋ฉด
books ํ ์ด๋ธ์ name ์ด ์๋ ๊ฐ์ด ์ค๋ณต๋์ด ๋ค์ด ์๋๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ํ๋์ pk ํ์ ๋๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์๋ค. ๋ฐ์ดํฐ์ ๊ฐ์ ๋ช ํํ ์์ฑํด์ผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋์ ํ ์ด๋ธ์ ๋ ์์ฑํด์ ๋ค ๋ ๋ค ๊ด๊ณ์ ํ ์ด๋ธ์ ๋ง๋ค์ด๋ณด์.
๋ณด์ด๋ ๊ฒ ์ฒ๋ผ authors_books ํ
์ด๋ธ์ authors ํ
์ด๋ธ์ pk ๋ฅผ ์ฐธ์กฐ ํ๋ฉด์ books ํ
์ด๋ธ์ pk ๋ ์ฐธ์กฐ ํ๊ณ ์๋ค. ์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉด ์ฌ์ฉํ๊ธฐ๋ ํธ๋ฆฌํ๋ฉด์ ์์ ๋ ์ํํด ์ง๋ค. ๊ฐ ํ
์ด๋ธ์ ๊ฐ๋จํ ๋ง๋ค์ด์ ๊ธฐ๋ณธํค์ ์ธ๋ํค๋ฅผ ์ดํด๋ณด๋ฉด
authors_books ํ
์ด๋ธ์ ๋ค ๋ ๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. author_pk ์ด ์ authors ํ
์ด๋ธ์ pk ์ด์ ์ฐธ์กฐ ํ๊ณ ์์ผ๋ฏ๋ก ์ธ๋ํค์ด๊ณ book_pk ์ด ์ books ํ
์ด๋ธ์ pk ๋ฅผ ์ฐธ์กฐํ๊ณ ์์ผ๋ฏ๋ก ์ธ๋ํค์ด๋ค.
์ฌ๊ธฐ๊น์ง ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๊ฐ์ง ๊ด๊ณ๋ฅผ ์์๋ดค๋ค. ๋ค์์๋ ์ด๋ฐ ๋ฐฉ์์ ์ด์ฉํด์ ์ค์ ์นํ์ด์ง์ ์ ๋ณด๋ฅผ ๋ถ์ํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํด๋ณด๋ ํฌ์คํ ์ ํ๊ฒ ๋ค!!