第1章 數據庫領域的軟件開發方法學
1.1 架構迴顧
1.1.1 耦閤、內聚和封裝
1.1.2 接口
1.2 核心問題:集成數據庫和麵嚮對象係統
1.2.1 該何去何從
1.2.2 對象—關係失配
1.3 ORM:一個問題多多的解決方案
1.4 把數據庫操作設計為API
1.5 全麵權衡
1.5.1 可測試性
1.5.2 可維護性
1.5.3 安全性
1.5.4 性能
1.5.5 步履蹣跚的遠期功能
1.6 小結
第2章 數據庫例程測試
2.1 黑盒測試與白盒測試簡介
2.1.1 單元測試和功能測試
2.1.2 單元測試框架
2.1.3 迴歸測試的重要性
2.2 實現數據庫測試過程和測試例程的指導準則
2.2.1 為什麼說軟件測試很重要
2.2.2 哪種測試重要
2.2.3 需要進行多少測試
2.2.4 管理層是否願意接受軟件測試
2.3 性能測試和數據庫係統事件探查
2.3.1 獲取基準度量
2.3.2 使用跟蹤器及事件探查器進行查看
2.3.3 評估性能計數器
2.3.4 宏觀分析
2.3.5 粒度分析
2.3.6 修正問題:僅僅關注明顯的錯誤是否已經足夠
2.4 SQLQueryStress性能測試工具介紹
2.5 小結
第3章 錯誤和異常
3.1 異常和錯誤
3.2 SQL Server中異常的工作原理
3.2.1 語句級異常
3.2.2 批處理程序級異常
3.2.3 語法分析和作用域解析異常
3.2.4 連接和服務器級異常
3.2.5 XACT_ABORT設置
3.2.6 分析錯誤信息
3.2.7 SQL Server的RAISERROE函數
3.2.8 跟蹤監控異常事件
3.3 異常處理
3.3.1 為什麼要在T-SQL中處理異常
3.3.2 使用@@ERROR“處理”異常
3.3.3 SQL Server的TRY/CATCH語法
3.4 事務與異常
3.4.1 事務退齣的神話
3.4.2 XACT_ABORT:神話(半)成真
3.4.3 TRY/CATCH和被詛咒事務
3.5 小結
第4章 特權與授權
4.1 最低特權原則
4.1.1 在SQL Server中創建代理
4.1.2 層級數據安全:洋蔥模型
4.2 使用Schema組織數據
4.3 使用EXECUTE AS實現基本模擬
4.4 所有權鏈
4.5 非鏈式特權提升
4.5.1 存儲過程與EXECUTE AS
4.5.2 使用證書對存儲過程進行簽名
4.6 小結
第5章 加密
5.1 要保護什麼
5.2 加密術語:我們需要知道的部分
5.3 SQL Server 2005加密密鑰體係
5.3.1 服務主密鑰
5.3.2 數據庫主密鑰
5.4 SQL Server 2005數據保護
5.4.1 HashBytes()
5.4.2 非對稱密鑰加密和證書加密
5.4.3 對稱密鑰加密
5.4.4 EncryptByPassphrase
5.5 隔離數據與DBA
5.6 性能優化設計
5.6.1 設計解決方案、定義問題
5.6.2 搜索加密數據
5.7 小結
第6章 SQLCLR:架構和設計注意事項
6.1 填充SQL/CLR鴻溝:SqlTypes庫
6.2 包裝代碼以提高跨層重用性
6.3 SQLCLR的安全性特徵和可靠性特徵
6.3.1 代碼安全性需求
6.3.2 通過程序集引用有選擇地提升特權
6.3.3 授予交叉程序集特權
6.4 利用SQLCLR加強Service Broker可擴展性功能
6.5 擴展用戶自定義聚閤
6.6 小結
第7章 動態T-SQL
7.1 動態T-SQL與ad hoc T-SQL
7.2 為什麼要使用動態SQL
7.2.1 編譯與參數化
7.2.2 自動參數化
7.2.3 應用程序級參數化
7.2.4 參數化與高速緩存的性能暗示
7.3 支持可選參數
7.3.1 通過靜態T-SQL實現可選參數
7.3.2 實現動態化:使用EXECUTE
7.3.3 SQL注入
7.3.4 sp_executesql:一個更好的EXECUTE
7.4 動態SQL在安全方麵的考慮
7.4.1 被引用對象的權限
7.4.2 接口規則
7.5 小結
第8章 應用程序並發係統的設計
8.1 從業務角度觀察:進程産生衝突時會發生什麼情況
8.1.1 SQL Server隔離級彆概述
8.1.2 並發控製與SQL Server提供的隔離級彆
8.2 做最壞的打算:悲觀的並發
8.2.1 在寫入過程中使用悲觀鎖
8.2.2 應用程序鎖:對悲觀並發控製機製進行泛化
8.3 希望最好的情況發生:樂觀的並發控製
8.4 包容衝突:多值並發控製
8.5 通過排隊提高可擴展性
8.6 小結
第9章 空間數據處理
9.1 用緯度和經度錶示地球空間數據
9.1.1 設置示例數據
9.1.2 計算兩點之間的距離
9.1.3 從一個位置點移動到另一個位置點
9.1.4 鄰近搜索
9.1.5 邊界框
9.1.6 查找距離最近的鄰近點
9.1.7 動態邊界框
9.1.8 結論
9.2 使用分層三角形網格錶示地球空間數據
9.2.1 HTM的簡化描述
9.2.2 實現HtmID
9.2.3 Spatial數據庫提供的函數
9.2.4 結論
9.3 其他類型的空間數據
9.3.1 三維數據
9.3.2 天文數據
9.3.3 虛擬空間
9.3.4 將區域錶達為多邊形
9.4 小結
第10章 時態數據處理
10.1 錶達的不僅僅是時間
10.2 SQL Server提供的日期/時間數據類型
10.2.1 日期輸入格式
10.2.2 格式化輸齣日期
10.2.3 高效查詢日期/時間列
10.2.4 日期/時間計算
10.3 使用日曆錶定義周期
10.4 設計時態數據存儲方案及查詢時態數據
10.4.1 處理時區
10.4.2 處理時間區間
10.4.3 為持續時間建立模型
10.4.4 管理雙時態數據
10.5 小結
第11章 樹、層次結構和圖
11.1 術語:萬物皆為圖
11.2 基礎知識:鄰接錶和圖
11.2.1 為邊加入約束
11.2.2 針對圖的基本查詢:給定一個結點,這個結點與其他哪些結點相連
11.2.3 遍曆圖
11.3 鄰接錶的層次結構
11.3.1 查詢鄰接錶層次結構:基礎知識
11.3.2 查找直接後代結點
11.3.3 在層次結構中嚮下級層次遍曆
11.3.4 在層次結構中嚮上級層次遍曆
11.3.5 插入新結點並重新定位子樹
11.3.6 刪除已有結點
11.3.7 為層次結構加入約束
11.4 持久保存具體化路徑
11.4.1 查找下級結點
11.4.2 在層次結構中嚮上級層次導航
11.4.3 對具體化路徑解決方案進行優化
11.4.4 插入結點
11.4.5 重新定位子樹
11.4.6 刪除結點
11.4.7 為層次結構加入約束
11.5 嵌套集模型
11.5.1 查找下級結點
11.5.2 在層次結構中嚮上級層次導航
11.5.3 插入結點
11.5.4 重新定位子樹
11.5.5 刪除結點
11.5.6 為層次結構加入約束
11.6 小結
· · · · · · (
收起)