SQL Server 2012 資料庫設計與開發實務

SQL Server 2012 資料庫設計與開發實務

《SQL Server 2012 資料庫設計與開發實務》是2013年6月清華大學出版社出版的圖書,作者是陳會安。

內容簡介

本書完美結合資料庫理論與設計實踐,除了使用大量圖形來介紹資料庫系統理論、實體關係模型和正規化外,更以實例介紹資料庫設計。讀者不僅可以使用資料庫設計工具組繪製專業的實體關係圖,還可以將設計結果建成SQLServer資料庫,來驗證實體關係模型的資料庫設計理論。

本書適用於微軟SQLServer2012企業版、標準版以及Express版,是資料庫設計與開發人員或學校資料庫設計相關課程所規劃的實用教材和實訓指南。

圖書目錄

第1章資料庫系統 1

1.1資料庫系統基礎 1

1.1.1資料庫的定義 2

1.1.2數據建模 3

1.1.3資料庫環境的組件 5

1.2三層資料庫系統架構 7

1.2.1概念層 8

1.2.2外部層 9

1.2.3內部層 10

1.3資料庫架構 10

1.3.1三層資料庫架構 11

1.3.2資料庫架構之間的映射 13

1.3.3實體與邏輯數據獨立 14

1.4資料庫管理系統 15

1.5資料庫管理員 16

1.6資料庫系統的處理架構 18

1.6.1集中式處理架構 18

1.6.2分散式處理架構 19

1.7習題 20

第2章關係資料庫模型 21

2.1資料庫模型基礎 21

2.1.1層級式資料庫模型 22

2.1.2網路式資料庫模型 23

2.1.3關係資料庫模型 25

2.2數據結構 25

2.2.1關係表架構 25

2.2.2關係表實例 27

2.2.3定義域 28

2.2.4屬性值 29

2.2.5空值 29

2.2.6關係表的特性 30

2.3數據操作或運算 30

2.3.1關係型算術 30

2.3.2關係型計算 31

2.3.3SQL語言與關係型算術與

計算 32

2.4完整性約束 32

2.4.1鍵約束 32

2.4.2定義域約束 36

2.4.3實體完整性 36

2.4.4引用完整性 37

2.4.5其他完整性約束 39

2.5習題 40

第3章實體關係模型與規範化 41

3.1實體關係模型與實體關係圖 41

3.1.1實體關係模型的基礎 41

3.1.2實體關係圖的基礎 42

3.1.3實體類型 44

3.1.4關係類型 44

3.1.5關係約束 45

3.1.6屬性 48

3.1.7弱實體類型 49

3.2將實體關係圖轉換成

關係表架構 50

3.2.1將強實體類型轉換成

關係表 50

3.2.2將關係類型轉換成外鍵 50

3.2.3轉換多關係類型 53

3.2.4多值屬性轉換成關係表 53

3.2.5弱實體類型轉換成關係表 54

3.3關係表的規範化 55

3.3.1規範化的基礎 55

3.3.2第一範式(1NF) 56

3.3.3第二範式(2NF) 58

3.3.4第三範式(3NF) 59

3.3.5Boyce-Codd範式(BCNF) 61

3.4習題 62

第4章SQLServer資料庫管理系統 63

4.1SQLServer基礎 63

4.1.1SQLServer的版本演進 64

4.1.2SQLServer的組成元素 64

4.1.3SQLServer2012的版本 66

4.2安裝SQLServer2012 66

4.2.1SQLServer2012的

軟硬體需求 67

4.2.2SQLServer實例的安裝 68

4.3SQLServer管理工具的使用 72

4.3.1SQLServer配置管理器 72

4.3.2啟動ManagementStudio

集成管理工具 76

4.3.3ManagementStudio的

使用界面 77

4.4查看SQLServer資料庫對象 78

4.4.1系統資料庫 78

4.4.2資料庫對象 79

4.5新增SQLServer用戶賬戶 81

4.5.1SQLServer用戶管理的

基礎 81

