1. 數(shù)據(jù)和數(shù)據(jù)管理
- 描述事物的符號記錄稱為
數(shù)據(jù)
样悟。數(shù)據(jù)管理
是對數(shù)據(jù)進行有效的分類晚凿、組織蝶俱、編碼、存儲洞豁、檢索、維護和應用,它是數(shù)據(jù)處理的中心問題荒给。數(shù)據(jù)庫管理系統(tǒng)
是由一個相互關聯(lián)的數(shù)據(jù)的集合和一組用以訪問丈挟、管理和控制這些數(shù)據(jù)的程序組成。這個數(shù)據(jù)集合通常稱為數(shù)據(jù)庫,其中包含了關于某個企業(yè)信息系統(tǒng)的所有信息志电。
2. 數(shù)據(jù)管理技術的產(chǎn)生和發(fā)展
數(shù)據(jù)管理技術的發(fā)展經(jīng)歷了人工管理曙咽、文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)3個階段。
(1) 人工管理的特點:
①數(shù)據(jù)是面向程序的挑辆,一個數(shù)據(jù)集只能對應于一個程序例朱。
②沒有專門的軟件負責數(shù)據(jù)處理工作孝情。
③數(shù)據(jù)無法共享,數(shù)據(jù)冗余洒嗤。
(2) 文件系統(tǒng)階段數(shù)據(jù)管理的主要特點:
①實現(xiàn)了文件內(nèi)的結構性;
②應用程序與數(shù)據(jù)之間有了一定的物理獨立性箫荡。
文件系統(tǒng)階段數(shù)據(jù)管理存在的主要問題:
①數(shù)據(jù)共享性差,數(shù)據(jù)冗余和不一致;
②數(shù)據(jù)獨立性差;
③數(shù)據(jù)孤立,數(shù)據(jù)獲取困難;
④完整性問題;
⑤原子性問題;
⑥并發(fā)訪問異常;
⑦安全性問題。
其中,數(shù)據(jù)冗余是指相同的數(shù)據(jù)可能在不同的地方(文件)重復存儲渔隶。數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性羔挡、有效性和相容性,也稱為一致性約束。
(3)數(shù)據(jù)庫管理系統(tǒng)階段數(shù)據(jù)管理的主要特點
①數(shù)據(jù)結構化间唉。數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)數(shù)據(jù)的整體結構化,一是指數(shù)據(jù)不僅僅是內(nèi)部結構化,而是將數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系統(tǒng)一管理起來,使之結構化;二是指在數(shù)據(jù)庫中的數(shù)據(jù)不是僅僅針對某一個應用,而是面向全組織的所有應用婉弹。
②數(shù)據(jù)的共享度高,冗余度低,易擴充。數(shù)據(jù)庫管理系統(tǒng)從整體角度描述和組織數(shù)據(jù),數(shù)據(jù)不再是面向某個應用,而是面向整個系統(tǒng),因此,數(shù)據(jù)可以被多個用戶终吼、多個應用共享使用镀赌。
③數(shù)據(jù)獨立性高。數(shù)據(jù)獨立是指數(shù)據(jù)的使用(即應用程序)與數(shù)據(jù)的說明(即數(shù)據(jù)的組織結構與存儲方式)分離,使應用程序只考慮如何使用數(shù)據(jù),而無須關心它們是如何構造和存儲的,因而各方(在一定范圍內(nèi))的變更互不影響际跪。數(shù)據(jù)獨立性是用來描述應用程序與數(shù)據(jù)結構之間的依賴程度,包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性,依賴程度越低則獨立性越高商佛。
物理獨立性
是指用戶的應用程序與數(shù)據(jù)庫中數(shù)據(jù)的物理結構是相互獨立的。也就是說,數(shù)據(jù)庫中的數(shù)據(jù)在磁盤上如何組織和存儲由DBMS負責,應用程序只關心數(shù)據(jù)的邏輯結構,這樣當數(shù)據(jù)的物理存儲結構改變時,應用程序不用修改姆打。
邏輯獨立性
是指用戶的應用程序與數(shù)據(jù)庫中數(shù)據(jù)的邏輯結構是相互獨立的良姆。也就是說,數(shù)據(jù)庫中數(shù)據(jù)的全局邏輯結構由DBMS負責,應用程序只關心數(shù)據(jù)的局部邏輯結構,數(shù)據(jù)的全局邏輯結構改變了,應用程序也可以不用修改。
④數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制幔戏。包括數(shù)據(jù)的安全性保護玛追、數(shù)據(jù)的完整性檢查、并發(fā)控制和數(shù)據(jù)庫恢復等闲延。
數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的應用程序為中心的階段轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段痊剖。這樣既便于數(shù)據(jù)的集中管理,也有利于應用程序的開發(fā)和維護,提高了數(shù)據(jù)的利用率和相容性,提高了決策的可靠性。
3. 數(shù)據(jù)模型
數(shù)據(jù)模型是一個描述數(shù)據(jù)結構垒玲、數(shù)據(jù)操作以及數(shù)據(jù)約束的數(shù)學形式體系(即概念及其符號表示系統(tǒng))陆馁。
數(shù)據(jù)結構
用于刻畫數(shù)據(jù)、數(shù)據(jù)語義以及數(shù)據(jù)與數(shù)據(jù)之間的聯(lián)系;
數(shù)據(jù)約束
是對數(shù)據(jù)結構和數(shù)據(jù)操作的一致性合愈、完整性約束,也稱為數(shù)據(jù)完整性約束
通過數(shù)據(jù)模型可以對現(xiàn)實世界中具體事物的數(shù)據(jù)及其特征進行抽象叮贩、表示和處理。
4. 數(shù)據(jù)模型的分層
根據(jù)數(shù)據(jù)抽象的不同級別,可以將數(shù)據(jù)模型劃分為3類:概念模型佛析、邏輯模型和物理模型益老。
①
概念模型
是指概念層次的數(shù)據(jù)模型,也稱為信息模型,它按用戶的觀點或認識對現(xiàn)實世界的數(shù)據(jù)和信息進行建模,主要用于數(shù)據(jù)庫設計。常用的概念模型有實體-聯(lián)系模型(簡稱為ER模型)和面向?qū)ο竽P?簡稱為OO模型)寸莫。
概念模型是一種獨立于計算機系統(tǒng)的模型捺萌。它不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關心的信息結構。概念模型強調(diào)語義表達功能,它是現(xiàn)實世界的第一層抽象储狭。
②邏輯模型
用來描述數(shù)據(jù)庫數(shù)據(jù)的整體邏輯結構,是現(xiàn)實世界的第二層抽象互婿。傳統(tǒng)的邏輯數(shù)據(jù)模型有層次模型捣郊、網(wǎng)狀模型和關系模型,非傳統(tǒng)的邏輯數(shù)據(jù)模型有面向?qū)ο竽P汀ML模型等慈参。
③物理模型
用來描述數(shù)據(jù)的物理存儲結構和存取方法呛牲。
通過數(shù)據(jù)模型對現(xiàn)實世界中具體事物的數(shù)據(jù)需求進行建模,可以更好地抓住主要矛盾,便于理解用戶的數(shù)據(jù)需求,便于表達數(shù)據(jù)及數(shù)據(jù)之間聯(lián)系的語義、數(shù)據(jù)的操作和數(shù)據(jù)的完整性約束,便于實現(xiàn)從現(xiàn)實世界到信息世界驮配、信息世界到邏輯機器世界娘扩、邏輯機器世界到物理機器世界的逐步轉(zhuǎn)換。
5.數(shù)據(jù)模型的組成要素
數(shù)據(jù)模型通常由數(shù)據(jù)結構壮锻、數(shù)據(jù)操作和數(shù)據(jù)完整性約束3部分組成琐旁。
①
數(shù)據(jù)結構
描述數(shù)據(jù)庫的組成對象(實體)以及對象之間的聯(lián)系,是對系統(tǒng)靜態(tài)特性的描述。包括對象的類型內(nèi)容和性質(zhì)(如關系模型中的域猜绣、屬性灰殴、關系模式和碼等),以及對象之間的聯(lián)系(如關系模型中的外碼)。
②數(shù)據(jù)操作
是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作的集合,包括操作及有關的操作規(guī)則掰邢。它是對系統(tǒng)動態(tài)特性的描述牺陶。
③數(shù)據(jù)完整性約束
是一組數(shù)據(jù)完整性規(guī)則。數(shù)據(jù)完整性規(guī)則是數(shù)據(jù)辣之、數(shù)據(jù)語義和數(shù)據(jù)聯(lián)系所具有的制約和依存規(guī)則,包括數(shù)據(jù)結構完整性規(guī)則和數(shù)據(jù)操作完整性規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確掰伸、有效和相容。
6. 關系模型
關系模型由一組關系組成,每個關系的數(shù)據(jù)結構是一張規(guī)范化的二維表怀估。
關系模型中的常用術語有:關系狮鸭、元組、屬性多搀、碼歧蕉、域、分量酗昼、外碼和關系模式等廊谓。
關系( (relation)
:一個關系對應一張二維表,每一個關系有一個名稱即關系名。
元組(tupl)
:表中的一行稱為一個元組麻削。
屬性( attribute)
:表中的一列稱為一個屬性,每一個屬性有一個名稱即屬性名.
碼(key)
:也稱為碼鍵,表中某個屬性或?qū)傩越M唯一地標示表中一行春弥。
域( domain)
:屬性的取值范圍呛哟。
分量(cman)
:元組中的一個屬性值。
外碼( foreign key)
:表中的某個屬性或?qū)傩越M,用來描述本關系中的元組(實體)與另一個關系中的元組(實體)之間的聯(lián)系,因
外碼的取值范圍對應于另一個關系的碼的取值范圍的子集匿沛。
關系模式
:通過關系名和屬性名列表對關系進行描述扫责,相當于二維表地表頭部分。
關系模型的規(guī)范條件
- 關系模型要求每一個關系必須存在碼(關系中的某個屬性或?qū)傩越M),碼可以唯一地標識關系中的一個元組,即一個關系中的任意兩個元組都是可區(qū)分的逃呼。
- 關系模型要求關系必須是規(guī)范化的,即關系的每一個分量必須是一個不可分的數(shù)據(jù)項鳖孤。
關系模式地操作與完整性約束
關系數(shù)據(jù)模型的操作主要包括查詢和更新(插入者娱、刪除和修改)。由于關系是一張二維表,可看作是元組的集合,因此關系模型的數(shù)據(jù)操作是集合操作,操作對象和操作結果都是關系(元組的集合),不同于傳統(tǒng)的非關系模型中的數(shù)據(jù)操作方式:單記錄操作苏揣。
關系數(shù)據(jù)模型的完整性約束包括實體完整性黄鳍、參照完整性和用戶自定義完整性。
關系模式的優(yōu)缺點
關系數(shù)據(jù)模型的主要優(yōu)點:
①關系模型建立在嚴格的數(shù)學概念的基礎之上,有關系代數(shù)作為語言模型,有關系數(shù)據(jù)理論作為理論基礎平匈。
②關系模型的概念單一,無論實體還是實體之間的聯(lián)系都是用關系來表示,對數(shù)據(jù)(關系)的操作(查詢和更新)結果還是關系框沟。
③關系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作,提高了軟件的開發(fā)和維護效率增炭。
7.數(shù)據(jù)抽象
數(shù)據(jù)庫管理系統(tǒng)的一個主要目的就是隱藏關于數(shù)據(jù)存儲和維護的某些細節(jié),為用戶提供數(shù)據(jù)在不同層次上的視圖,即數(shù)據(jù)抽象,方便不同的使用者從不同的角度去觀察和利用數(shù)據(jù)庫中的數(shù)據(jù)忍燥。數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)抽象一般包括物理層抽象、邏輯層抽象和視圖層抽象3個級別隙姿。
8. 數(shù)據(jù)庫的三級模式
對應于數(shù)據(jù)抽象的3個級別,數(shù)據(jù)庫管理系統(tǒng)一般也提供觀察數(shù)據(jù)庫的3個不同角度,以方便不同的用戶使用數(shù)據(jù)庫的需要,這就是數(shù)據(jù)庫的三級模式:`內(nèi)模式梅垄、模式和外模式`。
內(nèi)模式
也稱存儲模式,對應于物理層數(shù)據(jù)抽象,它是數(shù)據(jù)的物理結構和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式输玷。
模式
也稱為邏輯模式,對應于邏輯層數(shù)據(jù)抽象,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和特征的描述,是所有用戶的公共數(shù)據(jù)視圖哎甲。
外模式
也稱子模式或用戶模式,對應于視圖層數(shù)據(jù)抽象,它是數(shù)據(jù)庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一具體應用有關的數(shù)據(jù)的邏輯表示。
9. 數(shù)據(jù)庫的兩層映像和數(shù)據(jù)獨立性
為了能夠在系統(tǒng)內(nèi)部實現(xiàn)3個抽象層次的數(shù)據(jù)之間的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像:外模式/模式映像饲嗽、模式/內(nèi)模式映像
炭玫。
正是這兩層映像保證了數(shù)據(jù)庫中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。
10.數(shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫系統(tǒng)
是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫貌虾、數(shù)據(jù)庫管理系統(tǒng)(及其應用開發(fā)工具)應用系統(tǒng)吞加、數(shù)據(jù)庫管理員和最終用戶構成。數(shù)據(jù)庫的建立尽狠、使用和維護等工作不僅需要DBMS的支撐,還需要有專門的人員來完成,這些人員稱為數(shù)據(jù)庫管理員(DBA)衔憨。
數(shù)據(jù)庫管理系統(tǒng)的主要功能包括
①數(shù)據(jù)定義,提供了數(shù)據(jù)定義語言DDL。
②數(shù)據(jù)組織袄膏、存儲和管理
③數(shù)據(jù)操縱,提供了數(shù)據(jù)操縱語言DML践图。
④數(shù)據(jù)庫的事務管理和運行管理
⑤數(shù)據(jù)庫的建立和維護等
數(shù)據(jù)庫管理系統(tǒng)主要由數(shù)據(jù)庫以及查詢處理器、存儲管理器和事務管理器等部分組成沉馆。
開發(fā)码党、管理和使用數(shù)據(jù)庫系統(tǒng)的人員主要有:數(shù)據(jù)庫管理員、系統(tǒng)分析員和數(shù)據(jù)庫設計人員揖盘、應用程序員和最終用戶。數(shù)據(jù)庫管理員的主要職責包括:
①決定數(shù)據(jù)庫中的信息內(nèi)容和結構锌奴。
②決定數(shù)據(jù)庫的存儲結構和存取策略兽狭。
③定義數(shù)據(jù)的安全性要求和完整性約束條件。
④監(jiān)控數(shù)據(jù)庫的使用和運行。
⑤數(shù)據(jù)庫的改進和重組重構