본 게시물은 데이터베이스 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다.
E/R에서 RDB로의 변환 주요 단계
- Entity를 Table로 변환
- 식별자 → 기본키
- 애트리뷰트의 타입 정의
- Unique, NOT null 속성 - Relationship 고려
- Foreign key 추가
- Intersection / Association Table 생성
- 관계에 의해 새로운 table 생성되기도 함
- 이상적인 기본 키는 짧고, 숫자이며, 고정 값
- 대체 키는 이상적이지만, 사용자에게는 의미 x
- entity : 그림자 o , table : 그림자 x
- 기본 키는 key symbol로 디자인
Specify Candidate (Alternate) Keys
- 후보 키는 테이블에서 고유한 행의 대체 식별자
- 각 후보 키는 테이블의 애트리뷰트에 Unique 속성 부여
- AKn.m
- n : 후보키의 번호
- m : 후보키의 column 번호
Specify Column Properties
- Null status : 값이 null일 수 있는지 여부 표시
# Genetic Data Type :
- CHAR(n) 문자열
- VARCHAR(n) 가변길이 문자열
- DATATIME 날짜/시간
- INTEGER 정수형
- FLOAT / DECIMAL 실수형
Create Relationships : 1:1 Strong Entity Relationships
- 다른 개체의 기본키를 외래키로 배치
: 자식, 부모 상관없이 설계 가능
Create Relationships : 1:N Strong Entity Relationships
- 1:N 에서 1쪽의 테이블의 기본 키를 N쪽의 테이블의 외래키로 배치
- 1쪽의 테이블은 부모 테이블, N쪽의 테이블은 자식 테이블
- 부모의 키를 자식에 배치
Create Relationships : N:M Strong Entity Relationships
- COMPANY에서 많은 PART 공급 가능
- PART는 많은 COMPANY에 의해 공급 가능
- 외래키로 해결 되지 않음
- 해결책 : 각 개체 사이의 관계를 저장하는 교차 테이블 생성
- 교차 테이블은 각 테이블의 기본 키로만 구성 (추가적인 애트리뷰트 x)
- 각 테이블의 기본 키는 교차 테이블로 연결되는 외래 키가 됨
- Company_Part_Int : 연결 테이블이라는 제 3의 테이블 만듦
- (CompanyID, PartID) : 복합키로 구성된 기본 키
- CompanyID , PartID : 각각의 부모 테이블의 기본키를 가리키는 2개의 외래키
Relationships Using ID-Dependent Entites
# Four Uses for ID-Dependent Entities
- Intersection table (strong N:M)
- Association Relationships (추가적인 애트리뷰트가 필요할 때 )
- Multivalued Attributes(애트리뷰트가 다중 값일 때 )
- Archtype / Instance Relationships (원형/인스턴스)
# intersection table
- N:M 관계의 두 strong 개체 사이의 관계
- 외래키인 두 개체의 기본키만 포함
# association table
- intersection table의 모든 특성을 가지고 있음
- 두 개체 쌍을 특정짓기 위한 추가적인 애트리뷰트가 포함됨
- 대학 데이터베이스의 enrol은 전형적인 association 테이블임
# Multivalued Attributes
- 애트리뷰트가 다중 값일때
- 외래키를 추가할 필요 x
- 기본키의 일부가 외래키
# Archtype/Instance
- 원형이 있고, 원형을 모델로 만든 인스턴스가 있음
- ID-dependent entity로 설계된 경우에는 외래키 애트리뷰트를 추가할 필요 x
- Non Id-dependent entity로 설계된 경우에는 외래키를 추가함
- 기본키의 구성이 다르다는 점을 확인
Recursive Relationships
# 1:1 Recursive Relationships
- 외래 키 애트리뷰트를 추가
- ex) 이어져있는 지하철에서의 앞 뒤 차
# 1:N Recursive Relationships
- 외래 키 애트리뷰트를 추가
- ex) 매니저와 그의 담당 직원들
# N:M Recursive relationships
- Intersection table 생성해 짝을 표현
- ex) CPU 안 여러 부품 (볼트, 너트)
'LECTURE > [2021-1] 데이터베이스' 카테고리의 다른 글
[데이터베이스] Database Index (0) | 2021.06.10 |
---|---|
[데이터베이스] E-R modeling (0) | 2021.06.10 |
[데이터베이스] 데이터베이스 설계 (0) | 2021.06.10 |
[데이터베이스] DB응용프로그래밍 : mySQL 및 python 기반 (0) | 2021.06.10 |