SQL Server資料庫原理——設計與實現

SQL Server資料庫原理——設計與實現

《SQL Server資料庫原理——設計與實現》是2004年3月清華大學出版社出版的圖書,作者是周立柱

內容簡介


本書從如何設計資料庫管理系統的角度出發,深入介紹了SQLServer2000的相關內容,目的是希望讀者在閱讀此書之後,能夠學習到像SQLServer2000這樣優秀的資料庫管理系統軟體的設計與實現技術,進而掌握、提高設計這種大型複雜的系統軟體的能力。全書圍繞SQLServer2000的核心部分——體系結構、存儲系統、查詢處理、併發控制,以及事務管理,分別敘述了各個部分的設計思想、基本演演算法,以及具體實現。此外,本書還對SQLServer2000新的擴充部分數據倉庫聯機分析處理、XML等也作了介紹。

圖書目錄


第1章緒論1
11資料庫管理系統的通用功能與系統組成1
12SQLServer20003
13SQLServer2000技術特色4
14本書的各章安排與內容5
參考文獻5
第2章SQLServer的體系結構6
21SQLServer的客戶/伺服器方式6
211網路程序庫(NetLibrary)7
212用戶態調度器(UserModeScheduler,UMS)9
213開放數據服務(OpenDataServices,ODS)9
22關係引擎與存儲引擎9
23存取方法管理器11
231行操作管理器與索引管理器11
232頁面管理器與文本管理器12
24事務管理器14
25鎖管理器15
26內存管理器16
27事務日誌與故障恢復17
271日誌管理17
272檢查點操作17
273恢復過程18
274使用頁面LSN的恢復技術19
28SQL內核與操作系統間的交互20
281線程處理與對稱多進程處理20282工者線程池21
283磁碟I/O操作22
29本章小結23
參考文獻23
SQLServer資料庫原理——設計與實現目錄第3章資料庫與資料庫文件24
31SQLServer系統資料庫25
311master資料庫25
312model資料庫25
313tempdb資料庫26
314pubs資料庫26
315Northwind資料庫27
316msdb資料庫27
32資料庫文件27
321基本知識27
322SQLServer資料庫文件28
33SQLServer資料庫文件組29
331默認的文件組29
332使用多個文件30
333利用文件組創建資料庫的實例31
34SQLServer資料庫文件結構32
341基本知識32
342SQLServer用戶資料庫32
343SQLServer的空間分配34
35資料庫的備份與恢復37
351備份類型37
352恢復模式38
36本章小結39
參考文獻40
第4章表的物理存儲41
41內部存儲概述42
42數據頁44
421基本知識44
422數據頁的格式44
423SQLServer的數據頁47
424檢查數據頁48
43數據行的結構52
431基本知識52
432SQLServer的數據行結構53
433列偏移數組56
44SQLServer中定長和變長行的存儲56
441定長行的存儲56
442變長列的存儲58
45SQLServer的頁鏈接60
46文本和圖像數據60
461LOB數據存儲在表外61
462LOB數據存儲在數據行62
47SQLServer的PRIMARYKEY和UNIQUE約束66
471列值的可空性66
472索引屬性66
473選擇碼67
48SQLServer的臨時表67
481私有臨時表(#)68
482全局臨時表(##)68
483直接使用tempdb68
484臨時表上的約束69
49SQLServer的系統表69
410本章小結72
參考文獻72
第5章索引及行操作73
51預備知識74
511堆文件74
512B樹與B+樹索引結構74
52SQLServer的索引組織77
521簇集索引79
522非簇集索引79
53在SQLServer中創建索引80
531主要參數說明81
532其他選項說明81
533約束與索引82
54SQLServer的索引頁結構83
541具有惟一標識符的簇集索引行83
542索引行格式85
543簇集索引的結點行87
544非簇集索引的葉級行92
545非簇集索引的結點行96
55索引的空間需求101
551B樹的大小101
552索引的實際大小與估計大小102
56索引的管理103
561索引碎片的類型103
562索引碎片的檢測103
563刪除索引碎片105
57SQLServer的特殊索引106
571先決條件106
572計算列上的索引107
573索引視圖108
58索引的使用109
581查找行109
582連接運算109
583排序109
584分組聚集110
585維護惟一性110
59插入行110
510分裂頁111
5101分裂索引的根頁111
5102分裂索引的中間頁111
5103分裂數據頁111
511刪除行115
5111從堆中刪除行115
5112從B樹中刪除行118
5113從索引的中間結點刪除行121
5114回收頁121
512更新行121
5121移動行121
5122管理轉向指針123
5123在位更新123
5124異位更新124
513表級與索引級的數據更新126
514本章小結127
參考文獻127
第6章SQLServer查詢處理128
61SQLServer查詢處理概述128
611SQLServer查詢的體系結構129
612查詢處理特點131
62執行模型132
621基本知識132
622多種執行模型的介紹134
623SQLServer查詢執行模型134
624物理操作的順序138
63基本運算138
631選擇運算138
632哈希139
633排序142
634其他操作144
64連接145
641嵌套循環連接145
642歸併連接146
643Hash連接147
65聚集155
651基於嵌套循環的聚集演演算法156
652基於排序的聚集156
653基於哈希的聚集157
66子查詢處理157
661假設158
662非同步I/O159
663避免I/O160
664數據流163
665控制流165
67本章小結168
參考文獻168
第7章SQLServer查詢優化技術170
71概述170
711基於代價的方法和啟髮式方法171
712語法優化和語義優化172
713新的優化方法172
72SQLServer的查詢優化概述173
721Cascades查詢優化器框架173
722MEMO結構176
73SQLServer優化策略179
731優化模型179
732優化時間181
733轉換及轉換規則181
734多階段優化184
74連接順序的選擇方法186
75子查詢的優化195
76SQLServer的物理優化201
761查詢分析201
762如何選擇索引205
763連接演演算法的選擇213
77代價計算214
771一般的代價計算方法214
772選擇運算215
773排序和連接218
774SQLServer中統計信息的管理219
78其他的輔助功能220
781如何正確選擇計劃220
782提示技術220
783更新計劃221
79本章小結221
參考文獻222
第8章事務223
81事務概念223
811事務基本性質224
812事務生命周期226
82SQLServer中的事務定義227
821事務定義模式227
822事務執行模式228
823批處理、觸發器中的事務229
83SQLServer中的事務模型230
831平面事務230
832嵌套事務231
833保存點233
834分散式事務235
84事務調度236
85事務隔離性級別240
851併發調度中的不一致性現象240
852SQLServer中事務隔離性級別的定義242
86本章小結245
第9章併發控制246
91基於鎖的併發控制247
92鎖模式247
921基本鎖模式247
922意向鎖250
923其他鎖模式251
924碼區間鎖252
93鎖資源256
94鎖持有度259
95鎖擁有者259
96封鎖協議260
961兩段鎖協議260
962兩階段提交協議261
97顯示鎖信息261
98鎖管理器269
981封鎖體系結構269
982鎖塊271
983鎖資源塊271
984鎖擁有者塊273
99鎖升級273
910封鎖產生的問題274
9101阻塞274
9102活鎖277
9103死鎖277
911綁定連接281
912強制封鎖類型283
913樂觀併發控制原理284
9131有效性檢查協議285
9132游標併發285
914本章小結287
第10章恢復288
101故障類型288
1011事務故障288
1012系統故障289
1013介質故障289
102日誌289
1021基本日誌結構289
1022基於日誌的恢復290
1023檢查點294
103ARIES演演算法介紹295
1031ARIES概述295
1032ARIES中數據結構297
1033ARIES的常規處理299
1034重啟處理300
104SQLServer中的備份與恢復305
1041備份類型305
1042將資料庫還原到前一個狀態309
1043恢復模型310
105SQLServer事務日誌物理構架311
1051創建日誌文件312
1052虛擬日誌文件312
1053截斷事務日誌314
1054收縮日誌文件315
106SQLServer事務日誌邏輯構架317
1061事務日誌內容317
1062日誌管理器317
1063SQLServer的檢查點318
107本章小結320
參考文獻320
第11章AnalysisServices2000概述321
111多維數據模型及相關概念321
1111數據倉庫、OLAP與DataMining基本框架321
1112基本概念323
1113星形模式(StarSchema)325
1114雪花模式(SnowFlakeSchema)326
1115聚集(aggregation)327
112AnalysisServices的體系結構和功能329
113AnalysisServer的多維查詢語言MDX及其處理330
1131MDX的坐標系統330
1132MDX的語法格式331
1133軸維和切片維331
1134MDX查詢示例332
1135MDX語句的查詢處理334
114AnalysisServer的Cube處理336
115AnalysisServer的數據挖掘337
1151OLEDBforDM337
1152數據挖掘模型338
1153AnalysisServices數據挖掘三層體系結構340
116本章小結342
參考文獻342
第12章SQLXML——SQLServer對XML的支持344
121SQLServer對XML的支持345
1211連接兩個世界的橋樑345
1212SQLServer中支持XML訪問的體系結構346
1213SQLXML346
122SQLFORXML查詢347
1221關係視圖上的XML查詢347
1222FORXML查詢的幾種模式348
1223生成XML形式查詢結果的機制351
123建立在關係數據上的XML視圖351
1231XML視圖概述351
1232利用帶註釋的映象模式在關係資料庫上建立XML視圖352
1233基於XML視圖的XPath查詢356
1234基於XML視圖的更新357
124XML數據轉換為關係數據358
1241OpenXML358
1242XMLBulkLoad361
125本章小結366
參考文獻366