목차
1장 데이터 베이스 시스템의 세계 = 1
1.1 데이터 베이스 시스템의 발전 = 1
1.1.1 초기 데이터베이스 관리시스템 = 2
1.1.2 관계 데이터 베이스 시스템 = 4
1.1.3 소형화 되어가는 시스템 = 5
1.1.4 대형화 되어가는 시스템 = 6
1.2 데이터베이스 시스템의 구조 = 7
1.2.1 DBNS 구성 요소의 개요 = 7
1.2.2 저장 관리기 = 10
1.2.3 질의 관리기 = 10
1.2.4 트랜잭션 관리기 = 12
1.2.5 클라이언트-서버 구조 = 14
1.3 데이터베이스 시스템의 미래 = 15
1.3.1 타입, 클래스, 객체 = 15
1.3.2 제약과 트리거 = 18
1.3.3 멀티미디어 데이터 = 19
1.3.4 데이터 통합 = 20
1.4 이 책의 개요 = 21
1.4.1 설계 = 22
1.4.2 프로그래밍 = 22
1.5 요약(1장) = 23
1.6 참고문헌(1장) = 24
2장 데이터베이스 모델링 = 27
2.1 ODL의 소개 = 28
2.1.1 객체지향 설계 = 39
2.1.2 인터페이스 선언 = 31
2.1.3 ODL의 애트리뷰트 = 31
2.1.4 ODL에서 관계성 = 33
2.1.5 역 관계성 = 34
2.1.6 관계성의 다중연관성(multiplicity) = 35
2.1.7 ODL에서의 탕비 = 39
2.1.8 연습문제(2.1절) = 41
2.2 엔티티-관계성 다이어그램 = 43
2.2.1 E/R관계성의 다중연관성 = 45
2.2.2 다중방향 관계성 = 46
2.2.3 관계성에서의 역할 = 47
2.2.4 관계성에서의 애트리뷰트 = 49
2.2.5 다중방향 관계성을 이진 관계성으로 변환 = 51
2.2.6 연습문제(2.2절) = 52
2.3 설계원칙 = 54
2.3.1 충실성(Faithfulness) = 54
2.3.2 중복 회피 = 54
2.3.3 단순화(Simplicity) = 55
2.3.4 올바른 요소의 선택 = 56
2.3.5 연습문제(2.3절) = 59
2.4 서브클래스 = 61
2.4.1 ODL에서의 서브클래스 = 61
2.4.2 ODL에서의 다중 상속 = 62
2.4.3 엔티티 관계성 다이어그램에서의 서브클래스 = 65
2.4.4 E/R 모델에서의 상속 = 65
2.4.5 연습문제(2.4절) = 66
2.5 제약을 가지는 모델링 = 68
2.5.1 키 = 69
2.5.2 ODL에서 키의 선언 = 71
2.5.3 E/R모델에서 키의 표현 = 72
2.5.4 단일 값의 제약 = 72
2.5.5 참조 무결성 = 74
2.5.6 E/R다이어그램에서의 참조 무결성 = 74
2.5.7 그 밖에 다른 제약들 = 75
2.5.8 연습문제(2.5절) = 76
2.6 약 엔티티 집합 = 77
2.6.1 약 엔티티 집합의 원인 = 77
2.6.2 약 엔티티 집합에 대한 요구사항 = 80
2.6.3 약 엔티티 집합의 표기법 = 81
2.6.4 연습문제(2.6절) = 82
2.7 이전의 데이터 모델들 = 82
2.7.1 네트워크 모델 = 83
2.7.2 네트워크 스키마의 표현 = 84
2.7.3 계층 모델 = 85
2.7.4 연습문제(2.7절) = 86
2.8 요약(2장) = 88
2.9 참고문헌(2장) = 89
3장 관계 데이터 모델 = 91
3.1 관계 모델의 기본 = 91
3.1.1 애트리뷰트 = 92
3.1.2 스키마 = 92
3.1.3 튜플 = 93
3.1.4 도메인 = 94
3.1.5 릴레이션의 동일한 표현들 = 94
3.1.6 릴레이션 사례 = 95
3.1.7 연습문제(3.1절) = 96
3.2 ODL 설계에서 관계 설계로의 변환 = 97
3.2.1 ODL 애트리뷰트에서 관계 애트리뷰트로의 변환 = 98
3.2.2 비원자적 타입을 갖는 애트리뷰트 = 99
3.2.3 그 외의 비원자적 타입들 = 103
3.2.4 단일값을 갖는 관계성의 표현 = 104
3.2.5 다중값을 갖는 관계성의 표현 = 105
3.2.6 키가 존재하지 않는 클래스 = 107
3.2.7 관계성과 그 역관계성에 대한 표현 = 108
3.2.8 연습문제(3.2절) = 109
3.3 E/R 다이어그램에서 관계 설계로의 변환 = 111
3.3.1 엔티티 집합을 릴레이션으로 변환 = 112
3.3.2 E/R관계성을 릴레이션으로 변환 = 113
3.3.3 약 엔티티 집합의 변환 = 115
3.3.4 연습문제(3.3절) = 118
3.4 서브클래스 구조를 릴레이션으로 변환 = 120
3.4.1 ODL 서브클래스를 릴레이션으로 표현 = 120
3.4.2 관계 모델어서 Isa의 표현 = 121
3.4.3 여러 방식들의 비교 = 123
3.4.4 릴레이션들의 결합을 위한 NULL값의 사용 = 123
3.4.5 연습문제(3.4절) = 125
3.5 함수적 종속성 = 126
3.5.1 함수적 종속성의 정의 = 127
3.5.2 릴레이션의 키 = 129
3.5.3 수퍼키 = 130
3.5.4 릴레이션에서 키 찾기 = 131
3.5.5 ODL로 부터 변환된 릴레이션의 키 = 133
3.5.6 연습문제(3.5절) = 134
3.6 함수적 종속성에 관한 규칙들 = 135
3.6.1 분할/결합 규칙 = 136
3.6.2 단순 종속성 = 137
3.6.3 애트리뷰트의 총합 계산 = 138
3.6.4 이행 규칙 = 142
3.6.5 함수적 종속성들의 기저 = 143
3.6.6 연습문제(3.6절) = 144
3.7 관계 데이터베이스 스키마 설계 = 147
3.7.1 이상 문제 = 147
3.7.2 릴레이션의 분해 = 148
3.7.3 보이스-코드 정규형 = 150
3.7.4 BCNF로의 분해 = 152
3.7.5 함수적 종속성의 추출 = 157
3.7.6 분해된 결과로부터 정보를 복원 = 159
3.7.7 제3정규형 = 161
3.7.8 연습문제(3.7절) = 164
3.8 다중값 종속성 = 166
3.8.1 애트리뷰트 독립성과 이에 따른 중복 = 166
3.8.2 다중값 종속성의 정의 = 167
3.8.3 다중값 종속성에 대한 추론= 169
3.8.4 제 4정규형 = 171
3.8.5 제 4정규형으로의 분해 = 172
3.8.6 정규형들간의 관계 = 174
3.8.7 연습문제(3.8절) = 174
3.9 데이터베이스 스키마 예제 = 177
3.10 요약(3장) = 179
3.11 참고문헌(3장) = 181
4장 관계 모델에서의 연산 = 185
4.1 관계 연산의 대수 = 185
4.1.1 릴레이션에 대한 집합 연산 = 186
4.1.2 프로젝션 = 188
4.1.3 선택 연산 = 189
4.1.4 카티션 프로덕트 = 190
4.1.5 자연 조인 = 191
4.1.6 세타 조인 = 194
4.1.7 질의 작성을 위한 연산의 조합 = 195
4.1.8 이름 변경(Renaming) = 197
4.1.9 종속 연산과 독립 연산 = 199
4.1.10 연습문제(4.1절) = 200
4.2 릴레이션에 대한 논리 = 207
4.2.1 프레디키트와 기초식 = 207
4.2.2 산술 기초식 = 208
4.2.3 테이터로그 규칙과 질의 = 209
4.2.4 데이터로그 규칙의 의미 = 211
4.2.5 외연적 프레디키트와 내포적 프레티키트 = 213
4.2.6 연습문제(4.2절) = 214
4.3 관계 대수와 데이터로그 = 214
4.3.1 교집합 = 214
4.3.2 합집합 = 215
4.3.3 차집합 = 216
4.3.4 프로젝션 = 216
4.3.5 선택 연산 = 217
4.3.6 프로덕트 = 219
4.3.7 조인 = 220
4.3.8 데이터로그를 사용한 다중 연산 = 221
4.3.9 연습문제(4.3절) = 223
4.4 데이터로그에서의 순환적 프로그래밍 = 224
4.4.1 고정점(Fixedpoint) 연산자 = 226
4.4.2 최소 고정점의 계산 = 226
4.4.3 데이터로그에서의 고정점 등식= 229
4.4.4 순환적 규칙에서의 부정 = 234
4.4.5 연습문제(4.4절) = 238
4.5 릴레이션에 대한 제약 조건 = 240
4.5.1 제약 언어로서의 관계 대수 = 240
4.5.2 참조 무결성 제약 = 241
4.5.3 그 밖의 제약 예제 = 243
4.5.4 연습문제(4.5절) = 244
4.6 백에 대한 관계 연산 = 246
4.6.1 왜 백을 사용하는가? = 247
4.6.2 백의 합집합, 교집합, 차집합 = 248
4.6.3 백의 프로젝션 = 250
4.6.4 백의 선택 연산 = 251
4.6.5 백의 프로덕트 = 252
4.6.6 백의 조인 연산 = 253
4.6.7 백의 데이터로그 규칙 = 254
4.6.8 연습문제(4.6절) = 255
4.7 관계 모델에 대한 그 밖의 확장 = 257
4.7.1 릴레이션의 변경 = 257
4.7.2 집단화(Aggregation) = 257
4.7.3 뷰 = 258
4.7.4 널 값 = 258
4.8 요약(4장) = 259
4.9 참고문헌(4장) = 260
5장 데이터베이스 언어 SQL = 263
5.1 SQL에서의 단순 질의 = 264
5.1.1 SQL에서의 프로젝션 = 265
5.1.2 SQL에서의 선택 연산 = 268
5.1.3 문자열 비교 = 269
5.1.4 날짜와 시간의 비교 = 272
5.1.5 결과의 정렬 = 272
5.1.6 연습문제(5.1절) = 273
5.2 하나 이상의 릴레이션을 포함하는 질의 = 275
5.2.1 SQL에서 카티션 프로덕트와 조인 = 276
5.2.2 애트리뷰트 이름의 모호성 = 277
5.2.3 튜플 변수 = 278
5.2.4 다중 릴레이션 질의의 해석 = 279
5.2.5 질의의 합집합, 교집합, 차집합 = 282
5.2.6 연습문제(5.2절) = 284
5.3 부질의 = 287
5.3.1 스칼라 값을 생성하는 부질의 = 287
5.3.2 릴레이션이 비교 대상이 되는 조건 = 288
5.3.3 튜플이 비교 대상이 되는 조건 = 289
5.3.4 상호관련된 부질의 = 291
5.3.5 연습문제(5.3절) = 293
5.4 중복(Duplicate) = 295
5.4.1 중복의 제기 = 295
5.4.2 합집합, 교집합, 차집합에서의 중복 = 297
5.4.3 연습문제(5.4절) = 297
5.5 집단화 = 298
5.5.1 집단화 연산자 = 298
5.5.2 그룹화 = 299
5.5.3 HAVING절= 302
5.5.4 연습문제(5.5절) = 303
5.6 데이터베이스 변경 = 305
5.6.1 삽입 = 305
5.6.2 삭제 = 308
5.6.3 갱신 = 309
5.6.4 연습문제(5.6절) = 310
5.7 SQL에서 릴레이션 스키마의 정의 = 312
5.7.1 데이터 타입 = 313
5.7.2 간단한 형태의 테이블 선언 = 314
5.7.3 테이블의 삭제 = 314
5.7.4 릴레이션 스키마의 병경 = 315
5.7.5 디폴트 값 = 316
5.7.6 도메인 = 316
5.7.7 색인 = 318
5.7.8 연습문제(5.7절) = 320
5.8 뷰 정의 = 322
5.8.1 뷰의 선언 = 322
5.8.2 뷰에 대한 질의 = 323
5.8.3 애트리뷰트 이름의 변경 = 325
5.8.4 뷰의 변경 = 326
5.8.5 뷰를 포함하는 질의의 해석 = 330
5.8.6 연습문제(5.8절) = 333
5.9 NULL 값과 외부 조인 = 334
5.9.1 NULL에 대한 연산 = 335
5.9.2 신리값 UNKNOWN = 336
5.9.3 SQL2에서의 조인 수식 = 338
5.9.4 자연 조인 = 340
5.9.5 외부 조인 = 340
5.9.6 연습문제(5.9절) = 343
5.10 SQL3에서의 순환 = 345
5.10.1 SQL3에서 IDB릴레이션의 정의 = 345
5.10.2 선형 순환 = 349
5.10.3 WITH문에서의 뷰 사용 = 350
5.10.4 계층화된 부정 = 350
5.10.5 순환적 SQL3에서 문제가 되는 수식 = 352
5.10.6 연습문제(5.10절) = 355
5.11 요약(5장) = 357
5.12 참고문헌(5장) = 359
6장 SQL의 제약과 트리거 = 361
6.1 SQL에서의 키 = 362
6.1.1 키 선언 = 362
6.1.2 키 제약의 시행(Enforce) = 364
6.1.3 연습문제(6.1절) = 365
6.2 참조 무결성과 외래 키 = 365
6.2.1 외래 키 제약의 선언 = 366
6.2.2 참조 무결성의 유지 = 368
6.2.3 연습문제(6.3절) = 370
6.3 애트리뷰트 값에 대한 제약 = 371
6.3.1 Not-Null제약 = 372
6.3.2 애트리뷰트 기반 CHECK제약 = 372
6.3.3 도메인 제약 = 374
6.3.4 연습문제(6.3절) = 376
6.4 전역(Global) 제약 = 376
6.4.1 튜플 기반 CHECK 제약 = 377
6.4.2 무결성 단정 = 378
6.4.3 연습문제(6.4절) = 382
6.5 제약의 변경(Modification) = 384
6.5.1 제약에 이름 부여 = 384
6.5.2 테이블에 대한 제약의 변경(Altering) = 385
6.5.3 도메인 제약의 변경 = 386
6.5.4 무결성 단정의 변경 = 387
6.5.5 연습문제(6.5절) = 387
6.6 SQL3에서의 트리거 = 388
6.6.1 트리거와 제약 = 389
6.6.2 SQL3 트리거 = 390
6.6.3 SQL3의 무결성 단정 = 394
6.6.4 연습문제(6.6절) = 395
6.7 요약(6장) = 397
6.8 참고문헌(6장) = 398
7장 SQL의 시스템 관점 = 399
7.1 프로그래밍 환경에서의 SQL = 399
7.1.1 임피던스 불일치 문제 = 401
7.1.2 SQL/호스트 언어 인터페이스 = 402
7.1.3 선언부 = 402
7.1.4 호스트 변수의 사용 = 403
7.1.5 단일형 선택연산 문장 = 404
7.1.6 커서 = 405
7.1.7 커서에 의한 변경 = 409
7.1.8 커서 선택사항 = 410
7.1.9 튜플의 인출 순서 = 410
7.1.10 병행수행 갱신들로부터의 보호 = 411
7.1.11 전후이동하는(Scrolling) 커서 = 412
7.1.12 동적SQL = 414
7.1.13 연습문제(7.1절) = 415
7.2 SQL에서의 트랜잭션 = 417
7.2.1 직렬화가능성(Serializability) = 417
7.2.2 원자성 = 420
7.2.3 트랜잭션 = 422
7.2.4 읽기 전용 트랜잭션 = 424
7.2.5 손상가능 읽기 = 425
7.2.6 다른 고립화 수준들 = 428
7.2.7 연습문제(7.2절) = 429
7.3 SQL환경 = 430
7.3.1 SQL환경 = 430
7.3.2 스키마 = 432
7.3.3 카탈로그 = 434
7.3.4 SQL환경에서의 클라이언트와 서버 = 434
7.3.5 연결 = 435
7.3.6 세션 = 436
7.3.7 모듈 = 436
7.4 SQL2에서 보안과 사용자 권한 = 437
7.4.1 권리 = 438
7.4.2 권리의 생성 = 439
7.4.3 권리 검사 과정 = 440
7.4.4 권리의 부여 = 442
7.4.5 부여 다이어그램 = 444
7.4.6 권리의 해제 = 445
7.4.7 연습문제(7.4절) = 449
7.5 요약(7장) = 451
7.6 참고문헌(7장) = 452
8장 객체 지향 질의 언어 = 455
8.1 ODL의 질의 관련 특성 = 456
8.1.1 ODL 객체에 대한 연산 = 456
8.1.2 ODL의 메소드 시그너쳐 선언 = 457
8.1.3 클래스 익스텐트 = 459
8.1.4 연습문제(8.1절) = 461
8.2 OQL 도입 = 462
8.2.1 객체 지향 영화 예제 = 462
8.2.2 OQL 타입 시스템 = 462
8.2.3 경로 수식 = 465
8.2.4 OQL에 쓰이는 Select-From-Where 수식 = 466
8.2.5 중복 제거 = 468
8.2.6 복합 출력 타입 = 469
8.2.7 부질의 = 470
8.2.8 결과의 순서화 = 470
8.2.9 연습문제(8.2절) = 471
8.3 추가적인 OQL 수식 = 472
8.3.1 정량자 수식 = 472
8.3.2 집단화 수식 = 473
8.3.3 Group-By 수식 = 474
8.3.4 HAVING절 = 477
8.3.5 집합 연산자 = 477
8.3.6 연습문제(8.3절) = 479
8.4 OQL에서 객체 할당과 생성 = 480
8.4.1 결과값의 호스트 언어 변수 할당 = 480
8.4.2 콜렉션에서 원소의 추출 = 481
8.4.3 콜렉션 타입에서 각 멤버의 접근 = 481
8.4.4 새로운 객체의 생성 = 482
8.4.5 연습문제(8.4절) = 484
8.5 SQL3에서의 튜플 객체 = 486
8.5.1 행 타입 = 486
8.5.2 행 타입을 이용한 릴레이션 선언 = 487
8.5.3 행 타입 요소에 대한 접근 = 487
8.5.4 참조 = 488
8.5.5 참조 추적(Following References) = 489
8.5.6 참조의 영역(Scopes of References) = 491
8.5.7 객체 식별자 접근 = 492
8.5.8 연습문제(8.5절) = 495
8.6 SQL3에서의 추상 데이터 타입 = 496
8.6.1 추상 데이터 타입의 선언 = 496
8.6.2 추상 데이터 타입의 메소드 선언 = 500
8.6.3 외부 함수 = 503
8.6.4 연습문제(8.6절) = 503
8.7 ODL/OQL과 DQL3의 비교 = 504
8.8 요약(8장) = 506
8.9 참고문헌(8장) = 507
색인 = 509