1. 程式人生 > 資料庫 >課程研討|資料庫原理1|第一週-2

課程研討|資料庫原理1|第一週-2

資料庫產品分類、特點及區別

1. 關係型資料庫和非關係型資料庫

關係型資料庫

資料庫由資料表組成,但是每張資料表之間都存在關係。

關係型資料庫模型是把複雜的資料結構歸結為簡單的二元關係。在關係型資料庫中,對資料的操作幾乎全部建立在一個或多個關係表格上,通過對這些關聯的表格分類、合併、連線或選取等運算來實現資料庫的管理。

非關係型資料庫

NoSQL(Not only SQL),泛指非關係型的資料庫。

  • 鍵值儲存資料庫(key-value)

    ​ 鍵值資料庫就類似傳統語言中的雜湊表,通過key來新增、查詢或者刪除資料庫,因為使用key主鍵訪問,所以會獲得很高的效能及擴充套件性。

    鍵值資料庫主要使用一個雜湊表,這個表中有一個特定的鍵和一個指標指向特定的資料。key/value模型對於IT系統來說的優勢在於簡單、易部署、高併發。

  • 列儲存資料庫(column-oriented)

    ​ 將資料儲存在列族中,一個列族儲存經常被一起查詢相關資料。通常用於應對分散式儲存海量資料。

  • 面向文件資料庫(document-oriented)

    ​ 該型別的資料模型是版本化的文件,半結構化的文件以特定的格式儲存。可以看作是鍵值資料庫的升級版,允許之間巢狀鍵值。

    ​ 資料以文件形式儲存。每個文件都是自包含的資料單元,是一系列資料項的集合。每個資料項都有一個名詞與對應值,值既可以是簡單的資料型別。資料儲存的最小單位是文件,同一個表中儲存的文件屬性可以是不同的。

  • 圖形資料庫

    ​ 允許我們將資料以圖的方式儲存。實體會被作為頂點,而實體之間的關係則會被作為邊。

2. Oracle資料庫

簡介

​ Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關係資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小微機環境。它是一種高效率的、可靠性好的、適應高吞吐量的資料庫方案。

特點

  • 完整的資料管理功能
    • 資料的大量性
    • 資料儲存的永續性
    • 資料的共享性
    • 資料的可靠性
  • 完備關係的產品
    • 資訊準則
    • 保證訪問的準則
    • 檢視更新準則
    • 資料物理性和邏輯性獨立準則
  • 分散式處理功能
    • 分散式處理:分散式處理則是將不同地點的,或具有不同功能的,或擁有不同資料的多臺計算機通過通訊網路連線起來,在控制系統的統一管理控制下,協調地完成大規模資訊處理任務的計算機系統。
  • 用Oracle能輕鬆實現資料倉庫的操作
    • 資料倉庫:資料倉庫,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個數據儲存,出於分析性報告和決策支援目的而建立。 為需要業務智慧的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。

優點

  • 可用性強
  • 可擴充套件性強
  • 資料安全性強
  • 穩定性強

應用

3. MySQL

簡介

​ MySQL是一種關係型資料庫管理系統,關係資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL 軟體採用了雙授權政策,分為社群版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。

特點

  • 開源的
  • 平臺獨立性,可在多種作業系統下執行
  • 快速的、可靠的和易於使用的資料庫伺服器
  • 使用C和C++編寫,保證原始碼的可移植性
  • 支援多執行緒,充分利用CPU資源。採用優化SQL查詢演算法,提高查詢速度
  • 既能夠作為一個單獨的應用程式應用在C/S網路環境中,也能作為一個庫嵌入到其他的軟體中
  • 提供TCP/IP、ODBC和JDBC等多種資料庫連線途徑
  • 提供用於管理、檢查、優化資料庫操作的管理工具
  • 可以處理擁有上千萬條記錄的大型資料庫

4. SQL Server

簡介

​ 是Microsoft公司推出的關係型資料庫管理系統。具有使用方便、可伸縮性好,與相關軟體整合程度高等優點。

特點

  • 是一項完美的C/S系統

  • 與Windows介面風格完全一致,易於安裝和學習

  • 相容性好、可擴充套件、可靠性高

  • 提供資料倉庫服務

5. Memcached

簡介

​ 是一套分散式快取記憶體系統。其API使用32位元的迴圈冗餘校驗計算鍵值,將資料分散在不同的機器上。當表格滿了以後,新增的資料會以LRU機制替換。一般使用目的是通過快取資料庫查詢結果,減少資料庫訪問次數,以提高動態Web應用速度,提高可擴充套件性。

特點

  • 協議簡單

  • 基於libevent的事件處理

    • libevent是個程式庫,將Linux的epoll、BSD類作業系統的kqueue等事件處理功能封裝成統一的介面。即使對伺服器的連線數增加,也能發揮I/O效能。
  • 內建記憶體儲存方式

  • 不互相通訊的分散式

6. 區別與比較

  • 開放性

    • Oracle、MySQL能在所有主流平臺上執行,採用完全開放策略
    • SQL Server只能在windows上執行
  • 面向物件

    • Oracle面向主流大型資料庫,用於中大型網站開發
    • MySQL、SQL Server做中小型資料庫,用於中小型網站以及個人使用
  • 操作性

    • Oracle較為複雜,同時提供GUI和命令列,多平臺下操作相同
    • SQL Server操作簡單,採用圖形介面(GUI)
  • 易維護性、價格

    • Oracle價格較高,管理複雜
    • SQL Server圖形管理介面易掌握,管理費用較低

7. 小結

  • 大型應用系統一般採用Oracle,提供高效能、高安全穩定性以及較高的資料處理能力;Oracle支援大型資料庫、支援多種系統平臺、資料安全級別為最高階

  • MySQL體積小、速度快,可以在多種作業系統下執行,大大降低資料庫系統的總體擁有成本

  • 中小型企業或應用中採用SQL Server作為資料平臺,節省資金的同時便於維護管理;執行平臺必須是微軟公司的作業系統,容易掌握

  • 很多網站使用Memcached提高網站的訪問速度,尤其是對於大型的需要頻繁訪問的網站,減少查詢效率,提高查詢速度

參考資料

[1]

[2]