도서 소개
DB 설계 내용과 트랜잭션 처리 내용을 중심으로 구성된다. 우선, DB 설계 내용은 이론만 소개하는 것이 아니라 실제 적용하는 것까지 연계하는 과정을 소개하여 다른 관련 저서와 차별화를 이뤘다. 이를 위해 시스템 조건들을 소개하고 DB화를 꾀하고자 하는 대상 실세계를 시스템 관점에서 단계 0(실세계 정의)부터 단계 7(제약사항 식별 및 표현)에 이르는 개념적 설계 세부 단계들을 새롭게 소개하며, 각 단계에서 적용할 시스템 조건과 도출해야 할 산출 요소들과 그 방법을 소개한다.
출판사 리뷰
본서는 DB 설계 내용과 트랜잭션 처리 내용을 중심으로 구성된다. 우선, DB 설계 내용은 이론만 소개하는 것이 아니라 실제 적용하는 것까지 연계하는 과정을 소개하여 다른 관련 저서와 차별화를 이뤘다. 이를 위해 시스템 조건들을 소개하고 DB화를 꾀하고자 하는 대상 실세계를 시스템 관점에서 단계 0(실세계 정의)부터 단계 7(제약사항 식별 및 표현)에 이르는 개념적 설계 세부 단계들을 새롭게 소개하며, 각 단계에서 적용할 시스템 조건과 도출해야 할 산출 요소들과 그 방법을 소개한다. 단계 7까지의 산출물을 중심으로 논리적 설계인 단계 8과 9에서는 다른 저서들에서 일부만 간단히 다루는 릴레이션 변환 대상과 규칙들을 모두 상세히 소개하고 각 규칙에서 그 적용 조건, 적용 대상, 변환 방법, 기본 키 설정, 참조무결성 도출 방법을 명확히 소개하며 마지막으로 정규화 적용을 소개한다. 그 후, 강의 시스템 실세계를 대상으로 모든 단계별 작업을 순차적으로 적용하는 내용 소개로 DB 설계 이론이 실제 적용으로 연계되는 과정을 보여준다.
트랜잭션 내용에서도 개념 소개는 물론 실제 적용에 필요한 알고리즘을 제시하고 적용 예를 들어 절차적으로 상세히 설명함으로써, 개념을 너머서 적용까지의 차원에서 다른 저서들과의 차별화를 이뤘다. 트랜잭션의 성질이 보장되지 않을 때 야기되는 문제점을 예를 들어 상세히 소개하고, 복구 시스템과 트랜잭션 동시성 제어 소개에서도 각 개념과 종류와 방법 소개만이 아닌 명확한 절차적 알고리즘을 제시하여 적용 예를 통해 상세히 설명함으로써 실제 적용 차원으로까지 연계하는 차별적인 내용을 소개한다
작가 소개
지은이 : 김창화
[학력]1987.03 ~ 1990.02 고려대학교 일반대학원(전산학전공) 박사1985.03 ~ 1987.02 고려대학교 일반대학원(전산학전공) 석사1980.03 ~ 1985.02 고려대학교 수학교육과 학사[경력]1989.03 ~ 2024.07 현재 국립강릉원주대학교 컴퓨터공학과 교수2002.09 ~ 2004.2 Texas A&M University 객원교수1994.09 ~ 1995.08 Toronto University Post-Doc.겸 객원교수(EIL: Enterprise Integration Lab.)2014.03 ~ 2024.07 현재 한국정보통신기술협회 특수통신프로젝트그룹(PG903) 의장2016.03 ~ 2024.07 현재 국립전파연구원 JTC1 SC41(사물인터넷 및 디지털 트윈) 전문위원회 전문위원2016 ~ 2024 현재 국제표준 ISO/IEC JTC1 SC41(IoT and Digital Twin) 국가대표단[주요저서]• 데이터베이스 시스템(편역), 김창화 외 6인, 미래컴, 2004• 소프트웨어 공학(공저), 김창화 외 1인(공저), 한국방송통신대학교출판부, 1993
목차
CHAPTER 1 실세계와 시스템 그리고 데이터베이스
1.1 시스템과 실세계
1.1.1 시스템(system)이란?
1.1.2 실세계(real world)란?
1.2 데이터베이스 시스템 특성
1.2.1 파일 처리 시스템과 문제점
1.2.2 데이터베이스 시스템의 특성
1.3 데이터베이스 추상 레벨과 데이터 독립성
1.3.1 데이터 추상화(data abstraction)
1.3.2 데이터 추상화의 예
1.3.3 추상화 레벨 간의 연계
1.3.4 데이터 독립성(data independence)
1.4 데이터베이스 시스템 구성
1.4.1 데이터베이스 관리 시스템
1.4.2 데이터 언어
1.4.3 응용 프로그램
1.4.4 사용자
1.4.5 데이터베이스 관리자
1.4.6 데이터베이스 시스템의 클라이언트-서버 모델 구조
1.5 데이터베이스 시스템 기술의 발전 과정
1.5.1 1950년대의 데이터베이스 기술 발전
1.5.2 1960년대의 데이터베이스 기술 발전
1.5.3 1970년대의 데이터베이스 기술 발전
1.5.4 1980년대의 데이터베이스 기술 발전
1.5.5 1990년대의 데이터베이스 기술 발전
1.5.6 2000년대의 데이터베이스 기술 발전
1.5.7 2010년대의 데이터베이스 기술 발전
1.5.8 2020년대 초반의 데이터베이스 기술 발전
CHAPTER 2 실세계 시스템 중심의 데이터베이스 설계 프로세스
2.1 실세계 시스템 기반의 데이터베이스 설계 개념
2.2 데이터베이스를 잘 설계해야 하는 이유
2.3 데이터베이스 설계의 종류와 데이터 모델
2.3.1 개념적 설계
2.3.2 논리적 설계
2.3.3 물리적 설계
2.4 실세계 시스템 기반의 데이터베이스 설계 절차
CHAPTER 3 실세계 시스템 기반의 개념적 설계와 ER 모델
3.1 개념적 설계의 개념 요소
3.1.1 개체와 속성 그리고 키(key)
3.1.2 관계와 약한 개체
3.1.3 ISA 관계와 상속성
3.1.4 종합화(aggregation)
3.1.5 대응 카디널리티
3.2 ER 모델
3.2.1 P. Chen 표기법의 개념 요소
3.2.2 IE(Crow’s foot) 표기법의 개념 요소
3.2.3 기타 ER 모델 개념 요소들
3.2.4 강의 시스템 실세계 ERD에 대한 시스템적 분석 예
3.3 ER 모델을 이용한 시스템 기반의 개념적 설계 절차와 방법
CHAPTER 4 논리적 설계와 관계형 데이터 모델
4.1 논리적 데이터 모델
4.1.1 논리적 데이터 모델 개념
4.1.2 논리적 데이터 모델링(논리적 데이터 설계)을 하는 이유
4.1.3 관계형 데이터 모델과 객체지향 데이터 모델
4.2 관계형 데이터 모델
4.2.1 관계형 데이터베이스 기본 구조와 개념
4.2.2 데이터베이스 스키마와 릴레이션 스키마
4.2.3 릴레이션의 키
4.2.4 SQL을 이용한 릴레이션 생성 예
4.3 질의어와 종류
4.3.1 질의어(query language)란?
4.3.2 절차적 언어와 선언적 언어
4.3.3 순수 질의어와 상용 질의어
4.4 데이터 무결성과 무결성 제약조건
4.4.1 데이터 무결성과 무결성 손상
4.4.2 도메인, NOT NULL 그리고 유일성 제약조건
4.4.3 참조 무결성 제약조건
4.5 대응 카디널리티와 무결성 제약조건
4.6 논리적 설계 접근 방법
CHAPTER 5 관계형 데이터 언어 : 관계 대수
5.1 기본 연산
5.1.1 select 연산
5.1.2 project 연산
5.1.3 union 연산
5.1.4 set difference 연산
5.1.5 cartesian-product 연산
5.1.6 rename 연산
5.2 추가 연산
5.2.1 set-intersection 연산
5.2.2 natural-join 연산
5.2.3 theta-join 연산
5.2.4 division 연산
5.2.5 assign 연산
CHAPTER 6 관계형 데이터 언어 : SQL
6.1 데이터 정의어(DDL : Data Definition Language)
6.1.1 릴레이션 연산
6.1.2 뷰 연산
6.2 데이터 조작어(DML : Data Manipulation Language)
6.2.1 SELECT 연산
6.2.2 INSERT 연산
6.2.3 UPDATE 연산
6.2.4 DELETE 연산
6.3 데이터 제어어(DCL : Data Control Language)
6.3.1 GRANT 연산
6.3.2 REVOKE 연산
6.4 트랜잭션 제어어(TCL : Transaction Control Language)
6.5 뷰(view)와 연산
6.5.1 CREATE VIEW 연산
6.5.2 DROP VIEW 연산
6.5.3 뷰 사용의 장점
CHAPTER 7 데이터 이상과 정규화
7.1 데이터 이상(data anomaly)
7.1.1 삽입 이상(insertion anomaly)
7.1.2 삭제 이상(deletion anomaly)
7.1.3 갱신이상(update anomaly)
7.1.4 데이터 이상의 원인과 데이터 정규화(data normalization)
7.2 함수적 종속성(functional dependency)
7.2.1 함수적 종속성 개념
7.2.2 함수적 종속성 표기와 식별
7.2.3 함수적 종속성의 성질과 역할
7.3 정규형과 릴레이션 스키마 분해
7.3.1 정규형(normal form)
7.3.2 릴레이션 스키마 분해와 분해 조건
7.4 정규화(normalization)
7.4.1 제 1 정규형(The First Normal Form : 1st NF, 1NF)과 정규화
7.4.2 제 2 정규형(The Second Normal Form : 2nd NF, 2NF)과 정규화
7.4.3 제 3 정규형(The Third Normal Form : 3rd NF, 3NF)과 정규화
7.4.4 Boyce-Codd 정규형(Boyce-Codd Normal Form : BCNF)과 정규화
7.4.5 제 4 정규형(The Fourth Normal Form : 4th NF, 4NF)과 정규 화
7.4.6 제 5 정규형(The Fifth Normal Form : 5th NF, 5NF)과 정규화
7.5 정규형 간의 포함관계
CHAPTER 8 실세계 시스템 중심의 데이터베이스 설계
8.1 실세계 시스템 중심의 데이터베이스 설계 고려사항
8.1.1 개념적 설계 고려사항
8.1.2 논리적 설계 고려사항
8.2 관계형 데이터베이스 설계 프로세스
8.2.1 실세계 정의
8.2.2 ER 모델을 이용한 개념적 설계
8.2.3 관계형 데이터베이스의 논리적 설계
8.3 ERD의 릴레이션 변환
8.3.1 강한 개체 타입의 릴레이션 변환
8.3.2 약한 개체 타입의 릴레이션 변환
8.3.3 관계 타입의 릴레이션 변환
8.3.4 일반화 관계의 릴레이션 변환
8.3.5 종합화(aggregation)의 릴레이션 변환
8.4 릴레이션의 정규화
CHAPTER 9 실세계 시스템 중심의 데이터베이스 설계와 구현 예
9.1 강의 실세계 정의
9.2 강의 시스템의 개념적 설계
9.3 강의 시스템의 논리적 설계
9.3.1 개체 타입의 릴레이션 스키마 변환
9.3.2 관계 타입의 릴레이션 스키마 변환
9.3.3 강의 시스템 ERD에서 변환된 릴레이션들
9.3.4 릴레이션에 대한 정규화
9.4 속성 타입과 참조 무결성
9.5 관계형 데이터베이스 구현
9.5.1 릴레이션 생성
9.5.2 제약조건의 반영
CHAPTER 10 트랜잭션 개념과 성질
10.1 데이터베이스 접근 원리
10.1.1 블록과 버퍼
10.1.2 데이터 판독
10.1.3 데이터 기록
10.1.4 블록과 버퍼를 사용하는 이유
10.1.5 SQL 명령과 판독·기록 연산
10.2 트랜잭션과 원자성
10.3 트랜잭션의 상태
10.4 트랜잭션의 ACID 성질
10.4.1 원자성 손상의 문제점
10.4.2 일관성 손상의 문제점
10.4.3 격리성 손상의 문제점
10.4.4 영속성 손상의 문제점
10.5 트랜잭션의 격리성 수준
CHAPTER 11 복구 시스템
11.1 장애(failure)
11.1.1 장애의 유형과 특성
11.1.2 기억장치의 유형과 특성
11.2 원자성과 복구 가능성
11.3 로그와 복구 연산
11.3.1 로그와 로그 레코드
11.3.2 UNDO 연산과 REDO 연산
11.3.3 동시 트랜잭션
11.4 로그 기반의 로깅과 복구 방법들
11.4.1 지연 갱신 방법
11.4.2 즉시 갱신 방법
11.4.3 체크포인트 방법
11.4.4 체크포인트 방법의 로깅과 복구 예
11.5 쉐도우 카피 방법과 쉐도우 페이징 방법
CHAPTER 12 동시성 제어
12.1 동시 실행 환경과 동시성 제어
12.1.1 트랜잭션 동시 실행 환경
12.1.2 격리성 손상과 동시성 제어
12.1.3 기아상태와 교착상태
12.2 트랜잭션 스케줄과 직렬성
12.2.1 스케줄(schedule)
12.2.2 직렬 스케줄(serial schedule)과 직렬가능 스케줄(serializable schedule)
12.2.3 스케줄 실행순서의 교환
12.2.4 충돌(conflict)
12.2.5 충돌 직렬가능 스케줄(conflict serializable schedule)
12.2.6 뷰 직렬가능 스케줄(view serializable schedule)
12.2.7 직렬가능성과 충돌 직렬가능성을 소개한 이유
12.3 동시성 제어 스킴: 로크 기반 규약
12.3.1 2단계 로킹 규약(2-phase locking protocol)
12.3.2 그래프 기반 규약(graph based protocol)
12.4 동시성 제어 스킴: 타임스탬프 기반 규약
12.4.1 타임스탬프 순서 규약(timestamp ordering protocol)
12.4.2 토마스 기록 규칙(Thomas’ write rule)
12.4.3 검증 기반 규약(validation-base protocol)
12.5 트랜잭션의 격리성 수준
12.5.1 격리성과 일관성 손상
12.5.2 격리성 수준
12.5.3 SQL 표준에서 격리성 수준 설정