數據庫技術三級

 

DBAS生命週期:規劃與分析、需求分析、系統設計、系統實現與部署、運行維護

 

 

可行性分析:

(1)經濟可行性

(2)技術可行性

(3)操作可行性

(4)開發方案選擇

 

第一章 需求分析

1.需求分析

1.1數據需求分析:從對數據進行組織與存儲的角度,從用戶視圖出發,分析與辨識應用領域所管理的各類數據項和數據結構,形成數據字典的主要內容。

數據字典包括:數據項、數據結構、數據流、數據存儲和處理過程五個部分。數據字典通過對數據項和數據結構的定義來描述數據流和數據存儲的邏輯內容、

1.2功能需求分析

1.2.1數據處理需求分析

也可表示爲事務規範,包括事務名稱,事務描述,事務所訪問的數據項,事務用戶。

1.2.2業務規則需求分析

1.3性能需求分析

性能指標:(1)數據操作響應時間

(2)系統吞吐量

(3)允許併發訪問的最大用戶數

(4)每TPS(Price per TPS)代價值

DBAS性能主要因素:

(1)系統硬件資源

(2)網絡通信設備性能

(3)允許併發訪問的最大用戶數

(4)數據庫的邏輯設計和物理設計質量

(5)DBMS的配置和性能

(6)數據庫應用程序自身

 

1.4其他需求分析

(1)存儲需求分析

(2)安全型需求分析

(3)備份和恢復需求分析

 

DBAS系統設計包括:概念設計、邏輯設計、系統總體設計

概念設計 數據庫概念模型設計

系統總體設計

邏輯設計 數據庫邏輯結構設計

應用程序概要設計

數據庫事務概要設計

物理設計 數據庫物理結構設計

數據庫事務詳細設計

應用程序詳細設計

 

實現與部署

(1)建立數據庫結構

(2)數據加載

(3)事務和應用程序的編碼及測試

(4)系統集成、測試與試運行

(5)系統部署

 

管理與維護:日常維護、系統監控與分析、系統性能優化調整、系統進化(升級)

數據數據庫運行維護與優化:包括數據庫的轉儲和恢復,數據庫的安全性和完整性控制,數據庫性能的監控分析和改進,數據庫的重組和重構。

日常維護: 備份與恢復,完整性維護,安全性維護,存儲空間管理和併發控制。

根據監控分析實現的方法不同,監控分析機制分爲兩種,一種是由數據庫系統建立的自動監控機制,另一種是由管理員手動實施的監控機制。

 

第二章 需求分析

數據流圖 DFD 過程建模(功能建模),核心是數據流

數據流

處理

數據存儲

外部項(數據源及終點)

 

IDEF0 箭頭和活動 強調數據約束

需求分析階段的主要任務:分析清楚當前的業務流程,包括系統的體系結構,各職能部門完成的主要任務,各職能部門之間的關係及其交流的信息。

需求獲取方法:面談、實地觀察、問卷調查、查閱資料

 

需求分析過程:標識問題、建立需求模型、描述需求(需求概述、功能需求、信息需求、性能需求、環境要求、其他需求)、確認需求

 

第三章 數據庫結構設計

數據庫概念設計

數據庫邏輯設計

數據庫物理設計

概念設計是數據庫設計的核心環節。通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型。

1、數據庫概念設計的目標

定義和描述應用領域設計的數據範圍

獲取信息模型描述數據的屬性特徵

描述數據之間的關係

定義和描述數據的約束

說明數據的安全性要求

支持用戶的各種數據處理需求

保證信息模型能轉化成數據庫的邏輯結構 (即數據庫模式)。

2、概念設計的依據及過程

依據:數據庫概念設計以需求分析的結果爲依據,即需求說明書、DFD圖以及在需求階段收集到的應用領域中的各類報表等。

結果:概念設計的結果是概念模型(ER)與概念設計說明書。

過程:

(1)明確建模目標(模型覆蓋範圍)

(2)定義實體集(自底向上標識和定義實體集)

(3)定義聯繫(實體間關聯關係)

(4)建立信息模型(構造ER模型)

(5)確定實體集屬性(屬性描述一個實體集的特徵或性質)

(6)對信息模型進行集成與優化(檢查和消除命名不一致、結構不一致等)  

概念設計是DB設計的核心環節。概念數據模型是對現實世界的抽象和模擬。

 

屬性被用來描述一個實體集的特性或性質,一個屬性的值必須屬於唯一的域,域相當於數據類型的子集,屬性的取值必須爲同一域。標識屬性的值不能重複且不可以爲空,實體集的標識屬性能夠唯一識別實體集中每一個實體。

 

3.E-R模型(Entity- Relationship Model),即實體聯繫模型,用E-R圖來描述數據庫的概念模型。觀點:世界是由一組稱作實體的基本對象和這些對象之間的聯繫構成的。

 

與E-R模型有關的概念

實體(Entity)或實例(Instance)客觀存在並可相互區分的事物叫實體。如學生張三、工人李四、計算機系、數據庫概論。

實體集(Entity Set)同型實體的集合稱爲實體集。如全體學生。

屬性(Attribute)實體所具有的某一特性。一個實體可以由若干個屬性來刻畫。每個屬性的取值範圍稱爲域。例如,學生可由學號、姓名、年齡、系、年級等組成。

碼(Key):實體集中唯一標識每一個實體的屬性或屬性組合。用來區別同一實體集中的不同實體的稱作主碼。一個實體集中任意兩個實體在主碼上的取值不能相同。如學號是學生實體的主碼。

