[DB] ๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค(KEY) ์ข ๋ฅ ๐ต๏ธ ์ ๋ฆฌ
Key์ ์ข ๋ฅ
- ์ํผ ํค(Super Key): ์ ์ผ์ฑ์ ๋ง์กฑํ๋ ํค. ์๋ฅผ ๋ค๋ฉด, {ํ๋ฒ + ์ด๋ฆ}, {์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ + ํ๋ฒ}
- ๋ณตํฉ ํค(Composite Key): 2๊ฐ ์ด์์ ์์ฑ(attribute)๋ฅผ ์ฌ์ฉํ ํค.
- ํ๋ณด ํค(Candidate key): ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋ง์กฑํ๋ ํค. ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๋ ํ๋ณด์ด๊ธฐ ๋๋ฌธ์ ํ๋ณดํค๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ์๋ฅผ ๋ค๋ฉด, ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ํ๋ฒ ๋ฑ
- ๊ธฐ๋ณธ ํค(Primary key): ํ๋ณด ํค์์ ์ ํ๋ ํค. NULL๊ฐ์ด ๋ค์ด๊ฐ ์ ์์ผ๋ฉฐ, ๊ธฐ๋ณธํค๋ก ์ ํ๋ ์์ฑ(Attribute)์ ๋์ผํ ๊ฐ์ด ๋ค์ด๊ฐ ์๊ฐ ์๋ค.
- ๋์ฒด ํค(Surrogate key): ํ๋ณด ํค ์ค์ ๊ธฐ๋ณธ ํค๋ก ์ ํ๋์ง ์์ ํค.
- ์ธ๋ ํค(Foreign Key): ์ด๋ค ํ ์ด๋ธ(Relation) ๊ฐ์ ๊ธฐ๋ณธ ํค(Primary key)๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ์ด๋ค. ํ ์ด๋ธ(Relation)๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ค.
์ํผํค(Super Key)
- 7์กฐ๋ผ๋ ํ์ ํ์์ 4๋ช ์ด ์๋ค. ์ด 4๋ช ์ ๊ตฌ๋ถํ ์ ์๋ ๊ฒ์ ์ ๋ ๊ฒน์น์ง ์๋ ํ๋ฒ ์ผ์๋ ์๊ณ , ์ฃผ๋ฏผ๋ฒํธ์ผ ์๋ ์๋ค.
- ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ๋ฌถ์ด์ ํ๋์ ์์ฑ์ผ๋ก ๋ง๋๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ํฉ์ณ์ 7์กฐ์์์ ์ค๋ณต๋ง ๋์ง ์์ผ๋ฉด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ํฉ์ณ์ 4๋ช ์ ๊ตฌ๋ถํ ์ ์์ผ๋ฉด ์ํผํค๊ฐ ๋ ์ ์๋ค.
- ํ๋ฒ๊ณผ ์ฃผ๋ฏผ๋ฒํธ๋ฅผ ๋ฌถ์ด์ ์ํผํค๋ก ๋ง๋ค์๋ ์๊ณ , ํ๋ฒ๊ณผ ์ฃผ๋ฏผ๋ฒํธ๊ณผ ์ด๋ฆ์ ํฉ์ณ์ ์ํผํค๋ก๋ ๋ง๋ค์ ์๊ณ , ํ๋ฒ๊ณผ ์ฃผ๋ฏผ๋ฒํธ๊ณผ ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ํฉ์ณ์ ์ํผํค๋ฅผ ๋ง๋ค์๋ ์๋ค. ์ด๋ค ์์ฑ๋ผ๋ฆฌ ๋ฌถ๋ ์ค๋ณต๊ฐ์ด ์๋์ค๊ณ ์๋ก ๊ตฌ๋ณ๋ง ํ ์ ์์ผ๋ฉด ๋๋ค.
ํ๋ณดํค(Candidate Key)
- ์์์ ๋งํ๋ฏ์, ์ด 4๋ช ์ ๊ตฌ๋ถํ๋ ์ํผํค๋ค์ด ๋ชจ์ฌ ์๋๋ฐ, ์ํผํค๋ค ์ค์์ ์์ฑ์ ์ต์ํ์ ๊ฐฏ์๋ก 4๋ช ์ ๊ตฌ๋ถํ ์ ์์ด์ผ ํ๋ณดํค๊ฐ ๋ ์ ์๋ค.
- ํ๋ฒ ์ํผํค์ ์ฃผ๋ฏผ๋ฒํธ ์ํผํค๋ ์์ฑ๋ค์ด ๊ฐ 1๊ฐ์ฉ ์ด๋ฃจ์ด์ ธ ์๋ค. ํ์ง๋ง ์ด๋ฆ+๋์ด ์ํผํค๋ ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ๋ฌถ์ด์ 2๊ฐ์ ์์ฑ์ผ๋ก ๋์ด ์๋ค. ์ด๋ฆ+๋์ด ์ํผํค๋ 2๊ฐ ์ด๋ฏ๋ก ๊ฐ 1๊ฐ์ ์์ฑ์ธ ์ฃผ๋ฏผ๋ฒํธ์ ํ๋ฒ ์ํผํค๊ฐ ์ต์์ฑ์ ๋ง์กฑํ๋ค๊ณ ํ ์ ์๋ค.
- ๋ฐ๋ผ์ ์ด๋ฆ+๋์ด ์ํผํค๋ ๊ฐฏ์๊ฐ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ๋ง๊ธฐ ๋๋ฌธ์ ์ต์์ฑ์ ๋ง์กฑํ์ง ๋ชปํด์ ํ๋ณดํค๊ฐ ๋ ์ ์๋ค.
๊ธฐ๋ณธํค(Primary Key)
- ํ๋ณดํค๋ค ์ค์์ ํ๋๋ฅผ ์ ํํ ํค๋ก ์ต์์ฑ๊ณผ ์ ์ผ์ฑ์ ๋ง์กฑํ๋ ์์ฑ์ด๋ค.
- ํ ์ด๋ธ์์ ๊ธฐ๋ณธํค๋ ์ค์ง 1๊ฐ๋ง ์ง์ ํ ์ ์๋ค.
- ๊ธฐ๋ณธํค๋ NULL ๊ฐ์ ์ ๋ ๊ฐ์ง์ ์๊ณ , ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
๋์ฒดํค(Alternate Key)
- ํ๋ณดํค๊ฐ ๋๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ๊ทธ ์ค์์ ์ด๋ ํ๋๋ฅผ ๊ธฐ๋ณธํค๋ก ์ง์ ํ๊ณ ๋จ์ ํ๋ณดํค๋ค์ ๋์ฒดํค๋ผํ๋ค.
- ํ๋ณดํค๋ก ํ๋ฒ๊ณผ ์ฃผ๋ฏผ๋ฒํธ๊ฐ ๋ฝํ๊ณ , ๋ ์ค์์ ๊ธฐ๋ณธํค๋ ํ๋ฒ์ด ๋์๋ค. ํ๋ฒ์ด ๊ธฐ๋ณธํค๊ฐ ๋๊ณ ๋จ์ ํ๋ณดํค์ธ ์ฃผ๋ฏผ๋ฒํธ๋ ๋์ฒดํค๊ฐ ๋ ์ ์๋ค. ํ๋ฒ ๊ธฐ๋ณธํค๊ฐ ์์ด์ง๊ฒ ๋๋ฉด ์ฃผ๋ฏผ๋ฒํธ๋ ์์ด์ง ๊ธฐ๋ณธํค๋ฅผ ๋์ฒดํ ์ ์๊ฒ๋๋ค.
์ธ๋ํค(Foreign Key)
- ์ฐธ์กฐ ๋ ํ ์ด๋ธ(A)์ด ๋จผ์ ๋ง๋ค์ด์ง๊ณ ์ฐธ์กฐํ๋ ํ ์ด๋ธ(B)์ ๊ฐ์ด ์ ๋ ฅ๋์ด์ผ ํ๋ค.
- ์ด๋, ์ฐธ์กฐ๋ (A) ์ด์ ๊ฐ์ ์ฐธ์กฐ๋ (A) ํ ์ด๋ธ์์ ๊ธฐ๋ณธํค(Primary Key)๋ก ์ค์ ๋์ด ์์ด์ผํ๋ค.
- ์ธ๋ํค๋ ์ฐธ์กฐ๋๋ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ ๋์ผํ ํค ์์ฑ์ ๊ฐ์ง๋ค.
- ์ฐธ์กฐ๋๋ ๋ถ๋ชจํ ์ด๋ธ์ด ๋จผ์ ์์ฑ๋ ๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ , ์ฐธ์กฐํ๋ ์์ ํ ์ด๋ธ์ด ๋ค์์ ์๊ฒจ์ผ๋๋ค.
- ๋ถ๋ชจ ํ ์ด๋ธ ๋จผ์ ์ญ์ ๋ ์ ์๋ค. ์๋ํ๋ฉด ๋ถ๋ชจํ ์ด๋ธ์ ์ฐธ์กฐํ๋๋ฐ ๋ถ๋ชจํ ์ด๋ธ์ด ์ญ์ ๋๋ฉด ์์ํ ์ด๋ธ์ ์ฐธ์กฐํ๋ ๊ฒ์ด ์์ด์ง๊ธฐ ๋๋ฌธ์ ์ธ๋ํค ์ค๋ฅ๊ฐ ์๊ธด๋ค. ๋ฐ๋ผ์ ์ธ๋ํค ๊ด๊ณ์์ ๋ถ๋ชจํ ์ด๋ธ์ ์ญ์ ํ๋ ค๋ฉด ์์ํ ์ด๋ธ ๋จผ์ ์ญ์ ํ ํ ๋ถ๋ชจํ ์ด๋ธ์ ์ญ์ ํด์ผํ๋ค.
- ์๋ ์ฌ์ง์ ๋ณด์. ๋ถ๋ชจ ํ ์ด๋ธ์ ํ์ ํ ์ด๋ธ์ด๊ณ , ์์ ํ ์ด๋ธ์ ์๊ฐ ํ ์ด๋ธ์ด๋ค.
- ํ์ํ ์ด๋ธ์ ํ๋ฒ์ด ๊ธฐ๋ณธํค์ด์ ์ฐธ์กฐ๋๋ ์ฐธ์กฐํค์ด๋ค.
- ์๊ฐํ ์ด๋ธ์ ํ๋ฒ์ด ์ฐธ์กฐํ๋ ํค์ด์ ์ธ๋ํค์ด๋ค.