国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用參照完整性來加強基本商業規則

2024-07-21 02:35:33
字體:
來源:轉載
供稿:網友

  對于數據庫系統來說,擁有一套執行基本商業規則的方法是非常重要的。假如一個事物元試圖插入,更新,或者刪除一個表格行,那么它就違反了商業規則,然后,數據庫必須拒絕這個事物元并在應用程序中做錯誤的標記。 雖然通過程序代碼來規范規則是可行的,但是假如有一個更加簡單的方法來執行那是最合人意了。因為表格可以通過SOL*PLUS和其他有效的方法來訪問,所以數據庫水平可以通過提供更好的解決方案來約束。
  
  Oracle提供了大量的約束完整性和數據庫的觸發器來幫助商業規則的治理。讓我們暫時先來探索一些約束完整性,然后再將焦點放到外碼的約束上,這個將是我們這篇文章的主要內容。
  
  參照完整性(RI)的規則確定了一對多和多對多的關系強迫在關系計劃中。另外,有效值同樣也被約束強迫。對于Web服務器應用程序來說,約束非凡重要,因為Web服務器答應約束在數據庫服務器中檢查發生,因此,它擔當了校對約束的任務。
  
  在Oracle表格中可以應用幾種類型的約束來規范數據的完整性,它包括:
  
  ·檢查約束:在行插入時間的時候,這個約束被有效的引入到列中。在檢驗region所有出現的地方時,需要使用一個應用程序來檢查是東,南,西,或者北,現在,將檢查約束加入到表格說來定義確保region欄的有效性。
  
  ·非空約束:這個約束被用作說明一個列中不包含一個空值。在SQL insert和update時間中這個是被強迫加入的。
  
  ·主碼約束:這個約束是用來確定表格的主碼。這個操作需要原來的列是唯一的,并且,Oracle將在目標主碼上創建一個唯一的索引。
  
  ·參考約束:這是外鍵約束由Oracle來完成。一個參考約束僅僅應用在SQL 的插入和刪除時間里。比如,一個一對多的關系存在于EMPLOYEE和DEPENDENT表格中,每個職工可能有許多相依靠的關系,但是每個關系僅僅屬于一個職工。這個參考約束在insert時間告訴Oracle在DEPENDENT.emp_num中的值必須和職員欄中的EMPLOYEE.emp_num相匹配,因此,在關系欄添加之前一定要確保有效職員存在。假如這個行依舊存在于DEPENDENT表格中,那么在SQL delete時間里參照約束可以用來確定職員不被刪除。
  
  ·唯一約束:這個約束確保表格中所有列的值不會出現在復寫條目中。
  
  注重唯一和主鍵的區別,它們都是創建一個唯一的索引,一個表格僅含有一個主鍵約束列,但是,它有可能在其他列中含有許多的唯一約束。
  
  外鍵約束
  參照完整性,外鍵約束確定了表格或者視圖的欄作為外鍵。這個外鍵欄和一個主鍵或者唯一鍵在另外一個表格中建立了直接的關系。這個表格包含的外鍵被引用做孩子,并且參考鍵被用做雙親表格。外鍵和參考鍵可以被用在同一個表格中。除此之外,雙親和子表必須在相同的數據庫中。
  
  下面是創建一個外鍵約束的語法:
  
  ALTER TABLE (table_name)
   ADD
    CONSTRAINT (foreign key constraint name)
    FOREIGN KEY
    ( field name )
    REFERENCES PRimary_table_name
    (primary_table_primary_index_field)
  
  雖然外鍵約束通常被用在應用程序編碼的場所來進行完整性的檢查,但是使用參考完整性的約束加入到I/O開銷中來執行insert和update操作是重要的。另外的I/O是可歸于外鍵必須使雙親表有效的事實。通過保證參考列表被檢索可使這個開銷最小,在大量的重載中,它在使先前的完整約束喪失能力重載和在重載完成后使約束恢復能力的過程中非常有用。一旦約束被激活,任何錯誤都可被紀錄和操作。
  
  參照完整性有時候需要雙重編碼。比如,在多重SQL*Form中,你也許不知道參照完整性是否違反了規則直到你將許多頁面放到表格中并且你的表格試圖提交的事物元的時候。在Web服務器應用程序中,你需要非常小心的保證Oracle事物元的安全。
  
  參照完整性
  一個數據庫系統要有能力執行商業規則。參照完整性是Oracle提供給商業規則的一個方法。有關系統答應商業規則利用約束來控制并參照完整性成了關聯表格的骨干。
  
  許多應用程序不使用外鍵參考完整性,它們利用應用程序代碼來執行商業規則。這個方法并不簡單因為應用表格可以通過其他的方法比如SQL*PLUS被訪問。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 山东省| 遂宁市| 蓬莱市| 长宁区| 岳普湖县| 红原县| 桐柏县| 东乌珠穆沁旗| 新乡县| 岳池县| 江华| 阿克| 湾仔区| 旬邑县| 格尔木市| 安仁县| 云和县| 湖口县| 佳木斯市| 灵丘县| 隆安县| 乌恰县| 肃宁县| 定结县| 宣城市| 库车县| 常德市| 汽车| 尤溪县| 禹城市| 茌平县| 陵川县| 隆尧县| 庆城县| 泸水县| 仙居县| 义马市| 湛江市| 达州市| 兖州市| 云安县|