의견.png

정규화

해시넷
이동: 둘러보기, 검색

정규화(正規化, normalization)란 일정한 규칙에 따라 데이터수식을 변형하여 이용하기 쉽게 만드는 것을 말한다. 데이터베이스를 정규화함으로써 데이터의 중복을 막고 일관성과 효율성 및 확장성을 보장할 수 있다. 정규화되지 않은 데이터베이스의 경우 새로운 데이터를 삽입하거나 기존 데이터를 갱신 또는 삭제할 경우 이상현상(anomaly)이 발생할 우려가 있다. 정규화의 반대말은 역정규화(逆正規化, Denormalization)이다.

정규화의 종류

보통 제1정규화에서 제5정규화까지 순서대로 진행한다.

  1. 제1정규화 : 하나의 속성은 두 개 이상의 값을 중복해서 가지지 않고 하나의 원자값을 가져야 한다.
  2. 제2정규화 : 모든 속성들은 기본키(PK)에 완전 종속되어야 한다. 예를 들어 기본키가 두 개인 경우 기본키 두 개 모두에 종속되지 않고 둘 중 하나에만 종속되는 속성은 제거해야 한다.
  3. 제3정규화 : 기본키가 아닌 속성들 사이에 종속성이 없어야 한다.
  4. BCNF 정규화(일명 제3.5정규화) : 식별자로 쓰이는 속성이 일반속성에 종속되지 않아야 한다.
  5. 제4정규화 : 다대다(N:M) 관계에서 교차 엔티티를 사용한다.
  6. 제5정규화 : 후보키를 통하지 않은 조인(Join) 종속이 없어야 한다.

같이 보기


  의견.png 이 정규화 문서는 데이터에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.