SQL 與關係數據庫理論, 3/e (SQL and Relational Theory: How to Write Accurate SQL Code, 3/e)

Chris Date

買這商品的人也買了...

商品描述

本書從整體上進行了改編、擴展和提升。主題內容也有所延伸,
其中包括數據的類型與域、表的比較、映像關係、聚集作符與匯總、視圖更新以及子查詢。
還特別收錄了一個新附錄——NoSQL與關係理論。

本書涵蓋以下內容:

是否可以編寫SQL查詢找到在公司每個編程部門都至少工作過一次的員工?
你是否可以確保查詢的正確性?為什麼恰當的列命名非常重要?
數據庫中的null會帶來錯誤的答案。為什麼?你又能做什麼?
映像關係如何能幫助你表述複雜的SQL查詢?
雖然SQL支持“量化比較”,但是盡量不要使用。為什麼?怎樣才能避免使用?

作者簡介

Chris Date

在數據庫領域擁有舉足輕重的地位。
他出名的著作是《An Introduction to Database Systems》(Addison-Wesley)。
他在授業方面的能力也享有首屈一指的盛譽,他可以將復雜的主題用清晰易懂的方式解釋清楚。

目錄大綱

第一版前言.1
第二版前言.6
第三版前言.8
第1章做好準備.9
1.1對於關係模型的嚴重誤解10
1.2有關術語的一些說明11
1.3原理而非產品.13
1.4原始模型回顧.14
1.4.1結構特徵14
1.4.2完整性特徵17
1.4.3操作特徵.18
1.4.4示例.20
1.5模型與實現22
1.6關係的性質26
1.7基關係與導出關係30
1.8關係與關係變量32
1.9值與變量.34
1.10小結35
1.11練習題37
1.12練習題答案.38

第2章類型和域47
2.1類型和關係47
2.2相等性比較49
2.3數據值的原子性55
2.4類型是什麼?.58
2.5標量類型與非標量類型.62
2.6 SQL中的標量類型65
2.7 SQL中的類型檢查和隱式類型轉換.67
2.8 SQL中的字符序.69
2.9 SQL中的行類型和表類型71
2.10小結.73
2.11練習題74
2.12練習題答案.76

第3章元組、關係、行、表85
3.1元組是什麼85
3.2 SQL中的行90
3.3關係是什麼93
3.4關係及其主體.94
3.5關係是n維的96
3.6關係比較.96
3.7 TABLE_DUM與TABLE_DEE98
3.8 SQL中的表99
3.9 SQL中的列命名.101
3.10小結104
3.11練習題.104
3.12練習題答案106

第4章不要重複,不要null113
4.1重複有什麼問題?113
4.2重複:深入討論.118
4.3在SQL中避免重複.120
4.4 NULL有什麼問題?.122
4.5在SQL中避免NULL 126
4.6有關外連接的說明128
4.7小結129
4.8練習題.130
4.9練習題答案.135

第5章基關係變量和基表143
5.1更新是集合級別的145
5.1.1觸發操作146
5.1.2約束檢查146
5.1.3最後一點說明147
5.2關係賦值147
5.2.1 D_INSERT和I_DELETE148
5.2.2 SQL中的表賦值150
5.2.3賦值原理151
5.3關於候選鍵的更多內容152
5.4關於外鍵的更多內容.155
5.5關係變量和謂詞.159
5.6關係和類型.161
5.7練習題.164
5.8練習題答案.166

第6章SQL和關係代數I:原始運算符175
6.1預備知識175
6.2更多有關閉包的內容.179
6.3限制182
6.4投影183
6.5連接184
6.6並、交和差.189
6.6.1並189
6.6.2交192
6.6.3差192
6.7哪些運算符是基本的運算符?193
6.8逐步形成表達式.193
6.9關係表達式到底表示什麼?196
6.10計算表表達式197
6.11表達式變換198
6.12屬性名依賴202
6.13練習題.204
6.14練習題答案207

第7章SQL和關係代數II:附加運算符.217
7.1排他並.218
7.2半連接和半差219
7.3擴展221
7.4映像關係223
7.5除.227
7.6聚集運算符.229
7.7空實參234
7.8再議映像關係235
7.9匯總237
7.10再議匯總243
7.11分組、解組和關係值屬性246
7.11.1有RVA則無需外連接.248
7.11.2基關係變量中的RVA 250
7.11.3關係比較中RVA不可或缺251
7.11.4聚集運算符252
7.12 “WHAT IF”查詢252
7.13關於遞歸的說明254
7.14 ORDER BY是怎麼回事.259
7.15練習題.260
7.16練習題答案264

第8章SQL與約束.279
8.1類型約束280
8.1.1選擇運算符和THE_運算符281
8.1.2更多關於類型約束的討論283
8.2 SQL中的類型約束.284
8.3數據庫約束.285
8.4 SQL中的數據庫約束291
8.5事務293
8.6為什麼說數據庫約束必須立即檢查294
8.7不是有些檢查必須延遲進行嗎?.297
8.8約束與謂詞.299
8.9其他問題302
8.10練習題.304
8.11練習題答案308

第9章SQL與視圖.319
9.1視圖是關係變量.320
9.1.1互換性原理321
9.1.2關係常量323
9.2視圖和謂詞.324
9.3檢索運算325
9.4視圖和約束.327
9.5更新運算332
9.5.1 CHECK選項336
9.5.2關於SQL的更多內容.338
9.5.3 S JOIN P的示例.340
9.6視圖的作用.345
9.7視圖和快照.346
9.8練習題.348
9.9練習題答案.350

第10章SQL與邏輯.357
10.1為什麼需要邏輯358
10.2簡單命題和復合命題360
10.2.1聯結詞361
10.2.2關於交換性的說明.364
10.2 .3逆否命題.364
10.3簡單謂詞和復合謂詞366
10.4量詞化.368
10.5關係演算373
10.5.1關於區間變元的更多內容376
10.5.2更多樣例查詢.377
10.5.3樣例約束.379
10.6關於量詞化的更多內容381
10.6.1不必同時使用兩個量詞.381
10.6.2空區間383
10.6.3定義EXISTS和FORALL384
10.6.4其他量詞類型.385
10.7一些等價關係389
10.7.1關係完備性391
10.7.2一致性的重要性392
10.8小結393
10.9練習題.394
10.10練習題答案396

第11章使用邏輯表述SQL表達式.405
11.1一些變換法則406
11.2示例1:邏輯蘊涵409
11.3示例2:全稱量詞化409
11.4示例3:蘊涵和全稱量詞化411
11.5示例4:相關子查詢.413
11.6示例5:命名子表達式415
11.7示例6:關於命名子表達式的更多內容418
11.8示例7:處理模糊性.419
11.9示例8:使用COUNT.422
11.10示例9:連接查詢423
11.11示例10:唯一量詞化423
11.12示例11:ALL或ANY比較426
11.13示例12:GROUY BY和HAVING430
11.14練習題432
11.15練習題答案433

第12章關於SQL的其他主題437
12.1 SELECT *.438
12.2顯式表.438
12.3名稱限定439
12.4區間變元440
12.5子查詢.443
12.6 “可能非確定性”表達式446
12.7空集合.447
12.8簡化的BNF語法448
12.8.1表表達式.449
12.8.2布爾表達式451
12.9練習題.452
12.10練習題答案454

附錄A關係模型.457
附錄B SQL背離關係模型之處481
附錄C處理信息丟失的關係方法.485
附錄DT utorial D語法.503
附錄E本書建議匯總507
附錄F NoSQL與關係理論.511
附錄G深入閱讀建議523