๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

์ •๊ทœํ™”(Normalization)

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด์ƒ ํ˜„์ƒ, ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜์  ์ข…์†์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด์ƒ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๋Š” ํ‘œ์ค€์ธ ์ •๊ทœํ™”(Normalization)๋ฅผ ์ •๋ฆฌํ•ด๋ด…์‹œ๋‹ค.

 

์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”๋“ค์ด ์„œ๋กœ ์ด์ƒ ํ˜„์ƒ์„ ๋งŒ๋“ค์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. 1NF ๋ถ€ํ„ฐ 6NF, ๊ทธ๋ฆฌ๊ณ  BCNF ๊ฐ€ ์žˆ์ง€๋งŒ ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” 1NF ~ 3NF ๊ทธ๋ฆฌ๊ณ  BCNF์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1NF(First Normal Form)

๐Ÿ’ก ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์†์„ฑ์ด atomic value์ด์–ด์•ผ ํ•œ๋‹ค.

์ œ 1 ์ •๊ทœํ˜•์˜ ๊ทœ์น™์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ atomic value๋Š” ๋” ์ด์ƒ ์ชผ๊ฐœ์งˆ ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •๋ง ๋‹จ์ˆœํ•˜๊ฒŒ ๊ฐ ์†์„ฑ์ด ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

student_id student_name department course_id
1 ์—ฌํ›ˆ ์ „์ „ 1, 2, 3
2 ์œค์ด ์ƒ์‚ฌ 3

์œ„์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค. 1NF ๋ฅผ ๋งŒ์กฑํ•˜๋ ค๋ฉด ๋ชจ๋“  ์†์„ฑ์ด ์›์ž๊ฐ’์„ ๊ฐ€์ ธ์•ผํ•˜๋Š”๋ฐ, ์ฒซ๋ฒˆ์งธ ๋ ˆ์ฝ”๋“œ์˜ course_id๋ฅผ ๋ณด๋ฉด 3๊ฐœ์˜ ๊ฐ’์ด ํ•ฉ์„ฑ๋˜์–ด ๋“ค์–ด๊ฐ€์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1NF๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ด ํŠœํ”Œ์„ atomicํ•˜๊ฒŒ ์ชผ๊ฐœ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

student_id student_name department course_id
1 ์—ฌํ›ˆ ์ „์ „ 1
1 ์—ฌํ›ˆ ์ „์ „ 2
1 ์—ฌํ›ˆ ์ „์ „ 3
2 ์œค์ด ์ƒ์‚ฌ 3

์ค‘๋ณต๋œ ์ •๋ณด๊ฐ€ ๋งŽ์ด ๋“ค์–ด๊ฐ€ ์žˆ์–ด ๋ณ„๋กœ ์ข‹์€ ํ…Œ์ด๋ธ”๋กœ ๋ณด์ด์ง€๋Š” ์•Š์ง€๋งŒ 1NF์— ๋งŒ์กฑ๋˜๋Š” ํ…Œ์ด๋ธ”์ด ์™„์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2NF (Second Normal Form)

๐Ÿ’ก1NF ๋ฅผ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.
๐Ÿ’กํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ๋Œ€ํ•ด ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๋ถ€๋ถ„ ํ•จ์ˆ˜์  ์ข…์†์ด ์กด์žฌํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

Normalization์€ ์ฐจ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ์ด์ „ ์ฐจ์ˆ˜์˜ ๊ทœ์น™์„ ํฌํ•จํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ œ 2 ์ •๊ทœํ˜•์€ ์ œ 1 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๋™์‹œ์— ๊ทœ์น™์ด ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์†์„ฑ์ด ํ•จ์ˆ˜์  ์ข…์†์„ฑ์„ ๋งŒ์กฑํ•ด์•ผํ•œ๋‹ค๋Š”๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์ด ์ •๊ทœํ˜•์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ…Œ์ด๋ธ” ๋‚ด์— ๋ชจ๋“  ํ•จ์ˆ˜์  ์ข…์†์„ฑ ๊ด€๊ณ„๋ฅผ ๋จผ์ € ํŒŒ์•…ํ•˜๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

 

student_id course_name class_room grade
1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203 3.0
2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203 3.5
3 ์•Œ๊ณ ๋ฆฌ์ฆ˜ 411 2.5
4 ์‹ฌ๋ฆฌํ•™๊ฐœ๋ก  102 4.5

์œ„ ํ…Œ์ด๋ธ”์—์„œ ํ•จ์ˆ˜์  ์ข…์†์„ฑ์„ ๋ชจ๋‘ ๋‚˜์—ดํ•ด๋ด…์‹œ๋‹ค.

  • {student_id, course_name} -> class_room
  • {student_id, course_name} -> grade
  • {course_name} -> class_room

1๋ฒˆ๊ณผ 3๋ฒˆ์„ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, {student_id, course_name} ์„ ๋ชจ๋‘ ์•Œ์ง€ ๋ชปํ•ด๋„, course_name๋งŒ ์•Œ๊ณ ์žˆ๋‹ค๋ฉด, class_room์„ ํŠน์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. class_room์—๋Š” ๋ถ€๋ถ„์  ํ•จ์ˆ˜์  ์ข…์†์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

