7. Conversion to Relations

2021. 5. 2. 20:17Computer Sciences/Database

From Entity Sets to Relations

엔티티 세트를 릴레이션으로 변경할 때는 관계는 신경쓰지 않고 변경함

  • Stars(name, address)
  • Movies(title, year, length, genre)
  • Studios(name, address)

From E/R Relationships to Relations

관계 세트를 릴레이션으로 변경할 때는 관계를 맺은 두 엔티티 세트의 키를 어트리뷰트로 새로운 릴레이션을 만듦. name을 starName과 studioName으로 변경한 이유는 명확성을 위해서임.

  • StarsIn(starName, title, year)
  • Owns(title, year, studioName)

관계가 다대일인 경우에는 '다'에 해당하는 릴레이션에 '일'의 키를 외래 키 컬럼을 만들어 새로운 릴레이션을 만들지 않을 수도 있음

  • Movies(title, year, length, genre, studioName)

'일'의 키를 '다'의 릴레이션에 넣어줄 수도 있지만 그러면 심각한 데이터 중복이 발생하게 되므로 반드시 '일'에서 '다'에 넣어주도록 해야 함

Multiway Relationships

  • 이런 경우엔 각 엔티티 세트의 키를 Contracts라는 릴레이션의 속성으로 사용함. 가져올 때 명확하게 알 수 있는 이름으로 명명함
  • Contracts(starName, title, year, studioOfStarname, producingStudioName)
    • Stars와 Studios의 관계, Movies와 Studios의 관계가 있으므로 각각의 name을 넣어줘야 함

Handling Weak Entity Sets

  • Studios(name, addr)
  • Crews(number, studioName)
  • Unit-of(number, studioName, name) → studioName과 name이 동일하여 하나 삭제 → Crews와 동일해짐 → 필요없는 릴레이션

Converting Subclass Structures to Relations

상속 관계를 변환하는 방법에는 세 가지가 있음

  • E/R 스타일 변환
    • Movies(title, year, length, genre)
    • Murder-Mysteries(title, year, weapon)
    • Cartoons(title, year)
    • Voices(title, year, name)
    • 장점- title이 Tangled인 영화를 찾으려고 하면 Movies에서만 찾아도 됨
    • 단점 - weapon이 bat인 영화의 genre를 찾으려고 하면 Movies와 Murder-Mysteries를 자연 조인하여 생성된 릴레이션에서 찾아야 함
  • 객체지향적 관점
    • 엔티티 세트 하나하나를 하나의 객체로 보고 변환함
    • 따라서 순수한 Movies, Cartoon인 Movies, Murder-Mysteries인 Movies, Cartoons이면서 Murder-Mysteries인 Movies로 나뉨
    • Movies(title, year, length, genre)
    • MoviesC(title, year, length, genre)
    • MoviesMM(title, year, length, genre, weapon)
    • MoviesCMM(title, year, length, genre, weapon)
    • 장점 - 찾고자 하는 데이터를 특정 릴레이션에서 바로 찾을 수 있음
    • 단점 - 위 릴레이션에서 title로 데이터를 찾으려 하면 모든 릴레이션을 검색하게 됨(자식은 부모의 특성을 물려받기 때문에). 그래서 어플리케이션 레벨에서 처리가 필요함
  • Null 값 사용
    • 상속과 연관된 모든 엔티티 세트를 하나로 합치고 없는 속성을 null로 채우는 방법
    • Movies(title, year, genre, length, weapon)
    • 단점 - 자식 엔티티 세트의 속성이 많아지는 경우 합쳐진 다음 null로 채워지는 부분이 매우 많아짐

     

'Computer Sciences > Database' 카테고리의 다른 글

10. Join  (0) 2021.05.16
9. use SQL  (0) 2021.05.16
6-4. Weak Entity Sets  (0) 2021.05.02
6-3. 제약조건  (0) 2021.05.02
6-2. 디자인 원칙  (0) 2021.05.02