資料庫管理 (Database Management)

avatar-img
發佈於軟體開發
更新於 發佈於 閱讀時間約 8 分鐘

1. 什麼是資料庫 (What is a Database)? 🤔

  • 定義: 資料庫是有組織地儲存和管理資料的集合。這些資料通常以結構化的方式儲存,便於檢索、更新和分析。
  • 例子: 學校的學生名冊、公司的客戶資料、產品庫存清單、銀行交易紀錄、網站的使用者資訊等等,都可以儲存在資料庫中。

2. 資料庫管理系統 (Database Management System, DBMS) 🧑‍💻

  • 定義: DBMS 是一種軟體,用於創建、管理和維護資料庫。它允許使用者和應用程式以安全、高效的方式與資料庫互動,而無需直接操作底層的檔案系統。
  • 功能:
    • 資料定義 (Data Definition): 定義資料的結構、型別、約束等。
    • 資料操作 (Data Manipulation): 增、刪、改、查資料。
    • 資料安全與保護 (Data Security & Protection): 實施存取控制、資料加密、備份與恢復等。
    • 資料完整性 (Data Integrity): 確保資料的準確性和一致性。
    • 多使用者存取控制 (Multi-user Access Control): 管理多個使用者同時存取資料庫。

3. 資料庫的類型 (Types of Databases) 🧩

市面上有很多種資料庫,它們有不同的結構和適用情境:

  • 關聯式資料庫 (Relational Database) 🌐 (RDBMS):
    • 概念: 這是目前最常見的資料庫類型。它將資料儲存在一個或多個表格 (Table) 中,每個表格由行 (Row)列 (Column) 組成。表格之間透過關聯 (Relationship) 連結,就像透過共同的欄位(例如學生 ID)來連接學生資訊表和選課表。
    • 比喻: 就像 Excel 表格一樣,每個表格有固定的欄位,表格之間可以互相參照。
    • 特性:
      • 結構化 (Structured): 資料儲存嚴格按照預定義的結構(表格、欄位)。
      • ACID 特性: 原子性 (Atomicity): 交易要嘛全部成功,要嘛全部失敗,沒有中間狀態。 一致性 (Consistency): 交易完成後,資料庫從一個有效狀態轉移到另一個有效狀態。 隔離性 (Isolation): 多個交易同時進行時,彼此不影響,就像單獨執行一樣。 持久性 (Durability): 交易一旦提交,其變更就是永久的,即使系統故障也不會丟失。
      • 使用 SQL 語言操作。
    • 常見的關聯式資料庫系統: MySQLPostgreSQLMicrosoft SQL ServerOracle Database
    • 適用情境: 銀行交易、電商訂單、使用者管理等需要高度資料一致性和結構化的應用。
  • 非關聯式資料庫 (Non-Relational Database) 或 NoSQL 資料庫 🚫💾:
    • 概念: 相對於關聯式資料庫,NoSQL 資料庫不使用表格、行、列的結構,而是以更靈活的方式儲存資料。它們為特定類型應用程式的資料儲存和檢索而設計。
    • 比喻: 就像一個大倉庫,你可以把東西裝在各種不同形狀的箱子裡 (文件、鍵值對、圖形),而不是非得放進固定的格子裡。
    • 常見類型:
      • 鍵值資料庫 (Key-Value Database): 最簡單的 NoSQL,每個資料都是一個鍵值對。例如 Redis (常用於快取)、DynamoDB (AWS)。
      • 文件資料庫 (Document Database): 資料以文件形式儲存(通常是 JSON 或 BSON 格式)。適合儲存非結構化或半結構化資料。例如 MongoDB。
      • 列式資料庫 (Column-Family Database): 以列而不是行的方式儲存資料。適合處理大量分散式資料。例如 Cassandra。
      • 圖形資料庫 (Graph Database): 用於儲存節點和邊的關係,擅長處理複雜的關係網路。例如 Neo4j (常用於社群網路、推薦系統)。
    • 特性:
      • 彈性結構 (Flexible Schema): 資料模型不嚴格固定,容易應對資料結構的變化。
      • 高擴展性 (High Scalability): 容易水平擴展以處理大量資料和高併發。
      • 效能高 (High Performance): 對於某些特定類型資料的存取非常快速。
      • 最終一致性 (Eventual Consistency): 在分散式環境下,資料可能在一段時間後才達到一致性,而不是立即一致。
    • 適用情境: 社群媒體、物聯網、大數據分析、即時應用程式、內容管理系統等需要高擴展性和靈活資料結構的應用。

