SQL Server 2005數據管理與開發從入門到精通

《SQL Server 2005數據管理與開發從入門到精通》是2007年清華大學出版社出版的圖書,作者是袁永林、寧義、汪海波。

內容簡介

本書全面介紹SQLServer2005的管理和開發知識,包括SQLServer2005的新增功能、常用工具、開發基礎(包括T-SQL、聯接、創建和修改表、約束、視圖、腳本和批處理、存儲過程、用戶自定義函式、觸發器及游標等內容),討論範式化設計和與設計相關的基本問題,探討如何將SQLServer2005與XML結合起來,並就XML技術、本機XMLWeb查詢和公共語言運行時進行了探討,從而對利用多種技術進行高級查詢進行深入介紹。本書還詳細討論了綜合服務和VisualStudio等內容。最後針對大家感興趣的全文檢索、分散式查詢、服務分割器、報表服務和分析服務進行深入探討,詳細論述性能最佳化和管理,並以典型示例結束全書內容。
本書系統性強,知識點多,系統地介紹了SQLServer2005的新功能。國中級用戶可以將本書作為學習SQLServer2005的教材,資料庫設計高級開發人員也可以使用本書學習和研究資料庫開發知識。

目錄

第1章SQLServer2005概述 1

1.1SQLServer2005版本簡介 1

1.1.1版本說明 2

1.1.2硬體和OS要求 3

1.1.32005版本新特性 4

1.2資料庫系統開發模型 10

1.2.1單層結構(主機系統) 10

1.2.22-層結構(客戶/伺服器結構) 10

1.2.33-層結構 11

1.2.4n-層結構 11

1.3數據存取模型 12

1.4安裝 13

1.5SQLServer2005的組件 15

1.5.1資料庫對象 17

1.5.2SQLServer的數據類型 30

1.5.3SQLServer的對象標識符 33

1.6小結 34

第2章SQLServer2005實用工具 35

2.1SQLServer管理工具 35

2.1.1SQLServerManagementStudio 35

2.1.2複製 36

2.1.3綜合服務 36

2.1.4MSDTC管理控制台 37

2.1.5SQLServerProfiler 37

2.1.6查詢分析器 38

2.1.7OSQL 38

2.1.8sqlmaint.exe 38

2.2配置工具(ConfigurationTools) 39

2.2.1NotificationServicesCommandPrompt 39

2.2.2ReprotingServicesConfiguration 40

2.2.3SQLServerConfigurationManager 40

2.2.4SQLServerErrorandUsageReporting 47

2.2.5SQLServerSurfaceAreaConfiguration 49

2.3性能工具(PerformanceTools) 49

2.3.1資料庫引擎最佳化顧問 50

2.3.2SQLServerProfiler 51

2.4文檔和指南(Documentation

andTutorials) 52

2.4.1在線上叢書 52

2.4.2示例 53

2.4.3指南 53

2.5SQLServer2005UpgradeAdvisor 54

2.6開發工具 54

2.7小結 54

第3章SQLServer2005資料庫開

發基礎 55

3.1T-SQL基礎語句 55

3.1.1最基本的SELECT語句 55

3.1.2INSERT語句 65

3.1.3用UPDATE語句更新取得的數據 66

3.1.4DELETE語句 67

3.2聯接表 68

3.2.1聯接 68

3.2.2內部聯接 70

3.2.3外部聯接 72

3.2.4完全聯接 76

3.2.5交叉聯接 77

3.2.6探討聯接的替代語法 77

3.2.7聯合 79

3.3創建和修改表 81

3.3.1SQLServer的對象名 81

3.3.2CREATE語句 83

3.3.3ALTER語句 86

3.3.4DROP語句 89

3.4約束 89

3.4.1約束類型 90

3.4.2約束名 91

3.4.3鍵約束 91

3.4.4CHECK約束 97

3.4.5默認約束 98

3.4.6禁用約束 100

3.4.7規則和默認值 101

3.4.8維護數據完整性的觸發器 104

3.4.9比較 104

3.5視圖 105

3.5.1簡單視圖 106

3.5.2利用T-SQL編輯視圖 108

3.5.3刪除視圖 108

3.5.4審核 108

3.5.5加密視圖 109

3.5.6架構綁定 110

3.5.7使用VIEW_METADATA 110

3.5.8索引視圖 110

3.6腳本和批處理 112

3.6.1編寫腳本的基礎 112

