
entity): 다른 객체와 구별 가능한 객체. 어트리뷰트의 집합으로 표현entity set): 같은 프로퍼티를 공유하는 같은 타입의 엔티티 집합
relationship): 여러 개의 엔티티들 가운데 관계relationship set): 각 엔티티 셋에서 취해진 두 개 이상의 엔티티 간의 수학적 릴레이션
advisor가 될 수 있다.위 실제 데이터가 들어 있는 릴레이션말고 보다 추상적으로 표현할 수 있다!

릴레이션십 셋 자체에도 어트리뷰트가 있을 수 있을까?
advisor에 해당하는 관련 어트리뷰트는 어디에 표현해야 할까?


simple: 더 이상 나누어지지 않는 어트리뷰트. composite와 대척점에 있다.composite: 특정 어트리뷰트가 다른 어트리뷰트 집합을 하위 집합으로 둘 수 있다(name 어트리뷰트는 first_name, last_name 등을 하위 집합으로 가질 수 있다).Single-valued: 특정 튜플이 해당 어트리뷰트 값을 한 개만 가질 수 있다(사람의 나이는 A살이지, A살이면서 동시에 B살일 수 없다). mutlvalued: 동시에 여러 개의 값을 가질 수 있는 어트리뷰트(사람의 취미는 A, B 모두 가능하다).derived: 특정 어트리뷰트 값이 다른 어트리뷰트로부터 도출될 수 있을 때


위 모든 경우에서 여러 명, 한 명은 0명까지 포함한다는 데 주의하자!

강사와 학생 간의 릴레이션에서 학생은 더블 라인으로 표현되어 있다. 학생 카디널리티가 1이고 더블 라인-total이므로 모든 학생은 무조건적으로 한 명의 강사와 매핑되어야 하는 게 표현되어 있다.
total, partial 등을 통해 전체 매핑 여부를 판단할 수 있지만 보다 복잡한 경우의 수에 대해서는 실제로 수를 통해 표시한다.
... 키워드 끝에 표시해서 해당 릴레이션십에서 특정 엔티티가 가지는 카디널리티를 표현total, 강사의 경우는 partial로 표현 가능하다.distinct.Weak Entity Setsidentifying entity) 자체에 의존적인 어트리뷰트 값만을 할당한 새로운 종류의 엔티티 생성 → 중복 어트리뷰트를 단일화discriminator를 통해 유니크하게 표시약한 엔티티 셋이 아닌 모든 엔티티 셋은 강한 엔티티 셋(
strong entity set)이다!

discriminator 표시
section엔티티의 프라이머리 키는sec_id,semester,year과 함께sec_course라는 어트리뷰트까지 포함한 총 네 개로 구성되어 있다! 약한 엔티티 셋으로 판명된sec_course는 이 엔티티를 다이어그램으로 그릴 때에만 빠트린 채 그린 것에 불과하다!
Composite 어트리뷰트를 가진 엔티티 셋composite: 특정 어트리뷰트의 하위 어트리뷰트가 존재할 때 → 여러 개의 단일 어트리뷰트로 표현Multivalued 어트리뷰트를 가진 엔티티 셋multivalued: 특정 어트리뷰트에 대한 값이 여러 개일 수 있을 때 → 해당 값만큼 튜플 중복 생성, multivalued 값의 개수만큼 중복 삽입
total이라면 다 엔티티 셋에 일 엔티티 셋의 프라이머리 키를 추가하는 것으로 별도의 스키마를 만드는 것을 방지할 수 있음
instructor 릴레이션은 department 릴레이션과 일 대 다 관계로 total으로 표현되어 있다. inst_dept라는 릴레이션 십 셋을 별도로 스키마화하는 것보다, department (일 측면)의 프라이머리 키 dept_name을 해당 instructor 릴레이션의 어트리뷰트로 추가하는 것으로 스키마 중복을 피할 수 있다.
Top-Down: 엔티티 셋의 하위 그룹을 통해 표현
Overlapping: person은 employee, student 모두 가능Disjoint: employee는 instructor와 secretary 중 하나여야 함(서로소)
person부터 생성,employee와student를 만든다. 이때employee등은ID라는 프라이머리 키와 별개의 로컬 어트리뷰트인salary나tot_credits만 만든다.
employee 릴레이션 값을 조회하기 위해서는 해당 릴레이션이 상속하고 있는 person의 릴레이션 어트리뷰트까지 모두 알아야 함Specialization 기법과는 달리 바텀-업 디자인 프로세스로 여러 개의 엔티티 셋을 묶어 더 높은 레벨의 엔티티 셋을 만듦
generalization을 하는 낮은 레벨의 엔티티 셋 중 하나에 속해 있는지 확인하는 제약 조건total: 엔티티가 낮은 레벨 엔티티 셋에 속해야 함partial: 디폴트 상태. 엔티티가 낮은 레벨 엔티티 셋에 속할 필요 없음.