책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 데이터베이스 프로그래밍 > 데이터베이스 구축
· ISBN : 9791158390372
· 쪽수 : 336쪽
· 출판일 : 2016-07-22
책 소개
목차
▣ 01장: SQL과 관계형 모델
1.1 SQL이란
___관계형 모델을 모르더라도 SQL을 쓸 수 있다?
___RDB는 관계형 모델을 바르게 구현할
___더욱 진가를 발휘한다!
1.2 관계형 모델
___릴레이션(관계)의 정의
___집합과 관계형 모델
___집합이란
___관계형 모델과 NULL
___유한집합과 무한집합
___릴레이션의 연산
___제한(Restrict)
___프로젝션(Projection)
___확장(Extend)
___속성명 변경(Rename)
___합집합(Union)
___교집합(Intersect)
___차집합(Difference)
___곱집합(Product)
___결합(Join)
___클로저(closure) 성질
___관계형 모델의 데이터 형식
1.3 SQL에서 릴레이션 조작
___SELECT의 기본형
___INSERT(삽입)
___DELETE(삭제)
___UPDATE(갱신)
1.4 SQL에는 있고 관계형 모델에는 없는 것
___요소의 중복
___요소 사이의 순서
___릴레이션의 갱신
___트랜잭션
___스토어드 프로시저
___NULL
1.5 요약
▣ 02장: 술어논리와 관계형 모델
2.1 술어논리와 관계형 모델
___명제
___명제논리
___동어반복과 정리
___명제논리와 공리계
___명제논리의 한계와 양화논리(양한정)
___정량자와 술어논리
___정량자와 함께 사용하는 속박변수
___술어논리와 집합론
___도메인
___1차 술어논리
___2차 술어논리
___릴레이션의 참의 형태
___폐쇄 세계 가정
___모순된 DB는 쓸모없다
2.2 릴레이션의 연산과 술어논리
___제한(Restrict)
___곱집합(Product)
___결합(Join)
___교집합(Intersect)
___합집합(Union)
___차집합(Difference)
___프로젝션(Projection)
___속성명 변경(Rename)
___확장(Extend)
2.3 요약
▣ 03장: SQL과 관계형 모델
3.1 왜 DB 설계가 중요한가?
3.2 정규화
___관계형 모델을 보완하는 이론
___변칙을 방지할 수 있다
3.3 정규형
___정규형의 종류
___제1 정규형(1NF)
___후보키와 슈퍼키
___함수 종속성(FD)
___제2 정규형(2NF)
___제3 정규형(3NF)
___보이스코드 정규형(BCNF)
3.4 요약
▣ 04장: 정규화 이론(두 번째) - 결합 종속성
4.1 결합 종속성(JD)
___결합 종속성은 무손실 분해가 가능
___함수 종속성은 결합 종속성의 일종이다
___암시적 결합 종속성
___키가 아닌 속성과 결합 종속성
4.2 결합 종속성에 의한 정규화(4NF~6NF)
___제4 정규형(4NF)
___제5 정규형
___제6 정규형(6NF)
4.3 요약
▣ 05장: 릴레이션의 직교성
5.1 릴레이션의 직교성과 중복
___레플리카
___같은 형태의 릴레이션
___제목 일부만 같은 릴레이션
5.2 릴레이션 직교화를 위한 전략
___정규화
___속성(칼럼)의 이름 통일하기
___응용프로그램의 정합성
5.3 중복을 해결해 얻는 이점
___변칙을 막을 수 있다
___필요한 데이터가 어디에 있는지 명확해진다
___쿼리의 작성이 선언적이 된다
___불필요한 무손실 분해는 필요 없다
___복잡한 제약은 필요 없다
___응용프로그램의 코드에 낭비가 없어진다
___성능이 향상된다
5.4 요약
▣ 06장 도메인 설계 전략
6.1 도메인
___도메인이란
___집합의 요소
6.2 도메인 설계 전략의 개요
___모든 것은 자의적인 선택
___응용프로그램의 필요성으로 생겨난다
___데이터의 본질을 파악한다
___속성(칼럼)의 이름
6.3 ID를 설계한다는 개념
___현실 세계의 물체나 개념을 나타내는 수단
___관계형 모델의 키
___의미가 있는 ID
___ID의 결함이 미치는 영향
___색, 길이, 무게 등의 성질을 나타내는 속성
6.4 SQL로 도메인 표현
___적절한 데이터형 선택
___술어를 제약으로 표현
___도메인을 테이블로 표현
6.5 요약
▣ 07장: NULL과의 싸움
7.1 NULL
___NULL이란
___3치논리(3VL)
___3치 논리의 한계
___NULL은 폐쇄 세계 가정에 반한다
___옵티마이저에 대한 폐해
7.2 NULL의 대책
___테이블을 정규화한다
___잘못된 NULL 대책
___COALESCE 함수
___빈 문자열의 처리
___NULL을 사용해도 좋을 때
7.3 요약
▣ 08장: SELECT를 공략하자
8.1 SELECT는 SQL의 심장부
___SELECT의 본질
___SELECT의 기본 구조
8.2 SELECT의 다양한 모습
___집계함수
___서브쿼리
___뷰
___UNION
___조합은 자유
8.3 관계형이 아닌 조작
___관계형 조작의 복습
___정렬(sort)
___명시적으로 정의되지 않은 칼럼
___스토어드 함수(사용자 정의 함수)
___관계형이 아닌 조작의 취급법
8.4 들여쓰기로 SELECT 문장을 읽기 쉽게
___들여쓰기 규칙
8.5 요약
▣ 09장: 이력 데이터와 친해지기
9.1 이력 데이터의 문제점
___세상은 이력 데이터가 넘쳐난다
___이력과 관계형 모델의 상성 문제
___이력 데이터의 구체적인 예
___이력 데이터의 어떤 것이 문제가 되는가?
9.2 이력 데이터에 대한 해결책
___릴레이션을 나눈다
___가장 간단한 분할 방법
___중복행을 허용
___대리키
___미래의 가격을 어떻게 해야 할까?
9.3 이력데이터의 안티 패턴
___플래그 사용
___절차형으로 구현하자
9.4 요약
▣ 10장: 그래프에 맞서다
10.1 그래프의 구조
___노드, 에지
___인접
___차수
___보행, 트레일, 길
___다중 에지
___루프
___닫힌 보행
___연결
___부분 그래프
___컷세트, 브리지
___에지의 방향과 가중치
___그래프를 응용한 예
10.2 그래프의 종류
___일반 그래프
___단순 그래프
___연결 그래프/비 연결 그래프
___완전 그래프
___정규 그래프
___평면 그래프
___유향 그래프/무향 그래프
___가중 그래프
___트리(나무)
10.3 SQL과 그래프의 상성 문제
___그래프에 대한 쿼리
___무향 그래프를 표현할 수 있는가?
___유향 그래프를 이용한 표현
___릴레이션 관점에서 모델을 이해하자
___그래프에 대한 쿼리
___절차형에 의한 해법
___그래프 DB
___그 외의 문제
10.4 트리
___트리는 그래프의 일종
___인접 리스트 모델
___경로 열거 모델
___중첩 집합 모델
___클로저 테이블
___트리와 SQL에 관한 고찰
10.5 요약
▣ 11장: 인덱스 설계 전략
11.1 인덱스의 동작
___RDB의 인덱스
___인덱스의 왼쪽과 검색 범위
___보조 인덱스의 갱신
11.2 인덱스의 종류
___해시 인덱스
___전문 검색 인덱스
___R트리 인덱스
___함수 인덱스
___비트맵 인덱스
11.3 파티셔닝
___파티셔닝이란
___파티셔닝이 적합한 경우
___파티셔닝과 고유성 제약
___파티셔닝에 관한 일반적인 오해
11.4 관계형 모델과 인덱스
___인덱스는 관계형 모델의 일부가 아니다
___정규화와 인덱스
11.5 지령 : 최적의 인덱스를 찾아라!
___필요한 인덱스
___인덱스의 엑세스 특성
___인덱스가 사용되는 구문
___최적의 인덱스를 찾기 위한 전략
11.6 요약
▣ 12장: 웹 응용 프로그램을 위한 데이터 구조
12.1 캐시라는 개념
___장점/단점
___DB 응용 프로그램에서의 캐시
___캐시는 어디까지나 캐시
___캐시로 사용하기 위한 요건
___캐시 해야 할 데이터의 종류
12.2 캐시의 구축 방법
___NoSQL을 캐시로 사용
___테이블을 캐시로 사용
___집계 테이블
___조인(JOIN)된 데이터
___태그
12.3 스케일 아웃
___리플리케이션(복제)
___샤딩
12.4 요약
▣ 13장: 리팩터링 최적의 해결책
13.1 리팩터링
___DB 리팩터링은 어려운 작업
___다양한 응용 프로그램에 대한 DB 환경
___왜 리팩터링이 필요한가?
___리팩터링의 절차
___스키마의 이행 기간
___반복적인 리팩터링
13.2 리팩터링의 종류
___인덱스의 추가, 삭제
___칼럼 이름 변경
___NOT NULL 제약의 도입
___기본키의 정의 변경
___무손실 분해
___테이블의 수직 분할과 통합
13.3 리팩터링을 위한 모범 사례
___정규화와 직교성
___칼럼이 아닌 테이블을 추가
___SELECT *을 사용하지 않는다
___응용 프로그램을 소결합으로
13.4 요약
▣ 14장: 트랜잭션의 본질
14.1 트랜잭션
___트랜잭션의 기능
___트랜잭션의 키, 스케줄
___「데이터의 정확성」의 정의
___스케줄러의 성능
14.2 트랜잭션의 특징
___ACID란?
___다양한 비정상 상태
___갱신 분실
___스케줄과 잠금
___교착 상태(Dead Lock)
___트랜잭션 격리 수준
___MVCC
___크래시 복구
14.3 트랜잭션과 데이터 모델의 융합
___관계형 모델과 ACID의 「C」
___관계형 모델과 이상 현상
___정규화와 직교성
___제약
14.4 요약