聯繫(Relationship) 描述實體之間的相互關係。如學生與老師間的授課關係,學生與學生間有班長關係。  聯繫也可以有屬性,如學生與課程之間有選課聯繫,每個選課聯繫都有一個成績作爲其屬性。  同類聯繫的集合稱爲聯繫集。

 

4、IDEF1X建模方法IDEF1X與第2章中介紹的IDEF0是一個系列的建模工具。IDEF0是功能建模方法。IDEF1X是數據建模方法。

IDEF1X: 獨立實體集: 矩形框 從屬實體集:圓角矩形框

聯繫:標定型聯繫、非標定型聯繫、分類聯繫、非確定聯繫。

 

邏輯設計任務:把數據庫概念設計的結果(ER模型),轉換爲具體的數據庫管理系統支持的數據模型,包括定義和描述數據庫的全局邏輯結構,數據之間的關係,數據的完整性及安全性要求等。

 

關係模型  

有三種主要的數據模型:層次模型、網狀模型、關係模型。其中關係模型簡單靈活,並有着堅實的理論基礎,已成爲當前最流行的數據模型。關係模型就是用二維表格結構來表示實體及實體之間聯繫的模型。  

關係的描述稱爲關係模式(Relation Schema)。關係模式由五部分組成,即它是一個五元組:R(U, D, DOM, F)

R:關係名 U:組成該關係的屬性名集合 D:屬性組U中屬性所來自的域 DOM:屬性到域的映射 F:屬性組U上的一組數據依賴  由於D、DOM對模式設計的關係不大,這裏把關係模式簡化爲一個三元組:  R<U, F>,當且僅當U上的一個關係R滿足F時,R稱爲關係模式R<U,F>的一個關係。

1、關係數據庫設計的核心:關係模式的設計。

2、關係模式的設計目標:按照一定的原則從數量衆多而又相互關聯的數據中,構造出一組既能較好地反映現實世界,而又有良好的操作性能的關係模式。

新奧爾良法,數據庫設計步驟:需求分析—〉概念結構設計—〉邏輯結構設計—〉物理結構設計 E-R圖 關係模式設計

數據依賴定義:設R(U)是一個屬性集U上的關係模式,X和Y是U的子集。若對於R(U)的任意一個可能的關係r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數確定Y”或“Y函數依賴於X”,記作X→Y。

數據依賴 

關係內部屬性與屬性之間的一種約束關係  

是現實世界屬性間相互聯繫的抽象  

數據的內在性質  

語義的體現

完整性約束的表現形式  

限定屬性的取值範圍,如年齡<60  

定義屬性間值的相互關聯(主要體現於值的相等與否),這就是數據依賴

 

數據依賴的類型函數依賴(Functional Dependency,FD)  

普遍存在於生活中,這種依賴關係類似於數學中的函數y=f(x),自變量x確定之後,相應的函數值y也就唯一地確定了。  

如關係:公民(身份證號,姓名,地址,工作單位)身份證號一確定,則其地址就唯一確定,因此地址函數依賴身份證號。而姓名一確定,不一定能確定地址。

多值依賴(Multivalued Dependency,MD)教師號可能多值依賴課程號,因爲給定一個(課程號,參考書號)的組合,可能有對應多個教師號。這是因爲多個老師可以使用相同或不同的參考書上同一門課。簡單點講,函數就是唯一確定的關係;多值依賴卻不能唯一確定。

函數依賴的幾種特例

1、平凡函數依賴與非平凡函數依賴  如果X→Y,且Y X,則X→Y 稱爲非平凡函數依賴。  若Y X ,則稱X→Y爲平凡函數依賴。  由於Y X 時,一定有X→Y,平凡函數依賴必然成立,沒有意義,所以一般所說的函數依賴總是指非平凡函數依賴。

例:Sno代表學生的學號,Cno代表課程號,Grade代表成績。  

在關係 SC(Sno, Cno, Grade)中,非平凡函數依賴:(Sno, Cno)→Grade  

平凡函數依賴:(Sno, Cno)→Sno (Sno, Cno)→Cno

2、完全函數依賴與部分函數依賴  

如果X→Y ,且對於任何X’ X,都有X’ Y,則稱y完全依賴於x,記作X Y。  如果X→Y,但Y不完全依賴於X,則稱Y部分函數依賴於X,記作X Y。

3、傳遞函數依賴  

如果X→Y , Y→Z,且Y  X, Y  X,則稱Z傳遞函數依賴於X。記作X 傳遞→Z 。例:學生(學號,姓名,系名,系主任)顯然系主任傳遞函數依賴於學號,因爲學號→系名,系名→系主任

候選碼、主碼、外碼  

如果某屬性組的值能唯一確定整個元組的值,則稱該屬性組爲候選碼或侯選關鍵字。例如:(學號,姓名,性別,年齡)中,學號是關鍵字,(學號,姓名)不是關鍵字,性別不是關鍵字。  

候選碼如果有多個,可以選其中的一個作爲主碼(Primary Key) 。

屬性或屬性組X不是關係模式R的碼(既不是主碼也不是候選碼),但X是另一個關係模式的碼,則稱X是R的外部碼,也稱外碼( Foreign Key ) 。例:在SC(Sno,Cno,Grade)中,Sno不是碼,但Sno是關係模式S(Sno,Sdept,Sage)的碼,則Sno是關係模式SC的外部碼。

 

數據規範化  

