數(shù)據(jù)庫技術(shù)案例教程-從MySQL到MongoDB_第1頁
數(shù)據(jù)庫技術(shù)案例教程-從MySQL到MongoDB_第2頁
數(shù)據(jù)庫技術(shù)案例教程-從MySQL到MongoDB_第3頁
數(shù)據(jù)庫技術(shù)案例教程-從MySQL到MongoDB_第4頁
數(shù)據(jù)庫技術(shù)案例教程-從MySQL到MongoDB_第5頁
已閱讀5頁,還剩242頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)閱讀全文

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

高等職業(yè)教育校企合作系列教材·大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)

數(shù)據(jù)庫技術(shù)案例教程

——從MySQL到MongoDB

方一新?朱?東?王?喜?主編

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd12020-8-198:44:11

內(nèi)容簡介

當(dāng)前以云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)為代表的新一代信息技術(shù)正在向制造業(yè)加速滲透融合。

高等教育信息技術(shù)專業(yè)人才培養(yǎng)只有面向產(chǎn)業(yè),才能為產(chǎn)業(yè)發(fā)展提供強(qiáng)有力的人才支撐。

本書選擇新能源汽車監(jiān)測應(yīng)用作為載體,通過一系列典型案例將數(shù)據(jù)庫技術(shù)基礎(chǔ)和核心知

識蘊(yùn)含其中。本書首先介紹數(shù)據(jù)庫技術(shù)基礎(chǔ)以及應(yīng)用場景,然后結(jié)合項目案例的實(shí)際需要,

從關(guān)系型數(shù)據(jù)庫MySQL自然過渡到非關(guān)系型數(shù)據(jù)庫MongoDB。

本書共14個單元。

第一部分為數(shù)據(jù)庫基礎(chǔ)(第1單元),主要講解數(shù)據(jù)庫的起源與發(fā)展,以及數(shù)據(jù)庫基

礎(chǔ)知識。

第二部分為關(guān)系型數(shù)據(jù)庫(第2~9單元),主要介紹MySQL數(shù)據(jù)庫的基本操作、數(shù)

據(jù)表的基本操作、數(shù)據(jù)查詢與更新、視圖、索引與優(yōu)化、數(shù)據(jù)庫編程,以及備份與恢復(fù)。

第三部分為非關(guān)系型數(shù)據(jù)庫(第10~14單元),著重介紹MongoDB的使用,包含集

合與文檔、查詢文檔、聚合查詢,以及索引與優(yōu)化。

本書涵蓋數(shù)據(jù)庫技術(shù)基礎(chǔ)、關(guān)系型數(shù)據(jù)庫MySQL的使用、非關(guān)系型數(shù)據(jù)庫MongoDB

的使用,適合作為高職院校計算機(jī)專業(yè)的數(shù)據(jù)庫課程教材,也可作為數(shù)據(jù)庫技術(shù)愛好者的

參考用書。

圖書在版編目(CIP)數(shù)據(jù)

數(shù)據(jù)庫技術(shù)案例教程:從MySQL到MongoDB/方一新,朱東,王喜

主編.—北京:中國鐵道出版社有限公司,2020.8

高等職業(yè)教育校企合作系列教材.大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)

ISBN978-7-113-27138-1

Ⅰ.①數(shù)…Ⅱ.①方…②朱…③王…Ⅲ.①關(guān)系數(shù)據(jù)庫系統(tǒng)-

高等職業(yè)教育-教材Ⅳ.①TP311.132.3

中國版本圖書館CIP數(shù)據(jù)核字(2020)第142470號

書名:數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB

作者:方一新朱東王喜

策劃:翟玉峰編輯部電話:(010)83517321

責(zé)任編輯:翟玉峰?徐盼欣

封面設(shè)計:鄭春鵬

責(zé)任校對:張玉華

責(zé)任印制:樊啟鵬

出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)

網(wǎng)址:/51eds/

印刷:三河市航遠(yuǎn)印刷有限公司

版次:2020年8月第1版?2020年8月第1次印刷

開本:787mm×1092mm1/16?印張:15.25?字?jǐn)?shù):345千

書號:ISBN978-7-113-27138-1

定價:45.00元

版權(quán)所有侵權(quán)必究

凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836

打擊盜版舉報電話:(010)51873659

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd22020-8-2018:11:29

前言