๋ชจ๋“  ์†์„ฑ๋“ค์ด ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†์„ ํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ถ€๋ถ„์  ํ•จ์ˆ˜์  ์ข…์†์ด ๋ฐœ์ƒํ•˜๋Š” ์†์„ฑ์„ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

student_id course_name grade
1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 3.0
2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 3.5
3 ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2.5
4 ์‹ฌ๋ฆฌํ•™๊ฐœ๋ก  4.5

 

course_name class_room
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203
์•Œ๊ณ ๋ฆฌ์ฆ˜ 411
์‹ฌ๋ฆฌํ•™๊ฐœ๋ก  102

์ด๋ ‡๊ฒŒ ๋‘ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋ˆ„์–ด ์ฃผ๋ฉด ๊ฐ๊ฐ์˜ ํ…Œ์ด๋ธ”์ด ํ•จ์ˆ˜์  ์ข…์†์„ฑ์„ ์™„์ „ํžˆ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  2NF๋ฅผ ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ด๋ธ”์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

3NF (Third Normal Form)

๐Ÿ’ก2NF ๋ฅผ ๋งŒ์กฑํ•ด์•ผํ•œ๋‹ค.
๐Ÿ’ก๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ์ดํ–‰์  ํ•จ์ˆ˜์  ์ข…์†์„ ๊ฐ€์ง€๋ฉด ์•ˆ๋œ๋‹ค.

์ดํ–‰์  ํ•จ์ˆ˜์  ์ข…์†(Transitive Functional Dependency)์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜ํ•™์ ์œผ๋กœ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

if X -> Y, Y -> Z then X -> Z

โ€‹

student_id course_name class_room grade
1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203 3.0
2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203 3.5
3 ์•Œ๊ณ ๋ฆฌ์ฆ˜ 411 2.5
4 ์‹ฌ๋ฆฌํ•™๊ฐœ๋ก  102 4.5

์œ„ ํ…Œ์ด๋ธ”์—์„œ student_id ๋Š” ๊ธฐ๋ณธํ‚ค๋กœ ํ…Œ์ด๋ธ”์˜ ํŠœํ”Œ์„ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

  • student_id(X) -> course_name(Y)
  • course_name(Y) -> class_room(Z)
  • student_id(X) -> class_room(Z)

์œ„ ํ…Œ์ด๋ธ”์—์„œ ์ข…์†๊ด€๊ณ„๋ฅผ ๋ณด๋ฉด, student_id ๋ฅผ ํ†ตํ•ด course_name ์„ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๊ณ , course_name ์„ ํ†ตํ•ด class_room ์„ ํŠน์ • ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, student_id ๊ฐ€ class_room ์„ ํŠน์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์ดํ–‰์  ํ•จ์ˆ˜์  ์ข…์†์ธ X->Y, Y->Z, then X->Z ๊ฐ€ ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ‚ค๋ฅผ ํ†ตํ•ด ํŠน์ •ํ•œ ์†์„ฑ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์‹œ์—์„œ๋Š” ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ course_name์ด class_room์„ ํŠน์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดํ–‰์  ํ•จ์ˆ˜์  ์ข…์†์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ๊ด€๊ณ„๋ฅผ ๋ถ„๋ฆฌํ•ด์ค„ ๋•Œ๋Š”, X, Y ๋ฅผ ๋”ฐ๋กœ ํ•œ ํ…Œ์ด๋ธ”, Y, Z ๋ฅผ ๋”ฐ๋กœ ํ•œ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

student_id course_name
1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
3 ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

course_name class_room
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 203
์•Œ๊ณ ๋ฆฌ์ฆ˜ 411
์‹ฌ๋ฆฌํ•™๊ฐœ๋ก  102

์ด์ œ ์ดํ–‰์  ํ•จ์ˆ˜์ข…์†์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํ…Œ์ด๋ธ” ๋‘ ๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๊ณ  3NF๋ฅผ ๋งŒ์กฑํ•˜๋Š” ํ…Œ์ด๋ธ”์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

BCNF (Boyce Codd Normal Form)

๐Ÿ’ก3NF๋ฅผ ๋งŒ์กฑํ•œ๋‹ค
๐Ÿ’กX->Y ์ผ ๋•Œ, ๋ชจ๋“  X๋Š” ํ•ญ์ƒ Candidate Key ์ด๊ฑฐ๋‚˜ Y ์— ์†ํ•ด์•ผํ•œ๋‹ค.

BCNF ๋Š” ์ œ 3 ์ •๊ทœํ˜•์„ ์กฐ๊ธˆ ๋” ๊ฐ•ํ™”ํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

 

student_id course_name professor
1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฌํ›ˆ
2 ๋ชจ๋ฐ”์ผ์•ฑ๊ฐœ๋ฐœ ์œค์ด
3 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง€์€
4 ๋ชจ๋ฐ”์ผ์•ฑ๊ฐœ๋ฐœ ์œค์ด

