【数据库系统】再谈关系模型和关系型数据库
關(guān)系模型是簡(jiǎn)潔的,它的簡(jiǎn)潔性源自集合論,這既是優(yōu)點(diǎn)也是缺點(diǎn)。
數(shù)學(xué)的基礎(chǔ)使得關(guān)系模型是描述性而不是過程性的,用戶需要聲明想要從數(shù)據(jù)庫(kù)中得到什么而不是怎樣找到這些信息,RDBMS知道該怎么去做。
問題變得復(fù)雜時(shí),簡(jiǎn)單的事情也會(huì)變得復(fù)雜。解決復(fù)雜問題并沒有簡(jiǎn)單的方法,只能用復(fù)雜的機(jī)制,如復(fù)雜的基本類型。
通過對(duì)比ODB或ORDB的基本類型,RDB不支持:對(duì)象類型及其相關(guān)概念、結(jié)構(gòu)化類型、集合、引用,表的列只能是原子類型。
關(guān)系模型完全消除了用戶可見的所有表間的鏈接,而是通過比較各列的值來(lái)維護(hù)表間關(guān)系,遵循參照完整性約束。
關(guān)系表定義為固定列的集合,由行和列組成,行列交叉處的元素的值必須是不可分割和不重復(fù)的。
域定義了一個(gè)列可以取值的合法集,可以設(shè)置業(yè)務(wù)規(guī)則來(lái)約束列的取值。
只涉及單個(gè)列或域的簡(jiǎn)單規(guī)則可以在規(guī)則機(jī)制中定義,涉及多個(gè)表的復(fù)雜規(guī)則可以定義為參照完整性約束,定義業(yè)務(wù)規(guī)則的最佳機(jī)制是觸發(fā)器。
關(guān)系表中不允許有重復(fù)行,這是因?yàn)榧喜辉试S有相同元素。
盡管實(shí)際的RDBMS可以不設(shè)主鍵,可以容許有重復(fù)行,但是這沒有意義,因?yàn)镽DB不像ODB或ORDB那樣存在OID來(lái)區(qū)分對(duì)象。
外鍵的值要么為NULL要么必須與對(duì)應(yīng)的同一個(gè)或另一個(gè)表中的主鍵值相匹配。
參照完整性約束主要體現(xiàn)在外鍵和對(duì)應(yīng)的表的主鍵之間,二者需要對(duì)應(yīng)起來(lái)。
觸發(fā)器是一個(gè)小程序,用擴(kuò)展的SQL語(yǔ)句編寫,當(dāng)定義了觸發(fā)器的表發(fā)生修改操作時(shí)自動(dòng)觸發(fā),修改操作可以是insert、update、delete。
觸發(fā)器可以用
總結(jié)
以上是生活随笔為你收集整理的【数据库系统】再谈关系模型和关系型数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【离散数学】图的着色与对偶图
- 下一篇: 【数据结构与算法】实验 Dijkstra