數(shù)據(jù)庫技術(shù)課程是軟件技術(shù)等計算機(jī)相關(guān)專業(yè)的核心基礎(chǔ)課程,如何將數(shù)據(jù)庫技術(shù)

的相關(guān)內(nèi)容有機(jī)組合起來,讓學(xué)生在學(xué)習(xí)過程中能夠扎實(shí)掌握基本的數(shù)據(jù)庫原理,能夠

熟練地操作數(shù)據(jù)庫管理系統(tǒng),并且能夠激發(fā)學(xué)生的熱情和動力,體會到學(xué)習(xí)的樂趣,是

本書重點(diǎn)關(guān)注的內(nèi)容。

1.結(jié)構(gòu)

本書采用模塊化的編寫思路,共分為14個單元和45個任務(wù)。全書學(xué)習(xí)內(nèi)容分成三

部分:數(shù)據(jù)庫基礎(chǔ)、關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。

(1)數(shù)據(jù)庫基礎(chǔ)

單元1:介紹數(shù)據(jù)庫的基本概念、數(shù)據(jù)庫技術(shù)的發(fā)展過程、根據(jù)需求繪制E-R圖,

以及將E-R圖轉(zhuǎn)換為關(guān)系模式。

(2)關(guān)系型數(shù)據(jù)庫

單元2:介紹MySQL開發(fā)環(huán)境的搭建,以及數(shù)據(jù)庫的創(chuàng)建與管理。

單元3:數(shù)據(jù)表是數(shù)據(jù)庫的核心內(nèi)容,本單元主要介紹在MySQL數(shù)據(jù)庫管理系統(tǒng)中

創(chuàng)建數(shù)據(jù)表、為表中字段設(shè)置合適的數(shù)據(jù)類型,以及各種約束條件。

單元4、5:查詢和更新是數(shù)據(jù)庫最常用的操作,也是數(shù)據(jù)庫學(xué)習(xí)的核心內(nèi)容,這兩

個單元介紹如何對表中數(shù)據(jù)進(jìn)行增刪改操作,對數(shù)據(jù)表進(jìn)行各種條件查詢、連接查詢、

嵌套查詢等,以及對表中數(shù)據(jù)進(jìn)行統(tǒng)計分析。

單元6~8:這3個單元主要介紹如何對數(shù)據(jù)庫中各種操作進(jìn)行封裝以及優(yōu)化,提高

數(shù)據(jù)庫的使用效率。

單元9:數(shù)據(jù)庫在使用過程中難免會出現(xiàn)各種不可控因素,本單元介紹備份和恢復(fù),

以在實(shí)際使用數(shù)據(jù)庫時保證數(shù)據(jù)的安全。

(3)非關(guān)系型數(shù)據(jù)庫

單元10:非關(guān)系型數(shù)據(jù)庫與傳統(tǒng)關(guān)系型數(shù)據(jù)庫在設(shè)計理念、使用方式上有很大區(qū)別,

本單元主要介紹非關(guān)系型數(shù)據(jù)庫的基本概念,以及MongoDB的安裝和配置。

單元11:文檔與集合是MongoDB的核心內(nèi)容,所有數(shù)據(jù)都是通過文檔與集合存儲的,

本單元介紹文檔與集合的使用。

單元12、13:這兩個單元介紹集合中數(shù)據(jù)的查詢、聚合統(tǒng)計等非關(guān)系型數(shù)據(jù)庫最常

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd32020-8-198:44:11

用的操作,以及非關(guān)系型數(shù)據(jù)庫的很多優(yōu)點(diǎn)。

單元14:本單元介紹索引和優(yōu)化,這是提高M(jìn)ongoDB性能的重要方式。

2.使用

本書的參考學(xué)時為92學(xué)時,建議采用理論實(shí)踐一體化教學(xué)模式,教學(xué)單元與學(xué)時安

排如下:

單元單元名稱學(xué)時安排

單元1認(rèn)識數(shù)據(jù)庫8

單元2數(shù)據(jù)庫的基本操作8

單元3數(shù)據(jù)表的基本操作8

單元4數(shù)據(jù)查詢14

單元5數(shù)據(jù)更新10

單元6視圖6

單元7MySQL索引與優(yōu)化4

單元8數(shù)據(jù)庫編程10

單元9MySQL備份與恢復(fù)4

單元10MongoDB入門4

