2013-09-23 95 views
1

我正在嘗試學習Oracle數據庫中的規範化,但在理解規範化是解決方案的問題時感到困難,即我無法正確理解不同的異常(插入,刪除和更新)。不是,我對他們一無所知。我從我的教科書中瞭解了理論(Navathe & Elmsari)。異常是這些過程中在數據庫中引發的問題,並導致數據庫不一致。但是我無法正確地想象它,即如何在數據庫中引入異常。因此,如果有人提出一個非常簡單的數據庫示例並幫助我理解數據庫中如何引入這些異常,這將非常有幫助。我試圖在網上找到,但找不到好的例子。如何將異常(插入,刪除和更新)引入到Oracle數據庫中?

回答

4

enter image description here

click here for full image

從數據冗餘處於未歸一化的數據庫表而產生的問題被統稱爲更新異常。因此,任何數據庫插入,刪除或修改都會導致數據庫處於不一致狀態,因此導致更新異常。它們被分類爲

插入異常:要插入上面顯示的位於分支B1到Tbl_Staff_Branch表的工作人員的一個新成員的詳細信息,我們必須進入分支numner B1的正確細節,使分支細節與其他行中分支B1的值一致。 要將當前沒有員工成員的新分支的詳細信息插入到Tbl_Staff_Branch表中,必須輸入空值以便員工詳細信息不被允許,因爲staffID是主鍵。但是,如果將Tbl_Staff_Branch(第二範式(2NF))正常化爲第三正常宿舍(3NF),則最終會得到Tbl_Staff和Tbl_Branch,並且不應該有上述問題。

刪除異常:如果刪除,表示位於該分行的工作人員的最後一個成員的Tbl_Staff_Branch表中的一行,(對於例如,行與分行號B」,B3或B4)關於該分支的detals是還從數據庫丟失

修改異常:我們應該需要更改Tbl_Staff_Branch表中特定分支的地址,我們必須更新位於該分行全體員工的行。如果這種修改不進行。在所有相關行中,數據庫將變得不一致。

瞭解更多:http://www.mahipalreddy.com/dbdesign/dbqa.htm#update

相關問題