# 개체 관계 모델
1. 개체(Entity)
실세계에서 다른 모든 객체와 구별되는 유, 무형의 사물
예) 각 개인, 수업, 비행기 예약
2. 속성(Attributes)
각 개체 집합의 각 구성원들이 가지는 기술적 특성
예) instructor 개체 집합의 속성은 ID, name, dept_name, salary
3. 개체 집합(Entity set)
같은 속성을 공유하는 같은 유형의 개체들의 집합
예) 교수인 모든 사람들의 집합, 대학에 속한 모든 학생들의 집합
4. 관계 집합(Relationship set)
- 관계 : 여러 개체들 사이의 연관성
- 같은 유형의 관계들의 집합
- 관계 집합은 n ≥ 2 개의 개체 집합 사이의 수학적 관계
- 설명 속성 : 어떤 교수가 어느 학생의 지도교수가 된 날짜를 명시하기 위하여 date 라는 속 성을 그 관계와 연결시킴
- 차수(degree) : 관계 집합에 참가하는 개체 집합의 수
# 이진 관계 집합(Binary relationship)
- 두 개체 집합이 관련된 관계 집합
- 데이터베이스 내의 대부분의 관계 집합은 이진 관계 집합임
예) 대학에서 수행된 모든 연구 과제를 표현하는 project라는 개체 집합
어느 특정 과제에 있어서 어느 교수가 어느 학생을 지도하고 있는 지에 대한 정보를 저장하는 관계 집합 proj_guide
# 속성
도메인 : 각 속성에 대해서 허용되는 값의 집합
# 속성 유형
- 단순 속성 과 복합 속성
예) Address, name, …
- 단일값 속성 과 다중값 속성
예) phone_numbers, dependent_name
- 유도된 속성
다른 관련된 속성들이나 객체들의 값들로부터 유도됨
예) age 는 date_of_birth 로부터 유도됨
# 제약 조건
- 관계 집합을 통하여 다른 개체와 관련될 수 있는 개체의 수
- 이진 관계 집합에서 대응수 : 일대일, 일대다, 다대일, 다대다
- 화살표(→) : one, 직선(-) : many
# 참가 제약 조건 : 키
- 개체들을 유일하게 구별해주는 속성들의 집합
1. 수퍼키
- 유일성, 1개 이상
2. 후보키
- 최소한의 수퍼키
- 유일성, 최소성, 1개 이상
- ID 는 instructor 의 후보키
- course_id 는 course의 후보키
3. 주키
- 후보키 중 한 개
# E-R 다이어그램
- 사각형 : 개체 집합
첫 번째 부분은 개체 집합의 이름
두 번째 부분은 개체 집합의 모든 속성, 주 키는 밑줄
- 다이아몬드 : 관계 집합
- 선 : 개체 집합을 관계 집합에 연결
- 점선 : 어떤 관계 집합의 속성들을 그 관계 집합에 연결
- 이중선 : 개체의 관계 집합에의 전체적 참가를 나타냄
- 이중 다이아몬드 : 약성 개체 집합으로 연결된 식별 관계 집합을 나타냄
# 역할(role)
- 다이아몬드를 사각형에 연결하는 선에 이름을 붙여 역할 표시
- 1항 관계
- course_id 와 prereq_id 역할 표시자
# 참가
1. 전체적인 참가(Total participation)
- 이중선
- 약성 개체 집합의 관계 집합으로의 참가는 전체적
- 예) Participation of section in sec_course is total
모든 section 은 어떤 수업과 연관됨
2. 부분적인 참가(Partial participation)
- 단일선
- 예) Participation of instructor in advisor is partial
# 약성 개체 집합
- 주 키를 형성하기 위한 충분한 속성들을 지니고 있지 않는 개체 집합
- 식별, 지배 개체 집합이라 불리는 다른 개체 집합과 관련되어야 함
- 식별 개체 집합에 존재 종속 관계
- 약성 개체 집합의 주 키는 식별 개체 집합의 주 키와 약성 개체 집합의 구별자를 합하여 만듦
예) section ( course_id, sec_id, sem, year )
# 강성 개체 집합
- 주 키를 가지고 있는 개체 집합
- 식별 개체 집합
예) student(ID, name, tot_cred)
예 ) 복합속성 가지는 경우
instructor(ID, first_name, middle_initial, last_name, street_number, street_name, apt_number, city, state, zip_code, date_of_birth)
# 식별 관계 : 약성 개체 집합과 식별 개체 집합을 연관 짓는 관계
- 약성 관계 집합으로부터 식별 관계 집합으로의 다대일
- 약성 관계 집합의 참가는 전체적
약성 개체 집합을 식별 강성 집합과 연결하는 관계 집합은 이중 다이아몬드로 표현
# 구별자
- 개체 집합의 부분 키
- 약성 개체 집합 내의 모든 개체들을 서로 구별하게 하는 속성들의 집합
- 약성 개체의 구별자는 점선으로 밑줄
# 릴레이션 스키마로의 축소
- E-R 데이터베이스 스키마에 상응하는 데이터베이스를 릴레이션 스키마의 집합으로 표현할 수 있음
- 개체 집합이나 관계 집합의 이름을 붙인 고유한 릴레이션 스키마가 있음
# 다중 값 속성 – 별도의 테이블 필요 (주키, 다중 값 속성)
- 다중 값 속성인 M을 위해 테이블 관계형 스키마 R 생성
- R에서는 M에 대응하는 속성 A와
- M이 속성으로 존재하는 개체 집합이나 관계 집합의 주 키에 대응하는 속성들을 가짐
- 예) phone_number of instructor
inst_phone= (ID, phone_number)
(22222, 456-7890)
(22222, 123-4567)