單元11文檔與集合4

單元12查詢文檔4

單元13聚合查詢4

單元14MongoDB索引與優(yōu)化4

課時總計92

本書提供了所有案例的源代碼,以方便學(xué)生更好地完成數(shù)據(jù)庫的學(xué)習(xí),從而更有效

地提高學(xué)生的學(xué)習(xí)積極性和學(xué)習(xí)效果。本書配套的資源包、運(yùn)行腳本、教學(xué)課件等,可

登錄進(jìn)行下載。

本書適合作為高職院校計算機(jī)專業(yè)的數(shù)據(jù)庫課程教材,也可作為數(shù)據(jù)庫技術(shù)愛好者

的參考用書。

本書由方一新、朱東、王喜任主編,由盛永華、劉文軍、雷暉任副主編,并聯(lián)合江

蘇一道云科技發(fā)展有限公司共同編寫而成。

本書在編寫過程中力求內(nèi)容準(zhǔn)確、完善,但限于編者水平及時間,書中不妥或疏漏

之處在所難免,殷切希望廣大讀者批評指正。

編者

2020年3月

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd42020-8-198:44:12

目錄

單元1?認(rèn)識數(shù)據(jù)庫14.設(shè)計的規(guī)范化與反規(guī)范化17

任務(wù)1.1數(shù)據(jù)庫的起源與發(fā)展1單元小結(jié)19

技術(shù)要點(diǎn)1課后習(xí)題19

.?dāng)?shù)據(jù)庫的發(fā)展史

11單元2?數(shù)據(jù)庫的基本操作20

.?dāng)?shù)據(jù)庫應(yīng)用

24任務(wù)2.1?設(shè)置數(shù)據(jù)庫開發(fā)環(huán)境20

3.常見的數(shù)據(jù)庫管理系統(tǒng)4

技術(shù)要點(diǎn)20

4.?dāng)?shù)據(jù)庫管理工具9

1.安裝與配置MySQL20

5.如何學(xué)習(xí)數(shù)據(jù)庫9

2.配置MySQL管理工具30

任務(wù)1.2?基本概念9

3.MySQL體系結(jié)構(gòu)32

技術(shù)要點(diǎn)

10任務(wù)2.2?創(chuàng)建數(shù)據(jù)庫33

1.信息..10

技術(shù)要點(diǎn)33

2.?dāng)?shù)據(jù)..10

1.系統(tǒng)數(shù)據(jù)庫33

.?dāng)?shù)據(jù)處理

3102.存儲引擎36

.?dāng)?shù)據(jù)庫

4103.創(chuàng)建數(shù)據(jù)庫37

.?dāng)?shù)據(jù)庫管理系統(tǒng)

5104.?dāng)?shù)據(jù)庫對象38

.?dāng)?shù)據(jù)庫系統(tǒng)

610任務(wù)2.3?管理數(shù)據(jù)庫42

7SQL12技術(shù)要點(diǎn)42

任務(wù)1.3?數(shù)據(jù)描述12

1.查看數(shù)據(jù)庫42

技術(shù)要點(diǎn)

122.選擇數(shù)據(jù)庫43

.現(xiàn)實(shí)世界

1123.刪除數(shù)據(jù)庫43

.信息世界

2124.HELP命令43

.計算機(jī)世界

3135.修改數(shù)據(jù)庫45

任務(wù)1.4?數(shù)據(jù)模型13任務(wù)2.4?MySQL錯誤代碼.

技術(shù)要點(diǎn)14...和消息48

1.概念模型14技術(shù)要點(diǎn)48

2.關(guān)系模型141.服務(wù)器端錯誤代碼和消息48

3.關(guān)系數(shù)據(jù)模型中的范式162.查看錯誤代碼49

I

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd12020-8-1914:14:08

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB

單元小結(jié)492.Select語句規(guī)范68

課后習(xí)題49任務(wù)4.2?單表條件查詢71

技術(shù)要點(diǎn)71

單元3?數(shù)據(jù)表的基本操作50

1.邏輯運(yùn)算符71

任務(wù)3.1?數(shù)據(jù)類型50

2.查詢條件71

技術(shù)要點(diǎn)50

3.通配符72

1.?dāng)?shù)值型數(shù)據(jù)50

4.正則表達(dá)式72

2.日期時間類型51

任務(wù)4.3?多表連接查詢78