關係數據庫的設計主要是關係模式設計。關係模式設計的好壞直接影響到數據庫設計的成敗。將關係模式規範化,是設計較好的關係模式的惟一途徑。關係模式的規範化主要是由關係範式來完成的。  

關係模式的規範化:把一個低一級的關係模式分解爲高一級關係模式的過程。 關係數據庫的規範化理論是數據庫邏輯設計的工具。  

目的:儘量消除插入、刪除異常,修改複雜,數據冗餘的問題。

範式  範式:關係模式滿足的約束條件稱爲範式。根據滿足規範化的程度不同,範式由低到高分爲1NF,2NF,3NF,BCNF,4NF,5NF。  

1NF:如果關係模式R,其所有屬性都是不可再分的基本數據項,則稱R屬於第一範式,R∈1NF。

2NF:如關係模式R∈1NF,且每個非主屬性完全函數依賴於主碼,則稱R屬於第二範式,R∈2NF。  例:判斷R (學號,姓名,年齡,課程名稱,成績,學分)是否屬於第二範式。

2NF要求實體的屬性完全依賴於主關鍵字。

3NF:如果關係模式R爲2NF,並且R中的每個非主屬性不傳遞依賴於R的主碼,則稱關係R是屬於第3範式的,R∈3NF。例:判斷R(學號,姓名, 年齡,所在學院,學院地點,學院電話)是否屬於第三範式。

3NF要求實體的屬性不能存在傳遞依賴。

4、數據庫邏輯設計方法設計邏輯結構分三步:  

將概念結構轉化爲一般的關係模型   

將轉化來的關係模型向特定DBMS支持下的數據模型轉換   

對數據模型進行優化  

如果是關係型數據庫管理系統,就應將概念模型轉換爲關係模型,即將E-R圖中的實體和聯繫轉換爲關係模式。

 

數據庫邏輯模型的產生  

概念模型按一定規則可以轉換成數據模型。

這種轉換的原則如下:

①一個實體轉換成一個關係模式

②一個1:1聯繫可以轉換爲一個獨立的關係模式,也可以與任意一端對應的關係模式合併。

③一個1:n聯繫可以轉換爲一個獨立的關係模式,也可以與n端對應的關係模式合併。

④一個m:n聯繫轉換爲一個 關係模式。

⑤三個或三個以上實體間的一個多元聯繫轉換爲一個關係模式。

⑥同一實體集的實體間的聯繫,也可以按1:1、1:n和m:n三種情況分別處理。

 

1、物理設計概述  

物理數據庫設計是設計數據庫的存儲結構和物理實現方法。

物理設計目的:將數據的邏輯描述轉換爲實現技術規範,其目標是設計數據存儲方案,一邊提供足夠好的性能並確保數據庫的數據完整性、安全性、可恢復性。通常,數據庫物理設計並不包括文件和數據庫的具體實現細節(例如如何創建文件、建立數據庫以及如何加載數據)。物理設計時需要了解不同文件的組織方式、索引技術及其使用方法。

2、數據庫的物理結構  

物理設備上的存儲結構與存取方法稱爲數據庫的物理結構 。數據庫中的數據以文件形式存儲在外設存儲介質上。一個文件在物理上可看作是存放記錄的一系列磁盤塊組成的,成爲物理文件。  

數據庫的物理結構需要解決如下問題:文件組織、文件結構、文件存取、索引技術

3、索引  索引(Index)是數據庫中獨立的存儲結構,其作用是提供一種無須掃描每個頁面(存儲表格數據的物理塊)而快速訪問數據頁的方案。索引技(Indexing)是一種快速數據訪問技術。

索引技術的關鍵:建立記錄域取值(如圖書術語)到記錄的物理地址(如頁碼)間的映射關係,即索引。  

索引能提高性能,但是有代價的。  

設計和創建索引時,應確保對性能的提高程度大於在存儲空間和處理資源方面的代價。

索引技術分類  

有序索引  索引文件機制,利用索引文件(索引記錄組成)實現記錄域(查找碼,排序域)取值到記錄物理地址間的映射關係。  

數據文件(主文件)和索引文件(索引記錄或索引項的集合)是有序索引技術中的兩個主體,數據文件常採用順序文件結構。

散列索引  哈希(Hash)索引機制,利用散列函數實現記錄域取值到記錄物理地址間的直接映射關係。

幾種主要的有序索引:(1)聚集索引(索引項與數據記錄排列順序一致,索引順序文件)和非聚集索引。一個數據文件只可建立一個聚集索引,但可建立多個非聚集索引。(2)稠密索引(數據文件中每個查找碼都對應索引記錄)和稀疏索引(部分查找碼的值對應索引記錄)。

(3)主索引(主碼屬性集上建立的索引)與輔索引(非主屬性上建立的索引)。

(4)唯一索引(索引列不包含重複值)

(5)單層索引(線性索引,每個索引項順序排列直接指向數據文件中的數據記錄)和多層索引(大數據量文件中的採用多層樹型(B,B+樹)索引快速定位)。

3、數據庫的物理設計  

目標:得到存儲空間佔用少,數據訪問效率高和維護代價低的數據庫物理模式。數據庫底層物理存儲與存取,與DBS所依賴的硬件環境、操作系統和DBMS密切相關。目前絕大部分DBS都是關係數據庫系統。  

數據庫物理設計環節:

(1)數據庫邏輯模式描述

(2) 文件組織與存取設計

 基本原則:根據應用情況將易變部分與穩定部分、存取頻率較高部分與存取頻率較低部分分開存放,以提高系統性能。  

