정규화란?

소개



이번에는 데이터 설계에 필요한 정규화에 대해 정리합니다.
정규화는 "효율적으로 데이터를 처리하기 위해 일정 규칙에 따라 데이터를 변형하고 정리하는 것"입니다.

아래 부드럽게 읽을 수 있도록 단어 주석을 기재합니다.
※기본 키: 데이터베이스에서 레코드를 고유하게 식별하기 위한 속성
※외부 키: 관련 테이블 간을 연결하기 위해 설정하는 열
※엔티티:데이터베이스로서 표현할 대상물

목차


  • 비정규화
  • 첫 번째 정규화
  • 제 2 정규화
  • 제 3 정규화
  • 정규화 완성도

  • 1. 비정규



    비정규란 정규화가 전혀 행해지지 않고, 1행안에 복수의 반복 항목이 존재하는 것 같은 테이블입니다.
    다음과 같은 테이블입니다.

    ※이하 주키는 황색으로 나타냅니다.

    2. 제1 정규화



    반복되는 항목을 제거합니다.
    【제일 정규화 전】

    이번의 경우, 주키인 「대출 번호」에 대해서 「서적 번호・서적명・저자」의 항목이 반복되어 있습니다.
    원래 엔티티에서 "책 번호, 책 이름, 저자"항목을 제거하여 새 엔티티를 만듭니다.
    원래 엔티티의 기본 키인 "대출 번호"를 새 엔티티의 외래 키로 설정합니다.
    덧붙여 새로운 엔티티의 주키는 「서적 번호」만을 주키로서 설정해 버리면 어느 회원에 의한 대출 정보인가가 불명해지기 때문에, 「대출 번호·서적 번호」세트입니다.
    【제일 정규화 후】



    3. 제2 정규화



    기본 키의 일부에 의존하는 항목을 제거합니다.
    【제2 정규화 전】

    이번 경우 기본 키의 일부인 '책 번호'에 대해 '책명·저자'의 항목이 의존관계에 있으므로 원래 엔티티에서 '책명·저자'의 항목을 제거하여 새로운 엔티티를 만들기.
    원래 엔티티의 기본 키인 "대출 번호"를 새 엔티티의 외래 키로 설정합니다.
    새로운 엔티티의 기본 키는 '책 번호'입니다.
    【제2 정규화 후】



    4. 제3 정규화



    기본 키 이외에 의존하는 항목을 제거합니다.
    【제3 정규화 전】

    이번 경우, 기본 키 이외의 「회원 번호」에 대해 「회원명・대출일・반납 예정일」의 항목이 의존관계에 있으므로, 원래의 엔티티로부터 「회원 번호・회원명・대출일・반납 "예정일"항목을 제거하여 새 엔티티를 만듭니다.
    새로운 엔티티의 기본 키는 "회원 번호"입니다.
    새 엔티티의 기본 키인 "회원 번호"를 원래 엔티티의 외래 키로 설정합니다.
    【제3 정규화 후】



    5. 정규화 완성도



    이하가 제3 정규화까지 실시한 것이 됩니다.





    마지막으로



    정규화는 정리된 데이타베이스를 취급하기 위해서 실시하면 좋을까 생각합니다.

    좋은 웹페이지 즐겨찾기