3.字符串類型52

技術(shù)要點(diǎn)79

4.二進(jìn)制類型52

1.內(nèi)連接79

.序列類型

5522.外連接79

任務(wù)3.2?創(chuàng)建數(shù)據(jù)表53任務(wù)4.4?嵌套查詢85

技術(shù)要點(diǎn)

53技術(shù)要點(diǎn)85

.?dāng)?shù)據(jù)表的結(jié)構(gòu)

1531.嵌套查詢類型85

2.表的命名542.嵌套查詢與連接查詢的

3.語法結(jié)構(gòu)54比較85

4.約束條件54任務(wù)4.5?查詢統(tǒng)計91

任務(wù)3.3?查看數(shù)據(jù)表60技術(shù)要點(diǎn)91

技術(shù)要點(diǎn)601.聚合函數(shù)91

1.查看所有數(shù)據(jù)表602.GROUPBY語句91

2.查看數(shù)據(jù)表基本結(jié)構(gòu)61任務(wù)4.6?組合查詢94

3.查看數(shù)據(jù)表詳細(xì)結(jié)構(gòu)61技術(shù)要點(diǎn)94

任務(wù)3.4?修改、刪除數(shù)據(jù)表621.UNION語法結(jié)構(gòu)94

技術(shù)要點(diǎn)622.UNION規(guī)則94

1.修改數(shù)據(jù)表62任務(wù)4.7?查詢緩存95

2.刪除數(shù)據(jù)表63技術(shù)要點(diǎn)95

3.修改字段排序631.緩存概述95

4.修改數(shù)據(jù)表名稱632.配置緩存97

5.刪除外鍵約束63單元小結(jié)98

單元小結(jié)66課后習(xí)題98

課后習(xí)題66單元5?數(shù)據(jù)更新99

單元4?數(shù)據(jù)查詢67任務(wù)5.1?插入數(shù)據(jù)99

任務(wù)4.1?單表查詢67技術(shù)要點(diǎn)99

.為表中所有字段插入數(shù)據(jù)

技術(shù)要點(diǎn)67199

.為表中指定字段添加數(shù)據(jù)

1.SELECT語句語法672100

II

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd22020-8-1914:14:09

目?錄?

3.插入多行數(shù)據(jù)100單元小結(jié)129

4.通過Navicat插入數(shù)據(jù)100課后習(xí)題129

5.插入查詢結(jié)果101

單元7?MySQL索引與優(yōu)化130

任務(wù)5.2?修改數(shù)據(jù)101

任務(wù)7.1?索引130

技術(shù)要點(diǎn)102

技術(shù)要點(diǎn)130

1.無條件修改102

1.索引的概念130

2.有條件修改102

2.索引的優(yōu)缺點(diǎn)131

3.通過Navicat圖形化向?qū)?/p>

3.索引分類131

修改數(shù)據(jù)102

4.創(chuàng)建索引132

任務(wù)5.3?刪除數(shù)據(jù)103

5.索引的使用133

技術(shù)要點(diǎn)103

6.查看索引134

1.刪除數(shù)據(jù)103

任務(wù)7.2?優(yōu)化135

2.通過Navicat刪除數(shù)據(jù)104

技術(shù)要點(diǎn)135

任務(wù)5.4?導(dǎo)入與導(dǎo)出105

1.掌握各種SQL語句的

技術(shù)要點(diǎn)105

執(zhí)行頻率135

1.通過Navicat圖形工具105

2.分析SQL語句的

2.執(zhí)行腳本導(dǎo)入數(shù)據(jù)117

執(zhí)行計劃135

3.通過SELECT和LOAD

3.常用的優(yōu)化方法136

語句117

單元小結(jié)138

單元小結(jié)118

課后習(xí)題138

課后習(xí)題118

單元8?數(shù)據(jù)庫編程139

單元6?視圖120

任務(wù)8.1?SQL編程基礎(chǔ)139

任務(wù)6.1?創(chuàng)建視圖120

技術(shù)要點(diǎn)139

技術(shù)要點(diǎn)120

1.常量與變量139

1.視圖定義120

2.流程控制142

2.創(chuàng)建視圖121

任務(wù)8.2?系統(tǒng)函數(shù)145

任務(wù)6.2?應(yīng)用視圖124

技術(shù)要點(diǎn)145

