데이터 정규화

POOHYA·2022년 4월 2일
0

SQL

목록 보기
6/7

데이터베이스 이상현상

데이터베이스에서 삽입, 업데이트, 삭제를 제대로 할 수 없게 되는 경우
데이터 모델링을 제대로 하지 않았기 때문에 발생

삽입이상

새로운 데이터를 자연스럽게 저장할 수 없는 경우

업데이트 이상

데이터를 업데이트 했을 때, 정확성을 지키기 어려워지는 경우

삭제이상

원하는 데이터만 자연스럽게 삭제할 수 없는 경우

정규화(Normaliztion)

데이터베이스의 테이블이 잘 만들어졌는지 평가하고, 잘 만들지 못한 테이블을 고쳐나가는 과정
테이블을 정규형(normal form)이라고 불리는 형태에 부합하게 만들어나감
데이터베이스에서 삽입, 업데이트, 삭제 이상을 없앨 수 있다
새로운 종류의 데이트럴 추가할 때 테이블 구조 수정을 많이 하지 않아도 된다
데이터베이스 구조를 단순화해서 사용자가 더 쉽게 이해할 수 있다

정규형 (Normal Form)

순서에 따라 규칙이 누적된다

1NF : 나눌 수 없는 단일 값

테이블 안 모든 로우의 모든 컬럼 값들은 나눌 수 없는 단일 값이여야 한다

제1정규형이 지켜지지 않는 경우
한 컬럼에 같은 종류의 값을 여러 개 저장하고 있을 때
이때는 해당 컬럼을 하나의 테이블로 분리해서 모델링합니다.
한 컬럼에 서로 다른 종류의 값을 여러 개 저장하고 있을 때
이때는 한 컬럼을 여러 개로 분리해서 모델링합니다.

함수종속성 (Funtional Dependency)

x의 값에 따라서 y의 값이 결정될 때, y는 x에 함수종속성이 있다
email -> {name, age, gender}
product_id -> {size, price}
{user, product} -> score

이행성

product -> brand -> brand_country

후보키 (Candidate Key)

하나의 로우를 특정 지을 수 있는 attribute의 최소 집합
한개의 pk나 여러개의 fk도 후보키가 될 수 있다

2NF

profile
김효주

0개의 댓글