DB - Lecture6

Pyro·2021년 9월 15일
0

Database

목록 보기
6/8
post-custom-banner

DB 6일차 (Entity/Relationship Modeling 2)

복습

  • Entity/Relational models
    • Entity Sets
    • Attributes
    • Relationships
    • Cardinality Ratio
      • 1:1, 1:n, n:m
    • Entity Relationship Diagram

Weak Entity Set

  • existence depends on another entity set
  • Building 없이는 Apartment 방을 만들 수 없다.

혼자서는 살아갈 수 없는 나약한 아이를 Weak Entity 라고 한다.
엄마 아빠가 없으면 자신이 누군지 방황하며, 독립하지 못하는 마마보이 이다.
힘세고 강한 싸나이는 엄마가 없다.

혼자서는 자기를 식별하지 못하는 약해빠진 Enity 를 Weak Entity 라고 한다.
가령 아래의 Apartment 는 door# (방 번호) 를 통해 식별을 해볼려고 하지만, 건물마다 같은 방번호가 존재한다.
가령 1동에도 101호가 있고, 3동에도 101호가 있다.
Apartment 를 제대로 식별하려면 Building 의 address 가 추가로 필요하다.
즉 Apartment 를 식별하려면 Building 이라는 부모가 반드시 필요하다.

다른 entity 의 attribute 와 조합해야 제대로 된 식별 key 를 만들 수 있는 나약한 Entity 가 Weak Entity 이다.
즉 자기 자자신이 가진 attribute 로는 아무것도 못하는 나약한 Entity 이다.

Subclassing

객체지향 프로그래밍에서의 상속이 생각나지만, 차이점이 있다면 부모의 attribute 를 상속해서 복사하지 않는다.
다만 자식은 부모 테이블을 참조해서, 부모테이블의 도메인에 접근할 뿐이다.
즉 자식(Toy, Candy)은 부모의 값(price, name)을 전혀 가지지 않는다.

ERD 그리기

다음을 그려내야 한다.

  • Entity Sets (테이블 이름 정하기)
  • Attributes (테이블 column에 이름 붙이기)
  • Relationships (테이블들이 왜 관계가 있는지 이유 찾기)
    • 이거 중요한듯. 보통 이유를 많이 깜빡 하는 것 같다.
  • Cardinality Ratio (1:1, 1:n, n:m 판별하기)

꿀팁들

  • One-to-One 이 나왔다면, redundant relationship 이 아닌지 의심하라
    • 하나의 테이블에 embedded 하는게 나을 수도 있다.
profile
dreams of chronic and sustained passion
post-custom-banner

0개의 댓글