技術(shù)要點(diǎn)124

1.?dāng)?shù)學(xué)函數(shù)145

1.通過視圖查詢數(shù)據(jù)124

2.日期和時間函數(shù)145

2.查看視圖124

3.字符串函數(shù)146

任務(wù)6.3?管理視圖126

4.系統(tǒng)信息函數(shù)146

技術(shù)要點(diǎn)126

5.聚合函數(shù)146

1.修改視圖126

6.條件判斷函數(shù)147

2.刪除視圖127

7.其他函數(shù)148

III

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd32020-8-1914:14:09

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB

任務(wù)8.3?自定義函數(shù)1536.MongoDB170

技術(shù)要點(diǎn)1537.Robo3T工具171

1.自定義函數(shù)的創(chuàng)建1538.關(guān)系型數(shù)據(jù)庫與非關(guān)系型

2.管理自定義函數(shù)153數(shù)據(jù)庫的區(qū)別171

任務(wù)8.4?存儲過程155任務(wù)10.2?MongoDB安裝.

技術(shù)要點(diǎn)155....與配置172

1.存儲過程概述155技術(shù)要點(diǎn)172

2.創(chuàng)建和調(diào)用存儲過程1551.Windows環(huán)境下MongoDB

任務(wù)8.5?事件157安裝與配置172

技術(shù)要點(diǎn)1582.Robo3T工具的安裝

1.事件158與配置175

2.創(chuàng)建事件1583.監(jiān)控MongoDB179

單元小結(jié)160單元小結(jié)180

課后習(xí)題160課后習(xí)題180

單元9?MySQL備份與恢復(fù)161單元11?文檔與集合181

任務(wù)9.1?備份161任務(wù)11.1?創(chuàng)建數(shù)據(jù)庫181

技術(shù)要點(diǎn)161技術(shù)要點(diǎn)181

1.為什么要備份1611.?dāng)?shù)據(jù)庫181

2.備份的類型1612.?dāng)?shù)據(jù)庫類型181

3.根據(jù)備份數(shù)據(jù)或文件1623.命名數(shù)據(jù)庫的基本要求181

4.備份的步驟1624.?dāng)?shù)據(jù)庫操作命令182

任務(wù)9.2?恢復(fù)164任務(wù)11.2?集合與文檔操作185

技術(shù)要點(diǎn)165技術(shù)要點(diǎn)185

單元小結(jié)1671.文檔185

課后習(xí)題1672.集合185

3.向文檔中插入數(shù)據(jù)186

單元10?MongoDB入門167

4.刪除文檔186

任務(wù)10.1?NoSQL概述167

5.更新文檔187

技術(shù)要點(diǎn)167

6.固定集合188

1.NoSQL的產(chǎn)生167

單元小結(jié)193

2.NoSQL的特點(diǎn)168

課后習(xí)題193

3.NoSQL的應(yīng)用范圍以及

存在問題168單元12?查詢文檔194

4.NoSQL分類169任務(wù)12.1?文檔查詢194

5.?dāng)?shù)據(jù)庫類型的選擇170技術(shù)要點(diǎn)194

IV

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd42020-8-1914:14:09

目?錄?

1.查詢結(jié)果顯示模式1943.聯(lián)集合查詢211

2.簡單查詢196任務(wù)13.2..map-reduce217

3.條件查詢196技術(shù)要點(diǎn)217

4.多條件查詢1971.MapReduce概述217

5.限制返回結(jié)果記錄數(shù)1972.MapReduce方法218

6.排序197單元小結(jié)221

任務(wù)12.2?游標(biāo)204課后習(xí)題221

技術(shù)要點(diǎn)204

單元14?MongoDB

1.游標(biāo)的概念204

索引與優(yōu)化222

2.聲明游標(biāo)204

任務(wù)14.1?索引222

3.使用游標(biāo)204

技術(shù)要點(diǎn)222

單元小結(jié)208

1.索引222

課后習(xí)題208

2.查詢分析224

單元13?聚合查詢2093.索引限制225

任務(wù)13.1?聚合管道209任務(wù)14.2?優(yōu)化230

技術(shù)要點(diǎn)209技術(shù)要點(diǎn)230

1.a(chǎn)ggregate()209單元小結(jié)233

2.聚合管道210課后習(xí)題233

V

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd52020-8-1914:14:09

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd62020-8-198:44:13

