ER모델

유영·2023년 4월 20일
0

DB

목록 보기
3/6

1. ER 모델( Entity Relation Model )

ER 모델은 요구사항으로부터 얻어낸 정보들을 개체(Entity), 애트리뷰트(Attribute), 관계성(Relation)으로 기술하는 데이터 모델을 말합니다.

ER모델은 피터 첸이 제안한 개념적 데이터 모델로써 현실 세계를 개체와 개체 간의 관계를 이용하여 개념적 구조로 표현하여 ERD(Entity-Relationship Diagram)으로 작성할 수 있습니다.


  • 구성 요소

개체( Entity )
개체란 단독으로 존재하는 객체를 의미하며, 동일한 객체는 존재하지 않습니다.
예를 들어, 학생 정보가 학번, 이름, 학년이 있을 때, 3개의 정보가 모두 같은 학생이 오직 한 명이면 이를 개체라고 합니다.
즉, 학생 한명이 개체가 되는 것입니다.

현실 세계에서 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 가르키며 데이터로써 DB에 저장할 가치가 있는 중요한 사람, 사물, 개념, 사건 등을 뜻 하며 최소 하나 이상의 개체를 가지고 있어야 합니다. (ex. 학원에 필요한 개체 : 학생, 수업 등)

이 개체들의 집합을 Entity Type이라고 합니다. 여기서는 Student, Course가 되겠네요.ER 다이어그램에서 Entity Type은 네모로 표현합니다.

애트리뷰트, 속성( Attribute )
개체가 갖는 속성을 의미합니다.
예를 들어, Student에서 학번, 이름, 학년 같은 정보를 속성이라 합니다.
개체나 관계가 가지고 있는 고유의 특성으로 DB에 저장할 데이터의 가장 작은 논리적 단위 입니다. (ex. 학생 개체의 속성 : 학생의 이름, 학생의 성별, 학생의 핸드폰 번호 등)
ER 다이어그램에서 Attribute는 원으로 표현합니다.

관계 ( Relation )
서로 다른 개체가 맺고 있는 의미 있는 연관성을 뜻합니다.즉, 개체 사이의 대응 관계(매핑)를 뜻합니다.ER 다이어그램에서 Relation은 마름모로 표현합니다.


ERD(Entity-Relationship Diagram) 구성 요소
ER다이어그램은 아래와 같이 그림으로 표현되는 구성 요소들이 있습니다.


각각의 참여나 관계 등에 따라 각 테이블을 이어주는 선이 변경 됩니다. 1:1 관계(남자-여자), 1:n 관계(학교-학생), n:m 관계(학생-수업) 등이 있으며 참여 부분은 아래와 같습니다.

선택적 참여(부분 참여) : 개체 중 일부만 관계에 참여해도 되는 것을 의미 (ex. 도서 개체가 고객 개체와의 구매 관계에 선택적으로 참여)

필수적 참여(전체 참여) : 개체가 관계에 반드시 참여 해야 하는것을 의미 (ex. 학생 개체가 수업 개체와의 수강 관계에 필수적으로 참여)


  • 표현 방법

2. 애트리뷰트,속성 ( Attribute )

1) Attribute Domain
해당 Attribute가 가질수 있는 집합(도메인)을 말합니다.
예를 들어,학생의 학년을 뜻하는 year 애트리뷰트는 1,2,3,4 와 같은 숫자만 허용하므로 year의 Attribute Domain은 정수형(integer)입니다.
학생의 이름을 뜻하는 name 애트리뷰트는 문자열이여야 하므로 name의 Attribute Domain은 문자열(String)입니다.

2) 키 애트리뷰트 ( Key Attribute )
다른 객체들과 중복되지 않는 고유한 값을 가진 Attribute로서, 주로 객체를 식별하는데 사용되는 Attribute입니다.
예를 들어, 학생의 학번을 의미하는 Student_no는 다른 학생들과 중복되지 않는 고유한 번호입니다.따라서 Student_no는 Key Attribute 입니다.
Key Attribute를 ER 다이어그램에서는 원에 밑줄로 표시합니다.

