系统架构设计-数据库系统知识点
一、數(shù)據(jù)庫(kù)的結(jié)構(gòu)與模式
數(shù)據(jù)庫(kù)技術(shù)中采用分級(jí)的方法將數(shù)據(jù)庫(kù)的結(jié)構(gòu)劃分為多個(gè)層次。最著名的是美國(guó)ANSI/ SPARC 數(shù)據(jù)庫(kù)系統(tǒng)研究組 1975年提出的三級(jí)劃分法。
1. 三級(jí)模式
數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式為外模式、概念模式、內(nèi)模式。
概念模式。概念模式(模式、邏輯模式)用以描述整個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),描述現(xiàn)實(shí)世界中的實(shí)體及其性質(zhì)與聯(lián)系,定義記錄、數(shù)據(jù)項(xiàng)、數(shù)據(jù)的完整性約束條件及記錄之間的聯(lián)系,是數(shù)據(jù)項(xiàng)值的框架。 數(shù)據(jù)庫(kù)系統(tǒng)概念模式通常還包含有訪問(wèn)控制、保密定義、完整性檢查等方面的內(nèi)容,以及概念/物理之間的映射。
概念模式是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)概念模式。
外模式。外模式(子模式、用戶模式)用以描述用戶看到或使用的那部分?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu),用戶根據(jù)外模式用數(shù)據(jù)操作語(yǔ)句或應(yīng)用程序去操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。外模式主要描述組成用戶視圖的各個(gè)記錄的組成、相互關(guān)系、數(shù)據(jù)項(xiàng)的特征、數(shù)據(jù)的安全性和完整性約束條件。
外模式是數(shù)據(jù)庫(kù)用戶(包括程序員和最終用戶)能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。一個(gè)應(yīng)用程序只能使用一個(gè)外模式。
內(nèi)模式。內(nèi)模式是整個(gè)數(shù)據(jù)庫(kù)的最低層表示,不同于物理層,它假設(shè)外存是一個(gè)無(wú)限的線性地址空間。內(nèi)模式定義的是存儲(chǔ)記錄的類型、存儲(chǔ)域的表示以及存儲(chǔ)記錄的物理順序,指引元、索引和存儲(chǔ)路徑等數(shù)據(jù)的存儲(chǔ)組織。
2. 三級(jí)抽象
數(shù)據(jù)庫(kù)系統(tǒng)劃分為三個(gè)抽象級(jí):用戶級(jí)、概念級(jí)、物理級(jí)。
用戶級(jí)數(shù)據(jù)庫(kù)。用戶級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)于外模式,是最接近用戶的一級(jí)數(shù)據(jù)庫(kù),是用戶可以看到和使用的數(shù)據(jù)庫(kù),又稱用戶視圖。用戶級(jí)數(shù)據(jù)庫(kù)主要由外部記錄組成,不同的用戶視圖可以互相重疊,用戶的所有操作都是針對(duì)用戶視圖進(jìn)行的。
概念級(jí)數(shù)據(jù)庫(kù)。概念級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)于概念模式,介于用戶級(jí)和物理級(jí)之間,是所有用戶視圖的最小并集,是數(shù)據(jù)庫(kù)管理員可看到和使用的數(shù)據(jù)庫(kù),又稱 DBA(DataBase Administrator,數(shù)據(jù)庫(kù)管理員)視圖。概念級(jí)數(shù)據(jù)庫(kù)由概念記錄組成,一個(gè)數(shù)據(jù)庫(kù)可有多個(gè)不同的用戶視圖,每個(gè)用戶視圖由數(shù)據(jù)庫(kù)某一部分的抽象表示所組成。一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)只存在一個(gè) DBA 視圖,它把數(shù)據(jù)庫(kù)作為一個(gè)整體的抽象表示。概念級(jí)模式把用戶視圖有機(jī)地結(jié)合成一個(gè)整體,綜合平衡考慮所有用戶要求,實(shí)現(xiàn)數(shù)據(jù)的一致性、最大限度降低數(shù)據(jù)冗余、準(zhǔn)確地反映數(shù)據(jù)間的聯(lián)系。
物理級(jí)數(shù)據(jù)庫(kù)。物理級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)于內(nèi)模式,是數(shù)據(jù)庫(kù)的低層表示,它描述數(shù)據(jù)的實(shí)際存儲(chǔ)組織,是最接近于物理存儲(chǔ)的級(jí),又稱內(nèi)部視圖。物理級(jí)數(shù)據(jù)庫(kù)由內(nèi)部記錄組成,物理級(jí)數(shù)據(jù)庫(kù)并不是真正的物理存儲(chǔ),而是最接近于物理存儲(chǔ)的級(jí)。
3. 兩級(jí)獨(dú)立性
數(shù)據(jù)庫(kù)系統(tǒng)兩級(jí)獨(dú)立性是指物理獨(dú)立性和邏輯獨(dú)立性。三個(gè)抽象級(jí)間通過(guò)兩級(jí)映射(外模式—模式映射,模式—內(nèi)模式映射)進(jìn)行相互轉(zhuǎn)換,使得數(shù)據(jù)庫(kù)的三級(jí)形成一個(gè)統(tǒng)一的整體。
物理獨(dú)立性。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是相互獨(dú)立的。當(dāng)數(shù)據(jù)的物理存儲(chǔ)改變時(shí),應(yīng)用程序不需要改變。
物理獨(dú)立性存在于概念模式和內(nèi)模式之間的映射轉(zhuǎn)換,說(shuō)明物理組織發(fā)生變化時(shí)應(yīng)用程序的獨(dú)立程度。
邏輯獨(dú)立性。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)中的邏輯結(jié)構(gòu)是相互獨(dú)立的。當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),應(yīng)用程序不需要改變。
邏輯獨(dú)立性存在于外模式和概念模式之間的映射轉(zhuǎn)換,說(shuō)明概念模式發(fā)生變化時(shí)應(yīng)用程序的獨(dú)立程度。
二、數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程
1978 年 10 月來(lái)自 30 多個(gè)歐美國(guó)家的主要數(shù)據(jù)庫(kù)專家在美國(guó)新奧爾良市專門討論了數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題,提出了數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范,把數(shù)據(jù)庫(kù)設(shè)計(jì)分為需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì) 4 個(gè)階段。
需求分析
通過(guò)調(diào)查研究, 了解用戶的數(shù)據(jù)和處理需求, 并按一定格式整理形成需求說(shuō)明書(shū)、數(shù)據(jù)字典和數(shù)據(jù)流程圖。
概念設(shè)計(jì)
在需求分析階段產(chǎn)生的需求說(shuō)明書(shū)的基礎(chǔ)上, 按照特定的方法將它們抽象為一個(gè)不依賴于任何DBMS的數(shù)據(jù)模型, 即概念模型. (如E-R模型)
邏輯設(shè)計(jì)
將概念模型轉(zhuǎn)化為某個(gè)特定的DBMS上的邏輯模型(如關(guān)系型數(shù)據(jù)庫(kù)、對(duì)象型數(shù)據(jù)庫(kù)), 并對(duì)所設(shè)計(jì)的邏輯模型進(jìn)行優(yōu)化.(發(fā)生在概要設(shè)計(jì)階段;設(shè)計(jì)表包括所有細(xì)節(jié)—表名、字段、主外鍵等)
物理設(shè)計(jì)
對(duì)給定的邏輯模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu), 以確定數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法.
三、數(shù)據(jù)模型
數(shù)據(jù)模型主要有兩大類,分別是概念數(shù)據(jù)模型(實(shí)體—聯(lián)系模型)和基本數(shù)據(jù)模型(結(jié)構(gòu)數(shù)據(jù)模型)。
其中概念數(shù)據(jù)模型是按照用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì)。概念模型主要用實(shí)體—聯(lián)系方法(Entity-Relationship Approach)表示,所以也稱 E-R 模型。
圖中的橢圓代表屬性字段,矩形代表實(shí)體數(shù)據(jù)表,菱形代表之間的聯(lián)系。
1. ER模型集成
集成方法:
集成產(chǎn)生的沖突及解決方法:
2. 實(shí)體轉(zhuǎn)換關(guān)系
上題符合三個(gè)實(shí)體間的關(guān)系,其中三個(gè)實(shí)體轉(zhuǎn)為三個(gè)關(guān)系模型,聯(lián)系轉(zhuǎn)為一個(gè)關(guān)系模型,即最少可轉(zhuǎn)四個(gè)關(guān)系模型。
四、關(guān)系代數(shù)
關(guān)系代數(shù)的基本運(yùn)算主要有并、交、差、笛卡爾積、選擇、投影、連接和除法運(yùn)算。
比如:關(guān)系S1和關(guān)系S2
S1 ∩ S2
S1 ∪ S2
S1 - S2
S1 X S2 (笛卡爾積)
投影 π
6. 條件選擇 σ
7. 連接
五、數(shù)據(jù)庫(kù)范式
關(guān)系模型滿足的確定約束條件稱為范式,根據(jù)滿足約束條件的級(jí)別不同,范式由低到高分為 1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(BC 范式)、4NF(第四范式) 等。不同的級(jí)別范式性質(zhì)不同。
把一個(gè)低一級(jí)的關(guān)系模型分解為高一級(jí)關(guān)系模型的過(guò)程,稱為關(guān)系模型的規(guī)范化。關(guān)系模型分解必須遵守兩個(gè)準(zhǔn)則。
第一范式
1NF 是最低的規(guī)范化要求。如果關(guān)系 R 中所有屬性的值域都是簡(jiǎn)單域,其元素(即屬性)不可再分,是屬性項(xiàng)而不是屬性組,那么關(guān)系模型 R 是第一范式的。
第二范式
如果一個(gè)關(guān)系 R 屬于 1NF,且所有的非主屬性都完全依賴于主屬性,則稱之為第二范式。
第三范式
如果一個(gè)關(guān)系 R 屬于 2NF,且每個(gè)非主屬性不傳遞依賴于主屬性。
BC 范式
如果一個(gè)關(guān)系 R 屬于 3NF,且每個(gè)主屬性間沒(méi)有函數(shù)依賴關(guān)系。
六、反規(guī)范化
數(shù)據(jù)庫(kù)中的數(shù)據(jù)規(guī)范化的優(yōu)點(diǎn)是減少了數(shù)據(jù)冗余,節(jié)約了存儲(chǔ)空間,相應(yīng)邏輯和物理的 I/O 次數(shù)減少,同時(shí)加快了增、刪、改的速度,但是對(duì)完全規(guī)范的數(shù)據(jù)庫(kù)查詢,通常需要更多的連接操作,從而影響查詢速度。 因此,有時(shí)為了提高某些查詢或應(yīng)用的性能而破壞規(guī)范規(guī)則,即反規(guī)范化(非規(guī)范化處理)。
反規(guī)范化技術(shù)包括:
增加冗余列
增加冗余列是指在多個(gè)表中具有相同的列,它常用來(lái)在查詢時(shí)避免連接操作。
增加派生列
增加派生列指增加的列可以通過(guò)表中其他數(shù)據(jù)計(jì)算生成。它的作用是在查詢時(shí)減少計(jì)算量,從而加快查詢速度。
重新組表
重新組表指如果許多用戶需要查看兩個(gè)表連接出來(lái)的結(jié)果數(shù)據(jù),則把這兩個(gè)表重新組成一個(gè)表來(lái)減少連接而提高性能。
分割表
有時(shí)對(duì)表做分割可以提高性能,比如: 水平分割 和 垂直分割。
七、 事務(wù)管理
數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行的基本工作單位是事務(wù),事務(wù)相當(dāng)于操作系統(tǒng)中的進(jìn)程,是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作序列要么全做要么全不做,是一個(gè)不可分割的工作單位。事務(wù)具有以下特性:
1. 并發(fā)控制
在多用戶共享系統(tǒng)中,許多事務(wù)可能同時(shí)對(duì)同一數(shù)據(jù)進(jìn)行操作,此時(shí)數(shù)據(jù)庫(kù)管理系統(tǒng)的并發(fā)控制子系統(tǒng)負(fù)責(zé)協(xié)調(diào)并發(fā)事務(wù)的執(zhí)行,保證數(shù)據(jù)庫(kù)的完整性不受破壞,同時(shí)避免用戶得到不正確的數(shù)據(jù)。
數(shù)據(jù)庫(kù)的并發(fā)操作帶來(lái)的問(wèn)題有:丟失更新問(wèn)題、不一致分析問(wèn)題(讀過(guò)時(shí)的數(shù)據(jù))、依賴于未提交更新的問(wèn)題(讀了“臟”數(shù)據(jù))。這三個(gè)問(wèn)題需要 DBMS 的并發(fā)控制子系統(tǒng)來(lái)解決。
處理并發(fā)控制的主要方法是采用封鎖技術(shù)。它有兩種類型:排他型封鎖(X 封鎖)和共享型封鎖(S 封鎖)。
2. 并發(fā)控制-封鎖協(xié)議
八、備份與恢復(fù)
數(shù)據(jù)庫(kù)中的數(shù)據(jù)一般都十分重要,不能丟失。事先制定一個(gè)合適的、可操作的備份和恢復(fù)計(jì)劃至關(guān)重要。
數(shù)據(jù)備份分為:冷備份(靜態(tài)備份,需要關(guān)閉服務(wù))和熱備份(動(dòng)態(tài)備份,無(wú)需關(guān)閉服務(wù))。
1. 備份的方式
2. 數(shù)據(jù)恢復(fù)
九、分布式數(shù)據(jù)庫(kù)
分布式數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu)有六個(gè)層次,如圖 所示,實(shí)際的系統(tǒng)并非都具有這種結(jié)構(gòu)。在這種結(jié)構(gòu)中各級(jí)模式的層次清晰,可以概括和說(shuō)明任何分布式數(shù)據(jù)庫(kù)系統(tǒng)的概念和結(jié)構(gòu)。
從整體上可以分為兩大部分:下半部分是集中式數(shù)據(jù)庫(kù)的模式結(jié)構(gòu),代表了各局部場(chǎng)地上局部數(shù)據(jù)庫(kù)系統(tǒng)的基本結(jié)構(gòu);上半部分是分布式數(shù)據(jù)庫(kù)系統(tǒng)增加的模式級(jí)別。
數(shù)據(jù)分片和透明性
將數(shù)據(jù)分片,使數(shù)據(jù)存放的單位不是關(guān)系而是片段,這既有利于按照用戶的需求較好地組織數(shù)據(jù)的分布,也有利于控制數(shù)據(jù)的冗余度。分片的方式有多種,水平分片和垂直分片是兩種基本的分片方式,混合分片和導(dǎo)出分片是較復(fù)雜的分片方式。
分布透明性指用戶不必關(guān)心數(shù)據(jù)的邏輯分片,不必關(guān)心數(shù)據(jù)存儲(chǔ)的物理位置分配細(xì)節(jié),也不必關(guān)心局部場(chǎng)地上數(shù)據(jù)庫(kù)的數(shù)據(jù)模型。分布透明性包括:分片透明性、位置透明性和局部數(shù)據(jù)模型透明性。
十、數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘
數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)是一個(gè)面向主題的、集成的、相對(duì)穩(wěn)定的、且隨時(shí)間變化的數(shù)據(jù)集合,用于支持管理決策。
1. 數(shù)據(jù)挖掘的方法
2. 數(shù)據(jù)挖掘方法分類
十一、擴(kuò)展
1. 數(shù)據(jù)庫(kù)完整性約束
為了提高可靠性,需要對(duì)表數(shù)據(jù)進(jìn)行約束,包括:
2. 分布式事物兩階段提交協(xié)議指:表決階段、收縮階段。
總結(jié)
以上是生活随笔為你收集整理的系统架构设计-数据库系统知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 学生信息的那些操作:按姓名,查个人
- 下一篇: 中国农产品物流行业消费状况与十四五运行形