컴공돌이의 취미 블로그

기초데이터베이스 [2]. 데이터베이스 설계의 개요 본문

Study/기초데이터베이스

기초데이터베이스 [2]. 데이터베이스 설계의 개요

컴공돌이​​ 2017. 10. 9. 12:00

기초데이터베이스 [2]. 데이터베이스 설계의 개요


● E-R 모델(Entity-Relationship Model) : 

→ 개념적 스키마를 표현하는데 사용되는 데이터 모델의 한 종류


● 개체(Entity) : 

→ 다른 객체와 분간 가능한 실제 세계의 객체를 의미

→ Entity는 속성(Attribute)의 집합을 사용하여 표현함

→ 개체는 사각형으로, 속성은 원으로 그려서 표현함

<학생 개체와 그 개체의 속성>


● Entity Set :

→ 비슷한 Entity들의 모음을 의미

→ 각각의 Entity는 구분이 가능하게 하기위한 Key 값을 가지고 있음


● 관계(Relationship) : 

→ 두개 혹은 그 이상의 Entity들 간의 연관성을 의미

<학생 개체와 교수 개체의 관계인 지도>


→ Relationship은 연결된 Entity의 개수에 따라 Unary(1개), Binary(2개), Ternary(3개)등으로 분류됨


● Relationship Set :

→ 비슷한 Relationship들의 모음을 의미


● 키 제약조건(Key Constraints) :

→ Entity간의 Relationship에는 1-대-1(1:1), 1-대-다(1:N, N:1), 다-대-다(M:N) 관계가 있음

→ E-R Diagram에서 1:1 관계인 경우에는 선을 화살표로 표시함

<1:1 관계를 화살표로 표시한 E-R Diagram>


● 참여 제약조건(Participation Constraints) :

→ 참여에는 모든 개체가 참여하는 Total Participation(완전 참여)와 일부 개체만 참여하는 Partial Participation(부분 참여)가 있음

→ Total Participation는 E-R Diagram에서 굵은 선으로 표시함

→ Partial Participation는 E-R Diagram에서 얇은 선으로 표시함

<Total Participation를 표시한 E-R Diagram>


● 약한 개체(Weak Entities) :

→ Weak Entity는 다른 Entity의 Primary Key(중요 키)를 고려해야지만 하나의 값을 특정할 수 있음

→ Owner Entity(주인 개체)는 Weak Entity와 1-대-다 관계를 가지고있음

→ Weak Entity는 무조건 Total Participation를 하고 있음

→ Weak Entity는 E-R Diagram에서 굵은 선으로 표시함

→ Weak Entity에 연결된 Relationship도 E-R Diagram에서 굵은 선으로 표시함

<Weak Entity를 표시한 E-R Diagram>


● ISA 계층(ISA Hierarchies) :

→ 서브 클래스의 특정 Attribute을 쉽게 설명 ISA를 사용

→ Relationship에 참여하는 Entity를 조금 더 명확하게 구분하기 위해 ISA를 사용

→ Attribute는 서브 클래스상속될 수 있음

→ A ISA B 라고 정의할 경우 모든 A 개체는 B 개체도 고려해야함

→ Overlap Constraints(중첩 제약조건)과 Covering Constraint(포괄 제약조건) 명시 가능

<ISA Hierarchy를 표시한 E-R Diagram>


● 집단화(Aggregation) :

→ RelationShip은 Entity간에 사용하는 것이지만 Entity 대신에 RelationShip Set을 포함하고 있을 때 사용함

→ Entity만으로는 특정 상황을 명확히 표현하기 어려울 때 Aggregation을 사용함

특정 교수가 강의하고 있는 수업을 수강하고 있는 학생을 나타내기 위한 집단화

<Aggregation을 표시한 E-R Diagram>


● E-R Model을 사용한 개념적 디자인(Conceptual Design) :

1. 개체, 속성 선택

→ 어떠한 정보를 개체에 속한 속성으로 만들지 따로 하나의 개체로 만들지 상황에 맞게 선택해야 한다.

2. 개체, 관계 선택

→ 어떠한 속성을 관계의 속성으로 만들지 개체의 속성으로 만들지 상황에 맞게 선택해야 한다.

3. 이진관계, 삼진관계 선택

→ 상황에 맞는 이진관계 혹은 삼진관계를 선택해야 한다.


● 개념적 디자인(Conceptual Design) 요점 :

1. Conceptual Design은 Requirements Analysis(요구사항 분석)을 필요로 한다.

2. Conceptual Design을 위한 모델으로는 E-R Model이 잘 알려져 있다.

3. Conceptual Design의 기본적인 구조로는 Entity(개체), Relationship(관계), Attribute(속성)이 있다.

4. Conceptual Design의 추가인 구조로는 Weak Entity(약한개체), ISA Hierarchy(ISA 계층), Aggregation(집단화)등이 있다.


● E-R Model 요점 :

1. E-R Model에서는 몇가지 종류의 무결성 제약조건들(Key Constraint, Participation Constraint, Overlap Constraint, Covering Constraint)이 사용된다.

2. E-R Model 디자인은 주관적이기 때문에 주어진 시나리오는 다양한 모델으로 표현될 수 있다.

3. 관계 스키마를 분석하고 다듬어서 좋은 데이터베이스 디자인으로 만들어야 한다.

반응형