1. 程式人生 > 實用技巧 >資料庫系統

資料庫系統

資料庫系統


三級模式

兩級對映:

物理資料庫:一般表現為一個檔案
內模式:管理資料如何儲存(如何優化/儲存格式)
概念模式:資料空中的
外模式:檢視(將表的部分資訊展示給使用者)


資料庫設計過程


E-R模型

整合的方法:

多個區域性E-R圖一次整合。
逐步整合,用累加的方式一次整合兩個區域性E-R.

整合產生的衝突及解決辦法:

①屬性衝突: 包括屬性域衝突和屬性取值衝突。
②命名衝突:包括同名異義和異名同義。
③結構衝突:包括同一物件在不同應用中具有不同的抽象,以及同一實體在不同區域性E-R圖中所包含的屬性個數和屬性排列次序不完全相同。

E-R模型轉關係模式注意點:

一個實體型轉換為一個關係模式


②聯絡有三種1:1、1:n、m:n

I、當1:1時可以將聯絡單獨做一個關係模式,也可以將聯絡記錄到與它相關的任何一個實體裡面當一個屬性
II、當1:n的可以將聯絡單獨做一個關係模式、或只能加入到n的那個實體裡面噹噹一個屬性
III、當m:n的時候就只能轉為一個關係模式

三個以上實體間的一個多元聯絡,聯絡只能轉為一個關係模式。


關係代數

對A、B兩個集合進行討論

①並(∪):A、B合併,重複的只顯示一次
②交(∩):提出A、B公共部分
③差(-):去掉被減集合的公佈部分,即A-B=A-(A∩B)
④笛卡爾積(X):每個A的欄位都要和B的拼接
eg: A:

x Y
x1 y1
x2 y2

B:

X Y
X3 y3
x4 y4

AxB:

A.X A.Y B.X B.Y
x1 y1 x3 y3
x1 y1 x4 y4
x2 y2 x3 y3
x2 y2 x4 y4

⑤投影(選列的一種操作):選擇某一列顯示出來。
eg:Πx(A):

x
x1
x2

⑥選擇(選行的一種操作):選擇某一行顯示出來。
eg:σx=x1(A):

x Y
x1 y1

⑦聯結:連線後,若相同的列名就保留一個。(帶列明的連線是等值連線,沒帶列明的是自然連線)
eg:A⋈B:

x Y
x1 y1
x2 y2
X3 y3
x4 y4

規範化理論

規範化的概念

規範化就是消除資料冗餘、更新異常,插入異常、刪除異常。

函式依賴

如Y=X2,我們可以通過X的值得到Y的值,那麼就就稱X函式決定Y,或Y函式依賴於X,記為X→Y。

①部分函式依賴:我們可以通過AB來確定C,但是我們發現用A/B也可以確定C(依賴於主鍵的一部分)。

②傳遞函式依賴:A可以確定B,B可以確定C,則A可以確定C,但不能逆著確定

care:候選鍵可以有多個,但是主鍵只能有一個,外來鍵是用於關聯查詢

求候選鍵

圖示法:把一個關係模式化成圖形,將屬性畫作節點,然後標出屬性之間的依賴關係,找出入度為0的節點(如果沒有的話就找即有入度也有出度的節點),然後通過這個結點遍歷全部節點,如果可以遍歷他就是候選鍵。

正規化

當正規化級別越來越高的同時,資料的密度越小,效能會降低,一般第三正規化就夠了。(越高階的正規化,越將資料表拆分的越細)

1NF:在關係模式中,當且僅當所有域只含原子值(每個分量都是不可再分的資料項)

2NF:在滿足1NF的基礎上,每個非主屬性完全依賴主鍵(不存在部分依賴)。

3NF:在滿足1NF的基礎上,沒有非主屬性傳遞依賴。

BCNF:列出一個關係模式中的所有依賴情況,若左邊部分都含有候選鍵則為BCNF。

模式分解

①保持函式依賴:分解前後的函式依賴不變(冗餘函式依賴如果能夠推匯出來也是可以的)。
②無損分解:可以還原
③無損聯接分解:通過連線操作可以還原回原來的表格

④判斷無損分解的公式法(比較多用於一分為二中)

將R分為R1和R2,F是R的函式依賴集
記R1∩R2=A,R1-R2=B,R2-R1=C
若A→B或A→C出現在F中,則為無損。

⑤表法

將分分裂的內容列為下面的表格:
總表應該有的屬性
關係模式名稱1	
然後將所有的關係模式帶入到1中,如果可以替換成功就是無損。

反規範化

①為何需要反規範化:

由於規範化會使表不斷的拆分。從而導致資料表過多。這樣雖然減少了資料冗餘,提高了增、刪、改的速度,但會增加查詢的工作量。系統需要進行多次連線,才能進行查詢操作。使得系統效率大大下降

技術手段(規範化的反面):

	增加派生性冗餘列
	增加冗餘列
	重新組表
	分割表

care:其實用空間換時間的做法


併發控制

①基本概念:

事務:將多個操作封裝起來看作一個整體
事務特性:原子性(不可拆分)、一致性(類似於能量守恆)、隔離性、持續性

③併發產生的問題:

i、丟失更新:一個使用者的操作事務如果和另外一個使用者的操作事務相同,會將先進行的一方覆蓋掉。
ii、不可重複讀:一個使用者在兩次讀一個事務的時候,中間插入了另外一個使用者對這個事務的寫操作,就會使得第二次讀的時候的資料發生了改變。
iii、讀“髒”資料:一個使用者讀到的資料是另外一個使用者的臨時值。

