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