軟考架構師(4)——數據庫基礎知識

數據庫系統由數據庫,數據管理系統,應用系統和數據庫管理員構成算法

一:數據庫模式與範式

1)數據庫結構與模式:數據庫

三層模式:概念模式(邏輯模式)、外模式、內模式。安全

兩層映射網絡

 

 

2)數據模型數據結構

數據模型主要有兩大類,分別是概念數據模型(實體聯繫模型)和基本數據模型(結構數據模型)。架構

概念數據模型併發

按照用戶的觀點來對數據和信息建模,主要用於數據庫設計。概念模型主要用
實體-聯繫方法(Entity-Relationship Approach)表示,因此也稱E-R模型。機器學習

基本數據模型數據庫設計

基本數據模型的組成要素是:數據結構,數據操做,完整性約束條件分佈式

經常使用的基本數據模型有

層次模型(只能表示1:n聯繫):

網狀模型:

關係模型:

面向對象模型:

3)數據的規範化

函數依賴

1)部分依賴:

2)傳遞函數依賴:

範式:

1NF屬性值都不可再分,範式逐步優化,已解決插入異常,刪除異常,數據冗餘

模式分解

  若是某關係模式存在存儲異常問題,則可經過分解該關係模式來解決問題。把一個關係模式分解成幾個子關係模式,須要考慮的是該分解是否保持函數依賴,是不是無損聯接。

 二:數據庫設計

1)設計過程

規劃

需求分析

概念結構設計

需求說明書提供的全部數據和處理要求進行抽象與綜合處理,按必定的方法構造反映用戶環境的數據及其相互聯繫的概念模型,即用戶的數據模型或企業數據模型。這種概念數據模型與DBMS無關,是面向現實世界的、極易爲用戶所理解的數據模型

設計策略主要有自底向上,自頂向下,有裏向外和混合策略

邏輯結構設計

邏輯設計的目的是把概念設計階段設計好的基本E-R圖轉換爲與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構,包括數據庫模式和外模式。

 ER圖:

三類衝突:屬性衝突,命名衝突,結構衝突

數據庫物理設計

 三:事務管理

事物特性:原子性,一致性,隔離性,持續性

1)併發控制:

2)故障與恢復:

 兩階段提交協議是協調全部分佈式原子事務參與者,並決定提交或取消(回滾)的分佈式算法。

二階段提交(Two-phaseCommit)是指,在計算機網絡以及數據庫領域內,爲了使基於分佈式系統架構下的全部節點在進行事務提交時保持一致性而設計的一種算法(Algorithm)。一般,二階段提交也被稱爲是一種協議(Protocol))。在分佈式系統中,每一個節點雖然能夠知曉本身的操做時成功或者失敗,卻沒法知道其餘節點的操做的成功或失敗。當一個事務跨越多個節點時,爲了保持事務的ACID特性,須要引入一個做爲協調者的組件來統一掌控全部節點(稱做參與者)的操做結果並最終指示這些節點是否要把操做結果進行真正的提交(好比將更新後的數據寫入磁盤等等)。所以,二階段提交的算法思路能夠歸納爲:參與者將操做成敗通知協調者,再由協調者根據全部參與者的反饋情報決定各參與者是否要提交操做仍是停止操做。

三階段提交協議在協調者和參與者中都引入超時機制,而且把兩階段提交協議的第一個階段拆分紅了兩步:詢問,而後再鎖資源,最後真正提交。

四:分佈式數據庫系統

1:特色

數據的分佈性:

統一性:

透明性:

1)分片透明性是指用戶沒必要關係數據是如何分片的,它們對數據的操做在全局關係上進行,即關係如何分片對用戶是透明的,所以,當分片改變時應用程序能夠不變。分片透明性是最高層次的透明性,若是用戶能在全局關係一級操做,則數據如何分佈,如何存儲等細節自沒必要關係,其應用程序的編寫與集中式數據庫相同。

2)位置透明性是指用戶沒必要知道所操做的數據放在何處,即數據分配到哪一個或哪些站點存儲對用戶是透明的。所以,數據分片模式的改變,如把數據從一個站點轉移到另外一個站點將不會影響應用程序,於是應用程序沒必要改寫。

3)局部映像透明性(邏輯透明)是最低層次的透明性,該透明性提供數據到局部數據庫的映像,即用戶沒必要關係局部 DBMS  支持哪一種數據模型、使用哪一種數據操縱語言,數據模型和操縱語言的轉換是由系統完成的。所以,局部映像透明性對異構型和同構異質的分佈式數據庫系統是很是重要的。

4).複製透明性:用戶不用關心數據庫在網絡中的各個節點的複製狀況,被複制的數據的更新都由系統自動完成。在分佈式數據庫系統中,能夠把一個場地的數據複製到其餘場地存放,應用程序可使用複製到本地的數據在本地完成分佈式操做,避免經過網絡傳輸數據,提升了系統的運行和查詢效率。可是對於複製數據的更新操做,就要涉及到對全部複製數據的更新。

2:目標

局部結點自治性,不依賴中心結點,能連續操做,具備位置獨立性,分片獨立性 數據複製獨立性,支持分佈式查詢處理,支持分佈式事物管理,具備硬件獨立性,具備DBMS獨立性 

 3:CAP理論

一致性(C)。分佈式系統中全部數據備份在同一時刻的值是否相同。

可用性(A)。當集羣中一部分節點故障後,集羣總體是否還能響應客戶端的讀寫請求(可用性不只包括讀,還有寫)。

分區容忍性(P)。集羣中的某些節點沒法聯繫後,集羣總體是否還能繼續進行服務。

 4:分庫分表

排序,分頁,分組,實現

 
 

五:數據倉庫

數據倉庫(Data Warehouse)是一個面向主題的、集成的、相對穩定的、且隨時間變化的的數據集合,用於支持管理決策。

1:傳統數據庫與數據倉庫的區別

 

 2:數據倉庫的架構

 

 

 

 

 

 

 

六:數據挖掘

1:概念

數據挖掘通常是指從大量的數據中經過算法搜索隱藏於其中信息的過程。數據挖掘一般與計算機科學有關,並經過統計、在線分析處理、情報檢索、機器學習、專家系統(依靠過去的經驗法則)和模式識別等諸多方法來實現上述目標。數據挖掘是經過分析每一個數據,從大量數據中尋找其規律的技術,主要有數據準備、規律尋找和規律表示3個步驟。數據準備是從相關的數據源中選取所需的數據並整合成用於數據挖掘的數據集;規律尋找是用某種方法將數據集所含的規律找出來;規律表示是儘量以用戶可理解的方式(如可視化)將找出的規律表示出來

 

  數據挖掘的任務有 關聯分析、聚類分析、分類分析、異常分析、特異羣組分析和演變分析等等。

2:經常使用技術:

決策樹

神經網絡

遺傳算法

關聯規則挖掘算法

 

七:NOSQL

NoSQL 數據存儲不須要固定的表結構,一般也不存在鏈接操做。在大數據存取上具有關係型數據庫沒法比擬的性能優

優勢:
易擴展
大數據量,高性能
靈活的數據模型
高可用
 

八:大數據

 大數據(Big Data),指的是所涉及的數據量規模巨大到沒法經過目前主流軟件工具,在合理時間內達到獲取、管理、處理、並整理成爲幫助企業經營決策目的的信息。

1:關鍵技術

大數據處理關鍵技術通常包括:大數據採集、大數據預處理、大數據存儲及管理、大數據分析及挖掘、大數據展示和應用(大數據檢索、大數據可視化、大數據應用、大數據安全等)。 

相關文章
相關標籤/搜索