1-1系統簡介

資料庫系統(DATANASE)與資料庫管理系統(DBMS)

資料庫系統(Database System)

資料庫管理系統(Database Management System, DBMS)

組成部分 說明
資料庫(Database) 有組織的數據集合,存儲結構化數據
硬體(Hardware) 存儲和處理數據的物理設備,提供運行和存儲環境
軟體(Software) 資料庫管理系統及其他應用程序,管理和操作數據
使用者(Users) 使用資料庫系統的人,包括資料庫管理員(DBA)、開發人員和終端用戶

常見的DATABASE:

MySQL、 PostgreSQL、Firebird

常見的DBMS:

SQL Sever、Oracle、Microsoft Access、SQLite

功能 說明
數據定義(Data Definition) 提供工具來定義數據結構,定義表、索引、視圖等
數據操作(Data Manipulation) 支持數據的插入、查詢、更新和刪除,使用SQL等語言進行數據操作
數據安全性(Data Security) 控制數據的訪問權限,提供授權和認證機制
數據完整性(Data Integrity) 確保數據的一致性和準確性,防止數據冗餘和異常
數據備份與恢復(Backup and Recovery) 提供數據備份和恢復功能,確保數據在系統故障時可被恢復
並發控制(Concurrency Control) 管理多用戶同時訪問和操作數據,防止數據衝突和不一致

1-2 資料庫的類型

資料庫的類型有分很多種,各自適用於不同的應用場景和需求。

資料庫類型 特點 優點 例子
**關係型資料庫
(Relational Database)** 使用表格形式存儲數據,表與表之間通過鍵進行關聯。<br>支持SQL進行數據操作。 資料結構清晰,數據一致性高。<br>易於進行複雜查詢和報表生成。 MySQL、PostgreSQL、Oracle Database、Microsoft SQL Server
**文件型資料庫
(Document Database)** 使用類似JSON、BSON等格式存儲文件,數據結構靈活。<br>適合存儲非結構化或半結構化數據。 易於擴展,能夠處理複雜的嵌套數據結構。<br>高性能讀寫操作。 MongoDB、CouchDB
**鍵值型資料庫
(Key-Value Database)** 使用鍵值對(key-value pairs)存儲數據。<br>非常簡單和快速,適合高速讀寫操作。 高度可擴展,適用於分佈式系統。<br>高性能,特別適合緩存應用。 Redis、Riak、Amazon DynamoDB
**列族型資料庫
(Column-Family Database)** 以列為單位存儲數據,而不是以行為單位。<br>適合大規模數據存儲和讀取。 高壓縮率和高性能查詢,適合分析應用。<br>良好的擴展性和靈活性。 Apache Cassandra、HBase
**圖形資料庫
(Graph Database)** 使用節點(nodes)、邊(edges)和屬性(properties)來表示和存儲數據。 非常適合社交網路、推薦系統等應用。<br>能夠高效地處理複雜關聯查詢。 Neo4j、Amazon Neptune
**時間序列資料庫
(Time-Series Database)** 專門設計用於處理時間序列數據(如傳感器數據、股票價格)。<br>優化了時間序列數據的寫入和查詢。 高效的時間序列數據存儲和檢索。<br>支持複雜的時間序列分析操作。 InfluxDB、TimescaleDB
**多模型資料庫
(Multi-Model Database)** 支持多種數據模型,如文檔、圖形、關係型等。<br>提供靈活的數據存儲和操作方式。 能夠應對多樣化的應用場景。<br>減少了在不同類型資料庫之間的轉換和同步成本。 ArangoDB、OrientDB

1-3 關聯式的資料庫的管理類型

關聯式資料庫使用一系列的表格(tables) 來組織和存儲數據。每個表由行(rows)和列(columns)組成, 表與表之間通過鍵(keys)進行關聯。

關聯示意圖

表名 列1 列2 列3 ...
表1 值1-1 值1-2 值1-3 ...
表2 值2-1 值2-2 值2-3 ...
... ... ... ... ...

這些是關聯式資料庫中的基本管理類型和概念,它們一起協同工作,使數據管理變得高效、結構化和一致。


1-4 資料庫系統的網路架構

總結表格

架構類型 定義 特點 優點 缺點
單機架構 資料庫系統安裝在單台伺服器上 簡單易用,適合小型應用和開發測試環境 簡單部署和管理<br>適合資源有限的小型應用 無法處理大量請求或數據<br>單點故障風險高
大型主機/終端機架構 使用大型主機來集中存儲和處理數據,終端機僅用於輸入和顯示數據 集中管理和處理能力強<br>適合大規模數據處理和高性能要求的應用 高性能和高可靠性<br>集中管理便於維護和控制 設備和運行成本高<br>終端機功能有限,依賴於主機
主從式架構 由一個主伺服器和多個從伺服器組成,主伺服器處理寫操作,從伺服器處理讀操作 主從伺服器之間通過複製機制保持數據一致性 提高讀取性能,減少主伺服器負載<br>容錯性好,從伺服器可以作為備份 主伺服器故障會影響寫操作<br>複製延遲可能導致數據不一致
分散式架構 資料庫系統分佈在多個伺服器或節點上,協同工作處理數據和請求 數據和負載分佈在多個節點上,通過網絡通信協同 高可擴展性,適合大規模數據和高併發應用<br>高容錯性,一個節點故障不影響整體 系統複雜度高,管理和維護難度大<br>需處理網絡延遲和數據同步問題