[DB] ๐Ÿ•ต๏ธ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด

ํ•ด๋กฑ๊ทธยท2023๋…„ 4์›” 25์ผ
0

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ชฉ๋ก ๋ณด๊ธฐ
6/9

๋ฌด๊ฒฐ์„ฑ

๋ฐ์ดํ„ฐ์— ๊ฒฐํ•จ์ด ์—†๋Š” ์ƒํƒœ, ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ณ  ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ
์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ทœ์น™๋“ค์„ ๋ฌต์‹œ์ ์œผ๋กœ ๋˜๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•จ

๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅ, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ์„ ์ œ์•ฝํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด

  1. ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(domain integrity constraint)
    ๊ฐ ์†์„ฑ๋“ค์˜ ๊ฐ’์€ ์ •์˜๋œ ๋„๋ฉ”์ธ์— ์†ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•จ

    '์„ฑ๋ณ„'์ด๋ผ๋Š” ์†์„ฑ์—์„œ '๋‚จ', '์—ฌ'๋ฅผ ์ œ์™ธํ•œ ๋ฐ์ดํ„ฐ๋Š” ์ œํ•œ๋˜์–ด์•ผ ํ•œ๋‹ค.

  2. ํ‚ค ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(key integrity constraint)
    ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ํ‚ค๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•จ (๋ฆด๋ ˆ์ด์…˜์€ ํŠœํ”Œ์„ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—)

  3. NULL ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด
    ๋ฆด๋ ˆ์ด์…˜์˜ ํŠน์ • ์†์„ฑ ๊ฐ’์€ NULL์ด ๋  ์ˆ˜ ์—†์Œ

    [ํ•™์ƒ] ๋ฆด๋ ˆ์ด์…˜ ์ •์˜ ์‹œ '๊ณผ๋ชฉ' ์†์„ฑ์— NULL ๊ฐ’์ด ์˜ฌ ์ˆ˜ ์—†๋„๋ก ์ œํ•œํ–ˆ๋‹ค๋ฉด '๊ณผ๋ชฉ' ์†์„ฑ์— NULL์ด ์žˆ์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

  4. ๊ณ ์œ  ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด
    ํŠน์ • ์†์„ฑ์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋„๋ก ์กฐ๊ฑด์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ, ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฐ ํŠœํ”Œ์ด ๊ฐ€์ง€๋Š” ์†์„ฑ ๊ฐ’๋“ค์€ ์„œ๋กœ ๋‹ฌ๋ผ์•ผ ํ•จ

    [ํ•™์ƒ] ๋ฆด๋ ˆ์ด์…˜์—์„œ '์ด๋ฆ„', '๋‚˜์ด' ๋Š” ์„œ๋กœ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ 'ํ•™๋ฒˆ'์˜ ๊ฒฝ์šฐ, ๊ฐ ํŠœํ”Œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. (UNIQUE ํ•ด์•ผ ํ•œ๋‹ค!)

  5. ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(entity integrity constraint)
    ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋Š” NULL๊ฐ’์ด๋‚˜ ์ค‘๋ณต๋œ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ (๋Œ€์ฒดํ‚ค์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Œ)

    [ํ•™์ƒ] ๋ฆด๋ ˆ์ด์…˜์—์„œ 'ํ•™๋ฒˆ'์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ–ˆ๋‹ค๋ฉด 'ํ•™๋ฒˆ' ์†์„ฑ์€ NULL์ด ๋˜์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

  6. ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(referential integrity constraint)
    ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ NULL์ด๊ฑฐ๋‚˜ ์ฐธ์กฐํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผํ•˜ ํ•จ
    ์ฆ‰, ๊ฐ ๋ฆด๋ ˆ์ด์…˜์€ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ์™ธ๋ž˜ํ‚ค ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ!

    ๋ฆด๋ ˆ์ด์…˜ R2์˜ ์™ธ๋ž˜ํ‚ค๊ฐ€ ๋ฆด๋ ˆ์ด์…˜ R1์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•  ๋•Œ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์€ ์•„๋ž˜์˜ ๋‘ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๊ฐ€ ์„ฑ๋ฆฝ๋˜๋ฉด ๋งŒ์กฑ๋œ๋‹ค.
    1) ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ ๋ถ€๋ชจ ๋ฆด๋ ˆ์ด์…˜์˜ ์–ด๋–ค ํŠœํ”Œ์˜ ๊ธฐ๋ณธํ‚ค ๊ฐ’๊ณผ ๊ฐ™๋‹ค.
    2) ์™ธ๋ž˜ํ‚ค๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๊ฐ€ ์—†๋‹ค๋ฉด, ์™ธ๋ž˜ํ‚ค๋Š” NULL๊ฐ’์„ ๊ฐ€์ง„๋‹ค.


    ํšŒ์› ๋ฆด๋ ˆ์ด์…˜์—์„œ ๋“ฑ๊ธ‰์„ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ๋“ฑ๊ธ‰๋ณ„ ํ• ์ธ๋ฅ  ๋ฆด๋ ˆ์ด์…˜์˜ ๋“ฑ๊ธ‰ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜๋Š” ์—†๋‹ค.
    ์ฆ‰, ์ฐธ์กฐ๋Š” ๊ฐ€๋Šฅํ•˜๋˜ ์‚ญ์ œ๋‚˜ ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.


Reference
์ถœ์ฒ˜1
์ถœ์ฒ˜2

profile
์‚ฌ๋ž‘์•„ ์ปดํ“จํ„ฐํ•ด ~

0๊ฐœ์˜ ๋Œ“๊ธ€