3.6.2批處理 117

3.6.3OSQL 118

3.6.4動態SQL 119

3.7存儲過程 120

3.7.1創建存儲過程 120

3.7.2利用ALTER改變存儲過程 121

3.7.3刪除存儲過程 122

3.7.4參數化 122

3.7.5流控制語句 123

3.7.6存儲過程返回值 127

3.7.7異常處理 128

3.7.8過程的用途 134

3.7.9擴展的存儲過程(XPs) 136

3.7.10系統存儲過程 137

3.7.11遞歸 138

3.8用戶自定義函式 141

3.8.1返回標量值的UDF 142

3.8.2返回表的UDF 145

3.8.3創建“系統”函式 149

3.9觸發器 151

3.9.1觸發器定義 152

3.9.2使用觸發器維護引用完整性規則 155

3.9.3使用觸發器維護數據完整性規則 156

3.9.4觸發器的其他常見用途 156

3.9.5觸發器的其他問題 157

3.9.6INSTEADOF觸發器 160

3.10SQL游標 162

3.10.1游標的定義 162

3.10.2游標範圍 163

3.10.3游標類型和擴展聲明語法 165

3.10.4用FETCH語句操縱游標 172

3.10.5在游標中改變數據 173

3.11資料庫快照 173

3.11.1稀疏檔案 173

3.11.2工作方式 174

3.11.3創建資料庫快照 176

3.11.4典型用法與限制 177

3.11.5恢復和刪除資料庫快照 180

3.12小結 182

第4章範式化和其他基本設計問題 185

4.1表和實體 185

4.2實現“範式化” 186

4.2.1準備工作 187

4.2.2第一範式 188

4.2.3第二範式 190

4.2.4第三範式 191

4.2.5其他範式 192

4.3關係 193

4.3.1一對一 193

4.3.2一對一或一對多 195

4.3.3多對多 195

4.4關係圖 197

4.5調整資料庫的範式化 204

4.5.1保持簡化 205

4.5.2選擇數據類型 205

4.5.3有關存儲的錯誤 205

4.5.4良構資料庫 206

4.6更多的關係圖和關係 207

4.6.1一組關係類型 207

4.6.2實體盒 207

4.6.3關係線 208

4.6.4終止符 208

4.7數學建模 209

4.7.1邏輯模型的目標 209

4.7.2數學建模的組成 210

4.8處理基於檔案的信息 211

4.9子類 213

4.9.1子類的類型 215

4.9.2實現子類 215

4.9.3子類的物理實現 217

4.9.4子類與擴展性 217

4.10資料庫重用 218

4.10.1候選的重用資料庫 218

4.10.2分解 219

4.10.3重用的代價 219

4.11通過分區實現擴展性 220

4.12小結 221

第5章SQLServer2005的開發模式 222

5.1開發人員信息中心 222

5.1.1應用程式設計概念 223

5.1.2資料庫設計概念 234

5.1.3語言 242

5.1.4數據訪問編程 242

5.1.5管理編程 242

5.1.6工具 245

5.2管理員信息中心 246

5.2.1概念 246

5.2.2使用資料庫引擎 252

5.3結構設計師信息中心 255

5.4工作者信息中心 256

5.5設計與部署 256

5.5.1開發資料庫計畫 256

5.5.2在線上事務處理和決策支持 258

5.5.3規範化 259

5.5.4數據完整性 260

5.5.5查看擴展屬性 261

5.6小結 263

第6章SQLServer2005下的XML

開發基礎 264

6.1XML基礎 265

6.1.1XML文檔的組成 266

6.1.2良構XML 271

6.1.3確定元素和屬性 272

6.2命名空間 272

6.3DTD和架構 274

6.3.1DTD 274

6.3.2XML架構集合 275

6.3.3DTD/架構和性能總結 279

6.4轉換——XSLT 280

6.5FORXML子句 282

6.5.1RAW 283

6.5.2AUTO 288

6.5.3EXPLICIT 289

6.5.4OPENXML 307

6.5.5XML語法規則 316

6.5.6元素的語法 318

6.5.7注釋的語法 318

6.5.8CDATA的語法 318

6.5.9namespaces的語法 319

6.5.10entity的語法 319

6.6小結 320

第7章複製 322

7.1bcp 322

7.1.1bcp語法 323

7.1.2bcp導出 326

7.1.3格式化檔案 326

7.1.4bcp導入 329