單元1

認(rèn)識數(shù)據(jù)庫

在日常工作和生活中,很多時候都會用到數(shù)據(jù)庫。在網(wǎng)頁上瀏覽新聞、通過電子郵箱收發(fā)郵件、

通過手機(jī)銀行轉(zhuǎn)賬等操作都是在和數(shù)據(jù)庫打交道。數(shù)據(jù)庫是一個存儲數(shù)據(jù)的倉庫,為了方便數(shù)

據(jù)的存儲和管理,將數(shù)據(jù)按照特定的規(guī)則存儲在磁盤上,通過數(shù)據(jù)庫管理系統(tǒng)有效地組織和管

理數(shù)據(jù)庫中的數(shù)據(jù)。目前,市場上已經(jīng)有很多優(yōu)秀的數(shù)據(jù)庫管理系統(tǒng),比如關(guān)系型的Oracle、

MySQL、SQLServer等,以及非關(guān)系型的MongoDB、HBase等。

學(xué)習(xí)目標(biāo)

【知識目標(biāo)】

了解數(shù)據(jù)庫的起源與發(fā)展。

了解常用的關(guān)系型與非關(guān)系型數(shù)據(jù)庫產(chǎn)品。

掌握數(shù)據(jù)庫基礎(chǔ)知識。

【能力目標(biāo)】

能繪制E-R圖。

能將E-R圖轉(zhuǎn)換成關(guān)系模式。

任務(wù)1.1數(shù)據(jù)庫的起源與發(fā)展

任務(wù)描述

視頻

數(shù)據(jù)庫技術(shù)是從20世紀(jì)中葉開始興起的一門信息管理學(xué)科,是計算

機(jī)科學(xué)中非常重要的一個分支。隨著計算機(jī)應(yīng)用的飛速發(fā)展,數(shù)據(jù)處理越

來越占主導(dǎo)地位,數(shù)據(jù)庫技術(shù)的應(yīng)用也越來越廣泛。數(shù)據(jù)管理是數(shù)據(jù)庫最

核心的任務(wù),主要內(nèi)容包括數(shù)據(jù)的分類、組織、編碼、存儲、查詢和維

護(hù)。從數(shù)據(jù)管理的角度看,數(shù)據(jù)庫技術(shù)到目前共經(jīng)歷了3個階段,分別是

任務(wù)1.1數(shù)據(jù)庫的

人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。起源與發(fā)展

技術(shù)要點(diǎn)

1.?dāng)?shù)據(jù)庫的發(fā)展史

(1)人工管理階段

人工管理階段是在20世紀(jì)50年代,當(dāng)時計算機(jī)的主要用途是科學(xué)計算,從硬件看,沒有

1

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd12020-8-198:44:13

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB

磁盤等存儲設(shè)備;從軟件看,沒有操作系統(tǒng),更沒有管理數(shù)據(jù)的應(yīng)用軟件,應(yīng)用程序管理數(shù)

據(jù),數(shù)據(jù)不共享,沒有獨(dú)立性。

在人工管理階段(見圖1-1),數(shù)據(jù)管理的特點(diǎn)如下:

a數(shù)據(jù)不長期保存在計算機(jī)中。

b沒有對數(shù)據(jù)進(jìn)行統(tǒng)一管理的軟件系統(tǒng)。

c數(shù)據(jù)是面向程序的,一組數(shù)據(jù)只對應(yīng)一個應(yīng)用程序,數(shù)據(jù)不能共享,程序之間存在大量

重復(fù)數(shù)據(jù)。

????1???1

????2???2

??

????n???n

圖1-1?人工管理階段

(2)文件系統(tǒng)階段

文件系統(tǒng)階段是從20世紀(jì)50年代到60年代中期,這一階段計算機(jī)不僅應(yīng)用于科學(xué)計算,

還大量應(yīng)用于信息管理,計算機(jī)硬件有了磁盤等外存設(shè)備。

文件系統(tǒng)階段與人工管理階段相比有了很大進(jìn)步,但是數(shù)據(jù)仍然大量冗余,數(shù)據(jù)之間的聯(lián)

系也比較弱,如圖1-2所示。

應(yīng)用程序1文件1

應(yīng)用程序2文件2

…文件系統(tǒng)…

應(yīng)用程序n文件n

圖1-2?文件系統(tǒng)階段

