Entity-Relationship Model이란?
Entity-Relationship Model, E-R 모델은 데이터베이스를 표현하기 위한 데이터 모델이다.
E-R 모델은 다른 객체와 구별 가능한 객체인 Entity를 기반으로 구성된다.
이 때, 각각의 Entity들을 구성하는 속성들을 Attribute이라고 하며,
같은 종류의 Entity들의 집합을 Entity Set이라고 한다.
그리고 이러한 Entity Set 간의 관계를 Relationship이라고 하며,
Relationship의 집합을 Relationship Set이라고 한다.
E-R Diagram
E-R 모델은 다음과 같이 Diagram 형태로 표현 가능하다.
entity set은 사각형으로 표현하며, 상단에는 entity set의 이름, 하단에는 entity set이 가진 attribute들이 표시된다.
그리고 entity Set 간의 관계의 집합인 relationship set은 마름모 형태로 표현하며,
relationship set의 attribute는 사각형으로 표현하며 점선으로 이어 표시한다.
Cardinality Constraints
Cardinality란 entity set에 속한 entity의 수를 말하고, Constraints는 제약 조건을 의미한다.
Cardinality Constraints는 두 entity set의 entity들이 수적으로 대응되는 조건을 말한다.
예를 들어 entity set A의 entity 하나가 entity set B의 여러 entity와 대응될 경우 one-to-many relationship이다.
이런 식으로 one-to-one, one-to-many, many-to-one, many-to-many 총 4개의 relationship이 가능하다.
E-R diagram에서는 relationship set에서 entity set으로 이어질 때 one은 화살표, many는 직선으로 표시한다.
따라서 각각의 relationship들은 다음과 같이 표현된다.
one-to-one
one-to-many
many-to-one
many-to-many
예를 들어 위 그림의 내용을 살펴보면 교수와 학생 사이가 지도교수 관계로 이어져 있다.
보통의 경우 교수 1명이 여러 학생을 맡게 되므로 이 때에는 one-to-many relationship이 적당할 것이다.
Weak Entity Set
weak entity set이란 primary key를 갖고 있지 않은 entity set을 말한다.
weak entity set에는 primary key가 없지만 해당 entity set 내에서 식별 가능한 discriminator(partial key)가 존재한다.
예를 들어 오른쪽의 section entity set에는 밑줄 친 attribute, 즉 primary key가 존재하지 않는다.
이 때 entity set 내에 점선 밑줄로 된 attribute들이 이 entity set의 discriminator이다.
따라서 weak entity set에서는 연결된 entity set의 primary key와 discriminator를 합하여 primary key로 사용한다.
위 diagram에서 section의 primary key는 (course_id, sec_id, semester, year)가 되는 것이다.
※ 두 줄로 된 diamond 형태는 identifying relationship을 나타내며, section이 course에 종속되어 course 없이는 의미를 갖지 못한다는 뜻이다.
※ entity set과 relationship set 사이의 직선 두 줄은 total participation, 모든 entity가 relationship에 속한다는 뜻이고, 한 줄은 partial participation, 일부 entitiy만 relationship에 속한다는 뜻이다.
Composite & Multivalued Attributes
Composite Attribute란 2개 이상의 속성으로 구성된 attribute를 말한다.
예를 들어 주소라는 attribute에 국가, 도시, 마을 등의 정보가 포함되는 것이다.
Multivalued Attribute란 1개의 entity가 여러 개의 값을 가질 수 있는 attribute를 말한다.
예를 들어 한 사람이 전화를 여러 개 소유해 전화번호라는 attribute에 여러 개의 값을 저장할 수 있는 것이다.
Multivalued Attribute는 기본적으로 별도의 entity set을 만들어 구현한다.
그림에서 왼쪽의 time_slot은 하나의 section에서 여러 개의 value를 가질 수 있기 때문에 새 entity set으로 분리하였다.
Composite Attribute는 { } 를 통해 하위 속성들을 묶어 표현해주면 된다.
'Computer Science > Database' 카테고리의 다른 글
Database Indexing (0) | 2020.06.22 |
---|---|
Database Normalization & Functional Dependency (1) | 2020.06.22 |
[SQL] INNER JOIN, OUTER JOIN, NATURAL JOIN (0) | 2020.06.16 |
[SQL] SOME, ALL, EXISTS, NOT EXISTS, UNIQUE, WITH (1) | 2020.06.16 |
[SQL] Subquery, Scalar Subquery, Inline View (0) | 2020.06.16 |