책 소개
요약
데이터베이스 설계 이론과 실무의 차이를 메울 수 있도록 돕는 책으로 설계를 다루는 다른 책들과 차별화된다. 이 책은 데이터베이스 설계의 실무 작업을 수행할 수 있는 중요한 이론적 토대를 실무자들이 이해하기 쉽게 설명한다. 이 책을 숙독하면 무엇이 올바른 데이터베이스 설계인지 배우고, 정규화 및 그에 관련된 개념과 목적을 이해하고, 설계 이론을 실무에 직접 활용할 수 있는 능력을 기르게 될 것이다. 데이터베이스 설계에 전문적으로 관심이 있는 사람이라면 누구나 엄격한 설계 방법과 강건한 데이터베이스 모델을 만들 수 있는 디딤돌로 이 책을 활용할 수 있다.
이 책에서 다루는 내용
◆ 디자인 이론의 정확한 개념
◆ 정규화의 두 가지 서로 다른 목표
◆ 어떤 정규형이 중요한지 파악하기
◆ 디자인 이론의 실제 적용
◆ 중복성 처리 기술
◆ 일관성의 개념과 중요성 이해
이 책의 대상 독자
데이터베이스 전문가들이다. 구체적으로는 데이터베이스 디자인에 관심이 많고 일정 수준 이상의 실력을 갖춘 데이터베이스 전문가다. 특히 관계형 모델의 특정 측면을 잘 알고 있다고 가정하고 설명한다.
목차
목차
- 1부. 배경지식
- 1장. 예비 지식
- 기존 문헌으로부터의 일부 인용문
- 용어에 대한 참고 사항
- 실행 예제
- 키
- 디자인 이론의 위치
- 이 책의 목표
- 끝맺는 말
- 연습 문제
- 해답
- 2장. 전제 조건
- 개요
- 관계와 관계 변수
- 술어와 명제
- 공급자와 부품에 대한 추가 논의
- 연습 문제
- 해답
- 2부. 기능성 종속성, 보이스/코드 정규형과 관련 문제들
- 3장. 정규화: 일부 보편성
- 두 가지 목적을 수행하는 정규화
- 업데이트 이상
- 정규형 계층
- 정규화와 제약
- 동등 종속성
- 끝맺는 말
- 연습 문제
- 해답
- 4장. FD와 BCNF (비공식적 논의)
- 1차 정규형
- 1차 정규형 위반하기
- 함수 종속성
- 키를 다시 논의해보자
- 2차 정규형
- 3차 정규형
- 보이스/코드 정규형
- 연습 문제
- 해답
- 5장. FD와 BCNF (정식 설명)
- 예비 정의
- 다시 찾아보는 함수 종속성
- 보이스/코드 정규형 다시 살펴보기
- 히스의 정리
- 연습 문제
- 해답
- 6장. 함수 종속성의 보존
- 불행한 충돌
- 또 다른 예제
- 그리고 또 다른 것
- 그리고 여전히 또 다른 것
- 작동하는 절차
- 항등 분해
- 모순에 대한 보충 설명
- 독립 투영
- 연습 문제
- 해답
- 7장. FD 공리화
- 암스트롱의 공리
- 추가 규칙
- 추가 규칙 증명
- 또 다른 종류의 폐포
- 연습 문제
- 해답
- 8장. 탈정규화
- ‘성능을 위한 탈정규화’
- 탈정규화는 무엇을 의미하는가?
- 탈정규화가 아닌 것 (I)
- 탈정규화가 아닌 것 (II)
- 유해한 것으로 간주되는 탈정규화 (I)
- 유해한 것으로 간주되는 탈정규화 (II)
- 끝맺는 말
- 연습 문제
- 해답
- 3부. 결합 종속성, 5차 정규화와 관련 문제들
- 9장. JD와 5NF (비공식)
- 결합 종속성 - 기본 아이디어
- 5NF가 아닌 BCNF의 관계 변수
- 주기 규칙
- 끝맺는 말
- 연습 문제
- 해답
- 10장. JD와 5NF (공식)
- 결합 종속성 재방문
- 5차 정규형
- 키에 의해 내포된 JD
- 유용한 정리
- FD는 JD가 아니다
- 업데이트 이상 다시 살펴보기
- 연습 문제
- 해답
- 11장. 암묵적 종속성
- 관련 없는 JD 구성 요소
- 구성 요소 결합
- 축소 불가능한 JD
- 지금까지의 요약
- 추적 알고리즘
- 끝맺는 말
- 연습 문제
- 해답
- 12장. MVD와 4NF
- 기본 예제
- 다중 값 종속성 (정보)
- 다중 값 종속성 (공식)
- 네 번째 정규 양식
- MVD 공리화
- 포함된 종속성
- 연습 문제
- 해답
- 4부. 추가 정규형
- 13장. ETNF, RFNF, SKNF
- 너무 강력한 5NF
- 첫 번째 예: 5NF의 기능
- 두 번째 예: 5NF가 많은 작업을 수행하는 이유
- 핵심 튜플 정규형
- 정의 및 정리
- 5NF가 아닌 ETNF의 관계 변수
- ETNF가 아닌 4NF의 관계 변수
- 우리의 이름 선택
- 중복성 자유 정규형
- 5NF가 아닌 RFNF의 관계 변수
- RFNF가 아닌 ETNF의 관계 변수
- 상위 키 정규형
- 5NF가 아닌 SKNF의 관계 변수
- SKNF가 아닌 RFNF의 관계 변수
- 끝맺는 말
- 연습 문제
- 해답
- 너무 강력한 5NF
- 14장. 6NF
- 정규 데이터에 대한 여섯 번째 정규형
- 시간 지원 데이터를 위한 여섯 번째 정규형
- 연습 문제
- 해답
- 15장. 아직 끝이 아니다
- 도메인-키 정규형
- 기본 키 정규형
- 과도한 PJ/NF
- ‘제한-결합’ 정규형
- 연습 문제
- 해답
- 5부. 직교성
- 16장. 직교 디자인의 원리
- 정규화를 위한 두 번의 환호
- 동기 부여 사례
- 더 간단한 예시
- 튜플과 명제
- 첫 번째 예제 다시 살펴보기
- 두 번째 예시 다시 살펴보기
- 최종 버전
- 명확화
- 끝맺는 말
- 연습 문제
- 해답
- 6부. 중복
- 17장. 우리에게 더 필요한 것은 과학
- 작은 역사
- 술어와 제약
- 사례 1
- 사례 2
- 사례 3
- 사례 4
- 사례 5
- 사례 6
- 사례 7
- 사례 8
- 사례 9
- 사례 10
- 사례 11
- 사례 12
- 중복성 관리하기
- 1. 순수 디자인
- 2. 제약 조건 선언
- 3. 뷰 사용
- 4. 스냅샷 사용
- 정의 가다듬기
- 사례 1과 2
- 사례 3
- 사례 4
- 사례 5
- 사례 6
- 사례 7
- 사례 8
- 사례 9와 10
- 사례 11
- 사례 12
- 끝맺는 말
- 연습 문제
- 해답
- 부록 A. 어쨌든 데이터베이스 디자인이란 무엇인가?
- 논리적 디자인 vs. 물리적 디자인
- 이론의 역할
- 술어
- 규칙
- 중복
- ‘궁극적 일관성’
- 부록 B. 일관성에 대한 자세한 정보
- 데이터베이스는 논리 시스템이다
- 1 = 0 증명하기
- 틀린 답
- 주장을 일반화하기
- 왜 무결성 검사는 바로 수행돼야 하는가
- 부록 C. 기본 키는 훌륭하지만, 필수는 아니다
- PK:AK 구분을 방어하는 논지
- 두 개 이상의 키가 있는 관계 변수
- 송장 및 발송 예제
- 엔터티 유형당 하나의 기본 키?
- 신청자 및 직원 사례
- 끝맺는 말
- 부록 D. 역사적 기록
도서 오류 신고
정오표
정오표
[p.184 : 아래에서 6행]
3NF 절차는 {SNO,CLASS,CITY}, {CLASS,STATUS}, {CASSION}, {CASS,CITY}를 산출한다.
->
3NF 절차는 {SNO,CLASS,CITY}, {CLASS,STATUS}, {CITY, STUTUS}를 산출한다.
[p.192 : 아래에서 7행]
확정성
->
확장성
[p.196 : 4행]
폐쇄
->
폐포
[p.211 : 2행]