목록

2019년 2월 10일 일요일

[데이터베이스] 10. 정규화란? (정규화의 정의, 목적, 과정)







1. 정규화(Normalization)란?


  • 데이터 중복성 및 종속성 배체의 원칙을 공식화한 이론이다.
  • 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다.
  • 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형이 있으며, 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다.
  • 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.
  • 정규화는 논리적 처리 및 품질에 큰 영향을 미친다.




2. 비정규화 시 일어나는 문제, 이상(Anomaly)


2-1. 이상(Anomaly)의 개념

  • 정규화를 거치지 않은 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 발생하는 예기치 않은 현상이다.
  • 사용자의 의도와는 다르게 다른 데이터가 삽입, 삭제, 갱신되는 곤란한 현상이다.
  • 속성들 간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표현하기 때문에 이상이 발생한다.



2-2. 이상(Anomaly)의 종류





3. 정규화(Normalization)의 목적

  • 데이터 구조의 안정성을 최대화하기 위함이다.
  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현할 수 있게 만든다.
  • 효과적인 검색 알고리즘을 생성할 수 있다.
  • 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
  • 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.



4. 정규화(Normalization) 과정




* 함수적 종속 관계
: 어떤 릴레이션 R에서 속성 X의 값 각각에 대해 속성 Y의 값이 하나만 연관되는 관계를 Y는 X에 함수 종속적이라고 하며, X(결정자) → Y(종속자)로 표현한다.
ex) '수강' 릴레이션이 학번, 이름, 과목명 속성으로 구성되어 있을 때, 학번이 결정되면 과목명에 상관없이 학번에는 항상 같은 이름이 대응된다. 학번에 따라 이름이 결정될 때 '학번 → 이름' 으로 표현한다.
* 이행적 종속 관계
: A → B 이고, B → C 일 때, A → C 를 만족하는 관계.





댓글 없음:

댓글 쓰기