이미 소장하고 있다면 판매해 보세요.
|
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의 관계 변수 __끝맺는 말 __연습 문제 __해답 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. 역사적 기록 |
C. J. Date
이기홍의 다른 상품
곽승주의 다른 상품
|
◈ 이 책에서 다루는 내용 ◈
◆ 디자인 이론의 정확한 개념 ◆ 정규화의 두 가지 서로 다른 목표 ◆ 어떤 정규형이 중요한지 파악하기 ◆ 디자인 이론의 실제 적용. ◆ 중복성 처리 기술 ◆ 일관성의 개념과 중요성 이해 ◈ 이 책의 대상 독자 ◈ 데이터베이스 전문가들이다. 구체적으로는 데이터베이스 디자인에 관심이 많고 일정 수준 이상의 실력을 갖춘 데이터베이스 전문가다. 특히 관계형 모델의 특정 측면을 잘 알고 있다고 가정하고 설명한다. ◈ 지은이의 말 ◈ 이 책은 『Database in Depth: Relational Theory for Practitioners』(O’Reilly, 2005)라는 책에서 비교적 짧은 장으로 처음 시작했다. 이후 『SQL and Relational Theory: How to Write Accurate SQL Code』(O’Reilly, 2009)라는 책으로 내용을 보강해 다시 출간됐다. 책의 주요 주제에서 다소 벗어나고 너무 길어지므로, 디자인 자료는 부록으로 옮겼다. 이후 이 책의 두 번째 판에 대한 작업을 시작했다. 2판 작업을 하는 동안, 일반적으로 데이터베이스 디자인이라는 주제에 대해 이야기할 내용이 너무 많다는 것을 알게 됐고, 부록은 책의 나머지 부분과 전혀 어울리지 않게 많았다. 부록이 책의 주제와 다소 맞지 않는 것이므로 과감하게 잘라내서 그 자료를 독자적인 책, 즉 지금 보고 있는 책으로 나누기로 결정했다. 지금은 데이터베이스 디자인에 관한 책이 부족하지는 않은데, 다른 점은 무엇일까? 디자인 실습에 관한 책은 많지만, 대개 기초 이론을 이해하는 데 그다지 도움이 되지 않는다. 그리고 디자인 이론에 관한 책도 몇 권 있지만, 실무자가 아닌 이론가를 대상으로 하는 경향이 있고, 학문적인 경향이 있다. 나는 그 간극을 메우고 싶어 이 책을 쓰게 됐다. 이론을 실무자가 이해할 수 있는 방식으로 설명하고 그 이론의 실제적인 중요성을 보여주고 싶었다. 모든 것을 다루려는 것은 아니다. 그 모든 이론을 마지막 세부 사항까지 논하고 싶지는 않다. 내가 다루는 부분은 어디까지나 정확하고 정밀하게 하기 위한 것이다. 또한 형식과 격식을 현명하게 혼합한 것을 목표로 하고 있다. 다시 말하면, 이론을 부드럽게 소개하고자 하는 것이다. 가독성을 위해 일부러 짧은 책을 썼고, 각 장도 짧게 만들었다. 또한 모든 장에는 일련의 연습이 포함돼 있다. 전부는 아닐지라도 연습의 일부를 풀어볼 것을 권한다. 그중 일부는 이론적 사상을 실제에 적용하는 방법을 보여주기 위한 것이다. 다른 일부는 주제 문제에 대한 추가 정보를 텍스트 본문에 수록된 내용보다 더 많이 제공하고, 다른 것들은 예를 들어 간단한 이론적 결과를 증명해보라고 요구한다. 여러분이 ‘이론가처럼 생각하는 것’을 이해했으면 한다. 전반적으로는 디자인 이론이 무엇이고, 왜 그것이 그 방식인지에 대한 통찰력을 주려고 노력했다. ◈ 옮긴이의 말 ◈ IT는 항상 새로운 기술이 나오고, 소프트웨어는 버전을 갱신하면서 새로운 기능을 선보이고 있다. 그래서 IT 관련 서적은 몇 년만에 낡은 것이 되고, 새로운 책을 필요로 한다. 그러나 모든 것이 그렇지는 않다. 새로운 기술의 배경이 되고 근본이 되는 기본적인 기술이나 지식은 광범위하고 중요하며, 밀물과 썰물처럼 변화하는 대신 생물의 진화처럼 변한다. 실무에서 SQL 또는 파이썬, R, 엑셀 등을 실행할 때마다 항상 SQL이나 프로그램 언어 자체보다 이를 수행하는 데이터베이스의 구조가 중요하다는 것을 느낀다. 모든 연산은 주어진 데이터베이스 구조를 기반으로 이뤄지므로 이 구조가 잘 디자인돼 있지 않으면 문제가 매우 복잡해지는 상황에 직면하게 된다. 다시 말해 데이터베이스 디자인의 중요성이 더할 나위 없이 크게 다가온다. 또한 그 사전 작업으로 실무자들은 데이터를 수집할 때 도대체 어떻게 데이터베이스를 구성해야 편리하게 데이터베이스를 사용할 수 있을지 고민한 적이 있을 것이다. 이에 대한 가이드라인을 주고자 하는 것이 바로 데이터베이스 디자인 이론이다. 데이터베이스 디자인은 여러 구성 요소로 이뤄져 있으나, 핵심은 이 책에서 다루는 정규화다. 이 책은 보이스-코드 정규형을 포함한 1차에서 5차까지의 전통적인 정규형을 다루고 있을 뿐 아니라 튜플 정규형, 중복성 없는 정규형, 상위 키 정규형, 도메인 키 정규형과 같은 이색적인 정규형에 대해서도 일관성 있는 이론적 토대를 바탕으로 설명을 확장하고 있다. 또한 탈정규화와 중복성 등도 설명함으로써 내용을 크게 보강하고 있다. 이 책은 확실히 단순한 데이터베이스 실무를 다루는 서적과 다르지만, 일반적인 데이터베이스 디자인 이론을 다루는 서적과도 차별화된다. 코딩에 사용하는 SQL을 다루지 않지만, 간단한 SQL 속에 묻어 있는 데이터에 대한 철학과 과학을 느끼게 해준다. 우주가 시간조차 존재하지 않던 상황에서 ‘빅뱅(Big Bang)’을 통해 탄생한 것과 달리, 우리가 매일 사용하는 모든 것은 한순간의 빅뱅이 아니라 시대를 살다 간 많은 과학자와 철학자의 사상과 연구에서 비롯됐다. 이 책의 역자들은 전문적인 데이터베이스 이론과 실무에 관심이 있는 사람들이라면 그 핵심인 정규화를 중심으로 하는 이 책을 통해 커다란 도약을 하리라 믿는다. |