4. SQL (Structured Query Language) 💬

  • 定義: SQL 是標準的查詢語言,用於與關聯式資料庫進行通訊和管理資料。它是資料庫專業人員和開發者必備的技能。
  • 基本操作:
    • 查詢資料 (SELECT): 從資料庫中讀取資料。
      • SELECT * FROM Customers; (查詢 Customers 表格中的所有資料)
      • SELECT ProductName, Price FROM Products WHERE Category = 'Electronics'; (查詢類別為 'Electronics' 的產品名稱和價格)
    • 插入資料 (INSERT): 將新資料添加到表格中。
      • INSERT INTO Customers (CustomerID, Name, Email) VALUES (1, '張三', 'zhangsan@example.com');
    • 更新資料 (UPDATE): 修改表格中現有的資料。
      • UPDATE Products SET Price = 1000 WHERE ProductID = 5;
    • 刪除資料 (DELETE): 從表格中移除資料。
      • DELETE FROM Customers WHERE CustomerID = 1;
    • 建立表格 (CREATE TABLE): 建立新的資料庫表格。
    • 修改表格 (ALTER TABLE): 修改表格的結構。
    • 刪除表格 (DROP TABLE): 刪除整個表格。

5. 資料庫設計 (Database Design) 📐

  • 正規化 (Normalization): 是一種資料庫設計原則,旨在減少資料冗餘(重複資料)和提高資料完整性。透過將大型表格拆分為多個較小的、相關的表格,並定義表格之間的關係。這有助於避免更新異常、刪除異常和插入異常。
  • 實體關係圖 (Entity-Relationship Diagram, ERD): 一種視覺化工具,用於表示資料庫中實體(例如客戶、產品)及其之間的關係。
  • 索引 (Indexing): 為了加速資料庫查詢而創建的一種特殊資料結構。就像書的目錄或字典的字母索引一樣,可以幫助資料庫系統快速找到所需的資料,而無需掃描整個表格。
留言
avatar-img
留言分享你的想法!
avatar-img
hello maple
2會員
62內容數
各種工作及生活中的小小紀錄
hello maple的其他內容
2025/06/03
本文介紹8種重要的資安措施,包括防火牆、入侵偵測/防禦系統、防毒軟體、存取控制、加密、安全更新、備份與復原,以及安全意識培訓,並以淺顯易懂的白話比喻說明其功能與重要性,適合對資安概念有初步瞭解或想要進一步學習的讀者。
Thumbnail
2025/06/03
本文介紹8種重要的資安措施,包括防火牆、入侵偵測/防禦系統、防毒軟體、存取控制、加密、安全更新、備份與復原,以及安全意識培訓,並以淺顯易懂的白話比喻說明其功能與重要性,適合對資安概念有初步瞭解或想要進一步學習的讀者。
Thumbnail
2025/06/03
這篇文章深入淺出地介紹七種常見的網路資安威脅,包含惡意軟體、網路釣魚、分散式阻斷服務攻擊、中間人攻擊、SQL 注入、跨站腳本攻擊和社會工程,並以生活化的比喻說明其攻擊原理、行為和例子,有助於讀者瞭解這些網路威脅並提升自身資安意識。
Thumbnail
2025/06/03
這篇文章深入淺出地介紹七種常見的網路資安威脅,包含惡意軟體、網路釣魚、分散式阻斷服務攻擊、中間人攻擊、SQL 注入、跨站腳本攻擊和社會工程,並以生活化的比喻說明其攻擊原理、行為和例子,有助於讀者瞭解這些網路威脅並提升自身資安意識。
Thumbnail
2025/05/27
這篇文章以淺顯易懂的比喻,說明資安的三大要素:機密性、完整性、可用性。透過「私房錢」的例子,幫助讀者理解這些概念的重要性、如何實現以及常見方法。
Thumbnail
2025/05/27
這篇文章以淺顯易懂的比喻,說明資安的三大要素:機密性、完整性、可用性。透過「私房錢」的例子,幫助讀者理解這些概念的重要性、如何實現以及常見方法。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ GROUP BY 用於將數據表中的數據按照一個或多個列進行分組。例如在處理一個表格的資料時,可以指定欄位,一個或是多個,然後把將其視為ID進行分組處理。 ※ 語法 SELECT column1, column2, ..., aggregate_function(column) FROM
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
※ 語法 SELECT select_list FROM table_name​ ※ 解析順序 From:從哪裡拿? SELECT:要 "拿什麼" 資料? ※ 使用場景: Single column(單一欄位): Multiple column(多個欄位): All colu
Thumbnail
※ 關聯式資料庫(RDBMS)是什麼? 關聯式資料庫(RDBMS)是一種傳統的資料庫系統,以結構化查詢語言(SQL)為基礎,將資料儲存於預定義的表格中。這些表格包括行和列,彼此之間存在明確的關聯性。 ※ 關聯式資料庫(RDBMS)有兩個重要元素: 關聯(Relational): 關聯式資料庫
Thumbnail
※ 關聯式資料庫(RDBMS)是什麼? 關聯式資料庫(RDBMS)是一種傳統的資料庫系統,以結構化查詢語言(SQL)為基礎,將資料儲存於預定義的表格中。這些表格包括行和列,彼此之間存在明確的關聯性。 ※ 關聯式資料庫(RDBMS)有兩個重要元素: 關聯(Relational): 關聯式資料庫
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
本課程認識什麼是 Room 資料庫,為什麼要用 Room 資料庫介紹
Thumbnail
本課程認識什麼是 Room 資料庫,為什麼要用 Room 資料庫介紹
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News