목차
저자 서문 ... 3
이 책의 특징 ... 5
학습 로드맵 ... 6
Part 1 SQL Server 2005 설치 및 전체과정 미리 실습
   1장. SQL Server 2005 소개
      01. SQL Server의 변천사 ... 25
      02. SQL Server 2005에 새롭게 추가되거나 향상된 내용 ... 26
        엔터프라이즈 데이터 관리 ... 26
        개발자 생산성 ... 29
        기타 추가된 사항 ... 30
      03. SQL Server 2005의 에디션 및 기능 비교 ... 31
   2장. SQL Server 2005 설치
      01. SQL Server 2005 설치 전 준비사항 ... 35
        하드웨어 요구사항 ... 35
        소프트웨어 요구사항 ... 35
        에디션별 설치 가능한 운영체제 ... 36
      02. SQL Server 2005 설치 실습 ... 37
        실습1 SQL Server 2005 Evaluation Edition(평가판)을 설치하자 ... 38
      03. 추가 인스턴스 설치 ... 52
        인스턴스의 개념 ... 52
        추가 인스턴스 설치 ... 53
        실습2 SQL Server 인스턴스를 추가로 설치하자 ... 53
      04. SQL Server 2005 제거 ... 59
        실습3 추가로 설치한 '컴퓨터 이름\THIRD' 인스턴스를 제거하자 ... 59
      05. SQL Server 2005 한번에 설치 ... 60
        실습4 삭제했던 '컴퓨터 이름\THIRD' 인스턴스를 한번에 재설치하자 ... 61
      06. SQL Server 2005 서비스팩 설치 ... 62
        실습5 SQL Server 2005 서비스팩1을 설치하자 ... 63
      07. 설치 후에 확인할 사항 ... 66
        실습6 기본 인스턴스를 제외한 2개의 추가 인스턴스는 가동되지 않도록 설정하자 ... 67
      08. SQL Server 2000 또는 7.0 버전에서 업그레이드 ... 68
      이것만은 알고 갑시다 ... 70
   3장. 데이터베이스 구축의 전체과정 미리 실습하기
      01. 분석과 설계 그리고 모델링 ... 73
        분석과 설계 ... 73
        데이터베이스 모델링과 필수 용어 ... 73
      02. SQL Server 2005를 이용한 데이터베이스 구축 절차 ... 75
        데이터베이스 생성 ... 76
        실습1 쇼핑몰 데이터베이스(ShoppingDB)를 생성하자 ... 76
        테이블 생성 ... 78
        실습2 테이블을 생성하자 ... 78
        데이터 입력 ... 80
        실습3 행 데이터를 입력하자 ... 81
        데이터 활용 ... 82
        실습4 SELECT 문을 활용해서 데이터를 조회하자 ... 82
      03. 데이블 외의 데이터베이스 개체 ... 88
        인덱스 ... 88
        실습5 회원 테이블의 회원 이름(memberName) 열에 인덱스를 생성하자 ... 88
        뷰 ... 89
        실습6 회원 테이블의 회원 이름 열, 주소 열만 있는 뷰를 생성하자 ... 889
        저장프로시저 ... 91
        실습7 자주 조회하는 SQL 문을 저장프로시저로 만들자 ... 91
        트리거 ... 92
        실습8 삭제 작업이 발생하면 삭제되는 데이터를 다른 곳에 저장하는 트리거를 작성하자 ... 93
      04. 데이터 백업 및 관리 ... 95
        백업과 복원 ... 95
        실습9 백업과 복원 ... 95
        그 외에 관리자가 해야 할 일들 ... 100
        실습10 Books Online 사용 방법 ... 101
        이것만은 알고 갑시다 ... 104
