1. 정규화
- 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
- 정규화의 목적 : 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것
- 정규화 단계 (도, 부, 이, 결, 다, 조) -> 두부이걸다줘
- 제 1정규화
번호 | 색 |
1 | 파랑 |
2 | 노랑 |
3 | 초록,빨강 |
원자값이 두개 이상이 아닌 하나로 있어야 하는 것
번호 | 색 |
1 | 파랑 |
2 | 노랑 |
3 | 초록 |
3 | 빨강 |
이렇게 나눠야 한다.
- 제 2 정규화 ( 부분함수 종속 제거 )
기본키와 큰 연관이 없는 데이터를 따로 빼주는 것
학생 번호 | 강좌 | 강의실 | 학점 |
1 | 자바 | 101 | 4.5 |
2 | 오라클 | 102 | 4.3 |
3 | 파이썬 | 103 | 4.2 |
4 | 파이썬 | 103 | 4.1 |
보통 학생번호가 기본키라는 가정 하에 강의실 컬럼은 강좌에 의해 결정되기 때문에 테이블을 따로 분리할 필요가 있다.
학생번호 | 강좌 | 학점 |
1 | 자바 | 4.5 |
2 | 오라클 | 4.3 |
3 | 파이썬 | 4.2 |
4 | 파이썬 | 4.1 |
강좌 | 강의실 |
자바 | 101 |
오라클 | 102 |
파이썬 | 103 |
이렇게 분리하여 테이블을 관리하면 유지보수도 편리해진다.
- 제 3정규화 ( 이행 함수 종속 제거 )
- A=B, B=C -> A=C가 성립하는 조건
강좌명만 알면 수강료를 알 수 있기 떄문에 중복 데이터가 발생한다.
따라서 테이블을 분리하여 만든다.
- 제2정규화는 기본키의 일부에만 종속된 속성을 제거하는 과정
- 제3정규화는 비주요 속성이 다른 비주요 속성에 종속되는 것을 제거하는 과정
- 보이스-코드 정규화 (BCNF) - 결정자가 후보키가 아닌 함수의 종속을 제거한다는 말의 의미는 테이블의 모든 결정자가 후보키가 되도록 테이블을 분해한다는 것을 의미
- 후보키 : 기본키가 될 수 있는 컬럼들을 모두 후보키라고 하고, 후보키 중 기본키가 결정되면 나머지는 대체키라고 한다.
- 제 4정규형 : 다치(다중 값) 종속성 제거
- 제 5정규형 : 조인 종속성 제거
- 반정규화
'정보처리기사 준비 > DB 파트 정리' 카테고리의 다른 글
[프로그래밍] 파이썬(Python) (0) | 2024.04.16 |
---|---|
[DB] 스토리지, 무결성 (1) | 2024.04.10 |
[DB] VIEW, 인덱스, 집합 연산자, join (0) | 2024.04.10 |
[DB] 회복 기법, 병행 제어 기법, 로킹 단위 (0) | 2024.04.03 |
[DB]트랜잭션 (Transaction), CRUD (0) | 2024.04.03 |