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