만족
[Database] Data Modeling (Concept & ER Modeling) 본문
[Database] Data Modeling (Concept & ER Modeling)
DataBase/이론 Satisfaction 2021. 6. 11. 01:47관계형 DB를 설계할 때 가장 많이 사용되는 기법으로 ER Modeling이 있다.
ER Modeling은 이름에서부터 알 수 있듯이, Entity와 Relation을 이용해 현실 세계를 묘사한다.
Entity
Entity는 개체라고도 하며, 단독으로 존재할 수 있으며 다른 개체와 구별되는 object이다.
개체는 이름과 애트리뷰트를 갖는다.
이름은 개체의 이름이고, 애트리뷰트는 개체가 가질 수 있는 속성이다.
예를 들어, 사람이라는 개체는 성별, 나이, 키, 몸무게라는 애트리뷰트를 가질 수 있다.
Attribute
첫 번째로 애트리뷰트는 단순 애트리뷰트와, 복합 애트리뷰트로 나눌 수 있다.
가령 사람의 나이라는 애트리뷰트는 더 이상 나눌 수 없는 단순 애트리뷰트이지만,
사람의 거주지 주소라는 애트리뷰트는 도, 시/군/구, 동, 상세주소 등이 합쳐진 복합 애트리뷰트라고 할 수 있다.
두 번째로 애트리뷰트는 단일 값 애트리뷰트와 다중 값 애트리뷰트로 나눌 수 있다.
사람의 휴대폰 번호라는 애트리뷰트는 한 사람이 여러 대의 휴대폰을 가질 수 있으므로 다중 값 애트리뷰트로 볼 수 있다.
그러나 한 명의 사람이 여러개의 나이를 가질 수는 없으므로, 단일 값 애트리뷰트로 볼 수 있다.
Relation
릴레이션은 관계라고도 부르며, 개체 간의 관계를 나타낸다.
이 때 릴레이션으로 연결된 개체는 서로 다를 수도, 같을 수도 있다.
1:1 Relation
릴레이션으로 연결 된 개체들이 1:1로 연결되는 관계를 나타낸다.
사람 개체와 지역 개체가 있을 때, 사람 개체의 출생지라는 애트리뷰트는 지역 개체 한개와 반드시 연결되므로, 1:1 관계라고 볼 수 있다.
1:N Relation
릴레이션으로 연결 된 개체들이 1:N으로 연결되는 관계를 나타낸다.
사람 개체와 연락처라는 개체가 있을 때, 한 사람이 여러 개의 연락처(휴대폰번호)를
한개 가질 수도 있고, 가지지 않을 수도 있고, 여러개 가질 수도 있다.
또한 하나의 연락처는 한 사람에게만 귀속되므로, 1:N 관계라고 볼 수 있다.
이 관계가 매우 자주 나타나는 관계 타입이다.
N:M Relation
릴레이션으로 연결 된 개체들이 N:M으로 연결되는 관계를 나타낸다.
학생 개체와 과목 개체가 있을 때, 한 학생은 여러 개의 과목을 수강할 수 있고,
하나의 과목 역시 여러 개의 학생이 수강할 수 있으므로,
N:M관계라고 볼 수 있다.
0:0?
0:0의 관계는 존재하지 않는다.
애초에 매칭되는 것이 없으므로, 관계가 있다고 볼 수 없다.
ER Modeling Diagram
ER Diagram에서는 다음과 같이 개체와 관계를 표현한다.
사각형은 Entity name을 의미한다.
마름모는 Entity간 Relation이 어떤 Attribute를 기준으로 이루어져 있는지를 의미한다.
원은 Entity의 Attribute를 의미한다.
Student개체를 보면 Stu_Id, Stu_Name, Stu_Addr, StudyIn 속성을 가지고 있고,
Colleage개체와 StudyIn을 통해 Relation을 이루고 있음을 알 수 있다.
그러나 이러한 고전적인 ER Diagram 방식은 딱 보기에도 도형의 갯수가 너무 많고,
관계 타입(1:1, 1:N 등)을 표현하기에는 너무 복잡해질 수 있다는 단점이 있다.
그래서 요즘은 ER Diagram보다는 더 자주 Crow Foot Notation을 이용해 데이터 모델링을 진행한다.
'DataBase > 이론' 카테고리의 다른 글
[Database] Data Modeling (Patterns) (0) | 2021.06.11 |
---|---|
[Database] Data Modeling (Crow Foot Notation) (0) | 2021.06.11 |
[Database] 관계대수(Relational Algebra): 셀렉트(SELECT), 프로젝션(PROJECTION), 디비전(DIVISION) (0) | 2021.04.25 |
[Database] 관계 대수(Relational Algebra): 집합 연산 (0) | 2021.04.25 |
[Database] 관계형 데이터베이스 용어 정리 (0) | 2021.04.25 |