software engineering/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์„ค๊ณ„

[DB] ์˜์—ญ ๋ฌด๊ฒฐ์„ฑ

jjingle 2023. 10. 7. 18:25

์˜์—ญ ๋ฌด๊ฒฐ์„ฑ(Domain Integrity)


  • ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ์ปฌ๋Ÿผ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์˜์—ญ(๋„๋ฉ”์ธ) ๋‚ด์— ์†ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•จ
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋Šฅ์— ์˜ํ•ด ์œ ํšจ๊ฐ’์— ๋Œ€ํ•œ ๊ฒ€์ฆ์„ ์„ ํ–‰
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ์•ฝ์กฐ๊ฑด์„ ์„ ์–ธํ•˜์—ฌ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฐ•ํ™”

 

* ์ปฌ๋Ÿผ ๋ฐ์ดํ„ฐ ํƒ€์ž…(Data Type) 

: ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ปฌ๋Ÿผ์— ์ €์žฅ๋˜๋Š” ๊ฐ’์˜ ํ˜•์‹๊ณผ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•œ ๊ธฐ์ดˆ ๋‹จ์œ„

 

* ์ตœ์†Œํ•œ์˜ ํฌ๊ธฐ

  • ๋ฐ์ดํ„ฐ ํƒ€์ž… ์„ ์ •์˜ ๊ธฐ๋ณธ ์›์น™์€ ์ตœ์†Œํ•œ์˜ ํฌ๊ธฐ๋กœ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ ์š”๊ตฌ๋ฅผ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์„ ์„ ์ •ํ•˜๋Š” ๊ฒƒ
  • ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„์ด ์ ์„ ์ˆ˜๋ก ํ•œ ๋ธ”๋ก(ํŽ˜์ด์ง€)์— ๋” ๋งŽ์€ ๋กœ์šฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ธ”๋ก(ํŽ˜์ด์ง€) ๋กœ๋”ฉ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค์–ด ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๊ฒŒ ๋จ
  • ๋ฌธ์ž์™€ ์ˆซ์ž ๋ฐ์ดํ„ฐ ํ˜•์‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ •์˜๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ 90% ์ด์ƒ์„ ์ฐจ์ง€ํ•จ

 

* ๋ฐ์ดํ„ฐ ํƒ€์ž… ๊ฒฐ์ • ๊ธฐ์ค€

  1. ์ ์€ ๋ฐ”์ดํŠธ ์ˆ˜๋กœ ๊ฐ’์„ ํ‘œํ˜„ ์—ฌ๋ถ€ : ์ €์žฅ ๊ณต๊ฐ„์ด ์ ์„์ˆ˜๋ก ํ•œ ํŽ˜์ด์ง€์— ๋งŽ์€ ๋กœ์šฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ
  2. ์—ฐ์‚ฐ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ธ์ง€ ์—ฌ๋ถ€ : ์ˆซ์ž๋‚˜ ๋‚ ์งœ ํƒ€์ž…์€ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅ
  3. ๊ฐ’์˜ ํ˜•์‹ ๊ฒ€์‚ฌ : ์ •์ˆ˜ํ˜•, ๋‚ ์งœํ˜• ๋“ค์„ ์ง€์ •ํ•  ๊ฒฝ์šฐ ์ˆซ์ž๋‚˜ ๋‚ ์งœ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋งŒ์œผ๋กœ ์ œ์•ฝํ•  ์ˆ˜ ์žˆ์Œ

 

* ํ…Œ์ด๋ธ” ์„ค๊ณ„ ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ

  • ์ˆ˜์ง๋ถ„ํ• 
    • ์ปฌ๋Ÿผ ๋ฐ์ดํ„ฐ ๊ธธ์ด ํ•ฉ์ด 1๋ธ”๋ก ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ์ˆ˜์ง ๋ถ„ํ• ์„ ๊ณ ๋ ค(์†๋„ ์ €ํ•˜ ํ˜„์ƒ ์œ ๋ฐœ)
    • ์ปฌ๋Ÿผ ๊ธธ์ด๊ฐ€ ๊ธธ๊ณ  ํŠน์ • ์ปฌ๋Ÿผ์˜ ์‚ฌ์šฉ ๋นˆ๋„ ์ฐจ์ด๊ฐ€ ์‹ฌํ•œ ๊ฒฝ์šฐ์ด๊ฑฐ๋‚˜, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์ด ํŠน์ • ์ปฌ๋Ÿผ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ™์ด ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ ์€ ๊ฒฝ์šฐ
  • NULL
    • ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์€(๋ชจ๋ฅด๋Š”) ๊ฐ’์ด๋‚˜, ํ•ด๋‹น์—†์Œ(Inapplication) ๋“ฑ์˜ ์ด์œ ๋กœ ์ •๋ณด ๋ถ€์žฌ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ’
    • ๊ณต๋ฐฑ(Blank), 0(Zero) ์™€ ๋ถ„๋ช…ํžˆ ๋‹ค๋ฅธ ๊ฐœ๋…
    • ์ˆซ์ž ํƒ€์ž…์˜ ์ปฌ๋Ÿผ์€ NULL๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ
    • ์ปฌ๋Ÿผ ์ˆœ์„œ ๋’ท์ชฝ์— ๋ฐฐ์น˜
  • CHECK
    • ์ปฌ๋Ÿผ ์œ ํšจ๊ฐ’์— ๋Œ€ํ•œ ์ œ์•ฝ์กฐ๊ฑด์œผ๋กœ CHECK์ด์šฉ
    • ์‚ฝ์ž…(์ˆ˜์ •)๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์‚ฌํ•ด์„œ ํ•ด๋‹น๋˜๋Š” ์˜์—ญ์˜ ๋ฐ์ดํ„ฐ๋ฉด ์ง„ํ–‰์‹œํ‚ค๊ณ , ์•„๋‹ˆ๋ฉด ์ž‘์—… ์ทจ์†Œํ•˜๋Š” ์—ญํ• 
  • DEFAULT
    • ์ œ์•ฝ์กฐ๊ฑด์€ ์•„๋‹ˆ์ง€๋งŒ ์ปฌ๋Ÿผ ๋‹จ์œ„๋กœ ์„ค์ •๋˜๋Š” ์†์„ฑ
    • ์‚ฝ์ž…ํ•  ๋•Œ ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ฐ’์„ ์ž๋™์œผ๋กœ ๋„ฃ์–ด์ฃผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