티스토리 뷰

CS/데이터베이스

ERD와 정규화

longbeom 2022. 9. 22. 22:47

ERD (Entity Relationship Diagram)

데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며 릴레이션 간의 관계들을 정의한 것이다.

시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축한다. 구축 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 하기도 한다.

하지만 관계형 구조의 데이터 구성은 유용하지만 비정형 데이터를 충분히 표현할 수 없다는 단점이 있다.

비정형 데이터
비구조화 데이터를 말하며, 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말한다.

 

정규화 과정

릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정이다.

 

정규형 원칙

같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조로 만들어야 하고, 자료의 중복성은 감소해야 하고, 독립적인 관계는 별개의 릴레이션으로 표현해야 하며, 각각의 릴레이션은 독립적인 표현이 가능해야 하는 것을 말한다.

 

제1정규형

릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값으로만 구성돼야 한다.
릴레이션의 속성 값 중 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있어서는 안되고 있다면 제거해야 한다.

 

제2정규형

릴레이션이 제1정규형이며 부분 함수의 종속성을 제거한 형태이다.

부분 함수의 종속성 제거란 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것을 말한다.

주의점은 릴레이션을 분해 할 때 동등한 릴레이션으로 분해해야 하고, 정보 손실이 발생하지 않는 무손실 분해로 분해되어야 한다.

 

제3정규형

제2정규형이고 기본키가 아닌 모든 속성이 이행적 함수 종속(transitive FD)을 만족하지 않는 상태를 말한다.

이행적 함수 종속
A->B와 B->C가 존재하면 논리적으로 A->C가 성립하는데, 이 때 집합 C가 집합 A에 이행적으로 함수 종속이 되었다고 한다.

 

보이스/코드 정규형 (BCNF)

제3정규형이고, 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태를 말한다.

결정자
함수 종속 관계에서 특정 종속자(dependent)를 결정짓는 요소, 'X->Y'일 때 X는 결정자, Y는 종속자이다.

 

 

Reference

'CS > 데이터베이스' 카테고리의 다른 글

조인  (1) 2022.09.24
인덱스  (1) 2022.09.23
트랜잭션과 무결성  (1) 2022.09.23
데이터베이스 기초  (0) 2022.09.22