이상 현상
- 이상 현상이란, 테이블을 잘못 설계하여 삽입/삭제/수정 연산을 할때 데이터 무결성에 문제가 생기는 현상
- 정규화를 거치지 않은 테이블에서 발생할 수 있음
삽입 이상
- 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야 테이블에 추가가 가능한 현상
- ex) 대학교 학생들을 대상으로 이름, 나이, 학교 성적을 저장하는 테이블이 있다고 가정한다 하지만 신입생들은 학교 성적이 없기 때문에 테이블에 null이 들어가야 한다.
갱신 이상
- 중복된 데이터 중 일부만 수정되어 데이터 불일치가 발생하는 경우
- ex) 한 테이블에 여러 값을 저장하면 튜플이 겹치는 부분이 발생하는데 이때 값을 한 튜플만 바꾸면 겹치는 튜플과 데이터 무결성 문제가 발생한다.

삭제 이상
- 어떤 정보를 삭제하면, 의도하지 않은 정보가 통째로 날아가버리는 경우

함수 종속성
- 특정 컬럼이 다른 컬럼의 속성 값을 결정하는 경우
- ex) 학번 → 이름, 학과를 결정함
완전 함수적 종속
- 종속자가 기본 키에만 종속 되는 경우
- 기본키가 복합키인 경우, 모든 속성에 종속되어야 함
- ex) 주민번호로는 이름, 성별, 주소를 찾을 수 있지만 이름, 성별, 주소 각각으로는 다른 값들을 못찾음

부분 함수적 종속
- 기본키가 복합키인 경우, 기본키를 구성하는 속성 중 일부에게만 종속된 경우
- 2정규화 과정에서 사라짐
- ex) 사원번호, 부서번호가 복합키일때 사원이름은 사원 번호에만 종속 가능 하다.

이행 함수 종속
- X →Y, Y →Z의 종속 관계가 있을때 X →Z도 성립하는 경우
- 3정규화 과정에서 사라짐
정규화
- 테이블을 분리하여 데이터 중복을 없에고, 이상 현상을 없에는 작업
제 1 정규화
- 테이블의 모든 속성의 도메인이 원자값을 갖는 것
- ex) 대학교의 학생 테이블에 수강 신청 도메인이 있는데 그 컬럼에 한 학생의 수강 신청 목록이 다 들어가 있는 경우
제 2 정규화
- 모든 속성이 기본키에 대해서 부분 함수 종속을 만족하지 않는 정규화
제 3 정규화
- 모든 속성이 기본키에 대해 이행적 함수 종속을 만족하지 않는 정규형
BCNF 정규화
- 모든 결정자 속성이 후보키인 정규형
반 정규화
- 성능 상의 이점을 얻기 위해 테이블을 다시 합치는 것
- 테이블을 나누어 Join이 자주 발생한다면 성능 이슈가 발생함

'데이터베이스' 카테고리의 다른 글
[데이터베이스] 인덱스 (0) | 2025.02.14 |
---|---|
[데이터베이스] 데이터베이스란? (0) | 2025.02.07 |
[데이터베이스] 관계형 DB 문법 정리 (0) | 2022.11.16 |
이상 현상
- 이상 현상이란, 테이블을 잘못 설계하여 삽입/삭제/수정 연산을 할때 데이터 무결성에 문제가 생기는 현상
- 정규화를 거치지 않은 테이블에서 발생할 수 있음
삽입 이상
- 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야 테이블에 추가가 가능한 현상
- ex) 대학교 학생들을 대상으로 이름, 나이, 학교 성적을 저장하는 테이블이 있다고 가정한다 하지만 신입생들은 학교 성적이 없기 때문에 테이블에 null이 들어가야 한다.
갱신 이상
- 중복된 데이터 중 일부만 수정되어 데이터 불일치가 발생하는 경우
- ex) 한 테이블에 여러 값을 저장하면 튜플이 겹치는 부분이 발생하는데 이때 값을 한 튜플만 바꾸면 겹치는 튜플과 데이터 무결성 문제가 발생한다.

삭제 이상
- 어떤 정보를 삭제하면, 의도하지 않은 정보가 통째로 날아가버리는 경우

함수 종속성
- 특정 컬럼이 다른 컬럼의 속성 값을 결정하는 경우
- ex) 학번 → 이름, 학과를 결정함
완전 함수적 종속
- 종속자가 기본 키에만 종속 되는 경우
- 기본키가 복합키인 경우, 모든 속성에 종속되어야 함
- ex) 주민번호로는 이름, 성별, 주소를 찾을 수 있지만 이름, 성별, 주소 각각으로는 다른 값들을 못찾음

부분 함수적 종속
- 기본키가 복합키인 경우, 기본키를 구성하는 속성 중 일부에게만 종속된 경우
- 2정규화 과정에서 사라짐
- ex) 사원번호, 부서번호가 복합키일때 사원이름은 사원 번호에만 종속 가능 하다.

이행 함수 종속
- X →Y, Y →Z의 종속 관계가 있을때 X →Z도 성립하는 경우
- 3정규화 과정에서 사라짐
정규화
- 테이블을 분리하여 데이터 중복을 없에고, 이상 현상을 없에는 작업
제 1 정규화
- 테이블의 모든 속성의 도메인이 원자값을 갖는 것
- ex) 대학교의 학생 테이블에 수강 신청 도메인이 있는데 그 컬럼에 한 학생의 수강 신청 목록이 다 들어가 있는 경우
제 2 정규화
- 모든 속성이 기본키에 대해서 부분 함수 종속을 만족하지 않는 정규화
제 3 정규화
- 모든 속성이 기본키에 대해 이행적 함수 종속을 만족하지 않는 정규형
BCNF 정규화
- 모든 결정자 속성이 후보키인 정규형
반 정규화
- 성능 상의 이점을 얻기 위해 테이블을 다시 합치는 것
- 테이블을 나누어 Join이 자주 발생한다면 성능 이슈가 발생함

'데이터베이스' 카테고리의 다른 글
[데이터베이스] 인덱스 (0) | 2025.02.14 |
---|---|
[데이터베이스] 데이터베이스란? (0) | 2025.02.07 |
[데이터베이스] 관계형 DB 문법 정리 (0) | 2022.11.16 |