在文件系統(tǒng)階段,數(shù)據(jù)管理的特點(diǎn)如下:

a數(shù)據(jù)可以長期保存在計算機(jī)的外存設(shè)備上。

b數(shù)據(jù)由專門的數(shù)據(jù)管理軟件——文件系統(tǒng)進(jìn)行統(tǒng)一管理。

c數(shù)據(jù)與程序間有一定的獨(dú)立性,數(shù)據(jù)可以共享。

隨著數(shù)據(jù)管理規(guī)模的擴(kuò)大,數(shù)據(jù)量急劇增加,文件系統(tǒng)逐漸暴露出一些問題:

a數(shù)據(jù)冗余度大。

b數(shù)據(jù)獨(dú)立性低。

2

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd22020-8-198:44:15

單元1?認(rèn)識數(shù)據(jù)庫

c數(shù)據(jù)一致性差。

(3)數(shù)據(jù)庫系統(tǒng)階段

數(shù)據(jù)庫系統(tǒng)階段是從20世紀(jì)60年代至今,這一時期由于計算機(jī)技術(shù)的迅速發(fā)展,磁盤存

儲技術(shù)取得重大進(jìn)展,計算機(jī)被廣泛應(yīng)用于管理中。大容量和快速存取的磁盤技術(shù)為數(shù)據(jù)庫技

術(shù)的發(fā)展提供了非常好的條件,數(shù)據(jù)庫系統(tǒng)階段如圖1-3所示。

程序2

程序n

程序1…

統(tǒng)一存取

n

圖1-3?數(shù)據(jù)庫系統(tǒng)階段

在數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)管理的特點(diǎn)如下:

a數(shù)據(jù)結(jié)構(gòu)化。

b數(shù)據(jù)獨(dú)立性高。

c數(shù)據(jù)共享性高、冗余度低。

d具有統(tǒng)一的數(shù)據(jù)管理和控制功能。

數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行?,轉(zhuǎn)向以共享數(shù)據(jù)庫為中心。這

樣既便于數(shù)據(jù)的集中管理,又有利于應(yīng)用程序的開發(fā)和維護(hù),提高了數(shù)據(jù)的利用率和相容性,

提高了決策的可靠性。

數(shù)據(jù)庫技術(shù)發(fā)展三個階段的特點(diǎn)比較如表1-1所示。

表1-1?數(shù)據(jù)庫技術(shù)發(fā)展三個階段的特點(diǎn)比較

比較項目人?工?管?理文?件?系?統(tǒng)數(shù)據(jù)庫系統(tǒng)

硬件技術(shù)無存儲設(shè)備小容量磁盤大容量磁盤

軟件技術(shù)無操作系統(tǒng)文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)

應(yīng)用目的科學(xué)計算科學(xué)計算、數(shù)據(jù)管理大規(guī)模數(shù)據(jù)管理

數(shù)據(jù)處理批處理聯(lián)機(jī)實(shí)時處理、批處理批處理、聯(lián)機(jī)實(shí)時處理、分布處理

面向?qū)ο筇囟☉?yīng)用程序特定應(yīng)用程序多個應(yīng)用程序

共享無共享共享性差、冗余大共享大、冗余低

獨(dú)立性依賴于程序獨(dú)立性差高度獨(dú)立

結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu),整體無整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述

數(shù)據(jù)控制應(yīng)用程序控制應(yīng)用程序控制數(shù)據(jù)庫管理系統(tǒng)控制

3

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd32020-8-198:44:15

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB

2.?dāng)?shù)據(jù)庫應(yīng)用

工作中使用的大部分軟件都是需要用數(shù)據(jù)庫在后臺存儲數(shù)據(jù)的,比如,電商平臺需要存儲

客戶信息、商品信息、訂單信息等;汽車監(jiān)控平臺需要存儲汽車位置信息、車輛狀態(tài)信息等。

數(shù)據(jù)庫根據(jù)其數(shù)據(jù)的存儲方式可以分為關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。

(1)關(guān)系型數(shù)據(jù)庫的特點(diǎn)及其使用場景

關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn):

a復(fù)雜查詢:可以用SQL語句方便地在一個表以及多個表之間進(jìn)行非常復(fù)雜的數(shù)據(jù)查詢。

b事務(wù)支持:使得對于安全性能很高的數(shù)據(jù)訪問要求得以實(shí)現(xiàn)。

