【DB 설계】No.2 「초간단하게 정규화를 설명해 보았다」
다른 기사에서는 학술적으로 DB 디자인을 썼지만, 그것을 빼고 간단한 설명만을 사용하고 있습니다!
정규화란?
정규화란, 「데이터의 반복을 없애는 것」입니다.
구체적으로 보면, 아래와 같은 테이블이 존재했을 때, 「상품 C」라는 상품명이 반복하고 있는 것을 알 수 있습니다.
이 반복을 없애기 위해서, 2장째의 화상과 같이, 상품 테이블을 작성해, 1:n의 관계를 구축해 가는 것이 정규화입니다.
정규화하는 방법
정규화의 방법은 일반적으로 「제1 정규형」→「제2 정규형」→「제3 정규형」이라고 하는 순서로 실시해 갑니다.
이것을 매우 간단하게 설명하면 다음과 같이 바꿔 쓸 수 있습니다.
1. 횡방향 반복을 없애기
2. 세로 방향 반복을 없애기
가로 방향의 반복을 없앤다(=제1 정규형)
우선 가로 방향의 반복을 없애 갑니다.
아래와 같은 테이블이 존재했을 때, 가로 방향으로 상품 A・상품 C・상품 D와 같이 상품이 반복해서 늘어서 있는 것을 알 수 있습니다.
이것을 아래 그림과 같이 세로 방향으로 늘리도록 정렬합니다.
세로 방향의 반복을 없앤다(= 제2 정규형 & 제3 정규형)
다음으로 세로 반복에 대해 살펴 보겠습니다.
주문 번호 0001에 주목해 보면, 세로 방향으로 반복하고 있는 것은 컬럼명이 회색으로 되어 있는 부분입니다.
그리고 푸른 부분은 흩어져 있습니다.
따라서 세로 방향의 반복을 없애려면 청색 부분을 "상품 테이블"로 분리해야합니다.
그러면 다음과 같이 주문 번호로 연결된 두 개의 테이블을 만들 수 있습니다.
그러나 아직 세로 방향의 반복이 존재하고 있다는 것을 주의할까요?
컬럼 이름이 파란색 부분과 빨간색 부분입니다.
이것을 다른 테이블로 만들어 1:n 관계를 만들어 갑니다.
마지막으로, 여전히 사용자 테이블의 우송료 구분이 반복되고 있으므로 다른 테이블을 작성합니다.
요약
정규화는 어렵게 말로 설명하면, 「제1 정규형」 「추이 종속」등의 말이 나옵니다.
그러나, 정규화로 하고 있는 것은 이하의 2점인 것을 이해해 두어 주세요.
1. 옆의 반복을 없애기
2. 세로 반복을 없애기
이 간단한 것을 이해해 두면 정규화는 OK입니다!
참고 사이트
관계형 데이터베이스 정규형 유형 및 정규화 절차
Reference
이 문제에 관하여(【DB 설계】No.2 「초간단하게 정규화를 설명해 보았다」), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kohki4115/items/b16dec5c7abb352d8f4b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)