발생시점에 따른 엔터티 분류
- 기본/키엔터티
- 중심엔터티
- 행위엔터티
분류 | 설명 |
기본 | 업무에 원래 존재하는 정보로 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성된다. 다른 엔터티의 부모 엔터티로 다른 엔터티로부터 식별자를 상속 받지 않고 자신의 식별자를 가진다. - 사원, 부서, 고객, 상품, 자재 |
중심 | 기본 엔터티로부터 발생되며 업무에서 중심적인 역할을 한다. 많은 데이터가 발생하고 다른 엔터티와의 관계를 통해 행위 엔터티를 생성한다. - 계약, 사고, 예금원장, 청구, 주문, 매출 |
행위 | 2개 이상의 부모 엔터티로부터 발생하고, 자주 내용이 변경되거나 많은 데이터가 생성된다. - 주문목록, 사원변경이력 |
데이터모델링
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
- 시스템 구현을 포함한 업무분석 및 업무형성화
데이터 모델링 유의점
- 중복(Duplication)
- 비유연성(Inflexibility) : 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
- 비일관성(Inconsistency) : 데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의하여 비일관성의 위험을 사전 예방
데이터모델링을 하는 주요한 이유
- 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석
- 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위함
개념적 - 논리적 - 물리적 데이터 모델링
개념적 데이터 모델링 | 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링, EA수립시 많이 사용 |
논리적 데이터 모델링 | 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음 |
물리적 데이터 모델링 | 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계 |
데이터베이스 스키마 구조(3단계)
- 외부스키마
- 개개인의 사용자가 보는 개인적 DB 스키마
- 개념스키마
- 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
- 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현
- 내부스키마
- 물리적 장치에서 데이터가 실제적 저장
ERD 작성 순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치한다.
- 엔터티간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수여부를 기술한다.
엔터티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 인스턴스의 집합이어야 한다.('한 개'가 아니라 '두 개 이상')
- 엔터티는 업무 프로세스에 의해 이용되어야 한다.
- 엔터티는 반드시 속성이 있어야 한다.
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.(단, 통계성 엔터티나, 코드성 엔터티의 경우 관계를 생략할 수 있다.)
엔터티 명명 기준
- 가능하면 현업업무에서 사용하는 용어를 사용한다.
- 가능하면 약어를 사용하지 않는다.
- 단수명사를 사용한다.
- 유일하게 이름이 부여되어야 한다.
- 엔터티 생성의미대로 이름을 부여한다.
속성
"업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위"
업무상 관리가 가능한 최소의 의미 단위, 엔터티에서 한 분야를 담당
엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
- 한 개의 엔터티는 두 개 이상의 속성을 갖는다.
- 한 개의 속성은 한 개의 속성값을 갖는다.
속성의 특성에 따른 분류
- 기본속성
- 설계속성
- 파생속성
- 데이터를 조회할 때 빠른 성능을 할 수 있도록 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성
도메인 : 각 엔터티(테이블)의 속성에 대해서 어떤 유형의 값(데이터 타입, 크기, 제약사항 등)이 들어가는지를 정의
ERD vs 클래스다이어그램
ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않지만 클래스다이어그램에서는 이것을 구분하여 연관관계와 의존관계로 표현한다.
- 관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나 ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용
- UML에는 클래스다이어그램의 관계 중 연관관계와 의존관계가 있고 이것은 실선과 점섬의 표기법으로 다르게 표현
관계 표기법
- 관계명 : 관계의 이름
- 관계차수(1:1, 1:M, M:N)
- 선택성(선택사양) : 필수관계, 선택관계
+) 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있어야 한다. 동사는 관계를 서술하는 업무기술서의 가장 중요한 사항이다.
식별자의 종류
- 엔터티 내에서 대표성을 가지는가에 따라 주식별자와 보조식별자로 구분 - 대표성여부
- 엔터티 내에서 스스로 생성되었는지 여부에 따라 내부식별자와 외부식별자로 구분 - 스스로 생성여부
- 단일 속성에 따라 식별이 되는가에 따라 단일식별자와 복합식별자로 구분 - 속성의 수
- 원래 업무적으로 의미가 있던 시겹자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해 본질식별자와 인조식별자로 구분 - 대체여부
주식별자의 특징
- 유일성 : 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함.
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재(Null 안됨)
식별자와 비식별자관계 비교
항목 | 식별자관계 | 비식별자관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 표현됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 | - 반드시 부모엔터티 종속 - 자식 주식별자구성에 부모 주식별자포함 필요 - 상속받은 주식별자속성을 타엔터티에 이전 필요 |
- 약한 종속관계 - 자식 주식별자구성을 독립적으로 구성 - 자식 주식별자구성에 부모 주식별자 부분 필요 - 상속받은 주식별자속성을 타 엔터티에 차단 필요 - 부모쪽의 관계참여가 선택관계 |
'SQL > SQLD' 카테고리의 다른 글
[SQLD] 제 42회 SQLD 시험 후기 (0) | 2021.10.03 |
---|---|
[2과목] - SQL 최적화 기본 원리 (0) | 2021.08.23 |
[2과목] - SQL 활용 (0) | 2021.08.22 |
[2과목] - SQL 기본 (0) | 2021.08.18 |
[1과목] - 데이터 모델과 성능 (0) | 2021.08.16 |
댓글