Part 2 SQL Server 2005 기본
   4장. DBMS 개요와 데이터베이스 모델링
      01. DBMS 개요 ... 109
        데이터베이스의 정의와 특징 ... 109
        데이터베이스의 발전 ... 109
        관계형 DBMS ... 111
      02. 데이터베이스 모델링 ... 112
        프로젝트의 진행 단계 ... 112
        데이터베이스 모델링 개념 ... 113
        데이터베이스 모델링 실습 ... 114
        실습1 데이터베이스 모델링 ... 114
      이것만은 알고 갑시다 ... 120
   5장. SQL Server 2005의 툴과 유털리티 사용하기
      01. SQL Server Management Studio ... 123
        SSMS의 처음 실행 ... 124
        [서버에 연결] 창 ... 124
        SSMS의 화면 구성 ... 128
        실습1 서버그룹을 만들고 각 그룹별로 등록하자 ... 130
        실습2 개체 탐색기를 이용해서 데이터베이스 스크립트를 자동으로 생성하자 ... 134
        실습3 쿼리창을 이용해서 SQL 문장을 수행하자 ... 136
      02. SQL Server 노출 영역 구성 ... 143
        실습4 원격 컴퓨터에서 SQL Server 2005에 접속할 수 있도록 SQL Server 노출 영역 구성을 사용해 보안 설정을 변경하자 ... 143
      03. SQL Server 구성 관리자 ... 146
        실습5 SQL Server 구성 관리자를 통해서 데이터베이스 엔진의 시작 옵션을 설정하고, 원격 컴퓨터에서 접속한 프로토콜을 허용하자 ... 147
      04. SQLCMD(명령프롬프트의 쿼리 도구) ... 155
        실습6 SQLCMD.EXE를 사용하자 ... 157
      05. BCP(Bulk Copy) ... 159
        실습7 BCP를 사용하자 ... 159
      06. 프로파일러 ... 162
        실습8 프로파일러를 사용하자 ... 162
      이것만은 알고 갑시다 ... 166
   6장. 필수로 알아야 할 Transact-SQL 문
      01. 기본적인 T-SQL 구문 ... 169
        원하는 데이터를 가져와 주는 기본적인 SELECT... FROM ... 169
        실습1 데이터베이스 이름, 스키마 이름, 테이블 이름, 열 이름이 정확히 기억나지 않거나 또는 각 이름의 철자가 확실하지 않을 때 찾아서 조회하는 방법을 살펴보자 ... 175
        실습2 앞으로 사용할 데이터베이스와 테이블을 생성하자 ... 178
        특정한 조건의 데이터만 조회하는 SELECT...FROM...WHERE ... 181
        GROUP BY 및 HAVING 그리고 집계 함수 ... 193
        실습3 COUNT() 함수와 그냥 SELECT의 결과를 비교하자 ... 198
        WITH 절과 CTE ... 209
        실습4 하나의 테이블에서 회사의 조직도가 출력되도록 재귀적 CTE를 구현하자 ... 215
        T- SQL의 분류 ... 219
        데이터를 변경하는 INSERT, UPDATE, DELETE ... 220
        실습5 대용량의 테이블을 삭제하자 ... 224
      02. SQL Server의 데이터 형식 ... 225
        SQL Server 2005에서 지원하는 데이터 형식의 종류 ... 226
        변수의 사용 ... 231
        실습6 변수를 사용하자 ... 231
        데이터 형식과 관련된 시스템 함수들 ... 232
        실습7 max 형의 데이터 형식을 이용해서 대량의 데이터를 입력하자 ... 240
        실습8 순위 함수를 살펴보자 ... 244
      03. 조인 ... 249
        INNER JOIN(내부 조인) ... 250
        실습9 [그림 6-40]을 보고 3개 테이블을 정의하고 데이터를 입력하자 ... 256
        OUTER JOIN(외부 조인) ... 259
        실습10 〈실습9〉에서 3개의 테이블을 가지고 INNER JOIN 했던 결과를 OUTER JOIN으로 고려해 보자 ... 262
        CROSS JOIN(상호 조인) ... 264
        SELF JOIN(자체 조인) ... 265
        UNION, UNION ALL ... 267
      04. SQL 프로그래밍 ... 269
        IF...ELSE... ... 269
        CASE ... 270
        실습11 CASE 문을 살펴보자 ... 272
        WHILE과 BREAK, CONTINUE, RETURN ... 275
        GOTO ... 277
        TRY, CATCH ... 277
      이것만은 알고 갑시다 ... 280
   7장. 데이터베이스 생성과 관리
      01. 데이터베이스 기본 구조 및 시스템 데이터베이스 ... 283
        데이터베이스의 기본 구조 ... 283
        트랜잭션의 간단한 개념과 작동방식 ... 286
        실습1 로그 파일의 역할을 살펴보자 ... 293
        시스템 데이터베이스와 예제 데이터베이스 ... 298
        실습2 SQL Server 2005 예제 데이터베이스 및 SQL Server 2000의 예제 데이터베이스를 설치하자 ... 301
      02. 데이터베이스 생성 및 관리 ... 306
        데이터베이스 생성 ... 306
        실습3 SSMS에서 데이터베이스를 생성하자 ... 309
        실습4 〈실습3〉에서 SSMS로 생성한 brainDB를 T-SQL로 생성하자 ... 317
        파일그룹 ... 319
        실습5 대용량 데이터베이스라는 가정하에 [그림 7-35]와 같은 파일 및 파일그룹을 생성하자 ... 321
        실습6 [그림 7-35]를 T-SQL로 생성하자 ... 324
        데이터베이스 크기 늘리기 및 줄이기 ... 326
        실습7 데이터베이스의 크기를 수동으로 늘리거나 줄여보자 ... 326
        데이터베이스 수정 ... 341
        실습8 brainDB를 디폴트로 생성하고 hanbitDB로 변경하자 ... 346
        실습9 C:\RAIDO\라는 폴더를 RAIDO 방식의 레이드라고 생각하고, tempdb의 데이터 및 로그 파일을 이곳으로 옳겨 놓자 ... 349
        데이터베이스 삭제 ... 352
      03. 데이터베이스 옵션 ... 353
      이것만은 알고 갑시다 ... 356
   8장. 테이블과 뷰
      01. 테이블 ... 359
        테이블 만들기 ... 359
        실습1 SSMS의 개체 탐색기에서 [그림 8-1]의 tableDB 데이터베이스를 생성하자 ... 360
        실습2 T-SQL을 이용해서 테이블을 생성하자 ... 367
        제약조건 ... 372
        임시 테이블 ... 382
        실습3 임시 테이블을 생성하자 ... 383
        테이블 삭제 ... 386
        테이블 수정 ... 386
        실습4 테이블의 제약조건 및 수정 방법을 살펴보자 ... 389
      02. 데이터베이스 개체의 이름과 외부 서버에 있는 개체로의 접근 ... 399
        데이터베이스 개체 ... 399
        외부 서버에 있는 개체로의 접근 ... 401
        실습5 다른 서버의 테이블에 접근하자 ... 401
      03. 뷰 ... 403
        뷰의 개념 ... 403
        뷰의 장점 ... 404
        실습6 뷰를 생성하고 활용하자 ... 406
        뷰의 종류 ... 413
      04. 분할 테이블과 분할 뷰 ... 414
        분할 뷰 ... 414
        실습7 여러 서버에 뷰를 조회하는 분산형 분할 뷰를 구현하자 ... 415
        분할 테이블 ... 421
        실습8 분할 테이블을 구현하자 ... 422
      이것만은 알고 갑시다 ... 428
   9장. 인덱스
      01. 인덱스의 개요와 활용 ... 431
        인덱스의 개념 ... 431
        인덱스의 종류 ... 432
        실습1 제약조건으로 자동 생성되는 인덱스를 살펴보자 ... 434
        인덱스의 내부 작동 ... 439
        실습2 한 테이블에 클러스터형 인덱스와 비클러스터형 인덱스가 모두
