๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ๋ฆด๋ ์ด์ ์ 2์ฐจ์์ ํ ์ด๋ธ์ ์๋ฏธํฉ๋๋ค.
ํ ์ด๋ธ์ ์ด(ํ๋)๋ attribute, ํ ์ด๋ธ์ ํ(๋ ์ฝ๋)๋ tuple์ ๋๋ค.
๋ฐ์ดํฐ์ ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์์ธ "๊น์ฒ ์", "010-1234-1234" ๋ฑ์ attribute์ ๊ฐ(value)์ ๋๋ค.
์ด๋ฐ ๋ฐ์ดํฐ ๊ฐ๋ค์ ๋ ์ด์ ๋ถํดํ ์ ์๋ ์์๊ฐ(atomic value)๋ง ๊ฐ๋ฅํฉ๋๋ค.
๋๋ฉ์ธ์ด๋ ํ๋์ attribute๊ฐ ์ทจํ ์ ์๋ ๊ฐ์ ํ์ ์ ๋ชจ๋ ์์๋ค์ ์งํฉ์ ๋๋ค.
โ๏ธattribute์ ์ ์ผ์ฑ ๋ณด์ฅ
์ด๋ฌํ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์์๋ ํ ๋ฆด๋ ์ด์ ์์ ๋ชจ๋ attribute์ ์ด๋ฆ์ด ๋ฐ๋์ ๋ฌ๋ผ์ผ ํฉ๋๋ค.
๋ฆด๋ ์ด์
๋ฆด๋ ์ด์ R์ ์คํค๋ง(schema)๋ ๋ฆด๋ ์ด์ ์ด๋ฆ๊ณผ attribute ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ฐ attribute๋ ๋๋ฉ์ธ์ ํ ๋๋ฉ์ธ๊ณผ ๋์๋๊ณ , ํ๋์ tuple์ ๊ฐ attribute์ ๋์ํ๋ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ฆด๋ ์ด์ R์ ์ฐจ์(degree)๋ attribute์ ๊ฐ์์ด๊ณ ,
๋ฆด๋ ์ด์ R์ ์นด๋๋๋ฆฌํฐ(cardinality)๋ tuple์ ๊ฐ์์ ๋๋ค.
๋ฆด๋ ์ด์ ์ ํน์ฑ
tuple์ ์ ์ผ์ฑ (uniqueness)
- ํ ๋ฆด๋ ์ด์ ์ ํฌํจ๋ tuple๋ค์ ๋ชจ๋ ์ ์ผ
- ๋ ๊ฐ์ ๋๊ฐ์ tuple์ ํฌํจ๋ ์ ์๋ค.
tuple์ ๋ฌด์์์ฑ (no ordering)
- ํ ๋ฆด๋ ์ด์ ์ tuple ์ฌ์ด์๋ ์์๊ฐ ์๋ค.
- tuple ์์๊ฐ ๋ฐ๋์ด๋ ๋์ผํ ๋ฆด๋ ์ด์ ์ผ๋ก ์ธ์๋๋ค.
attribute์ ๋ฌด์์์ฑ
- ํ ๋ฆด๋ ์ด์ ์ attribute ์ฌ์ด์๋ ์์๊ฐ ์๋ค.
- attribute๋ ์ด๋ฆ์ ์ํด ์ฐธ์กฐ๋๋ค.
attribute์ ์์์ฑ (atomicity)
- ๋ชจ๋ attribute ๊ฐ์ ๋ ์ด์ ๋ถ๋ฆฌํ ์ ์๋ ์์๊ฐ(atomic value)์ด๋ค.
- attribute ๊ฐ์ผ๋ก ์งํฉ์ ๋ ์ ์๋ค.
์งํฉ์ attribute ๊ฐ์ผ๋ก ํ์ฉํ์ง ์๋ ๋ฆด๋ ์ด์ -> ์ ๊ทํ ๋ฆด๋ ์ด์
๋น์ ๊ท ๋ฆด๋ ์ด์ ์ ์ ๊ท ๋ฆด๋ ์ด์ ์ผ๋ก ๋ณํํ๋ ๊ณผ์ -> ์ ๊ทํ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํค
key๋ tuple๋ค์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ attribute์ ์งํฉ์ ๋๋ค.
ํ๋ณดํค์ ๊ธฐ๋ณธํค
๋ฆด๋ ์ด์ ์์ ๊ฐ tuple์ ์ ์ผํ๊ฒ ์๋ณํด์ฃผ๋ ๋ช ๊ฐ์ attribute๋ค์ ์กฐํฉ์ ํ๋ณดํค(candidate key)๋ผ๊ณ ํฉ๋๋ค.
๋ฆด๋ ์ด์ ์์ ํ๋ ์ด์์ ํ๋ณดํค๋ฅผ ๊ฐ์ง ์ ์๊ณ , ํ๋ณดํค๋ ์๋ ๋ ์ฑ์ง์ ๋ชจ๋ ๋ง์กฑํด์ผ ํฉ๋๋ค.
- ์ ์ผ์ฑ(uniqueness)
- ํ๋ณดํค๋ง ๋น๊ตํ๋๋ผ๋ ๊ทธ tuple์ ์ ์ผํ๊ฒ ํํํ ์ ์์ด์ผํฉ๋๋ค.
- ์ต์์ฑ(minimality)
- ํ๋ณดํค๋ tuple๋ค์ ์ ์ผํ๊ฒ ์๋ณํ๋๋ฐ ๊ผญ ํ์ํ attribute๋ค๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ด์ผํฉ๋๋ค.
- ํ๋ณดํค์ attribute๋ค ์ค ํ๋๋ผ๋ ๋น ์ง๋ฉด ์ ์ผํ๊ฒ ์๋ณํ๋ ๋ฅ๋ ฅ์ ์์คํ๊ฒ ๋ฉ๋๋ค.
ํ๋ณดํค๊ฐ ๋ ์ด์ ๋๋ ๊ฒฝ์ฐ์ ๊ทธ ์ค์์ ์ด๋ ํ๋๋ฅผ ๊ธฐ๋ณธํค(primary key)๋ก ์ ์ ํ๋ฉด ๋๋จธ์ง ํ๋ณดํค๋ค์ ๋์ฒดํค(alternate key)๊ฐ ๋ฉ๋๋ค.
๊ธฐ๋ณธํค๋ ๊ทธ ํค๊ฐ์ ๊ฐ์ง tuple์ ๋ฐ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง ์ต์์ฑ์ ๋ง์กฑํ์ง ์๋ attribute ์งํฉ์ ์ํผํค(super key)์ ๋๋ค.
์ธ๋ํค
๋ ๋ฆด๋ ์ด์ ์์ ์๋ฏธ์๋ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ํ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค์ ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ์ธ๋ํค๋ฅผ ๋น๊ตํฉ๋๋ค.
์ธ๋ํค์ ๊ฐ์ ๋น๊ตํ๋ ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค ๊ฐ์ ๋ฐ๋์ ์กด์ฌํด ์์ด์ผํฉ๋๋ค.
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ํค
- ์์ฒด ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ํค
๋ ๊ฐ์ง ๊ฒฝ์ฐ์์ ์ธ๋ํค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฌด๊ฒฐ์ฑ์ ์ ํ์ฑ๊ณผ ๊ฐ์ต๋๋ค.
๋ฌด๊ฒฐ์ฑ์๋ ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด๊ณผ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ด ์์ต๋๋ค.
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(entity integrity constraints)
- ๊ธฐ๋ณธํค์ ์ํด ์๋ attribute๋ null ๊ฐ์ด๋ ์ค๋ณต ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธํค์๋ ๋ฐ๋์ ํค๊ฐ์ด ๋๋ ์ ์ผํ ๊ฐ์ด ์ ๋ ฅ๋์ด ์์ด์ผ ํฉ๋๋ค.
- ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(referential integrity constraints)
- ๋ฆด๋ ์ด์ ์ ์ฐธ์กฐํ ์ ์๋ ์ธ๋ํค ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์ธ๋ํค ๊ฐ์ด ์ฐธ์กฐํ๋ ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค ๊ฐ์ ๋ฐ๋์ ์กด์ฌํด์ผ ํฉ๋๋ค.