1. 데이터베이스 디자인 또는 모델링
1) 의미
- 데이터베이스의 논리적인 구조와 제약조건(constraint)을 명시하는 것
2) 모델링 절차
(1) 요구사항 분석 : 어떤 정보? 어떤 관계? 어떤 제약조건? -> E/R Diagram 작성
(2) High-Level 디자인 : 사람이 이해하기 쉬운 형태로 디자인
(3) 관계형 데이터베이스 스키마로 변환
3) 데이터 모델의 종류
(1) 개념적 데이터 모델
- 현실세계의 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 것
- E/R Diagram이 이에 속함
(2) 논리적 데이터 모델
- 개념적 데이터 모델을 컴퓨터가 이해할 수 있도록 변환한 데이터 모델
(3) 물리적 데이터 모델
- 실제 컴퓨터에 데이터가 저장되는 방법을 정의하는 모델
4) 용어 설명
- Entity : 개체(a record)
- Entity set : 특정 종류의 개체들의 집합(a table)
- Attribute : entity가 갖는 속성
- Relationship : 두 개 이상의 entity set간의 관계
※ Entity vs Object?
Entity : 정보를 표현하는 단위, Object : 소프트웨어를 구성하는 한 요소(데이터, 함수 등)
5) E/R 다이어그램
- Entity/Relationship Diagram의 줄임말
- E/R 다이어그램에서 두 entity set간(binary)의 관계에는 1:1(부-모), N:1, 1:N(부모-자식), N:N가 있는데 1쪽에는 선에 화살표를 표시한다 .
- 두 개 이상의 entity set이 관계를 맺는 multiway 관계가 있는데, 이들을 binary 관계로 변형할 수도 있다.
2. Subclass
1) 의미
- 하나의 entity set 안에서도 각자의 entity만이 가질 수 있는 즉, 다른 entity들과는 관계가 없는 attribute들이 있을 수 있다. 이 경우에는 이 attribute들을 묶어 subclass로 둘 수 있는데, 이 class(superclass)-subclass 관계를 isa 관계라고 한다
2) ISA
- isa 관계는 1대1관계이며, E/R 다이어그램상에서 세모로 표시한다.
3. 설계시 지켜야할 원칙
1) 기본 원칙
- 데이터의 중복이 없어야 할 것 : 일관성이 없어질 위험이 큼
- 가능한 간단하게 할 것 : 정확히 필요한 요소만 있어야함
- 적절한 관계만 선택할 것 : 되도록 필수적인 관계 하나만 있는 것이 좋고, 추론 가능한 관계가 이미 존재한다면 더 이상의 관계는 부여하지 않아야 함
- Attribute, Entity set중 어느 것으로 둘 것인지에 대한 결정 : attribute로 두면 일관성이 없어지는 문제가 생기는 경우가 있고, entity set으로 두면 superclass를 제거할 경우 subclass정보가 사라지는 문제가 생기는 경우가 있다.
※ Attribute가 많을 경우에는 entity set으로 두는 것이 좋다.
2) attribute를 사용하는 3가지 조건
- N:1 관계에서 1인 요소 : Attribute가 무한히 늘어나서는 안됨
- 다른 attribute에게 종속되어 있지 않은 요소
- 2개 이상의 관계가 섞여 있지 않은 요소
4. 제약 조건
1) Key for an entity set
- 기본키를 반드시 가져야 함
- 기본키는 NULL이 될 수 없음
- Key가 될 수 있는 것들은 E/R 모델에서 밑줄로 표시됨
- 하나의 키를 기본 키로 결정한다.
2) 참조적 무결성
- 외래키에 대한 규칙으로, 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙
- 외래키는 반드시 다른 릴레이션의 key attribute를 참조하며, 외래키 attribute의 모든 값들은 참조되는 key attribute에 있는 모든 값들 안에 속해야 함
- E/R 모델에서 둥근 화살표로 표시됨
- 기본 키와 참조 키 간의 관계가 항상 유지됨을 보장
- 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야함
- 기본적으로, 참조 무결성 제약조건을 위반하는 연산은 자동으로 거절됨
3) degree 제한
- 크기나 특정값을 제한함
5. Weak entity set
- 기본키가 없는 개체 집합으로, subunit이라고도 함
- 연결된 entity set(identify/strong entity set)의 기본키와 weak entity set의 식별자인 partial key(E/R 다이어그램 상의 밑줄)들을 합하여 기본키로 사용함
- 관계는 겹선의 다이아몬드로 표시됨
6. E/R Diagram으로 Relational Design하기
- 기본적으로 각 entity set을 릴레이션으로 바꾼다.
1) N:1
- Relationship 필요 없음
2) 1:1
- Relationship 필요 없음
- 하나의 테이블로 합칠 수 있음
3) N:M
- 각 Relationship를 릴레이션으로 바꾼다. 이때, 양쪽 릴레이션의 key attribute를 가져온다.
4) weak entity set 처리
- weak entity set(N) : strong entity set(1)
- relationship을 만들지 않아도 되고, strong entity set의 key를 포함한다.
5) subclass(isa) 처리
- subclass(N) : superclass(1)
- relationship을 만들지 않아도 되고, 별도로 relation을 만들어서 key로 연결한다.
E/R Diagram 참고 이미지
기본
isa
기본키
참조적 무결성
weak entity set
E/R Diagram 요소의 각 의미 정리
'DB > DB Concept' 카테고리의 다른 글
함수적 종속과 정규화 (0) | 2022.01.31 |
---|---|
SQL(2) - DDL (0) | 2022.01.30 |
제약 조건과 트리거 (0) | 2022.01.29 |
SQL(1) - DML (1) | 2022.01.28 |
Algebraic(대수) Query Language (0) | 2022.01.27 |
댓글