ER 모델링은 데이터베이스 설계를 용이하게 하기 위해 P.P.Chen 이 1976년에 제안한 후 많은 학자들이 이 모델을 강화시켰으며 현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에 널리 사용되고 있습니다. 개념적 설계를 위한 인기 있는 모델로서, 높은 수준으로 추상화하며, 이해하기 쉬우며, 구문들의 표현력이 뛰어나고 사람들이 응용에 대해 생각하는 방식과 가깝고, 많은 CASE 도구들에서 지원이 됩니다.
ER 모델은 실세계를 엔티티, 애트리뷰트, 엔티티들 간의 관계로 표현하면 ER 다이어그램은 엔티티 타입, 관계 타입, 이들의 애트리뷰트들을 그래픽하게 표현합니다. ER 모델은 적은 노력으로 쉽게 배울 수 있고, 전문가가 아니어도 이해하기 쉬우며, 자연어보다는 좀 더 정형적으로, 구현에 독립적이어서 데이터베이스 설계자들이 최종 사용자들과 의사소통을 하는데 적합합니다.
ER 모델링 용어
- 엔티티(Entity) : 데이터베이스 테이블
- 속성(Attribute) : 데이터베이스 컬럼, 열
- 인스턴스(Instance) : 튜플, 행
- 주식별자(Primary identifier) : 기본키(Primary key)
- 외래식별자(Foreign identifier) : 외래키(Foreign key)
1. 엔티티 (개체, Entity)
엔티티란 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체로 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 알아야 하는 유형, 무형의 사물이나 객체입니다. 엔티티의 종류는 실체가 있는 것도 있지만 생각이나 개념과 같이 추상적인 것도 있습니다.
유형 엔티티
: 물리적인 형태가 있는 엔티티 (고객, 사원 등)
무형 엔티티
: 물리적인 형태가 없고 개념적으로 존재하는 엔티티 (생산계획, 부서조직 등)
문서 엔티티
: 업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티 (거래명세서, 입출금전표, 주문서)
이력 엔티티
: 업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티 (입고 이력, 출고 이력 등)
코드 엔티티
: 무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티 (국가코드, 색상 코드등)
엔티티를 정의할 때는 엔티티 안에 중복되는 데이터가 없어야 하며, 엔티티 이름을 지을 때는 한번에 알 수 있게 지어야 하고, 축약어를 쓸 경우 정해진 룰에 따라 지어야 합니다. 데이터의 중복은 데이터의 정합성을 해칠 가능성이 그 만큼 높아지며, 모호한 이름을 사용하는 경우와 축약어가 중구난방으로 쓰여진 경우에는 가독성을 해치게 됩니다.
2. 애트리뷰트 (Attribute, 속성)
하나의 엔티티에 연관된 애트리뷰트들의 집합으로 한 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 가능한 값들의 집합을 의미합니다. 테이블에서 컬럼을 말하며 객체로 본다면 객체의 속성을 말합니다. 키 애트리뷰트는 한 애트리뷰트 또는 애트리뷰트들의 모임으로서 한 엔티티 타입 내에서 각 엔티티를 고유하게 식별합니다. ER 다이어그램에서 기본키에 속하는 애트리뷰트는 밑줄을 그어 표시합니다.
- 기본 속성 : 업무 분석을 통해 현실 세계로 부터 얻어낸 속성 (제품명, 원가, 이름, 나이 등)
- 설계 속성 : 현실 세계에 존재하지 않지만 설계 과정에서 만들어진 속성 (국가코드, 부서코드 등)
- 유도 속성 : 다른 속성으로부터 계산이나 변형에 의해 나온 속성 (금액 = 수량 * 단가 등)
3. 관계와 관계 타입 (Relationship)
개체와 다른 개체와의 연관 관계를 표현합니다. 즉, 객체 집합 구성원소 사이의 대응성을 mapping 합니다. 관계성에는 일대일(One-to-One), 일대다(One-to-Many), 다대다(Many-to-Many) 관계가 있습니다.
- 일대일 ( One-to-One ) 관계
회원 = { 회원 인덱스 + 이름 } , 회원정보 = { 회원 인덱스 + 나이 + 주소 + 성별 } 이렇게 두 테이블이 있다면 이 두 테이블은 일대일 대응관계를 가지고 있습니다. 이럴 때는 하나의 테이블로 통합하여 관리하는 것이 좋습니다. 테이블을 통합하거나 유지할 때는 용도, 편리성, 저장 공간을 고려하여 결정해야 합니다.
- 일대다 ( One-to-Many ) 관계
회원 = { 인덱스 + 이름 }, 취미 = { 회원 인덱스 + 취미 } 이 경우는 회원이 가질 수 있는 취미의 종류가 많기 때문에 한 회원이 다양한 취미를 가질 수 있습니다. 이런 관계가 일대다 관계인데요. 하나에 해당하는 테이블에는 기본키를 가지고 다에 해당하는 테이블에는 기본키를 외래키로 추가하여 연결하는 방법입니다. 하나로 관리하면 Null 값이 많이 생겨 공간의 낭비가 발생할 때 새로운 테이블을 생성하여 테이블을 나누는 것이라 볼 수 있습니다.
- 다대다 ( Many-to-Many ) 관계
다대다 관계는 회원 = { 이름 + 나이 + 주소 }, 상품 = { 상품명 + 제조사 + 가격 } 같이 상품을 구매하는 경우 발생합니다. 이 때는 각각의 개체를 테이블로 작성한 후 기본키를 새로 작성한 구매 = { 회원(FK) + 상품(FK) + 수량 } 테이블을 생성하여 테이블의 관계를 맺는 방법을 사용합니다.
ER모델링이란 세상에 존재하는 모든 사실이나 현상을 실체와 관계라는 개념으로 표현하는 것입니다. 연구실과 학생이라는 실체는 소속이라는 관계에 의해 연관되어 있다고 할때 '학생은 연구실에 소속되어 있다'라는 사실로 표현할 수 있습니다.
그리고 ER 모델링에서 표현하는 방법도 찾아 보았는데요.
ER 모델링에서 표현하는 방법은 여러가지가 있으며 대표적인 것은
ER 모델링을 제창한 P.chen 에 의한 표기법과
Crow's Foot 표기법,
Rein85표기법,
IDEF1X 라는 표기법의 4가지가 있습니다. 4. IDEF1X ERD
1. Chen ERD
2. The Crow's Foot ERD
3. The Rein85
http://blog.naver.com/e_life2000?Redirect=Log&logNo=120095439833 - 그림 출처 (PDF파일)
http://hell_titan.blog.me/130095290141
http://blog.naver.com/pinkpigsong?Redirect=Log&logNo=80118179132





댓글 없음:
댓글 쓰기