[SQL] 35. 정규화

uuuu.jini·2023년 2월 7일
0

SQL 첫걸음

목록 보기
35/36
post-thumbnail

테이블을 올바른 형태로 변경하고 분할하는 것을 정규화라 한다.

정규화는 데이터베이스의 설계 단계에서 행해진다. 기존 시스템 재검토시에도 정규화하는 경우도 있다.

올바른 형태 : 주관적 기준

1. 정규화


대충 만들어진 데이터를 정규화해 데이터베이스의 테이블로 만든다. 정규화는 단계적으로 실시한다.

2. 제1 정규형


관계형 데이터베이스의 테이블에는 하나의 셀에 하나의 값만 저장할 수 있다는 제약이 있다. 하나의 셀에 하나의 값만 저장할 수 있도록 하고, 반복되는 부분을 세로(행)방향으로 늘려나가는 것이 제1정규화의 제1단계이다.

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

제1정규화에서는 중복을 제거하는 테이블의 분할도 이루어진다. 반복되는 부분을 찾아내서 테이블을 분할하고 기본키가 된 열을 작성할 수 있다.

제1정규화에서는 테이블 분할과 기본키 지정이 이루어진다.

3. 제2정규형


제2정규화에서는 데이터가 중복하는 부분을 찾아내어 테이블로 분할해 나간다. 이때 기본키에 의해 특정되는 열과 그렇지 않은 열로 나누는 것으로 정규화가 이루어진다. 부분 함수종속성을 찾아내서 테이블을 분할하는 것이 제2정규화이다. (함수종속성: 키 값을 이용해서 데이터를 특정지을 수 있는 것)

4. 제3정규형


중복하는 부분을 찾아내어 테이블을 분할하는 수법이다. 제2정규화의 경우 기본키에 중복이 없는지 조사했다. 제3정규화에서는 기본키 이외의 부분에서 중복이 없는지를 조사한다.

정규화를 통해 테이블을 분할해 나간다. 분할 시 서로 결합할 수 있도록 기본키를 추가해 분할한다.

5. 정규화의 목적


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

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

profile
멋쟁이 토마토

0개의 댓글