자료출처: MS SQL 기반 데이터베이스 배움터 (생능출판사) http://www.yes24.com/Product/Goods/7489842?OzSrank=1
데이터베이스 배움터 - YES24
이론과 실무가 조화된 최적의 데이터베이스 책데이터베이스를 제대로 활용하는 데 반드시 필요한 데이터베이스의 기본적인 개념 및 이론을 이해하기 쉽게 설명한 책이다. 이와 함께 활용 기술
www.yes24.com
ER 모델(Entity Relationship Model)이란 데이터베이스 설계를 용이하게 만들기 위해 P. P. Chen이 1976년에 제안한 모델이다. 시대가 흐름에 따라 많은 학자들이 이 모델을 강화하고 개선시켰고, 그에 따라 현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에서 널리 사용되고 있다. 이는 개념적 설계를 위한 인기 있는 모델로서, ERWin과 같은 많은 CASE 도구들에서 지원된다. 이는 실세계를 엔티티, 애트리뷰트, 엔티티들 간의 관계로 표현하고, 쉽게 관계 데이터 모델로 사상된다. 이러한 기본적인 구문들 외에 기타 구문으로 카디날리티 비율, 참여 제약조건 등이 존재하기도 한다. 쉽게 배울 수 있고 이해하기 쉬우며 자연어보다 정형적이며 구현에 독립적이어서 데이터베이스 설계자들이 최종 사용자들과 의사소통을 하는 데 적합한 모델이라고 할 수 있다.
엔티티는 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체로, 사원처럼 실체가 있는 것은 물론 생각이나 개념과 같이 추상적인 것도 그 예시가 될 수 있다. 여러 개의 엔티티들은 엔티티 타입 또는 엔티티 집합으로 분류되는데, 엔티티 타입은 동일한 애트리뷰트들을 가진 엔티티들의 틀이고 엔티티 집합은 동일한 애트리뷰트들을 가진 엔티티들의 모임이다. 하나의 엔티티는 한 개 이상의 엔티티 집합이나 엔티티 타입에 속할 수 있다. 엔티티 타입은 관계 모델의 릴레이션의 내포에 해당하고 엔티티 집합은 관계 모델의 릴레이션의 외연에 해당하는 차이가 있지만, 엔티티 타입과 엔티티 집합을 엄격하게 구분할 필요는 없다. ER 다이어그램에서 이러한 엔티티 타입을 직사각형으로 나타낸다.
한편, 하나의 엔티티는 연관된 애트리뷰트들의 집합으로 설명되는데, 한 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 가능한 값들의 집합이라 할 수 있다. 예를 들어, 사원 엔티티 안에 사원번호, 이름, 직책 등의 애트리뷰트가 있을 때 사원번호는 1000부터 9999까지 네 자리 정수를 도메인으로 가지는 것이다. 이 때 여러 애트리뷰트가 동일한 도메인을 공유할 수 있다. 사원번호도 네 자리 정수를 가질 수 있지만, 동시에 부서번호도 네 자리 정수를 가질 수 있는 것이다. ER 다이어그램에서 기본 키에 속하는 애트리뷰트는 밑줄을 그어 표시를 하고, 애트리뷰트들은 타원형으로 나타낸다. 그리고 엔티티 타입과 애트리뷰트는 실선으로 연결된다. 이 때, 키를 형성하기에 충분한 애트리뷰트를 갖지 못한 엔티티 타입인 약한 엔티티 타입이 따로 있는데, 이 엔티티 타입이 존재하려면 소유 엔티티 타입이 있어야 한다. ER 다이어그램에서 이중선 직사각형으로 표기하며, 약한 엔티티 타입의 부분 키는 점선 밑줄을 그어 표시한다.
애트리뷰트의 종류는 여러 가지가 있다. 실선 타원으로 표현하여 더 이상 다른 애트리뷰트로 나눌 수 없는 단순 애트리뷰트, 두 개 이상의 애트리뷰트로 이루어진 복합 애트리뷰트, 각 엔티티마다 정확하게 하나의 값을 갖는 단일 값 애트리뷰트, 각 엔티티마다 여러 개의 값을 가질 수 있고 이중선 타원으로 표현되는 다치 애트리뷰트, 다른 애트리뷰트와 독립적으로 존재하는 저장된 애트리뷰트, 다른 애트리뷰트의 값으로부터 얻어져 점선 타원으로 표현되는 유도된 애트리뷰트 등이 있다. ER 다이어그램에서는 아래 그림과 같이 표현되는데, 단일 값 애트리뷰트, 저장된 애트리뷰트는 단순 애트리뷰트와 동일하게 표현된다.
엔티티들 사이에 존재하는 연관이나 연결로서 두 개 이상의 엔티티 타입들 사이의 사상으로 볼 수 있는 관계가 있다. 또한 동질 관계들의 집합인 관계 집합, 동질 관계들의 틀인 관계 타입도 있지만 이 둘을 엄격하게 구분할 필요는 없다. ER 다이어그램에서 다이아몬드로 표기하며, 관계 타입이 서로 연관시키는 엔티티 타입들을 관계 타입에 실선으로 연결한다.
ER 스키마를 작성하는 데에 유의해야 할 지침들도 존재한다. 엔티티는 키 애트리뷰트 외에 설명 정보를 추가로 가지며, 다치 애트리뷰트는 엔티티로 분류해야 하며, 애트리뷰트들이 직접적으로 설명하는 엔티티에 애트리뷰트들을 붙여야 한다. 가능하면 복합 식별자를 피해야 하고, 관계는 독자적으로 존재할 수 없는 게 일반적이지만 엔티티 타입과 관계 타입을 절대적으로 구분하는 것은 이와 별개로 쉽지 않다.
데이터베이스를 설계하는 데는 여러 과정이 필요하다. 응용의 요구사항을 수집하여 기술하고, 응용과 연관이 있는 엔티티 타입들과 관계 타입들을 식별하고, 이러한 관계가 1:1 (일대일), 1:N(일대다), M:N(다대다) 중 어느 것에 해당하는지 결정해야 한다. 그 다음 엔티티 타입과 관계 타입들에 필요한 애트리뷰트를 식별하고, 각 애트리뷰트가 가질 수 있는 값들의 집합을 식별하고, 엔티티 타입들을 위한 기본 키를 식별한다. 응용을 위한 ER 스키마 다이어그램을 그리고, ER 스키마 다이어그램이 응용에 대한 요구사항과 부합되는지 검사하여 DBMS에서 사용되는 데이터베이스 모델로 변환하는 과정까지 거쳐야 한다.
지금까지 언급한 ER 표기법은 Chen이 개발한 ER 모델의 표기법으로, 해당 표기법으로 수십 개 이상의 애트리뷰트가 엔티티 타입에 연결된 다이어그램을 나타내는 것은 매우 불편하며 공간을 많이 차지한다. 따라서 ERWin 등의 CASE 도구들에서는 새발(crow-feet) 표기법이 흔히 사용되며 ER 표기법의 요약과 새발 표기법은 아래 그림과 같다.
또한 1:1, 1:N, M:N 관계의 표기법에서 그 차이가 크게 두드러진다.
데이터베이스 설계 사례를 통해 지금까지 표현된 ER 다이어그램을 종합하려고 한다. 엔티티 타입 및 애트리뷰트들을 식별하고, 관계와 애트리뷰트들을 식별하기 위하는 등의 용도로 ER 모델이 사용되며, 이를 모두 종합한 회사의 ER 스키마 다이어그램은 아래 그림과 같다.
엔티티 타입으로 EMPLOYEE, PROJECT, DEPARTMENT, SUPPLIER, DEPENDENT, 그리고 PART가 사용되었다. 또한 EMPLOYEE와 DEPARTMENT 사이의 BELONGS 관계 타입, EMPLOYEE와 PROJECT 사이의 WORKS_FOR와 MANAGES 두 개의 관계 타입, EMPLOYEE와 DEPARTMENT 사이의 약한 관계 타입인 POLICY, PART 엔티티 타입이 두 번 참여하는 순환적 관계 타입, SUPPLIER, PROJECT, PART 세 개의 엔티티 타입이 참여하는 SUPPLIES 3진 관계 타입까지 실제로 위와 같이 복잡한 모델이 사용될 수 있다.
'데이터 [Data] > 데이터베이스론' 카테고리의 다른 글
데이터베이스론 보고서 8 : “관계 <-> 외래 키”라는 항목 (0) | 2021.07.15 |
---|---|
데이터베이스론 보고서 7 : SELECT문 정리 요약 (0) | 2021.07.14 |
데이터베이스론 보고서 5 : Join을 할 때 사용되는 제약조건 (0) | 2021.07.12 |
데이터베이스론 보고서 4 : 데이터 마이닝 (0) | 2021.07.11 |
데이터베이스론 보고서 3 : 후보 키(candidate key) (0) | 2021.07.10 |
댓글