Top

데이터베이스 설계와 관계형 이론 2/e [정규화와 탈정규화를 중심으로]

  • 원서명Database Design and Relational Theory: Normal Forms and All That Jazz, 2nd edition (ISBN 9781484255391)
  • 지은이C. J. 데이트(C. J. Date)
  • 옮긴이이기홍, 곽승주
  • ISBN : 9791161755588
  • 40,000원
  • 2021년 08월 31일 펴냄
  • 페이퍼백 | 532쪽 | 188*235mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

요약

데이터베이스 설계 이론과 실무의 차이를 메울 수 있도록 돕는 책으로 설계를 다루는 다른 책들과 차별화된다. 이 책은 데이터베이스 설계의 실무 작업을 수행할 수 있는 중요한 이론적 토대를 실무자들이 이해하기 쉽게 설명한다. 이 책을 숙독하면 무엇이 올바른 데이터베이스 설계인지 배우고, 정규화 및 그에 관련된 개념과 목적을 이해하고, 설계 이론을 실무에 직접 활용할 수 있는 능력을 기르게 될 것이다. 데이터베이스 설계에 전문적으로 관심이 있는 사람이라면 누구나 엄격한 설계 방법과 강건한 데이터베이스 모델을 만들 수 있는 디딤돌로 이 책을 활용할 수 있다.

이 책에서 다루는 내용

◆ 디자인 이론의 정확한 개념
◆ 정규화의 두 가지 서로 다른 목표
◆ 어떤 정규형이 중요한지 파악하기
◆ 디자인 이론의 실제 적용
◆ 중복성 처리 기술
◆ 일관성의 개념과 중요성 이해

이 책의 대상 독자

데이터베이스 전문가들이다. 구체적으로는 데이터베이스 디자인에 관심이 많고 일정 수준 이상의 실력을 갖춘 데이터베이스 전문가다. 특히 관계형 모델의 특정 측면을 잘 알고 있다고 가정하고 설명한다.

저자/역자 소개

지은이의 말

이 책은 『Database in Depth: Relational Theory for Practitioners』(O’Reilly, 2005)라는 책에서 비교적 짧은 장으로 처음 시작했다. 이후 『SQL and Relational Theory: How to Write Accurate SQL Code』(O’Reilly, 2009)라는 책으로 내용을 보강해 다시 출간됐다. 책의 주요 주제에서 다소 벗어나고 너무 길어지므로, 디자인 자료는 부록으로 옮겼다. 이후 이 책의 두 번째 판에 대한 작업을 시작했다. 2판 작업을 하는 동안, 일반적으로 데이터베이스 디자인이라는 주제에 대해 이야기할 내용이 너무 많다는 것을 알게 됐고, 부록은 책의 나머지 부분과 전혀 어울리지 않게 많았다. 부록이 책의 주제와 다소 맞지 않는 것이므로 과감하게 잘라내서 그 자료를 독자적인 책, 즉 지금 보고 있는 책으로 나누기로 결정했다.
지금은 데이터베이스 디자인에 관한 책이 부족하지는 않은데, 다른 점은 무엇일까? 디자인 실습에 관한 책은 많지만, 대개 기초 이론을 이해하는 데 그다지 도움이 되지 않는다. 그리고 디자인 이론에 관한 책도 몇 권 있지만, 실무자가 아닌 이론가를 대상으로 하는 경향이 있고, 학문적인 경향이 있다. 나는 그 간극을 메우고 싶어 이 책을 쓰게 됐다. 이론을 실무자가 이해할 수 있는 방식으로 설명하고 그 이론의 실제적인 중요성을 보여주고 싶었다. 모든 것을 다루려는 것은 아니다. 그 모든 이론을 마지막 세부 사항까지 논하고 싶지는 않다. 내가 다루는 부분은 어디까지나 정확하고 정밀하게 하기 위한 것이다. 또한 형식과 격식을 현명하게 혼합한 것을 목표로 하고 있다. 다시 말하면, 이론을 부드럽게 소개하고자 하는 것이다. 가독성을 위해 일부러 짧은 책을 썼고, 각 장도 짧게 만들었다. 또한 모든 장에는 일련의 연습이 포함돼 있다. 전부는 아닐지라도 연습의 일부를 풀어볼 것을 권한다. 그중 일부는 이론적 사상을 실제에 적용하는 방법을 보여주기 위한 것이다. 다른 일부는 주제 문제에 대한 추가 정보를 텍스트 본문에 수록된 내용보다 더 많이 제공하고, 다른 것들은 예를 들어 간단한 이론적 결과를 증명해보라고 요구한다. 여러분이 ‘이론가처럼 생각하는 것’을 이해했으면 한다. 전반적으로는 디자인 이론이 무엇이고, 왜 그것이 그 방식인지에 대한 통찰력을 주려고 노력했다.

지은이 소개

C. J. 데이트(C. J. Date)

