๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/SQL

[Oracle] Constraint ์ œ์•ฝ์กฐ๊ฑด

by OR15A 2024. 1. 5.
์ œ์•ฝ์กฐ๊ฑด์˜ ๊ฐœ๋…
  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€๋ฅผ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•จ
  • ์ œ์•ฝ์กฐ๊ฑด์„ ๋งŒ๋“  ์ด์œ : DB๋ณดํ˜ธ(์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด๋‚˜ ์‹ค์ˆ˜๋“ฑ์„ ๋ฐฉ์ง€ํ•จ)
  • ํ…Œ์ด๋ธ”๊ณผ ๋”ฐ๋กœ ์ƒ์„ฑ๋จ
  • ๋ชจ๋“  ์ œ์•ฝ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ์‚ฌ์ „์— ์ €์žฅ๋จ
  • ์˜๋ฏธ์ด๋ฆ„ ๋ถ€์—ฌํ•˜๋ฉด ์ข‹์Œ
  • ์ œ์•ฝ์กฐ๊ฑด ์ •์˜ ๋ ˆ๋ฒจ: โ‘ ์นผ๋Ÿผ โ‘กํ…Œ์ด๋ธ”

 

 

 

Constraint ์ œ์•ฝ์กฐ๊ฑด์˜ ์ข…๋ฅ˜

Constraint ์ œ์•ฝ์กฐ๊ฑด์˜ ์ข…๋ฅ˜

โ‘  PK

  • Primary Key. ํ…Œ์ด๋ธ”์— ๋‹จ ํ•˜๋‚˜๋งŒ ํ—ˆ์šฉ.
  • PK๋Š” ๋‹จ์ผ์นผ๋Ÿผ์ด๊ฑฐ๋‚˜๋‚˜ ์—ฌ๋Ÿฌ์นผ๋Ÿผ์˜ ์กฐํ•ฉ๋„ ๊ฐ€๋Šฅ.
  • ๋Ÿฌ์นผ๋Ÿผ์˜ ์กฐํ•ฉ์ผ ๋•Œ ๋ชจ๋“  ์นผ๋Ÿผ์ด ๊ฐ’์ด ์žˆ์–ด์•ผํ•จ.
  • NULL๊ฐ’ ํ—ˆ์šฉX. Java์˜ Map-Key์™€ ๊ฐ™์€ ๊ฒƒ.
  • PK๋กœ ์„ค์ •๋œ ์นผ๋Ÿผ์— ๋Œ€ํ•ด UNIQUE ์ธ๋ฑ์Šค ์ž๋™
  • ์ƒ์„ฑํ•จ. ์ธ๋ฑ์Šค=๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์ค‘๋ณต ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ.

 

โ‘ก NOT NULL

  • NULL๊ฐ’ ํ—ˆ์šฉX

 

โ‘ข UNIQUE

  • ๋ชจ๋“  ํ–‰์—์„œ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒƒ(=์ค‘๋ณตX)

 

โ‘ฃ FK

  • FOREIGN KEY. ์ž์‹ํ…Œ์ด๋ธ”์— ์ •์˜ํ•จ.
  • ๋ถ€๋ชจ์˜ ๊ฐ’๊ณผ ์ผ์น˜ or NULL
  • ์ œ์•ฝ์กฐ๊ฑด ์ค„ ๋•Œ ON DELETE CASCDE ์˜ต์…˜ ์ค„ ์ˆ˜ ์žˆ์Œ(์ฐธ์กฐํ•˜๋Š” ํ–‰๋„ ์ž๋™ ์‚ญ์ œ ๊ฐ€๋Šฅ)

 

โ‘ค CHECK

  • ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์กฐ๊ฑด ์„ค์ •. ์กฐ๊ฑด ๋งŽ์œผ๋ฉด ์ž…๋ ฅ ๋Š๋ฆผ
  • CHECK ์กฐ๊ฑด์— ๋งŒ์กฑ ์•ˆํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” INSERT X, UPDATE X

 

 

 

๋ฐ์ดํ„ฐ ์กฐ์ž‘์‹œ ์ œ์•ฝ์กฐ๊ฑด์˜ ์ ์šฉ
  • ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด DML๋ช…๋ น ์‹œ ์ œ์•ฝ์กฐ๊ฑด์˜ ํšจ๋ ฅ์ด ๋ฐœ์ƒํ•จ.
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ 
    • *์ž์‹ํ…Œ์ด๋ธ”์— ์ž…๋ ฅ/์ˆ˜์ •ํ•˜๋ ค๋Š” ๊ฐ’์ด  ๋ถ€๋ชจํ…Œ์ด๋ธ”์— ์—†์Œ
    • *๋ถ€๋ชจํ…Œ์ด๋ธ”์—์„œ ์‚ญ์ œํ•˜๋ ค๋Š”๊ฐ’์ด  ์ž์‹ํ…Œ์ด๋ธ”์—์„œ ์ฐธ์กฐํšœ
  • ๊ทธ ์™ธ์˜ ๊ธฐํƒ€ ์ œ์•ฝ์กฐ๊ฑด์— ์œ„๋ฐฐ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ/์ˆ˜์ •/์‚ญ์ œ์˜ ๊ฒฝ์šฐ ์ œ์•ฝ์กฐ๊ฑด์˜ค๋ฅ˜ ๋ฐœ์ƒํ•จ

 

 

 

์ œ์•ฝ์กฐ๊ฑด์ด ๊ฐ€๋Šฅํ•œ ๋ ˆ๋ฒจ