IB/第 4 組/計算機科學/資料庫/基本概念
計算機儲存資料。資料可以是多種不同型別中的任何一種(例如數字、文字、布林值等),但對人類來說沒有內在含義。當資料被放到賦予其含義的上下文中時,它就變成了資訊。
例如:32 23 11 08 40 17 是資料,但它沒有任何意義。
如果我們為該資料提供一個上下文,它就變成了資訊,例如:
- 上週六 6 支足球隊的客場和主場得分
- 今天中午全球 6 個城市的攝氏度
- 最近 6 位經過巴黎埃菲爾鐵塔檢票口的人的年齡(歲)。
因此:資訊 = 資料 + 上下文
嚴格來說,資料庫儲存的是資料,而不是資訊。然而,術語通常被鬆散地使用,因為人們假設儲存在資料庫中並從資料庫中檢索的資料是在適當上下文中被人類解釋的。
"資訊系統(IS)是任何用於收集、組織、儲存和傳播資訊的組織系統。
"資訊系統(IS)是由相互作用以生成資訊的元件組成的群體。"[1]
"...資訊系統...由六個元件組成:硬體、軟體、資料、人員、網路和流程。"[2]
因此,資訊系統是一個比資料庫更廣泛的術語,因為它指的是一個完整的系統,儘管許多(如果不是大多數)資訊系統在其整體結構中包含一個或多個數據庫。
在不使用資料庫的情況下,會遇到幾個獨特的問題
1. 資料大小:在電子表格中儲存少量資料是可以管理的;但是,當資料變得很龐大時,電子表格解決方案就不可行了。如果資料記錄數達到數百萬,將資料儲存在多個電子表格中會導致速度問題,這使得查詢特定記錄非常耗時。
2. 更新資料的簡便性:多個使用者無法同時編輯同一個檔案。因此,其他人必須等待檔案變得可用才能更新,從而導致時間浪費。
3. 準確性:由於沒有內建資料驗證,因此電子表格或檔案中的資料輸入容易出錯。使用者可能會輸入錯誤的拼寫、日期或金額,這使得維護資料準確性變得具有挑戰性。
4. 安全性:儲存在文字檔案或電子表格中的資料無法得到充分保護。未經授權的使用者可以訪問和讀取資訊,這使得這些儲存方法不適合需要隱私的應用程式,例如銀行、醫療保健或薪資部門。
5. 冗餘:在使用文字檔案或電子表格時,資料重複是可能的。限制新增多個數據副本很困難,會導致準確性問題。管理和更新多個副本並不是一件容易的事。
6. 不完整的資料:由於缺乏驗證,某些資料可能不被認為重要,因此未輸入到檔案中。這會損害資料完整性。
為了避免與將資料儲存在文字檔案或電子表格中相關的上述問題,資料庫是必要的。
事務是對資料庫執行的一項工作單元。事務是按邏輯順序完成的一系列工作單元,無論是使用者手動執行的,還是由某種資料庫程式自動執行的。
事務是對資料庫進行的一個或多個更改的傳播。例如,如果你正在建立記錄、更新記錄或從表中刪除記錄,那麼你正在對該表執行事務。控制這些事務對於確保資料完整性和處理資料庫錯誤非常重要。
例如,為了確保在兩個帳戶之間轉移資金時資料的一致性,有必要完成兩個操作(借記一個帳戶並貸記另一個帳戶)。除非這兩個操作都成功執行,否則該事務將被回滾。
在資料庫的上下文中,一致性是指不能寫入會違反資料庫自身有效資料規則的資料。如果發生某些試圖引入不一致資料的事務,整個事務將被回滾,並向用戶返回錯誤。
資料完整性是指資料的整體完整性、準確性和一致性。這可以透過兩個例項之間或兩個資料記錄更新之間的更改不存在來表明,這意味著資料是完整的且未更改。資料完整性通常在資料庫設計階段透過使用標準程式和規則來強制執行。資料完整性可以透過使用各種錯誤檢查方法和驗證程式來維護。
事務包括在資料庫管理系統(或類似系統)中針對資料庫執行的一項工作單元,並以獨立於其他事務的連貫可靠的方式處理。
資料庫環境中的事務有兩個主要目的
1. 提供可靠的工作單元,允許從故障中正確恢復,並在系統故障的情況下保持資料庫一致性,即使在執行停止(完全或部分)並且對資料庫的許多操作仍未完成的情況下,其狀態也不清楚。
2. 在併發訪問資料庫的程式之間提供隔離。如果沒有提供這種隔離,程式的結果可能會有錯誤。
根據定義,資料庫事務必須是原子性的、一致性的、隔離的和持久的。
資料庫從業人員通常使用首字母縮略詞 ACID 來指代資料庫事務的這些屬性。
事務型資料庫是指一個 DBMS,其中對資料庫的寫事務能夠被回滾,如果它們沒有被正確完成(例如,由於電源或連線丟失)。
大多數現代關係資料庫管理系統都屬於支援事務的資料庫類別。
在資料庫系統中,事務可能包括一個或多個數據操作語句和查詢,每個語句和查詢都讀取和/或寫入資料庫中的資訊。
資料庫系統使用者認為資料的完整性和一致性非常重要。
簡單的交易通常以類似於以下模式的語言(如 SQL)釋出到資料庫系統,幷包含在交易中:
開始事務 執行一組資料操作和/或查詢 如果沒有錯誤發生,則提交事務並
結束它
如果發生錯誤,則回滾事務並結束它 如果在事務執行期間沒有發生錯誤,則系統將提交事務。
事務提交操作將應用事務範圍內的所有資料操作,並將結果持久化到資料庫中。
如果在事務期間發生錯誤,或者使用者指定了回滾操作,則事務內的資料操作不會持久化到資料庫中。
在任何情況下,都不能將部分事務提交到資料庫,因為這會導致資料庫處於不一致狀態。
在內部,多使用者資料庫通常使用事務 ID 或 XID 來儲存和處理事務。
除了上面記錄的簡單方法之外,還有多種不同的實現事務的方法。例如,巢狀事務是事務
包含在其中以啟動新事務(即子事務)的語句。多級事務是巢狀事務的一種變體,其中子事務發生在分層系統體系結構的不同級別(例如,資料庫引擎級別的一個操作,作業系統級別的一個操作)[2] 另一種型別的事務是補償事務。
併發控制是資料庫管理系統 (DBMS) 的一個概念,用於解決多使用者系統中可能出現的對資料同時訪問或修改的衝突。如果兩個或多個使用者嘗試同時更新資料庫內容,則會使用鎖和分割槽來阻止這種情況發生。從而實現更高的併發性。
ACID 代表
- 原子性 確保工作單元中的所有操作都成功完成。否則,事務將在故障點中止,並且所有先前操作將回滾到其先前狀態。
- 一致性 確保在成功提交事務後資料庫狀態會正確改變。
- 隔離性 使事務能夠獨立且透明地彼此執行。
- 永續性。 確保在發生系統故障的情況下,已提交事務的結果或影響會持續存在。
查詢功能 查詢是向資料庫表或表組合請求資料或資訊的請求。此資料可以作為結構化查詢語言 (SQL) 返回的結果生成,也可以作為圖形、圖表或複雜結果生成,例如來自資料探勘工具的趨勢分析。
ADD、DELETE UPDATE 都是可以對資料庫執行的功能
UPDATE 查詢用於修改表中現有的記錄。可以使用 WHERE 子句與 UPDATE 查詢一起更新選定的行,否則所有行都會受到影響。
資料驗證是一種確保使用者輸入的是他們想要輸入的方式,換句話說,確保使用者在輸入資料時不會出錯。... 驗證是對輸入資料進行檢查,以確保其符合系統的要求,從而避免資料錯誤。資料驗證是確保資料有效的過程。資料驗證規則用於資料驗證過程,以確保有效性。資料有效性大多指資料的意義和正確性。資料驗證是在原始文件上進行,而資料驗證是在副本上進行。這是資料驗證和資料驗證之間的主要區別。