Movies title year studio Name studio Addr title

  • Slides: 49
Download presentation

함수적 종속성에 관한 규칙 (계속) (예) 릴레이션 Movies (title, year, studio. Name, studio. Addr)

함수적 종속성에 관한 규칙 (계속) (예) 릴레이션 Movies (title, year, studio. Name, studio. Addr) 함수적 종속성: title year studio. Name studio. Addr {title, year}+: {title, year}, {title, year, studio. Name, studio. Addr} 14

함수적 종속성에 관한 규칙 (계속) u 이행 규칙 (Transitive rule) – A 1 A

함수적 종속성에 관한 규칙 (계속) u 이행 규칙 (Transitive rule) – A 1 A 2. . . An B 1 B 2. . . Bm 와 B 1 B 2. . . Bm C 1 C 2. . . Ck 가 성립 하면, A 1 A 2. . . An C 1 C 2. . . Ck 도 성립 (예) 릴레이션 Movies 를 고려해 보자. title year studio. Name studio. Addr title year studio. Addr 19

관계 데이터베이스 설계 (계속) * 다중값(multi-valued) 관계성으로 인한 중복성 » star. Name 애트리뷰트는 다중값

관계 데이터베이스 설계 (계속) * 다중값(multi-valued) 관계성으로 인한 중복성 » star. Name 애트리뷰트는 다중값 관계성으로부터 생성 » length, film. Type 정보 등이 반복 title Star Wars Mighty Ducks Wayne’s World year length film. Type studio. Name 1977 124 1991 104 1992 95 color color Fox Fox Disney Paramount 릴레이션 Movies 23 star. Name Carrie Fisher Mark Hamill Harrison Ford Emilio Esteves Dana Carvey Mike Meyers

