- SQL Server實用教程(SQL Server 2008版)
- 鄭阿奇編著
- 2345字
- 2018-12-30 11:37:51
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。
- JavaScript前端開發模塊化教程
- JavaScript高效圖形編程
- Android 7編程入門經典:使用Android Studio 2(第4版)
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Oracle BAM 11gR1 Handbook
- Easy Web Development with WaveMaker
- 單片機應用與調試項目教程(C語言版)
- 機器學習與R語言實戰
- SQL Server與JSP動態網站開發
- Salesforce Reporting and Dashboards
- HTML5從入門到精通(第4版)
- Visual C#.NET Web應用程序設計
- CRYENGINE Game Development Blueprints
- OpenCV Android開發實戰
- Arduino電子設計實戰指南:零基礎篇