ER(Entity-Relationship) 모델 또는 개체-관계 모델은 전체적인 데이터베이스의 논리적인 구조를 표현하는 데이터 모델링 도구입니다. 사용자 요구사항을 분석하여 실세계를 표현하기에 접한 한 표기법을 제한하고 있어 현재까지 개념적 데이터 모델링의 대표적인 방법으로 사용됩니다.
실세계의 속성들로 이루어진 개체 집합과 이들 사이의 관계를 정형화시킨 모델이다. 따라서 ER모델은 실세계의 조직 업무의 의미와 상호작용을 개념적으로 나타내는 데 매우 유용하다.
개체는 ER 모델의 가장 기본적인 요소이며, 실세계에 존재하는 다른 모든 개체와 구별되는 유/무형의 대상을 표현한다.
이러한 개체는 특정 지을 수 있는 다수의 속성으로 정의되며, 일부 속성은 개체를 유일하게 구별하는 역할을 한다.
개체 집합은 개체들의 모임으로, 같은 속성을 공유하는 개체들로 구성된다.
하지만 현재와 같은 대규모 데이터베이스 모델링에는 높은 복잡성과 업무 현장에서 잘 사용되지 않는다. 대표적인 ER 모델링 툴인 Win이나 Rational Rose 뿐만 아니라 MySQL 워크벤치 또한 초기의 ER 표기법보다는 UML(Unified Modeling Language) 표기법을 사용하고 있다.
UML 표기법으로 개체 집합은 두 개의 칸으로 나뉜 직사각형으로 표현하며 개체 명은 상단, 키 속성은 첫 번째 칸에 그 이외의 속성은 두 번째 칸에 위치한다. UML 형식의 장점은 모든 개체를 고유하게 구분하는 키와 속성 값을 이 가질 수 있는 도메인이 존재해 한눈에 모델링을 알 수 있다는 점이다.
여러 개체(테이블)들은 그들 사이에 연관성을 가지는데 이를 ER 모델에서는 관계라고 표현한다.
관계는 실세계를 표현하는 가장 중요한 추상적인 개념이다. 개체 집한 간의 관계를 정의하고 주어진 값들을 정의된 관계에 따라 해석할 때 데이터는 비로소 정보로서의 역할을 할 수 있다.
관계 집합은 같은 유형의 특정 관계집합으로 , 2개 이상의 개체 집합 간의 수학적인 연결 관계를 나타냅니다.
한 개체 집합이 다른 개체 집합과 연관성을 가지는 것을 관계 집합에 참가한다고 표현한다. 관계 집하에 참여하는 개체 집합의 수를 관계 집합의 차수라고 부르며, 차수가 2일 경우 이항관계 집합이라고 정의한다.
ER 모델에서의 기본적인 요소는 개체 집합이며, 개체 집합은 속성의 집합으로 구성된다.
속성이란 개체를 구체적으로 설명하는 특성이라고 할 수 있다.
예를 들어 학생이라는 개체가 존재했을 때 고유한 속성인 학생 번호, 그리고 학생 이름, 성별, 나이라는 특성을 가질 수 있다.
속성도 다양한 종류가 존재한다. 단순 속성은 더 이상 작은 구성요소로 나눌 수 없는 속성을 말한다. 성별, 나이와 같은 속성의 값을 나눌 경우 의미가 소실되기 때문에 나누어질 수 없다.
반면 복합 송성은 더 작은 의미로 나누어 질 수 있는 속성을 말한다. 예를 들어 집주소가 존재한다면 시, 구, 동 으로 세분화될 수 있기 때문에 나누어질 수 있는 속성이다.
실셰게의 정보는 때때로 다른 속성의 값으로부터 연산 과정을 통해 새롭게 생성되기도 한다. 대표적으로 나이라는 속성은 생일이라는 속성으로부터 연산이 가능한 정보이다. 이렇게 다른 속성 값으로부터 유도되어 결정되는 속성 값을 유도 속성이라 하며, 실제 값을 저장해야만 의미가 유지되는 속성을 저장 속성이라고 한다.
실제 우리는 실세계의 객체를 표현하는 데 가장 중요한 추상적 개념은 개체 집합과 관계 집합이다.
관계 지합은 한 개체 집합에서 다른 개체 집합으로 개체 간 대응성, 곧 사상을 의마한다. ER 모델링은 관계 집합에 대한 상세 표현을 위해 데이터베이스가 준수해야 하는 제약조건을 부가할 수 있다.
1. 사상수
mapping cardinality란 관계 집합에 참가한 개체 집합들에 대해 각각의 개체가 얼마만큼의 관계를 맺을 수 있는지를 명시한다. 우리가 1:N ,M:N , N:1이라고 표현하는 것들이다.
일대일 : OneToOne 관계는 개체 집합 A에 포함된 한 개체가 최대 B에 포함된 한개의 개체와 관계하며, 그 역도 성립한다.
일대다 : OneToMany 관계는 A에 포함된 한 개체가 B에 포함된 한 개 이상의 개체와 관계하나, B에 포함된 한 개체는 최대 A에 포함된 한 개체와 관계한다.
다대일 : ManyToOne 관계는 A에 포함된 한 개체가 최대 B에 포함된 한 개체와 관계하는 반면, B에 포함된 한 개체는 A에 포함된 한 개 이상의 개체와 관계한다.
다대다 : ManyToMany 관계는 A에 포함된 한 개체가 B에 포함된 한 개 이상의 개체와 관계하며, B에 포함된 한 개체는 A에 포함된 한 개 이상의 개체와 관계한다.
즉 개체 들끼리 포함관계를 가지고 있으므로 관 테이블의 관계를 이야기할 때 레코드를 기준으로 보아 파악할 수 있다.
2. 참가 제약조건
개체 집합 간 관계가 있다하더라도 반드시 개체 집합 내의 모든 개체가 관계에 참여하는 것은 아니다. 참가 제약조건은 관계에 참여하는 개체 집합의 범위를 나타낸다. 모두 참여한다면 전체적 참가, 일부만 참가해도 된다면 부분적 참가라고 한다.
ER모델에서는 부분 참여는 하나의 실선으로 전체 참여는 이중 실선을 사용하여 표현한다.
'Database' 카테고리의 다른 글
데이터 모델링 (1) (0) | 2021.04.21 |
---|---|
[DB] 설계 실습 (0) | 2021.04.13 |
데이터베이스 관리자 DBA (0) | 2021.04.12 |
Indexing (0) | 2021.03.01 |
DataBase 정규화 (0) | 2021.02.27 |
댓글