分析理解數據庫事務訪問特性:使用事務-基本表交叉引用矩陣;估計各事務執行頻率;彙總每張基本表各事務操作頻率信息;根據結果設計文件結構。

  可以考慮將表和索引分別放在不同的磁盤上。在查詢時,由於兩個磁盤驅動器分別在工作,因而可以保證物理讀寫速度比較快。

影響數據文件存儲結構的因素:存取時間、存儲空間利用率、維護代價,這三個方面常常是相互矛盾的。

解決辦法:適當冗餘,增加聚簇功能,必須進行權衡,選擇一個折中方案。

DBMS常用存取方法  

索引方法,目前主要是B+樹索引方法 B+樹支持等值查詢和範圍查詢,散列索引適用於等值查詢 

聚簇(Cluster)方法:適用於範圍查詢。  

HASH方法

 

(3)數據分佈設計

不同類型數據的物理分佈  將應用數據(基本表)、索引、日誌、數據庫備份數據等合理安排在不同介質中。

應用數據的劃分與分佈 

根據數據的使用特徵劃分(頻繁使用分區和非頻繁使用分區) 根據時間、地點劃分(時間或地點相同的屬於同一分區) 分佈式數據庫系統(DDBS)中的數據劃分(水平劃分或垂直劃分)  派生屬性數據分佈(增加派生列或不定義派生屬性) 關係模式的去規範化(降低規範化提高查詢效率)

水平劃分  將基本表劃分爲多張具有相同屬性、結構完全相同的子表,子表包含的元組是基本表中元組的子集。  例如,對商品按照商品的生產年份進行劃分就屬於水平劃分。

垂直劃分  將基本表劃分爲多張子表,每張子表包含的屬性是原基本表的子集。  例如,商品表(商品編號、品名、單價、庫存量、銷售單價、備註)  可垂直劃分爲兩張子表:  商品表(商品編號、品名、銷售單價)  商品表(商品編號、單價、庫存量、備註)

 

(4) 確定系統配置

DBMS產品一般都提供了一些存儲分配參數  

同時使用數據庫的用戶數  

同時打開的數據庫對象數  

使用的緩衝區長度、個數  

時間片大小  

數據庫的大小  

裝填因子  

鎖的數目……

(5) 物理模式評估

對數據庫物理設計結果從存取時間、存儲空間、維護代價等方面進行評估,重點是時間和空間效率。

 

文件結構:堆文件、順序文件、聚集文件、索引文件、散列文件

 

概要設計:任務是建立軟件系統的總體結構和模塊間的關係

數據庫應用系統設計的四個層次:

表示層、業務邏輯層、數據訪問層、數據持久層

表示層概要設計的主要任務是進行人機界面設計,業務邏輯: D B A S的各項業務活動,將其表示爲各種系統架構。數據訪問層概要設計:針對DBAS的數據處理需求設計用於操作數據庫的各類事物。數據持久層概要設計:進行應用系統的存儲結構設計。

 

索引視圖可以提高下列查詢類型的性能:

1.處理大量行的連接與聚合。

2.許多查詢經常執行鏈接和聚合操作

3.決策支持工作負荷

不會提高

1.具有大量寫操作的OLTP系統。

2.具有大量更新的數據庫

3.不涉及聚合或連接的查詢

4.Group By 鍵具有高基數度的數據聚合,高基數度表示列包含許多不同的值,Group By後跟的列植包含許多不同的值,導致視圖圖和表的行數相等,那麼該列使用索引試圖並不能提高查詢效率。

Select後面的查詢屬性 不需要建立索引。

 

系統規劃和定義具體內容:任務陳述,確定任務目標,確定系統範圍和邊界,確定用戶視圖。

關係模型中,概念模式是關係模式的集合,外模式是關係子模式的集合,內模式是存儲模式的集合。

 

關係模型的三類完整性規則

1.實體完整性規則

這條規則需求關係中元組在組成主鍵的屬性上不能有空值。如有空值,那麼主鍵值就起不了唯一標識元組的作用。

2.參照完整性規則

如果屬性集K是關係模式R1的主鍵,K也是關係模式R2的外鍵,那麼在R2的關係中,K的取值只允許有兩種可能,或爲空值,或等於R1關係中某個主鍵值。

使用時應注意:

a.外鍵和相對應的主鍵能不同名,只要定義在相同的值域上即可。

b.R1和R2也能是同一個關係模式,表示了屬性之間的聯繫。

c. 外鍵值是否允許爲空,應視具體問題而定。

3.用戶定義的完整性規則

這是針對具體數據的約束條件,由應用環境而定。

外鍵和主鍵應用於關係級別約束,not null和Unique應用於列級約束,Check應用於元組約束。

 

 

關係代數的五個基本運算

關係代數是以關係爲運算對象的一組高級運算的集合。關係定義爲元數相同的元組的集合。集合中的元素爲元組,關係代數中的操作可分爲兩類:

傳統的集合操作:並、差、交、笛卡爾積。

擴充的關係操作:投影,選擇,聯接和自然聯接,除。

 

第四章 數據庫應用系統功能設計與實施

數據安全設計:安全性保護、完整性保護、併發控制、數據庫的備份與恢復、數據加密傳輸。

模式調整屬於數據庫應用系統性能優化調整的範圍。

併發控制 避免死鎖:

一,按同一順序訪問資源,二,避免事物中的用戶交互。三,採用小事務模式、儘量縮短事務的長度,減少佔有鎖的時間。四,儘量使用記錄級別的鎖,少使用表級別的鎖。五,使用綁定連接,是同一應用程序,打開的兩個或多個連接可以相互合作。

