如何将异常(插入,删除和更新)引入Oracle数据库?

时间:2013-09-23 13:54:38

标签: database oracle

我试图在Oracle数据库中学习规范化,但是理解了规范化是解决方案的问题,即我无法正确理解不同的异常(插入,删除和更新)。不是这样,我对他们一无所知;我从我的教科书(Navathe& Elmsari)那里学到了这个理论。异常是在这些过程中在数据库中引发的问题,并导致数据库不一致。但我无法正确地将其可视化,即如何在数据库中引入异常。因此,如果有人想出一个非常简单的数据库示例并帮助我理解如何在数据库中引入这些异常,那将非常有用。我试图在互联网上找到,但找不到好的例子。

1 个答案:

答案 0 :(得分:4)

Anamoly :难以分类

enter image description here

非规范化数据库表中的数据冗余导致的问题统称为更新异常。因此,任何使数据库处于不一致状态的数据库插入,删除或修改都会导致更新异常。它们被归类为

插入异常:要将位于分支B1的新员工的详细信息插入上面显示的Tbl_Staff_Branch表中,我们必须输入分支编号B1的正确详细信息,以便分支详细信息为与其他行中分支B1的值一致。 要将当前没有人员成员的新分支的详细信息插入到Tbl_Staff_Branch表中,必须为员工详细信息输入空值,因为staffID是主键,所以不允许这样做。但是如果你将Tbl_Staff_Branch标准化,它处于第二范式(2NF)到第三范式宿舍(3NF),你最终会得到Tbl_Staff和Tbl_Branch,你不应该遇到上面提到的问题。

删除异常:如果我们从Tbl_Staff_Branch表中删除一行代表位于该分支的员工的最后一名成员,(例如,分行编号为B",B3或B4的行)有关该分支的详细信息也会从数据库中丢失。

修改异常:如果我们需要更改Tbl_Staff_Branch表中特定分支的地址,我们必须更新位于该分支的所有人员的行。如果未对所有相关行执行此修改,则数据库将变得不一致。

了解详情:http://www.mahipalreddy.com/dbdesign/dbqa.htm#update