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

1.1 數據庫

為了讓讀者了解數據庫,需要先介紹數據庫系統、數據庫模型和數據庫語言。

1.1.1 數據庫系統

1. 數據庫

數據庫(DB)是存放數據的倉庫。這些數據存在一定的關聯,并按一定的格式存放在計算機上。從廣義上講,數據不僅包含數字,還包括文本、圖像、音頻、視頻等。

數據庫、數據庫系統

例如,把一個學校的學生、課程、學生成績等數據有序地組織并存放在計算機內,就可以構成一個數據庫。因此,數據庫是由一些持久的相互關聯的數據的集合組成,并以一定的組織形式存放在計算機的存儲介質中。數據庫是事務處理、信息管理等應用系統的基礎。

2. 數據庫系統

數據庫管理系統(DBMS)按一定的數據模型組織數據、管理數據庫。數據庫應用系統通過DBMS提供的接口操作數據庫,數據庫管理員(DBA)通過DBMS提供的界面管理操作數據庫。

數據、數據庫、數據庫管理系統與操作數據庫的應用程序,加上支撐它們的硬件平臺、軟件平臺和與數據庫有關的人員一起構成了一個完整的數據庫系統。圖1.1描述了數據庫系統的構成。

圖1.1 數據庫系統的構成

1.1.2 數據模型

數據模型是指數據庫管理系統中數據的存儲結構。數據庫管理系統根據數據模型對數據進行存儲和管理。

1. 常見的數據模型

常見的數據模型有:層次模型、網狀模型和關系模型。

(1)層次模型

層次模型是最早用于商品數據庫管理系統的數據模型。它以樹狀層次結構組織數據。樹形結構的每個節點表示一個記錄類型,記錄之間的聯系是一對多的。位于樹形結構頂部的節點稱為根節點,層次模型有且僅有一個根節點。根節點以外的其他節點有且僅有一個父節點。圖1.2所示為某學校按層次模型組織的數據示例。

圖1.2 某學校按層次模型組織的數據示例

層次模型結構簡單,容易實現,對于某些特定的應用系統效率很高,但如果需要動態訪問數據(如增加或修改記錄類型)時,效率并不高。另外,對于一些非層次性結構(如多對多聯系),層次模型表達起來比較煩瑣和不直觀。

(2)網狀模型

網狀模型可以看作是層次模型的一種擴展。它采用網狀結構組織數據,每個節點表示一個記錄類型,記錄之間的聯系是一對多的。一個節點可以有一個或多個父節點和子節點,這樣,數據庫中的所有數據節點就構成了一個復雜的網絡。圖1.3所示為按網狀模型組織的數據示例。

圖1.3 按網狀模型組織的數據示例

與層次模型相比,網狀模型具有更大的靈活性,更直接地描述現實世界,性能和效率也較好。網狀模型的缺點是結構復雜,用戶不易掌握。

(3)關系模型

關系模型是目前應用最多、最為重要的一種數據模型。關系模型建立在嚴格的數學概念基礎上,以二維表格(關系表)的形式組織數據庫中的數據,二維表由行和列組成。從用戶觀點看,關系模型是由一組關系組成的,關系之間通過公共屬性產生聯系。每個關系的數據結構是一個規范化的二維表,所以一個關系數據庫就是由若干個表組成的。圖1.4所示為按關系模型組織的數據示例。

圖1.4 按關系模型組織的數據示例

在圖中顯示的關系模型中,描述學生信息時使用的“學生”表涉及的主要信息有:學號、姓名、性別、出生時間、專業、總學分及備注。

表格中的一行稱為一個記錄,一列又稱為一個字段,每列的標題稱為字段名。如果給關系表取一個名字,則有n個字段的關系表的結構可表示為:關系表名(字段名1,……,字段名n),通常把關系表的結構稱為關系模式。

在關系表中,如果一個字段或幾個字段組合的值可唯一標識其對應記錄,則稱該字段或字段組合為碼。例如,學生的“學號”可唯一標識每一個學生,則“學號”字段為“學生”表的碼。有時一個表可能有多個碼,對于每一個關系表通常可指定一個碼為“主碼”,在關系模式中,一般用下畫線標出主碼。

