[데이터베이스] 4강. 데이터 종속성과 정규화

데이터 종속성과 정규화


정규화의 의미

데이터의 논리적 표현 : 고려해야 할 내용


정규화(Normalization)

자료 저장 공간을 최소화하고 데이터베이스 내의 데이터가
불일치 되는 위험을 최소화하여 좋은 데이터베이스 스키마를
설계하는 것을 목적으로 함


데이터베이스 스키마가 잘못 설계된 경우


이상현상

  1. 삭제 이상


  1. 삽입 이상


  1. 수정 이상


함수 종속

이상 현상들이 일어나는 근본적인 이유
=> 서로 다른 정보를 하나의 릴레이션으로 표현하려 하기 때문


정규화 (Normalization)

문제를 해결하기 위해서 종속성(Dependency)를 분석하여
하나의 릴레이션에는 기본적으로 하나의 종속성으로 표현되도록 분해


데이터의 관계성을 분석하는 목적
=> 데이터의 의미를 활용하여 좋은 데이터베이스 스키마를 설계하는 것


스키마 설계

  1. 속성들을 수집
  2. 이들 간에 존재하는 제약조건들을 식별
  3. 릴레이션으로 그룹


스키마 변환 (Schema Tranformation)


스키마 변환은 다음과 같은 3가지 원리에 기초함

  1. 정보 표현의 무손실 (Nonloss Representation on Information)

    • 하나의 스키마에서 다른 스키마로 변환시킬 경우 정보의 손실이 있어서는 안됨
  2. 최소의 데이터 중복성 (Minimal Data Redundancy) 허용

  3. 분리의 원칙 (Orinciple of Separation)

    • 하나의 독립된 관계성은 별도의 릴레이션으로 분리시켜 표현


함수 종속 (FD : Functional Dependency)

어떤 릴레이션 R에서 X와 Y를 각각 R의 속성 집합의 부분집합일 경우에 속성 X의
각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관 되어 있을 때
Y는 X의 함수 종속


결정자 (Determinant)

주어진 릴레이션에서 다른 속성(또는 속성들의 집합)을
고유하게 결정하는 하나 이상의 속성


완전 함수 종속 (FFD : Full Functional Dependency)

일반적으로 릴레이션 R의 어떤 속성 Y가 다른 속성 X에 함수 종속이면서
X의 진부분 집합에는 함수 종속이 아닐 때 Y는 X에 완전 함수 종속


부분 함수 종속 (PFD : Partial Functional Dependency)

S의 부분집합으로서, S와 일치하지 않는 집합
=> 즉, 자기 자신을 제외한 부분 집합


함수 종속 다이어그램 (FD Diagram)

릴레이션 내의 속성들의 종속 관계를 보다 쉽게 이해하기 위해서는
이를 도식적으로 표현한 것을 말함


이름 <= (부분 함수 종속) = [학번, 과목명] = (완전 함수 종속) => 성적


정규화 과정


제 1정규형 (1NF: First Normal Form)


제 2정규형 (2NF: Second Normal Form)


제 3정규형 (3NF: Third Normal Form)


이행적 함수 종속성


보이스 / 코드 정규화


정규화