ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스 정규화 (기본 정규형)
    오늘/Today I.. 2024. 3. 6. 23:34

    정규화(Normalization) 란?

    DB 설계에서 중복을 최소화하기 위해 데이터를 구조화하는 프로세스

     

    이상현상이 있는 릴레이션을 분해하여 이상현상을 제거

     

    이를 통해 중복된 데이터를 허용하지 않게하여 데이터 무결성을 유지하고, DB 저장 공간을 확보 가능

     

     

    정규화의 장단점

    장점

    - DB에서 이상현상 제거

    - 확장시 구조 변경 최소화

     

    단점

    - 릴레이션이 분해되므로 릴레이션 간의 JOIN 연산이 늘어남 

     

     

    정규화의 종류 

     

     

    제 1 정규형

     

    1. 각 컬럼은 하나의 속성만 가져야한다.

    2. 하나의 컬럼은 같은 종류나 타입의 값을 가져야 한다.

    3. 각 컬럼이 유일한 이름을 가져야한다.

    4. 컬럼의 순서가 상관없어야 한다.

     

    제 2 정규형

    제 1 정규형을 만족하는 경우 제 2 정규형을 적용할 수 있다.

     

    1. 모든 컬럼이 부분적 종속이 없어야 한다.  (모두 완전 함수 종속을 만족해야 한다.)

     

     

    제 3 정규형

    1, 2 정규형을 만족함

     

    1. 기본키를 제외한 속성 중 이행 종속성이 없어야 한다.

    (삼단 논법과 유사)

    A를 알면 B를 알 수 있다.   B를 알면 C를 알 수 있다.  ->  A를 알면 C를 알 수 있다.

     

    BCNF (Boyce - Codd Normal Form)

    제 3 정규형의 심화

     

    1. 모든 결정자가 후보키 집합에 속해야 한다.  

     

     

    일반적으로 정규화는 BCNF까지 하는 경우가 많으며  제 4정규형 부터는 정규화의 단점이 나타날 수 있다.

     

     

     

    '오늘 > Today I..' 카테고리의 다른 글

    Virtual Thread 는 왜 도입된걸까  (0) 2024.03.25
    오늘, Redis가 죽었다.  (0) 2024.03.23
    서버리스 (Serverless)  (0) 2024.02.29
    Adapter Pattern  (0) 2023.12.28
    23/12/21 레디스를 왜 도커에서 써야해?  (0) 2023.12.21
Designed by Tistory.