- MySQL 8 DBA基礎(chǔ)教程
- 孫澤軍 劉華貞
- 2068字
- 2020-11-23 16:40:41
1.1 認識數(shù)據(jù)庫
數(shù)據(jù)庫能夠?qū)?shù)據(jù)按照特定的規(guī)律組織起來。那么,我們?yōu)槭裁匆獙W習數(shù)據(jù)庫?數(shù)據(jù)是如何存儲的?數(shù)據(jù)庫要遵守什么規(guī)則?數(shù)據(jù)庫技術(shù)都經(jīng)歷過什么階段?數(shù)據(jù)庫管理系統(tǒng)會提供哪些功能?當前流行的數(shù)據(jù)庫有哪些?
1.1.1 我們?yōu)槭裁匆獙W習數(shù)據(jù)庫
我們?yōu)槭裁匆獙W習數(shù)據(jù)庫,可以從以下幾個方面來闡述原因。
1.數(shù)據(jù)時代背景
我們身處一個數(shù)據(jù)時代,舉一些簡單的例子來說明這樣一個時代大背景。
學校需要把學生的基本信息(學號、姓名、性別、年齡、年級、班級、成績等)存放在不同的表中,而這些表都需要存放在數(shù)據(jù)倉庫中,老師可以根據(jù)學生的姓名或者學號查閱學生的基本信息,如果使用計算機處理這些工作,管理效率就可以得到極大的提升。
我們?nèi)ド虉龌蛘叱匈徫锝Y(jié)賬時,收銀員的計算機里有進銷存軟件,該軟件的本質(zhì)是記錄和處理消費數(shù)據(jù),顧客每次購買的商品種類、數(shù)量、金額、時間以及每次購買所獲得的積分都通過該軟件存儲在后臺數(shù)據(jù)庫中。
我們的智能手機上的應(yīng)用無時無刻不在記錄和處理關(guān)于我們?nèi)粘I畹臄?shù)據(jù)。購物網(wǎng)站會根據(jù)我們的每次一次網(wǎng)購分析我們的購物喜好,從而向我們推薦合適的商品;健身軟件每天會記錄我們的運動數(shù)據(jù);育兒軟件會記錄嬰兒成長相關(guān)的數(shù)據(jù);聊天軟件會記錄我們的每一條聊天內(nèi)容;社交軟件會根據(jù)我們分享的內(nèi)容而推送相應(yīng)的廣告;電子錢包會記錄我們的每一筆收入和消費;家用攝像機會記錄用戶的基本信息并上傳到云端服務(wù)器,記錄在數(shù)據(jù)庫中。這就是我們所處的互聯(lián)網(wǎng)大數(shù)據(jù)時代,數(shù)據(jù)無處不在,我們必須要學習數(shù)據(jù)庫知識,才能更好地理解這個數(shù)據(jù)世界。
2.軟件行業(yè)的工作性質(zhì)
對于軟件行業(yè)的同學來說:
程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)
無論是傳統(tǒng)的軟件,還是互聯(lián)網(wǎng)網(wǎng)站,或者移動端的應(yīng)用,都要處理數(shù)據(jù)。數(shù)據(jù)庫可以說是學習軟件開發(fā)的核心課程之一,幾乎絕大部分軟件都涉及數(shù)據(jù)庫,很多數(shù)據(jù)必須保存在數(shù)據(jù)庫中,也許最初少量的信息可以保存在文件中,但是隨著數(shù)據(jù)量的增大,文件已經(jīng)不能很理想地處理這些數(shù)據(jù),所以必須掌握使用數(shù)據(jù)庫處理數(shù)據(jù),因為數(shù)據(jù)庫速度更快,更好維護,開發(fā)效率更高。
3.數(shù)據(jù)庫設(shè)計的優(yōu)劣
在數(shù)據(jù)庫設(shè)計階段,對于同一領(lǐng)域建模,不同的建模人員得到的結(jié)果不一樣,進而轉(zhuǎn)換后的關(guān)系模式也不一樣。這樣就存在關(guān)系模式的優(yōu)劣之分。學習數(shù)據(jù)庫就是要學習前人總結(jié)的一些規(guī)則,以及常用的表示方法,進而設(shè)計出更合理、高效的模式。
1.1.2 數(shù)據(jù)庫技術(shù)經(jīng)歷的階段
本小節(jié)將為讀者介紹數(shù)據(jù)庫技術(shù)經(jīng)歷的3個階段,即層次數(shù)據(jù)庫和網(wǎng)狀數(shù)據(jù)庫技術(shù)階段、關(guān)系數(shù)據(jù)庫技術(shù)階段和后關(guān)系數(shù)據(jù)庫技術(shù)階段。
1.層次數(shù)據(jù)庫和網(wǎng)狀數(shù)據(jù)庫技術(shù)階段
層次數(shù)據(jù)庫系統(tǒng)是較早研制成功的數(shù)據(jù)庫系統(tǒng),典型的是1968年由IBM研制的信息管理系統(tǒng)(Information Management System,IMS)。1966年,美國國家航空航天局(NASA)承包商北美航空希望能夠開發(fā)一個計算機程序,用于追蹤火箭的數(shù)百萬個部件,作為對這個需求的回應(yīng),IBM在1968年推出了全球第一個商用數(shù)據(jù)庫管理系統(tǒng),該系統(tǒng)在1969年改名為信息管理系統(tǒng)。
網(wǎng)狀數(shù)據(jù)庫是處理以記錄類型為節(jié)點的網(wǎng)絡(luò)數(shù)據(jù)模型的數(shù)據(jù)庫。世界上第一個網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是美國通用電氣Bachman等人在1964年開發(fā)成功的IDS(Integrated DataStore),IDS奠定了網(wǎng)狀數(shù)據(jù)庫的基礎(chǔ)。
2.關(guān)系數(shù)據(jù)庫技術(shù)階段
1970年,IBM的研究員,有“關(guān)系數(shù)據(jù)庫之父”之稱的埃德加·弗蘭克·科德博士首次提出了數(shù)據(jù)庫的關(guān)系模型的概念,奠定了關(guān)系模型的理論基礎(chǔ)。20世紀70年代,IBM公司的San Jose實驗室研制的關(guān)系數(shù)據(jù)庫問世。20世紀80年代以來,計算機廠商推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型,數(shù)據(jù)庫領(lǐng)域當前的研究工作大都以關(guān)系模型為基礎(chǔ)。關(guān)系數(shù)據(jù)庫技術(shù)的代表數(shù)據(jù)庫管理系統(tǒng)為Oracle、DB2、SQL Server、MySQL、Sybase等。
3.后關(guān)系數(shù)據(jù)庫技術(shù)階段
后關(guān)系數(shù)據(jù)庫實質(zhì)上是在關(guān)系數(shù)據(jù)庫的基礎(chǔ)上融合了面向?qū)ο蠹夹g(shù)和Internet網(wǎng)絡(luò)應(yīng)用開發(fā)背景而發(fā)展起來的。它結(jié)合了傳統(tǒng)數(shù)據(jù)庫(如層次、網(wǎng)狀和關(guān)系數(shù)據(jù)庫)的一些特點,以及Java等編程工具環(huán)境,適用于以Internet Web為基礎(chǔ)的應(yīng)用,開創(chuàng)了關(guān)系數(shù)據(jù)庫的新時代。從后關(guān)系型數(shù)據(jù)庫模型的提出到現(xiàn)在已經(jīng)經(jīng)歷了20多年,隨著后關(guān)系型數(shù)據(jù)庫技術(shù)的發(fā)展,后關(guān)系型數(shù)據(jù)庫產(chǎn)品已經(jīng)不再停留在模型的基礎(chǔ)階段,例如美國InterSystems公司發(fā)布的Caché就是一個用于高性能事務(wù)應(yīng)用的后關(guān)系型數(shù)據(jù)庫管理系統(tǒng),該系統(tǒng)具有面向?qū)ο蟮脑S多功能和一個事務(wù)型多維數(shù)據(jù)模型。
1.1.3 數(shù)據(jù)庫管理系統(tǒng)提供的功能
數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)是數(shù)據(jù)庫系統(tǒng)的核心,是管理數(shù)據(jù)庫的軟件。數(shù)據(jù)庫管理系統(tǒng)就是實現(xiàn)把用戶意義下抽象的邏輯數(shù)據(jù)處理轉(zhuǎn)換成為計算機中具體的物理數(shù)據(jù)處理的軟件。數(shù)據(jù)庫管理系統(tǒng)的主要功能如下:
1.數(shù)據(jù)定義
數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)定義語言(Data Definition Language,DDL)供用戶定義數(shù)據(jù)庫的三級模式結(jié)構(gòu)、兩級映像以及完整性約束和保密限制等約束。簡單地說,數(shù)據(jù)定義語言用來創(chuàng)建數(shù)據(jù)庫中的各種對象—表、視圖、索引、同義詞、聚簇等,比如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
2.數(shù)據(jù)操作
數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)操作語言(Data Manipulation Language,DML)供用戶實現(xiàn)對數(shù)據(jù)的追加(INSERT)、刪除(DELETE)、更新(UPDATE)等操作。
3.數(shù)據(jù)控制
數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)控制語言(Data Control Language,DCL)包含數(shù)據(jù)完整性控制、數(shù)據(jù)安全性控制和數(shù)據(jù)庫的恢復(fù)等,具體如授權(quán)(GRANT)、回滾(ROLLBACK)、提交(COMMIT)等。
- 多媒體CAI課件設(shè)計與制作導(dǎo)論(第二版)
- 高手是如何做產(chǎn)品設(shè)計的(全2冊)
- Leap Motion Development Essentials
- C語言程序設(shè)計(第2版)
- Learning RabbitMQ
- Oracle數(shù)據(jù)庫從入門到運維實戰(zhàn)
- QGIS:Becoming a GIS Power User
- Mastering Linux Network Administration
- Python+Tableau數(shù)據(jù)可視化之美
- 運維前線:一線運維專家的運維方法、技巧與實踐
- 深度探索Go語言:對象模型與runtime的原理特性及應(yīng)用
- SQL Server 2008中文版項目教程(第3版)
- 計算機應(yīng)用基礎(chǔ)(第二版)
- Drupal Search Engine Optimization
- 和孩子一起學編程:用Scratch玩Minecraft我的世界