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

1.1 數據庫基本概念

1.1.1 數據庫與數據庫管理系統

1.數據庫

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

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

2.數據庫管理系統

數據庫管理系統(DBMS)是管理數據庫的系統,它按一定的數據模型組織數據。DBMS應提供如下功能。

(1)數據定義功能:可定義數據庫中的數據對象。

(2)數據操縱功能:可對數據庫表進行基本操作,如插入、刪除、修改、查詢等。

(3)數據的完整性檢查功能:保證用戶輸入的數據滿足相應的約束條件。

(4)數據庫的安全保護功能:保證只有具有權限的用戶才能訪問數據庫中的數據。

(5)數據庫的并發控制功能:使多個應用程序可在同一時刻并發地訪問數據庫的數據。

(6)數據庫系統的故障恢復功能:使數據庫在運行出現故障時進行數據庫恢復,以保證數據庫可靠運行。

(7)在網絡環境下訪問數據庫的功能。

(8)方便、有效地存取數據庫信息的接口和工具。編程人員通過程序開發工具與數據庫的接口編寫數據庫應用程序。數據庫系統管理員(DBA, DataBase Adminitrator)通過提供的工具對數據庫進行管理。

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

圖1.1 數據庫系統的構成

自20世紀70年代關系模型提出后,商用數據庫系統迅速采用了這種模型,涌現出很多性能優良的關系數據庫管理系統(RDBMS)。

目前,商品化的數據庫管理系統以關系型數據庫為主導產品,技術比較成熟。主流的關系型數據庫管理系統包括Oracle、SQL Server、DB2、Sybase、Informix和Ingers等,小型的關系型數據庫管理系統包括MySQL、Access、Visual FoxPro等。

SQL Server是由Microsoft公司開發和推廣的在Windows平臺上最為流行的大中型關系數據庫管理系統。SQL Server版本從SQL Server 6.5、7.0、2000到2005,再到目前的SQL Server 2008,功能不斷完善。本書主要介紹SQL Server 2008。

1.1.2 數據模型

數據庫管理系統根據數據模型對數據進行存儲和管理,數據庫管理系統采用的數據模型主要有:層次模型、網狀模型和關系模型。

(1)層次模型:以樹狀層次結構組織數據。圖1.2所示為某學校按層次模型組織的數據示例。

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

(2)網狀模型:每一個數據用一個節點表示,每個節點與其他節點都有聯系,這樣,數據庫中的所有數據節點就構成了一個復雜的網絡。圖1.3所示為按網狀模型組織的數據示例。

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

(3)關系模型:以二維表格(關系表)的形式組織數據庫中的數據。

例如,在學生成績管理系統所涉及的學生、課程和成績三個表中。學生表涉及的主要信息有學號、姓名、性別、出生時間、專業、總學分、備注。課程表涉及的主要信息有課程號、課程名、開課學期、學時和學分。成績表涉及的主要信息有學號、課程號和成績。表1.1、表1.2和表1.3分別描述了學生成績管理系統中學生、課程和成績這三個表的部分數據。

表1.1 學生表

表1.2 課程表

表1.3 成績表

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

在關系表中,如果一個字段或幾個字段組合的值可唯一標識其對應記錄,則稱該字段或字段組合為碼。

例如,表1.1中的“學號”可唯一標識每一個學生,表1.2中的“課程號”可唯一標識每一門課。表1.3中的“學號”和“課程號”可唯一標識每一個學生一門課程的成績。

有時,一個表可能有多個碼,比如表1.1中,姓名不允許重名,則“學號”、“姓名”均是學生信息表碼。對于每一個關系表,通常可指定一個碼為“主碼”,在關系模式中,一般用下劃線標出主碼。

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

設表1.2的名字為KCB,關系模式可分別表示為KCB(課程號,課程名,開課學期,學時,學分)。

設表1.3的名字為CJB,關系模式可分別表示為CJB(學號課程號,成績,學分)。

從上面可看出,按關系模型組織的數據表達方式簡潔、直觀,插入、刪除、修改操作方便,而按層次、網狀模型組織的數據表達方式復雜,插入、刪除、修改操作也很復雜。因此,關系模型得到了廣泛應用,SQL Server 2008是支持關系數據模型的數據庫管理系統。

1.1.3 關系型數據庫語言

關系型數據庫的標準語言是SQL(Structured Query Language,結構化查詢語言)。SQL語言是用于關系數據庫查詢的結構化語言,最早由Boyce和Cha MBedin在1974年提出,稱為SEQUEL語言。1976年,IBM公司的San Jose研究所在研制關系數據庫管理系統System R時修改為SEQUEL2,即目前的SQL語言。1976年,SQL開始在商品化關系數據庫管理系統中應用。1982年,美國國家標準化組織ANSI確認SQL為數據庫系統的工業標準。SQL是一種介于關系代數和關系演算之間的語言,具有豐富的查詢功能,同時具有數據定義和數據控制功能,是集數據定義、數據查詢和數據控制于一體的關系型數據庫語言。目前,許多關系型數據庫管理系統支持SQL語言,如SQL Server、Access、Oracle、Sybase、MySQL、DB2等。

SQL語言的功能包括數據查詢、數據操縱、數據定義和數據控制4部分。SQL語言簡潔、方便、實用,為完成其核心功能只用了6個動詞:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE),目前已成為應用最廣的關系數據庫語言。SQL語言易學易用,作為關系數據庫的標準語言,它已被眾多商用數據庫管理系統產品所采用。不過,因為不同的數據庫管理系統在其實踐過程中都對SQL規范做了某些編改和擴充,所以,實際上不同數據庫管理系統之間的SQL語言不能完全通用。例如,微軟公司的SQL Server數據庫系統支持的是Transact-SQL(簡稱T-SQL),而甲骨文公司的Oracle數據庫所使用的SQL語言則是PL-SQL。

主站蜘蛛池模板: 比如县| 东源县| 甘南县| 慈利县| 通化市| 长沙市| 合阳县| 喀喇沁旗| 莱西市| 石棉县| 夹江县| 西和县| 昌黎县| 栾城县| 阜城县| 日土县| 东光县| 历史| 沈阳市| 淮南市| 固镇县| 依安县| 洱源县| 博白县| 莒南县| 满洲里市| 和政县| 闵行区| 红河县| 永春县| 普定县| 巴楚县| 夹江县| 华阴市| 和林格尔县| 五峰| 罗定市| 黄骅市| 五指山市| 霍州市| 宜城市|