-
엔터티-릴레이션 모델을 활용한 데이터 모델링전공/데이터베이스 2020. 6. 9. 16:01
DB 설계 과정의 개요
이 포스트는 개념적 설계 위주로 설명한다.
위의 그림은 DB 설계과정을 간략화했다.
각 과정을 겪고 난 뒤에는 항상 documentation이 생성되는 것을 볼 수 있다.
미니월드에서 시작해서 요구명세서를 분석한 뒤 요구사항에 부합하는 데이터가 생성되고,
개념적 설계를 끝내면 개념 스키마(ERD)가 나오고,
논리적 설계(매핑)를 끝내면 (기계 의존적인)개념 스키마가 생성된다.
논리적 설계를 기점으로 데이터는 프로그램에 의존하게 된다(=프로그램-데이터 독립성을 잃게 된다).
개념적 설계는 ERD, EER, UML 등 여러 가지 방식으로 표현할 수 있다.
ER 모델 개념
엔터티와 속성
- 엔터티 : 현실 세계의 객체를 개념화한 것이다. 하나의 엔터티는 물리적 설계 단계에서 하나의 릴레이션(테이블)이 된다.
- 속성 : 엔터티의 특성, 특징을 나타내주는 개념이다. 속성은 원자 단위의 값을 가질 수 있고, 관점에 따라 여러 값이 들어간 복합 속성이 존재할 수도 있다. ex) Name(FirstName, MiddleName, LastName). 이럴 때 속성은 계층 구조를 이룬다.
복합속성의 계층구조 또한 속성은 여러 개의 값이 존재하는 '다중속성'도 존재한다. ex) 이수과목 : 데이터베이스, 논리회로, ...
복합속성과 다중속성은 드물긴 하지만 같이 나올 수도 있다.
도메인, 식별자
엔터티의 인스턴스끼리 구별할 수 있는 속성을 키 속성이라고 한다. 키 속성 = 식별자라고 이해하면 된다.
식별자는 여러 개가 존재할 수 있다. 즉, 2개 이상의 식별자로 인스턴스들을 유일하게 식별해도 된다는 것이다.
예를 들자면 구 차량 번호가 존재한다.
구 차량번호 승용차 엔터티가 있을 때 각 인스턴스들을 구별하려면 경기 + 31 + 러 + 3314 라는 식별자들이 합쳐져야 유일하게 차량을 구분할 수 있는 것이다.
식별자가 여러 개 존재해도 상관없다. 위의 경우와 달리 하나의 식별자로도 유일하게 인스턴스들을 구분할 수 있는 식별자가 2개가 있어도 된다는 뜻이다.
예를 들면 대학생 인스턴스에서 학번으로도 유일하게 학생을 특정할 수 있고, 주민등록번호로도 특정할 수 있다.
다만 속성은 엔터티의 성질을 나타내는 것이기 때문에 학번이 조금 더 알맞긴 하다.
ERD를 이용한 차 엔터티 예시 밑줄쳐진 Registration과 Vehicle_id가 식별자이다.
두 줄 타원인 Color 속성은 다중값을 나타낸다.
관계와 관계 종류
관계란 두 개 이상의 엔터티 사이에서 특정한 관계를 맺는 것이다.
관계를 맺고 있는 엔터티들끼리를 관계 type이라고 부른다.
그리고 관계 type에 있는 것들은 엔터티 type이라고도 한다고 책에 적혀있네.
관계type은 개념적인 설명인거고, 물리적인 설명을 할 때에는 관계set이라고 한대. 걍 그렇구나 하고 넘어가면 되는 정도.
Recursive 관계는 하나의 엔터티가 자기 자신과 관계를 맺는 것이다. self-referencing realtion 이라고도 한다.
약한 엔터티 타입
weak entity는 owner entity에 의존적이고 partial key를 갖고 있다.
부모격인 owner entity가 없으면 존재할 수 없다는 뜻이다.
partial key는 owner entity의 key가 있어야 인스턴스를 식별할 수 있다.
weak entity 예시(employee-dependent) 관계 type에서의 역할과 속성
두 엔터티가 관계를 맺고 있을 때 기수성(Cardinality)를 괄호로 표시할 수 있다.
(min, max) notation (min, max)는 min <= 관계의개수 <= max 인 것이다. 위의 그림에서 첫번째 관계를 말로 풀어보면
EMPLOYEE는 DEPARTMENT의 관리를 아무도 하지 않거나(0) 최대 한 명이 할 수 있다.
DEPARTMENT는 관리하는 EMPLOYEE가 최소, 최대 한 명이 있어야 한다.
두번째 관계를 해석하면
EMPLOYEE는 DEPARTMENT에 최소, 최대 한 곳에서만 근무할 수 있다.
DEPARTMENT는 EMPLOYEE를 최소 1명, 최대 N명까지 받을 수 있다.
ERD 표기법
보다 많은 관계
엔터티가 2개 연관된 관계를 binary라고 부른다.
3개는 tenary라고 부르며, n개는 n-ary라고 부른다.
보통 3개 이상의 관계는 binary에 비해 이해하기 힘들어서 자주 나타나지 않는다.
일반적으로 n-ary 관계는 n개의 binary 관계들과 같지 않다. 아래의 예시는 tenary 하나와 binary 3개를 비교한 예시이다.
'전공 > 데이터베이스' 카테고리의 다른 글
EER(Enhanced Entity-Relationship) 모델링 (0) 2020.06.09 DB 개념과 구축 (0) 2020.06.09 데이터베이스 개요 (0) 2020.06.08