Database Modelling (데이터베이스 모델링)
논리적 데이터베이스 모델링
개념적 데이터베이스 모델링 단계에서 정의된 E-R Diagram을 Mapping Rule을 적용
관계형 데이터베이스 이론에 입각한 스키마를 설계하는 단계와 이를 이용하여 필요하다면 정규화하는 단계로 구성
기본 키 (Primary Key)
후보 키 중에서 선택한 주 키
널(Null)의 값을 가질 수 없다. (NOT NULL)
동일한 값이 중복해서 저장될 수 없다. (UNIQUE)
참조 키, 이웃 키 (Foreign Key)
관계를 맺는 두 엔티티에서 서로 참조하는 릴레이션의 attribute로 지정되는 키
Mapping Rule
개념적 데이터베이스 모델링에서 도출된 개체 타입과 관계 타입의 테이블 정의
개념적 모델링 => 논리적 모델링
단순 엔티티 => 테이블
속성 => 컬럼
식별자 => 기본키
관계 => 참조 키, 테이블
정규화
Attribute간에 존재하는 함수적 종속성을 분석해서 관계형 스키마를 더 좋은 구조로 정제해 나가는 일련의 과정
데이터의 중복을 제거하고 속성들을 본래의 제자리에 위치시키는 것
- 제 1 정규화
- 제 2 정규화
- 제 3 정규화
제 1 정규화
반복되는 그룹 속성을 제거한 뒤 기본 테이블의 기본 키를 추가해 새로운 테이블 생성
기존의 테이블과 1:N 관계를 형성하는 과정
반복되는 그룹 속성이란 같은 성격과 내용의 컬림이 연속적으로 나타나는 컬럼을 말함
모든 속성값이 원자값으로 구성된다.
제 2 정규화
부분 함수의 종속성을 제거
제 1 정규형이면서 키가 아닌 모든 속성이 키에 완전 함수적으로 종속
복합 키(Composite Primary Key)에 전체적으로 의존하지 않는 속성 제거
제 2 정규화의 대상이 되는 테이블은 키가 여러 컬럼으로 구성된 경우
복합 키의 일부분에 의해 종속되는 것을 부분적 함수 종속이라하며 이를 제거하는 작업
제 3 정규화
이행적 함수 종속을 제거
키에 대해서 직접적으로 함수 종속
기본키에 의존하지 않고 일반 컬럼에 의존하는 컬럼들을 제거
BCNF 릴레이션
모든 결정자가 후보키로 구성
물리적 데이터베이스 모델링
논리적 데이터베이스 모델링 단계에서 얻어진 데이터베이스 스키마를 좀 더 효율적으로 구현하기 위한 작업
DBMS 특성에 맞게 실제 데이터베이스내의 개체들을 정의하는 단계
ex) colimn의 domain 설정(int, varchar, date, ...)
데이터 사용량 분석과 업무 프로세스 분석을 통해서 보다 효율적인 데이터베이스가 될 수 있도록 효과적인 인덱스를 저으이하고 상황에 따른 역정규화 작업을 수행
Index, Trigger, 역정규화
역정규화 (Denormalization)
시스템 성능을 고려하여 기존 설계를 재구성하는 것
정규화에 위배되는 행위
테이블의 재구성
역정규화 방법
데이터 중복(컬럼 역정규화)
- 조인 프로세스가 많아 시스템의 성능저하를 가져오는 경우
- 조인 프로세스를 줄이기 위해 해당 컬럼을 중복함으로써 성능을 향상시키기 위한 방법
파생 컬럼 생성
- 기본적으로 테이블에 없는 컬럼을 숫자 연산이나 데이터 조작 등을 통해 조회할 때 새로운 정보를 보여주는 경우
- ex) 총액, 평균, ...
테이블 분리
- 컬럼 기준으로 분리(컬럼 수)
- 레코드 기준으로 분리(레코드 량)
요약 테이블 생성 (Summary Table)
- 조회의 프로세스를 줄이기 위해 요약된 정보만을 저장하는 테이블을 만드는 것
테이블 통합
- 분리된 두 테이블이 시스템 성능에 영향을 끼칠 경우 고려
'Back-End > Database' 카테고리의 다른 글
속성(Attribute) (0) | 2023.04.11 |
---|---|
Entity (0) | 2023.04.10 |
Database Modelling (데이터베이스 모델링) 1 (0) | 2022.09.26 |
Sub query (0) | 2022.09.19 |
JOIN (0) | 2022.09.19 |