④封鎖協議:

1級封鎖協議。事務T在修改資料R之前必須先對其加X鎖,直到事務結束才釋放。可防止丟失修改
2級封鎖協議。一級封鎖協議加上事務T在讀取資料R之前先對其加S鎖,讀完後即可釋放S鎖。可防止丟失修改,還可防止讀“髒”資料
3級封鎖協議。一級封鎖協議加上事務T在讀取資料R之前先對其加S鎖,直到事務結束才釋放。可防止丟失修改、防止讀“髒”資料與防止資料重複讀

care:

可序列化:通過加鎖解鎖兩個階段使併發事務<font color=blue>排隊</font>做
兩段鎖協議,可序列化的,可能發生死鎖。
X是排它鎖,只能T讀取修改。
S是共享鎖,只能讀,不能修改。

資料庫

資料庫的完整性約束

①實體完整性約束:給資料表定義主鍵(不可為空/重複)
②參照完整性約束:外來鍵
③使用者自定義完整性約束:使用者設定某一個值的具體要求
④觸發器:遇到複雜的要求,寫指令碼來約束資料庫資料的要求。

資料庫安全

措施 說明
使用者標識和鑑定 認證身份,最外層的安全保護措施,可以使用使用者賬戶、口令及隨機數檢驗等方式
存取控制 對使用者進行授權,包括操作型別(如增刪改查)和資料物件(資料範圍)的許可權
密碼儲存和傳輸 對遠端終端資訊用密碼傳輸
檢視的保護 對檢視進行授權
審計 使用一個專用檔案或資料庫,自動將使用者對資料庫的所在操作記錄下來

資料備份

①分類方式1:

冷備份也稱為靜態備份,是將資料庫正常關閉,在停止狀態下,將資料庫的檔案全部備份(複製)下來。

熱備份也稱為動態備份,是利用備份軟體,在資料庫正常執行的狀態下,將資料庫中的資料檔案備份出來。

優點 缺點
冷備份 非常快速的備份方法(只需複製檔案) ;容易歸檔(簡單複製即可) ;容易恢復到某個時間點上(只需將檔案再複製回去) ;能與歸檔方法相結合,做資料庫"最佳狀態"的恢復;低度維護,高度安全 單獨使用時,只能提供到某一時間點上的恢復;在實施備份的全過程中,資料庫必須要作備份而不能做其他工作;若磁碟空間有限
只能複製到磁帶等其他外部儲存裝置上,速度會很慢;不能按表或按使用者恢復
熱備份 可在表空間或資料庫檔案級備份,備份的時間短;備份時資料庫仍可使用;可達到秒級恢復(恢復到某- -時間點上) ;可對幾乎所有資料庫實體做恢復;恢復是快速的 不能出錯,否則後果嚴重;若熱備份不成功所得結果不可用於時間點的恢復;因難於維護,所以要特別小心,不允許“以失敗告終”

②分類方式2:

Ⅰ、完全備份:備份所有資料
Ⅱ、差量備份:僅備份上一次完全備份之後變化的資料
Ⅲ、增量備份:備份上次備份之後變化的資料(恢復很麻煩,如果出錯,就要全面的重新恢復)

(1)靜態海量轉儲:在系統中無執行事務時進行,每次轉儲全部資料庫。
(2)靜態增量轉儲:在系統中無執行事務時進行,每次只轉儲上一次轉儲後更新過的資料。
(3)動態海量轉儲:轉儲期間允許對資料庫進行存取或修改,每次轉儲全部資料庫。
(4)動態增量轉儲:轉儲期間允許對資料庫進行存取或修改,每次只轉儲上一次轉儲後更新過的資料。

Ⅳ、日誌檔案:事務日誌是針對資料庫改變所做的記錄,它可以記錄針對資料庫的任何操作,並將記錄結果儲存在獨立的檔案中

資料庫故障與恢復

故障關係 故障原因 解決方法
事務本身的可預期故障 本身邏輯 再程式中預先設定Rollback語句
事務本身的不可預期故障 算術溢位、違反儲存保護 由DBMS的恢復子系統通過日誌,撤銷事務對資料的修改,回退到事務初始狀態
系統故障 系統停止運轉 通常使用檢查點法
分質故障 外存被破壞 一般使用日誌重做業務

資料倉庫與資料探勘

①資料倉庫(特殊資料庫)特點

	面向主題
	整合的
	相對穩定的(非易失的)

②反映歷史變化(隨著時間變化)

	清理:資料格式統一、冗餘資料去除
	重新整理:新增
	資料集市:小的資料倉庫

③資料探勘:發現人類無法發現的資料分析(類似於大資料)

Ⅰ、方法:

	決策樹
	神經網路
	遺傳演算法
	關聯規則挖掘演算法

Ⅱ分類:

	關聯分析:挖掘出隱藏在資料間的相互關係。
	序列模式分析:側重點是分析資料間的前後關係(因果關係)。
	分類分析:為每個記錄賦予一個標記再按標記分類。
	聚類分析:分類分析法的逆過程。

大資料:對海量資料的處理

比較維度 傳統資料 大資料
資料量 GB或TB級 PB級以上
資料分析需求 現有資料的分析與檢測 深度分析(關聯分析、迴歸分析)
硬體平臺 高階伺服器 叢集平臺

特點:

	高度可擴充套件性
	高效能
	高度容錯
	支援異構環境
	較短的分析延遲
	易用且開放的介面
	較低成本
        下相容性