【數據庫】數據庫鞏固一

前言:

這次我們來從頭到腳來重新認識一遍數據庫吧!!!

一、數據庫技術

數據庫技術是數據庫管理的有效技術,研究如何對數據進行科學管理,從而爲人們提供可共享的、安全的、可靠的數據。

數據庫技術包含四個相關概念: 數據,數據庫,數據庫管理系統,數據庫系統

1、數據

  • 早起的計算機系統主要用於科學計算,處理的數據是數值型數據:比如整數,浮點數。
  • 現代計算機系統的數據概念是廣義的:數字、文字、圖像、圖形、音頻等
  • 數據除了表現形式之外,還有語義---->理解:比如60可以是一個班有60個人,也可以是一個人的體重
  • 記錄:記錄是在計算機中表示和存儲數據的一種格式或一種方法(比如把多方面的數據來描述一個人,這些數據組織在一起,構成一條記錄)

2、數據庫
數據庫是存放數據的倉庫,是大量數據的集合。
數據庫是長期存儲在計算機內、有組織的、可共享的大量數據的集合。

有組織:按照一定的數據模型組織、描述和存儲。
可共享:爲各種用戶使用

3、數據庫管理系統(DBMS)

數據庫管理系統是一個能夠科學地組織和存儲數據,高效的獲取和維護數據的系統軟件,是位於用戶與操作系統之間的數據管理軟件,包含的功能:

  • 數據定義功能(DDL)
  • 數據組織、存儲和管理功能
  • 數據操縱功能(DML)
  • 數據庫的事務管理和運行管理功能
  • 數據庫的建立和維護功能
  • 與其他軟件系統的通信功能

強調:數據庫管理系統是一個系統軟件的概念,數據庫管理系統和操作系統一樣是計算機系統的基礎軟件

4、數據庫系統(DBS)

數據庫系統是由數據庫、數據庫管理系統(及其應用開發工具)、應用程序和數據庫管理員組成的存儲、管理、處理和維護數據的系統。
在這裏插入圖片描述
(藍色框框都是代表數據庫系統組成部分)

二、數據模型

數據模型是數據庫系統的核心和基礎,所以數據庫系統的發展和數據模型的發展密不可分。所以數據庫模型的劃分維度是數據庫系統劃分的一個重要標準。

1、層次模型

在這裏插入圖片描述

  • 層次模型的數據結構就是一棵樹形結構,只有一個節點沒有雙親,也就是根節點(root)
  • 根節點意外的其他節點有且只有一個雙親節點
2、網狀模型

在這裏插入圖片描述

  • 允許一個以上的節點無雙親
  • 一個節點可以有多於一個雙親

例子:如學生選課之類的
注:圖裏的E代表實體,R代表實體之間的關係

3、關係模型

關係模型是一組關係組成的。每個關係的數據結構都是一張規範化的二維表

  • 建立在嚴格的數據概念基礎上
  • 關係必須是規範化的
  • 關係的分量必須是一個不可分的數據項
    在這裏插入圖片描述

關係模式: 關係名(屬性1,屬性2,屬性3,……,屬性n)
比如例子中的關係就是 學生(學號,姓名,年齡,性別)

4、面向對象數據模型

傳統的關係數據模型對複製對象的標識能力差,語義表達能力較弱,就提出了面向對象型,但是語言過於複製,沒有得到認可

5、XML數據模型

是一種半結構化數據,半結構化是相對結構化數據而言的,純文本的話就是一種無結構化數據

6、RDF數據模型

RDF是用來描述互聯網資源的標記語言,結構爲(主語(url),謂語(屬性),賓語(具體的值或者另一個數據對象))

三、數據庫類型

1、SQL(Structured Query Language)

用於關係型數據庫(ACID特性)

  • 高級的非過程化編程語言,允許用戶在高層數據結構上工作
  • 不要求用戶制定數據存放方法
  • 不需要用戶瞭解具體數據存放格式
  • 還有通用的特點,底層不同的關係型數據庫也可以使用相同的SQL語言
2、NoSQL(Not Only SQL)

非關係型的、分佈式的、不保證滿足ACID特性的一類數據管理系統。
在這裏插入圖片描述
技術特點:

  • 對數據進行分區,利用大量節點並行處理獲得高性能
  • 降低ACID一致性約束,運行暫時不一致,接收最終一致性。遵循BASE原則
  • 各數據分區提供備份(一般三份),提高系統可用性