3) 복합 애트리뷰트 ( Composite Attribute )

독립적인 Attribute들이 모여서 생성된 Attribute를 의미합니다.
예를들어, 학생의 주소를 나타내는 Address 애트리뷰트가 있을 때, 우리나라에서 주소는 "경기도", "OO시", "OO동", "OO아파트"와 같이 표현합니다.
즉 Address는 위의 4개의 독립된 Attribute가 모여서 생성된 Attribute이므로 Address를 Composite Attribute라고 합니다.

4) 다중값 애트리뷰트 ( Multi-Valued Attribute )

하나의 Attribute가 여러 개의 값을 가지는 Attribute를 의미합니다.
예를 들어, 학생의 전공을 나타내는 Degree Attribute가 있다고 있을 때, 이 학생이 복수 전공을 할 경우 Degree Attribute 값이 2개가 되므로, 이 때 Degree Attribute를 Multi-Valued Attribute라고 합니다.
이와 달리, 오직 하나의 값을 갖는 애트리뷰트를 단일값 애트리뷰트(Single-Valued Attribute)라고 합니다.
Multi-Valued Attribute는 ER 다이어그램에서 두 개의 원으로 표현합니다.

5) 유도된 애트리뷰트 ( Derived Attribute )

다른 Attribute가 갖고 있는 값으로부터 계산되어져 나온 Attribute를 의미합니다.
예를 들어, 모든 상품의 총 가격을 나타내는 total, 상품의 가격을 나타내는 price, 상품의 개수를 나타내는 count Attribute가 있다고 가정하겠습니다.
total은 price와 count의 곱으로 계산되어져 나오는 값이므로 total Attribute는 Derived Attribute입니다.
Derived Attribute는 ER 다이어그램에서 원을 점선으로 표현합니다.

3. 관계성 ( Relationship )

ER 다이어그램을 설계하는 가장 큰 목적은 Entity Type을 정의하고 Entity Type간의 관계를 표현하는 것입니다.
Attribute를 통해 Entity Type을 정의했다면, Relationship을 통해 Entity Type간의 관계를 표현 표현합니다.

관계성은 2가지 제약조건을 명시함으로써 표현할 수 있습니다.

1) 카디널리티 비율 제약조건 ( Cardinality Ratio Constraint )
관계를 맺는 두 Entity Type에 대해, 한 개체가 얼마나 많은 다른 개체와 관련될 수 있는지를 나타내는 제약조건을 뜻합니다.

일대일(1 : 1)
두 개 Entity Type의 개체들은 서로 일대일로 대응
일대다(1 : N)
하나의 개체가 다른 Entity Type의 많은 개체들과 관련되지만, 그 역은 성립하지 않음
다대다(N : M)
하나의 개체가 다른 Entity Type의 많은 개체들과 관련되며, 역이 성립
( 일대일, 일대다, 다대다에 대한 자세한 내용은 여기를 참고해주세요 ! )

예를 들어, "학사 관리 시스템"에서 한 학생은 많은 과목을 수강할 수 있고 한 과목에는 많은 학생이 수강하므로, Student Entity Type과 Course Entity Type은 N : M 관계입니다.
이러한 카디널리티 비율제약조건을 ER 모델에 표현하면 다음과 같이 N, M을 명시해줘서 표현합니다.


또 다른 예시로, 부모와 자식 Entity Type 관계에서 부모는 많은 자식을 가질 수 있지만 자식은 한 부모만 가질 수 있습니다.
즉, 부모와 자식은 1 : M 관계이며, 이를 ER 다이어그램으로 다음과 같이 표현할 수 있습니다.
간혹 1과 M을 어느 선에 명시해야 할지 헷갈리는 경우가 있는데, M에 해당하는 Entity Type에 M을 명시해주면 됩니다.

0개의 댓글