数据库管理系统 数据异常
异常是指在对表执行的操作中发生的问题或不一致。导致异常发生的原因有很多,例如,当数据在数据库中多次不必要地存储时就会发生冗余数据存在的情况,或者当所有数据存储在单个表中时也会发生异常。规范化用于克服这些异常。不同类型的异常包括插入、删除和更新异常。
输入
所有三种异常使用相同的输入。
student
ID | Name | Age | Branch | Branch_Code | Hod_name |
---|---|---|---|---|---|
1 | A | 17 | Civil | 101 | Aman |
2 | B | 18 | Civil | 101 | Aman |
3 | C | 19 | Civil | 101 | Aman |
4 | D | 20 | CS | 102 | Monu |
5 | E | 21 | CS | 102 | Monu |
6 | F | 22 | Electrical | 103 | Rakesh |
通过这个表格,我们将展示不同异常的工作方式。
插入异常
当某些数据或属性在没有其他数据的存在时无法插入到数据库中时,称为插入异常。
例如,我们拿一个名为石油的分支来举例,现在除非我们插入一个就读于石油专业的学生,否则无法将关于石油的数据存储在表中。实际上,分支的存在并不依赖于学生的存在,也就是说我们必须有能力存储分支的数据,无论该分支是否有任何学生。但由于插入异常的存在,这是无法做到的。
代码
Insert into student values(7, ‘G’,16, ‘PETROLEUM’,104, ‘NAMAN’)#Values get inserted
Select * from Student;#Data selected
输出
ID | Name | Age | Branch | Branch_Code | Hod_name |
---|---|---|---|---|---|
1 | A | 17 | Civil | 101 | Aman |
2 | B | 18 | Civil | 101 | Aman |
3 | C | 19 | Civil | 101 | Aman |
4 | D | 20 | CS | 102 | Monu |
5 | E | 21 | CS | 102 | Monu |
6 | F | 22 | Electrical | 103 | Rakesh |
7 | G | 16 | Petroleum | 104 | Naman |
删除异常
如果我们从数据库中删除任何数据,同时也会删除所需的其他信息,那么就称为删除异常。
例如,假设一个电器专业的学生离开了,现在我们需要删除该学生的数据,但问题是,如果我们删除学生数据,那么与之相关的专业数据也会被删除,因为只有一个学生与专业数据相关联。
代码
Delete from STUDENT WHERE BRANCH= ‘ELECTRICAL’;#data get deleted
Select * from STUDENT;#data selected
输出
ID | Name | Age | Branch | Branch_Code | Hod_name |
---|---|---|---|---|---|
1 | A | 17 | Civil | 101 | Aman |
2 | B | 18 | Civil | 101 | Aman |
3 | C | 19 | Civil | 101 | Aman |
4 | D | 20 | CS | 102 | Monu |
5 | E | 21 | CS | 102 | Monu |
更新/修改异常
如果我们想要更新任何一条数据,那么我们必须同时更新所有其他副本,这属于插入异常。
例如,假设我们需要更改土木分部的系主任姓名,现在根据需求,只需要更改单个数据,但我们必须在每个其他部分更改数据,以确保表格的一致性。
步骤
- 步骤1 - 使用更新操作修改表格中的数据
-
步骤2 - 提供需要进行的更改
-
步骤3 - 提供执行任务的条件
-
步骤4 - 使用选择操作来检查输出
代码
Update STUDENT #Table selected to preform task
Set HOD_NAME= ‘RAHUL’#changes to be made
WHERE BRANCH= ‘CIVIL’;#condition given
Select * from STUDENT;#Data selected
输出
ID | Name | Age | Branch | Branch_Code | Hod_name |
---|---|---|---|---|---|
1 | A | 17 | Civil | 101 | Aman |
2 | B | 18 | Civil | 101 | Aman |
3 | C | 19 | Civil | 101 | Aman |
4 | D | 20 | CS | 102 | Monu |
5 | E | 21 | CS | 102 | Monu |
6 | F | 22 | Electrical | 103 | Rakesh |
结论
在本文中,我们解释了数据异常,其中一个表被取出,然后通过引用表来解释了不同的异常。第一个异常是插入,其中在没有其他数据的情况下限制插入。第二个异常是删除,其中删除任何数据都会导致其他有用的数据被删除。第三个异常是更新异常,其中每个副本都被更新,以便更新单个数据。