봉봉의 개인 블로그
2017-07-12-Entity Relationship Diagram 본문
ERD(Entity Relationship Diagram)란?
ERD는 말로서 되어있는 요구분석사항을 그림으로 그려내어 그 관계를 도출하는 것이다.
데이터 모델링 분야에서 "개체-관계 모델(Entity Relationship Model)"이란 구조화된 데이터에 대한 일련의 표현이다.
"구조"화된 데이터를 저장하기 위해 데이터베이스를 사용하고 이 데이터의 "구조" 및 그에 수반한 제약 조건들은 다양한 기법에 의해 설계될 수 있다.
그 기법 중 하나가 개체-관계 모델링(ERM: Entity-Relationship Modelling)이다.
ERM 프로세스의 산출물을 가리켜 개체-관계 다이어그램(ERD: Entity-Relationship Diagram)이라 한다.
데이터 모델링 과정은 데이터 모델을 그림으로 표현하기 위해 표시법을 필요로 한다.
'ERD'는 전략적 계획이나 또는 하향식 계획에서 자주 사용되며, 개략적인 상부계층의 데이터 다이어그램이다. 데이터의 하향식 계획은 기업을 운영하는데 관련된 실체들을 확인하고, 그것들간의 관계들을 결정한다. 기업체를 효율적으로 운영하기 위해서는 어느 정도의 데이터가 필요하게 되는데, 이러한 데이터는 컴퓨터가 사용되지 않아도 상관은 없지만, 컴퓨터는 정확한 데이터를 필요한 사람에게 정확하게 전달하는데 큰 도움을 준다. 문제가 되는 데이터는 정연하고, 자세히 설명될 필요가 있으므로, 이를 위해 데이터에 관한 데이터가 필요하다. 데이터에 관한 데이터를 흔히 메타데이터라고 부르는데, 데이터 모델들은 이러한 메타데이터를 포함하고 있다.
데이터 분석가들은 조직의 데이터를 그들에게 이해시키고, 조직을 관리하는데 가장 유익하게될 데이터를 만들기 위해 최종사용자들 및 중역들로부터 많은 도움을 필요로 한다. 이들과의 의사소통을 원활히 하기 위해, 그들은 데이터를 도식화하는 명료한 방법이 필요하며, ERD와 같은 다이어그램은 조직의 정보자원을 전반적으로 계획하는데 있어 필수적이며 유용한 도구이다. ERD는 개발되고 나면, 좀더 자세한 데이터 모델로 분해될 수도 있다.
Entity란 우리가 저장한 데이터에 관해 무언가 실제적이거나 추상적인 것을 모두 포함한다. Entity의 형태는 고객, 근로자, 청구서, 상품, 교대근무보고서, 영수증, 창고, 지사, 영업사원 등을 예로 들 수 있다. 각 Entity의 이름은 보통 명사(名辭)이어야하지만, 때로는 수식어구가 사용될 수도 있다. Entity 형태는 같은 속성형태를 가진 Entity들을 대표할 수 있는 이름을 붙인 일종의 부류를 나타낸다.
예를 들어 '근로자'라는 Entity가 있다면, 그 Entity에 속하는 '홍길동'이라는 Entity 인스턴스가 존재할 수 있다. ERD에서 Entity는 직사각형으로 그리며, 각 Entity간의 관계는 좌측 그림에 예시되어 있는 것과 같은 표기방법을 이용하여 관계를 나타내게 된다
1. ER모델의 개념
• Peter Chen에 의해 제안 (1976)
- ERD(Entity Relationship Diagram)로 표현
• ER모델의 기본 요소
- Entity : 시스템화 하고자 하는 사건, 사물
- Relationship : 엔티티간, 애트리뷰트간의 연관성
- Attribute : 엔티티, 관계성의 성질을 나타내는 더 이상 쪼갤수 없는 정보의 단위
- 실세계의 모든 업무체계는 기본요소 3가지(Entity, Relationship, Attribute)로 모두 표현이
가능하다.
• 확장된 요소
- 일반화 계층 (Generalization Hierachy) : 여러 엔티간의 공통적인 특성을 파악
- 서브세트(Sub Set): 일반화중 하나의 서브 엔티티를 갖는 경우
2. 개체 (Entity)
• 개념
- 시스템화 하고자 하는 사물이나 사건
- 현실 세계의 객체
- 예) 사원, 부서, 남자, 도시, 계약, 물품 등
• 표기법
• 종류
- 일반 엔티티, 약 엔티티, 슈퍼 엔티티, 서브 엔티티
3. 관계성 (Relationship)
• 정의
- 개체간의 연관성을 나타낸다.
예) 소속된다. 관리된다. 소유한다. 등
• 표기법
• 종류
- 관계의 종류 : 이진관계, 순환관계, 삼진관계
- 관계성 (카디널리티, Cardinality) : 1대1, 1대N, N대N
4. 속성 (Attribute)
• 정의
• 표기법
• 종류 : 일반속성, 키속성, 다중값 속성, 복합속송, 유도속성
5. 기본 ERD 작성의 사례
사용처
정보 시스템을 디자인 해나가는 데에 위와 같은 모델들을 사용하여 시스템이 필요로 하는 정보를 기술한다든가 데이터베이스에 저장되어야 할 정보의 타입(type)이 무엇인가 분석해 나갈 수 있다. 특히 요구사항 단계에서 말이다.
어떤 도메인 오브 디스코스(관심 대상이 되는 부분)의 온톨로지를 기술할 때, 데이터 모델링 테크닉이 사용될 수 있다. (사용된 텀들(terms)과 그들과의 관계를 정의하고 분류하는 일이다.) 데이터베이스에 기반한 정보 시스템(information system)을 디자인하고자 하는 경우에는 나중에 가서는(논리 설계 단계) 개념 데이터 모델은 논리적 데이터 모델로 맵핑된다. 논리적 데이터 모델은 관계형 모델 같은 것이다.
뒤이어 논리적 데이터 모델은 물리 설계 단계에서 물리적 디자인 모델로 다시 맵핑된다. 단, 이와 같은 단계를 모두 뭉뚱그려 "물리 설계"라고 일컫기도 한다.
개체-관계 다이어그램(ERD)를 그리는 데에는 수많은 관습/방법(convention)이 존재한다. ERD를 그리는 데 아주 고전적인 방법이 이 문서의 아래에 기술되어 있다. 아래 기술된 방법은 개념 모델링과 주로 연관되어 있다.
데이터베이스 논리설계 및 물리설계 단계에서는 관습적으로 쓰이는 노테이션(notation)들이 몇 가지 더 있다. 예를 들면 인포메이션 엔지니어링, IDEF1X (ICAM DEFinition Language), 디멘저널 모델링 같은 것들이다.
전통적인 다이어그램 컨벤션
개체(엔티티)는 분리된 물체 하나를 표현한다. 엔티티는 명사 하나에 해당한다고 생각하면 쉽다.
예를 들면 다음과 같다: 컴퓨터(1개), 사람(1명), 악곡(1개), 수학적 정리(1개). 엔티티는 사각형으로 표시된다.
관계(릴레이션쉽)는 두 개 이상의 엔티티들이 어떻게 서로 연관되어 있나를 기록한다.
예를 들면 다음과 같다: 회사와 컴퓨터 사이의 "소유하다"라는 관계, 상사와 부하 직원 사이의 "감독하다"라는 관계, 연주자와 악곡 사이의 "연주"라는 관계, 수학자와 수학 정리 사이의 "증명했다"라는 관계 등이다. 관계는 다이아몬드형으로 그리는데, 관계된 엔티티와는 실선으로 연결한다.
엔티티도 Attribute를 가질 수 있고, 관계도 Attribute를 가질 수 있다.
예를 들면 다음과 같다: 피고용인 엔티티는 생년월일 Attribute를 가질 수 있다.
모든 엔티티(위크 엔티티가 아닌 한)는 "고유하게 식별되는" Attribute 집합을 가지고 있어야 한다. 최소한의 고유 식별 Attribute 집합은 엔티티의 기본 키(Primary Key)라 불린다.
개체-관계 다이어그램은 하나의(single) 엔티티를 보여주고 있거나 하나의(single) 관계 인스턴스를 보여주고 있는 것은 아니다. 사각형은 "엔티티 집합들"을 나타내고 있는 것이고, 다이아몬드형은 "관계 집합들"을 보여주고 있는 것이다. 예를 들면 다음과 같다: 특정한 악곡은 하나의 엔티티이다. 하나의 데이터베이스 안의 모든 악곡들의 모음은 하나의 엔티티 집합이다. 한 아이와 그 아이의 점심 도시락 사이의 "먹어치움" 관계는 하나의(single) 관계이다. 하나의 데이터베이스 안의 모든 그러한 아이-점심 도시락 관계는 관계 집합이다.
실선은 관련된 엔티티 집합과 관계 집합 사이에 그린다. 엔티티 집합의 모든 엔티티가 관계에 참여(participate)하고 있을 때, 선을 굵게(thick) 그리거나 이중선(double) 으로 그린다. 이것을 파티시페이션 콘스트레인트라고 부른다. 엔티티 집합 내의 각각의 엔티티가 관계 집합 내의 최대 한 개의 관계에 참여할 수 있을 때, 엔티티 집합에서 관계 집합 쪽으로 화살표를 하나 그려준다. 이것을 키 콘스트레인트라고 부른다. 엔티티 집합 내의 모든 엔티티가 각각 하나씩의 관계에 정확히 대응될 때는 화살표를 굵게(thick) 그린다.
다대다(many-to-many) 관계를 기술할 때는 어소시에이티브 엔티티를 사용할 수 있다.
단일 테이블의 행 사이의 관계를 기술하기 위해 단방향 관계(Unary Relationships)를 사용할 수도 있다.
ER 다이어그램 작성 툴
- 상용
마이크로디자이너: MicroDesigner, ERD 툴, IE 및 IDEF1X 표기법을 충실히 따르는 모델링 도구 제공, 공학/역공학 기능 및 모델 병합 기능등 다양한 기능을 제공 (주)인브레인 제작.
eXERD: ERD 툴, 논리, 물리, 논리와 물리 통합 모델링을 지원. 메뉴 및 도움말이 한글로 제공되며 직관적이고 다양한 편의기능 제공. (주)토마토시스템 사 제작.
CA ERwin Data Modeler: ERD 툴, HTML 리포트를 생성하는 기능이 있다.
ConceptDraw: ER 다이어그램을 만들기 위한 크로스 플랫폼 소프트웨어이다.
DB Visual ARCHITECT: UML 클래스 다이어그램과 ERD를 지원한다.
ER/Studio: 강건하고, 사용하기 쉬운 ER 모델링 툴. Embarcadero사 제작.
마이크로소프트 비지오: 엔터프라이즈 아키텍처 버전을 구입해야 여러 데이터베이스 및역 엔지니어링을 지원한다.
ModelRight: 물리 모델링 툴.
OmniGraffle: 맥 OS용 다이어그램 그리기 소프트웨어
Oracle Designer: 오라클 코포레이션이 제공하는 컴퓨터-보조 소프트웨어 엔지니어링 툴. 정보 시스템 설계 및 생성 툴.
PowerDesigner: 사이베이스에서 나온 모델링 스위트. 개념, 논리, 물리, 리버스 엔지니어링 모델링이 가능한 데이터 아키텍트(Data Architect) 툴 포함. 여러 RDBMS 브랜드를 지원한다.
Rational Rose: UML 다이어그램을 작성하기 위한 소프트웨어이다. 오래된 만큼 사용하기도 쉽다.
SILVERRUN 모델스피어: 개념, 논리, 물리 데이터 모델링을 지원. 다수의 타겟시스템을 지원하는 인터페이스가 갖춰져 있음.
SmartDraw: 포인트 앤드 클릭(point and click) 그리기 기법을 제공. 여러 가지 템플레이트 제공.
- 무료 소프트웨어
DBDesigner-Fork: DBDesigner의 변종. PostgreSQL과 같은 다른 데이터베이스 시스템도 이용할 수 있게 변형됨.
다이어 (소프트웨어): ERD 외에도 다른 여러 다이그램을 작성할 수 있는 툴.
페렛 (소프트웨어): 데비안, 우분투와 같이 배포되는 ERM 툴.
카이비오: (Kivio) ER 다이어그램도 지원하는 순서도 그리기 툴.
MySQL 웍벤치: (MySQL WorkBench) 그래픽하게 스키마와 리버스 엔지니어링 스키마들을 작성할 수 있다. 여러 데이터베이스 엔진을 타겟으로 한다.
오픈 시스템 아키텍트: (Open System Architect) ER 다이어그램 모델러. 가장 최근 버전은 2005년에 나온 것이다.
파워*아키텍트: (POWER*ARCHITECT) 자바 언어로 작성된 ER 다이어그램 모델러. 여러 무료 소프트웨어 및 상용 데이터베이스 엔진을 타겟으로 한다.
'학원에서 배운것들 > TEA - T' 카테고리의 다른 글
2017-07-19-T(JQuery 플러그인 제작 및 콜백함수 및 바로호출 (0) | 2017.07.19 |
---|---|
2017-07-11-T(게시판 editor)이미지 업로드 가능 (0) | 2017.07.11 |
2017-07-10-T(mock up) (0) | 2017.07.10 |
2017-06-30-T (0) | 2017.06.30 |
2017-06-29-T (0) | 2017.06.29 |