검색

검색어를 입력하세요

4.2 ERD와 정규화 과정

스터디를 함께 진행했음

ERD

릴레이션 간의 관계들을 정의한 것

  • 요구사항을 기반으로 작성해서 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할
  • 디버깅, 재설계시 설계도 역할
  • 관계형 구조의 데이터를 구성하는데는 유용하지만, 비정형 데이터를 표현하기 어렵다는 단점이 있다.

비정형 데이터 : 미리 정의된 데이터 모델이 없거나, 미리 정의된 방식으로 정리되지 않은 정보

f008f208-64d9-422b-bb6f-641d80a01e80

정규화

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

제1정규형

릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값 만으로 구성되어야 한다.

여러 값들을 쪼개서 개별 원자값으로 만들어주는 것이 바로 제1정규화

cd90694a-f0ac-4597-bf63-6431b741ee05

제2정규형

모든 컬럼은 PK 전체에 종속되어야 한다.

부분 함수 종속성을 제거하는 것이 바로 제2정규화

5739665c-9ffe-4c79-b150-51d225ffdedd

제3정규형

기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 상태를 말한다.

PK가 아닌 컬럼이 다른 컬럼을 결정하면 안 된다.

이행적 함수 종속 : A → B와 B→ C가 존재하면 A → C가 존재하는데 이 때 C가 A에 이행적 함수 종속이라고 한다. PK가 아닌 컬럼이 논리적 연관에 의해서 다른 컬럼을 결정하게 되는 것

아래 예시에서의 이행 종속은 학생 이름기숙사기숙사 유령 이 된다. 그래서 중간 컬럼인 기숙사를 기준으로 분리한 것.

3a50e569-6230-44e8-b7e7-4378cb46b7d9

BCNF

결정자는 반드시 후보 키여야 한다.

후보 키가 아닌 결정자 제거

a850a06c-f857-4385-8530-3e476a846e52

제4정규형

하나의 테이블에 다치 종속이 없는 상태

다치 종속 : 한 테이블에 서로 독립적인 두 개의 다중값 속성이 함께 존재하는 것

서로 독립적인 다중값 속성을 별도 테이블로 분리한다

b9eb69dc-46fe-45ab-8a46-3f911a224c7b

제5정규형

테이블이 조인 종속 없이 더 이상 무손실 분해되지 않는 상태

조인 종속 : 세 개 이상의 관계가 얽혀있어서 분리했다가 조인했을 때 원래 테이블이 완벽하게 복원되는 것

얽혀있는 세 개 이상의 관계를 각각 별도 테이블로 분리한다.

68d970ba-f8ae-4736-8e3f-c79b9f005647