4.5.2新增登錄 82

4.5.3新增資料庫用戶 83

4.6SQLServer在線上叢書 84

4.7習題 86

第5章資料庫設計工具的使用 87

5.1資料庫設計基礎 87

5.1.1資料庫系統開發的

生命周期 87

5.1.2資料庫設計方法論 88

5.1.3安裝資料庫設計工具 90

5.2啟動設計工具與新增模型 91

5.2.1啟動與結束

ToadDataModeler 91

5.2.2新增模型 92

5.3新建實體 93

5.3.1實體的圖形符號 93

5.3.2新建與刪除實體 94

5.3.3新建屬性和指定主鍵 96

5.3.4編輯屬性 98

5.3.5創建索引 98

5.4創建關係性 99

5.4.1關係性的圖形符號 100

5.4.2創建關係性 102

5.4.3編輯關係性 104

5.4.4設定引用完整性規則 105

5.4.5指定新的外鍵 106

5.5生成報告和SQL命令 106

5.5.1生成資料庫設計檔案 107

5.5.2生成SQL的DDL命令 109

5.6習題 110

第6章SQL語言與資料庫創建 111

6.1SQL語言基礎 111

6.1.1SQL結構化查詢語言 111

6.1.2SQL語言的基本語法 112

6.1.3SQL語言的命令種類 113

6.1.4在ManagementStudio中

執行SQL腳本檔案 114

6.2SQLServer的資料庫結構 116

6.2.1資料庫檔案與檔案組 116

6.2.2分頁 118

6.2.3範圍 118

6.3創建用戶資料庫 119

6.3.1在ManagementStudio中

創建資料庫 119

6.3.2使用T-SQL命令

創建資料庫 121

6.3.3創建多檔案組的資料庫 122

6.4修改用戶資料庫 124

6.4.1使用ManagementStudio修改

用戶資料庫 125

6.4.2資料庫選項 126

6.4.3使用T-SQL命令

修改用戶資料庫 128

6.5刪除用戶資料庫 130

6.6資料庫的分離與附加 131

6.6.1分離資料庫 131

6.6.2附加資料庫 132

6.6.3使用T-SQL命令分離與

附加資料庫 134

6.7習題 135

第7章創建數據表與完整性約束 137

7.1數據類型 137

7.1.1數值數據類型 137

7.1.2日期數據類型 139

7.1.3字元與位串流數據類型 140

7.1.4其他數據類型 142

7.1.5用戶自定義數據類型 143

7.2數據表的創建 143

7.2.1使用ManagementStudio

創建數據表 144

7.2.2使用T-SQL命令

創建數據表 146

7.2.3創建計算列 148

7.2.4稀疏欄位的使用 149

7.3創建完整性約束 149

7.3.1約束的基礎 149

7.3.2創建PRIMARYKEY

約束 150

7.3.3創建CHECK約束 151

7.3.4創建數據表的關係性 152

7.4修改與刪除數據表 155

7.4.1修改數據表名稱 156

7.4.2修改數據表欄位 156

7.4.3修改約束 157

7.4.4刪除數據表 158

7.5創建SQLServer資料庫

關係圖 159

7.6臨時表的創建 161

7.7習題 162

第8章SELECT語句的基本查詢 163

8.1SELECT查詢命令 163

8.2SELECT子句 164

8.2.1數據表的欄位 164

8.2.2欄位別名 166

8.2.3計算值欄位 166

8.2.4刪除重複記錄 168

8.2.5查詢前幾筆記錄 169

8.3FROM子句 170

8.4WHERE子句 170

8.4.1比較運算符 171

8.4.2邏輯運算符 172

8.4.3算術運算符 178

8.5聚合函式的摘要查詢 179

8.5.1COUNT()函式 179

8.5.2AVG()函式 180

8.5.3MAX()函式 181

8.5.4MIN()函式 181

8.5.5SUM()函式 182

8.6分組查詢GROUPBY子句 183

8.6.1GROUPBY子句 183