관계형 데이터베이스를 전문으로 하는 저술가, 강사, 연구자, 컨설턴트다. 대표적인 저서인 『An Introduction to Database Systems, 8th Edition』(Pearson, 2004)는 약 90만 부가 팔렸으며 전 세계의 수백 개 대학에서 수업 교재로 사용되고 있다. 또한 최근까지 데이터베이스 관리에 관한 수많은 책을 저술했다. 2004년 ‘컴퓨터 산업 명예의 전당(Computing Industry Hall of Fame)’에 헌액됐으며, 복잡한 기술적 주제를 명확하면서 이해하기 쉬운 방식으로 설명하는 능력으로 최고의 명성을 누리고 있다.

옮긴이의 말

IT는 항상 새로운 기술이 나오고, 소프트웨어는 버전을 갱신하면서 새로운 기능을 선보이고 있다. 그래서 IT 관련 서적은 몇 년만에 낡은 것이 되고, 새로운 책을 필요로 한다. 그러나 모든 것이 그렇지는 않다. 새로운 기술의 배경이 되고 근본이 되는 기본적인 기술이나 지식은 광범위하고 중요하며, 밀물과 썰물처럼 변화하는 대신 생물의 진화처럼 변한다.
실무에서 SQL 또는 파이썬, R, 엑셀 등을 실행할 때마다 항상 SQL이나 프로그램 언어 자체보다 이를 수행하는 데이터베이스의 구조가 중요하다는 것을 느낀다. 모든 연산은 주어진 데이터베이스 구조를 기반으로 이뤄지므로 이 구조가 잘 디자인돼 있지 않으면 문제가 매우 복잡해지는 상황에 직면하게 된다. 다시 말해 데이터베이스 디자인의 중요성이 더할 나위 없이 크게 다가온다. 또한 그 사전 작업으로 실무자들은 데이터를 수집할 때 도대체 어떻게 데이터베이스를 구성해야 편리하게 데이터베이스를 사용할 수 있을지 고민한 적이 있을 것이다. 이에 대한 가이드라인을 주고자 하는 것이 바로 데이터베이스 디자인 이론이다. 데이터베이스 디자인은 여러 구성 요소로 이뤄져 있으나, 핵심은 이 책에서 다루는 정규화다.
이 책은 보이스-코드 정규형을 포함한 1차에서 5차까지의 전통적인 정규형을 다루고 있을 뿐 아니라 튜플 정규형, 중복성 없는 정규형, 상위 키 정규형, 도메인 키 정규형과 같은 이색적인 정규형에 대해서도 일관성 있는 이론적 토대를 바탕으로 설명을 확장하고 있다. 또한 탈정규화와 중복성 등도 설명함으로써 내용을 크게 보강하고 있다.
이 책은 확실히 단순한 데이터베이스 실무를 다루는 서적과 다르지만, 일반적인 데이터베이스 디자인 이론을 다루는 서적과도 차별화된다. 코딩에 사용하는 SQL을 다루지 않지만, 간단한 SQL 속에 묻어 있는 데이터에 대한 철학과 과학을 느끼게 해준다. 우주가 시간조차 존재하지 않던 상황에서 ‘빅뱅(Big Bang)’을 통해 탄생한 것과 달리, 우리가 매일 사용하는 모든 것은 한순간의 빅뱅이 아니라 시대를 살다 간 많은 과학자와 철학자의 사상과 연구에서 비롯됐다. 이 책의 역자들은 전문적인 데이터베이스 이론과 실무에 관심이 있는 사람들이라면 그 핵심인 정규화를 중심으로 하는 이 책을 통해 커다란 도약을 하리라 믿는다.

옮긴이 소개

이기홍

카네기멜론 대학교에서 석사 학위를 받았고, 피츠버그 대학교 Finance Ph.D, CFA, FRM이며 금융, 투자, 경제분석 전문가다. 삼성생명, HSBC, 새마을금고 중앙회, 한국투자공사 등과 같은 국내 유수의 금융 기관, 금융 공기업에서 자산운용 포트폴리오 매니저로 근무했으며, 현재 딥러닝과 강화학습을 금융에 접목시켜 이를 전파하고 저변을 확대하는 것을 보람으로 삼고 있다. 저서(공저)로는 『금융공학 프로그래밍』(한빛미디어, 2009)이 있으며, 번역서로는 『포트폴리오 성공 운용』(미래에셋투자교육연구소, 2010), 『딥러닝 부트캠프 with 케라스』(길벗, 2017), 『프로그래머를 위한 기초해석학』(길벗, 2018), 『핸즈온 머신러닝•딥러닝 알고리즘 트레이딩』(에이콘, 2019), 『실용 최적화 알고리즘』(에이콘, 2020), 『실전 알고리즘 트레이딩 배우기』(에이콘, 2021) 등이 있다. 누구나 자유롭게 머신러닝과 딥러닝을 자신의 연구나 업무에 적용해 활용하는 그날이 오기를 바라며 매진하고 있다.

곽승주

한양대학교 경제학 석사 학위를 받았으며 은행과 자산운용사의 리스크, 컴플라이언스, 헤지펀드부서에서 리스크 및 펀드성과 리포팅, 주식 및 선물운용 및 계량분석, ELS 평가 및 백테스팅, 백오피스업무자동화 등을 위한 업무와 소프트웨어개발을 했으며 현재 모 IT 회사의 데이터베이스 관련 프로젝트에 참여 중이다.

목차

목차
  • 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. 역사적 기록

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[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행]