존재하는 사례를 살펴보자 ... 450
        인덱스의 생성, 변경, 삭제 ... 455
        실습3 인덱스를 생성하고 사용하자 ... 460
        실습4 클러스터형 인덱스, 비클러스터형 인덱스, 인덱스가 없을 때의 성능을 비교하자 ... 464
        인덱스를 생성해야 하는 경우와 그렇지 않은 경우 ... 477
        실습5 계산 열에 인덱스를 생성하자 ... 481
        실습6 포괄 열이 있는 인덱스를 생성하자 ... 482
        데이터베이스 엔진 튜닝 관리자 ... 486
        실습7 데이터베이스 엔진 튜닝 관리자의 기본적인 사용법을 익히자 ... 486
      02. 분할 인덱스와 인덱싱된 뷰 ... 494
        분할 인덱스 ... 494
        실습8 분할 인덱스를 생성하자 ... 495
        인덱싱된 뷰 ... 497
        실습9 인덱싱된 뷰를 활용하자 ... 498
      이것만은 알고 갑시다 ... 504
   10장. 트랜잭션과 잠금
      01. 트랜잭션 ... 507
        트랜잭션의 개념 ... 507
        트랜잭션의 문법과 종류 ... 507
        실습1 트랜잭션을 사용해야 하는 이유를 살펴보자 ... 510
        실습2 트랜잭션을 활용하자 ... 513
      02. 잠금 ... 519
        트랜잭션 격리 수준 ... 520
        실습3 더티리드를 살펴보자 ... 521
        실습4 더티리드를 해결하고, 또 다른 문제인 '반복되지 않은 읽기'를 확인하자 ... 524
        실습5 팬텀읽기와 이를 방지하는 방법을 살펴보자 ... 527
        잠금이 걸리는 리소스와 잠금의 종류 ... 532
        잠금의 정보 확인과 힌트 ... 534
        실습6 잠금힌트를 살펴보자 ... 534
        블로킹과 교착상태 ... 539
        실습7 블로킹의 문제를 해결하자 ... 539
        실습8 교착상태를 확인하자 ... 541
      03. 분산 트랜잭션 ... 545
        실습9 분산 트랜잭션을 사용하자 ... 546
      이것만은 알고 갑시다 ... 550
