목차
제1장 데이터베이스를 만들다 = 19
1.1 Oracle Database 10g 설치 = 21
1) 제품 설치 전 사전 작업 = 21
(1) 하드웨어 요구사항 = 22
(2) 소프트웨어 요구사항 = 22
2) Oracle Universal Installer를 이용한 제품 설치 = 24
(1) Oracle Database 10g의 설치 방법 = 25
(2) Oracle Database 10g Edition 별 특성 = 26
(3) Oracle Database 10g 요약 정보 = 28
(4) Configuration Assistant = 30
3) 설치할 때 발생하는 오류에 대처하자! = 36
1.2 Oracle Database 10g 제거 = 38
1.3 다음 학습을 위한 준비 = 41
1) iSQL *Plus = 41
2) SQL *Plus = 47
제2장 데이터 얻기 첫걸음을 내딛다 - SQL(Structured Query Language) = 55
2.1 내 맘대로 데이터 얻기 - SELECT = 59
1) SELECT를 이용한 데이터 조회 = 59
2) 특정 칼럼 선택 = 60
2.2 WHERE절 = 61
1) WHERE절의 기본 = 61
2) AND를 이용한 조건절 작성 = 63
3) OR를 이용한 조건절 작성 = 63
4) BETWEEN AND를 이용한 조건절 작성 = 64
5) IN을 이용한 조건절 작성 = 65
6) IS NULL/NOT을 이용한 조건절 작성 = 65
7) LIKE를 이용한 조건절 작성 = 67
8) 연산자 정리 = 69
2.3 ORDER BY = 70
1) ORDER BY ASC = 70
2) ORDER BY DESC = 71
2.4 GROUP BY = 73
1) GROUP BY를 이용한 그룹화 = 73
2) GROUP BY 응용 = 76
2.5 HAVING = 78
1) HAVING절의 이용 = 78
2) 비효율적인 HAVING절 = 80
제3장 SQL 함수를 통해 멋진 질의문 만들기 - SQL Functions = 83
3.1 단일 행 함수(Single-Row Functions) = 85
1) 숫자 함수(Number Functions) = 85
(1) MOD 함수 = 85
(2) ROUND 함수 = 87
(3) WIDTH_BUCKET 함수 = 89
2) 문자 함수(Character Functions) = 90
(1) LOWER 함수 = 90
(2) SUBSTR 함수 = 92
3) 날짜 함수(Datetime Functions) = 93
(1) SYSDATE 함수 = 93
(2) ADD_MONTH 함수 = 94
(3) LAST_DAY 함수 = 95
(4) MONTHS_BETWEEN 함수 = 96
4) 변환 함수(Conversion Functions) = 97
(1) TO_CHAR (datetime) = 97
(2) TO_CHAR (number) = 100
5) 기타 함수(Miscellaneous Single-Row Functions) = 102
(1) DECODE 함수 = 102
(2) NVL 함수 = 104
3.2 집합 함수(Aggregate Functions) = 107
(1) AVG 함수 = 107
(2) RANK 함수 = 109
(3) SUM, MIN, MAX, COUNT 함수 = 110
3.3 분석 함수(Analytical Functions) = 113
(1) FIRST_VALUE 함수 = 114
(2) COUNT 함수 = 115
(3) SUM 함수 = 116
3.4 정규 표현식(Regular Expression) = 120
(1) REGEXP_LIKE 함수 = 120
(2) REGEXP_SUBSTR 함수 = 123
(3) REGEXP_REPLACE 함수 = 124
제4장 데이터 얻기 한 걸음 더 내딛다 = 129
4.1 조인(JOIN) = 131
1) SELECT FROM을 이용한 조인 = 131
2) JOIN절을 사용한 명시적 조인 = 134
3) 3개 이상의 테이블 조인 = 135
4) 다양한 형태의 조인 = 137
4.2 하위 질의(Subquery) = 144
4.3 GROUP BY 절의 확장 = 151
(1) GROUP BY ROLLUP = 151
(2) GROUP BY CUBE = 153
(3) GROUP BY GROUPING SETS = 156
4.4 계층적 질의 = 158
제5장 데이터 조작의 장애를 제거하라 - DML = 167
5.1 TRANSACTION 점령하기 = 169
1) TRANSACTION이란? = 169
2) INSERT TRANSACTION = 170
3) 여러 행 한 번에 INSERT = 172
4) 여러 테이블 한 번에 INSERT = 173
5.2 제약 조건(Constraints) 파헤치기 = 178
1) NOT NULL = 178
2) UNIQUE = 180
3) PRIMARY KEY = 184
4) FOREIGN KEY = 184
5) CHECK = 186
6) MERGE = 190
7) LOCK = 195
5.3 데이터 사전 (Data Dictionary) = 198
1) 데이터 사전의 종류 = 198
(1) 접두사 'USER_'를 갖는 사전 = 198
(2) 접두사 'DBA_'를 갖는 사전 = 200
2) 데이터 사전을 내 손안에 = 201
3) 데이터 사전 만들기 = 203
4) 데이터 사전에서 금맥을 캐자 = 203
(1) USER_OBJECTS = 204
(2) USER_SOURCE = 206
(3) DBA_USERS = 207
(4) USER_TABLES = 209
(5) USER_CONSTRAINTS = 211
(6) USER_CONS_COLUMNS = 213
(7) USER_INDEXES = 214
(8) USER_IND_COLUMNS = 216
(9) USER_VIEWS = 218
제6장 데이터를 담을 그릇을 만들자 - 데이터베이스 객체(Database Object) = 221
6.1 데이터를 담는 그릇 - 테이블(Table) = 223
1) 구성 요소 - 데이터 타입(Data Type) = 224
(1) CHAR Type, VARCHAR2 Type = 224
(2) 테이블 변경 - ALTER TABLE = 226
(3) NUMBER Type = 228
(4) DATE Type, TIMESTAMP Type = 230
(5) 데이터 타입 정리 = 231
2) 제약 조건(Constraints)의 생성 및 변경 = 231
(1) 테이블 만들기 = 232
(2) 제약 조건 만들기 = 234
(3) EMP 테이블 만들기 및 제약 조건 만들기 = 235
(4) EMP 테이블에 칼럼 추가하기 = 239
(5) 하위 질의를 이용한 테이블 복사(CREATE TABLE AS SELECT) = 240
(6) 칼럼 삭제하기 = 242
(7) 테이블 삭제하기 = 243
(8) 테이블 생성 시 제약 조건 만들기 = 244
6.2 인덱스(Index) = 246
1) 인덱스(Index)란 무엇인가요? = 246
2) 인덱스 만들기 = 248
(1) Index를 만들 테이블 작성 = 249
(2) Index 추가 후 성능 비교 - CREATE INDEX = 252
(3) 인덱스 삭제 - DROP INDEX = 258
3) 인덱스 사용 시 고려할 점 = 258
(1) 조건을 만족하는 행의 수에 따른 선택 = 258
(2) 조건절에 사용되는 칼럼의 순서에 따른 선택 = 263
6.3 뷰 (View) = 269
1) View란 무엇인가요? = 270
(1) View 생성 = 270
(2) View를 통한 접근 제한 = 273
(3) View가 참조하는 테이블 삭제 = 274
2) View의 활용 = 275
6.4 시퀀스 (Sequence) = 279
1) Sequence 만들기 = 279
2) Sequence 사용 시 고려할 점은 무엇이죠? = 282
제7장 SQL의 한계를 넘어 - PL/SQL = 285
7.1 PL/SQL 첫걸음 = 287
1) PL/SQL의 구조 = 287
2) PL/SQL - 파라미터 변수의 사용 = 295
7.2 Stored Procedure = 297
1) Stored Procedure의 장점 = 297
2) Stored procedure 작성 = 301
3) 제어문의 사용 = 305
7.3 커서(Cursor)의 활용 = 309
1) 커서를 이용한 Stored Procedure 작성 = 309
2) 커서를 이용한 다양한 Stored Procedure 예제 = 313
(1) 예제 1 = 313
(2) 예제 2 = 314
(3) 예제 3 = 316
7.4 예외 처리 = 319
1) 개요 = 319
2) 사례 = 328
제8장 PL/SQL로 엮어내는 이야기 = 333
8.1 사용자 정의 함수(Stored Function) = 335
8.2 패키지(Package) = 342
1) 패키지의 정의 = 342
2) 패키지 생성 = 344
8.3 트리거(Trigger) = 348
1) 트리거의 생성 = 348
2) 트리거의 또 다른 활용 = 354
제9장 Oracle 응용 예제를 통한 실력 키우기 = 357
9.1 인사 관리(Human Resource) = 359
1) 인사 관리 업무의 이해 = 360
2) 인사 관리 업무에 활용된 Oracle 기술 = 364
(1) hr_cre.sql = 364
(2) hr_idx.sql = 368
(3) hr_code.sql = 369
(4) hr_analz.sql = 371
9.2 주문 관리(Order Entry) = 372
1) 주문 관리 업무의 이해 = 374
(1) 객체 = 374
(2) XML = 386
2) 주문 관리 업무에 활용된 Oracle 기술 = 390
제10장 Oracle Server 내부로의 여행 - Server Architecture = 401
10.1 Oracle Instance(오라클 인스턴스) = 404
1) SGA(System Global Area: 시스템 공유 영역) = 405
(1) 데이터베이스 버퍼 캐시(DATABASE BUFFER CACHE) = 407
(2) 공유 풀 영역(SHARED POOL AREA) = 409
(3) 리두 로그 버퍼(REDO LOG BUFFER) = 411
(4) 자동화된 공유 메모리 관리 = 412
2) Program Global Area(PGA) = 417
(1) 바인드 변수(Bind Variable) = 418
(2) SORT_AREA = 419
(3) 커서 처리 = 419
3) 프로세스(Process) = 420
(1) 사용자 프로세스(User Process) = 421
(2) 서버 프로세스(Server Process) = 421
(3) 백그라운드 프로세스(Background Process) = 424
10.2 데이터베이스 = 431
1) 논리적 데이터베이스 구조(Logical Database Structure) = 431
(1) 데이터 블록(Data Block) = 431
(2) 익스텐트(Extent) = 434
(3) 세그먼트(Segment) = 436
(4) 테이블스페이스(TABLESPACE) = 442
2) 물리적 데이터베이스 구조(Physical Database Structure) = 448
(1) 데이터 파일(Data File) = 448
(2) 컨트롤 파일(Control File) = 449
(3) 리두 로그 파일(Redo Log File) = 452
(4) 아카이브 로그 파일(Archive Log File) = 454
(5) 파라미터 파일(Parameter File) = 455
(6) Alert와 Trace 파일 = 456
제11장 원격 데이터베이스로 가자 - Application Architecture = 463
11.1 Client / Server Architecture = 466
11.2 Multitier Architecture = 468
11.3 Oracle Net Service = 469
1) Listener 구성을 위한 설정 = 470
2) 원격 데이터베이스 서버에 접속하기 위한 방법 = 476
(1) 로컬 네트 서비스 이름 구성 방법 = 476
(2) 접속 테스트에 실패했을 때 조치 방법 = 481
제12장 문서의 데이터를 옮겨 볼까? - Oracle Utility = 485
12.1 Oracle Data Pump = 487
1) Data Pump Export = 487
(1) Table Mode Export = 488
(2) Schema Mode Export = 492
(3) Data Pump Export에서 제공하는 키워드 = 493
2) Data Pump Import = 494
12.2 SQL *Loader = 500
1) SQL *Loader의 기본 = 500
2) SQL *Loader를 이용한 우편번호 입력 = 509
제 13 장 데이터의 안전을 내 손으로 - Database Security = 513
13.1 데이터베이스 보안 개요 = 515
1) 권한(Privilege) = 516
2) 롤(Role) = 520
3) 저장 영역 및 Quota 설정 = 526
4) 사용자 자원 제한 및 프로파일 설정 = 529
13.2 인증 = 536
13.3 Virtual Private Database (VPD) = 542
제 14 장 데이터 모델링의 세계로 - Data Modeling = 551
14.1 업무 분석 = 554
14.2 논리적 데이터 설계 = 556
1) 엔티티 타입 (Entity Type) 정의 = 556
2) 관계(Relation) 정의 = 557
(1) Membership 설정 = 558
(2) 관계 참여도 = 559
(3) 식별자(Identifier) 정의 = 562
(4) 속성(Attribute) 정의 = 563
(5) 도메인(Domain) 정의 = 565
(6) 정규화(Normalization) = 566
14.3 물리적 데이터 모델링 = 571
1) 테이블로의 전환 = 571
2) 역정규화 = 573
(1) 칼럼의 역정규화 = 573
(2) 통계 테이블의 생성 = 576
(3) 인덱스(Index) 정의 = 581
(4) View 정의 = 584
14.4 ERwin Data Modeler 설치 및 활용 = 587
1) ERwin Data Modeler 설치 = 587
2) ERwin Data Modeler 활용 = 591
(1) ERwin Data Modeler 시작하기 = 591
(2) 논리적 Data 설계 = 594
(3) 물리적 Data 설계 = 603