文章來源地址http://www.zghlxwxcb.cn/news/detail-412837.html
1.?1969年
1.1.?關(guān)系模型的創(chuàng)始人E.F. Codd(1923—2003)
1.1.1.?牛津大學數(shù)學專業(yè)
1.1.2.?一己之力奠定了關(guān)系模型的基礎(chǔ)
1.2.?論文《大型數(shù)據(jù)庫中關(guān)系存儲的可推導性、冗余與一致性》
2.?1970年
2.1.?權(quán)威學術(shù)雜志Communications of ACM
2.2.?Codd《大型共享數(shù)據(jù)庫的關(guān)系模型》
2.2.1.?數(shù)據(jù)庫中不再包含索引,字段間也沒有順序了
2.2.2.?第一次明確主張關(guān)系模型應(yīng)該在表現(xiàn)層放棄指針
2.2.3.?出現(xiàn)了范式的概念
3.?主要貢獻
3.1.?定義了關(guān)系運算(relational calculus)
3.1.1.?關(guān)系邏輯(relational logic)
3.2.?定義了關(guān)系代數(shù)(relational algebra)
3.2.1.?包含選擇、投影、并、交等8種運算
3.2.2.?輸入和輸出都是關(guān)系
3.3.?采用謂詞邏輯作為數(shù)據(jù)庫操作的基礎(chǔ)
3.3.1.?謂詞邏輯已經(jīng)成為了邏輯學的標準
4.?阻抗不匹配
4.1.?面向?qū)ο笳Z言和關(guān)系數(shù)據(jù)庫不一致的問題
5.?為什么叫它關(guān)系模型,而不叫它表(tabular)模型
5.1.?關(guān)系中不允許存在重復的元組(tuple),而表中可以存在
5.2.?關(guān)系是通常說的不允許存在重復元素的集合,而表是多重集合(multiset)
5.3.?關(guān)系中的元組沒有從上往下的順序,而表中的行有從上往下的順序
5.4.?關(guān)系中的屬性沒有從左往右的順序,而表中的列有從左往右的順序
5.5.?關(guān)系中所有的屬性的值都是不可分割的,而表中列的值是可以分割的
5.6.?關(guān)系中的屬性滿足第一范式,而表中的列不滿足第一范式
6.?術(shù)語對應(yīng)關(guān)系
正式的關(guān)系模型術(shù)語 | 非正式的日常用語 |
關(guān)系(relation ) | 表(table ) |
元組(tuple ) | 行(row )或記錄(record ) |
勢(cardinality ) | 行數(shù)(number of rows ) |
屬性(attribute ) | 列(column )或字段(field ) |
度(degree ) | 列數(shù)(number of columns ) |
定義域(domain ) | 列的取值集合(pool of legal values ) |
6.2.?關(guān)系模型是以數(shù)學中的集合論為基礎(chǔ)的,因此沿用了集合論的一些術(shù)語
6.3.?定義域是關(guān)系模型在誕生之際就存在的一個重要的關(guān)鍵詞
6.4.?如果無法確定定義域的話,關(guān)系就無法確定了
6.5.?SQL-92標準終于增加了定義域這一功能
7.?關(guān)系的定義
7.1.?R ?(D1×D2×D3 · · · ×Dn)
7.1.1.?關(guān)系R是定義域D1, D2, …, Dn的笛卡兒積的子集
7.1.2.?笛卡兒積是指“使用各個屬性的定義域生成的組合數(shù)最多的集合”
7.2.?關(guān)系用符號R表示,屬性用符號Ai表示,屬性的定義域用符號Di表示
7.3.?元組個數(shù)為0的關(guān)系也是滿足定義的
8.?關(guān)系值和關(guān)系變量
8.1.?值(value)和變量(variable)是很容易混淆的概念
8.2.?一般提到“關(guān)系”這個詞時,如果不加特殊說明,指的都是“關(guān)系變量”
8.3.?關(guān)系值指的是關(guān)系變量在某一時刻取的值
8.3.1.?值就是變量的時間切片(time-slice)
9.?關(guān)系的關(guān)系
9.1.?在邏輯上是可能存在的
9.2.?為此必須定義能夠使定義域包含關(guān)系的謂詞,而且如果再考慮對關(guān)系的量化,就需要實現(xiàn)二階謂詞邏輯,因此實現(xiàn)“關(guān)系的關(guān)系”非常困難
9.3.?包含關(guān)系的列(屬性)叫作關(guān)系值屬性(relation-valued attribute)
9.4.?標準SQL語言已經(jīng)支持了數(shù)組類型和集合類型的變量
9.5.?關(guān)系模型正朝著能夠處理復合型數(shù)據(jù)的方向發(fā)展
9.6.?C.J. Date等人斷言:真正的關(guān)系系統(tǒng)就是支持關(guān)系值等全部復合型數(shù)據(jù)的系統(tǒng)
10.?封閉性
10.1.?closure property
10.2.?運算的輸入和輸出都是關(guān)系
10.3.?保證關(guān)系世界永遠封閉
10.4.?關(guān)系的封閉性與UNIX中管道的概念很像
10.5.?在UNIX系統(tǒng)中
10.5.1.?從設(shè)備到控制臺,一切都可以當作“文件”來處理
10.5.2.?設(shè)備只不過是/dev目錄下的一個普通文件而已
10.5.3.?這也是UNIX系統(tǒng)追求文件的封閉性的結(jié)果
10.5.3.1.?“泛文件主義”
10.5.3.2.?“一切皆文件主義”
11.?集合類型
11.1.?群(group):對加法和減法(或者乘法和除法)封閉
11.2.?環(huán)(ring):對加法、減法、乘法封閉
11.3.?域(filed):對加法、減法、乘法、除法封閉,即可以自由進行四則運算
11.4.?這些對某種運算封閉的集合在數(shù)學上稱為“代數(shù)結(jié)構(gòu)”
11.5.?布爾值的集合{true, false} 也是域
11.5.1.?如果想要強調(diào)布爾型的域的特征,可以稱為布爾域
11.6.?關(guān)系可以理解為“能自由進行四則運算的集合”
11.6.1.?關(guān)系支持加法(UNION)運算和減法(EXCEPT)運算,因此滿足群的條件
11.6.2.?關(guān)系還支持相當于乘法運算的CROSS JOIN,所以也滿足環(huán)的條件
11.6.3.?關(guān)系中沒有除法運算符,所以不滿足域的條件
11.6.4.?除法運算的定義是有的。因此,關(guān)系也滿足域的條件
文章來源:http://www.zghlxwxcb.cn/news/detail-412837.html
到了這里,關(guān)于讀SQL進階教程筆記11_關(guān)系數(shù)據(jù)庫基礎(chǔ)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!