1. 개체 및 관계성
1. 개체(entity), 관계성
- 개체: 구별이 가능한 객체를 의미, 단일 student
- 관계성: 개체 간의 연관성, 학생과 과목 개체 간의 “수강하다”
개체 집합, 관계성 집합으로 묶을 수 있음
개체와 관계성은 속성을 가질 수 있음
2. 속성
개체 또는 관계성이 가지는 특성
- 단순 속성/복합 속성
- 단일 값 속성/다수 값 속성
- 유도된 속성
주소 ⇒ 거리, 도시, 도, 우편번호 (복합 속성)
거리 ⇒ 거리번호, 거리명, 아파트번호 (복합 속성)
나이 ⇒ 생년월일로 유추 (유도된 속성)
3. 관계성 집합 차수
관계성과 관련되는 개체의 개수
4. 카디날리티 제약
- One to one
- One to many
- Many to one
- Many to Many
5. 키
테이블에 대한 슈퍼 키, 후보 키, 주 키 개념과 동일
슈퍼 키에서 후보 키 및 주 키를 선정할 때에는 카디날리티 제약 및 참여 제약 고려
2. ER 다이어그램
1. ER 다이어그램
- 사각형: 개체 집합
- 마름모: 관계성 집합
- 밑줄: 주 키 속성
속성은 사각형 안에 나열
2. 복합 속성을 가진 개체
3. 속성을 가진 관계성 집합
date 속성을 가진 관계성 집합 takes
4. 카디날리티 제약
화살표가 1(one)을 의미
화살표가 없으면 다(many)를 의미
부분 참여 및 전체 참여가 존재
단일선은 부분 참여, 이중선은 전체 참여
6. 롤
7. 약한 개체 집합
주 키가 없는 개체 집합
- 약한 개체는 강한 개체 없이 존재할 수 없음
- 관계성에서 약한 개체는 전체 참여
- 약한 개체의 관계에서 강한 개체가 일(one)에 대응 약한 개체가 다(many)에 대응
- 약한 개체 집합 내에 부분 키 존재 가능
- 약한 개체의 주 키 = (구분하는 개체의 주 키와 부분 키의 결합)
3. 관계형 스키마로 변환
1. 개체 집합, 관계성 집합
기본 원칙은 개체 집합과 관계성 집합은 테이블 한 개씩으로 변환
개체 속성은 테이블 속성으로 변환
2. 강한/약한 개체 집합
약한 개체도 관계로 변환
약한 개체를 구분하는 관계성은 테이블로 변환되지 않음
→ 약한 개체를 변환할 때 강한 개체의 주 키를 이미 포함하기 때문
- course(cID, title, deptName, credit)
- section(cID, sID, year, semester, classroom, classTime)
- 관계성 “offered” 테이블은 없음
- 위에 있는 강한 개체 집합 목차의 그림 참고
3. 다대다 관계성 집합
다대다 관계성은 독립적인 테이블로 변환
속성은 개체 집합의 주 키를 포함
- Own(pID, vehicleID, registrationDate)
4. 다대일 관계성 집합
다대일 관계성은 독립적인 테이블로 변환 가능
- people(pID, name, address, age)
- own(pID, vehicleID, registrationDate)
- car(vehicleID, make, model, year, color)
다(many)측 개체로 병합되어 테이블로 변환도 가능
- people(pID, name, address, age)
- car(vehicleID, make, model, year, color, registrationDate, pID)
5. 일대일 관계성 집합
일대일 관계성은
- 독립적인 테이블로 변환 가능
- 또는 양쪽 개체 중 하나로 병합도 가능
6. 복합 속성
복합 속성은 복합 속성의 각 구성이 테이블 속성으로 평면화되어 반환됨
다수 값을 가지는 phoneNumber(여러 개일 수 있음)는 독립 테이블로 변환
유도된 속성은 메소드로 변환 가능
7. 다수값 속성
다수값 속성은 단일 테이블로 변환
관련 개체의 주 키 속성 포함
관계형 데이터 모델의 atomic 속성 때문임
4. 설계 이슈
1. 개체 집합 대 속성
데이터베이스에서 표현하고자 사항을 개체로 표현할 것인지 또는 개체 속성으로 표현할 것인지를 결정하여야 함
위와 같은 상황은 왼쪽이 더 적합함
전화번호에 더 다양한 정보가 저장된다면 오른쪽도 고려해 볼 수 있음
2. 개체 대 관계성
학생이 분반을 수강하는 상황
다음과 같은 상황에서 첫 번째 다이어그램이 적합
3. 속성 위치
- 다대다 제약에서 속성은 관계성에 반드시 위치함
- 일대일 제약에서 속성은 임의의 관련 개체에 위치함
- 일대다 인 경우에는 관계성 속성은 다(many) 쪽 개체에 위치함
4. 다진 관계성
다진 관계성은 다수개의 이진 관계성으로 변환 가능
문제점은 다진 관계성에 존재하는 제약 사항을 새로운 다이어그램에 정확하게 표현하지 못함
회귀적 관계성을 사용하여 이진 관계성과 삼진 관계성 비교
5. 확장 ER 모델
1. 특수화/일반화
상위 개체와 하위 개체 간에 다수개의 특수화 가능
2. 제약 조건
상위 개체에 속하는 개체가 하위 개체에 속하는 기준에 대하여 조건 정의 가능
상위 개체가 하위 개체에 속하는 방식에서 제약은 두 가지 가능
- disjoint: 상위 개체가 하위 개체 하나에만 속하게 됨
- overlapping: 상위 개체가 다수 개의 하위 개체에 속할 수 있음
완전 제약 조건
- total: 엔티티는 하위 레벨 엔티티 집합 중 하나에 속해야 함
- partial: 엔티티가 하위 레벨 엔티티 집합 중 하나에 속할 필요는 없음, default
3. 특수화 스키마
스키마로 변환 시는 두 가지 방법 가능
하위 개체는 하위 개체에 속하는 속성과 상위 개체의 주 키만으로 스키마 변환
→ 하위 관계에 대한 모든 속성을 검색하기 위해서는 두 관계 모두 접근해야 함
하위 개체는 상속받은 모든 속성과 해당 개체에만 적용되는 속성으로 스키마를 구성
→ 상위 개체만을 위한 테이블 생성이 필요하지 않을 수도 있음
→ 상위 개체 대신 뷰 사용 가능하나 뷰는 참조 무결성 설정 불가
'전공 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] #14 데이터베이스 설계 이론 (0) | 2024.06.12 |
---|---|
[데이터베이스] #12 SQL 확장 (0) | 2024.05.20 |
[데이터베이스] #11 응용 개발 (0) | 2024.05.20 |
[데이터베이스] #10 오라클 실습 II (0) | 2024.05.20 |
[데이터베이스] #9 데이터베이스 주요 기능 (0) | 2024.05.20 |