데이터베이스 이상 현상 (anaomaly)
- 데이터베이스에서 삽입, 업데이트, 삭제를 사용자가 원하는대로 이루어지지 않는 현상
- 데이터 모델링이 잘 이루어졌어야 생기지 않음
- 삽입 이상
- 새로운 데이터를 정상적으로 추가하기 어려운 경우
- 업데이트 이상
- 데이터를 업데이트 했을 때, 정확성을 지키기 어려운 경우
- 삭제 이상
- 원하는 데이터만 자연스럽게 삭제할 수 없는 경우
정규화 (Normalization)
- 데이터베이스의 테이블이 잘 만들어졌는지 평가하고 테이블을 고쳐나가는 과정
- 정규형 (Normal Form) 의 형식을 맞춰야 한다.
- 정규화를 하는 과정은 순차적인 정규형을 만족한다. (예: 3정규형을 만족하는 테이블은 1, 2, 정규화를 만족한다.)
- 1NF
- 테이블 안에 모든 로우의 칼럼값은 나눌 수 없는 단일 값이어야한다.
- 함수 종속성 (Functional Dependency)란?
- x의 값에 따라서 y의 값이 결정 될 때, y는 x의 함수 종속성이 있다. ( x -> y )
- 이행성 ( 2중으로 함수 종속성이 있는 경우, 이를 이행되었다고 하여 이행적 함수 종속성이라고 함. 예시 : x -> y -> z)
- Candidate Key
- 하나의 로우를 특정 지을 수 있는 attribute들의 최소 집합
- prime attribute : candidiate key에 속하는 attribute
- 2NF
- 1NF를 만족하고 테이블에 candidate key의 일부분에 대해서 함수 종속성이 있는 non-prime attribute가 없어야한다.
- 다시말해 여러개의 부분함수 종속성을 제거해주는 것을 2NF라고 한다.
- 3NF
- 2NF를 만족하고 테이블 내에 모든 attribute들이 PK에 대해서만 함수 종속성을 가져야한다.
- 다시 말해서 PK로 부터 이행적 함수 종속이 되는 것들을 지워주는 것을 3NF라고 한다.
비정규화 (Denormalization)
- 정규화가 되었을 때, join을 사용해서 table들을 합치는 연산들 때문에 속도가 많이 늦어질 수 있기 때문에 의도하여 정규화 규칙을 지키지 않는 것을 의미한다.
'데이터베이스' 카테고리의 다른 글
물리적 모델링 (0) | 2023.08.22 |
---|---|
논리적 모델링 (0) | 2023.08.21 |
데이터 모델링의 개념 (0) | 2023.08.21 |