關(guān)于我們
書單推薦
新書推薦
|
數(shù)據(jù)庫(kù)原理及應(yīng)用
本書是為高等院校應(yīng)用型本科計(jì)算機(jī)專業(yè)或相關(guān)專業(yè)精心編寫的一本數(shù)據(jù)庫(kù)課程教學(xué)用書, 它以SQL Server 2012為核心系統(tǒng), 較完整地論述了數(shù)據(jù)庫(kù)系統(tǒng)的基本概念、基本原理和SQL Server的應(yīng)用技術(shù)。
以關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)為核心。
反映了當(dāng)前數(shù)據(jù)庫(kù)領(lǐng)域的新技術(shù)、新水平和新趨勢(shì)。
注重理論聯(lián)系實(shí)際,強(qiáng)化數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)。
將抽象理論融合到具體模型中。結(jié)合SQLServer2012數(shù)據(jù)庫(kù)管理系統(tǒng),講解數(shù)據(jù)庫(kù)的管理技術(shù)和應(yīng)用。
在內(nèi)容選取、章節(jié)安排、難易程度、例子選取等方面充分考慮到理論教學(xué)和實(shí)踐教學(xué)的需要。
第1章 數(shù)據(jù)庫(kù)系統(tǒng)概述 1
1.1 數(shù)據(jù)管理技術(shù)的發(fā)展 1
1.1.1 數(shù)據(jù)和數(shù)據(jù)管理 1
1.1.2 數(shù)據(jù)管理發(fā)展的三個(gè)階段 2
1.2 數(shù)據(jù)庫(kù)系統(tǒng) 5
1.2.1 數(shù)據(jù)庫(kù)系統(tǒng)的組成 5
1.2.2 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu) 8
1.3 數(shù)據(jù)模型 9
1.3.1 數(shù)據(jù)處理的三個(gè)階段 9
1.3.2 常見(jiàn)的數(shù)據(jù)模型 13
1.4 處理大規(guī)模數(shù)據(jù)的數(shù)據(jù)庫(kù) 17
1.4.1 分布式數(shù)據(jù)庫(kù) 17
1.4.2 并行數(shù)據(jù)庫(kù) 20
1.4.3 NoSQL數(shù)據(jù)庫(kù) 23
1.4.4 云數(shù)據(jù)庫(kù) 25
1.4.5 XML數(shù)據(jù)庫(kù) 28
習(xí)題1 30
第2章 關(guān)系型數(shù)據(jù)庫(kù)基本理論 31
2.1 關(guān)系數(shù)據(jù)模型 31
2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu) 31
2.1.2 關(guān)系運(yùn)算 35
2.1.3 關(guān)系的完整性約束 36
2.2 關(guān)系代數(shù)基本理論 38
2.2.1 傳統(tǒng)的集合運(yùn)算 39
2.2.2 專門的關(guān)系運(yùn)算 42
2.2.3 關(guān)系代數(shù)表達(dá)式及其應(yīng)用實(shí)例 46
2.3 關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論 47
2.3.1 關(guān)系模式規(guī)范化的必要性 47
2.3.2 函數(shù)依賴 49
2.3.3 關(guān)系的范式及規(guī)范化 51
2.3.4 關(guān)系模式的分解 53
習(xí)題2 56
第3章 數(shù)據(jù)庫(kù)設(shè)計(jì) 59
3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述 59
3.1.1 數(shù)據(jù)庫(kù)設(shè)計(jì)目標(biāo)和方法 59
3.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟 61
3.2 需求分析 62
3.2.1 需求分析的任務(wù)和目標(biāo) 63
3.2.2 需求分析的步驟 63
3.2.3 數(shù)據(jù)流圖 64
3.2.4 數(shù)據(jù)字典 67
3.3 概念結(jié)構(gòu)設(shè)計(jì) 68
3.3.1 概念結(jié)構(gòu)設(shè)計(jì)任務(wù)和E-R模型的特點(diǎn) 68
3.3.2 概念結(jié)構(gòu)設(shè)計(jì)的基本方法 68
3.3.3 概念結(jié)構(gòu)設(shè)計(jì)的主要步驟 69
3.3.4 局部E-R模型的設(shè)計(jì) 70
3.3.5 全局E-R模型的設(shè)計(jì) 77
3.3.6 概念結(jié)構(gòu)設(shè)計(jì)實(shí)例 81
3.4 邏輯結(jié)構(gòu)設(shè)計(jì) 86
3.4.1 E-R模型向關(guān)系模式的轉(zhuǎn)換 86
3.4.2 關(guān)系模式的優(yōu)化 90
3.5 物理結(jié)構(gòu)設(shè)計(jì) 93
3.5.1 設(shè)計(jì)物理結(jié)構(gòu) 93
3.5.2 評(píng)價(jià)物理結(jié)構(gòu) 94
3.6 數(shù)據(jù)庫(kù)的實(shí)施 95
3.7 數(shù)據(jù)庫(kù)運(yùn)行和維護(hù) 95
習(xí)題3 96
第4章 SQL Server系統(tǒng)概述 98
4.1 SQL Server系統(tǒng)簡(jiǎn)介 98
4.1.1 SQL Server的版本 98
4.1.2 SQL Server系統(tǒng)數(shù)據(jù)庫(kù) 99
4.1.3 SQL Server三個(gè)關(guān)鍵系統(tǒng)表 99
4.2 Transact-SQL簡(jiǎn)介 102
4.2.1 SQL語(yǔ)言的發(fā)展與特點(diǎn) 102
4.2.2 Transact-SQL語(yǔ)法基礎(chǔ) 103
4.3 Transact-SQL流程控制語(yǔ)句 112
4.3.1 BEGIN … END語(yǔ)句 112
4.3.2 分支語(yǔ)句 113
4.3.3 循環(huán)語(yǔ)句 115
4.3.4 RETURN語(yǔ)句 116
4.3.5 WAITFOR語(yǔ)句 117
4.3.6 TRY…CATCH語(yǔ)句 117
4.4 SQL Server存儲(chǔ)機(jī)制 118
4.4.1 SQL Server數(shù)據(jù)頁(yè) 118
4.4.2 SQL Server數(shù)據(jù)頁(yè)類型 119
4.4.3 DBCC命令 120
4.4.4 實(shí)例分析 121
習(xí)題4 125
第5章 數(shù)據(jù)庫(kù)和數(shù)據(jù)表管理 126
5.1 SQL Server數(shù)據(jù)庫(kù)概述 126
5.1.1 數(shù)據(jù)庫(kù)文件類型 126
5.1.2 數(shù)據(jù)庫(kù)文件組 127
5.2 SQL Server數(shù)據(jù)庫(kù)基本管理 127
5.2.1 創(chuàng)建用戶數(shù)據(jù)庫(kù) 127
5.2.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)的修改 132
5.2.3 數(shù)據(jù)庫(kù)文件的更名、刪除 136
5.3 SQL Server數(shù)據(jù)表管理 137
5.3.1 表的創(chuàng)建與維護(hù) 137
5.3.2 表中數(shù)據(jù)的維護(hù) 146
5.3.3 數(shù)據(jù)表的行列互換輸出 148
習(xí)題5 149
第6章 數(shù)據(jù)查詢與游標(biāo)機(jī)制 150
6.1 基本查詢 150
6.1.1 SELECT查詢語(yǔ)句的結(jié)構(gòu) 150
6.1.2 簡(jiǎn)單查詢 151
6.1.3 帶有WHERE子句的查詢 154
6.1.4 帶有ORDER BY子句的查詢 156
6.1.5 帶有GROUP BY子句的查詢 157
6.1.6 輸出結(jié)果選項(xiàng) 158
6.1.7 聯(lián)合查詢 159
6.2 多表查詢 160
6.2.1 連接查詢 160
6.2.2 子查詢 164
6.3 游標(biāo)機(jī)制 170
6.3.1 游標(biāo)概述 170
6.3.2 游標(biāo)的管理 171
6.3.3 利用游標(biāo)修改和刪除表數(shù)據(jù) 176
習(xí)題6 176
第7章 視圖與索引 178
7.1 視圖 178
7.1.1 視圖的基本概念 178
7.1.2 創(chuàng)建視圖 179
7.1.3 修改視圖 184
7.1.4 刪除視圖 185
7.1.5 使用視圖 185
7.2 索引 187
7.2.1 索引的基本概念 187
7.2.2 創(chuàng)建索引 189
7.2.3 管理索引 192
習(xí)題7 196
第8章 存儲(chǔ)過(guò)程、觸發(fā)器和用戶定義函數(shù) 198
8.1 存儲(chǔ)過(guò)程 198
8.1.1 存儲(chǔ)過(guò)程概述 198
8.1.2 創(chuàng)建存儲(chǔ)過(guò)程 200
8.1.3 調(diào)用存儲(chǔ)過(guò)程 206
8.1.4 管理存儲(chǔ)過(guò)程 207
8.2 觸發(fā)器 210
8.2.1 觸發(fā)器概述 210
8.2.2 創(chuàng)建觸發(fā)器 211
8.2.3 管理觸發(fā)器 217
8.3 用戶定義函數(shù) 219
8.3.1 用戶定義函數(shù)概述 219
8.3.2 創(chuàng)建用戶定義函數(shù) 220
8.3.3 管理用戶定義函數(shù) 223
習(xí)題8 224
第9章 數(shù)據(jù)庫(kù)并發(fā)控制 225
9.1 事務(wù) 225
數(shù)據(jù)庫(kù)和數(shù)據(jù)表管理
數(shù)據(jù)庫(kù)是存放數(shù)據(jù)的容器,在設(shè)計(jì)一個(gè)應(yīng)用系統(tǒng)時(shí),必須先設(shè)計(jì)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中的數(shù)據(jù)及相關(guān)信息通常被存儲(chǔ)在一個(gè)或多個(gè)磁盤文件(即數(shù)據(jù)庫(kù)文件)中,而數(shù)據(jù)庫(kù)管理系統(tǒng)為用戶或數(shù)據(jù)庫(kù)應(yīng)用程序提供統(tǒng)一的接口來(lái)訪問(wèn)和控制這些數(shù)據(jù),使得用戶不需要直接訪問(wèn)數(shù)據(jù)庫(kù)文件。
數(shù)據(jù)庫(kù)中最重要的對(duì)象是數(shù)據(jù)表,簡(jiǎn)稱表(table),表中存儲(chǔ)了數(shù)據(jù)庫(kù)的數(shù)據(jù)。對(duì)數(shù)據(jù)庫(kù)和表的操作是開(kāi)發(fā)人員的一項(xiàng)重要工作。
5.1 SQL Server數(shù)據(jù)庫(kù)概述
SQL Server 數(shù)據(jù)庫(kù)是存放表和視圖、索引、存儲(chǔ)過(guò)程和觸發(fā)器等數(shù)據(jù)庫(kù)對(duì)象的邏輯實(shí)體,從邏輯角度組織與管理數(shù)據(jù)。
5.1.1 數(shù)據(jù)庫(kù)文件類型
在SQL Server中,數(shù)據(jù)庫(kù)是由數(shù)據(jù)文件和事務(wù)日志文件組成的,一個(gè)數(shù)據(jù)庫(kù)至少應(yīng)包含一個(gè)數(shù)據(jù)文件和一個(gè)事務(wù)日志文件。包括系統(tǒng)數(shù)據(jù)庫(kù)在內(nèi)的每個(gè)數(shù)據(jù)庫(kù)都有自己的文件集,而且不與其他數(shù)據(jù)庫(kù)共享這些文件。SQL Server 數(shù)據(jù)庫(kù)具有如下三種類型的文件。
1.主數(shù)據(jù)文件
主數(shù)據(jù)文件是數(shù)據(jù)庫(kù)的起點(diǎn),其中包含數(shù)據(jù)庫(kù)的初始信息,記錄數(shù)據(jù)庫(kù)所擁有的文件指針。每個(gè)數(shù)據(jù)庫(kù)有且僅有一個(gè)主數(shù)據(jù)文件,這是數(shù)據(jù)庫(kù)必需的文件。主數(shù)據(jù)文件的擴(kuò)展名是.mdf。
2.輔助數(shù)據(jù)文件
除主數(shù)據(jù)文件以外的所有其他數(shù)據(jù)文件都是輔助數(shù)據(jù)文件。輔助數(shù)據(jù)文件存儲(chǔ)主數(shù)據(jù)文件未存儲(chǔ)的所有其他數(shù)據(jù)和對(duì)象,它不是數(shù)據(jù)庫(kù)必需的文件。當(dāng)一個(gè)數(shù)據(jù)庫(kù)需要存儲(chǔ)的數(shù)據(jù)量很大(超過(guò)了Windows操作系統(tǒng)對(duì)單一文件大小的限制)時(shí),可以用輔助數(shù)據(jù)文件來(lái)保存主數(shù)據(jù)文件無(wú)法存儲(chǔ)的數(shù)據(jù)。輔助數(shù)據(jù)文件可以分散存儲(chǔ)在不同的物理磁盤中,從而可以提高數(shù)據(jù)的讀寫效率。輔助數(shù)據(jù)文件擴(kuò)展名為.ndf。
3.事務(wù)日志文件
在SQL Server中,每個(gè)數(shù)據(jù)庫(kù)至少擁有一個(gè)自己的日志文件,也可以擁有多個(gè)日志文件。日志文件最小是1MB,用來(lái)記錄所有事務(wù)以及每個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的修改。日志文件的擴(kuò)展名是.ldf。
在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候,日志文件也會(huì)隨之被創(chuàng)建。如果系統(tǒng)出現(xiàn)故障時(shí),常常需要使用事務(wù)日志將數(shù)據(jù)庫(kù)恢復(fù)到正常狀態(tài)。這是SQL Server的一個(gè)重要的容錯(cuò)特性,它可以有效地防止數(shù)據(jù)庫(kù)的損壞,維護(hù)數(shù)據(jù)庫(kù)的完整性。
在SQL Server中,用戶還可以指定數(shù)據(jù)文件的大小能夠自動(dòng)增長(zhǎng)。在定義數(shù)據(jù)文件時(shí),指定一個(gè)特定的增量,每次擴(kuò)大文件時(shí)均按此增量來(lái)增長(zhǎng)。另外,每個(gè)文件的大小可以指定一個(gè)最大值,當(dāng)文件大小達(dá)到最大值時(shí),就不再增長(zhǎng)。如果沒(méi)有指定文件最大值,文件可以一直增長(zhǎng)到磁盤沒(méi)有可用空間為止。
5.1.2 數(shù)據(jù)庫(kù)文件組
為了有助于數(shù)據(jù)布局和管理任務(wù),SQL Server 允許用戶將多個(gè)文件劃分為一個(gè)文件集合,這些文件可以在不同的磁盤上,并為這一集合命名,這就是文件組。
文件組是數(shù)據(jù)庫(kù)中數(shù)據(jù)文件的邏輯組合,數(shù)據(jù)庫(kù)文件組有主文件組、用戶定義文件組和默認(rèn)文件組三類。
1.主文件組
主文件組是包含主要文件的文件組。所有系統(tǒng)表和沒(méi)有明確分配給其他文件組的任何文件都被分配到主文件組中,一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)主文件組。
2.用戶定義文件組
用戶定義文件組是用戶首次創(chuàng)建數(shù)據(jù)庫(kù)時(shí),或修改數(shù)據(jù)庫(kù)時(shí)自定義的,其目的是為了將數(shù)據(jù)存儲(chǔ)進(jìn)行合理的分配,以提高數(shù)據(jù)的讀寫效率。
3.默認(rèn)文件組
每個(gè)數(shù)據(jù)庫(kù)中均有一個(gè)文件組被指定為默認(rèn)文件組。如果在數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)象時(shí)沒(méi)有指定對(duì)象所屬的文件組,對(duì)象將被分配給默認(rèn)文件組。在任何時(shí)候,只能將一個(gè)文件組指定為默認(rèn)文件組。
關(guān)于默認(rèn)文件組有如下說(shuō)明:
。1)默認(rèn)文件組中的文件必須足夠大,能夠容納未分配給其他文件組的所有新對(duì)象。
。2)如果沒(méi)有指定默認(rèn)文件組,則將主文件組作為默認(rèn)文件組。
(3)PRIMARY文件組是默認(rèn)文件組。
5.2 SQL Server數(shù)據(jù)庫(kù)基本管理
在SQL Server中,所有類型的數(shù)據(jù)庫(kù)管理操作有兩種方式:一是SSMS圖形化界面方式;二是Transact-SQL語(yǔ)句代碼方式。
5.2.1 創(chuàng)建用戶數(shù)據(jù)庫(kù)
創(chuàng)建數(shù)據(jù)庫(kù)就是為數(shù)據(jù)庫(kù)確定名稱、大小、存放位置、文件名和所在文件組的過(guò)程。在一個(gè)SQL Server實(shí)例中,最多可以創(chuàng)建32 767個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的名稱必須滿足系統(tǒng)的標(biāo)識(shí)符規(guī)則。在命名數(shù)據(jù)庫(kù)時(shí),一定要使數(shù)據(jù)庫(kù)名稱簡(jiǎn)短并有一定的含義。
例5.1 創(chuàng)建教學(xué)管理數(shù)據(jù)庫(kù)JXGL。主數(shù)據(jù)文件邏輯名為JXGL.mdf,保存路徑為D:\ JXGLSYS\DATA,日志文件的邏輯名為JXGL_log.ldf,保存路徑為D:\JXGLSYS\ Data_log。主數(shù)據(jù)文件大小為3MB,文件大小不受限制,增長(zhǎng)量為1MB;日志文件的初始大小為1MB,最大為20MB,增長(zhǎng)比例為10%。
1.利用SSMS圖形化方式
利用圖形化方法SSMS可以非常方便地創(chuàng)建數(shù)據(jù)庫(kù),尤其對(duì)于初學(xué)者來(lái)說(shuō)簡(jiǎn)單易用。具體的操作步驟如下:
。1)在SSMS窗口的“對(duì)象資源管理器”中展開(kāi)服務(wù)器,然后選擇“數(shù)據(jù)庫(kù)”結(jié)點(diǎn)。
。2)在“數(shù)據(jù)庫(kù)”結(jié)點(diǎn)上右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令,如圖5.1所示。
圖5.1 選擇“新建數(shù)據(jù)庫(kù)”命令
(3)執(zhí)行上述操作后,會(huì)彈出“新建數(shù)據(jù)庫(kù)”對(duì)話框,如圖5.2所示。在這個(gè)對(duì)話框中有三個(gè)選項(xiàng),分別是“常規(guī)”“選項(xiàng)”和“文件組”,默認(rèn)是“常規(guī)”選項(xiàng)。完成這三個(gè)選項(xiàng)中的內(nèi)容之后,就完成了數(shù)據(jù)庫(kù)的創(chuàng)建工作。
。4)在“數(shù)據(jù)庫(kù)名稱”文本框中輸入新建數(shù)據(jù)庫(kù)的名稱,例如本例輸入JXGL。
。5)在“所有者”文本框中輸入新建數(shù)據(jù)庫(kù)的所有者,如sa。根據(jù)數(shù)據(jù)庫(kù)的使用情況,選擇啟用或者禁用“使用全文索引”復(fù)選框。本例中取<默認(rèn)值>。
。6)在圖5.2的“數(shù)據(jù)庫(kù)文件”列表中,包括兩行:一行是行數(shù)據(jù)文件,另一行是日志文件。通過(guò)單擊下面相應(yīng)的按鈕,可以添加或者刪除相應(yīng)的數(shù)據(jù)文件。該列表中各字段值的含義如下:
邏輯名稱——指定該文件的文件名。
文件類型——用于區(qū)別當(dāng)前文件是數(shù)據(jù)文件還是日志文件。
文件組——顯示當(dāng)前數(shù)據(jù)庫(kù)文件所屬的文件組。
初始大小——指定該文件的初始容量,在SQL Server 2012中數(shù)據(jù)文件的默認(rèn)值為5MB,日志文件的默認(rèn)值為2MB。
自動(dòng)增長(zhǎng)——用于設(shè)置在文件的容量不夠用時(shí),文件根據(jù)何種增長(zhǎng)方式自動(dòng)增長(zhǎng)。因?yàn)楸纠腥罩疚募淖畲笾禐?0MB,通過(guò)單擊“自動(dòng)增長(zhǎng)”列中的JXGL_log省略號(hào)按鈕,打開(kāi)“更改JXGL_Log的自動(dòng)增長(zhǎng)設(shè)置”對(duì)話框進(jìn)行設(shè)置,如圖5.3所示。做日志文件大小修改,本例中設(shè)為20。
圖5.2 “新建數(shù)據(jù)庫(kù)”對(duì)話框
圖5.3 JXGL_log自動(dòng)增長(zhǎng)設(shè)置修改
路徑——指定存放該文件的目錄。
。7)單擊“選項(xiàng)”選擇頁(yè),設(shè)置數(shù)據(jù)庫(kù)的排序規(guī)則、恢復(fù)模式、兼容級(jí)別和其他需要設(shè)置的內(nèi)容,如圖5.4所示。
(8)單擊“文件組”選擇頁(yè),可以設(shè)置數(shù)據(jù)庫(kù)文件所屬的文件組,還可以通過(guò)“添加”或者“刪除”按鈕更改數(shù)據(jù)庫(kù)文件所屬的文件組,如圖5.5所示。
。9)完成以上操作后,就可以單擊“確定”按鈕關(guān)閉“新建數(shù)據(jù)庫(kù)”對(duì)話框。至此,便成功創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)。
可以通過(guò)“對(duì)象資源管理器”窗口查看新建的數(shù)據(jù)庫(kù)。
……
你還可能感興趣
我要評(píng)論
|