Part 3 SQL Server 2005 활용
   11장. 저장프로시저와 사용자정의 함수
      01. 저장프로시저 ... 555
        저장프로시저의 개요 ... 555
        실습1 저장프로시저를 사용하자 ... 558
        저장프로시저의 특징 ... 569
        저장프로시저의 종류 ... 570
      02. 저장프로시저의 작동 ... 572
        일반 T-SQL의 작동방식 ... 572
        실습2 일반 T-SQL의 처리시간을 비교하자 ... 573
        저장프로시저의 작동방식 ... 575
        실습3 저장프로시저의 작동을 살펴보자 ... 576
        WITH RECOMPILE 옵션과 저장프로시저의 문제점 ... 578
        실습4 저장프로시저의 문제점을 살펴보고 재컴파일 옵션을 통해 해결하자 ... 579
      03. 사용자정의 함수 ... 583
        사용자정의의 생성, 수정, 삭제 ... 583
        실습5 사용자정의 함수를 살펴보자 ... 584
        함수의 종류 ... 585
        실습6 테이블 함수를 살펴보자 ... 588
        그 외 함수와 관련되어 알아둘 사항 ... 590
        실습7 스칼라 함수를 하나 더 연습해 보고, 스키마 바운드 함수 및 테이블 변수를 살펴보자 ... 591
      이것만은 알고 갑시다 ... 596
   12장. 커서
      01. 커서의 개념 ... 599
        커서의 개요 ... 599
        커서의 처리 순서 ... 600
        실습1 커서를 이용해서 고객의 평균 키를 구해보자 ... 600
      02. 커서의 활용 ... 606
        커서와 일반적인 쿼리의 성능 비교 ... 606
        실습2 커서와 일반 쿼리의 성능을 비교하자 ... 606
        커서의 내부 동작방식 ... 608
        실습3 GLOBAL, LOCAL의 설정을 살펴보자 ... 608
        실습4 커서의 형태(model)가 내부적으로 작동되는 것을 살펴보자 ... 612
        실습5 커서의 이동을 확인하고, 암시적 커서 변환에 대해서도 살펴보자 ... 614
      이것만은 알고 갑시다 ... 620
   13장. 트리거
      01. 트리거의 개념 ... 623
        트리거의 개요 ... 623
        실습1 간단한 트리거를 생성하고 결과를 확인하자 ... 623
        DML 트리거의 종류 ... 624
        DML 트리거의 사용 ... 625
        실습2 수정 또는 삭제된 데이터를 보관하고 변경된 일자/변경한 사람을 기록하자 ... 626
        실습3 INSTEAD OF 트리거를 사용하자 ... 630
      02. DDL 트리거 ... 635
        DDL 트리거 개요 ... 635
        DDL 트리거 활용 ... 637
        실습4 DDL 트리거를 사용하자 ... 637
      03. 기타 트리거에 관한 사항 ... 640
        다중 트리거 ... 640
        중첩 트리거 ... 640
        재귀 트리거 ... 641
        지연된 이름 확인 ... 643
        트리거의 작동 순서 ... 643
        실습5 기타 트리거의 작동을 살펴보자 ... 644
      이것만은 알고 갑시다 ... 652
   14장. 전체 텍스트 검색 서비스
      01. 전체 텍스트 검색 서비스 개요 ... 655
        실습1 전체 텍스트 검색 서비스가 가동되고 있는지 살펴보자 ... 655
      02. 전체 텍스트 인덱스와 전체 텍스트 카탈로그 ... 657
        전체 텍스트 인덱스 ... 657
        전체 텍스트 카탈로그 ... 659
        전체 텍스트 인덱스 채우기 ... 659
        전체 텍스트 검색을 위한 쿼리 ... 660
      03. 전체 텍스트 검색 서비스의 작동 ... 662
        실습2 전체 텍스트 검색 서비스를 사용하자 ... 663
      이것만은 알고 갑시다 ... 674
   15장. XML
      01. XML 기본 ... 677
        XML의 기본적인 구조 ... 677
        XML 데이터 형식 ... 677
        실습1 XML 데이터 형식을 사용하자 ... 677
        형식화된 XML과 XML 스키마 ... 679
        실습2 형식화된 XML을 사용하자 ... 679
      02. XML 활용 ... 683
        XML 인덱스 ... 683
        실습3 XML 인덱스를 생성하고 사용하자 ... 684
        쿼리의 결과를 XML로(FOR XML 절) ... 687
        실습4 FOR XML 절을 사용하자 ... 687
        XML 데이터를 일반 쿼리의 결과로 만들기(OPENXML) ... 692
        실습5 XML 데이터를 일반 쿼리의 결과로 변경하자 ... 692
      이것만은 알고 갑시다 ... 694
