정규화란?
소개
이번에는 데이터 설계에 필요한 정규화에 대해 정리합니다.
정규화는 "효율적으로 데이터를 처리하기 위해 일정 규칙에 따라 데이터를 변형하고 정리하는 것"입니다.
아래 부드럽게 읽을 수 있도록 단어 주석을 기재합니다.
※기본 키: 데이터베이스에서 레코드를 고유하게 식별하기 위한 속성
※외부 키: 관련 테이블 간을 연결하기 위해 설정하는 열
※엔티티:데이터베이스로서 표현할 대상물
목차
1. 비정규
비정규란 정규화가 전혀 행해지지 않고, 1행안에 복수의 반복 항목이 존재하는 것 같은 테이블입니다.
다음과 같은 테이블입니다.
※이하 주키는 황색으로 나타냅니다.
2. 제1 정규화
반복되는 항목을 제거합니다.
【제일 정규화 전】
이번의 경우, 주키인 「대출 번호」에 대해서 「서적 번호・서적명・저자」의 항목이 반복되어 있습니다.
원래 엔티티에서 "책 번호, 책 이름, 저자"항목을 제거하여 새 엔티티를 만듭니다.
원래 엔티티의 기본 키인 "대출 번호"를 새 엔티티의 외래 키로 설정합니다.
덧붙여 새로운 엔티티의 주키는 「서적 번호」만을 주키로서 설정해 버리면 어느 회원에 의한 대출 정보인가가 불명해지기 때문에, 「대출 번호·서적 번호」세트입니다.
【제일 정규화 후】
3. 제2 정규화
기본 키의 일부에 의존하는 항목을 제거합니다.
【제2 정규화 전】
이번 경우 기본 키의 일부인 '책 번호'에 대해 '책명·저자'의 항목이 의존관계에 있으므로 원래 엔티티에서 '책명·저자'의 항목을 제거하여 새로운 엔티티를 만들기.
원래 엔티티의 기본 키인 "대출 번호"를 새 엔티티의 외래 키로 설정합니다.
새로운 엔티티의 기본 키는 '책 번호'입니다.
【제2 정규화 후】
4. 제3 정규화
기본 키 이외에 의존하는 항목을 제거합니다.
【제3 정규화 전】
이번 경우, 기본 키 이외의 「회원 번호」에 대해 「회원명・대출일・반납 예정일」의 항목이 의존관계에 있으므로, 원래의 엔티티로부터 「회원 번호・회원명・대출일・반납 "예정일"항목을 제거하여 새 엔티티를 만듭니다.
새로운 엔티티의 기본 키는 "회원 번호"입니다.
새 엔티티의 기본 키인 "회원 번호"를 원래 엔티티의 외래 키로 설정합니다.
【제3 정규화 후】
5. 정규화 완성도
이하가 제3 정규화까지 실시한 것이 됩니다.
마지막으로
정규화는 정리된 데이타베이스를 취급하기 위해서 실시하면 좋을까 생각합니다.
Reference
이 문제에 관하여(정규화란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yukachin0414/items/9f465e6c7c20635efcf6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
반복되는 항목을 제거합니다.
【제일 정규화 전】
이번의 경우, 주키인 「대출 번호」에 대해서 「서적 번호・서적명・저자」의 항목이 반복되어 있습니다.
원래 엔티티에서 "책 번호, 책 이름, 저자"항목을 제거하여 새 엔티티를 만듭니다.
원래 엔티티의 기본 키인 "대출 번호"를 새 엔티티의 외래 키로 설정합니다.
덧붙여 새로운 엔티티의 주키는 「서적 번호」만을 주키로서 설정해 버리면 어느 회원에 의한 대출 정보인가가 불명해지기 때문에, 「대출 번호·서적 번호」세트입니다.
【제일 정규화 후】
3. 제2 정규화
기본 키의 일부에 의존하는 항목을 제거합니다.
【제2 정규화 전】
이번 경우 기본 키의 일부인 '책 번호'에 대해 '책명·저자'의 항목이 의존관계에 있으므로 원래 엔티티에서 '책명·저자'의 항목을 제거하여 새로운 엔티티를 만들기.
원래 엔티티의 기본 키인 "대출 번호"를 새 엔티티의 외래 키로 설정합니다.
새로운 엔티티의 기본 키는 '책 번호'입니다.
【제2 정규화 후】
4. 제3 정규화
기본 키 이외에 의존하는 항목을 제거합니다.
【제3 정규화 전】
이번 경우, 기본 키 이외의 「회원 번호」에 대해 「회원명・대출일・반납 예정일」의 항목이 의존관계에 있으므로, 원래의 엔티티로부터 「회원 번호・회원명・대출일・반납 "예정일"항목을 제거하여 새 엔티티를 만듭니다.
새로운 엔티티의 기본 키는 "회원 번호"입니다.
새 엔티티의 기본 키인 "회원 번호"를 원래 엔티티의 외래 키로 설정합니다.
【제3 정규화 후】
5. 정규화 완성도
이하가 제3 정규화까지 실시한 것이 됩니다.
마지막으로
정규화는 정리된 데이타베이스를 취급하기 위해서 실시하면 좋을까 생각합니다.
Reference
이 문제에 관하여(정규화란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yukachin0414/items/9f465e6c7c20635efcf6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기본 키 이외에 의존하는 항목을 제거합니다.
【제3 정규화 전】
이번 경우, 기본 키 이외의 「회원 번호」에 대해 「회원명・대출일・반납 예정일」의 항목이 의존관계에 있으므로, 원래의 엔티티로부터 「회원 번호・회원명・대출일・반납 "예정일"항목을 제거하여 새 엔티티를 만듭니다.
새로운 엔티티의 기본 키는 "회원 번호"입니다.
새 엔티티의 기본 키인 "회원 번호"를 원래 엔티티의 외래 키로 설정합니다.
【제3 정규화 후】
5. 정규화 완성도
이하가 제3 정규화까지 실시한 것이 됩니다.
마지막으로
정규화는 정리된 데이타베이스를 취급하기 위해서 실시하면 좋을까 생각합니다.
Reference
이 문제에 관하여(정규화란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yukachin0414/items/9f465e6c7c20635efcf6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
정규화는 정리된 데이타베이스를 취급하기 위해서 실시하면 좋을까 생각합니다.
Reference
이 문제에 관하여(정규화란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yukachin0414/items/9f465e6c7c20635efcf6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)