前言
數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快,應(yīng)用最廣的技術(shù)之一,它是專門研究如何科學(xué)的組織和存儲(chǔ)數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù)的技術(shù)。它已成為各行各業(yè)存儲(chǔ)數(shù)據(jù)、管理信息、共享資源和決策支持的最先進(jìn),最常用的技術(shù)。
當(dāng)前互聯(lián)網(wǎng)+與大數(shù)據(jù),一切都建立在數(shù)據(jù)庫(kù)之上,以數(shù)據(jù)說(shuō)話,首先需要聚集數(shù)據(jù)、分析數(shù)據(jù)和管理數(shù)據(jù),數(shù)據(jù)庫(kù)技術(shù)已成為各種計(jì)算機(jī)系統(tǒng)的核心技術(shù)。數(shù)據(jù)庫(kù)相關(guān)知識(shí)也已成為每個(gè)人必須掌握的知識(shí)。
一、數(shù)據(jù)庫(kù)4個(gè)基本概念
1.1 數(shù)據(jù)(Data)
數(shù)據(jù)(Data)是信息的具體變現(xiàn)形式。在現(xiàn)實(shí)中的數(shù)據(jù)與其語(yǔ)義是不可分的。如93是一個(gè)數(shù)據(jù),在不同語(yǔ)義下代表不同的意義:
語(yǔ)義1: 學(xué)生某門課的成績(jī)
語(yǔ)義2: 某人的體重
語(yǔ)義3: 公司員工的人數(shù)
數(shù)據(jù)是大量存在的,在特定的語(yǔ)義(背景)下,就成為信息。
例如:
記錄(張三,女,1996,蘇州)就是數(shù)據(jù)。文字、圖形、圖像、聲音等都是數(shù)據(jù),各類數(shù)據(jù)必須數(shù)字化后才能加工處理。
1.2 數(shù)據(jù)庫(kù)(DataBase,DB)
數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱DB)是一個(gè)存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)。是數(shù)據(jù)和數(shù)據(jù)對(duì)象的集合。這種集合可以長(zhǎng)期儲(chǔ)存,具有確定的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),同時(shí)能以安全可靠的方法進(jìn)行數(shù)據(jù)的存儲(chǔ)和檢索。
當(dāng)今世界,數(shù)據(jù)庫(kù)非常廣泛的應(yīng)用在生活的方方面面。
例如:
12306保存了車次,售票等數(shù)據(jù)等等
1.3 數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBase Managemet System,DBMS)
數(shù)據(jù)庫(kù)中數(shù)據(jù)量龐大,如何定義,操縱和管理 ?我們就需要用到數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBase Management System,簡(jiǎn)稱DBMS),它是位于用戶應(yīng)用程序與操作系統(tǒng)之間的一層系統(tǒng)軟件,用來(lái)操縱和管理數(shù)據(jù)庫(kù)的軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)。
在數(shù)據(jù)庫(kù)管理系統(tǒng)中,他有如下功能:
- 數(shù)據(jù)定義功能:DBMS提供數(shù)據(jù)定義(DDL)語(yǔ)言,來(lái)定義數(shù)據(jù)庫(kù)結(jié)構(gòu),并被保存在數(shù)據(jù)字典中。
- 數(shù)據(jù)存取功能:DBMS提供數(shù)據(jù)操縱語(yǔ)言(DML),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的基本存取操作(查詢,插入,修改和刪除)
- 數(shù)據(jù)庫(kù)運(yùn)行管理功能:DBMS提供數(shù)據(jù)控制功能,通過保證數(shù)據(jù)的安全性、完整性和并發(fā)控制等,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的有效控制和管理,以確保數(shù)據(jù)正確有效
- 數(shù)據(jù)庫(kù)的建立和維護(hù)功能:包括數(shù)據(jù)庫(kù)初始數(shù)據(jù)的裝入,數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)、恢復(fù)、系統(tǒng)性能監(jiān)視、分析等功能。
- 數(shù)據(jù)庫(kù)的傳輸:DBMS提供處理數(shù)據(jù)的傳輸,實(shí)現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。
常用的DBMS有Oracle、MySQL、Microsoft SQL Server等
1.4 數(shù)據(jù)庫(kù)系統(tǒng)(DataBase System,DBS)
數(shù)據(jù)庫(kù)系統(tǒng)(DataBase System,簡(jiǎn)稱DBS)是指引入數(shù)據(jù)庫(kù)技術(shù)后的整個(gè)計(jì)算機(jī)系統(tǒng)。能夠?qū)崿F(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的核心系統(tǒng)。
數(shù)據(jù)庫(kù)系統(tǒng)主要包括3個(gè)部分:
計(jì)算機(jī)系統(tǒng)(軟件、硬件和人)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)。
即DBS?=?計(jì)算機(jī)系統(tǒng)?+?DB?+?DBMS
二、數(shù)據(jù)庫(kù)技術(shù)的歷史
2.1 數(shù)據(jù)庫(kù)管理技術(shù)的歷史
人工管理階段
- 數(shù)據(jù)不保存
- 數(shù)據(jù)由程序各自管理
- 一組數(shù)據(jù)只能對(duì)應(yīng)一個(gè)程序
- 數(shù)據(jù)不具備獨(dú)立性
文件系統(tǒng)階段
- 數(shù)據(jù)可以長(zhǎng)期的保存
- 數(shù)據(jù)由文件系統(tǒng)管理
- 數(shù)據(jù)可以結(jié)構(gòu)化(記錄內(nèi)部是有結(jié)構(gòu)的,整體無(wú)結(jié)構(gòu))
- 數(shù)據(jù)共享差,冗余度大
- 有了一定的獨(dú)立性
- 數(shù)據(jù)面對(duì)的對(duì)象是某一個(gè)程序
數(shù)據(jù)庫(kù)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)由DBMS管理
- 數(shù)據(jù)整體結(jié)構(gòu)化
- 數(shù)據(jù)共享性高
- 高度的物理獨(dú)立性和一定的邏輯獨(dú)立性
- 數(shù)據(jù)控制能力由DBMS統(tǒng)一管理和控制
數(shù)據(jù)庫(kù)管理技術(shù)各階段比較分析:
2.2 數(shù)據(jù)庫(kù)的發(fā)展
數(shù)據(jù)庫(kù)最早的起源是因?yàn)槊绹?guó)政府要管理龐大的火箭構(gòu)件數(shù)據(jù),要求IBM進(jìn)行數(shù)據(jù)庫(kù)的開發(fā)。
1968年誕生了層次數(shù)據(jù)庫(kù)
1969年誕生了網(wǎng)狀數(shù)據(jù)庫(kù)
1970年誕生了關(guān)系數(shù)據(jù)庫(kù)
2.3 未來(lái)已來(lái)
新型數(shù)據(jù)庫(kù)由普通數(shù)據(jù)庫(kù)到與各種先進(jìn)技術(shù)結(jié)合所形成的新型數(shù)據(jù)庫(kù):
- OA?DB + Management Information System
- Database Machine ?DB + Computer Architecture
- Intelligent Database ? DB + Artificial Intelligence
- Distributed Database(DDB) ? DB + Computer Network
- Image Database / Multimedia Database ? DB + Image
- processing/ Multimedia processing
- Temporal Database ? DB + 時(shí)態(tài)技術(shù)處理
- 傳感器數(shù)據(jù)庫(kù) RFID(Radio Frequency IDentification)射頻識(shí)別技術(shù),可以薄如紙張,小如豆粒??梢詿o(wú)線存儲(chǔ)、發(fā)送數(shù)據(jù)。
三、數(shù)據(jù)模型
現(xiàn)實(shí)生活中一張地圖、一組建筑沙盤、一架航模飛機(jī)都是的模型。
而我們?cè)跀?shù)據(jù)庫(kù)中,要把現(xiàn)實(shí)世界中存在的數(shù)據(jù)進(jìn)行建模。比如我們把一個(gè)學(xué)校轉(zhuǎn)化成數(shù)學(xué)模型,然后存儲(chǔ)在計(jì)算機(jī)中。就需要經(jīng)過一些數(shù)據(jù)抽象的步驟:
- 在數(shù)據(jù)庫(kù)的開發(fā)過程中,我們把學(xué)校中的數(shù)據(jù),通過概念結(jié)構(gòu)的設(shè)計(jì),轉(zhuǎn)化成概念數(shù)據(jù)模型
- 然后對(duì)概念數(shù)據(jù)模型進(jìn)行抽象,轉(zhuǎn)化成數(shù)據(jù)模型(邏輯模型)
- 最終通過計(jì)算機(jī)物理模型的實(shí)現(xiàn),有效的表達(dá)在計(jì)算機(jī)。
3.1 層次模型
層次模型的數(shù)據(jù)結(jié)構(gòu)是樹型結(jié)構(gòu)。滿足下面兩個(gè)條件的基本層次的集合為層次模型
- 有且只有一個(gè)結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),該節(jié)點(diǎn)稱為根結(jié)點(diǎn)
- 根結(jié)點(diǎn)以外的其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)
根節(jié)點(diǎn):最頂上的唯一的一個(gè),所以A就是根結(jié)點(diǎn)
雙親節(jié)點(diǎn):子節(jié)點(diǎn)的父節(jié)點(diǎn)就叫做雙親節(jié)點(diǎn),如A是B、C的雙親節(jié)點(diǎn)
以下是教員學(xué)生層次數(shù)據(jù)模型
以下是教員學(xué)生層次數(shù)據(jù)的值
通過層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)可以清晰的了解到邏輯上對(duì)數(shù)據(jù)是怎么儲(chǔ)存的(1對(duì)N)
層次模型的數(shù)據(jù)結(jié)構(gòu)的優(yōu)點(diǎn) :
- 結(jié)構(gòu)比較簡(jiǎn)單清晰
- 查詢效率高
- 提供了良好的完整性支持
層次模型的數(shù)據(jù)結(jié)構(gòu)的缺點(diǎn)
- 結(jié)點(diǎn)之間的多對(duì)多聯(lián)系表示不自然
- 對(duì)插入和刪除操作的限制多,應(yīng)用程序的編寫比較復(fù)雜
- 查詢孩子結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)
- 層次命令趨于程序化
3.2 網(wǎng)狀模型
網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)是是圖型結(jié)構(gòu),任一結(jié)點(diǎn)都可以無(wú)雙親或有一個(gè)以上的雙親(N對(duì)N)。
例如:
學(xué)生進(jìn)行選修課程的時(shí)候可以選擇多門課程,一門課程也可以被多名學(xué)生選擇
網(wǎng)狀模型的優(yōu)點(diǎn):
- 能夠更為直接地描述現(xiàn)實(shí)世界,如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親,具有良好的性能,存取效率較高
網(wǎng)狀模型的缺點(diǎn):
- 結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫(kù)的結(jié)構(gòu)就變得越來(lái)越復(fù)雜,不利于最終用戶掌握
- DDL、DML語(yǔ)言復(fù)雜,用戶不容易使用
- 記錄之間聯(lián)系是通過存取路徑實(shí)現(xiàn)的,用戶必須了解系統(tǒng)結(jié)構(gòu)的細(xì)節(jié)。
3.3 關(guān)系模型
層次、網(wǎng)狀模型基本上是面向?qū)I(yè)人員的,與物理層關(guān)系密切。我們需要一種面向用戶的數(shù)據(jù)模型,因此我們用二維表(關(guān)系)來(lái)描述實(shí)體及實(shí)體間聯(lián)系的模型。
例如,在現(xiàn)實(shí)生活中,有兩張表,一個(gè)是班級(jí)信息表,一個(gè)是學(xué)生信息表。一名學(xué)生只能對(duì)應(yīng)一個(gè)班級(jí),班級(jí)中可以包含多名學(xué)生,這在現(xiàn)實(shí)生活中是一對(duì)多的聯(lián)系,我們通過設(shè)置兩個(gè)相同的屬性列,就可以把這兩個(gè)關(guān)系聯(lián)接在一起,我們通過學(xué)生的ClaID就可以查詢到班級(jí)相關(guān)的信息。
CREATE TABLE Student
(StuID char(13),
StuName varchar(8),
StuBir smalldatetime,
StuSex char(2),
StuAddr varchar(30),
Cla_ID char(10) ,
CONSTRAINT class_Cla_ID FOREIGN key(Cla_ID) REFERENCES class(Cla_ID)
);
關(guān)系模型的優(yōu)點(diǎn):
- 建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上
- 概念單一
- 關(guān)系模型的存取路徑對(duì)用戶透明
關(guān)系模型的缺點(diǎn) :
- 存取路徑對(duì)用戶透明,查詢效率往往不如格式化數(shù)據(jù)模型
- 為提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)的難度
數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界存在的客觀對(duì)象進(jìn)行抽象認(rèn)識(shí)。
按照抽象的層次可分為:概念模型->數(shù)據(jù)模型(邏輯模型)->物理模型。
數(shù)據(jù)模型(邏輯模型):層次模型,網(wǎng)狀模型,關(guān)系模型,面向?qū)ο竽P偷?,關(guān)系模型是我們最常用的一種數(shù)據(jù)模型
四、模式與映像
在上面我們了解了數(shù)據(jù)庫(kù)的工作壞境,應(yīng)用程序是通過DBMS來(lái)訪問數(shù)據(jù)庫(kù)里的數(shù)據(jù)。
例如,圖書借閱系統(tǒng)。圖書采買管理系統(tǒng)中有圖書采買管理程序、圖書借閱程序管理程序等很多程序,他們是怎么DBMS進(jìn)行數(shù)據(jù)庫(kù)的訪問的?
4.1 數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)
從數(shù)據(jù)庫(kù)應(yīng)用開發(fā)人員角度看,數(shù)據(jù)庫(kù)系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu),是數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的系統(tǒng)結(jié)構(gòu)
從數(shù)據(jù)庫(kù)最終用戶角度看,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)分為:
4.2 模式(Schema)
模式(Schema)是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)和特征的描述,是型的描述,不涉及具體值, 反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系。
4.3 三級(jí)模式
4.3.1 模式(邏輯模式)
模式也稱邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,所有用戶的公共數(shù)據(jù)視圖,一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式 。簡(jiǎn)單點(diǎn)理解就是所有用戶的公共視圖(全局視圖),可以用數(shù)據(jù)定義語(yǔ)言DDL來(lái)定義。
模式是數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)的中間層 ,與數(shù)據(jù)的物理存儲(chǔ)細(xì)節(jié)和硬件環(huán)境、應(yīng)用程序、開發(fā)工具及高級(jí)程序設(shè)計(jì)無(wú)關(guān)。
模式的定義 :
- 數(shù)據(jù)的邏輯結(jié)構(gòu)(數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等)
- 數(shù)據(jù)之間的聯(lián)系
- 數(shù)據(jù)有關(guān)的安全性、完整性要求
4.3.2 外模式(子模式或用戶模式)
數(shù)據(jù)庫(kù)用戶(包括應(yīng)用程序員和最終用戶)使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。
數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示,
用戶能看到的數(shù)據(jù)庫(kù)和視圖跟具體的程序或項(xiàng)目有關(guān),可用DML來(lái)操作。
外模式的作用: 保證數(shù)據(jù)庫(kù)的安全性
模式與外模式的關(guān)系: 一對(duì)多
- 外模式通常是模式的子集
- 一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式
- 對(duì)模式中同一數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長(zhǎng)度、保密級(jí)別等都可以不同。
4.3.3 內(nèi)模式(也稱存儲(chǔ)模式)
內(nèi)模式是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述
是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式
- 記錄的存儲(chǔ)方式(如順序存儲(chǔ),按照B+樹結(jié)構(gòu)存儲(chǔ),按hash方法存儲(chǔ)等)
- 索引的組織方式
- 數(shù)據(jù)是否壓縮存儲(chǔ)
- 數(shù)據(jù)是否加密
- 數(shù)據(jù)存儲(chǔ)記錄結(jié)構(gòu)的規(guī)定。
簡(jiǎn)單而言內(nèi)模式對(duì)應(yīng)物理級(jí),數(shù)據(jù)在物理介質(zhì)的存儲(chǔ)方式和存儲(chǔ)結(jié)構(gòu)。
4.4 二級(jí)映象
三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別
二級(jí)映象在數(shù)據(jù)庫(kù)管理系統(tǒng)內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換
- 外模式/模式映像
- 模式/內(nèi)模式映像
主要保證數(shù)據(jù)的邏輯獨(dú)立性
當(dāng)模式改變時(shí),數(shù)據(jù)庫(kù)管理員對(duì)外模式/模式映象作相應(yīng)改變,使外模式保持不變
應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性
保證數(shù)據(jù)的物理獨(dú)立性
當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變了(例如選用了另一種存儲(chǔ)結(jié)構(gòu)),數(shù)據(jù)庫(kù)管理員修改模式/內(nèi)模式映象,使模式保持不變。
應(yīng)用程序不受影響。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-410699.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-410699.html
到了這里,關(guān)于【數(shù)據(jù)庫(kù)原理 ? 一】數(shù)據(jù)庫(kù)系統(tǒng)概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!