Part 4 SQL Server 2005 관리
   16장. 보안과 스키마
      01. SQL Server의 보안 ... 699
        인증 모드 ... 699
        실습1 Windows 계정을 생성하고 SQL Server에 접속하자 ... 700
        실습2 인증 모드를 혼합 모드로 변경하자 ... 703
        로그인, 사용자, 사용권한, 역할 ... 704
        실습3 SQL Server의 보안을 살펴보자 ... 709
      02. 스키마 ... 728
        스키마의 개요 ... 729
        실습4 현재 접속한 사용자를 확인하고 기본 스키마를 변경하자 ... 731
        스키마의 생성과 활용 ... 732
        실습5 스키마를 활용하자 ... 732
      이것만은 알고 갑시다 ... 738
   17장. 데이터를 안전하게 보관하자(백업, 복원, 스냅숏)
      01. 데이터베이스 백업과 복원 ... 741
        데이터베이스의 복구 모델 ... 741
        데이터베이스 백업의 종류 ... 743
        백업 시에 사용되는 기능 및 옵션 ... 749
        백업장치 ... 752
        데이터베이스 복원 ... 753
        데이터베이스 복원의 기능 및 옵션 ... 754
        실습1 백업장치를 만들자 ... 758
        실습2 트랜잭션 로그 파일을 비우지 않으면 발생하는 문제를 해결하자 ... 759
        실습3 [그림 17-16]의 시나리오로 백업, 복원을 수행해 보자 ... 762
        실습4 여러 개의 파일그룹을 백업하고 복원하자 ... 770
        실습5 중요도가 높은 테이블이 포함된 파일그룹부터 온라인 복원을 하자 ... 778
        실습6 미러백업과 체크섬을 사용하자 ... 780
        시스템 데이터베이스의 문제 발생 시 해결 방법 ... 781
        실습7 master에 문제가 생겨서 시스템이 마비되었다고 가정하고, 중요한 데이터베이스를 다른 서버에서 계속 서비스하자 ... 782
        실습8 master 데이터베이스가 깨진 상태를 복구하자 ... 788
        데이터베이스 백업과 복원 계획 수립 ... 791
      02. 데이터베이스 스냅숏 ... 793
        데이터베이스 스냅숏의 소개 ... 793
        실습9 데이터베이스 스냅숏을 생성하자 ... 795
        스법숏의 실제 내부 작동 ... 799
        실습10 스냅숏의 내부 작동을 살펴보자 ... 800
      스냅숏의 활용 ... 807
        실습11 테이블의 데이터를 삭제 또는 수정한 후에 스냅숏 DB를 이용해서 원상 복구하자 ... 807
        실습12 RESTORE 구문을 사용하여 스냅숏 DB인 Adv_sh1의 일부 데이터가 아닌, 전체를 AdventureWorts로 되돌리자 ... 811
        스냅숏 사용 시 주의사항 ... 811
        실습13 : 스냅숏 DB를 백업의 대용으로 사용할 때의 문제점을 살펴보자 ... 811
      이것만은 알고 갑시다 ... 814
   18장. 데이터의 고가용성(로그 전달, 데이터베이스 미러링, 복제)
      01. 고가용성을 위한 방법 및 개념 ... 817
        서버 클러스터링 개요 ... 817
        로그 전달 개요 ... 819
        데이터베이스 미러링 개요 ... 819
        복제 개요 ... 819
      02. 로그 전달 ... 821
        로그 전달의 상세 작동방식 ... 821
        로그 전달 실습 ... 822
        실습1 로그 전달을 구성하자 ... 822
        실습2 로그 전달을 제거하자 ... 834
      03. 데이터베이스 미러링 ... 836
        데이터베이스 미러링 소개 ... 836
        데이터베이스 미러링 실습 ... 840
        실습3 3대의 인스턴스를 사용해서 데이터베이스 미러링을 구성하자 ... 840
        데이터베이스 미러링의 운영 모드 ... 858
      04. 복제 ... 859
        복제 관련 용어 ... 859
        복제의 방법 ... 861
        복제의 구성 모델 ... 863
        실습4 [그림 18-83]과 같이 복제의 가장 기본적인 틀을 구현하자 ... 867
        실습5 [그림 18-83]을 가지고 구성 완료된 복제의 내부 작동이 어떻게 일어나는지 살펴보자 ... 890
        실습6 병합복제를 구현하자 ... 896
        실습7 복제를 제거하자 ... 902
      이것만은 알고 갑시다 ... 904
   19장. SQL Server 2005 통합 서비스
      01. SQL Server 2005 통합 서비스 개요 ... 907
        외부와의 데이터 이동을 위해서 사용되는 방법 ... 907
        SSIS의 데이터 변환 기능 ... 907
      02. SQL Server 가져오기 및 내보내기 마법사 ... 908
        SQL Server 사이의 데이터 복사, 이동 ... 908
        실습1 SQL Server 사이에 데이터를 이동시키자 ... 908
        실습2 SQL Server 사이에서 데이터베이스 및 테이블을 먼저 정의한 후에 데이터 가져오기를 수행하자 ... 915
        이기종 간의 데이터 복사, 이동 ... 923
        실습3 Oracle 10g XE를 설치하자 ... 923
        실습4 이기종 간의 데이터를 복사, 이동시키자 ... 926
      이것만은 알고 갑시다 ... 931
   20장. 서버 자동화
      01. 서버 자동화 개요 ... 935
        자동화의 대표적인 사례 ... 935
        SQL Server 2005에서 제공하는 데이터베이스 자동화 ... 935
        작업일정 ... 935
        SQL Se
닫기