Entity Relationship Model: 두 판 사이의 차이

youngwiki
편집 요약 없음
39번째 줄: 39번째 줄:
또한 Relationship Set은 각 entity set 사이에서 위와 같이 다이아몬드 모양 박스 형태로 표시된다.
또한 Relationship Set은 각 entity set 사이에서 위와 같이 다이아몬드 모양 박스 형태로 표시된다.


relationship에는 attribute를 부여할 수 있다. 예를 들어서, advisor relationship set에는 relation되어 있는 entity가 언제부터 해당 관계를 가졌었는 지에 대한 date 속성을 부여할 수 있다.
[[파일:RelationshipAttribute1.png|프레임없음|309x309픽셀]]  [[파일:RelationshipAttribute2.png|프레임없음|317x317픽셀]]
 
relationship에는 attribute를 부여할 수 있다. 예를 들어서, advisor relationship set에는 relation되어 있는 entity가 언제부터 해당 관계를 가졌었는 지에 대한 date 속성을 부여할 수 있다. 이러한 속성은 relationship set에 점선으로 연결된 작은 직사각형 박스를 통해서 표시할 수 있다.
[[파일:RoleExample.png|섬네일|300x300픽셀|role 예시]]
relation에서 entity가 수행하는 역할을 그 entity의 role이라고 한다. relationship set에 참여하는 entity set들은 일반적으로 구별되므로 role이 명시될 필요가 없고, 실제로도 그러하다. 그러나 relation의 의미를 명확히 해야 할때가 존재하며, 이때 역할이 유용합니다. 그 경우 중 하나가 relationship set에 참여하는 entity set들이 구별되지 않는 경우, 즉 동일한  entity set이 여러 번 relationship set에 참여하는 경우가 있다. 이를 recursive relationship set이라고 하며, 이 경우에는 entity가 relationship instance에서 어떻게 participating하는지 명시하기 위해 role이 필요하다. 예를 들어서 대학에서 제공되는 모든 강좌에 대한 정보를 기록하는 entity set인 course를 고려해보자. 하나의 강좌(C2)가 다른 강좌(C1)의 전제조건인 상황을 나타내기 위해, 우리는 course entity set을 pair을 사용하여 나타내는 관계 집합 prereq를 정의한다. 이 경우, 한 쌍에서 첫 번째 course는 C1(main course)의 role을 하고, 두 번째 course는 C2(prerequest course)의 role을 한다. 이렇게 모든 prereq 관계는 (C1, C2) pair로 구현되며, (C2, C1) pair는 생성될 수 없다. E-R diagram에서는 role을 오른쪽 같이 다이아몬드와 직사각형을 연결하는 선에 레이블을 붙여 표시한다.
 


==Normalization Theory==
==Normalization Theory==

2025년 3월 19일 (수) 15:52 판

상위 문서: Database Design

개요

Entity Relationship Model(ER model)은 enterprise를 entity와 relationship으로 모델링하여 DB 설계를 명확하게 정의한다. 즉, ER model은 실제 enterprise의 meanings와 interactions를 개념적인 schema로 mapping하는데 유용하다. 이 모델은 데이터 구조와 그들 간의 관계를 entity-relationship diagram을 통해 시각적으로 표현하여, DB 설계 과정을 이해하기 쉽게 만든다.

개념

Entity Set

  • Entity: object들로부터 구분되는 enterprise의 object나 thing으로, attribute의 집합으로 표현된다.
    • 예를 들면 준영, 삼성, 현대 등이 있다,
  • Entity Set: 동일한 attribute를 공유하는 동일한 유형의 entity의 집합이다.
    • 예를 들면 서강대에서 재직하는 교수의 집합이 있다.
    • entity는 attribute의 집합으로 표현된다. 예를 들어 학생이라는 entity는 이름, 학번, 전공등으로 표현된다.
    • attribute의 부분집합은 entity set의 primary key를 구성한다. 이는 해당 집합의 각각의 원소들을 구분하는 역할을 한다. 학생 entity 집합에서는 학번이 그 역할을 할 수 있다.
Entity set을 시각적으로 나타낸 예시이다.

이러한 entity set은 아래와 같이 시각적으로 표현된다.

  • 각각의 entity set들은 직사각형으로 표현된다.
  • Attribute들은 entity ractangle 안에 열거된다.
  • 밑줄쳐진 attribute는 해당 attribute가 primary key임을 나타낸다.

Relationship Sets

  • Relationship: 몇몇 entity들 사이의 연관을 나타내는 집합이다.
    • 예를 들어서 학생 junyoung과 교수 junho 사이에는 advisor라는 relationship을 정의할 수 있다.
  • Relationship Set: entity set으로 부터의 두개 이상의 entity사이로 나타나는 수학적인 relation[1]이다. 이는 수학적으로 다음과 같이 나타낼 수 있다.
    • {(e1,e2,...,en)|e1E1,e2E2,...,enEn}where(e1,e2,...,en)isarelationship.
    • (junyoung,junho)advisor 에서 (junyoung, junho)는 relationship instance에 해당하며, {E1,E2,...,En}[2]은 relationship set에 속한다.

또한 instructor, student entity set의 각 사이의 relation을 위와 같이 표현할 수 있다.

또한 Relationship Set은 각 entity set 사이에서 위와 같이 다이아몬드 모양 박스 형태로 표시된다.

relationship에는 attribute를 부여할 수 있다. 예를 들어서, advisor relationship set에는 relation되어 있는 entity가 언제부터 해당 관계를 가졌었는 지에 대한 date 속성을 부여할 수 있다. 이러한 속성은 relationship set에 점선으로 연결된 작은 직사각형 박스를 통해서 표시할 수 있다.

role 예시

relation에서 entity가 수행하는 역할을 그 entity의 role이라고 한다. relationship set에 참여하는 entity set들은 일반적으로 구별되므로 role이 명시될 필요가 없고, 실제로도 그러하다. 그러나 relation의 의미를 명확히 해야 할때가 존재하며, 이때 역할이 유용합니다. 그 경우 중 하나가 relationship set에 참여하는 entity set들이 구별되지 않는 경우, 즉 동일한 entity set이 여러 번 relationship set에 참여하는 경우가 있다. 이를 recursive relationship set이라고 하며, 이 경우에는 entity가 relationship instance에서 어떻게 participating하는지 명시하기 위해 role이 필요하다. 예를 들어서 대학에서 제공되는 모든 강좌에 대한 정보를 기록하는 entity set인 course를 고려해보자. 하나의 강좌(C2)가 다른 강좌(C1)의 전제조건인 상황을 나타내기 위해, 우리는 course entity set을 pair을 사용하여 나타내는 관계 집합 prereq를 정의한다. 이 경우, 한 쌍에서 첫 번째 course는 C1(main course)의 role을 하고, 두 번째 course는 C2(prerequest course)의 role을 한다. 이렇게 모든 prereq 관계는 (C1, C2) pair로 구현되며, (C2, C1) pair는 생성될 수 없다. E-R diagram에서는 role을 오른쪽 같이 다이아몬드와 직사각형을 연결하는 선에 레이블을 붙여 표시한다.


Normalization Theory

Normalization Theory[3]는 데이터베이스 설계에서 잘못된 설계를 식별하고 이를 수정할 수 있는 방법을 제공한다.

각주

  1. 두 개 이상의 집합에 대하여 집합 원소들 간의 쌍을 나타낸다.
  2. 방금 예시에서 advisor가 이에 해당한다.
  3. 정규화 이론