數據庫的備份與恢復:雙機熱備、數據轉儲、數據加密存儲。

D B A S的實施階段,主要包括以下工作:創建數據庫、裝載數據、編寫與調試應用程序、數據庫試運行。

第五章 UML與數據庫應用系統

UML 四層建模概念框架:

  • 元元模型層:組成UML最基本的元素“事務”,代表要定義的所有事務。
  • 元模型層:組成UML的基本元素,包括面向對象和麪向組件的概念。沒一個概念都是元元模型中“事務”概念的實例。
  • 模型層:組成UML的模型,每個概念都是元模型層中概念的一個實例。類模型或類型模型
  • 用戶模型層:所有元素都是UML模型的實例,每個概念都是模型層中的一個實例,也是元模型層中的一個實例。對象模型或實例模型。

 

結構圖,靜態結構建模:類圖、對象圖、複合結構圖、包圖、組件圖、部署圖

行爲圖,動態行爲建模:用例圖、交互圖(順序圖、通信圖、交互概述圖、時間圖)、狀態圖、活動圖。

活動圖:描述系統、用例和程序模塊鍾邏輯流程的先後執行次序,並行次序。

用例模型:把滿足用戶需求的所有功能表示出來的工具,由用例、角色、系統三部分構成。

類圖:描述系統的靜態結構。 屬性、行爲

順序圖:主要用於描述系統內對象之間的消息發送和接收序列。從上到下瀏覽,若各分支條件不互斥,消息可並行發出,若互斥,每次只能發送一條消息。

創建和銷燬對象的消息一般是同步消息。

通信圖:包含一組對象,並在圖中展示這些對象之間的聯繫以及對象間發送和接收的消息。

對象圖:描述特定時間點中所有對象在系統中的結構,也可以把對象圖當成系統在某一時間點的“快照”。

狀態圖:說明商品狀態轉換過程,可以有一個起始狀態,多個結束狀態。

交互概述圖:利用活動圖作爲基礎,只是其在控制流間連接的UM L元素並非活動, 20交互圖(包括順序圖、通信圖、時間圖,交互概述圖)。

 

三級模式+兩層映像,保證了數據庫系統中能夠具有較高的邏輯獨立性和物理獨立性。

觸發器使用場合爲完成比Check約束更復雜的數據約束,爲保證數據庫性能而維護的非規範化數據,實現複雜的業務規則。Check只能實現同一個表的列之間的取值約束。

 

在靜態轉儲過程中系統不能運行其他事務,因爲會降低數據庫的可用性,動態備份運行轉儲操作和用戶事務併發執行,即允許在轉儲過程鍾對數據庫進行存取和修改,動態儲存可能造成數據庫的不一致性,使數據的有效性得不到保證。爲了數據的有效性,需要引入日誌文件,用它來記錄轉儲期間各種事務對數據庫的修改活動記錄,然後使用動態轉儲的備份副本加上日誌文件就可以將數據庫恢復到某一時刻的正確狀態。

 

事務的四個性質:原子性、一致性、隔離性、持久性。

兩個事務併發執行時,隔離性保證其並行結果正確性。持久性:當事務提交後斷電,則持續性保證其對數據庫的改變時永久的,結果不受影響。原子性:事務中包括的諸多操作爲了保證一致性要麼都做,要麼都不做。一致性:事務執行結果從一個一致性到另一個一致性的變化。

 

數據庫備份分爲兩種:

1.完全備份,它不僅可以備份整個數據庫,包含用戶表、系統表、索引、視圖和存儲過程等所有數據庫對象,而且備份數據庫文件和日誌文件,但它需要花費更多時間和空間,一般推薦一週做一次。

2.差異備份:自上一次完全備份之後有變化的數據文件、日誌文件以及數據庫中其他被修改的內容等。存儲和恢復速度快,推薦每天做一次差異備份。

備份有兩種,轉儲有三種

文件備份:使用文件備份方式用戶可以只還原損壞的文件,而不不用還原數據庫的區域部分,從而加快了恢復速度。

事務日誌備份:僅用於完整恢復模式和大容量日誌恢復模式。並不備份數據庫本身,只備份日誌記錄,而且只備份從上次備份之後到當前備份時間發生變化的日誌內容。

 

分佈式數據庫採用數據分片對數據進行管理,分片有3個原則:1.完整性原則,即全局關係的所有數據項必須包含在某個片段中,否則將導致數據庫不完整,造成某些片段數據丟失。

2.重構性原則:即所有片段必須能夠還原全局關係。

3.不相交原則(對垂直分片的主鍵除外):對於一個全局關係,要保證數據不丟失,則必須要屬於某個片段,即不允許不屬於任何一個片段,也不允許一個全局關係的某些數據既屬於該全局關係的某些片段,又屬於該全局關係的另一個片段(垂直關係中的碼屬性除外)。

 

先分片再分配。分片是對關係的操作,描述每個數據片段以及全局關係到片段的映像。

分配是對分片結果的操作,是描述各片段到物理存放場地的映像。

 

分佈式數據庫的特徵:本地自治,非集中式管理,高可用性。

 

聯機事務處理OLTP也稱面向交易的處理系統,其基本特徵是顧客的原始數據可以立即傳送到計算機中心進行處理,並在很短的時間內給出處理結果,可以及時的處理輸入的數據,及時回答。因此係統要求必須具有很高的響應速度。