8.6.2HAVING子句 184

8.6.3WITHROLLUP和

WITHCUBE 185

8.6.4GROUPINGSETS子句 187

8.7排序ORDERBY子句 187

8.8習題 189

第9章SELECT語句的高級查詢 191

9.1SQL的多數據表查詢 191

9.2連線查詢 192

9.2.1連線查詢的種類 192

9.2.2內連線查詢 194

9.2.3外連線查詢 198

9.2.4交叉連線查詢 201

9.3集合運算查詢 202

9.3.1集合運算查詢的種類 202

9.3.2UNION並集查詢 203

9.3.3INTERSECT交集查詢 204

9.3.4EXCEPT差集查詢 204

9.4子查詢 205

9.4.1子查詢的基礎 205

9.4.2比較運算符的子查詢 206

9.4.3邏輯運算符的子查詢 206

9.5T-SQL高級查詢技巧 210

9.5.1OFFSET和FETCHNEXT的

分頁查詢 210

9.5.2NULL空值的處理 212

9.5.3CTE一般數據表表達式 213

9.6使用ManagementStudio設計

SQL查詢 216

9.6.1使用查詢設計工具 216

9.6.2編寫數據表的腳本 220

9.7習題 221

第10章新增、更新和刪除數據 223

10.1使用ManagementStudio

編輯記錄數據 223

10.2新增記錄 225

10.2.1INSERT命令 225

10.2.2行構造器 227

10.2.3INSERT/SELECT

命令 227

10.2.4SELECTINTO命令 228

10.3更新記錄 229

10.3.1UPDATE命令 229

10.3.2在UPDATE命令

使用子查詢 230

10.3.3合併更新 231

10.4刪除記錄 232

10.4.1DELETE命令 232

10.4.2子查詢與合併刪除 233

10.4.3TRUNCATETABLE

命令 234

10.5MERGE命令 235

10.6DML命令的OUTPUT

子句 238

10.7習題 240

第11章視圖的創建 241

11.1視圖基礎 241

11.1.1SQLServer視圖 241

11.1.2視圖的種類 242

11.1.3視圖的優缺點 242

11.2創建視圖 243

11.2.1使用ManagementStudio

創建視圖 243

11.2.2使用T-SQL命令

創建視圖 246

11.2.3從其他視圖創建視圖 251

11.3修改與刪除視圖 251

11.3.1修改視圖 251

11.3.2刪除視圖 253

11.4編輯視圖的內容 254

11.4.1在視圖中添加記錄 255

11.4.2在視圖中更新記錄 256

11.4.3在視圖中刪除記錄 257

11.5習題 258

第12章規劃與創建索引 259

12.1索引基礎 259

12.1.1索引簡介 260

12.1.2索引的種類 260

12.1.3M路搜尋樹與B樹 261

12.1.4SQLServer的

索引結構 262

12.2數據表的索引規劃 263

12.2.1索引的優缺點 264

12.2.2創建索引的注意事項 264

12.2.3選擇索引欄位 265

12.3SQLServer自動創建的

索引 265

12.3.1PRIMARYKEY欄位的

索引 265

12.3.2UNIQUE欄位的索引 267

12.4創建數據表的索引 267

12.4.1使用ManagementStudio

創建索引 268

12.4.2使用T-SQL命令

創建索引 271

12.5修改、重新生成與

刪除索引 272

12.5.1使用ManagementStudio

修改與重新生成數據表的

索引 272

12.5.2使用T-SQL命令修改與

重新生成索引 274

12.5.3刪除數據表的索引 275

12.6查看SQLServer的

執行計畫 275

12.7創建視圖與計算列的

索引 276

12.7.1創建計算列的索引 276

12.7.2創建視圖索引 278

12.8篩選索引與列存放區

索引 281

12.8.1篩選索引 281

12.8.2列存放區索引 282

12.9習題 284

第13章Transact-SQL程式設計 285

13.1Transact-SQL語言基礎 285

13.1.1Transact-SQL

資料庫語言 286

