7.Database
資料庫是資訊系統的核心之一,負責有系統地儲存、查詢與管理資料。在電腦科學中,資料庫廣泛應用於網站、應用程式、雲端服務、人工智慧、大數據等領域。
一、資料庫分類
1. 關聯式資料庫(Relational Database, RDBMS)
基於表格(Table)與主鍵(Primary Key)設計
使用 SQL(Structured Query Language)查詢與操作
適用場景:事務性系統、資料一致性要求高的應用
代表系統:
MySQL / MariaDB
PostgreSQL
SQLite
Oracle DB
Microsoft SQL Server
2. 非關聯式資料庫(NoSQL)
不以表格為核心,適合非結構化或半結構化資料
類型:
文件型(Document-Based):MongoDB、CouchDB
鍵值型(Key-Value):Redis、DynamoDB
廣欄型(Wide Column):Cassandra、HBase
圖形型(Graph-Based):Neo4j、ArangoDB
優點:可擴展性高、靈活性強、效能佳
二、關鍵概念
資料模型
描述資料如何結構與關聯(例:ER 模型、階層模型、文件模型)
正規化(Normalization)
拆解冗餘資料,提高一致性與查詢效率
交易(Transaction)
一組資料操作的單位,需滿足 ACID 特性
索引(Index)
加速查詢速度,類似書籍的目錄結構
查詢語言(Query Language)
最常見為 SQL,也有 NoSQL 系統的專屬查詢語法
三、SQL 語法簡介
-- 建立資料表
CREATE TABLE users (
id INT PRIMARY KEY,
name TEXT,
email TEXT
);
-- 查詢
SELECT * FROM users WHERE name LIKE 'A%';
-- 更新
UPDATE users SET email='new@example.com' WHERE id=1;
-- 刪除
DELETE FROM users WHERE id=1;
四、現代資料庫應用
雲端資料庫:Amazon RDS、Google Cloud SQL、Firebase
時序資料庫:InfluxDB、TimescaleDB(用於 IoT 或監控)
全文搜尋資料庫:Elasticsearch(支援模糊查詢與分詞)
混合式資料庫(HTAP):同時支援 OLTP 與 OLAP,如 TiDB
五、資料庫選擇建議
高度結構化資料 + ACID 保證
PostgreSQL, MySQL
文件型 JSON 資料
MongoDB
快速鍵值存取 / 快取
Redis
巨量串流 / 可擴展性要求高
Cassandra, DynamoDB
關係圖譜 / 網路結構
Neo4j
資料庫技術是每個電腦科學領域專業人士必備的核心知識,無論是資料科學、軟體工程還是系統設計,其設計原則與選型考量都直接影響系統的效能與可靠性。
Last updated