聯機分析處理OLAP支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。典型的應用就是複雜的動態的報表系統。OLAP特點:實時性要求不高,數據量大,決策支持,查詢動態,隨時提出查詢的要求。

OLTP安全性更高,實施更困難,OLTP一般由企業中下層使用,OLAP由企業中上層使用。

 

數據倉庫的主要目的:根據決策需求對企業的數據採取適當的手段進行集成,形成一個綜合的、面向分析的數據環境,用於支持企業的信息型、決策型的分析應用。

數據倉庫的特性:面向主題性、集成性、不可更新性、時間特性(隨時間變化)。

從數據層次角度看,典型的數據倉庫的數據體系結構主要包括:操作型數據、操作型數據存儲、數據倉庫、數據集市,也可包括個體層數據。

功能結構:數據處理、數據管理、數據應用 三個層次。

元數據:描述數據的數據,它描述了數據的結構、內容、鏈和索引等項內容。

元數據一般分爲技術型元數據和業務型元數據。

操作型數據存儲(ODS):面向主題的、集成的、可變的、數據是當前或接近當前的。

數據倉庫的簡歷一般採用CLDS(SDLC的逆序):實現數據倉庫、集成數據、檢驗偏差、針對數據編程、設計DSS系統、分析結果、理解需求。

數據集成:將源自不同數據源的數據經過抽取、轉換、清理、裝載等操作載入數據倉庫的過程。

ETL(Extract Transform Load)是實現數據集成的主要技術,即填充更新數據倉庫的數據抽取、轉換、裝載的數據採集過程。

粒度:系統中存在不同綜合級別的數據,一般將綜合級別稱爲粒度。

元數據:倉庫中的重要數據是關於數據的數據或者叫做描述數據的數據。元數據,一般分成技術型元數據和業務型元數據。

ODS操作型數據存儲

第一類ODS數據更新頻率是秒級 第二類ODS的數據更新頻率是小時級

第三類,ODS的數據更新頻率是天級

第四類ODS的數據不僅包含來自操作型環境的數據,也包含有數據倉庫層和數據集市的應用反饋給ODS一些決策結果或一些報表信息。

數據倉庫中數據的維護策略,分爲三種:實時維護、延時維護和快照維護。

O L A P聯機分析處理主要用於支持複雜的分析操作,側重對決策人員和高層管理人員的決策支持。一般要求O L A P工具具有快速、可分析和多維的特點。 數據的多維分析,是指針對數據倉庫中,以多維形式組織起來的數據,從多個角度、不同層次,採用各個各種數據分析技術,對數據進行剖析,多爲分析的基本操作:鑽取捲起:鑽取是指對應於某以爲逐步向更細節從方向觀察數據,而捲起則相反,切片和切塊:實現局部數據的顯示,幫助用戶從衆多混雜的數據中進行選擇。旋轉:改變一個報告或頁面顯示的維方向。 O LA P的實現方式有三種:基於多爲數據庫的O L A P ( M O L A P),其餘關係數據庫的OLAP(ROLAP),混合混合型到O LA P ( H O LAP)。

數據挖掘:從大量的,不完全的,有噪聲的,模糊的,隨機的實際應用數據中提取隱含在其中的人們事先不知道的,但有潛在有用的信息和知識的過程。

 

第十三章

分佈式數據庫:物理上分散、邏輯上集中的數據庫系統,系統中的數據分佈在物理位置不同的計算。機上(通常稱爲場地、站點或節點),有通信網絡將這些場地連接起來,每個場地具有獨立處理的能力,也可以和其他場地協同工作。分佈式數據庫則是分佈式數據庫系統中個場地上數據庫的邏輯集合。

分佈分佈式數據庫的基本特徵:本地自治、非集中式管理、高可用性。

先數據分片,再數據分配。分片是對關係的操作,而分配則是對分片結果的操作。

分片透明性:

分片透明性是最高級別的透明性,位於全局概念模型與分片模型之間。分片透明性是指數據分片使用或無需考慮的,完全透明的,在編寫程序時,用戶只需對全局關係進行操作。位置透明性設置數據分片的分配情況分配位置,對用戶是透明的,用戶編寫程序時只需要考慮數據分片情況,不需要了解各分片在各個場地的分配情況。局部數據模型透明性使用或在編寫用應用程序時,不但需要了解全局數據的情況,還要了解個片段的副本複製情況及個片段和他們副本的場地位置。

 

典型的分佈式數據庫管理系統,包括四個部分:全局數據庫管理系統GDP M S、全局數據字典GDD、局部數據庫管理系統L D B M S和通信管理C M。

在集中式數據庫系統中,查詢代價主要是CPU代價和I/O代價來衡量的,在分佈式數據庫系統中,由於數據分佈在多個不同的場地上,使得查詢處理中,還要考慮站點將傳輸數據的通信代價。導致數據傳輸量大的主要原因是數據間的連接操作合併操作,優化策略有:基於半連接和基於連接的優化策略。

分佈式事務管理主要包括恢復控制和併發控制。恢復控制——基於兩階段的提交協議。併發控制——基於封鎖協議。

並行數據庫系統——通過並行實現各種數據操作,如數據載入、索引建立、數據查詢等,可以提高系統的性能。

並行數據庫系統的結構:

1 共享內存結構:所有的處理機通過互聯網共用一個公共的主存儲器。實現簡單,但由於共享內存,如果處理器數量過多,容易造成訪問內存衝突。

