SQL/SQLD
[SQLD] 1-1. 데이터 모델링의 이해
유달잇
2021. 5. 18. 15:53
728x90
1. 데이터 모델의 이해
데이터 모델링이란?
약속된 표기법에 의해 규칙을 가지고 표기하며 현실세계의 데이터에 대해서 표현하는 것으로 이해할 수 있다.
정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법으로
데이터베이스를 구축하기 위한 분석/설계의 과정을 말한다.
모델링의 특징
- 추상화
- 현실세계를 일정한 형식에 맞추어 표현 (모형화, 가설적)
- 단순화
- 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 함
- 정확화
- 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술
데이터 모델링의 유의점
- 중복성 (Duplication)
- 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 해야 한다.
- 비유연성 (Inflexibillity)
- 데이터 모델이 수시로 변경되면 유지보수의 어려움을 가중시킨다.
- 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 혹은 프로세스의 작은 변화가 영향을 끼치는 가능성을 줄인다.
- 비일관성 (Inoonsistency)
- 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의해야 한다.
- 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 좋지 않다.
데이터 모델링의 3단계
- 개념적 데이터 모델링
- 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 ( 추상적 )
- 전사적 데이터 모델링
- EA(Enterprise Architect) 수립
- 논리적 데이터 모델링
- 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현
- 재사용성이 높음
- 정규화
- 물리적 데이터 모델링
- 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계 ( 구체적 )
ANSI / SPARC 데이터베이스 스키마 구조 3단계
- 외부 스키마 (External Schema)
- 외부 화면 및 사용자 인터페이스 (View)
- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의
- 개념 스키마 (Conceptual Schema)
- 전체 관점의 통합적 표현
- 내부 스키마 (Internal Schema)
- 물리적 저장장치 입장에서 본 데이터베이스 구조
2. 엔터티
엔터티(Entity) 란?
데이터의 집합을 의미하며 명사, 업무상 관리 필요한 관심사, 저장이 되기 위한 어떤 것(Thing)을 말한다.
엔터티(Entity)의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 인스턴스의 집합이어야 한다. (인스턴스 두 개 이상)
- 업무 프로세스에 의해 이용되어야 한다.
- 반드시 속성을 가져야 한다.
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
엔터티(Entity)의 분류
- 발생 시점에 따른 분류
- 기본 엔터티
- 업무에 원래 존재하는 정보
- 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성
- 타 엔터티의 부모 역할
- 주식별자를 상속받지 않고 고유한 주식별자를 가짐
- ex) 고객, 상품, 사원 등
- 중심 엔터티
- 기본 엔터티로부터 발생
- 다른 엔터티와의 관계를 통해 행위 엔터티를 생성
- ex) 주문, 체결, 취소 등
- 행위 엔터티
- 두 개 이상의 부모 엔터티로부터 발생
- ex) 주문 내역, 취소 내역 등
- 기본 엔터티
- 유무형에 따른 분류
- 유형 엔터티
- 지속적으로 사용되는 엔터티
- 물리적인 형태가 있음
- ex) 학생, 선생님, 사원 등
- 개념 엔터티
- 물리적 형태가 없이 개념적으로 사용되는 엔터티
- ex) 보험 상품, 조직 등
- 사건 엔터티
- 업무를 수행하면서 생성되는 엔터티
- ex) 주문, 청구, 수수료 등
- 유형 엔터티
3. 속성
속성(Attribute) 이란?
업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
속성(Attribute)의 분류
- 기본속성
- 업무로부터 추출한 모든 속성
- 설계속성
- 새로 만들거나 정의하는 속성
- ex) 코드, 일련번호 등
- 파생속성
- 다른 속성에 영향을 받아 생성되는 속성
- ex) 계산값 등
도메인(Domain) 이란?
각 속성은 가질 수 있는 값의 범위가 있는데 이를 그 속성의 도메인이라 한다.
엔터티 내에서 속성에 대한 데이터 타입과 크기 그리고 제약사항을 지정한다.
4. 관계
관계(Relationship) 란?
엔터티간의 관련성을 말하며 행위로서 서로에게 연관성이 부여된 상태를 말한다.
관계(Relationship)의 분류
- 존재에 의한 관계
- 엔터티간의 상태를 의미
- ex) 사원과 소속, 학생과 학교 등
- 행위에 의한 관계
- 엔터티간에 어떠한 행위가 있는 것
- ex) 은행 계좌 개설, 상품 주문 배송 등
관계(Relationship)의 표기법
- 관계명 (Membership)
- 관계의 이름
- 관계차수 (Cardinality)
- 1:1, 1:M, M:N
- 관계선택사양 (Optionality)
- 필수관계, 선택관계
5. 식별자
식별자(Identifier) 란?
엔터티에는 반드시 하나의 유일한 식별자가 존재하며, 엔터티를 구분짓는 논리적인 이름을 말한다.
식별자(Identifier)의 종류
분류 | 식별자 | 설명 |
대표성 여부 |
주 식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자 타 엔터티와 참조관계를 연결할 수 있는 식별자 |
보조 식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자 대표성이 없어 참조관계 연결은 못함 |
|
스스로 생성 여부 |
내부 식별자 | 엔터티 내부에서 스스로 만들어지는 식별자 |
외부 식별자 | 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자 | |
속성의 수 | 단일 식별자 | 하나의 속성으로 구성된 식별자 |
복합 식별자 | 둘 이상의 속성으로 구성된 식별자 | |
대체 여부 |
본질 식별자 | 업무에 의해 만들어지는 식별자 |
인조 식별자 | 인위적으로 만들어진 식별자 |
주식별자의 특징
- 유일성
- 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분한다.
- 최소성
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 불변성
- 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 한다.
- 존재성
- 주식별자가 지정되면 반드시 데이터 값이 존재해야 한다.
식별자와 비식별자의 관계
항목 | 식별자관계 | 비식별자관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자기 주식별자 영향 | 자식 주식별자의 구성에 포함 | 자식 일반 속성에 포함 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 |
|
|
728x90