데이터베이스 정규화 과정
데이터베이스 정규화 과정 정규화 함수 종속성을 이용해 릴레이션을 연관성이 있는 속성들로만 구성되도록 릴레이션을 분해해서 이상현상이 발생하지 않는 바람직한 릴레이션으로 만들어가는 과정입니다. 작은 릴레이션으로 분해하는 과정은 함수 종속성을 제거하는 과정입니다. 정규화를 통해 릴레이션은 손실이 없는 무손실 분해가 되어야 합니다. 정규형(Normal Form) 릴레이션을 분해하는 각 단계를 거칠 때 마다 나타내지는 정규화의 형태 를 정규형이라고 합니다. 정규형은 릴레이션이 정규화가 된 정도(1정규형, 2정규형, ...)를 의미합니다. ※ 정규형의 정도(차수)가 높아질수록 릴레이션의 특성에 따라 요구되는 제약조건이 많아지고 엄격해짐 정규형의 종류 ※ 모든 정규형들은 비정규형 릴레이션의 부분집합의 형태 기본 정규형 제1정규형 - 릴레이션의 모든 속성이 더는 분해되지 않는 원자값만 가지면 제1정규형을 만족 - 제1규형을 만족해야 관계 데이터베이스의 릴레이션이 될 자격이 있음 - 하나의 속성에 여러개의 속성값이 아닌 하나의 속성값이여야 제1규형을 만족 이상현상이 발생하는 이유 - 기본키인 {고객아이디, 이벤트번호}에 완전 함수종속이 되지 못하고 부분집합의 일부분인 고객아이디에 종속되는 속성이 존재하기 때문에 이상현상이 발생 문제 해결 방법 - 부분 함수 종속이 제거되도록 릴레이션을 분해하면 분해된 릴레이션은 제2정규형 에 속하게 됨 제2정규형 - 제1정규형에서 부분 함수 종속을 제거하고 모든 함수 종속 관계에서 완전 함수 종속을 만족하면 제 1규형을 만족 - 완전 함수 종속만 가질 수 있도록 부분 함수 종속을 제거 ex) 고객릴레이션과 이벤트 참여 릴레이션으로 분해 이상현상이 발생하는 이유 - 이행적 함수 종속이 존재하기 때문 이행적 함수 종속: 3개의 속성간에 발생하는 문제 ※이행적 함수 종속이란? 릴레이션을 구성하는 속성들간에 가지는 관계입니다. 완전 함수 종속과 부분 함수 종속은 2개의 속성간에 이루어지는 관계 이지만 이행적 함수 종속은...