7.1.5BULKINSERT 332

7.1.6OPENROWSET 333

7.1.7XML大容量載入 335

7.1.8最佳化大容量導入的方法 340

7.2支持分散式數據 341

7.3架構複製時的考慮 341

7.3.1獨立性 342

7.3.2延遲性 342

7.3.3數據一致性 342

7.3.4架構一致性 342

7.3.5其他考慮 343

7.4發布比喻 343

7.4.1訂閱刊物 345

7.4.2訂閱伺服器類型 346

7.4.3過濾數據 346

7.5複製類型 346

7.5.1快照複製 347

7.5.2合併複製 349

7.5.3事務複製 353

7.5.4立即更新的訂閱伺服器 355

7.5.5混合複製類型 356

7.6複製模型假設 356

7.6.1標準模型 357

7.6.2混合模型 358

7.6.3附加說明 359

7.7實現示例 359

7.7.1承包人供應公司 359

7.7.2清除服務 360

7.8計畫複製 361

7.8.1數據考慮 361

7.8.2複製類型 362

7.8.3複製嚮導 362

7.9啟用發布和分發 362

7.9.1啟動嚮導 363

7.9.2默認配置 364

7.9.3禁用發布 365

7.9.4T-SQL過程 366

7.10事務/快照發布刊物 366

7.10.1創建和管理髮布嚮導 366

7.10.2配置之後 368

7.10.3T-SQL過程 371

7.11合併發布刊物 371

7.12異類資料庫複製 371

7.12.1從Oracle發布數據 372

7.12.2將數據發布到非SQLServer訂閱

伺服器上 379

7.13管理複製 380

7.13.1複製腳本 380

7.13.2支持各種複製 380

7.13.3發布到Internet上 381

7.13.4複製和架構變化 381

7.13.5複製監視器 383

7.13.6後續 384

7.14企業範圍的自動化管理 384

7.14.1創建多伺服器環境 385

7.14.2管理作業 385

7.14.3輪詢伺服器 386

7.14.4管理事件 387

7.15高可用性解決方案 388

7.16小結 390

第8章SQLServer2005的高級查詢 391

8.1在SQLServer2005中使用XML 391

8.1.1xml數據類型表示形式 391

8.1.2xml數據類型 392

8.1.3xml數據類型列的索引 394

8.1.4管理伺服器上的XML架構集 395

8.1.5使用FORXML和OPENXML發布

和處理XML數據 395

8.1.6客戶端XML功能 397

8.2使用本機XMLWeb服務 399

8.2.1本機XMLWeb服務的工作原理 399

8.2.2啟用本機XMLWeb服務 400

8.2.3本機XMLWeb服務的安全性

方法 401

8.2.4設定伺服器以偵聽本機XMLWeb

服務請求 401

8.2.5使用WSDL 401

8.2.6SOAP技術 401

8.3公共語言運行時 412

8.3.1開始使用CLR 413

8.3.2.NET框架中的套用 415

8.4高級查詢 418

8.4.1建立嵌套子查詢 419

8.4.2關聯子查詢 423

8.4.3衍生表 427

8.4.4EXISTS操作符 429

8.4.5混合數據類型:CAST和

CONVERT 432

8.4.6性能考慮 435

8.5小結 436

第9章綜合服務 437

9.1體系結構 437

9.2綜合服務工具和實用工具 439

9.2.1綜合服務與Studio環境 439

9.2.2SSIS設計器及概念 440

9.2.3SSIS嚮導 453

9.2.4執行包實用工具 456

9.3SSIS設計 456

9.3.1生成解決方案 456

9.3.2設計和創建SSIS包 458

9.3.3部署包 467

9.4典型用途 472

9.5小結 474

第10章全文檢索 475

10.1SQLServer的存儲方式 476

10.1.1各種版本的存儲共性 477

10.1.2SQLServer7.0以前版本的存儲

方式 480

10.1.3SQLServer7.0及以後版本的存儲

方式 481

10.2索引定義 485

10.2.1B-樹 486

10.2.2訪問數據的原理 488

10.2.3索引類型和索引遍歷 489

10.3創建和刪除索引 502

10.3.1CREATEINDEX語句 502

10.3.2創建約束時暗含的索引 505

10.3.3XML索引 506

10.4選擇創建索引的時機 512

10.4.1可選擇性 512

10.4.2成本 513

10.4.3選擇聚集索引 513

