DBMS 中的資料異常


異常是指在對錶執行操作期間發生的錯誤或不一致性。異常可能有多種原因,例如,當資料在資料庫中被不必要地儲存多次(即存在冗餘資料)時發生,或者當所有資料都儲存在一個表中時發生。規範化用於克服異常。異常的不同型別有插入異常、刪除異常和更新異常。

輸入

相同的輸入用於所有三種異常。

學生

ID

姓名

年齡

專業

專業程式碼

系主任姓名

1

A

17

土木工程

101

阿曼

2

B

18

土木工程

101

阿曼

3

C

19

土木工程

101

阿曼

4

D

20

計算機科學

102

莫努

5

E

21

計算機科學

102

莫努

6

F

22

電氣工程

103

拉凱什

藉助此表,我們將展示不同異常的工作原理。

插入異常

當某些資料或屬性無法在沒有其他資料存在的情況下插入到資料庫中時,稱為插入異常。

例如,讓我們以石油工程專業為例,現在除非我們插入一個石油工程專業的學生,否則無法將有關石油工程專業的資料儲存到表中。實際上,專業的存不存在並不依賴於學生的存在,也就是說,我們必須能夠儲存專業的相關資料,無論該專業是否有學生,但這由於插入異常而無法實現。

程式碼

Insert into student values(7, ‘G’,16, ‘PETROLEUM’,104, ‘NAMAN’)#Values get inserted
Select * from Student;#Data selected

輸出

ID

姓名

年齡

專業

專業程式碼

系主任姓名

1

A

17

土木工程

101

阿曼

2

B

18

土木工程

101

阿曼

3

C

19

土木工程

101

阿曼

4

D

20

計算機科學

102

莫努

5

E

21

計算機科學

102

莫努

6

F

22

電氣工程

103

拉凱什

7

G

16

石油工程

104

納曼

刪除異常

如果我們從資料庫中刪除任何資料,並且任何其他所需的資訊也隨之被刪除,則稱為刪除異常。

例如,假設電氣工程專業的一名學生要離開,因此現在我們必須刪除該學生的資料,但問題是,如果我們刪除了學生資料,則專業資料也會隨之刪除,因為只有一個學生的資料包含了專業資訊。

程式碼

Delete from STUDENT WHERE BRANCH= ‘ELECTRICAL’;#data get deleted
Select * from STUDENT;#data selected

輸出

ID

姓名

年齡

專業

專業程式碼

系主任姓名

1

A

17

土木工程

101

阿曼

2

B

18

土木工程

101

阿曼

3

C

19

土木工程

101

阿曼

4

D

20

計算機科學

102

莫努

5

E

21

計算機科學

102

莫努

更新/修改異常

如果我們想要更新任何單個數據片段,則必須更新所有其他副本,這屬於插入異常。

例如,假設我們需要更改土木工程專業的系主任姓名,根據要求,只需要更改單個數據,但我們必須在其他所有地方更改資料,以避免表格不一致。

演算法

  • 步驟 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

姓名

年齡

專業

專業程式碼

系主任姓名

1

A

17

土木工程

101

阿曼

2

B

18

土木工程

101

阿曼

3

C

19

土木工程

101

阿曼

4

D

20

計算機科學

102

莫努

5

E

21

計算機科學

102

莫努

6

F

22

電氣工程

103

拉凱什

結論

在本文中,我們解釋了資料異常,其中獲取了一個表,然後根據該表解釋了不同的異常。第一個異常是插入異常,其中在沒有其他資料存在的情況下,插入操作受到限制。第二個異常是刪除異常,其中任何資料的刪除都會導致其他有用資料的刪除。第三個是更新異常,其中更新單個數據片段需要更新所有副本。

更新於: 2023年8月22日

9K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告