ERD - Entity Realtionship Diagram 개체-관계 모델 : 구조화된 데이터에 대한 이련의 표현
엔터티 Entity
업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 알아야 하는 유,무형의 사물(개체)
업무 분석 단계 이후, 분석 자료(업무 기술서, 인터뷰 자료, 장부와 전표 등..)들로 부터 엔터티를 도출한다.
- 엔터티 도출 원칙
- 업무의 관심 대상이 되는 사물이어야 된다.
- 두 개 이상의 인스턴스를 소유해야 한다.
- 데이터의 정체성이 분명해야 한다.
- 데이터 종속성에 의해서 하나의 주제만을 관리하는 정의가 명확한 모델이어야 한다.
- 엔터티의 인스턴스를 식별할 수 있는 식별자(Identifier)가 존재해야 한다.
- 동일한 성격의 데이터는 유일해야 한다.
- 엔터티 명은 관리하고자 하는 데이터의 성격(주제)을 가장 잘 표현하는 이름으로 한다.
- 엔터티의 종류
1. 실체 엔터티
- 보이는 물체의 본질적인 성격을 관리하는 엔터티이다.
- 수표, 사원, 창고, 제품, 고객, 학생, 입출금전표 등이다.
2. 기준 엔터티
- 실체나 행위 데이터의 기준이 되는 데이터를 관리하는 엔터티이다.
- 업무를 수행하면서 참조하는 데이터가 있어 참조 엔터티라고도 불린다.
- 기준이 되는 엔터티의 데이터들이 여러 개면 어떤 것을 참조해야 할지 알 수 없으므로 하나만 존재해야 한다.
- 우편번호, 이자율, 수수료율, 영업일자 등
3. 행위 엔터티
- 행위나 활동에 의해 발생된 원천 데이터를 관리하는 엔터티이다.
- 계약, 주문, 신청, 입금 등이다.
4. 가공 엔터티
- 원천 데이터가 아닌 원천 데이터를 추출, 집계한 데이터를 관리하는 엔터티
- 가공 엔터티에 데이터를 쌓는 방법은 두가지가 있다.
- 트랜잭션 데이터가 발생할 때마다 집계
- 특정 시점에 해당하는 기간의 데이터를 집계
- 집계, 임시, 요약 등
속성 : 인터티가 가지는 항목이며 인스턴스의 구성요소이다.
속성(Attribute)의 종류
- 분해 여부에 따른 속성의 종류
- 단일 속성
- 하나의 의미로 구성된 속성
- 부서명, 상품명, 재고 수량 등
- 복합 속성
- 두 개 이상의 세부 속성으로 구성된 속성
- 전화번호(국번, 전화번호)나 주소(시, 구, 동)처럼 의미에 따라 별도로 나눠서 관리할 수도 있고 하나로 관리할 수도 있다.
- 다가 속성(다치 속성, 다중값 속성)
- 속성에 여러 값을 지니고 있는 속성
- 주문 내역, 입출고 내역, 결제 내역, 주문 메뉴명 등
- 1정규형에 의하면 속성은 단일값을 지녀야 하므로 다른 인스턴스로 구분하거나 어느정도 한정적인 갯수라면 속성을 분리해서 관리할 수도 있다.
- 특성에 따른 속성의 종류
- 기초 속성
- 엔터티의 본질을 설명하는 속성
- 기초 속성만으로도 엔터티의 성격을 알 수 있다.
- 관계 속성
- 타 엔터티와의 연관성을 나타내는 속성
- 관계속성은 다른 엔터티의 주 식별자 속성이다.
- 추출 속성
- 원본 속성의 값을 연산해서 채울 수 있는 속성이다.
식별자
주식별자(Primary Identifier)
- 엔터티에 소속된 인스턴스들을 구별하는 기준 역할을 하는 속성이다.
- 주식별자는 유일성, 최소성, 불변성, 존재성의 특징을 갖는다.
- 유일성: 주식별자에 의해 엔티티 내에 모든 인스턴스들을 유일하게 구분되어야 한다.(중복되지 않는다.)
- 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 불변성: 주식별자가 한번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 한다.
- 존재성: 주식별자가 지정되면 반드시 데이터 값이 존재해야한다.(NULL은 허용되지 않는다.)
- 주식별자는 하나가 아닌 여러 속성일 수 있다. (복합키)
- 엔터티의 속성 중 주식별자 속성이 없다면 새로운 속성을 만들어 준다.
외래식별자(Foreign Identifier)
- 관계가 있는 두 엔터티를 부모, 자식 엔터티로 구분한 후 부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래식별자로 지정한다.
- 자식 엔터티에 부모 엔터티 주식별자 공통 속성이 없을 경우 자식에게 속성을 추가한 후 외래식별자로 지정한다.
도메인
- 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합
- 유사한 속성에 동일한 데이터 타입을 할당할 수 있어 데이터의 일관성과 정합성을 유지할 수 있다.
도메인 도출 및 할당
1. 모든 속성을 엔터티별로 나열한다.
2. 합성명사를 분리한다.
3. 공통적인 합성명사와 명사들을 나열한다.
4. 공통적인 명사를 도메인으로 설정하고 속성을 도메인에 할당한다.
5. 각 도메인별로 데이터 타입과 길이를 지정한다.
2.관계 (RealationShip)
- 두 개 이상의 엔터티 간에 존재하는 연관성을 나타낸다.
- 하위(자식) 엔터티의 속성으로 관리될 때만 관계를 표현한다.
- 관계에는 종속관계와 참조 관계가 있다.
- 종속관계: 부모 엔터티와 자식 엔터티 간의 관계로 부모 엔터티가 존재해야 자식 엔터티가 존재할 수 있다. 반대로 말하면 부모 엔터티 없이 관계를 삭제하고 자식 엔터티만 존재할 수 없다.
- 참조관계: 엔터티간에 연관성이 존재하긴 하지만 다른 엔터티가 없다고 존재할 수 없는 관계는 아니다. 단순히 참조 데이터를 관리하므로 관계를 삭제해도 한 속성에 대한 연관성만 문제가 되고 하위 엔티티 존재에는 지장이 없다.
관계의 구성요서
카디널리티(Cardinality)
- 카티널리티는 릴레이션에서 튜플의 개수이자 상위(부모) 엔터티의 인스턴스 하나가 하위(자식)엔터티의 인스턴스 몇 개와 관련이 있는지 혹은 그 반대를 나타내는 것이다.
- 카디널리티를 통해 관계가 있는 두 엔터티는 일대일(1:1), 일대다(1:M), 다대다(M:M) 관계를 나타낸다.
- 다대다(M:M) 관계이면 교차 엔터티(Association Entity)를 통해 다대다 관계를 일대다(1:M) 관계로 해소해 주어야 한다.
옵셔널리티(Optionality)
- 상위(부모) 엔터티와 하위(자식)엔터티가 서로 연관되는 값이 반드시 존재해야 하는지 존재하지 않아도 되는지를 의미한다.
- 서로 연관되는 값이 반드시 존재하면(최소 1개 이상) Mandatory이다.
- 서로 연관되는 값이 반드시 존재하지 않아도 된다면(최소 0개 이상) Optional이다.
특별한 관계의 종류
일대일관계
- 상위(부모)엔터티의 하나의 인스턴스가 하위(자식)엔터티의 하나의 인스턴스와 연관되는 관계를 말한다.
- 성능이나 업무 규칙에 의해 일대일 관계를 채택할 수 있다.
- 데이터의 성격이 다르면 업무를 표현하기 위해서 일대일 관계를 채택할 수도 있다.
- 유사한 속성을 과도하게 일대일로 분해하는 것은 유의해야 한다.
배타 관계
두 개 이상의 상위(부모) 엔터티와 관계를 가지며 상호 배타적(하위(자식)엔터티의 하나의 인스턴스가 한번에 하나의 부모 엔터티와 관계를 가지게 됨)일 때의 관계를 말한다.
재귀관계
- 하나의 엔터티에서 인스턴스가 같은 엔터티의 다른 인스턴스와 관계를 가진다.
- 주로 계층 구조로 상위와 하위의 개념인 계층 구조(레벨이 존재하는 개념)가 생기는 데이터를 관리하는데 사용되며 엔터티의 개수가 늘어나 조인해야 할 엔터티가 늘어나는 것을 방지해 준다.
'LECTURE > DB Modeling' 카테고리의 다른 글
논리 모델 (0) | 2023.02.01 |
---|---|
개념 모델 (0) | 2023.01.31 |
DB Modeling 개요 (0) | 2023.01.31 |