#๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด
-๋ฐ์ดํฐ ๋ชจ๋ธ ๊ตฌ์ฑ์์
๋ฐ์ดํฐ์ ๊ตฌ์กฐ / ์ฐ์ฐ์ / ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
-๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ data integrity
๋ฐ์ดํฐ์ ์ ํ์ฑ ๋๋ ์ ํจ์ฑ์ ์๋ฏธํ๋ค
์ผ๊ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ์ ์ํ๋ ๊ท์น๋ค์ ๋ฌต์์ ์ผ๋ก ๋๋ ๋ช ์์ ์ผ๋ก ์ ์ํ๋ค
๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก๋ถํฐ ๋ณดํธํ๋ ๊ฒ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฌด๊ฒฐ์ฑ - ๊ถํ์ ๊ฐ์ง ์ฌ์ฉ์๋ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ์ฑ(์ผ๊ด์ฑ)์ ์งํค๋ ๊ฒ
์ฅ์ : ์คํค๋ง๋ฅผ ์ ์ ํ ๋, ์ผ๊ด์ฑ ์กฐ๊ฑด์ ์ค์ง ํ๋ฒ๋ง ๋ช ์ํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ฐฑ์ ๋ ๋
DBMS๊ฐ ์๋์ ์ผ๋ก ์ผ๊ด์ฑ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ค
-๋๋ฉ์ธ ์ ์ฝ์กฐ๊ฑด domain constraint
๊ฐ ์์ฑ ๊ฐ์ด ๋ฐ๋์ ์์๊ฐ(๋จ์ผ๊ฐ) ์ด์ด์ผ ํ๋ค
์์ฑ ๊ฐ์ ๋ํดํธ ๊ฐ, ๊ฐ๋ฅํ ๊ฐ๋ค์ ๋ฒ์ ๋ฑ์ ์ง์ ํ ์ ์๋ค.
๋ฐ์ดํฐ ํ์์ ํตํด ๊ฐ๋ค์ ์ ํ์ ์ ํํ๊ณ , CHECK ์ ์ฝ ์กฐ๊ฑด์ ํตํด ๊ฐ๋ค์ ๋ฒ์๋ฅผ ์ ํํ ์ ์๋ค.
DBMS๋ ํํ์ด ์ฝ์ , ์์ ๋ ๋ ๋ง๋ค ๋๋ฉ์ธ ์ ์ฝ์กฐ๊ฑด์ ๊ฒ์ฌํ์ฌ ์๋ฐฐ ์ ์ฐ์ฐ์ ๊ฑฐ์ ํ๋ค
-ํค ์ ์ฝ์กฐ๊ฑด key constraint
ํค ์์ฑ์ ์ค๋ณต๋ ๊ฐ์ด ์กด์ฌํด์๋ ์๋๋ค.
๋ฆด๋ ์ด์ ์ ์ ์ ํ ๋ ๊ธฐ๋ณธ ํค๋ก ์ ์ํ๊ฑฐ๋ UNIQUE๋ฅผ ๋ช ์ํ ์์ฑ์๋ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค
-๊ธฐ๋ณธ ํค์ ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด entity integrity constraint
๋ฆด๋ ์ด์ ์ PK๋ฅผ ๊ตฌ์ฑํ๋ ์ด๋ค ์์ฑ๋ NULL ๊ฐ์ ๊ฐ์ง ์ ์๋ค
์ฌ์ฉ์๋ ์ค๋ ์ด์ ์ ์์ฑํ๋ DDL์์ ์ด๋ค ์์ฑ์ด PK์ ๊ตฌ์ฑ์์์ธ๊ฐ๋ฅผ DBMS์๊ฒ ์๋ ค์ค๋ค
-์ธ๋ ํค์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด referential integrity constraint
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ๋ ๋ฆด๋ ์ด์ ์ ์ฐ๊ด๋ ํํ๋ค ์ฌ์ด์ ์ผ๊ด์ฑ์ ์ ์งํ๋๋ฐ ์ฌ์ฉ
๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฆด๋ ์ด์ ๋ค๋ก๋ง ์ด๋ฃจ์ด์ง๊ณ ๋ฆด๋ ์ด์ ์ฌ์ด์ ๊ด๊ณ๋ค์ด ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธ ํค๋ฅผ
์ฐธ์กฐํ๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ฌต์์ ์ผ๋ก ํํ๋๊ธฐ ๋๋ฌธ์ ์ธ๋ ํค์ ๊ฐ๋ ์ด ์ค์ํ๋ค
-๋ฆด๋ ์ด์ R2์ ์ธ๋ ํค๊ฐ ๋ฆด๋ ์ด์ R1์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐธ์กฐํ ๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ๋ ์กฐ๊ฑด ์ค ํ๋๊ฐ ์ฑ๋ฆฝ๋๋ฉด ๋ง์กฑ
1. ์ธ๋ ํค์ ๊ฐ์ R1์ ์ด๋ค ํํ์ ๊ธฐ๋ณธ ํค ๊ฐ๊ณผ ๊ฐ๋ค.
2. ์ธ๋ ํค๊ฐ ์์ ์ ํฌํจํ๊ณ ์๋ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธ ํค๋ฅผ ๊ตฌ์ฑํ๊ณ ์์ง ์์ผ๋ฉด ๋ ๊ฐ์ ๊ฐ์ง๋ค.
-๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์ ์ง
ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ชจ๋ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ๋ง์กฑํ๋ค๋ฉด
DB ๊ฒ์ ์ฐ์ฐ์ ์ํ ๊ฒฐ๊ณผ๋ ์ด๋ค ์ ์ฝ์กฐ๊ฑด๋ ์๋ฐฐ ๋์ง ์๋๋ค
DB์ ๋ํ ๊ฐฑ์ ์ฐ์ฐ์ ์ฝ์ , ์ญ์ , ์์ ์ฐ์ฐ์ผ๋ก ๊ตฌ๋ถํ๋ค
DBMS๋ ๊ฐ๊ฐ ๊ฐฑ์ ์ฐ์ฐ์ ๋ํด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด๋ค์ ๋ง์กฑํ๋๋ก ํ์ํ ์กฐ์น๋ฅผ ์ทจํ๋ค
DBMS๋ ์ธ๋ ํค๊ฐ ๊ฐฑ์ ๋๊ฑฐ๋, ์ฐธ์กฐ๋ ๊ธฐ๋ณธ ํค๊ฐ ๊ฐฑ์ ๋์์ ๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ด ์๋ฐฐ๋์ง ์๋๋ก ํด์ผํ๋ค
-์ฝ์ (๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด)
์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์ ์๋ก์ด ํํ์ด ์ฝ์ ๋๋ฉด ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐฐ๋์ง ์๋๋ค.
์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์ ์ ์๋ก์ด ํํ์ ์ฝ์ ํ ๋๋ ๋๋ฉ์ธ ์ ์ฝ์กฐ๊ฑด, ํค ์ ์ฝ์กฐ๊ฑด, ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ์ธ์
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด๋ ์๋ฐฐํ ์ ์๋ค.
-์ญ์
์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์ ์์ ํํ ์ญ์ ๋๋ฉด ๋ชจ๋ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐฐํ์ง ์๋๋ค
์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์์ ํํ์ด ์ฌ์ ๋๋ฉด ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐฐํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๋ค.
-์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ๋ง์กฑ์ํค๊ธฐ ์ํด DBMS๊ฐ ์ ๊ณตํ๋ ์ต์
1. ์ ํ restricted
์๋ฐฐ๋ฅผ ์ผ๊ธฐํ ์ฐ์ฐ์ ๊ฑฐ์
2. ์ฐ์ cascade
์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์์ ํํ์ ์ญ์ ํ๊ณ , ์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์ ์์๋ ์ด ํํ์ ์ฐธ์กฐํ๋ ํํ๋ค์ ๊ฐ์ด ์ญ์
3. ๋ ๊ฐ nullify
์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์์ ํํ์ ์ญ์ ํ๊ณ , ์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์ ์์ ์ด ํํ์ ์ฐธ์กฐํ๋ ํํ๋ค์ ๊ฐ์ ๋๋ก ๋ฐ๊ฟ์ค
4. ๋ํดํธ ๊ฐ
์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์์ ํํ์ ์ญ์ ํ๊ณ , ์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์ ์์ ์ด ํํ์ ์ฐธ์กฐํ๋ ํํ๋ค์ ๊ฐ์ ๋ํดํธ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค
-์์
DBMS๋ ์์ ํ๋ ์์ฑ์ด ๊ธฐ๋ณธ ํค ์ธ์ง ์ธ๋ ํค ์ธ์ง ๊ฒ์ฌํ๋ค
*์์ ํ๋ ค๋ ์์ฑ์ด PK, FK๊ฐ ์๋๋ฉด ์์ ์ฐ์์ด ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐฐํ์ง ์๋๋ค
*์ถ์ฒ
์ค๋ผํด ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฐ์ํฐ (์๋ฅ, ํ์๊ฒฝ)
์ค๋ผํด 11g + PL/SQL ์ ๋ฌธ (๋๋ฆผ, ์ฑ์ค๊ฒฝ ์๋๋ฆฐ)
'๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค6 (0) | 2022.06.29 |
---|---|
๋ฐ์ดํฐ๋ฒ ์ด์ค5 (0) | 2022.06.29 |
๋ฐ์ดํฐ๋ฒ ์ด์ค3 (0) | 2022.06.25 |
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ 2 (0) | 2022.06.24 |
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ (0) | 2022.06.24 |