DATABASE Normalization

Let's Just Go·2022년 5월 10일
0

DATABASE

목록 보기
9/11

DATABSE

DATABASE Normalization

Normalization

  • Normalization
    - 정제되지 않은 데이터를 관계형 데이터베이스에 맞도록 변형해주는 방법
    - 테이블 간 중복된 데이터를 허용하지 않기 위해 사용하며 이상(Anomaly)을 예방할 수 있음

Full Functional Dependency

  • Full Functional Dependency
    • 완전 함수 종속
      - 종속자가 기본키에만 종속되는 것을 말하며 기본키가 2개 이상일 경우 기본키의 부분집합에 종속된 경우

      회원번호이름나이거주지역
      001강아라25서울
      002민경훈23부천
      003백승기28부산
    • 모든 값은 기본키인 회원번호에 종속되어 있으며 이것이 완전 함수 종속

      • 회원번호 → 이름

      • 회원번호 → 나이

      • 회원번호 → 거주지역


First Normal Form

  • First Normal Form

    • 도메인이 원자값

    • 원자값 : 더이상 쪼갤 수 없는 하나의 값

    • 컬럼의 값은 하나의 값만 가져야함

    • Tag 컬럼을 원자값으로 만들기 위해 분리

      TitleTypeDescriptionCreatedAuthor_idAuthor_nameJobPrice
      MySQLPaperMysql is ...20221LeeDeveloper10000
      MySQLOnlineMysql is ....20221LeeDeveloper0
      OraclePaperOracle is ...20221LeeDeveloper15000

      topic_titletag_id
      MySQL1
      MySQL2
      Oracle1
      Oracle3

      idname
      1rdb
      2free
      3commercial
      4Nosql
      5semi-free

Second Normal Form

  • Second Normal Form
    • 부분적 함수 종속 제거

    • 부분적 함수 종속

      • 기본키가 아닌 다른 속성에 종속되거나 기본키가 여러 속성으로 구성되어 있는 경우 기본키를 구성하는 속성 중 일부만 종속되는 경우
    • 기본키가 아닌 Type 컬럼으로 인해 Price가 결정되고 있음

    • 부분함수 종속 제거

      고객ID제품코드
      AAAA01T001
      AAAA01B110
      AAAA02B110
      AAAA02T091
      AAAA03O100

      제품코드주문상품수량가격
      T001티셔츠212000
      B110청바지111000
      B110청바지222000
      T091와이셔츠115000
      O100원피스119000

Third Normal Form

  • Third Normal Form
    • 이행적 함수 종속 제거

    • A → B, B → C 이면 A → C 가 성립되면 그것이 이행적 함수 종속이라 함

    • 기본키에 의해 결정되어야 하는데 JOB은 Author_id와 Author_name에 의해 결정

      titleDescriptionCreatedAuthor_id
      MysqlMysql is ....20221
      OracleOracle is ...20221

      Author_idAuthor_nameJob
      1LeeDeveloper
      2ParkProfessor

      회원번호이름나이거주지역
      A001송민지17서울
      A002박아람15부산
      A003이예은16대전

DATABASE Modeling


Practice

  • Practice
    • 연습 테이블

      학번과목번호학점학생이름
      a001sub1, sub02, sub03A, B+, A+홍길동
    • 제 1 정규화

      학번과목번호학점학생이름
      a001sub01A홍길동
      a001sub02B+홍길동
      a001sub03A+홍길동
    • 제 2 정규화

      학번과목번호학점
      a001sub01A
      a001sub02B+
      a001sub03A+
      a002sub04C
      a003sub05F
      a004sub06D

      학번학과등록금
      a001컴공400
      a002경영학과350
      a003기계공학과500
      a004체육학과600
    • 제 3 정규화

      학번학과
      a001컴공
      a002경영학과
      a003기계공학과
      a004체육학과

      학번등록금
      a001400
      a002350
      a003500
      a004600
profile
안녕하세요! 공부한 내용을 기록하는 공간입니다.

0개의 댓글