設“學生”表的名字為XSB,關系模式可表示為:XSB(學號,姓名,性別,出生時間,專業,總學分,備注)。

從圖1.4可以看出,按關系模型組織數據表達方式簡潔、直觀,插入、刪除、修改操作方便,而按層次、網狀模型組織數據表達方式,操作比較復雜。因此,關系模型得到廣泛應用,關系型數據庫管理系統(RDBMS)成為主流。目前,比較流行的關系型數據庫管理系統包括SQL Server、Access、Oracle、Sybase、MySQL、DB2等。

SQL Server是由Microsoft公司開發的Windows平臺大中型關系數據庫管理系統。SQL Server版本從SQL Server 6.5、SQL Server 7.0、SQL Server 2000、SQL Server 2005、SQL Server 2008到SQL Server 2012、SQL Server 2014,SQL Server 2016也已經上市。本書主要介紹SQL Server 2016。

2. 其他數據模型

隨著信息管理內容的不斷擴展和新技術的層出不窮,數據庫技術面臨著前所未有的挑戰。面對新的數據形式,除了層次模型、網狀模型、關系模型,人們提出了豐富多樣的數據模型,例如面向對象模型、半結構化模型等。同時也提出了眾多新的數據庫技術(XML數據管理、數據流管理、Web數據集成、數據挖掘等)。

3. 流行關系數據庫產品

關系數據庫分為兩類:一類是桌面數據庫,另一類是客戶/服務器數據庫。

一般而言,桌面數據庫用于小型的、單機的應用程序,它不需要網絡和服務器,實現起來比較方便,但它只提供數據的存取功能。例如Access、FoxPro、Excel和dBase等。

客戶/服務器數據庫主要適用于大型的、多用戶的數據庫管理系統,包括兩部分:一部分駐留在客戶機上,用于向用戶顯示信息及實現與用戶的交互;另一部分駐留在服務器中,主要用來實現對數據庫的操作和對數據的計算處理。

例如,大型關系型數據庫管理系統一般為Oracle,SQL Server、DB2、Ingers、Informix和Sybase等。小型關系型數據庫管理系統一般為MySQL、PostgreSQL和SQLite。其中SQLite是一個強大的嵌入式關系型數據庫管理系統;MySQL是最流行的RDBMS;PostgreSQL是最先進SQL型開源objective-RDBMS。

在開發數據庫應用程序時,也可以將它們放在一臺計算機上進行調試,調試完成后再把數據庫放到服務器上。

1.1.3 關系型數據庫語言

關系型數據庫除了通過DBMS操作外,還可用關系型數據庫的標準語言——SQL(Structured Query Language,結構化查詢語言)操作。SQL語言是用于關系數據庫查詢的結構化語言,功能包括數據查詢、數據操縱、數據定義和數據控制4部分。

一般來說,關系型數據庫管理系統均支持SQL語言,但每家關系型數據庫管理系統都對SQL語言的功能進行了擴展。例如,SQL Server數據庫系統支持的是Transact-SQL(簡稱T-SQL),而Oracle數據庫所使用的SQL語言則是PL-SQL。所以,不同數據庫管理系統之間的SQL語言不能完全通用。

主站蜘蛛池模板: 祁连县| 西林县| 怀化市| 贺兰县| 福贡县| 钟山县| 磴口县| 长治市| 墨竹工卡县| 南丹县| 屯留县| 田阳县| 安多县| 东山县| 克拉玛依市| 郓城县| 嵩明县| 土默特左旗| 汶上县| 旺苍县| 恭城| 嘉兴市| 桂东县| 米林县| 泽普县| 乌鲁木齐县| 台南县| 甘谷县| 墨玉县| 徐水县| 大悟县| 栾川县| 广德县| 成武县| 丽水市| 嘉兴市| 调兵山市| 偏关县| 哈密市| 兴宁市| 灌云县|