10.4.4列順序問題 515

10.4.5刪除索引 515

10.5維護索引 516

10.5.1碎片 516

10.5.2定義碎片與頁拆分的可能性 516

10.6全文檢索體系結構 520

10.7設定全文索引和分類 521

10.7.1授予資料庫全文搜尋能力 522

10.7.2創建全文目錄 522

10.7.3給獨立的表啟用全文檢索功能 523

10.7.4索引組裝 526

10.8全文查詢語法 528

10.8.1CONTAINS 528

10.8.2FREETEXT 529

10.8.3CONTAINSTABLE 529

10.8.4FREETEXTTABLE 531

10.8.5處理短語 531

10.8.6近似(Proximity) 533

10.8.7前綴條件 533

10.8.8權重 534

10.8.9詞尾變化 535

10.8.10對等級的簡單總結 535

10.9噪聲單詞 535

10.10語言 536

10.11sp_fulltext_service 537

10.12小結 537

第11章事務、鎖和分散式查詢 539

11.1事務 540

11.1.1BEGINTRAN 541

11.1.2COMMITTRAN 541

11.1.3ROLLBACKTRAN 541

11.1.4SAVETRAN 541

11.2事務日誌 542

11.2.1失敗和恢復 544

11.2.2日誌傳送 545

11.2.3隱式事務 546

11.2.4檢查點 547

11.2.5截斷 549

11.2.6收縮事務日誌 550

11.2.7使用事務日誌備份 552

11.2.8事務日誌物理體系結構 554

11.3鎖和並發性 555

11.3.1鎖可以阻止的問題 556

11.3.2可以加鎖的資源 560

11.3.3鎖增加和鎖對性能的影響 560

11.3.4鎖模式 563

11.3.5鎖的兼容性 565

11.3.6說明特定鎖的類型 566

11.4設定隔離層 569

11.5快照隔離 572

11.5.1隔離級別 572

11.5.2行版本控制 573

11.5.3快照隔離事務示例 577

11.5.4通過行版本控制的已提交讀

示例 578

11.6處理死鎖 580

11.6.1指出存在死鎖 580

11.6.2選擇死鎖犧牲品 581

11.6.3避免死鎖 581

11.7故障轉移群集 583

11.8分散式事務 584

11.8.1準備階段 584

11.8.2提交階段 585

11.9分散式查詢 585

11.9.1創建連結伺服器 586

11.9.2使用連結伺服器 588

11.9.3從遠程伺服器上收集元數據 593

11.9.4創建和使用通道查詢 595

11.9.5在遠程數據源上使用特別查詢 597

11.9.6其他分散式查詢的注意事項 598

11.10分散式分區視圖 600

11.11小結 607

第12章SQLServer2005服務 609

12.1服務分割器 609

12.1.1ServiceBroker概念 610

12.1.2ServiceBroker體系結構 612

12.2分析服務 618

12.2.1終端用戶的要求 618

12.2.2維度資料庫 622

12.2.3OLAP存儲類型 627

12.2.4數據倉庫 628

12.2.5數據轉換 630

12.2.6元數據 631

12.2.7數據挖掘模型 634

12.2.8數據挖掘算法 634

12.2.9分析服務體系結構 637

12.2.10商業智慧型增強功能 642

12.3報表服務 643

12.3.1創建和管理報表 645

12.3.2功能與概念 646

12.3.3報表服務體系結構 649

12.4通知服務 650

12.4.1通知服務定義 650

12.4.2關鍵術語 651

12.4.3通知服務體系結構 652

12.5小結 654

第13章性能調試與最佳化 655

13.1索引選擇 656

13.2資料庫引擎最佳化顧問 657

13.2.1工作負荷 658

13.2.2注意事項 659

13.3數據處理 660

13.4策略要求 661

13.5程式維護 662

13.6最佳化存儲過程 662

13.6.1儘可能縮短事務 662

13.6.2儘可能使用限制最少的事務隔

離層 662

13.6.3必要時可以執行多種解決方案 662

13.6.4儘量避免使用游標 663

13.7使用臨時表 663

13.8硬體考慮 663

13.8.1伺服器的獨占使用 664

13.8.2I/O與CPU速度 664

13.8.3OLTP與OLAP 667

13.8.4線上或離線 667

13.8.5宕機 667

13.8.6丟失數據 668

13.8.7性價比 668

13.8.8伺服器 668

13.8.9理想系統 668

