오브의 빛나는 별

[SQL] 과목Ⅰ. 데이터 모델과 성능(1) 본문

SQL

[SQL] 과목Ⅰ. 데이터 모델과 성능(1)

오브의 별 2023. 10. 20. 21:09
반응형

<정규화의 의미>

정규화: 자료 저장 공간을 최소화하고 데이터베이스 내의 데이터가 불일치 되는 위험을 최소화하여 좋은 데이터베이스 스키마를 설계하는 것을 목적

데이터베이스 스키마가 잘못 설계된 경우
- 100번 학생이 전자계산기구조와 운영체제라는 두 과목을 신청했기에 이 학생의 이름은 두 번 저장되는 문제 발행
- 중복된 데이터의 저장으로 인해 저장 공간이 낭비된다는 문제점 이외에도 중복되어 저장된 데이터 때문에 릴레이션의 수정, 삽입, 삭제와 같은 조작을 할 때 여러가지 이상 현상 발생

수정 이상
- 중복 데이터 중에서 일부만 갱신되어 정보의 모순 발생

삽입 이상
- 불필요한 정보를 함꼐 저장하지 않음
- 어떤 정보를 저장하는 것이 불가능하기에 원하지 않는 정보를 강제로 삽입해야 하는 것
- 기본키에는 널(Null) 값을 지정할 수 없기 때문에 새로운 학생을 수강 릴레이션에 삽입하려고 한다면 수강 신청하지도 않은 가상의 과목명을 임시로라도 삽입해야 함

삭제 이상
- 유용한 정보를 함꼐 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능한 것
- 102번 학생의 이름이 이선균이라는 정보까지도 연쇄적으로 삭제되어 이 학생의 정보 모두 손실

정규화: 갱신 이상이 생기지 않도록 불필요한 데이터가 중복되어 저장되지 않게 방지하여 바람직한 릴레이션 스키마로 만들어 가는 과정

정규화의 목적: 반복적인 자료를 제거하여 다음과 같은 상태를 만들기 위한 것
1. 어떤 관계라도 데이터베이스 내에서 표현이 가능하도록 만드는 것
2. 관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 함
3. 새로운 형태의 데이터가 삽입될 때 관계를 재구성할 필요성을 줄일 수 있음
4. 보다 간단한 관계 연산에 기초하여 검색을 보다 효율적으로 할 수 있음

 

<함수 종속>

함수적 종속 정의: X -> Y
결정자: 주어진 릴레이션에서 다른 속성(또는 속성들의 집합)을 고유하게 결정하는 하나 이상의 속성
ex) A, B, C 컬럼이 있을 때 C가 A에 의해 결정
A B C  
학번 -> 이름
(학번, 과목명) -> 성적
- 성적은 학번과 과목명에 의해 결정됨 -> 완전 함수 종속
- 이름은 기본키인 학번과 과목명 중에 학번에 의해 결정 -> 부분 함수 종속

함수적 종속의 성질
- 완전 함수 종속(FFD)
- 부분 함수 종속(PFD)

함수 종속 다이어그램
- 릴레이션 내의 속성들의 종속 관계를 보다 쉽게 이해하기 위해서는 이를 도식적으로 표현
- 완전 함수 종속으로만 테이블이 구성되야 정규화된 테이블이라고 볼 수 있음
- 부분 함수 종속을 없애고 완전 함수 종속으로만 테이블을 구성하는 것을 제2정규화라고 함

정규화: 주어진 릴레이션 스키마를 함수적 종속성 등의 종속 이론을 이용하여 잘못된 릴레이션 스키마를 보다 더 작은 속성의 세트로 나누어서 갱신 이상이 발생하지 않는 바람직한 릴레이션 스키마로 만들어 가는 과정
정규형: 테이블의 정규화된 정도

 

<정규화 과정>

제1정규형에 만족하는 릴레이션
- 어떤 릴레이션 R에 속한 모든 도메인이 원자값
- 릴레이션의 속성값이 반복 집단이 없는. 즉, 더 이상 분해될 수 없는 원자값으로만 구성
- 각 속성(셀)에는 데이터가 하나만 들어가야 한다는 것이 제1정규형

반복 집합이 있는 비정규 릴레이션
- 반복 집합은 한 개의 기본키 값에 대해서 두 개 이상의 값을 가질 수 있는 속성

제1정규화 과정의 개념
- 반복 집합이 있는 비정규 릴레이션 -> 반복 집합을 제거 -> 모든 속성값이 원자값으로 구성된 제 1정규형 릴레이션

제1정규화 과정

제2정규형
- 어떤 릴레이션 R이 제1정규형이고, 키에 속하지 않는 속성 모두가 키에 완전 함수 종속

제2정규화 과정의 개념
- 모든 속성값이 원자값으로 구성된 제1정규형 릴레이션 -> 부분 함수의 종속성 제거 -> 모든 속성이 키에 완전 함수 종속인 제2정규형 릴레이션

제3정규형
- 어떤 릴레이션 R이 2NF이고, 모든 속성들이 기본키에 이행적 함수 종속을 제외

이행적 함수 종속성: 3개의 속성에 존재하는 함수의 종속성을 의미

이행적 함수 종속하는 지도 릴레이션
ex) 학번 -> 지도교수 ^ 지도교수 -> 학과 => 학번 -> 학과

제3정규화의 개념
- 모든 속성값이 원자값으로 종속된 제2정규형 릴레이션 -> 이행적 함수 종속 제거 -> 키에 대해서 직접적으로 함수 종속하는 제3정규형 릴레이션

보이스/코드 정규형
- 복잡한 식별자 관계에 의해 발생하는 문제를 해결하기 위해 제3정규형을 보완한 것
- 릴레이션 R이 제3정규형을 만족하고, 모든 결정자가 후보키

보이스/코드 정규화 과정 개념
- 키에 대해서 직접적으로 함수 종속하는 제3정규형 릴레이션 -> 후보키가 아닌 결정자 제거 -> 모든 결정자가 후보키인 BCNF 릴레이션

4차 정규화의 목적: 다가 종속 속성 분리

5차 정규화의 목적: 결합 종속일 경우, 두 개 이상의 N개로 분리

 

<요약>

이상 현상
- 속성 간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표현함으로써 데이터의 중복으로 인해 발생하는 여러 가지 현상
1. 삭제 이상: 연쇄 삭제에 의한 정보 손실
2. 삽입 이상: 원하지 않는 정보 강제 삽입
3. 갱신 이상: 중복 데이터의 일부 갱신으로 정보의 모순성 발생

정규화: 이상 문제를 해결하기 위해 어트리뷰트 간의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정

함수 종송: 어떤 릴레이션에서 속성들의 부분 집합을 X, Y라 할 때, 임의 튜플에서 X의 값이 Y의 값을 함수적으로 결정한다면, Y가 X에 종속되었다고 하고, 기호는 X->Y로 표기

함수 종속 다이어그램: 릴레이션 내의 속성들의 종속 관계를 보다 쉽게 이해하기 위해서 이를 도식적으로 표현

정규형 과정
반응형