13.1.2Transact-SQL

腳本檔案 286

13.2批處理的使用 287

13.2.1批處理的基礎 287

13.2.2使用GO命令

定義批處理 287

13.3批註與自定義信息 288

13.3.1批註 288

13.3.2PRINT命令輸出

自定義信息 289

13.3.3USE命令轉換資料庫 289

13.4變數的聲明與使用 290

13.4.1聲明變數與變數初值 290

13.4.2指定變數值 291

13.4.3變數的範圍 295

13.4.4SQLServer的

系統函式 295

13.5表達式與運算符 296

13.5.1運算符的優先權 296

13.5.2T-SQL的運算符 297

13.5.3簡潔的T-SQL表達式 298

13.5.4類型轉換運算符 299

13.6流程控制結構 299

13.6.1BEGIN/END命令塊 300

13.6.2IF/ELSE條件

控制命令 300

13.6.3RETURN中斷

查詢命令 302

13.6.4CASE多條件函式 303

13.6.5WHILE循環控制 305

13.6.6GOTO跳轉至

指定標籤 307

13.6.7WAITFOR暫停執行 308

13.6.8IIF與CHOOSE函式 309

13.7錯誤處理 311

13.7.1錯誤處理結構 311

13.7.2使用RAISERROR()

函式產生錯誤信息 312

13.7.3THROW命令語句 314

13.8生成SQLServer腳本 315

13.8.1編寫資料庫的腳本 315

13.8.2生成SQLServer

腳本嚮導 317

13.9習題 320

第14章存儲過程與序列對象 321

14.1存儲過程基礎 321

14.1.1存儲過程簡介 321

14.1.2存儲過程的優點 322

14.2創建與執行存儲過程 323

14.2.1創建存儲過程 323

14.2.2執行存儲過程 325

14.2.3創建臨時存儲過程 327

14.3存儲過程的參數傳遞 328

14.3.1創建擁有參數的

存儲過程 328

14.3.2默認值參數 330

14.3.3嵌套調用 331

14.4存儲過程的返回值 332

14.4.1使用RETURN

關鍵字 332

14.4.2使用OUTPUT

關鍵字 334

14.5修改與刪除存儲過程 335

14.5.1修改存儲過程 335

14.5.2刪除存儲過程 336

14.6系統存儲過程 336

14.7創建與使用序列對象 338

14.7.1創建序列對象 338

14.7.2使用序列對象 341

14.7.3修改與刪除序列對象 342

14.8習題 343

第15章自定義函式與數據游標 345

15.1自定義函式基礎 345

15.2創建自定義函式 346

15.2.1標量值函式 347

15.2.2內聯表值函式 349

15.2.3多語句數據表值函式 351

15.3自定義函式的使用 352

15.3.1使用在條件約束或

欄位屬性 352

15.3.2創建計算欄位 354

15.3.3使用在流程控制與

表達式 355

15.3.4替換視圖和臨時表 355

15.4修改與刪除自定義函式 356

15.4.1修改自定義函式 356

15.4.2刪除自定義函式 357

15.5使用數據游標 357

15.5.1數據游標的基礎 357

15.5.2使用數據游標的步驟 358

15.5.3數據游標的系統函式 361

15.5.4使用數據游標更新與刪除

數據 363

15.5.5數據游標變數與參數 365

15.6習題 366

第16章觸發器 367

16.1觸發器基礎 367

16.2DML觸發器 368

16.2.1創建DML觸發器 369

16.2.2DML觸發器與約束 371

16.2.3創建AFTER觸發器 372

16.2.4創建INSTEADOF

觸發器 376

16.2.5使用UPDATE()函式 379

16.3修改、禁用與刪除DML

觸發器 380

16.3.1修改觸發器 381

16.3.2禁用觸發器 382

16.3.3刪除觸發器 383

16.4DDL觸發器 383

16.5習題 384

第17章事務處理與鎖定 387

17.1事務基礎 387

17.1.1事務簡介 387

17.1.2事務狀態 388

17.1.3事務停止執行的原因 389

17.1.4事務的四大特性 390

17.2事務處理 390

17.2.1SQLServer的

事務模式 390

17.2.2T-SQL語言的

事務處理 391

17.2.3嵌套事務 393

17.2.4事務儲存點 394

17.3並發控制 395

17.3.1並發控制的三種問題 395

17.3.2並發控制機制 396

17.3.3事務的隔離性等級 397

17.4數據鎖定 398

17.4.1鎖定層級 399

17.4.2鎖定模式 399

17.4.3鎖定模式兼容性 400

17.5死鎖問題 401

17.5.1死鎖的基礎 401

17.5.2指定死鎖的優先權 401

17.5.3預防死鎖的程式技巧 401

17.6習題 402

第18章SQLServer客戶端

程式開發與LINQ 403

18.1資料庫程式設計基礎 403

18.1.1資料庫程式設計的

程式語言 403

18.1.2資料庫程式設計的

操作 404

18.2中間件與ADO.NET組件 404

18.2.1微軟的中間件 404

18.2.2ADO.NET的基礎 405

18.3VisualBasic創建客戶端

程式 407

18.3.1DataSet對象與數據

綁定 407

18.3.2事務處理 411

18.4LINQ基礎 416

18.5使用LINQtoSQL 417

18.5.1創建LINQtoSQL

項目 417

18.5.2實現LINQtoSQL 419

18.6LINQ查詢字句 421

18.6.1Select子句 422

18.6.2Where子句 422

18.6.3OrderBy子句 423

18.6.4Join子句 423

18.7習題 424

第19章FILESTREAM、FileTable

與XML 425

19.1FILESTREAM檔案

數據流 425

19.1.1FILESTREAM檔案

數據流的基礎 425

19.1.2啟用FILESTREAM檔案

數據流的支持 426

19.1.3創建FILESTREAM

檔案組 427

19.1.4創建FILESTREAM

數據表 428

19.1.5訪問FILESTREAM

數據 429

19.2FileTable檔案數據表 430

19.2.1FileTable檔案數據表的

基礎 430

19.2.2創建FileTable檔案

數據表 431

19.2.3在FileTable檔案數據表

新增數據 433

19.3使用XML數據類型 435

19.3.1創建擁有XML欄位的

數據表 436

19.3.2XML對象的相關方法 438

19.4XML查詢語言 439

19.4.1XPath語言 439

19.4.2XQuery語言 445

19.4.3XQuery基本語法 447

19.4.4XQuery的FLWOR

表達式 448

19.4.5XQuery的條件表達式 450

19.4.6XQuery函式 451

19.5XML-DML操作語言 452

19.5.1插入XML元素 452

19.5.2更新XML元素 453

19.5.3刪除XML元素 453

19.6習題 454

第20章SQLServer全文搜尋 455

20.1SQLServer全文搜尋概述 455

20.1.1全文搜尋的基礎 456

20.1.2SQLServer整合全文

搜尋架構 456

20.1.3啟用SQLServer的

全文搜尋 457

20.2全文目錄的創建 458

20.2.1使用ManagementStudio

創建全文目錄 458

20.2.2使用T-SQL命令創建

全文目錄 460

20.3創建全文索引 460

20.3.1使用ManagementStudio

創建全文索引 460

20.3.2使用T-SQL命令

創建全文索引 464

20.4修改與刪除全文目錄與

索引 465

20.4.1修改全文目錄 466

20.4.2修改與禁用全文索引 467

20.4.3刪除全文索引 468

20.4.4刪除全文目錄 469

20.5填充的使用 469

20.5.1在SQLServer中

執行填充 469

20.5.2創建填充計畫 471

20.6使用全文搜尋 473

20.6.1使用FREETEXT

執行搜尋 473

20.6.2使用CONTAINS

執行單詞搜尋 474

20.6.3全文檢索的符合

程度搜尋 477

20.7習題 479

相關詞條

熱門詞條

聯絡我們