文章目錄
前言
有關數據庫原理與統計的筆記,內容爲書本的原文概括。
一、數據庫的4個基本概念
[1]. 數據(data)
數據是數據庫中存儲的基本對象,描述事物的符號記錄稱爲數據。
[2]. 數據庫(DataBase ,DB)
數據庫是存放數據的倉庫,是長期儲存在計算機內、有組織的、可共享的大量數據的集合。
數據庫中的數據按一定的數據模型組織、描述和儲存,具有較小的冗餘度、較高的數據獨立性和易擴展性,並可爲各種用戶共享。
數據庫的數據有永久存儲、有組織和可共享三個基本特點。
[3]. 數據庫管理系統(DataBase Management System,DBMS)
數據庫管理系統可以科學地組織和存儲數據,高效地獲取和維護數據。
數據庫管理系統是位於用戶和操作系統之間的一層數據管理軟件,和操作系統一樣是計算機的基礎軟件。
主要功能 | 介紹 |
---|---|
數據定義功能 | 數據庫管理系統提供數據定義語言DDL,用戶通過它可以方便地對數據庫中的數據對象的組成與結構進行定義。 |
數據組織、存儲和管理 | 數據庫管理系統需要分類組織、存儲和管理各種數據。需要確定相應的文件結構和存儲方式在存儲級上組織這些數據,實現數據之間的聯繫。其基本的目標是提高存儲空間利用率和方便存儲,提供多種存取方法來提高存取效率。 |
數據操縱功能 | 提供數據操縱語言DML,用戶可以使用它操縱數據,實現對數據庫的基本操作。 |
數據庫的事務管理和運行管理 | 數據庫在建立、運用和維護時由數據庫管理系統統一管理和控制,以保證事務的正確運行,保證數據的安全性、完整性、多用戶對數據的併發使用及發生故障後的系統恢復。 |
數據庫的建立和維護功能 | 數據庫的建立和維護功能包括數據庫初始數據的輸入、轉換功能,數據庫的轉儲、恢復功能,數據庫的重組織功能和性能監視、分析功能等。這些功能通常是由一些實用程序或管理工具完成的。 |
其他功能 | 包括數據庫管理系統與網絡中其他軟件系統的通信功能,一個數據庫管理系統與另一個數據庫管理系統或文件系統的數據轉換功能,異構數據庫之間的互訪和互操作功能等。 |
[4]. 數據庫系統(DataBase System,DBS)
數據庫系統是由數據庫、數據庫管理系統、應用程序和數據庫管理員組成的存儲、管理、處理和維護數據的系統。
二、數據管理技術的產生和發展
數據管理是指對數據進行分類、組織、編碼、存儲、檢索和維護,它是數據處理的中心問題。
數據的處理是指對各種數據進行收集、存儲、加工和傳播的一系列活動的總和。
數據庫管理技術經歷了人工管理、文件系統、數據庫系統三個階段。
背景 | 人工管理階段 | 文件系統階段 | 數據庫系統階段 |
---|---|---|---|
應用背景 | 科學計算 | 科學計算、數據管理 | 大規模數據管理 |
硬件背景 | 無直接存取存儲設備 | 磁盤、磁鼓 | 大容量磁盤、磁盤陣列 |
軟件背景 | 沒有操作系統 | 有文件系統 | 有數據庫管理系統 |
處理方式 | 批處理 | 聯機實時處理、批處理 | 聯機實時處理、分佈處理、批處理 |
特點 | 人工管理階段 | 文件系統階段 | 數據庫系統階段 |
---|---|---|---|
數據的管理者 | 用戶(程序員) | 文件系統 | 數據庫管理系統 |
數據面向的對象 | 某一應用程序 | 某一應用 | 現實世界 |
數據的共享程度 | 無共享,冗餘度極大 | 共享性差,冗餘度大 | 共享性高,冗餘度小 |
數據的獨立性 | 不獨立,完全依賴於程序 | 獨立性差 | 具有高度的物理獨立性和一定的邏輯獨立性 |
數據的結構化 | 無結構 | 記錄內有結構、整體無結構 | 整體結構化,用數據模型描述 |
數據控制能力 | 應用程序自己控制 | 應用程序自己控制 | 由數據庫管理系統提供數據安全性、完整性、併發控制和恢復能力 |
[1]. 人工管理階段
20世紀50年代中期以前,計算機主要用於科學計算。
硬件狀況
:外村只有紙帶、卡片、磁帶,沒有磁盤等直接存取的存儲設備。
軟件狀況
:沒有操作系統,沒有管理數據的專門軟件,數據處理方式是批處理。
特點 | 介紹 |
---|---|
數據不保存 | 當時計算機主要用於科學計算,一般不需要將數據長期保存,只是在計算某一課題時將數據輸入,用完就撤走。 |
應用程序管理數據 | 數據需要由應用程序自己設計、說明和管理,沒有響應的軟件系統負責數據的管理工作。應用程序中不僅要規定數據的邏輯結構,而且要設計物理結構,包括存儲結構、存取方法、輸入方式等。因此程序員負擔很重 |
數據不共享 | 數據是面向應用程序的,一組數據只能對應一個程序。當多個應用程序涉及某些相同的數據時必須各自定義,無法互相利用、互相參照,因此程序之間有大量的冗餘數據。 |
數據不具有獨立性 | 數據的邏輯結構或物理結構發生變化後,必須對應用程序做相應的修改,數據完全依賴於應用程序,稱之爲數據缺乏獨立性,加重了程序員的負擔。 |
[2]. 文件系統階段
20世紀40年代後期到60年代後期,硬件方面已有磁盤、磁鼓等直接存取存儲設備;軟件方面,操作系統中已經有了專門的數據管理軟件,一般稱爲文件系統;處理方式上不僅有了批處理,而且能夠聯機實時處理。
特點 | 介紹 |
---|---|
數據可以長期保存 | 由於計算機大量用於數據處理,數據需要長期保留在外存上反覆進行查詢、修改、插入和刪除等操作。 |
由文件系統管理數據 | 由專門的軟件即文件系統進行數據管理,文件系統把數據組織成相互獨立的數據文件,利用“文件名訪問,按記錄進行存取”的管理技術,提供了對文件進行打開與關閉、對記錄讀取和寫入等存取方式。 |
缺點 | 介紹 |
---|---|
數據共享性差,冗餘度大 | 在文件系統中,一個文件基本上對應一個應用程序,即文件仍然是面向應用的。當不同的應用程序具有部分相同的數據時,也必須建立各自的文件,而不能共享相同的數據,因此數據的冗餘度大,浪費存儲空間。同時由於相同數據的重複存儲、各自管理,容易造成數據的不一致性,給數據的修改和維護帶來了困難。 |
數據獨立性差 | 文件系統的文件是爲某一特定應用服務的,文件的邏輯結構是針對具體的應用來設計和優化的,因此想要對文件中的數據再增加一些新的應用會很困難。而且當數據的邏輯結構改變時,應用程序中文件結構的定義必須修改,應用程序中對數據的使用也要改變,因此數據依賴於應用於程序,缺乏獨立性。可見文件系統仍然是一個不具有彈性的無整體結構的數據集合,即文件之間是孤立的,不能反映現實世界事物之間的內在聯繫 |
[3]. 數據庫系統階段
20世紀60年代後期,爲解決多用戶、多應用共享數據的需求,使數據爲儘可能多的應用服務,數據庫技術便應運而生,出現了統一管理數據的專門軟件系統——數據庫管理系統。從文件系統到數據庫系統標誌着數據管理技術的飛躍。
三、數據庫系統的特點
[1]. 數據結構化
數據庫系統實現整體數據的結構化,這是數據庫的主要特徵之一,也是數據庫系統與文件系統的本質區別。
在文件系統中,文件中的記錄內部具有結構,但是記錄的結構和記錄之間的聯繫被固化在程序中,需要由程序員加以維護。這種工作模式既加重了程序員的負擔,又不利於結構的變動。
整體結構化是指數據庫中的數據不再僅僅針對某一個應用,而是面向整個組織或企業;不僅數據內部是結構化的,數據之間是具有聯繫的。
不僅要考慮某個應用的數據結構還要考慮整個組織的數據結構。
在數據庫系統中,記錄的結構和記錄之間的聯繫由數據庫管理系統維護,從而減輕了程序員的工作量,提高了工作效率。
在數據庫系統中,不僅數據是整體結構化的,而且存取數據的方式也很靈活,可以存取數據庫中的某一個或一組數據項、一個記錄或一組記錄;而在文件系統中,數據的存取單位是記錄,粒度不能細到數據項。
[2]. 數據的共享性高、冗餘度低且易擴充
數據庫系統從整體角度看待和描述數據,數據不再面向某個應用而是面向整個系統,因此數據可以被多個用戶、多個應用共享使用。
數據共享可以大大減少數據冗餘,節約存儲空間。數據共享還能避免數據之間的不相容性與不一致性。
所謂數據的不一致性是指同一數據不同副本的值不一樣。在數據庫中數據共享減少了由於數據冗餘造成的不一致現象。
由於數據面向整個系統,是有結構的數據,不僅可以被多個應用共享使用,而且容易增加新的應用,這結構化的數據就使得數據庫系統彈性大,已於擴充,可以使用各種用戶的要求。
可以選取整體數據的各種子集用於不同的應用系統,當應用需求改變或增加時,只要重新選取不同的子集或加上一部分數據便可以滿足新的需求。
[3]. 數據獨立性高
數據獨立性是藉助數據庫管理數據的一個顯著優點,包括數據的物理獨立性和邏輯獨立性
。
物理獨立性
:用戶的應用程序與數據庫中數據的物理存儲是相互獨立的。用戶程序不需要了解數據在數據庫中怎樣存儲是由數據庫管理系統管理的,應用程序僅需要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變時應用程序不用改變。
邏輯獨立性
:用戶的應用程序與數據庫的邏輯結構是相互獨立的。數據的邏輯結構改變時用戶程序也可以不變。
數據與程序的獨立把數據的定義從程序中分離出去,加上存取數據的方法又由數據庫管理系統負責提供,從而簡化了應用程序的編制,大大減少了應用程序的維護和修改。
[4]. 數據由數據庫管理系統統一管理和控制
數據庫的共享性將會帶來數據庫的安全隱患,而數據庫的共享是併發的共享。多個用戶可以同時存取數據庫中的數據,甚至可以同時存取數據庫中同一個數據,這又會帶來不同用戶間相互干擾的隱患,數據庫中數據的正確與一致也必須得到保障,所以數據庫管理系統需要提供相應的數據控制功能。
功能 | 介紹 |
---|---|
數據的安全性保護 | 數據的安全性是指保護數據以防止不合法使用造成的數據泄密和破壞。 每個用戶只能按規定對某些數據以某些方式進行使用和處理。 |
數據的完整性檢查 | 數據的完整性指數據的正確性、有效性和相容性。 完整性檢查將數據控制在有效的範圍內,並保證數據之間滿足一定的關係。 |
併發控制 | 當多個用戶的併發進程同時存取、修改數據庫時,可能會發生相互干擾而得到錯誤的結果或使得數據庫的完整性遭到破壞,因此必須對多用戶的併發操作加以控制和協調。 |
數據庫恢復 | 計算機系統的硬件故障、軟件故障、操作員的失誤以及故意破壞也會影響數據庫中數據的正確性,甚至造成數據庫部分或全部數據的丟失。數據庫管理系統必須具有將數據庫從錯誤狀態恢復到某一已知的正確狀態的功能,這就是數據庫的恢復功能。 |
[5]. 總結
數據庫是長期存儲在計算機內有組織、大量、共享的數據集合。它可以供各種用戶共享,具有最小冗餘度和較高的數據獨立性。數據庫管理系統在數據庫建立、運用和維護時對數據庫進行統一控制,以保證數據的完整性和安全性,並在多用戶同時使用數據庫時進行併發控制,在發生故障後對數據庫進行恢復。
數據庫系統的出現使信息系統從以加工數據的程序爲中心轉向圍繞共享的數據庫爲中心的新階段
。這樣既便於數據的集中管理,又能簡化應用程序的研製和維護,提高了數據的利用率和相容性,提高了決策的可靠性。