관계 데이터베이스 설계 (계속) (예) Movies (title, year, length, film. Type, studio. Name, star.

관계 데이터베이스 설계 (계속) (예) Movies (title, year, length, film. Type, studio. Name, star. Name) – 다음 두 릴레이션들로 분해 » Movies 1(title, year, length, film. Type, studio. Name) » Movies 2(title, year, star. Name) 25

관계 데이터베이스 설계 (계속) (예) Movies 분해 계속 title Movies 1 Star Wars 1977

관계 데이터베이스 설계 (계속) (예) Movies 분해 계속 title Movies 1 Star Wars 1977 Mighty Ducks 1991 Wayne’s World 1992 title Movies 2 26 year length film. Type studio. Name 124 104 95 year Star Wars 1977 Mighty Ducks 1991 Wayne’s World 1992 color Fox Disney Paramount star. Name Carrie Fisher Mark Hamill Harrison Ford Emilio Esteves Dana Carvey Mike Meyers

관계 데이터베이스 설계 (계속) (예) Anomaly 가 있는 아래 릴레이션 Movies 를 고려해 보자.

관계 데이터베이스 설계 (계속) (예) Anomaly 가 있는 아래 릴레이션 Movies 를 고려해 보자. » many-many 관계성이 movie 정보와 같이 표현 title year length film. Type studio. Name Star Wars Mighty Ducks Wayne’s World 1977 1991 1992 124 124 104 95 95 color color Fox Fox Disney Paramount star. Name Carrie Fisher Mark Hamill Harrison Ford Emilio Esteves Dana Carvey Mike Meyers » 키: {tile, year, star. Name} title year length film. Type studio. Name – 따라서 Movies 는 BCNF 형태가 아니다. 28 이상이 있는 Movies 다중값 관계성이 다른 정보들과 같이 저장

관계 데이터베이스 설계 (계속) (예: 릴레이션 Movies – 계속) title year length film. Type

관계 데이터베이스 설계 (계속) (예: 릴레이션 Movies – 계속) title year length film. Type studio. Name Star Wars 1977 124 Mighty Ducks 1991 104 Wayne’s World 1992 95 color Fox Disney Paramount Movies 1 » 키: {tile, year} 키의 어떤 진부분집합도 어떤 FD 의 determinant 가 되지 않음 – 따라서 Movies 1 는 BCNF 형태 29

관계 데이터베이스 설계 (계속) (예) Movies (title, year, length, film. Type, studio. Name, star.

관계 데이터베이스 설계 (계속) (예) Movies (title, year, length, film. Type, studio. Name, star. Name) 릴레이션을 고려해 보자. » 키: {title, year, star. Name} – title year length film. Type studio. Name 에서 좌변이 수퍼키 가 아니므로 다음 두 릴레이션으로 분해 » Movie 1(title, year, length, film. Type, studio. Name), » Movie 2(title, year, star. Name) 32

관계 데이터베이스 설계 (계속) (예) 이행 종속성(transitive dependency)으로 인한 중복성 – Movie. Studio (title,

관계 데이터베이스 설계 (계속) (예) 이행 종속성(transitive dependency)으로 인한 중복성 – Movie. Studio (title, year, length, film. Type, studio. Name, Studio. Addr) 릴레이션을 고려해 보자 » title year studio. Name /* 문제의 근원: 이행 종속성 */ » studio. Name studio. Addr – 키: {title, year} 33 title year length film. Type studio. Name studio. Addr Star Wars Mighty Ducks Wayne’s World Addams Family 1977 124 1991 104 1992 95 1991 102 color Fox Disney Paramount Hollywood Buena Vista Hollywood

관계 데이터베이스 설계 (계속) (예- 계속) Movie. Studio 1 title year length film. Type

관계 데이터베이스 설계 (계속) (예- 계속) Movie. Studio 1 title year length film. Type studio. Name Star Wars Mighty Ducks Wayne’s World Addams Family Movie. Studio 2 34 1977 1991 1992 1991 124 104 95 102 studio. Name studio. Addr Fox Disney Paramount Hollywood Buena Vista Hollywood color Fox Disney Paramount

관계 데이터베이스 설계 (계속) (예) 이행 종속성이 연달아 있는 경우 Movie. Exec (title, year,

관계 데이터베이스 설계 (계속) (예) 이행 종속성이 연달아 있는 경우 Movie. Exec (title, year, studio. Name, president, pres. Addr) title year studio. Name, studio. Name president, president pres. Addr – 키: {title, year} BCNF 분해의 결과는 여러 개 있을 수도 있다. » president pres. Addr R 1 = {president, pres. Addr}, R’ = {title, year, studio. Name, president} » R’에서: studio. Name president 이므로 R’ 은 BCNF 가 아님. R 2 = {studio. Name, president}, R 3 = {title, year, studio. Name} – 최종 분해 결과: R 1, R 2, R 3 35

관계 데이터베이스 설계 (계속) (보충 설명) S = {S, A, T, I, P}, 함수적

관계 데이터베이스 설계 (계속) (보충 설명) S = {S, A, T, I, P}, 함수적 종속성: S A, T I, T P s 1 a 1 t 1 i 1 p 1 s 1 a 1 t 2 i 2 p 2 s 2 a 2 t 3 i 1 p 3 S s 1 s 2 S S 1 S 2 si ti ui sj ti uk S 교재에 없는 내용 40 a 1 a 2 S 1 S 2 t 1 i 1 p 1 t 2 i 2 p 2 t 3 i 1 p 3 S 1 si sj S i 1 i 2 i 1 S 2 ti ti ui uk S 2

관계 데이터베이스 설계 (계속) – BCNF 분해: {theater, city}, {title, theater} » 이 분해에서는

관계 데이터베이스 설계 (계속) – BCNF 분해: {theater, city}, {title, theater} » 이 분해에서는 theater city 만이 보존 theater Guild Park city Menlo Park theater title Guild Park The Net theater 조인 Guild Park city Menlo Park title The Net “title city theater”를 만족시키지 않는다. 44

Third Normal Form u Third Normal Form – A relation R is in third

Third Normal Form u Third Normal Form – A relation R is in third normal form (3 NF) if : Whenever A 1 A 2 An B is a nontrivial FD, either {A 1, A 2, An} is a superkey, or B is prime (attribute): an attribute is a member of some key *relax BCNF requirement Key A v 46 X We can always have a lossless join and dependency preserving 3 NF decomposition

Note: 1 NF, 2 NF and 3 NF v 1 NF, 2 NF and

Note: 1 NF, 2 NF and 3 NF v 1 NF, 2 NF and 3 NF Not in the text Consider a functional dependency X A – 1 NF: every attribute has atomic values 2 NF: only historical interest – 2 NF: every nonprime attribute is fully dependent on a key Key X A nonprime attribute = nonkey attribute Key A X partial dependency: Not allowed Key A X transitive dependency: Allowed – 3 NF: every determinant is a superkey, or the right-side is prime X 49 Key A X Allowed