關(guān)系型數(shù)據(jù)庫的缺點(diǎn):

c不擅長大量數(shù)據(jù)的寫入處理。

d字段不固定時應(yīng)用不方便。

e不擅長對需要快速返回結(jié)果的簡單查詢進(jìn)行處理。

關(guān)系型數(shù)據(jù)庫的使用場景:

a需要做復(fù)雜處理的數(shù)據(jù)。

b數(shù)據(jù)量不是特別大的數(shù)據(jù)。

c對安全性要求高的數(shù)據(jù)。

d數(shù)據(jù)格式單一的數(shù)據(jù)。

(2)非關(guān)系型數(shù)據(jù)庫的特點(diǎn)及其使用場景

非關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn):

a簡單易部署,基本都是開源軟件,不需要像使用Oracle、SQLServer那樣花費(fèi)成本購買

使用。

b非關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲于緩存之中,而非像關(guān)系型數(shù)據(jù)庫一樣將數(shù)據(jù)存儲在硬盤

中,因此查詢速度遠(yuǎn)優(yōu)于關(guān)系型數(shù)據(jù)庫。

c非關(guān)系型的存儲格式可以是鍵值對,也可以是文檔形式、圖片形式等,所以可以存儲基

礎(chǔ)類型以及對象或者集合等各種格式,而關(guān)系型數(shù)據(jù)庫則只支持基礎(chǔ)類型。

d各個數(shù)據(jù)都是獨(dú)立設(shè)計的,很容易把數(shù)據(jù)分散在多個服務(wù)器上,故減少了每個服務(wù)器上

的數(shù)據(jù)量,即使要處理大量數(shù)據(jù)的寫入,也變得更加容易,數(shù)據(jù)的讀入操作當(dāng)然也同樣容易。

非關(guān)系型數(shù)據(jù)庫的缺點(diǎn):

a無法對表進(jìn)行復(fù)雜的計算。

b不支持連接等功能。

非關(guān)系型數(shù)據(jù)庫的使用場景:

a大容量數(shù)據(jù)存儲。

b格式多樣的數(shù)據(jù)存儲。

c擅長處理查詢速度要求快的數(shù)據(jù)存儲。

3.常見的數(shù)據(jù)庫管理系統(tǒng)

常見的關(guān)系型數(shù)據(jù)庫有Oracle、SQLServer、MySQL等。常見的非關(guān)系性數(shù)據(jù)庫有MongoDB、

HBase等,如圖1-4所示。

4

數(shù)據(jù)庫技術(shù)案例教程——從MySQL到MongoDB.indd42020-8-198:44:15

單元1?認(rèn)識數(shù)據(jù)庫

MySQL

Oracle

㈧?????

SQLServer

...

MongoDB

???????

...

??????ネ?㈧?

Redis

Memcached

????㈧?????????

...

HBase

??????

...

Neo4J

?????

...

圖1-4?常見的數(shù)據(jù)庫管理系統(tǒng)

(1)MySQL

MySQL是用戶非常多的一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如圖1-5所示。由于其體積小、速度

快、總體擁有成本低,且開放源碼,一般中小型企業(yè)經(jīng)常會選擇MySQL作為系統(tǒng)后臺數(shù)據(jù)庫。

其具有卓越的性能,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。

圖1-5?MySQL

MySQL的優(yōu)點(diǎn):

a體積小、速度快、總體擁有成本低。

b支持多種操作系統(tǒng)。

c是開源數(shù)據(jù)庫,提供用于C、C++、Java、PHP、Python的接口,支持多種語言連接操作。

dMySQL的核心程序采用完全的多線程編程。線程是輕量級的進(jìn)程,它可以靈活地為用

戶提供服務(wù),而不過多占用系統(tǒng)資源。

eMySQL有一個非常靈活而且安全的權(quán)限和密碼系統(tǒng)。當(dāng)客戶與MySQL服務(wù)器連接時,

之間所有的密碼傳送被加密,而且MySQL支持主機(jī)認(rèn)證。

f支持大型的數(shù)據(jù)庫,可以方便地支持具有上千萬條記錄的數(shù)據(jù)庫,并可以針對不同的應(yīng)

用進(jìn)行相應(yīng)修改。

g擁有非??焖俣曳€(wěn)定的基于線程的內(nèi)存分配系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論