2 共享磁盤結構:所有的處理機擁有獨立的主權,請通過互聯網共享磁盤。訪問內存不會再發生衝突,但這種結構通過互聯網實現各個處理器之間的數信息和數據交換,會產生一定的通信代價。

3 無共享結構、:每個處理機擁有獨立的主存儲器和磁盤,不共享任何資源。他被認爲是支持並行數據庫系統的最好並行結構,通過最小化共享資源來降低資源競爭的概率,高可擴展性,處理器數量衆多,主要缺點是通信代價和非本地磁盤訪問的代價高。

4 層次結構:這種結構是前三種體系結構的結合,可以分爲兩層,頂層是由若干節點組成的無共享結構,底層是共享內存或共享磁盤結構。

 

一維數據劃分

1 輪轉法:該策略最適合與掃描整個關係的應用在掃描時可以並行的從n個磁盤讀取數據,負載均衡充分發揮了並行性。

2 散列劃分:能夠比倫順發更是更是用於點查詢,缺點在於如果散列函數選的不合理,可能會引起數據劃分的不均衡。

3 範圍劃分:明顯利於範圍查詢的點查詢,但可能會引起數據分佈不均雲,導致並行處理能力下降。

 

 

 

 

檢查點記錄的內容包括:建立檢查點時刻所有正在執行的事務清單;這些事務最近一個日誌記錄的地址。

系統恢復時,如果事務在故障發生時未完成,應當UNDO,如果事務在檢查點之後才提交,他們對數據庫所做的修改在故障發生時還可能在緩衝區,尚未寫入數據庫,所以要REDO。如果事務在檢查點之前已經提交,不必執行REDO

 

標量函數的返回值可以是除了timestamp類型以外的所有數據類型。

 

視圖返回的結果集的格式與基本表相同,所以可以在視圖上再定義視圖。

 

Grant Select On Address To U1

Deny Select On Address to U1

Revoke Select on Address From U1

Grant Create table, create view To U1

 

Raid5具有和Raid0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。提高數據內存可以一定程度上減少系統磁盤I/O.

 

NOINIT,追加,保留原有的備份集。

INT,覆蓋媒體集上所有內容,保留媒體標頭。

 

數據挖掘:從大量數據中提取或挖掘知識。

決策支持系統一般是指企業中以數據爲基礎對重要事物或事務實施輔助決策的信息系統。

機器學習是指機器採用一些方法或模型根據數據去習得知識的過程。

用例模型通過對系統參與者及其重要行爲的描述,表達系統的功能需求,即用戶的期望。

 

遊標:聲明遊標: Declare cursorname CURSOR

For select-statement

打開遊標:Open cursor-name

提取數據:Fetch [[Next/Prior/First/Last/Absolute n/Relative n]] From cursor-name

 

建立一個聚集索引:Create Clustered Index On t1(c1)

數據庫性能優化中,存儲優化包括建立物化視圖和聚集。數據庫重組是指D B A按照系統設計要求對數據庫存儲空間進行全面調整,如調整磁盤分區方法和存儲空間,重新安排數據的存儲,整理回收碎塊等,以提高數據庫的性能。

 

分離數據庫是指將數據庫從S Q L空格S E R V E R實例中刪除,但不刪除數據庫的數據文件和日誌文件。分離數據庫實際就是讓數據庫的文件不受數據庫管理系統的管理,使用戶可以將數據庫的數據文件和日誌文件複製到另一臺計算機上或者是同一臺計算機的其他地方。

 

 

創建分區表的步驟是創建分區函數、創建分區方案、使用分區方案創建表;創建分區函數的目的是告訴數據庫管理系統以什麼方式對錶進行分區;創建分區方案的作用是將分區函數生成的分區映射到文件組中;不同的分區可以映射到相同的數據庫文件組中。

互聯互聯網上的應用服務一支被稱作軟件即服務,它是一種軟件分配模式。平臺即服務是指通過網絡提供操作系統和相關服務,而無需下載或安裝。基礎設施即服務,是指將用於支持運作的設備對外提供服務,這些設備包括存儲、硬件、服務器和網絡組件。

 

分佈分佈式數據庫的數據分配有:集中式、分割式、全複製式、混合式。

數據數據庫的恢復順序是庫。數據庫的恢復順序是:一還原最新完整數據庫備份而不恢復數據庫。二如果存在差異備份,則還原最新的差異備份而不恢復數據庫。三從最後一次還原備份後,創建的第一個事務日誌開始,使用你的NoreCovery選項依次還原日誌。4.還原數據庫,此步驟也可以與還原上一次日誌備份結合使用。

 

針對一個表的同一個操作,只能定義一個instead of觸發器,多個after型觸發器。在視圖上不能定義after型觸發器。

 

 

 

With Ties

Select... Into...

From...

 

在數據庫設計階段,主要強調的是高效率利用存儲空間,減少數據的冗餘,減少數據都不一致,這個過程是規範化的過程。規範化的關係解決了數據維護的異常,並使用於最小化,然而,可能會出現數據處理性能下降的問題。在大多數情況下,數據庫系統需要考慮的第二個目標是高效率的數據處理,反反規範化處理,,如增加派生冗餘列,重組新表、分割表和新增彙總表可以有效地提高查詢效率。

 

SQL 中,系統管理員的角色是sysadmin

數據庫角色

角色是一組具有相同權限的用戶集合,用戶定義的角色屬於數據庫一級的角色,可以是數據庫的用戶。一個數據庫中可以定義多個角色,一個用戶定義的角色可以包含多個成員,用戶定義的角色可以是另一個用戶定義的角色的成員,可以爲用戶定義的角色授權。

 