์œ„ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ํ•˜๊ณ , ๋จผ์ € ๊ฐ ์ •๊ทœํ™” ๋ชจ๋ธ์€ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

  • 1NF: ๋ชจ๋“  ์†์„ฑ๋“ค์€ atomicํ•œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • 2NF: ๊ธฐ๋ณธํ‚ค์— ๋Œ€ํ•ด ๋ถ€๋ถ„์  ํ•จ์ˆ˜์  ์ข…์†์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • {student_id} -> {course_name, professor}
    • {professor} -> course_name
    • {course_name} -> professor
  • 3NF: ๊ธฐ๋ณธํ‚ค๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์†์„ฑ๋Š” ์ดํ–‰์  ํ•จ์ˆ˜์  ์ข…์† ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • course_name -> student_id โŒ
    • course_name -> professor -> student_id โŒ
    • professor -> course_name -> student_id โŒ
    • professor -> student_id โŒ

์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ๋ณด๋ฉด ์œ„ ํ…Œ์ด๋ธ”์€ ์ •๊ทœํ™”๋ฅผ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด์ƒ ํ˜„์ƒ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ๊ฐ•์‚ฌ์— ์˜ํ•ด ์ƒˆ๋กœ์šด ์ˆ˜์—…์ด ์—ด๋ฆฐ๋‹ค๋ฉด, ์œ„ ํ…Œ์ด๋ธ”์—์„œ ๋งค์นญ์‹œํ‚ฌ student_id๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ฝ์ž… ์ด์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • student_id = 2 ๋ฅผ ์ง€์šฐ๊ฒŒ ๋˜๋ฉด, ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์ด๋ผ๋Š” ์ˆ˜์—…๊ณผ ์œค์ด๋ผ๋Š” ๊ต์ˆ˜์ด๋ฆ„์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ญ์ œ ์ด์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ๋ชจ๋ฐ”์ผ์•ฑ๊ฐœ๋ฐœ ์ˆ˜์—…์˜ ๊ต์ˆ˜๊ฐ€ ๋ฐ”๋€Œ๊ฒŒ ๋  ๊ฒฝ์šฐ์—๋Š” ์œ„ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋‘ ๋ช…์ด์ง€๋งŒ, ๋ชจ๋“  ์ˆ˜๊ฐ•์ƒ์— ๋Œ€ํ•ด์„œ ์ •๋ณด๋ฅผ ๋ฐ”๊ฟ”์ค˜์•ผํ•˜๋Š” ๊ฐฑ์‹  ์ด์ƒ ๋˜ํ•œ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, BCNF ๋ฅผ ํ†ตํ•ด ์ •๊ทœํ™” ์ž‘์—…์„ ๊ฑฐ์ณ์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ์ž˜ ์‚ดํŽด๋ณด๋ฉด, ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ professor ๊ฐ€ course_name์— ๋Œ€ํ•ด์„œ ๊ฒฐ์ •์ž๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ professor ๋งŒ์œผ๋กœ๋Š” ํ…Œ์ด๋ธ” ์ „์ฒด์—์„œ ํŠœํ”Œ์„ ํŠน์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ํ›„๋ณดํ‚ค๊ฐ€ ๋  ์ˆ˜ ์—†๊ณ  ๊ธฐ๋ณธํ‚ค์— ์†ํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ BCNF๋ฅผ ์œ„๋ฐ˜ํ•œ ํ…Œ์ด๋ธ”์ด ๋ฉ๋‹ˆ๋‹ค.

 

์งง๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด, ํ›„๋ณดํ‚ค์ด๊ฑฐ๋‚˜ ๊ธฐ๋ณธํ‚ค์— ์†ํ•˜๋Š” ์†์„ฑ์ด ์•„๋‹ˆ๋ฉด์„œ ๋‹ค๋ฅธ ์†์„ฑ๋“ค์„ ํŠน์ •ํ•˜๋Š” ์†์„ฑ์ด ์žˆ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

BCNF ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋จผ์ € ๊ธฐ๋ณธํ‚ค๊ฑฐ๋‚˜ ํ›„๋ณดํ‚ค๊ฐ€ ์•„๋‹Œ ๊ฒฐ์ •์ž์˜ ํ•จ์ˆ˜ ์ข…์†๊ด€๊ณ„๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
    • professor(X) -> course_name(Y)
    • course_name(X) -> professor(Y)
  • ์ด์ œ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ค€์€:
    • XY ๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ด๋ธ”
    • X์™€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋‚˜๋จธ์ง€ ์†์„ฑ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ด๋ธ”.

์œ„ ๊ทœ์น™์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์„ ๋‚˜๋ˆ„๋ฉด,

  • professor -> course_name
professor course_name
์—ฌํ›ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์œค์ด ๋ชจ๋ฐ”์ผ์•ฑ๊ฐœ๋ฐœ
์ง€์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • student_id -> professor
student_id professor
1 ์—ฌํ›ˆ
2 ์œค์ด
3 ์—ฌํ›ˆ
4 ์ง€์€

์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด BCNF๊นŒ์ง€ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค. ์ด์ œ BCNF๋ฅผ ๋งŒ์กฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.