์์ฑ 2026. 6. 12.ยท์์ 2026. 6. 12.
- Relational Database Design(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ)
- ์ ๋ณด ์๊ตฌ์ฌํญ์ ๋ง๋ "์ข์" relation schema(relation schema)์ ์งํฉ์ ์ฐพ๋ ๊ณผ์
- ์ค๊ณ ๋ชฉํ
- ํํผ ๊ฐ๋ฅํ redundancy ์์ด ๋ชจ๋ ํ์ํ ์ ๋ณด๋ฅผ ํํ(์ ์ฅ)ํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค schema ์ค๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ relation ๋ฐ ๊ฐ relation์ schema ์ ์
- R=(A,B,C,D,E) : ๋จ์ผ relation schema
- DB={R1โ,โฆ,Rn} : ๋ฐ์ดํฐ๋ฒ ์ด์ค schema (relation schema์ ์งํฉ)
- Relational database design์ ํจ์
- ์๋ชป๋ ์ค๊ณ๋ ๋ค์์ ์ผ๊ธฐํ ์ ์์.
- ํน์ ์ ๋ณด ํํ ๋ถ๊ฐ
- ์ ๋ณด์ ๋ฐ๋ณต
- ์ ๋ณด์ ์์ค
- ์ค๊ณ ๋ชฉํ
- Attribute ๊ฐ์ relation์ด ํํ๋๋๋ก ๋ณด์ฅ
- ์ค๋ณต ๋ฐ์ดํฐ ํํผ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค integrity constraint์ ์ฉ์ดํ ์ ์ฉ
| ID | name | salary | dept_name | building | budget |
|---|
| 22222 | Einstein | 95000 | Physics | Watson | 70000 |
| 12121 | Wu | 90000 | Finance | Painter | 120000 |
| 32343 | El Said | 60000 | History | Painter | 50000 |
| 45565 | Katz | 75000 | Comp. Sci. | Taylor | 100000 |
| 98345 | Kim | 80000 | Elec. Eng. | Taylor | 85000 |
| 76766 | Crick | 72000 | Biology | Watson | 90000 |
| 10101 | Srinivasan | 65000 | Comp. Sci. | Taylor | 100000 |
| 58583 | Califieri | 62000 | History | Painter | 50000 |
| 83821 | Brandt | 92000 | Comp. Sci. | Taylor | 100000 |
| 15151 | Mozart | 40000 | Music | Packard | 80000 |
| 33456 | Gold | 87000 | Physics | Watson | 70000 |
| 76543 | Singh | 80000 | Finance | Painter | 120000 |
instructor์ department relation์ natural joinํ์ฌ in_dep์ผ๋ก ๊ฒฐํฉํ๋ค๊ณ ๊ฐ์ - ์ ๋ณด์ ๋ฐ๋ณต(redundancy) ๋ฐ์
- (๊ฐ์ฌ๊ฐ ์๋ ์๋ก์ด ๋ถ์๋ฅผ ์ถ๊ฐํ ๊ฒฝ์ฐ) Null value(null๊ฐ) ์ฌ์ฉ ํ์
- ์ด relation schema์ primary key๋ ๋ฌด์์ด ๋ ์ ์๋๊ฐ?
(ID, dept_name): ID์ null๊ฐ์ด ์ฌ ์ ์์ผ๋ฏ๋ก dept_name์ด ํค์ ํฌํจ๋์ด์ผ ํจ.
- Anomalies(์ด์ ํ์) (by Codd)
- Insertion anomaly(์ฝ์
์ด์): ๊ฐ์ฌ ์์ด๋ ์๋ก์ด ๋ถ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅ
- ๋ฐ๋์งํ์ง ์์ null๊ฐ ์ฌ์ฉ ํ์
- Deletion anomaly(์ญ์ ์ด์): ํ ๋ถ์์ ์ ์ผํ ๊ฐ์ฌ๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ (์: Music ๋ถ์์ Mozart)
- ๋ถ์ ์ ๋ณด๋ฅผ ๋ณด์กดํ๊ธฐ ์ํด null๊ฐ ์ฌ์ฉ ํ์
- ํด๋น ์ฌ๋ก๋ฅผ ์๋ณํ๊ธฐ ์ํ ๋ณต์กํ ์ญ์ ๋ก์ง ์๊ตฌ
- Update anomaly(๊ฐฑ์ ์ด์): CS ๋ถ์์ ์์ฐ์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ
- CS ๋ถ์์ ๋ชจ๋ ์ค๋ณต๋ ๋ ์ฝ๋์ ๋ํ ๊ฐฑ์ ํ์
- ์์ธ: ๋ฐ์ดํฐ redundancy
- ๋จ์ผ ํ
์ด๋ธ์ ์ฌ๋ฌ ์ํฐํฐ๊ฐ ๊ณต์กด
- ํด๊ฒฐ์ฑ
: Decomposition(๋ถํด)
in_dep schema์์ ์ ๋ณด ๋ฐ๋ณต ๋ฌธ์ ๋ฅผ ํผํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ schema๋ฅผ instructor์ department ๋ ๊ฐ๋ก ๋ถํดํ๋ ๊ฒ - ๋ถํด๋ schema๋ ์ด์ ์์ ์ ๋ฌธ์ ๋ค์ ๊ฐ์ง์ง ์์.
- ๋ชจ๋ ๋ถํด๊ฐ ์ข์ ๊ฒ์ ์๋.
employee(ID, name, street, city, salary)๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ถํดํ๋ค๊ณ ๊ฐ์ employee1(ID, name)employee2(name, street, city, salary)
- ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋ ๋ช
์ ์ง์์ด ์์ ๋ ๋ฌธ์ ๋ฐ์
- ์๋ณธ
employee relation๋ฅผ ์ฌ๊ตฌ์ฑํ ์ ์์: Lossy decomposition(์์ค ๋ถํด)
- ๋ค์ ์ฌ๋ผ์ด๋๋ ์ ๋ณด๊ฐ ์ด๋ป๊ฒ ์์ค๋๋์ง ๋ณด์ฌ์ค