3、NewSQL
  • 指追求NoSQL的可擴展性同時能夠支持關係模型(包括ACID特性)的關係型數據庫系統,主要面向OLTP場景。
  • 能夠支持SQL作爲主要的使用語言

四、數據庫架構發展

隨着業務規模增大,數據庫存儲的數據量和承載的業務壓力也不斷增加,數據庫的架構需要隨之變化,爲上層應用提供穩定和高效的數據服務。
在這裏插入圖片描述

  • 首先按照主機數量來區分,一個數據庫主機是單機架構,多於一個數據庫主機是多機架構

  • 對於單機架構來說,單主機是指應用和database都部署在同一個主機上。而獨立主機則是兩者分開,database專門部署在獨立的數據庫服務器上。

  • 對於多機架構來說,按照數據數量是否分片,分爲兩類,分別是分組和分片

  • 分組:有主備、主從、多從,是根據服務器擁有的角色不同來劃分的,本質也是利用同步技術在多個庫之間進行數據複製

  • 分片(sharding):從數據的獨立性角度來描述架構

    分片架構主要表現形式就是水平數據分片架構,把數據分散在多個節點上的分片煩惱幹,每一個分片包括數據庫的一部分,成爲一個shard。(常見的分片算法:根據列表值,範圍取值和hash值進行分片)

    ○ 無共享(Share-Nothing)架構:是從資源獨立性角度來描述架構。sharding是shared-nothing架構的基礎。
    集羣中每一個節點(處理單元)都有自己獨立的CPU/內存/存儲,不存在共享資源,各處理單元處理本地的數據。Shared-Nothing的最小單元可能不是物理節點,而是邏輯上的虛擬處理單元。比如一個物理主機具有4核CPU,部署的時候可以部署4個數據庫實例,也就相當於擁有4個處理單元。

    ○ MPP:大規模並行處理:MPP是從並行計算角度來描述框架

五、數據庫的應用場景

1、聯機事務處理(OLTP)

面向基本的,日常的事務處理,例如銀行儲蓄業務的存取交易,轉賬交易等

特點:

  • 大吞吐量:大量的短在線事務,非常快速的查詢處理
  • 高併發,(準)實時響應

事務的舉例: 在tb買100塊錢的東西,裏面至少包括兩個操作:
1、買家的賬戶減少100元
2、賣家的賬戶增加100元
支持事務的數據庫管理系統要確保以上兩個操作(也就是整個事務)都能完成,或一起取消,不然會出現100元平白消失或出現的情況。

2、聯機分析處理(OLAP)

是指對數據的查詢和分析操作,通常對大量的歷史數據查詢和分析。涉及到的歷史週期比較長,數據量大,在不同層級上的彙總,聚合操作使得事務處理操作比較複雜。例如報表系統,數據集市,數據倉庫等。

特點:

  • 側重於複製查詢,回答一些“戰略性”的問題
  • 數據處理方面聚焦於數據的聚合,彙總,分組計算,窗口計算等“分析型”數據加工和操作
  • 從多維度去使用和分析數據
3、OLTP和OLAP對比分析

無論OLTP還是OLAP系統都是遵守ACID原則的關係型數據庫。兩者在功能上是相似的,都支持SQL,都可以處理大量數據,都是強一致事務處理。但是對於應用場景來說,OLTP更強調實時性要求,OLAP更強調大數據量分析。

數據處理類型 OLTP OLAP
分析粒度 細節的 細節的,綜合的,或提煉的
時效性 在存取瞬間是準確的 代表過去的數據
可更新性 可更新 不更新
操作可預知性 操作需求事先可知道 操作需求事先可能不知道
實時性 對性能要求高,相應毫秒級別、秒級 對性能要求相對寬鬆,相應分鐘級、小時級
數據量 一個時刻操作一條或幾條記錄,數據量小 一個時刻操作一集合,數據量大
驅動方式 事務驅動 分析驅動
應用類型 面向應用 面向分析
應用場景 支持日常運營 支持管理需求
典型應用 銀行核心系統、信用卡系統 ACRM、風險管理

六、2020年3月數據庫排行

在這裏插入圖片描述
可以去看每個月數據庫的排行:

https://db-engines.com/

在這裏插入圖片描述

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