官术网_书友最值得收藏!

1.1 數據庫概述

數據庫是一種按照某種類型結構形式來組織、存儲和管理數據的存儲空間,數據庫中存在大量的數據集合體,數據集合體可以長期存儲在計算機內以實現信息共享、高效存取等操作,同時數據集合體之間受數據庫系統機制的相關約束。

1.1.1 數據庫發展歷程

數據庫經過半個多世紀的發展,從概念的提出到早期的數據庫模型,再到流行至今的關系型數據庫,發展速度非常迅速,各類新技術層出不窮,規模與使用量也越來越大,在信息技術領域占據核心位置。總的來說數據庫的發展可分為人工管理階段、文件系統階段、數據庫系統階段。

1.1.1 數據庫發展歷程

(1)人工管理階段

在現代意義的數據庫出現之前,人們通過人工和文件系統的方式來存儲、管理數據。在人工管理階段,人們常使用穿孔紙帶來管理數據,雖然穿孔紙帶不具備電子化特征,不能被稱為數據庫,但其代表著人們在數據存儲結構上思考和實踐的結果,是數據庫發展的預備階段。

(2)文件系統階段

隨著數據量的增多以及計算機技術、存儲技術的快速發展,穿孔紙帶這一紙質存儲媒介很快就被磁盤、磁鼓等磁性存儲設備所取代。在軟件方面,操作系統中也出現了專門管理數據的軟件,被稱為文件系統。

文件系統可以說是最早的數據庫了,操作系統提供的文件管理方法使得程序可以通過文件名來訪問文件中的數據,不必再尋找數據的物理位置。相較于手工處理的方式,文件系統使管理數據變得簡單一些,不需要再翻來覆去地查找文件的位置,但是文件內的數據仍然沒有組織起來,程序員需要嘗試構造出數據與數據的關系,再編寫代碼才能從文件中提取關鍵數據。除數據結構和數據關系不完整的問題外,此時的數據只面向某個應用或者某個程序,數據的共享性也有一定的問題。

(3)數據庫系統階段

雖然文件系統的出現,使得數據可以長期保存,但仍然存在共享能力差、數據不具獨立性等缺點。隨著數據量的增長以及企業對數據共享的要求越來越高,人們開始提出數據庫管理系統(Database Management System,DBMS)的概念,對數據模型展開了更深層次的思考。

20世紀60年代后期以來,隨著計算機管理的對象規模越來越大,應用范圍也越來越廣泛,數據量急劇增長,同時多種應用、多種語言互相覆蓋共享數據集合的要求越來越強烈,數據庫技術便應運而生,出現了統一管理數據的專門軟件系統——數據庫管理系統。

在最近的幾十年里,數據庫的發展更是突飛猛進,并衍生出了各種各樣的類型,適用于不同業務場景的數據庫系統,例如:關系型數據庫、圖形數據庫、對象數據庫、文檔數據庫等。

1.1.2 數據庫系統構成

數據庫系統(Database System,DBS)一般由4部分組成,分別是數據、硬件、軟件、人員,各個部分之間相互協作,共同支撐起整個數據庫管理系統各種復合功能,其組成結構如圖1-1所示。

圖1-1 數據庫系統組成結構

(1)數據

數據是指長期存儲在計算機內的、有組織、可共享的數據集合。數據庫中的數據按一定的數學模型組織、描述和存儲,具有較小的冗余,較高的數據獨立性和易擴展性,并可為不同用戶共享。數據作為一種資源是數據庫系統中最穩定的部分,即使在硬件更新,甚至在軟件更新的情況下,只要存儲介質有效,數據也將是長期存在的。

(2)硬件

數據庫系統的硬件包括計算機的主機、鍵盤、顯示器和外圍設備,例如打印機、硬盤、光盤機、磁帶機等。由于一般數據庫系統所存放和處理的數據量很大,加之DBMS豐富的功能軟件,使得自身所占用的存儲空間很大,因此整個數據庫系統對硬件資源提出了很高的要求。

(3)軟件

軟件包括數據庫管理系統及應用程序,DBMS是數據庫系統的核心軟件,它在操作系統的支持下工作,解決如何科學地組織和存儲數據,如何高效獲取和維護數據的系統軟件,其主要功能包括數據定義功能、數據操縱功能、數據庫的運行管理和數據庫的建立與維護等。

(4)人員

數據庫系統的相關人員,主要有4類。

第一類為數據庫設計人員,負責數據庫中數據的確定、數據庫各級模式的設計。

第二類為應用程序員,負責編寫使用數據庫的應用程序,這些應用程序可對數據進行檢索、建立、刪除或修改。

第三類為最終用戶,他們利用系統的接口或查詢語言訪問數據庫。

第四類為數據庫管理員(Database Administrator,DBA),負責數據庫的總體信息控制。數據庫管理員的職責通常包括以下幾點:維護數據庫中的信息內容和結構,制定數據庫的存儲結構和存取策略,定義數據庫的安全性要求和完整性約束條件,監控數據庫的使用和運行,負責數據庫的性能改進、數據庫的重組和重構,以提高系統的性能。