- ID 57766์ธ Kim์ด Perryridge์ ์ฐ๋ค๋ ๊ฒ์ ํ์ ๊ฐ๋ฅ
- (๋ถํด ํ ๋ค์ joinํ์ ๋) ID 57766์ธ Kim์ด ์ด๋์ ์ฌ๋์ง ํ์ ๋ถ๊ฐ๋ฅ!
- r
| A | B | C |
|---|
| ฮฑ | 1 | A |
| ฮฒ | 2 | B |
- ฮ A,Bโ(r)
| A | B |
|---|
| ฮฑ | 1 |
| ฮฒ | 2 |
- ฮ B,Cโ(r)
- ฮ A,Bโ(r)โฮ B,Cโ(r)
| A | B | C |
|---|
| ฮฑ | 1 | A |
| ฮฒ | 2 | B |
- ํน์ relation R์ด "์ข์ ํํ"์ธ์ง, ์ฆ ์ ๋ณด ๋ฐ๋ณต ๋ฌธ์ ๊ฐ ์๋์ง ํ๋จ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ผ๋ก normalization(์ ๊ทํ)์ผ๋ก ์๋ ค์ง ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์.
- Normalization์ ๋ชฉํ
- Relation R์ด "์ข์ ํํ"๊ฐ ์๋ ๊ฒฝ์ฐ, ์ด๋ฅผ relation์ ์งํฉ {R1โ,R2โ,โฆ,Rnโ}์ผ๋ก ๋ถํด
- ๊ฐ relation์ ์ข์ ํํ(Normal form, ์ ๊ทํ)์.
- ๋ถํด๋ ๋ฌด์์ค ๋ถํด์.
- ์ด ์ด๋ก ์ ๋ค์์ ๊ธฐ๋ฐํจ.
- Functional dependencies(ํจ์ ์ข
์์ฑ) (๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์)
- Multivalued dependencies (์ด ์์
์์๋ ๋ค๋ฃจ์ง ์์)
- ํ์ค ์ธ๊ณ์ ๋ฐ์ดํฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ํ Constraint (rule)์ด ์กด์ฌ
- ์๋ฅผ ๋ค์ด, ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ์ง๋ ๊ฒ์ผ๋ก ์์๋๋ ์ ์ฝ์กฐ๊ฑด
- ํ์๊ณผ ๊ฐ์ฌ๋ ID๋ก ๊ณ ์ ํ๊ฒ ์๋ณ๋จ
- ๊ฐ ํ์๊ณผ ๊ฐ์ฌ๋ ํ๋์ ์ด๋ฆ๋ง ๊ฐ์ง
- ๊ฐ ๊ฐ์ฌ์ ํ์์ (์ฃผ๋ก) ํ๋์ ๋ถ์์๋ง ์์๋จ
- ๊ฐ ๋ถ์๋ ์์ฐ์ ๋ํด ํ๋์ ๊ฐ๋ง ๊ฐ์ง๋ฉฐ, ํ๋์ ๊ด๋ จ๋ ๊ฑด๋ฌผ๋ง ์์.
- ์ด๋ฌํ ๋ชจ๋ ํ์ค ์ธ๊ณ์ ์ ์ฝ์กฐ๊ฑด์ ๋ง์กฑํ๋ relation์ ์ธ์คํด์ค๋ฅผ legal instance๋ผ ํจ.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ legal instance๋ ๋ชจ๋ relation ์ธ์คํด์ค๊ฐ legal instance์ธ ๊ฒฝ์ฐ์.
- Legal relation ์งํฉ์ ๋ํ ์ ์ฝ์กฐ๊ฑด
- Functional Dependency (FD): ํน์ ์์ฑ ์งํฉ์ ๊ฐ์ด ๋ค๋ฅธ ์์ฑ ์งํฉ์ ๊ฐ์ ๊ณ ์ ํ๊ฒ ๊ฒฐ์ ํ๋๋ก ์๊ตฌ
- ํจ์ ์ข
์์ฑ์ key ๊ฐ๋
์ ์ผ๋ฐํ์.
- ํจ์ ์ข
์์ฑ ์งํฉ F๊ฐ ์ฃผ์ด์ก์ ๋, F์ ์ํด ๋
ผ๋ฆฌ์ ์ผ๋ก ํจ์ถ๋๋ ๋ค๋ฅธ ํน์ ํจ์ ์ข
์์ฑ๋ค์ด ์กด์ฌ
- ๋ง์ฝ AโB์ด๊ณ BโC์ด๋ฉด, AโC๋ฅผ ์ถ๋ก ํ ์ ์์.
- F์ ์ํด ๋
ผ๋ฆฌ์ ์ผ๋ก ํจ์ถ๋ ๋ชจ๋ ํจ์ ์ข
์์ฑ์ ์งํฉ์ F์ Closure(ํํฌ)๋ผ๊ณ ํจ.
- F์ ํํฌ๋ฅผ F+๋ก ํ๊ธฐํจ.
- K๊ฐ relation schema R์ superkey์ธ ๊ฒ์ KโR์ผ ๋์ ๋์น์.
- K๊ฐ R์ candidate key์ธ ๊ฒ์ ๋ค์ ๋ ์กฐ๊ฑด์ ๋ง์กฑํ ๋์ ๋์น์.
- KโR
- ฮฑโK์ธ ์ด๋ค ฮฑ์ ๋ํด์๋ ฮฑโR์ด ์ฑ๋ฆฝํ์ง ์์.
- ํจ์ ์ข
์์ฑ์ superkey๋ฅผ ์ฌ์ฉํ์ฌ ํํํ ์ ์๋ ์ ์ฝ์กฐ๊ฑด์ ํํํ๊ฒ ํด์ค
- Schema
in_dep(ID, name, salary, dept_name, building, budget)๋ฅผ ๊ณ ๋ ค - ์ฃผ๋ก ๋ค์ ํจ์ ์ข
์์ฑ๋ค์ด ์ฑ๋ฆฝํ ๊ฒ์ผ๋ก ๊ธฐ๋ํจ.
dept_name โ buildingID โ building
- ํ์ง๋ง ๋ค์์ ์ฑ๋ฆฝํ์ง ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํจ.
dept_name โ salary
- ํจ์ ์ข
์์ฑ์ ์ฌ์ฉ ๋ชฉ์
- ์ฃผ์ด์ง ํจ์ ์ข
์์ฑ ์งํฉ ํ์์ relation์ด legalํ์ง ํ
์คํธํ๊ธฐ ์ํด
- Relation r์ด ํจ์ ์ข
์์ฑ ์งํฉ F ํ์์ legalํ๋ฉด, r์ด F๋ฅผ ๋ง์กฑํ๋ค๊ณ ๋งํจ.
- Legal relation์ ์งํฉ์ ๋ํ ์ ์ฝ์กฐ๊ฑด ๋ช
์ํ๊ธฐ ์ํด
- R์ ๋ํ ๋ชจ๋ legal relation์ด ํจ์ ์ข
์์ฑ ์งํฉ F๋ฅผ ๋ง์กฑํ๋ฉด, F๊ฐ R์์ ์ฑ๋ฆฝํ๋ค๊ณ ๋งํจ.
- ์ฐธ๊ณ : Relation schema์ ํน์ ์ธ์คํด์ค๋, ๋ชจ๋ legal ์ธ์คํด์ค์์ ํจ์ ์ข
์์ฑ์ด ์ฑ๋ฆฝํ์ง ์๋๋ผ๋, ์ฐ์ฐํ ํด๋น ํจ์ ์ข
์์ฑ์ ๋ง์กฑํ ์ ์์.
- ์๋ฅผ ๋ค์ด,
instructor์ ํน์ ์ธ์คํด์ค๊ฐ ์ฐ์ฐํ name โ ID๋ฅผ ๋ง์กฑํ ์ ์์.
- ํจ์ ์ข
์์ฑ์ด relation์ ๋ชจ๋ ์ธ์คํด์ค(legalํ๋ ์๋๋ )์ ์ํด ๋ง์กฑ๋๋ฉด trivial(์๋ช
ํ) ํจ์ ์ข
์์ฑ์ด๋ผ ํจ.
- ์์
ID, name โ IDname โ name
- ์ผ๋ฐ์ ์ผ๋ก, ฮฑโฮฒ๋ ฮฒโฮฑ์ผ ๋ ์๋ช
ํจ.
- R=(A,B,C), F={AโB,BโC}
- R1โ=(A,B),R2โ=(B,C)๋ ๋ฌด์์ค ๋ถํด์.
- R1โโฉR2โ={B}์ด๊ณ BโBC
- R1โ=(A,B),R2โ=(A,C)๋ ๋ฌด์์ค ๋ถํด์.
- R1โโฉR2โ={A}์ด๊ณ AโAB
- ์ฐธ๊ณ
- BโBC๋ Bโ{B,C}์ ์ถ์ฝ ํ๊ธฐ์.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ฐฑ์ ๋ ๋๋ง๋ค ํจ์ ์ข
์์ฑ ์ ์ฝ์กฐ๊ฑด์ ํ
์คํธํ๋ ๊ฒ์ ๋น์ฉ์ด ๋ง์ด ๋ค ์ ์์.
- ์ ์ฝ์กฐ๊ฑด์ ํจ์จ์ ์ผ๋ก ํ
์คํธํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๋ ๊ฒ์ด ์ ์ฉํจ.
- ํ๋์ relation๋ง ๊ณ ๋ คํ์ฌ ํจ์ ์ข
์์ฑ์ ํ
์คํธํ ์ ์๋ค๋ฉด, ์ด ์ ์ฝ์กฐ๊ฑด์ ํ
์คํธ ๋น์ฉ์ ๋ฎ์.
- Relation๋ฅผ ๋ถํดํ ๋, cartesian product๋ฅผ ์ํํ์ง ์๊ณ ๋ ํ
์คํธ๊ฐ ๋ ์ด์ ๋ถ๊ฐ๋ฅํด์ง ์ ์์.
- ํจ์ ์ข
์์ฑ์ ๊ฐ์ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ถํด๋ dependency preserving์ด ์๋๋ผ๊ณ ํจ.
| Name | City | Prefecture |
|---|
| Kim | Suwon | Kyungki-do |
Name โ City, PrefectureCity โ Prefecture- Lossless decomposition์ด๋ฉด์ dependency preservation
| City | Prefecture |
|---|
| Suwon | Kyungki-do |
Name โ CityCity โ Prefecture- ์ ๋ ํจ์ ์ข
์์ฑ์ผ๋ก๋ถํฐ
Name โ City, Prefecture๊ฐ ์ ๋ - ๋ณธ๋์ ํจ์ ์ข
์์ฑ์ธ
Name โ City ์ City โ Prefecture๊ฐ ๊ฐ๊ฐ ๋ถํด๋ ํ
์ด๋ธ ๋ด์์ ๋ชจ๋ ๋ณด์กด
| Name | Prefecture |
|---|
| Kim | Kyungki-do |
Name โ CityName โ Prefecture- ์ ๋ ํจ์ ์ข
์์ฑ์ผ๋ก๋ถํฐ
Name โ City, Prefecture๊ฐ ์ ๋ - ํ์ง๋ง, ๋ณธ๋์ ํจ์ ์ข
์์ฑ์ด์๋
City โ Prefecture๋ฅผ ๊ฒ์ฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? - ๋ ํ
์ด๋ธ์ joinํด์ผ๋ง ํ์ธ ๊ฐ๋ฅ
- ๊ฒฐ๋ก ์ ์ผ๋ก, ์ด ๋ถํด๋ ์ข
์์ฑ์ ๋ณด์กดํ์ง ๋ชปํจ.
- Relation schema R๊ณผ ํจ์ ์ข
์์ฑ(functional dependency) F์ ์งํฉ์ R1โ,R2โ,โฆ,Rnโ์ผ๋ก ๋ถํด(decompose)ํ ๋ ์ํ๋ ๊ฒ
- ๋ฌด์์ค ๋ถํด(Lossless decomposition)
- ์ค๋ณต ์์(No redundancy)
- ์ข
์์ฑ ๋ณด์กด(Dependency preservation)
- ๋๋ฉ์ธ์ ์์๊ฐ ๋ ์ด์ ๋๋ ์ ์๋ ๋จ์๋ก ๊ฐ์ฃผ๋ ๋, ํด๋น ๋๋ฉ์ธ์ ์์์ (atomic)์.
- ๋น์์์ ๋๋ฉ์ธ์ ์
- ์ด๋ฆ ์งํฉ, ๋ณตํฉ ์์ฑ(composite attribute)
CS101๊ณผ ๊ฐ์ด ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์๋ ์๋ณ ๋ฒํธ
- ๋ชจ๋ ์์ฑ์ ๋๋ฉ์ธ์ด ์์์ ์ผ ๋, relation schema๋ ์ 1 ์ ๊ทํ(First Normal Form, 1NF)์ ์์.
- ์์์ฑ์ ์ค์ ๋ก๋ ๋๋ฉ์ธ์ ์์๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง์ ๋ํ ์์ฑ
- ํ์ ID ๋ฒํธ:
CS0012, EE1127, ... - ํ๊ณผ๋ฅผ ์ฐพ๊ธฐ ์ํด ์์ ๋ ๋ฌธ์๋ฅผ ์ถ์ถํ๋ค๋ฉด, ๋๋ฉ์ธ์ ์์์ ์ด์ง ์์.
- ๊ทธ๋ ์ง ์๋ค๋ฉด, ๋๋ฉ์ธ์ ์์์ ์.
- ๋น์์์ ์์ฑ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก๊ทธ๋จ์์ ์ ๋ณด์ ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ์ผ๋ก ์ด์ด์ง
- ์ ์ฅ ๋ฐ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ๋ณต์กํ
- ๋ชจ๋ relation์ first normal form(1NF)์ ์๋ค๊ณ ๊ฐ์
- Relation schema R์ด ํจ์ ์ข
์์ฑ ์งํฉ F์ ๋ํด BCNF(Boyce-Codd Normal Form)์ ์์ผ๋ ค๋ฉด, F+์ ์๋ ฮฑโฮฒ ํํ(ฮฑโR์ด๊ณ ฮฒโR)์ ๋ชจ๋ ํจ์ ์ข
์์ฑ์ ๋ํด ๋ค์ ์ค ์ ์ด๋ ํ๋๊ฐ ์ฑ๋ฆฝํด์ผ ํจ.
- ฮฑโฮฒ๊ฐ ์๋ช
ํ(trivial) ํจ์ ์ข
์์ฑ (์ฆ, ฮฒโฮฑ)
- ฮฑ๊ฐ R์ superkey (์ฆ, ฮฑโR)
- BCNF๋ 'ํ์คํ' ์กด์ฌํ๋ ๊ฒ ์ธ์๋ ํจ์ ์ข
์์ฑ์ด ์์์ ๋ณด์ฅ
- BCNF๊ฐ ์๋ schema ์์
in_dep(ID, name, salary, dept_name, building, budget ) ์ด์ dept_name โ building, budget์ด in_dep์์ ์ฑ๋ฆฝ- ํ์ง๋ง
dept_name์ superkey๊ฐ ์๋
in_dep์ instructor์ department๋ก ๋ถํดํ ๋ instructor(ID, name, salary, dept_name)์ BCNF์ ์์.department(dept_name, building, budget)์ BCNF์ ์์.
dept_name์ด superkey๊ฐ ์๋๋ฏ๋ก, ๋์ผํ ํ๊ณผ๋ช
์ด ํ
์ด๋ธ์ ๋ฐ๋ณต์ ์ผ๋ก ๋ํ๋ ์ ์์. dept_name์ผ๋ก๋ถํฐ์ ํจ์ ์ข
์์ฑ์ building๊ณผ budget๋ ๋ฐ๋ณต์ ์ผ๋ก ๋ํ๋๊ฒ ํจ.dept_name์ด superkey๋ผ๋ฉด, ์ด๋ฌํ ์ค๋ณต์ ๋ฐ์ํ์ง ์์.
- R์ BCNF์ ์์ง ์์ schema๋ผ๊ณ ๊ฐ์
- ฮฑโฮฒ๋ฅผ BCNF ์๋ฐ์ ์ผ๊ธฐํ๋ ํจ์ ์ข
์์ฑ(FD)์ด๋ผ๊ณ ๊ฐ์
- ์ฆ, ฮฑ๋ R์ superkey๊ฐ ์๋
- R์ ๋ ๊ฐ์ schema๋ก ๋ถํด
- (ฮฑโชฮฒ)
- ฮฑ์ ฮฒ๋ง์ ๊ฐ์ง๋ ๋ค๋ฅธ relation๋ฅผ ์์ฑ
- ฮฑโฮฒ์ด์ง๋ง, ์ด relation์์ ฮฑ๋ superkey์ด๋ฏ๋ก BCNF๋ฅผ ์๋ฐํ์ง ์์.
- (Rโ(ฮฒโฮฑ))
- ์๋ schema์์ ฮฒ๋ฅผ ์ ๊ฑฐํ๊ณ ฮฑ๋ ์ ์ง
- ์ด schema์๋ ๋ ์ด์ ฮฑโฮฒ๊ฐ ์กด์ฌํ์ง ์์.
in_dep ์์์์, dept_name โ building, budget์ด BCNF๋ฅผ ์๋ฐ - ฮฑ=dept_name
- ฮฒ=building,ย budget
- ๋ฐ๋ผ์,
in_dep์ ๋ค์๊ณผ ๊ฐ์ด ๋ถํด๋จ - (ฮฑโชฮฒ)=(dept_name,ย building,ย budget)
- (Rโ(ฮฒโฮฑ))=(ID,ย name,ย salary,ย dept_name)
- R=(A,B,C), F={AโB,BโC}, F+={AโB,BโC,AโC}
- R์ BCNF์ ์์ง ์์, ์๋ํ๋ฉด BโC์ด์ง๋ง B๋ superkey๊ฐ ์๋๊ธฐ ๋๋ฌธ
- R1โ=(A,B),R2โ=(B,C)
- ๋ฌด์์ค-join ๋ถํด: R1โโฉR2โ={B}์ด๊ณ BโBC (์๋ช
ํ ์ข
์์ฑ์ด๋ฏ๋ก ์ค์ ๋ก๋ BโB๋ง ํ์ธ)
- ์ข
์์ฑ ๋ณด์กด: AโB๋ R1โ์, BโC๋ R2โ์ ์์ผ๋ฏ๋ก, R1โโR2โ๋ฅผ ์ํํ์ง ์๊ณ ๋ AโC๋ฅผ ํ
์คํธํ ์ ์์.
- AโC๋ AโB์ BโC์ ์ํด ๋ณด์ฅ๋จ (์ฆ, ๋ช
์์ ํ
์คํธ ๋ถํ์)
- R1โ=(A,B),R2โ=(A,C)
- ๋ฌด์์ค-join ๋ถํด: R1โโฉR2โ={A}์ด๊ณ AโAB (์๋ช
ํ ์ข
์์ฑ์ด๋ฏ๋ก ์ค์ ๋ก๋ AโA๋ง ํ์ธ)
- ์ข
์์ฑ์ ๋ณด์กดํ์ง ์์.
- AโB๋ R1โ์, AโC๋ R2โ์ ์์.
- ํ์ง๋ง R1โโR2โ๋ฅผ ๊ณ์ฐํ์ง ์๊ณ ๋ BโC๋ฅผ ํ์ธํ ์ ์์.
- BCNF์ ์ข
์์ฑ ๋ณด์กด์ ๋ชจ๋ ๋ฌ์ฑํ๋ ๊ฒ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋
- Schema ์์
dept_advisor(student_ID, instructor_ID, dept_name)
- ํจ์ ์ข
์์ฑ
instructor_ID โ dept_namestudent_ID, dept_name โ instructor_ID
- ์ schema๋ ํ ํ์์ด ์๋ก ๋ค๋ฅธ ํ๊ณผ์ ์ฌ๋ฌ ๋ช
์ ์ง๋๊ต์๋ฅผ ๊ฐ์ง ์ ์๋ค๊ณ ๊ฐ์
dept_advisor๋ instructor_ID๊ฐ superkey๊ฐ ์๋๋ฏ๋ก BCNF์ ์์ง ์์.dept_advisor์ ์ด๋ค ๋ถํด๋ student_ID, dept_name โ instructor_ID๋ฅผ ๋ณด์กดํ์ง ๋ชปํจ.- ๋ฐ๋ผ์, ์ด ๋ถํด๋ ์ข
์์ฑ์ ๋ณด์กดํ์ง ์์.
- ๋ค์๊ณผ ๊ฐ์ ์ผ๋ถ ์ํฉ ์กด์ฌ
- BCNF๊ฐ ์ข
์์ฑ์ ๋ณด์กดํ์ง ์์.
- ์
๋ฐ์ดํธ ์ ํจ์ ์ข
์์ฑ ์๋ฐ์ ๋ํ ํจ์จ์ ์ธ ๊ฒ์ฌ๊ฐ ์ค์
- ํด๊ฒฐ์ฑ
: ์ 3 ์ ๊ทํ(Third Normal Form, 3NF)์ด๋ผ๋ ๋ ์ฝํ ์ ๊ทํ ์ ์
- ์ผ๋ถ ์ค๋ณต ํ์ฉ
- ํ์ง๋ง join์ ๊ณ์ฐํ์ง ์๊ณ ๊ฐ๋ณ relation์์ ํจ์ ์ข
์์ฑ์ ๊ฒ์ฌ ๊ฐ๋ฅ
- BCNF์ ๋นํด 3NF๊ฐ ๊ฐ๋ ์ฅ์
- 3NF๋ก์ ๋ฌด์์ค, ์ข
์์ฑ ๋ณด์กด ๋ถํด๊ฐ ํญ์ ์กด์ฌ
- 3NF์ ๋จ์
- ๋ฐ์ดํฐ ํญ๋ชฉ ๊ฐ์ ์๋ฏธ ์๋ relation ์ผ๋ถ๋ฅผ ํํํ๊ธฐ ์ํด null๊ฐ์ ์ฌ์ฉํด์ผ ํ ์ ์์.
- ์ ๋ณด ๋ฐ๋ณต์ ๋ฌธ์ ๊ฐ ์์.
- Relation schema R์ด ์ 3 ์ ๊ทํ(3NF)์ ์์ผ๋ ค๋ฉด, F+์ ๋ชจ๋ ฮฑโฮฒ์ ๋ํด ๋ค์ ์ค ์ ์ด๋ ํ๋๊ฐ ์ฑ๋ฆฝํด์ผ ํจ.
- ฮฑโฮฒ๊ฐ ์๋ช
ํ ํจ์ ์ข
์์ฑ (์ฆ, ฮฒโฮฑ)
- ฮฑ๊ฐ R์ superkey
- ฮฒโฮฑ์ ์๋ ๊ฐ ์์ฑ A๊ฐ R์ ํ๋ณด ํค(candidate key)์ ํฌํจ๋จ (์ฐธ๊ณ : ๊ฐ ์์ฑ์ ๋ค๋ฅธ ํ๋ณด ํค์ ์์ ์ ์์)
- Relation์ด BCNF์ ์์ผ๋ฉด, 3NF์๋ ์์.
- BCNF์์๋ ์์ ์ฒซ ๋ ์กฐ๊ฑด ์ค ํ๋๊ฐ ๋ฐ๋์ ์ฑ๋ฆฝํ๊ธฐ ๋๋ฌธ
- ์ธ ๋ฒ์งธ ์กฐ๊ฑด์ ์ข
์์ฑ ๋ณด์กด์ ๋ณด์ฅํ๊ธฐ ์ํด BCNF๋ฅผ ์ต์ํ์ผ๋ก ์ํํ ๊ฒ
- Schema ์์
dept_advisor(student_ID, instructor_ID, dept_name)
- ํจ์ ์ข
์์ฑ
instructor_ID โ dept_namestudent_ID, dept_name โ instructor_ID
- ๋ ํ๋ณด ํค =
{student_ID, dept_name}, {student_ID, instructor_ID} - ์์
dept_advisor๋ BCNF์ ์์ง ์์์ ํ์ธํ์. - ๊ทธ๋ฌ๋ R์ 3NF์ ์์.
student_ID, dept_name์ superkeyinstructor_ID โ dept_name์ด์ง๋ง instructor_ID๋ superkey๊ฐ ์๋. ํ์ง๋ง,- {dept_name}โ{instructor_ID}={dept_name}์ด๊ณ
dept_name์ ํ๋ณด ํค์ ํฌํจ๋จ
- 3NF์ ์์ง๋ง BCNF์๋ ์๋ ์๋ schema R์ ๊ณ ๋ ค
- R=(J,K,L)
- F={JKโL,LโK}, ๋ ํ๋ณด ํค: JK์ JL
- ๊ทธ๋ฆฌ๊ณ ์ธ์คํด์ค ํ
์ด๋ธ
- ํ
์ด๋ธ์ ๋ฌธ์ ์ ์ ๋ฌด์์ธ๊ฐ?
- ์ ๋ณด์ ๋ฐ๋ณต (l1โ,k1โ)
- Null๊ฐ ์ฌ์ฉ ํ์ (์: J์ ํด๋นํ๋ ๊ฐ์ด ์๋ relation l2โ,k2โ๋ฅผ ํํํ๊ธฐ ์ํด)
- R์ ํจ์ ์ข
์์ฑ ์งํฉ F๋ฅผ ๊ฐ์ง relation schema๋ผ๊ณ ๊ฐ์
- Relation schema R์ด "์ข์" ํํ์ธ์ง ๊ฒฐ์
- Relation schema R์ด "์ข์" ํํ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ relation schema ์งํฉ {R1โ,R2โ,โฆ,Rnโ}์ผ๋ก ๋ถํดํ ํ์๊ฐ ์์.
- ๊ฐ relation schema๋ ์ข์ ํํ์.
- ๋ถํด๋ ๋ฌด์์ค ๋ถํด์.
- ๊ฐ๊ธ์ ๋ถํด๋ ์ข
์์ฑ์ ๋ณด์กดํด์ผ ํจ.
- ์ถฉ๋ถํ ์ ๊ทํ๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ BCNF ๋ฐ์ดํฐ๋ฒ ์ด์ค schema ์กด์ฌ
- ํ ๋ช
์ ๊ต์๊ฐ ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฒํธ์ ์ฌ๋ฌ ๋ช
์ ์๋
๋ฅผ ๊ฐ์ง ์ ์๋ relation
inst_info(ID, child_name, phone)๋ฅผ ๊ณ ๋ ค inst_info์ ์ธ์คํด์ค- ์ด relation์ ์๋ช
ํ์ง ์์ ํจ์ ์ข
์์ฑ์ด ์์ผ๋ฏ๋ก BCNF์ ์์.
- ์ฝ์
์ด์(Insertion anomaly): ID
99999์ ์ ํ๋ฒํธ 981-992-3443์ ์ถ๊ฐํ๋ ค๋ฉด ๋ ๊ฐ์ ํํ์ ์ถ๊ฐํด์ผ ํจ. (99999, David, 981-992-3443), (99999, William, 981-992-3443)
inst_info๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ถํดํ๋ ๊ฒ์ด ๋ ์ข์. - ์ด๋ ๋ค์น ์ข
์์ฑ(Multivalued Dependency)์ ๊ธฐ๋ฐํ ์ 4 ์ ๊ทํ(4NF)๊ณผ ๊ฐ์ ๋ ๋์ ์ ๊ทํ์ ํ์์ฑ์ ์์ฌ