組成部分 | 說明 |
---|---|
資料庫(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) | 管理多用戶同時訪問和操作數據,防止數據衝突和不一致 |
資料庫的類型有分很多種,各自適用於不同的應用場景和需求。
資料庫類型 | 特點 | 優點 | 例子 |
---|---|---|---|
**關係型資料庫 | |||
(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 |
關聯式資料庫使用一系列的表格(tables) 來組織和存儲數據。每個表由行(rows)和列(columns)組成, 表與表之間通過鍵(keys)進行關聯。
表名 | 列1 | 列2 | 列3 | ... |
---|---|---|---|---|
表1 | 值1-1 | 值1-2 | 值1-3 | ... |
表2 | 值2-1 | 值2-2 | 值2-3 | ... |
... | ... | ... | ... | ... |
這些是關聯式資料庫中的基本管理類型和概念,它們一起協同工作,使數據管理變得高效、結構化和一致。
架構類型 | 定義 | 特點 | 優點 | 缺點 |
---|---|---|---|---|
單機架構 | 資料庫系統安裝在單台伺服器上 | 簡單易用,適合小型應用和開發測試環境 | 簡單部署和管理<br>適合資源有限的小型應用 | 無法處理大量請求或數據<br>單點故障風險高 |
大型主機/終端機架構 | 使用大型主機來集中存儲和處理數據,終端機僅用於輸入和顯示數據 | 集中管理和處理能力強<br>適合大規模數據處理和高性能要求的應用 | 高性能和高可靠性<br>集中管理便於維護和控制 | 設備和運行成本高<br>終端機功能有限,依賴於主機 |
主從式架構 | 由一個主伺服器和多個從伺服器組成,主伺服器處理寫操作,從伺服器處理讀操作 | 主從伺服器之間通過複製機制保持數據一致性 | 提高讀取性能,減少主伺服器負載<br>容錯性好,從伺服器可以作為備份 | 主伺服器故障會影響寫操作<br>複製延遲可能導致數據不一致 |
分散式架構 | 資料庫系統分佈在多個伺服器或節點上,協同工作處理數據和請求 | 數據和負載分佈在多個節點上,通過網絡通信協同 | 高可擴展性,適合大規模數據和高併發應用<br>高容錯性,一個節點故障不影響整體 | 系統複雜度高,管理和維護難度大<br>需處理網絡延遲和數據同步問題 |