데이터 모델의 이해
sql
데이터 모델의 이해
Overview
- 모델링:
현실세계
를관리하고자 하는 데이터를 모델
로단순화
해 표현한 것 - 특징
추상화
단순화
명확화
- 모델링의 세 가지 관점
데이터 관점
: 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터 간에는 어떤 관계가 있는지에 대해서 모델링프로세스 관점
: 이 업무가 실제로 처리하고 있는 일은 무엇인지, 앞으로 처리해야 하는 일은 무엇인지 모델링데이터와 프로세스의 상관 관점
: 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지 모델링
- 모델링의 세 가지 단계
개념적 모델링
: 전사적인 모델링논리적 모델링
: key, 속성, 관계 등을 모두 표현하는 것물리적 모델링
: 실제 물리적으로 데이터베이스를 설계
- 데이터의 독립성
외부 스키마
: 각 사용자가 보는 데이터베이스의 스키마를 정의개념 스키마
: 데이터베이스 싀마를 통합하여 전체 데이터베이스를 나타냄내부 스키마
: 물리적인 저장 구조(칼럼, 인덱스 등)을 나타냄.논리적 독립성
: 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음.물리적 독립성
: 내부 스키마가 변경되어도 외부 / 개념 스키마는 영향을 받지 않음.
- ERD
- Peter Chen
- IDEF1X
- IE/Crow’s Foot
- Min-Max/ISO
- UML
- CaseMethod / Barker
Entity
- 특징
- 업무에서 쓰이는 정보여야 함
- 유니크함을 보장할 수 있는 식별자가 있어야 함
2개 이상의 인스턴스
를 가지고 있어야 함- 반드시 속성을 가지고 있어야 함
- 다른 엔티티와 1개 이상의 관계를 가지고 있어야 함
- 분류
- 유형 vs 무형
유형
엔티티: 물리적으로 존재개념
엔티티: 개념적으로 존재사건
엔티티: 행위를 함으로써 발생
- 발생 시점
기본
엔티티: 독립적으로 생성됨중심
엔티티: 기본 엔티티로부터 파생행위
엔티티: 2개 이상의 엔티티로부터 파생
- 유형 vs 무형
Attribute
- 특성에 따른 분류
기본속성
설계속성
: 필요하진 않지만 모델링을 위해 생긴 것파생속성
: 계산하기 편하게 사용하려고 만든 것
- 구성방식에 따른 분류
- PK
- FK
- 일반 속성
Relationship
존재관계
행위관계
- 표기법
관계명
관계차수
관계선택사양
Identifiers
유일성
식별성
불변성
존재성
: NULL이 될 수 없음분류
- 주식별자
- 보조식별자
- 내부식별자
- 외부식별자
- 단일식별자
- 복합식별자
- 원조식별자
- 대리식별자
데이터 모델과 SQL
정규화
- 제 1정규형: 모든 속성은 반드시 하나의 값만 가져야 한다.
- 제 2정규형: 엔티티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야 한다.
- 제 3정규형: 주 식별자가 아닌 모든 속성간에는 중속될 수 없다.
반정규화
- 테이블 반정규화
- 테이블 병합
- 테이블 분할
- 테이블 추가
- 칼럼 반정규화
- 중복 칼럼 추가
- 파생 칼럼 추가: 부하가 예상되는 칼럼을 미리 계산
- 이력 테이블 칼럼 추가: 최신 데이터 여부 같은 조회 기준이 될 칼럼을 미리 만드는 것
- 관계 반정규화
트랜잭션
NULL
- 가로 연산은 NULL, 세로 연산은 NULL 무시