ERD
ERD(이알디)란 "Entity Relationship Diagram"의 약자로서, 계체-관계 다이어그램이라고도 하며 말로 되어 있는 요구사항을 분석하여 그림으로 그려내어 그 관계를 도출한 다이어그램을 말한다. 즉, ERD는 엔티티(entity) 간의 관계(relationship)를 도표(diagram)로 표시한 그림이다. ERD를 그리기 위한 툴에는 이알윈(ER-win) 등의 제품이 있다.
목차
개요
1976년 피터 첸(Peter Chen)에 의해 객체-관계 모델 데이터 설명을 다이어그램으로 표현하는 것이 제안되었으며, 데이터 모델링 과정에서 개념적 설계를 위해 사용된다. 개념적 모델링 결과를 표준화된 그림으로 표현한다.[1] 전략적 계획이나 하향식 계획에서 자주 사용되며, 개략적인 상부계층의 데이터 다이어그램이다. 데이터의 하향식 계획은 기업을 운영하는데 관련된 실체들을 확인하고, 그것들 간의 관계들을 결정한다. 기업체를 효율적으로 운영하기 위해서는 어느 정도의 데이터가 필요하게 되는데, 이러한 데이터는 컴퓨터가 사용되지 않아도 상관은 없지만, 컴퓨터는 정확한 데이터를 필요한 사람에게 정확하게 전달하는 데 큰 도움을 준다. 문제가 되는 데이터는 정연하고, 자세히 설명될 필요가 있음으로, 이를 위해 데이터에 관한 데이터가 필요하다. 데이터에 관한 데이터를 흔히 메타데이터라 부르는데, 데이터 모델들은 이러한 메타 데이터를 포함하고 있다.[2]
구성
개체
사람, 사물, 장소, 개념, 사건과 같이 유형 또는 무형의 정보를 가지고 있는 독립적인 실체를 말하며 독립적인 의미를 지니고 있는 사람 또는 사물 개체의 특성을 나타내는 속성(attribute)에 의해 식별되며 개체끼리 서로 관계를 맺는다. 비슷한 속성의 개체 타입(Entity Type)을 구성하며, 개체 집합으로 묶인다.[4] 단독으로 존재하는 객체를 의미하며 같은 개체는 존재하지 않는다. 예를 들어 학생 개체가 있다고 가정했을 때 학생 정보가 학번, 이름, 학년이 있을 때, 3개의 정보가 모두 같은 학생이 오직 한 명이면 이를 개체라고 한다. 즉, 학생 한 명을 개체라고 하는 것이다. 이 개체들의 집합을 개체 타입(Entity Type)이라고 한다. ER 다이어 그램에서 개체 타입은 네모로 표현한다.
속성
데이터의 가장 작은 단위로 엔티티의 특성이나 상태 등을 나타낼 때 사용한다. 하나의 엔티티는 여러 개의 속성으로 나타낼 수 있으며 실제 데이터베이스에서는 칼럼(column)에 해당한다.[5] 개체(Entity)가 갖는 속성을 의미한다. ERD에서는 속성(Attribute)은 원으로 표현한다. 예를 들어, 위에 예시에서 학생 개체에 달린 원 모양의 학번, 이름, 전화번호가 속성이 된다.
관계
두 개 이상의 개체 사이에 존재하는 연관성을 말하며 특정 개체의 한 건과 대응하는 상대 개체의 선수를 의미하는 기수성과 특정 개체의 한 건과 대응하는 상대 개체가 반드시 있어야 하는 특징인 서수성을 가진다.[4] 개체 타입(Entity Type) 간의 관계를 의미한다. ER 다이어그램에서 관계(Relation)는 마름모로 표현한다. 예를 들어, 위의 예시에서 학생과 과목은 등록이란 관계를 맺고 이때 등록은 관계 타입(Relation Type)이라 하며, 관계 타입 역시 속성을 가질 수 있다.
유형[7]
1:1 관계
개체 집합 A의 원소가 개체 집합 B의 원소 1개와 대응하는 관계를 말한다.
<예시> [인사테이블] 인사ID | 이름 | 01 김철수 02 김영희 03 홍길동 04 김춘자 [주민번호테이블] 주민번호 | 인사ID | 111111-1111111 01 222222-2222222 02 333333-3333333 03 444444-4444444 04 <관계> [인사테이블] : [주민번호테이블] = 1 : 1 ★ 한명의 사람은 하나의 주민번호만 가질 수 있다.
1:N 관계
개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응할 수 있고, 개체 집합 B의 각 원소는 개체 집합 A의 원소 1개와 대응하는 관계를 말한다.
<예시> [직급테이블] 직급 | 인사ID | 사장 01 이사 02 부장 03 차장 04 팀장 05 팀장 06 팀장 07 과장 08 대리 09 대리 10 대리 11 주임 12 주임 13 사원 14 사원 15 [인사테이블] 인사ID | 이름 | 01 성낙X 02 고XX 03 김XX 04 유XX 05 김XX 06 이XX 07 손XX 08 송XX 09 이XX 10 김XX 11 김XX 12 윤XX 13 유XX 14 이XX 15 송XX <관계> [인사테이블] : [직급테이블] 1 : N ★ 한명의 직원은 하나의 직급만 가질수 있으나 직급에 해당하는 사람은 여러명이다.
N:M 관계
개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응할 수 있고, 개체 집합 B의 각 원소는 집합 A의 원소 여러 개와 대응할 수 있는 관계를 말한다.
<예시> [ 인사테이블 ] 인사ID | 이름 | 주소 | 1 김아린 오산시 2 김철수 수원시 3 김영희 안양시 4 김말순 서울시 5 박삼순 평택시 6 정성희 오산시 [ 취미테이블 ] 취미ID | 취미 | 인사ID | 1 독서 1 2 농구 2 3 그림그리기 5 4 독서 6 5 요리 4 6 농구 3 7 등산 2 8 사진 6 9 영화 3 10 농구 4 [인사테이블] : [취미테이블] N : N ★ 한명의 사람은 여러개의 취미를 가질수 있으며 취미는 여러사람이 같은 취미를 가질 수 있다.
새발 표기법
관계의 의미나 제약조건 등은 개체 타입들을 연결하는 실선 위에 몇 가지 기호를 서용하여 표현하는 기법이다.
각주
- ↑ 이상향(理想鄕), 〈데이터베이스 개념적 모델_개체-관계 모델 (1)〉, 《개인 블로그》, 2020-07-14
- ↑ seek, 〈ERD(Entity-Relationship Diagram)〉, 《개인 블로그》, 2015-09-08
- ↑ 3.0 3.1 소이, 〈ER 다이어그램〉, 《개인 블로그》, 2012-04-03
- ↑ 4.0 4.1 LIB, <제09절 개체-관계(E-R) 모델>, 《개인 블로그》, 2016-06-11
- ↑ 심플한 개발자, <데이터 베이스 설계 절차>, 《개인 블로그》, 2019-07-23
- ↑ victolee, <ER모델( Entity Relation Model) - 개념적 설계〉, 《개인 블로그》, 2018-02-05
- ↑ 루피파파, <테이블의 관계(1:1, 1:N, N:N 관계), 데이터 패턴>, 《개인 블로그》, 2008-09-24
참고자료
- 이상향(理想鄕), 〈데이터베이스 개념적 모델_개체-관계 모델 (1)〉, 《개인 블로그》, 2020-07-14
- seek, 〈ERD(Entity-Relationship Diagram)〉, 《개인 블로그》, 2015-09-08
- victolee, <ER모델( Entity Relation Model) - 개념적 설계〉, 《개인 블로그》, 2018-02-05
- 소이, 〈ER 다이어그램〉, 《개인 블로그》, 2012-04-03
- LIB, 〈제09절 개체-관계(E-R) 모델〉, 《개인 블로그》, 2016-06-11
- 심플한 개발자, 〈데이터 베이스 설계 절차〉, 《개인 블로그》, 2019-07-23
- advenoh, 〈관계형 데이터베이스 설계 및 구축〉, 《개인 블로그》, 2019-02-06
같이 보기