티스토리 뷰
[데이터베이스] 정규화과정
정규화는 주어진 릴레이션 스키마를 함수적 종속성과 기본 키를 기반으로 분석하여, 원래의 릴레이션을 분해함으로써 중복과 세 가지 갱신 이상을 최소화하는 것입니다.
(1) 정보의 중복
동일한 정보를 2군데 이상 저장
(2) 수정이상
반복된 데이터 중에 일부만 수정하면 데이터 불일치 발생
(3) 삽입이상
불필요한 정보를 함께 저장하지 않고는 어떤 정보를 저장하는 것이 불가능
(4) 삭제이상
유용한 정보를 함께 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능
정규화과정은 논리적설계 단계와 물리적 설계 단계 사이에서 이루어지는 과정이며 정규화되지 않은 릴레이션을 보다 좋은 구조를 갖는 릴레이션들로 단계적으로 변환해 가는 과정입니다.
정규형의 종류에는 제1정규형, 제2정규형, 제3정규형, BCNF, 제4정규형, 제5정규형 등이 있습니다. 제4정규형과 제5정규형은 이해하기도 어렵고 산업계에서도 3NF, BCNF까지 다루기 때문에 위에 표에서 삭제했습니다.
(1) 제1정규형 : 모든 애트리뷰트가 원자값을 가짐
(2) 제2정규형 : 제1정규형이면서 키가 아닌 모든 애트리뷰트가 기본 키에 완전하게 함수적으로 종속
(3) 제3정규형 : 제2정규형이면서 키가 아닌 모든 애트리뷰트가 기본 키에 직접종속
(4) BCNF : 제3정규형이면서 모든 결정자가 후보키
<관계 데이터베이스 설계시 추가 고려사항>
1. 이해하기 쉽고 명확한 스키마 작성한다.
2. 널값 최소화한다.
3. 가짜 튜플생성을 막는다.
4. 스키마를 정제한다.
from :[데이터베이스] 정규화과정|작성자 bibim
'공부합시다' 카테고리의 다른 글
영문자만 입력되게 하기 (2) | 2014.02.06 |
---|---|
[Jquery] 포함하는 문자열 객체 가져오기 (0) | 2014.02.06 |
svn 설치하기 (1) | 2014.01.23 |
mysql database 덤프. (0) | 2014.01.23 |
centos에서 yum으로 mysql5.5 설치하기 (0) | 2014.01.23 |
- Total
- Today
- Yesterday
- php
- 라라벨
- l5-swagger-response
- addMonthWithoutOverflow
- django
- vim
- 자바스크립트
- graphql-php
- laravel-kafka
- l5-swagger
- Laravel
- php-laravel
- Python
- POP3
- MySQL
- graphql
- 테스트_다중트랜잭션
- observer 매개변수 전달하기
- laravel-test
- 정의
- aaa패턴
- 메일
- eloquent-observer
- 정규식
- session+token authorize
- exception-test
- redis
- password-manager
- bitwarden-cli
- addMonth
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |