본문 바로가기

데이터분석/SQL

SQL 첫걸음 - 정규화

- 테이블을 올바른 형태로 변경하고 분할하는 것, 규정된 올바른 형태로 개선해나가는 것

- 정규화 과정을 통해 관계형 데이터베이스가 효율적으로 동작하도록 만들 수 있음, 효율적인 데이터베이스 설계 가능

 

1. 정규화

: 대충 만들어진 데이터를 정규화 해 데이터베이스의 테이블로 만들 수 있음

 

2. 제1 정규형

- 관계형 데이터베이스의 테이블에는 하나의 셀에 하나의 값만 저장할 수 있다는 제약이 있음

- 제1 정규화의 제 1단계 : 하나의 셀에 하나의 값만 저장할 수 있고, 반복되는 부분을 세로(행) 방향으로 늘려나가는 것

* 반복되는 데이터를 가로(열 방향)가 아닌 세로(행 방향)로 늘리는 것이 제1정규화의 제1단계!

 

- 제1 정규와에서는 중복을 제거하는 테이블의 분할도 이루어짐

- ex) 주문 데이터를 주문 테이블과 주문상품 테이블로 분할

- 제1 정규화에서는 반복되는 부분을 찾아내서 테이블을 분할하고 기본키가 될 열을 작성할 수 있음

* 제1 정규화에서는 테이블 분할과 기본키 지정이 이루어짐!

 

3. 제2 정규형

- 제 2정규화에서 데이터가 중복하는 부분을 찾아내어 테이블로 분할해나감

- 기본키에 의해 특정되는 열과 그렇지 않은 열로 나누는 것으로 정규화가 이루어짐 / 기본키 중복이 없는지 조사

- 부분 함수 종속성을 찾아내서 테이블을 분할하는 것

- 함수종속성 : 키 값을 이용해 데이터를 특정지을 수 있는 것 

 

4. 제3 정규형

- 중복하는 부분을 찾아내어 테이블을 분할하는 수법

- 기본키 이외의 부분에서 중복이 없는지 조사

-  ex) 같은 사람이 여러 번 주문하는 경우, 고객번호를 기본키로 지정하여 고객테이블 작성

 

5. 정규화의 목적

- 중복하거나 반복되는 부분을 찾아내서 테이블을 분할하고 기본키를 작성해 사용하는 것이 기본 개념

- '하나의 데이터는 한 곳에 있어야한다.' 라는 규칙에 근거

* 정규화로 데이터 구조를 개선하는 것은 하나의 데이터가 한 곳에 저장되도록 하기 위함!