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

[DB] ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ

jjingle 2023. 10. 7. 17:54

๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ(Entity Integrity)

  • ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋Š” ๊ฐ๊ฐ์˜ ๋กœ์šฐ์— ๋Œ€ํ•ด์„œ ์œ ์ผ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฌด๊ฒฐ์„ฑ
  • ๋ฐ˜๋“œ์‹œ ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ํŠธ๋ฆฌ๊ฑฐ๋ณด๋‹ค DBMS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธํ‚ค(Primary Key) ์ œ์•ฝ์กฐ๊ฑด์ด๋‚˜  ์œ ์ผ์„ฑ(Unique) ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•จ

 

* ์œ ์ผํ‚ค(Unique Key) ์ œ์•ฝ์กฐ๊ฑด

  • ์ง€์ •๋œ ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
  • ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ
  • NULL ๊ฐ’์€ ํ—ˆ์šฉ
  • ๋ณตํ•ฉ ์œ ์ผํ‚ค(Composite Unique Key) : ํ•œ ๊ฐœ ์ด์ƒ์˜ ์ปฌ๋Ÿผ์„ ์กฐํ•ฉํ•˜์—ฌ ์œ ์ผํ‚ค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

 

* ๊ธฐ๋ณธํ‚ค(Primary Key) ์ œ์•ฝ์กฐ๊ฑด

  • ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด
  • ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜๋งŒ ์ง€์ • ๊ฐ€๋Šฅํ•จ
  • ์œ ์ผ(Unique)ํ•ด์•ผํ•˜๊ณ , NULL๊ฐ’์„ ๊ฐ€์ง€๋ฉด ์•ˆ๋จ
  • ํŠน์ • ์ปฌ๋Ÿผ(๋“ค)์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•˜๋ฉด, ์ž๋™์œผ๋กœ Unique์ธ๋ฑ์Šค์™€ NOT NULL ์†์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋จ
  • ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ํ•˜๋‚˜์˜ ๊ธฐ๋ณธํ‚ค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • ๊ธฐ๋ณธํ‚ค๋ฅผ ๋งŒ๋“ค๋ฉด Primary Key ์ œ์•ฝ์กฐ๊ฑด์ด, ์œ ์ผํ‚ค๋ฅผ ๋งŒ๋“ค๋ฉด Unique ์ œ์•ฝ์กฐ๊ฑด์ด ์ƒ์„ฑ๋˜๋ฉฐ, ๋‘˜ ๋ชจ๋‘ Unique ์ธ๋ฑ์Šค ์ƒ์„ฑ

 

* ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ›„ ์ง€์ • ๋ฐฉ๋ฒ•

alter table pk_test add constraint pl_col1 primary key(col1);
alter table pk_test add constraint uk_col2 unique key(col2);

 

* ๊ธฐ๋ณธํ‚ค์™€ ์œ ์ผํ‚ค ๋น„๊ต (์˜ค๋ผํด)

ํ•ญ๋ชฉ ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ Unique ์ œ์•ฝ
NULL ํ—ˆ์šฉ X O
์ปฌ๋Ÿผ ์ˆ˜ 1๊ฐœ ์ด์ƒ 1๊ฐœ ์ด์ƒ
ํ…Œ์ด๋ธ”๋‹น ๊ฐœ์ˆ˜ ํ…Œ์ด๋ธ” ๋‹น 1๊ฐœ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑ ๊ฐ€๋Šฅ
์œ ์ผํ•œ ๊ฐ’ ์‹๋ณ„ O O
๊ถŒ๊ณ  ํ•„์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์›์น™ ์ปฌ๋Ÿผ์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ์ง€์ •
์ปฌ๋Ÿผ๋ฐ์ดํ„ฐ ํƒ€์ž… LOB, RAW, BFILE ๋“ฑ์˜ ํŠน์ • ํƒ€์ž…์€ ์ƒ์„ฑ ๋ถˆ๊ฐ€ LOB, RAW, BFILE ๋“ฑ์˜ ํŠน์ • ํƒ€์ž…์€ ์ƒ์„ฑ ๋ถˆ๊ฐ€