13.9解決方法 669

13.9.1各種顯示計畫和統計信息 669

13.9.2資料庫一致性檢驗程式 673

13.9.3查詢控制器(QueryGovernor) 675

13.9.4SQLServerProfiler(事件探

查器) 676

13.9.5性能監視器(Perfmon) 679

13.10小結 681

第14章SQLServer2005管理 682

14.1安全性基礎 683

14.1.1固定登錄ID和口令 683

14.1.2口令有效期 684

14.1.3長度與組成 685

14.1.4登錄次數 686

14.1.5存儲用戶和口令 687

14.2安全性選項 687

14.2.1SQLServer安全性 688

14.2.2作業系統集成安全性 691

14.3用戶許可權 693

14.3.1對特定資料庫授予訪問權 693

14.3.2在資料庫中授予對象許可權 694

14.3.3用戶許可權和語句級的許可權 697

14.4伺服器和資料庫角色 698

14.4.1伺服器角色 698

14.4.2資料庫角色 699

14.5應用程式角色 702

14.5.1創建應用程式角色 703

14.5.2給應用程式角色添加許可權 703

14.5.3使用應用程式角色 703

14.5.4刪除應用程式角色 704

14.6XML的安全性 704

14.7更高級的安全性 705

14.7.1處理Guest賬戶 705

14.7.2TCP/IP連線埠設定 706

14.7.3禁用sa賬戶 706

14.7.4xp_cmdshell 706

14.7.5其他工具 706

14.8調度表作業 707

14.8.1創建操作員 708

14.8.2創建作業和任務 710

14.9備份和還原 720

14.9.1重要性及目標 721

14.9.2備份介質 722

14.9.3備份 724

14.9.4恢複數據 726

14.9.5恢復模式 728

14.9.6恢復最佳化 730

14.9.7SQLServer代理 733

14.10自動回響警報 734

14.10.1在資料庫引擎中創建自動響

應警報 735

14.10.2在T-SQL中創建自動回響

警報 735

14.11全文目錄操縱 737

14.11.1備份與恢復 737

14.11.2安排注入的調度 737

14.12異地複製 737

14.12.1複製資料庫嚮導 737

14.12.2備份和恢復 738

14.12.3連線/分離 738

14.13索引重建 738

14.14歸檔數據 739

14.15小結 740

第15章案例精解 741

15.1AdventureWorks設計基礎 741

15.2AdventureWorks總體設計 742

15.2.1所有者 744

15.2.2相關表 746

15.3AdventureWorks示例 749

15.3.1查詢示例 749

15.3.2分區表和分區索引示例 757

15.3.3CLR觸發器 760

15.4數據挖掘算法 772

15.4.1決策樹算法 772

15.4.2時序算法 774

15.4.3聚類分析算法 777

15.4.4關聯算法 778

15.4.5順序分析和聚類分析算法 780

15.5Xquery語言 781

15.6HTTP訪問 782

15.6.1設定HTTP訪問 783

15.6.2基於URL的查詢 785

15.6.3使用模板 786

15.6.4POST 789

15.6.5XPath 791

15.6.6設計結果的樣式 795

15.7使用IcommandStream設定XML命令 798

15.8小結 821

附錄A函式類別 822

附錄B用WMI編寫管理函式 823

B.1SQLServer腳本管理的歷史和未來 823

B.2WMI工具與結構 824

B.3WMI對象基本知識 826

B.3.1類 827

B.3.2實例 828

B.3.3關聯 829

B.3.4命名空間 829

B.4安裝WMISQLServer管理提供商 830

B.5連線到WMI 834

B.6實例檢索操作 836

B.6.1枚舉所有實例 837

B.6.2得到特定實例 838

B.6.3實例查詢 841

B.6.4關聯查詢 842

B.6.5從實例調用程式中得到最好

性能的技巧 846

B.7修改實例 849

B.8創建實例 851

B.9刪除實例 852

B.10調用方法 853

B.10.1動態方法 853

B.10.2靜態方法 856

B.11使用事件 858

B.11.1實例事件 858

B.11.2非實例事件 863

B.12靜態設定類 864

B.13訪問限定詞 866

B.13.1使用SQLServer特定的限定詞 869

B.13.2SQLVersion 869

B.13.3WriteAtCreate和WriteAtUpdate 870

B.14小結 870

附錄CSQLCMD 871

相關詞條

熱門詞條

聯絡我們