本書以國產(chǎn)的達夢數(shù)據(jù)庫為對象,按照建立總體概念—掌握基本對象的使用—實現(xiàn)業(yè)務邏輯的思路,由淺入深地介紹了數(shù)據(jù)庫系統(tǒng)的基礎知識、設計方法以及應用技術。全書共10章,分別是認識數(shù)據(jù)庫、數(shù)據(jù)庫安裝與管理、數(shù)據(jù)表與視圖、數(shù)據(jù)維護、數(shù)據(jù)查詢、SQL程序設計基礎、實現(xiàn)業(yè)務邏輯、數(shù)據(jù)完整性、數(shù)據(jù)安全管理、數(shù)據(jù)庫應用程序開發(fā)。第1、2章介紹數(shù)據(jù)庫及其相關的基本概念;第3~6章介紹數(shù)據(jù)庫常用對象的使用與管理;第7~10章介紹數(shù)據(jù)庫處理邏輯的實現(xiàn)與數(shù)據(jù)庫應用系統(tǒng)的構建。本書內容涵蓋了數(shù)據(jù)庫技術的主要領域,側重于基本概念與基本語法的介紹,安排了眾多實例,以加強讀者對內容的理解。
本書可作為信息管理與信息系統(tǒng)及其相關專業(yè)本科生的教材,也可作為數(shù)據(jù)庫管理與維護人員的學習資料。
達夢數(shù)據(jù)庫管理系統(tǒng)是武漢達夢數(shù)據(jù)庫股份有限公司開發(fā)的具有自主知識產(chǎn)權的產(chǎn)品,經(jīng)過多年的不斷完善,獲得了國家自主原創(chuàng)產(chǎn)品認證,在多個領域得到了廣泛應用,成為國產(chǎn)化工程應用中的主要數(shù)據(jù)庫之一。
本書以達夢數(shù)據(jù)庫管理系統(tǒng)為平臺,由淺入深地介紹學習數(shù)據(jù)庫課程必須理解的數(shù)據(jù)庫系統(tǒng)知識以及相關技術。本書由認識與安裝數(shù)據(jù)庫、使用與管理數(shù)據(jù)庫對象、實現(xiàn)業(yè)務邏輯三大部分組成,分為10章,具體內容如下:
第1章認識數(shù)據(jù)庫,介紹數(shù)據(jù)庫系統(tǒng)的誕生、發(fā)展、功能、特點、組成、體系結構以及達夢數(shù)據(jù)庫的相關知識。
第2章數(shù)據(jù)庫安裝與管理,介紹達夢數(shù)據(jù)庫的版本、安裝過程、客戶端工具、實例管理以及基礎操作。
第3章數(shù)據(jù)表與視圖,介紹數(shù)據(jù)表的創(chuàng)建、修改和刪除,視圖的定義、查詢、更新和刪除,以及物化視圖的相關知識。
第4章數(shù)據(jù)維護,介紹數(shù)據(jù)插入、數(shù)據(jù)修改和數(shù)據(jù)刪除操作的過程與語法,以及數(shù)據(jù)導入/導出操作過程。
第5章數(shù)據(jù)查詢,介紹SQL語言中的核心知識——數(shù)據(jù)查詢,主要包括單表表詢、連接查詢、嵌套查詢、集合查詢和基于派生表的查詢等。
第6章SQL程序設計基礎,介紹DM SQL程序設計的基本要素:數(shù)據(jù)類型、變量、表達式以及流程控制等。
第7章實現(xiàn)業(yè)務邏輯,主要介紹實現(xiàn)復雜業(yè)務邏輯時通常涉及的存儲過程、函數(shù)、存儲函數(shù)、觸發(fā)器、游標以及事務的概念和基本語法。
第8章數(shù)據(jù)完整性,主要介紹實體完整性、參照完整性和用戶自定義完整性及約束的相關知識。
第9章數(shù)據(jù)安全管理,介紹數(shù)據(jù)訪問控制、數(shù)據(jù)庫審計、數(shù)據(jù)加密、數(shù)據(jù)庫備份與還原。
第10章數(shù)據(jù)庫應用程序開發(fā),介紹Java Web數(shù)據(jù)庫應用程序的基本架構和開發(fā)過程,并給出了一個具有數(shù)據(jù)修改與查詢功能的實例。
附錄給出了本書實例涉及的表對應的SQL語句、DM8常用數(shù)據(jù)字典、動態(tài)性能視圖。
本書注重基本概念的講解,抓住數(shù)據(jù)庫對象的基本特征,盡量用實例加以說明;在介紹中不求面面俱到,以避免語法手冊般煩冗;注重知識和技能的有機結合,力爭做到基礎知識的講解與實踐指導融為一體,盡量兼顧講授式教學、實操化教學與自學等不同使用場景的需要。
張曉豐擔任本書主編,車敏、李正欣擔任副主編,田舢、祝娜、張守帥、苗青林參與編寫。具體分工如下:第1章、第2章及第10章部分內容由張曉豐編寫,第4章、第8章及第9章部分內容由車敏編寫,第3章、第5章由李正欣編寫,第6章和第7章部分內容由田舢編寫,第7章部分內容、第10章部分內容由苗青林編寫,第9章部分內容、第10章部分內容、附錄等由祝娜、張守帥編寫。全書由張曉豐統(tǒng)稿。陳繼成、謝鵬參加了部分內容的編寫工作。
本書以達夢數(shù)據(jù)庫為對象進行介紹,但大部分概念也適用于其他關系型數(shù)據(jù)庫。
本書在編寫過程中得到了武漢達夢數(shù)據(jù)庫股份有限公司工作人員及劉志紅等人的幫助,在此表示衷心的感謝!本書的出版得到了西安電子科技大學出版社的大力支持,在此一并致以真摯的謝意!
由于編者水平有限,書中難免存有不足之處,懇請讀者批評指正。編者電子信箱:zhxfzhxf1@sina.com。
編 者
? ? ?2022年2月
第1章 認識數(shù)據(jù)庫 1
1.1 數(shù)據(jù)與信息 1
1.2 數(shù)據(jù)的管理 2
1.2.1 人工管理階段 2
1.2.2 文件系統(tǒng)管理階段 3
1.2.3 數(shù)據(jù)庫管理階段 5
1.3 數(shù)據(jù)庫及相關概念 6
1.3.1 數(shù)據(jù)庫 6
1.3.2 數(shù)據(jù)庫管理系統(tǒng) 6
1.3.3 數(shù)據(jù)庫系統(tǒng)與相關概念 7
1.4 達夢數(shù)據(jù)庫 7
1.4.1 多樣的數(shù)據(jù)庫 7
1.4.2 達夢數(shù)據(jù)庫簡介 8
思考題 9
第2章 數(shù)據(jù)庫安裝與管理 10
2.1 達夢數(shù)據(jù)庫的產(chǎn)品系列 10
2.2 達夢數(shù)據(jù)庫安裝 11
2.2.1 安裝準備 11
2.2.2 安裝過程要點 11
2.3 達夢客戶端工具 17
2.4 數(shù)據(jù)庫實例管理 19
2.4.1 創(chuàng)建實例 20
2.4.2 啟動與停止實例服務 23
2.4.3 刪除實例 24
2.5 數(shù)據(jù)庫初體驗 25
2.5.1 登錄 25
2.5.2 認識表 26
2.5.3 數(shù)據(jù)維護 27
2.5.4 數(shù)據(jù)查詢與統(tǒng)計 29
思考題 32
第3章 數(shù)據(jù)表與視圖 33
3.1 數(shù)據(jù)表 33
3.1.1 數(shù)據(jù)表的創(chuàng)建 34
3.1.2 數(shù)據(jù)表的修改 37
3.1.3 數(shù)據(jù)表的刪除 38
3.1.4 用SQL語句管理數(shù)據(jù)表 39
3.2 視圖 41
3.2.1 概念 41
3.2.2 視圖的定義 42
3.2.3 視圖數(shù)據(jù)的查詢 43
3.2.4 視圖數(shù)據(jù)的更新 43
3.2.5 視圖的刪除 44
3.3 物化視圖 45
3.3.1 物化視圖的概念 45
3.3.2 物化視圖的定義 45
3.3.3 物化視圖的修改與刪除 47
3.3.4 物化視圖數(shù)據(jù)的更新 48
思考題 48
第4章 數(shù)據(jù)維護 49
4.1 數(shù)據(jù)插入 49
4.1.1 直接插入記錄值 49
4.1.2 插入查詢結果值 51
4.2 數(shù)據(jù)修改 51
4.3 數(shù)據(jù)刪除 52
4.4 用查詢結果建表 52
4.5 數(shù)據(jù)合并 53
4.6 數(shù)據(jù)清空 55
4.7 數(shù)據(jù)遷移 55
思考題 63
第5章 數(shù)據(jù)查詢 64
5.1 SQL語言 64
5.1.1 SQL語言的發(fā)展 64
5.1.2 SQL語言的作用 65
5.2 單表查詢 65
5.2.1 簡單查詢 66
5.2.2 條件查詢 67
5.2.3 聚集函數(shù) 69
5.2.4 分組查詢 69
5.3 連接查詢 70
5.3.1 內連接 70
5.3.2 外連接 72
5.4 嵌套查詢 73
5.4.1 IN子查詢 73
5.4.2 EXISTS子查詢 74
5.4.3 ALL與ANY 74
5.5 集合查詢 75
5.6 基于派生表的查詢 76
思考題 76
第6章 SQL程序設計基礎 78
6.1 DM SQL語言概述 78
6.1.1 DM SQL程序組成 78
6.1.2 標識符 79
6.1.3 注釋 79
6.2 數(shù)據(jù)類型 80
6.2.1 數(shù)值類型 80
6.2.2 字符類型 81
6.2.3 日期時間類型 81
6.2.4 記錄類型 82
6.2.5 數(shù)組類型 83
6.3 變量與表達式 84
6.3.1 變量的聲明 84
6.3.2 變量賦值 85
6.3.3 操作符 86
6.4 流程控制 86
6.4.1 順序結構 86
6.4.2 分支結構 86
6.4.3 循環(huán)結構 88
6.5 異常處理 90
思考題 90
第7章 實現(xiàn)業(yè)務邏輯 91
7.1 存儲過程 91
7.1.1 存儲過程的概念 91
7.1.2 存儲過程的使用 92
7.1.3 存儲過程的參數(shù) 94
7.1.4 存儲過程的特點 95
7.2 函數(shù) 96
7.2.1 常用函數(shù) 96
7.2.2 函數(shù)的調用 101
7.3 存儲函數(shù) 101
7.3.1 存儲函數(shù)的概念 101
7.3.2 存儲函數(shù)的使用 102
7.3.3 存儲函數(shù)示例 103
7.3.4 存儲函數(shù)與存儲過程的比較 103
7.4 觸發(fā)器 103
7.4.1 觸發(fā)器的概念 103
7.4.2 觸發(fā)器的組成與種類 104
7.4.3 觸發(fā)器的使用 107
7.4.4 觸發(fā)器的用途與特點 109
7.5 游標 110
7.5.1 游標的概念 110
7.5.2 游標的使用方法 112
7.5.3 游標變量 116
7.5.4 利用游標更新或刪除數(shù)據(jù) 117
7.6 事務 119
7.6.1 事務的概念 119
7.6.2 事務的使用 121
7.6.3 事務的分類 121
7.6.4 事務隔離級別 123
思考題 125
第8章 數(shù)據(jù)完整性 126
8.1 數(shù)據(jù)完整性的概念 126
8.2 約束 129
8.2.1 完整性約束的定義 130
8.2.2 完整性約束狀態(tài) 131
8.2.3 修改和刪除約束 132
8.2.4 查看約束信息 133
8.3 外鍵 133
思考題 134
第9章 數(shù)據(jù)安全管理 135
9.1 數(shù)據(jù)訪問控制 135
9.1.1 用戶管理 135
9.1.2 權限管理 138
9.1.3 角色管理 142
9.2 數(shù)據(jù)庫審計 146
9.3 數(shù)據(jù)加密 151
9.3.1 存儲加密 151
9.3.2 傳輸加密 153
9.4 數(shù)據(jù)庫備份與還原 154
9.4.1 檢查數(shù)據(jù)庫狀態(tài) 154
9.4.2 打開數(shù)據(jù)庫歸檔 154
9.4.3 備份數(shù)據(jù)庫 155
9.4.4 還原數(shù)據(jù)庫 156
思考題 158
第10章 數(shù)據(jù)庫應用程序開發(fā) 159
10.1 開發(fā)準備 159
10.1.1 安裝JDK 159
10.1.2 測試JDK安裝結果 162
10.1.3 安裝Tomcat軟件 163
10.1.4 安裝Java開發(fā)軟件 167
10.2 Java Web項目構成 171
10.3 開發(fā)初體驗 172
10.3.1 數(shù)據(jù)庫連接 172
10.3.2 編寫Java Web程序 176
10.3.3 編寫前端頁面 193
10.3.4 程序運行與訪問 194
10.3.5 后續(xù)改進空間 196
思考題 196
附錄1 實例數(shù)據(jù)庫結構與示例數(shù)據(jù) 198
F1.1 數(shù)據(jù)庫模式和表結構 198
F1.2 表數(shù)據(jù) 199
附錄2 DM8常用數(shù)據(jù)字典與視圖 201
F2.1 常用數(shù)據(jù)字典 201
F2.2 常用動態(tài)性能視圖 202
參考文獻 207