DB의 정규화

·2022년 3월 31일
0

TIL

목록 보기
10/36

데이터베이스는 중복된 다양한 데이터들이 존재하며 그것을 조금 더 쉽게 분할하기 위해 정규화라는 작업을 하게 된다.

물론 쉽게 모든 것을 한개의 데이터베이스에서 관리하는 것도 방법이겠지만
효율적으로 데이터를 다루기 위해서는 분리해서 취급하는 것이 좋을 것이다.


정규화를 하는 과정 자체를 정규형이라고 부르는데, 그 정규형에는 다양한 방법이 존재한다.
그 중 정규형(Normal Form)의 종류도 다양하게 있지만 일반적으로는 3가지를 사용한다.



1. 한개의 속성에 다양한 값이 들어가있는 것을 다가속성 이라고 부른다.


2. 중복된 데이터들이 반복되는 것을 중복 데이터라고 부른다.

이 두가지 모두 그닥 좋은 방법이 아니다.
데이터의 양이 늘어난다거나, 완벽한 판별을 구분하기 힘들기 때문인데

그래서 생겨난 것이 1정규화, 1NF다.

1NF

위처럼 두개의 테이블을 분리하여 중복되던 데이터를 축약하고, 속성이 여러개 있던 것을 분리한 상태가 된다.

일단 테이블에는 한개의 고유한 키를 잡아서 그것이 유니크한 값으로 만들어놔야하는데
그것을 PrimaryKey [PK], 고유키 라고 부르게 된다.

위 테이블에서는 [주문]테이블의 주문번호가 PK가 되게된다.
이 경우에는 [주문]테이블과 [주문_상품]테이블의 관계가 불분명해지는데

[주문_상품] 테이블의 주문번호와 상품번호를 복합키 를 만들고
두 테이블의 공통된 주문번호를 PK로 사용하여 서로의 테이블을 연결시킨다.


2NF

2정규화는 조금 더 관계가 없는 요소를 또 다른 테이블로 분리하는 것을 이야기한다.
위 사진처럼 PK를 지정할 수 있다.

3NF

3정규화는 관련이 없는 요소를 전부 테이블을 분리시킨 것을 이야기한다.

위 테이블의 경우 [주문]테이블과 [고객]테이블은 고객번호라는 값을 통하여 서로의 관계를 증명할 수 있다.


중요 설명

  1. 고유키 : PK
  2. 중복키 : 복합키
  3. 다른키와 이어주는 키 (참조키, 외래키) : FK
profile
물류 서비스 Backend Software Developer

0개의 댓글