SQL Server 2008支持數據庫,數據文件兩個級別的數據恢復。在數據庫恢復過程中可以將數據庫文件恢復到不同位置。

Restore database語句中使用with recovery選項後,數據庫將不能再使用後續備份進行恢復。

 

第十章 數據庫運行維護與優化

數據數據庫的維護工作包括:數據庫的轉儲和恢復;數據庫的安全性和完整性控制;數據庫性能的監控分析和改進;數據庫的重組和重構。

 

數據庫監控分析的主要內容:一種分類:數據庫架構體系監控(空間基本信息、空間使用率與剩餘空間大小、空間是否具有自我擴展能力,那些表的擴展將引起空間的擴展、段的佔用完間與區間數),數據庫性能的監控(數據緩衝區命中率、庫緩衝、用戶鎖、鎖與等待、回滾段、臨時段的使用情況,索引的使用情況,等待事件和共享池等)。另一種分類:自動監控機制、手動監控機制。

 

數據數據庫重構一般在現有數據庫結構不能滿足新的業務需求時進行,會需要調整數據庫的模式和內模式,只能對結構進行少部分修改。數據庫重組進行碎片整理和回收可以提高數據庫執行效率。

 

數據庫性能的優化:數據庫運行環境、參數調整、模式調整、存儲優化、查詢優化幾方面考慮。

環境與參數:外部環境(CPU,網絡)、調整內存分配、調整磁盤I/O、調整競爭。

模式調整與優化:高效利用存儲空間,減少數據冗餘,減少數據不一致,規範化的過程。第二個目標是高效率進行數據處理,反規範化,方法有:增加派生冗餘列、增加冗餘列、重新組表、分割表(水平分割:表有好的獨立性,局部使用,全局查詢一般不用。垂直分割:表中某些列常用,另一些不常用)和新增彙總表等方法。

存儲優化:物化視圖(適用於多個數據量較大的表進行連接操作及分佈式數據庫中需要進行分佈在多站點的表進行連接操作。)、聚集(將經常一起使用的具有同一公共列值的多個表中數據行存儲在一起,由公共列構成聚集碼,最小化必須執行的I/O次數,改善系統性能。)

查詢優化:

1.合理使用索引

  • 經常在查詢中作爲條件被使用的列。
  • 頻繁進行排序或分組(group by 或 order by)的列
  • 一個列值域很大
  • 如果待排序的列有多個,應建立複合索引。
  • 可使用系統工具來檢查索引的完整性,必要時修復。
  • 數據庫大量更新數據,刪除並重建索引。

 

2.避免或簡化排序

3.消除對大型表數據的順序存取

4.避免複雜的正則表達式

5.使用臨時表加速查詢

6.用排序來取代非順序磁盤存取

7.不充分的連接條件

8.存儲過程

9.不要隨意使用遊標

10.事務處理

 

第十一章 故障管理

事務內部故障、系統故障、介質故障、計算機病毒故障

數據轉儲:

完全轉儲:對數據庫中所有數據進行轉儲,佔用較多時間空間,但在系統失敗時恢復時間較短。

增量轉儲:只複製上次轉儲後發生變化的文件或數據塊。所需時間和空間較短,恢復時間比僅適用完全轉儲更長。

差量轉儲:是對最近一次的數據庫完全轉儲以來發生的數據變化進行轉儲。速度快,佔用較小空間,差量轉儲和增量轉儲相比,速度慢,佔用空間多,但恢復速度快。

日誌文件

1.事務故障恢復和系統故障恢復必須使用日誌文件。

UNDO REDO

系統故障恢復 有Begin Transaction,而沒有結束記錄,即沒有Commit 或Rollback,則撤銷。

事務已經完成了事務的所有操作並提交,但其對數據庫的修改還保留在緩衝區,沒有寫到數據庫中,既有Begin Transaction,又有Commit記錄,應該重做。

 

2.動態轉儲方式中必須建立日誌文件。

3.在靜態轉儲方式中也可以使用日誌文件。

 

日誌有兩種格式:以記錄爲單位、以數據塊爲單位。

登記日誌文件的原則:等級的次序嚴格按並行事務執行的時間次序。

必須先寫日誌文件,後寫數據庫。

 

硬件容錯方案

磁盤保護技術:

RAID0:採用數據分塊、並行傳送方式、提高讀寫速度,出現故障將無法恢復。

RAID1:硬盤分成兩組,互爲鏡像。分塊後並行傳輸,提高了讀速度,加強了系統的可靠性,但磁盤的利用率低,冗餘度高,寫速度未提高。

RAID5:與RAID0相近的數據讀速度,多了奇偶校驗信息,寫入速度比單個磁盤稍慢,磁盤利用率比RAID1高,存儲成本低。

 

1 簡單恢復模式:可最大限度地減少是五日至的管理開銷,因爲這種恢復模式,不備份事務日誌。但如果數據庫損壞,則簡單恢復模式,將面臨極大的數據丟失風險。在這種恢復模式下,數據只能恢復到最新備份狀態。只用於測試與開發數據庫,不適合生產系統。

2完整規範模式:完整的記錄所有的事物,並將事務日誌記錄,保留到對其備份完畢爲止。

3 大容量日誌恢復模式:只對大容量操作進行最小記錄,事務日誌不會被大容量加載操作所填充。簡略記錄大多數大容量操作,完整記錄,其他事務,該模式提高提高了大容量操作的性能,常用做完整恢復模式的補充。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章