Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- SWEA
- 2019 KAKAO BLIND RECRUITMENT
- 브루트포스
- 조합
- 백트래킹
- 트라이
- 우선순위큐
- 프로그래머스
- 2020 카카오 인턴십
- 플로이드와샬
- 크루스칼
- BFS
- 이분탐색
- 백준
- 스택
- 파이썬
- 로봇 청소기
- Spring
- 다익스트라
- 시뮬레이션
- 2018 KAKAO BLIND RECRUITMENT
- 최소 신장 트리
- 비트마스킹
- 구현
- 2021 KAKAO BLIND RECRUITMENT
- 플로이드 와샬
- GIT
- 투 포인터
- 투포인터
- 2020 KAKAO BLIND RECRUITMENT
Archives
- Today
- Total
개발조아
정규화 본문
728x90
- 관계형 데이터베이스에서 한 릴레이션에 여러 애트리뷰트(속성)들을 혼합하게 되면 정보가 중복 저장되고 저장 공간이 낭비 된다. 또한 중복된 데이터로 인해 이상 현상(Anomaly)도 발생한다
- 이상 현상
- 불필요하게 중복된 데이터들로 인해 데이터 조작 시 발생하는 문제들
- 삽입 이상
- 데이터 삽입시 이상한 데이터가 삽입된다던가, 데이터가 없어서 삽입이 안되는 문제
- 갱신 이상
- 갱신 시 중복된 데이터 모두 갱신되어야하지만 일부만 갱신되어 일관성이 유지하지 못해 발생하는 문제
- 삭제 이상
- 삭제 시 원하지 않는 데이터까지 모두 삭제되서 발생하는 문제
- 정규화
- 관계형 데이터베이스에서 중복을 최소화하기 위하여 데이터를 구조화 하는 작업
- 정규화 단계
- 제1 정규형 : 애트리뷰트의 도메인값은 원자값이어야하며, 모든 튜플의 값은 도메인값 중 하나여야 한다.
- 도메인의 값을 원자값으로 쪼개서 만족
- 취미에 (운동, 공부)가 있다면 운동, 공부를 별개로 나눈다.
- 도메인의 값을 원자값으로 쪼개서 만족
- 제2 정규형 : 제1 정규형을 만족하며, 기본키가 아닌 애트리뷰트는 기본키에 완전 함수 종속 관계여야한다.
- 부분적 함수 종속 관계 제거하여 만족
- 부분적 함수 종속 관계
- 어떤 X의 값에 의해 Y의 값이 결정되지만 X의 일부에서도 결정된다면 Y는 X의 부분적 함수 종속 관계이다
- (학번, 이름) -> 과목
- 학번으로도 과목을 결정할 수 있음
- 부분적 함수 종속 관계
- 완전 함수 종속 관계
- 어떤 X의 값에 의해 Y의 값이 결정된다면 Y는 X의 함수적 종속 관계이다.
- X -> Y
- 학번으로 이름이 결정됨
- 부분적 함수 종속 관계 제거하여 만족
- 제3 정규형 : 제2 정규형을 만족하며, 모든 애트리뷰트가 기본키에 이행적 함수 종속이 아니어야한다
- 이행적 함수 종속 관계 제거
- 이행적 함수 종속
- 어떤 X,Y,Z에 대해서 X->Y이고, Y->Z일 때 X->Z를 만족하는 관계
- 아이디 -> 등급, 등급 -> 할인율일 때 아이디 -> 할인율 성립
- BCNF
- 제 3정규형을 만족하면서 모든 결정자는 후보키여야한다.
- 함수 종속성 X->Y가 성립할 때 X가 후보키에 포함되어야한다
- 후보키가 아닌 결정자를 중심으로 테이블을 쪼갬
- 학번,과목,교수,학점이 있을 때
- 학번, (학번,과목)이 후보키라 할때
- 과목은 교수에 의해서 결정된다.
- 하지만 교수는 후보키가 아니므로 BCNF를 만족하지 않음
- 과목, 교수 테이블, 학번, 학점,교수 테이블로 나눔
- 제 3정규형을 만족하면서 모든 결정자는 후보키여야한다.
- 제1 정규형 : 애트리뷰트의 도메인값은 원자값이어야하며, 모든 튜플의 값은 도메인값 중 하나여야 한다.
- 반정규화
- 정규화를 수행하면 Join이 빈번하게 발생하여 데이터 조작시 성능이 떨어질 수도 있음
- 시스템의 성능 향상을 목적으로 정규화를 위배하여 릴레이션을 좀더 단순화하는 것
- 데이터의 무결성 보장되지 않음
'CS > 데이터베이스' 카테고리의 다른 글
병행제어 (0) | 2021.10.20 |
---|---|
키(Key)의 개념 및 종류 (0) | 2021.10.20 |
트랜잭션 (0) | 2021.10.20 |
인덱스(Index) (0) | 2021.10.20 |
데이터베이스 (0) | 2021.10.20 |
Comments