---
# System prepended metadata

title: 資料庫期中考急救包

---

# 資料庫概論期中考筆記

[課後解答](https://hackmd.io/@68ZAczErQD2ELQBcxxI4xQ/SJwNjRMC1e)

### 第一課：資料庫簡介

### 1-1 資料庫系統概述

我們所稱的「資料庫」，準確來說是「資料庫系統」的一部分。資料庫系統由三個主要部分組成：

1. **資料庫應用程式 (Database Application)**
    - 提供使用者與資料庫互動的介面，包括表單、報表等。
2. **資料庫 (Database)**
    - 是儲存資料的地方，由資料庫管理系統負責管理。
3. **資料庫管理系統 (DBMS)**
    - 主要負責資料庫的管理、維護，並提供資料存取的介面。

例如，在 Microsoft Access 中，建立的每一個 `.accdb` 檔案就是一個資料庫。Access 作為資料庫管理系統，負責管理資料庫儲存的記錄。

### 1-2 資料庫的定義

**資料庫** 是一種資料儲存單位，通常是指已經經過組織的資料集合。常見的資料庫包括：

- **通訊錄資料**（如 Word 文件中的聯絡資訊）
- **學生成績資料**（如 Excel 中的學生成績）
- **銀行的帳戶和交易資料**
- **醫院的病人資料**
- **學校的學生、課程、選課和教授資料**

資料庫中的資料稱為「長存資料」，是維持企業或組織正常運作的關鍵資料。資料庫也包含資料之間的邏輯關聯，例如學生與選課資料之間的關係。

### 1-3 資料庫的邏輯關聯

資料庫儲存的是「邏輯關聯資料」，即資料之間有特定的關聯性。例如，學生資料和選課資料之間可能有「一對多」的關聯：每位學生可能選擇多門課程。

### 1-4 資料庫模型介紹

資料庫模型用來描述資料與資料之間的關聯性。常見的資料庫模型包括：

1. **大型檔案資料庫模型**
    - 資料以文字檔案的形式儲存，並且每個文字檔是資料庫的一部分。
    - 優點：簡單且容易管理。
    - 缺點：關聯性需要自行處理，並且對大型資料庫的處理非常繁瑣。
2. **階層式資料庫模型**
    - 資料以樹狀結構來組織，記錄之間有「父子關係」。
    - 優點：資料存取較為快速，且容易設計。
    - 缺點：結構固定，修改資料庫結構時需要小心。
3. **網路式資料庫模型**
    - 資料以網路狀的結構來組織，允許更多的迴圈關聯。
    - 優點：避免資料重複，資料存取非常快速。
    - 缺點：資料庫結構複雜，對維護有較高要求。
4. **關聯式資料庫模型**
    - 資料庫由表格（關聯）組成，資料之間的關聯是透過資料值來實現的。
    - 優點：資料設計簡單且易於管理，支援複雜查詢。
    - 缺點：處理複雜結構的資料時效能較差。

### 1-5 資料庫系統的分類

資料庫系統可以根據不同的角度進行分類：

1. **根據使用者數量：**
    - 單人使用（Single-user）：僅限一個使用者的系統。
    - 多人使用（Multi-user）：允許多位使用者同時訪問資料庫。
2. **根據使用範圍：**
    - 桌上型（Desktop）：適用於個人或中小型企業的資料庫。
    - 工作群組（Workgroup）：適用於公司部門或小組使用的資料庫系統。
    - 企業級（Enterprise）：大型企業跨部門使用的資料庫系統。
3. **根據位置：**
    - 集中式資料處理：所有資料處理集中在單一大型主機上。
    - 分散式資料處理：資料處理分散在多台計算機上，通常透過網路連接。
    

---

### 第二課：ANSI/SPARC 三層資料庫系統架構與資料庫管理系統

### 2-1 ANSI/SPARC 三層資料庫系統架構

ANSI/SPARC三層資料庫系統架構由**ANSI**（美國國家標準協會）和**SPARC**（標準規劃與需求委員會）制定，這是目前被廣泛接受的資料庫管理系統架構。該架構從不同的觀點來管理資料庫系統，分為三層：外部層、概念層、內部層。

**三層架構：**

1. **外部層 (External Level)**
    - 這是使用者觀點的層級，顯示的是使用者所能看到的資料，通常是資料庫的部分資料。
    - 每個使用者有不同的視角，可能只看到資料庫中的某些部分。例如，學生可以看到註冊資料、選課資料、學生成績等。
2. **概念層 (Conceptual Level)**
    - 概念層顯示的是資料庫的整體結構，資料庫管理師會看到整個資料庫的設計與資料表的結構，但不關心具體的資料存儲方式。
3. **內部層 (Internal Level)**
    - 這是資料實際儲存的層級，描述了資料在磁碟等儲存裝置中的儲存結構及檔案組織。資料庫管理系統與作業系統之間的介面通常位於此層。

### 2-2 資料庫綱要的基礎

資料庫綱要是資料庫的結構描述，這些描述定義了資料庫中資料的組織形式與資料表的欄位和資料類型。資料庫綱要可以分為三層：

1. **概念綱要 (Conceptual Schema)**
    - 描述資料庫的整體結構，包括所有資料表和欄位的定義。例如，Access中的資料表物件設計檢視便是概念綱要的具體表現。
2. **外部綱要 (External Schema)**
    - 外部綱要定義不同使用者視角的資料集。每個使用者或使用者群組可以有一個外部綱要，顯示他們能存取的資料。例如，查詢2000年前出生的學生資料便是外部綱要的表現。
3. **內部綱要 (Internal Schema)**
    - 內部綱要描述資料的儲存結構與索引等低層細節。例如，使用鏈結串列的資料結構來儲存學生資料。

### 2-3 資料庫管理系統（DBMS）

資料庫管理系統（DBMS）是一組用來管理資料庫的軟體工具，負責資料庫的組織、存儲、處理和保護。DBMS的主要組成部分包括：

1. **查詢處理模組 (Query Processor)**
    - 負責處理使用者查詢，將查詢語句轉換為資料庫管理系統可以理解的內部語言。它還負責查詢語法解析和查詢優化。
2. **回復管理模組 (Recovery Manager)**
    - 保障資料庫在系統崩潰後能夠恢復，負責記錄所有操作，並在系統出現問題時進行回復。
3. **交易管理模組 (Transaction Manager)**
    - 負責管理資料庫的交易，確保每個交易的執行是完整的，不會影響資料庫的一致性。
4. **儲存管理模組 (Storage Manager)**
    - 管理資料庫中的資料存儲，負責檔案管理、記憶體緩衝區管理和資料的磁碟儲存。

### 2-4 資料庫管理師的角色

資料庫管理師（DBA）負責維護和管理資料庫系統，確保資料庫的高效運行並提供給使用者所需的資料。資料庫管理師的主要工作包括：

- **維護資料庫綱要**：負責資料庫的設計與修改，協助資料庫設計師建立和修改資料表。
- **資料管理**：集中管理資料並確保資料的一致性與完整性。
- **監控資料庫性能**：監控資料庫的使用狀況並根據需要進行優化。
- **備份與回復**：定期備份資料並能在資料庫出現問題時恢復資料。

### 2-5 資料庫系統的優缺點

資料庫系統有許多優點，但也有一些缺點。其優點包括：

- **資料集中管理**：資料庫系統將所有資料集中管理，避免了資料重複並維持資料的一致性。
- **資料獨立性**：資料庫管理系統提供資料獨立性，應用程式不需要關心資料結構的變化。
- **支援交易管理**：提供事務處理和並行控制，保證資料一致性。

然而，資料庫系統也有缺點：

- **高額成本**：資料庫系統需要昂貴的硬體和軟體升級，並且系統升級需要大量資金。
- **資料轉換的成本**：將資料轉換為資料庫結構需要大量工作，並且可能需要全體員工的支持。
- **安全漏洞**：資料庫系統可能存在安全漏洞，若無妥善管理，可能會被非法存取。

### 2-6 常見的資料庫管理系統

1. **商用資料庫管理系統**：
    - **SQL Server**：由微軟開發，支援企業級應用。
    - **DB2**：IBM的資料庫管理系統，支援物件關聯資料庫。
    - **Oracle**：甲骨文公司開發的強大資料庫管理系統，支援Java語言。
2. **免費資料庫管理系統**：
    - **MySQL**：開源資料庫管理系統，支援多用戶並發。
    - **PostgreSQL**：開源的物件關聯式資料庫管理系統，支援高並發操作。

### 

---

## 第三課

### 1. **Access 基本介紹**：

- **Access** 是一個強大的資料庫管理系統，並且是資料庫開發環境的整合系統。使用者不需要寫程式碼即可建立和管理資料庫。
- 資料庫文件存儲為 `.accdb` 檔案（舊版為 `.mdb`），每個資料庫可以包含多個資料表，每個資料表由欄位組成。

### 2. **資料庫的基本物件**：

- **資料表**：用來儲存資料。
- **查詢**：用來篩選和搜尋資料表中的資料。
- **表單**：用來建立操作介面，讓使用者能輕鬆檢視、更新資料。
- **報表**：用來創建漂亮的資料列印報表。

### 3. **建立 Access 資料庫**：

- 使用者可以選擇建立 **空白資料庫** 或使用 **範本** 來快速開始。
- **空白資料庫** 是沒有任何預設物件的資料庫，使用者可以手動建立資料表、查詢、表單等物件。
- 資料庫建立後可以開始輸入記錄資料來填充資料表，並進一步設計其他物件來實現完整的資料庫功能。

### 4. **如何啟動和建立資料庫**：

- 啟動 Access 並選擇建立 **空白資料庫** 或選擇範本來建立資料庫。使用者需要提供資料庫的名稱和儲存位置。
- 使用範本可以快速建立符合需求的資料庫結構，包括表單、報表等預設物件。

### 5. **資料庫操作界面**：

- **功能區** 和 **索引標籤**：Access 使用功能區來整合各種功能，並透過索引標籤來切換不同類別的功能區。
- **快速存取工具列**：提供最常使用的功能，如儲存和撤銷操作。
- **功能窗格**：顯示資料庫的物件清單，使用者可以輕鬆選擇並管理資料表、查詢等。

### 6. **使用 Access 範本**：

- Access 提供數千個範本，這些範本是預設的完整資料庫，使用者可以根據需要選擇範本來快速建立資料庫。
- 範本可以幫助使用者建立包括資料表、查詢、表單和報表等物件，但有時候需要進一步修改範本來符合具體需求。

### 7. **開啟和關閉資料庫**：

- 使用者可以選擇開啟已經存在的資料庫或關閉目前的資料庫，並且可以在一個 Access 實例中切換不同的資料庫。

### 8. **安全性和功能檢查**：

- 開啟資料庫後，Access 可能會顯示安全性警告，特別是當資料庫使用 VBA（Visual Basic for Applications）進行編程時。使用者需要確認資料庫沒有安全性問題後，才能啟用被封鎖的內容。

### 9. **多任務操作**：

- Access 允許同時開啟多個資料庫物件，並使用標籤頁進行切換，讓使用者能夠更高效地操作資料庫。

### 10. **索引標籤和功能區**：

- Access 的功能區被分為不同的索引標籤，每個索引標籤對應不同類型的操作，如資料表管理、查詢、報表生成等。

---

### 1. **啟動和建立資料庫**

- **啟動 Access**：點選「開始」功能表，然後選擇 **Microsoft Access**。
- **建立新資料庫**：
    - 點選「空白資料庫」來創建一個全新的資料庫。
    - 設定資料庫的檔案名稱並選擇儲存位置（預設為 `.accdb` 格式，舊版是 `.mdb`）。
    - 點選「建立」，即可創建新的資料庫檔案。

### 2. **使用 Access 範本**

- **選擇範本**：如果你需要快速建立資料庫，Access 提供數千個範本來選擇。範本是已經設計好的資料庫結構，包含資料表、查詢、表單等物件。
    - 開啟 Access，進入範本頁面，搜尋適合的範本（如「教職員範本」）。
    - 點選範本後，選擇資料庫儲存位置，然後點擊「建立」來創建資料庫。

### 3. **建立資料表**

- **資料表（Table）**：在資料庫中，資料表是用來儲存資料的基本單位。每個資料表包含多個欄位，每個欄位儲存不同類型的資料（如文字、數字、日期等）。
- **建立資料表**：
    - 點選「建立」選單，然後選擇「資料表」。
    - 在資料表視圖中，可以直接輸入資料，並根據需要設定欄位名稱和資料型別。

### 4. **建立查詢**

- **查詢（Query）**：查詢是用來搜尋和篩選資料表中的資料的工具。
- **建立查詢**：
    - 點選「建立」選單，然後選擇「查詢設計」。
    - 選擇需要搜尋的資料表，並添加條件來篩選資料。
    - 可以使用「選擇查詢」來顯示篩選後的結果，並進行數據操作（如排序、過濾等）。

### 5. **建立表單**

- **表單（Form）**：表單用來提供使用者輸入和查看資料的介面。
- **建立表單**：
    - 點選「建立」選單，然後選擇「表單設計」。
    - 設計表單的外觀，將資料表欄位拖放到表單中，並設計表單的輸入和顯示界面。

### 6. **建立報表**

- **報表（Report）**：報表是用來將資料表中的資料以印刷格式輸出的工具。
- **建立報表**：
    - 點選「建立」選單，然後選擇「報表設計」。
    - 選擇需要的資料表，然後設計報表的顯示格式，如列印的欄位、文字格式等。

### 7. **資料庫操作界面**

- **功能區（Ribbon）**：Access 的操作界面使用功能區來顯示命令選項。功能區分為不同的索引標籤（如：常用、建立、外部資料等），根據操作對象的不同，顯示不同的功能選項。
- **功能窗格（Navigation Pane）**：顯示資料庫物件清單（如資料表、查詢、表單、報表等），可以在此選擇所需的物件進行操作。

### 8. **資料庫儲存與關閉**

- **儲存資料庫**：當完成資料庫操作後，可以點選「檔案」選單，選擇「儲存」來保存資料庫。
- **關閉資料庫**：當需要關閉資料庫時，選擇「檔案」選單，選擇「關閉」，或者直接關閉 Access 視窗。

### 9. **開啟已存在的資料庫**

- **開啟資料庫**：如果需要重新打開已存在的資料庫，可以在 Access 啟動頁面中選擇最近開啟的資料庫，或點選「檔案」選單中的「開啟」，瀏覽到資料庫儲存位置並開啟。

### 10. **安全性警告處理**

- 如果在開啟資料庫時出現安全性警告，特別是當資料庫包含 VBA（Visual Basic for Applications）程式碼時，需確認資料庫是可信的，然後選擇「啟用內容」來解除封鎖資料庫的部分功能。

---

## 第四課：學生資料表的設計與操作

### 資料表規劃與欄位設計

在 Microsoft Access 中，一個資料庫檔案可以包含多個資料表。每個資料表包含數個欄位，每一列代表一筆記錄。這樣的設計有助於將資料進行有效的結構化，並且能夠進行高效的查詢和報表生成。

### 步驟1：定義資料表欄位

假設我們從 Excel 試算表檔案將學生資料轉換為 Access 資料表。資料表欄位可以包括以下內容：

- 學號
- 姓名
- 地址
- 電話
- 生日
- 子郵件
- 科系
- 修課學分
- 國文成績
- 英文成績
- 數學成績
- 優先順序
- 備註

每一個欄位的資料類型與大小需要根據實際需求來設置。例如，學號欄位可以設為自動編號，姓名和地址欄位則可以使用簡短文字資料類型。

### 步驟2：設定資料類型與欄位大小

根據不同的資料內容，選擇合適的資料類型：

- **簡短文字**：用於儲存名字、地址、科系等較短的文字（最大字數為255）。
- **日期/時間**：用於儲存生日資料。
- **數字**：用於儲存成績、修課學分等數值型資料。
- **自動編號**：用於學號等需要自動遞增的欄位。

每個欄位的大小（例如字元數）也需要根據資料的預期長度來設計。

### 資料表欄位的資料類型與大小設定

不同的資料類型有不同的屬性設定：

- **簡短文字**：最大大小為255字元，可設定是否需要輸入資料，是否允許空字串等。
- **數字**：可設置小數位數、範圍等。
- **自動編號**：自動遞增，不能修改。

### 資料表欄位屬性設定

- **格式屬性**：可以設置如何顯示數字或日期。例如，日期欄位可以設為「簡短日期」格式，數字欄位則可以設定為「整數」。
- **輸入遮罩屬性**：可以定義如何輸入資料。例如，對學號欄位可以設置特定的格式（例如 `(S0201)`）。

### 資料工作表操作

- **新增記錄**：在資料工作表中，可以手動輸入每一筆記錄。每一筆記錄代表一個學生的資料。
- **編輯記錄**：直接點擊某個欄位，並進行修改即可。
- **刪除記錄**：選擇要刪除的記錄，右鍵點擊選擇刪除即可。
- **調整欄位顯示順序**：可以拖動欄位標題來改變顯示順序。
- **隱藏欄位**：如果某些欄位不需要顯示，可以選擇隱藏它們。

### 匯入外部資料

- **匯入 Excel 資料**：使用 Access 的匯入功能，可以從外部 Excel 檔案匯入學生資料，並將其存儲到資料表中。這對於將現有資料導入 Access 資料庫非常有用。

### 顯示資料格式設定

- **數字格式**：可以設置顯示的數字格式，例如貨幣格式、百分比格式等。
- **日期格式**：可以設定日期的顯示格式，如簡短日期或完整日期格式。

---

###