DBMS的三個(gè)層次:
- 外部層次External Lever=用戶(hù)層次User Lever:某一用戶(hù)能夠看到與處理的數(shù)據(jù),全局?jǐn)?shù)據(jù)的映射,全局?jǐn)?shù)據(jù)的某一個(gè)部分
- 全局層次=概念層次Conceptual Lever=邏輯層次Logic Lever:從全局角度理解/管理的數(shù)據(jù),含相應(yīng)的關(guān)聯(lián)約束
- 內(nèi)部層次Internal Lever=物理層次Physical Lever:存儲(chǔ)在介質(zhì)上的數(shù)據(jù),含存儲(chǔ)路徑、存儲(chǔ)方式、索引方式等
數(shù)據(jù)與模式(Schema):
模式是對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行結(jié)構(gòu)性的描述 所觀察到的數(shù)據(jù)的結(jié)構(gòu)信息
視圖是某一種表現(xiàn)形式下表現(xiàn)出來(lái)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)
三級(jí)模式(三級(jí)視圖):
External Schema —— (External) View
某一用戶(hù)能看到與處理的數(shù)據(jù)的結(jié)構(gòu)描述
(Conceptual) Schema —— Conceptual View
從全局角度理解、管理的數(shù)據(jù)的結(jié)構(gòu)描述。含相應(yīng)的關(guān)聯(lián)約束,體現(xiàn)在數(shù)據(jù)之間的內(nèi)在本質(zhì)聯(lián)系
Internal Schema —— Internal View
存儲(chǔ)在介質(zhì)上的數(shù)據(jù)的結(jié)構(gòu)描述,含存儲(chǔ)路徑、存儲(chǔ)方式、索引方式
兩層映像:
E-C Mapping:將外模式映射為概念模式,從而支持實(shí)現(xiàn)概念視圖向外部視圖的轉(zhuǎn)換
便于用戶(hù)的觀察和使用
C-I Mapping:將概念模式映射為內(nèi)部模式,從而支持實(shí)現(xiàn)概念視圖向外部視圖的轉(zhuǎn)換
便于計(jì)算機(jī)進(jìn)行存儲(chǔ)和處理
三層模式、兩層映像是數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)結(jié)構(gòu)
DBMS實(shí)際上就是讓用戶(hù)去定義三層模式,自身自動(dòng)去生成兩層映像
應(yīng)用程序是基于外部視圖進(jìn)行開(kāi)發(fā)的(根據(jù)概念視圖可生成不同的外部視圖)
為什么要按照標(biāo)準(zhǔn)結(jié)構(gòu)進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)的抽象呢?
要談到兩個(gè)獨(dú)立性:
- 邏輯數(shù)據(jù)獨(dú)立性:當(dāng)概念模式發(fā)生變化的時(shí),可以不改變外部模式(只需要改變E-C Mapping)
- 物理數(shù)據(jù)獨(dú)立性:當(dāng)內(nèi)部模式發(fā)生變化時(shí),可以不改變概念模式(只需要改變C-I Mapping)
兩個(gè)獨(dú)立性最大限度的避免了應(yīng)用程序的不斷更改
數(shù)據(jù)模式與數(shù)據(jù)模型:
數(shù)據(jù)模型:規(guī)定模式統(tǒng)一描述方式的模型,包括數(shù)據(jù)結(jié)構(gòu)、操作和約束
數(shù)據(jù)模式是對(duì)數(shù)據(jù)結(jié)構(gòu)形式的抽象,數(shù)據(jù)模型就是對(duì)數(shù)據(jù)模式本身結(jié)構(gòu)的抽象
數(shù)據(jù)的結(jié)構(gòu)的結(jié)構(gòu)就是數(shù)據(jù)模型
如:模式1:學(xué)生登記表(學(xué)號(hào) char(8),姓名 char(10),性別 char(2),出生年月datetime, 入學(xué)時(shí)間 datetime,家庭住址char(40));
模式2:學(xué)生成績(jī)單(學(xué)號(hào) char(8),姓名char(10),班級(jí) char(6),課程 char(40),學(xué)期 char(4),成績(jī) numberi)
模式1和模式2可以抽象為關(guān)系模型,所有模式可抽象為表的形式[數(shù)據(jù)結(jié)構(gòu)],而每一個(gè)具體的模式都是擁有不同列名的具體的表,對(duì)這種表形式的數(shù)據(jù)有一些[操作]和[約束]
三大經(jīng)典數(shù)據(jù)模型:
-
關(guān)系模型:
關(guān)系模型的數(shù)據(jù):學(xué)生登記信息 表格+數(shù)據(jù)
關(guān)系模型的數(shù)據(jù)模式:學(xué)生登記表(學(xué)號(hào) char(8),姓名 char(10),性別 char(2),出生年月datetime, 入學(xué)時(shí)間 datetime,家庭住址char(40))
關(guān)系模型:表格的形式
-
層次模型:基于樹(shù)的結(jié)構(gòu)
樹(shù)的形式:實(shí)體型和系型 即記錄和兩條記錄之間的聯(lián)系(由指針建立的)
層次模型的數(shù)據(jù)模式:由數(shù)據(jù)抽象出來(lái)的不同的具體實(shí)體型和他們之間不同的具體聯(lián)系(系型)的描述
-
網(wǎng)狀模型:基于圖的結(jié)構(gòu)
圖的形式:實(shí)體型和系型
網(wǎng)狀模型的數(shù)據(jù)模式:由數(shù)據(jù)抽象出來(lái)的不同的具體實(shí)體型和他們之間不同的具體聯(lián)系(系型)的描述
層次模型和網(wǎng)狀模型數(shù)據(jù)庫(kù)是第一代數(shù)據(jù)庫(kù),關(guān)系數(shù)據(jù)庫(kù)是第二代數(shù)據(jù)庫(kù)
層次模型和網(wǎng)狀模型數(shù)據(jù)庫(kù):
- 數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系由復(fù)雜的指針系統(tǒng)來(lái)維系,結(jié)構(gòu)描述復(fù)雜
- 數(shù)據(jù)檢索操作系統(tǒng)依賴(lài)于指針系統(tǒng)指示的路徑
- 逐一記錄操作,不能有效支持記錄集合的操作
關(guān)系數(shù)據(jù)庫(kù):
- 數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系由Table中屬性來(lái)表征,結(jié)構(gòu)描述簡(jiǎn)單
- 數(shù)據(jù)檢索操作不依賴(lài)于路徑信息或過(guò)程信息,支持非過(guò)程化的數(shù)據(jù)操作
- 有效支持記錄集合的操作
- 較為完善的理論基礎(chǔ)
- 消除了指針
由關(guān)系數(shù)據(jù)庫(kù)到對(duì)象關(guān)系數(shù)據(jù)庫(kù)、面向?qū)ο髷?shù)據(jù)庫(kù)
- 按行按列形式組織數(shù)據(jù):關(guān)系(數(shù)據(jù)項(xiàng))不可再分(關(guān)系的第1范式)[關(guān)系數(shù)據(jù)庫(kù)不允許復(fù)合屬性、多值屬性的出現(xiàn)]
- 關(guān)系運(yùn)算:關(guān)系代數(shù)、元組演算、域演算
- 關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)理論
復(fù)合屬性:在一個(gè)數(shù)據(jù)項(xiàng)(屬性)內(nèi)部又可以分出兩項(xiàng)(兩者可并存)
多值屬性:在一行記錄中某個(gè)屬性有多個(gè)值
對(duì)象-關(guān)系數(shù)據(jù)庫(kù):
- 可有效支持不滿(mǎn)足關(guān)系第1范式的數(shù)據(jù)項(xiàng)
- 以對(duì)象來(lái)封裝需分解的數(shù)據(jù)項(xiàng)
- 行對(duì)象與列對(duì)象;聚集對(duì)象與結(jié)構(gòu)對(duì)象
面向?qū)ο髷?shù)據(jù)庫(kù):
- 面向?qū)ο蠹夹g(shù)與集合/聚集操作技術(shù)(SQL)的結(jié)合
- 支持復(fù)雜的數(shù)據(jù)類(lèi)型,數(shù)據(jù)封裝與抽象數(shù)據(jù)結(jié)構(gòu)
- 支持面向?qū)ο蟮囊恍┨卣鳎侯?lèi)、繼承、封裝、多態(tài)...
XML數(shù)據(jù)庫(kù):
- 是數(shù)據(jù)庫(kù)的另一種形式,被稱(chēng)為半結(jié)構(gòu)化數(shù)據(jù)庫(kù)
- 數(shù)據(jù)與數(shù)據(jù)的語(yǔ)義合并在一起進(jìn)行存儲(chǔ)和處理
- 面向數(shù)據(jù)交換提出,在互聯(lián)網(wǎng)世界得到廣泛應(yīng)用
由多種多樣的數(shù)據(jù)庫(kù)到多數(shù)據(jù)庫(kù)開(kāi)放式互連:
ODBC JDBC
由普通數(shù)據(jù)庫(kù)到與各種先進(jìn)技術(shù)結(jié)合所形成的新型數(shù)據(jù)庫(kù)