1.1.3 數據庫基礎概念

數據集是數據庫中最核心的要素,也是基本的操作對象,在數據庫中以數據表的形式來組織和管理數據,以各種數據類型來定義數據在計算機中的存儲格式,以主外鍵的方式來標識數據表中信息的唯一性及關聯性,以SQL語言來檢索、存取數據集。

1.SQL語言

SQL語言是結構化查詢語言(Structured Query Language)的簡稱,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。SQL是一種綜合的、通用的、功能極強的關系數據庫語言。

1974年,Boyce和Chamberlin提出SQL語言的實現思想,并隨后在IBM公司研制的關系數據庫系統上實現。由于它具有功能豐富、使用方便靈活、語言簡潔易學等突出的優點,深受計算機業界和計算機用戶的歡迎。

SQL語言核心部分的原理是關系代數學,具有數據定義、數據操縱和數據控制的功能,包含6大語言模塊。

(1)數據查詢語言(Data Query Language,DQL)

數據查詢語言用于從表中獲得數據,確定數據怎樣在應用程序給出。SELECT命令是所有SQL操作中使用最頻繁的命令,除此外還包含WHERE、ORDER BY、GROUP BY、HAVING等操作命令。

(2)數據操作語言(Data Manipulation Language,DML)

數據操作語言規定了對數據表的寫操作語句,包括動詞INSERT、UPDATE、DELETE,分別用于對數據表中記錄的添加、修改和刪除操作。數據操作語言只能操作表中的數據記錄,不能變更表的列字段結構。

(3)事務控制語言(Transaction Control Language,TCL)

事務控制語言規定了對數據表的事務控制操作語句,可確保數據表中記錄更新的實時性與準確性,通過COMMIT、SAVEPOINT、ROLLBACK等操作命令來保證數據表中數據的完整性。

(4)數據控制語言(Data Control Language,DCL)

數據控制語言規定了對表的權限控制操作語句,包括動詞GRANT、REVOKE,以控制外部用戶以及用戶組對數據庫對象的訪問,在某些關系型數據庫管理系統中可實現對數據表中單個列的訪問控制。

(5)數據定義語言(Data Definition Language,DDL)

數據定義語言規定了對表的構建操作語句,包括動詞CREATE、ALTER、DROP,以實現在數據庫環境中創建數據表、修改表結構、刪除表結構等,添加索引等與數據表相關的構建操作。

(6)指針控制語言(Cursor Control Language,CCL)

指針控制語言規定了SQL語句在宿主語言程序中的使用規則,是SQL語言的分類之一。指針控制語言包含了DECLARE CURSOR、FETCH INTO、UPDATE WHERE CURRENT等語句,用于對一個或多個表中單獨行的操作。

2.數據表

數據表是數據庫中主要的數據存儲容器,表中的數據被組織成行和列。表中的每一列代表一種屬性數據,稱為字段,表中每列均有一個名稱為數據表的字段名稱,每列都具有一個指定的數據類型和容量大小。表中的一行代表一條信息數據,與Excel表格中的一行數據類似。如果從用戶的角度來看,數據表的邏輯結構就是一張平面的二維表,包含縱向坐標(列)與橫向坐標(行)兩部分。

如圖1-2所示,在數據表結構形式中,最上面的一行是數據表的字段名稱,從第二行開始即為數據表中相關記錄,每一行代表一條完整的數據記錄,數據表中的每一列,除最上面的字段名稱外,均為表中的一個數據列,代表這個字段在每一行記錄中的數據值。

圖1-2 數據表的結構形式

3.數據類型

數據類型是數據表中數據種類的定義,代表了不同的信息類型,數據類型決定了數據在磁盤中的存儲格式。一般來說,數據庫中的數據類型有數值類型(INTEGER、FLOAT、DOUBLE等)、日期類型(YEAR、DATE、DATETIME、TIMESTAMP等)、字符類型(CHAR、VARCHAR、TEXT等)。

圖1-3描述了一個數據表的各字段的相關數據類型,可以看到每個字段均需要聲明一個數據類型屬性,如“user_id”字段聲明為“INTEGER”類型數據,“user_name”“pass_word”“email”“phone”等字段則聲明為“VARCHAR”類型數據。

圖1-3 數據表中字段的數據類型

主站蜘蛛池模板: 尚志市| 盖州市| 麟游县| 利川市| 平远县| 双柏县| 清涧县| 陵川县| 石景山区| 滁州市| 鄱阳县| 兴国县| 南阳市| 日照市| 梨树县| 四子王旗| 拜泉县| 乌拉特中旗| 柞水县| 兴仁县| 天等县| 长沙市| 徐州市| 青浦区| 淳化县| 临沧市| 浏阳市| 台州市| 宿州市| 屏边| 苏尼特左旗| 锦屏县| 岳池县| 安庆市| 天水市| 蕉岭县| 丹寨县| 池州市| 九龙城区| 汾西县| 正阳县|