113 一般警察特考三等 警察資訊管理人員 資料庫應用 考古題詳解

113 年・一般警察特考・三等・警察資訊管理人員
試題代碼 資料庫應用

第 一 題15 分

闡述資料庫管理系統(Database Management System)的功能,另外舉出三種常用的資料庫管理系統。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資料庫管理系統(Database Management System, DBMS)的定義與主要功能,以及常見 DBMS 的辨識。DBMS 是介於資料庫與使用者或應用程式之間的軟體,負責定義、建立、操作及管理資料庫,並提供一致、安全且有效率的資料存取方式。

解題方法

作答時可先用一句話說明 DBMS 的角色,再依「資料定義與操作、資料管理、安全與可靠性、共享與維護」整理功能。最後列出三種常用的 DBMS,並以名稱明確作答。

DBMS 的主要功能

  1. 資料定義與結構管理:提供資料定義語言(DDL),用來建立或修改資料庫、資料表、欄位、索引及視圖等結構。
  2. 資料存取與操作:提供資料查詢語言及相關操作功能,讓使用者或應用程式新增、查詢、修改與刪除資料。
  3. 資料儲存與檔案管理:管理資料在儲存媒體中的配置、存取方式、索引及緩衝區等,提升資料存取效率。
  4. 完整性管理:設定並檢查資料型別、主鍵、外鍵、唯一性及其他限制條件,以維持資料正確性與一致性。
  5. 安全與授權管理:管理使用者、角色及存取權限,限制未授權者讀取或修改資料。
  6. 交易與並行控制:協調多位使用者同時存取資料,並透過交易管理維持資料的一致性;
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 二 題15 分

請闡述分散式資料庫與集中式資料庫的特點與各自的優缺點。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資料庫的部署與資料配置方式。集中式資料庫將資料庫集中存放、管理於單一中心;分散式資料庫則將資料分布於多個透過網路連接的場所或節點,並由分散式資料庫管理系統協調存取,使使用者能以整體資料庫的方式查詢與操作。

分散式資料庫可依資料配置分為:

  • 資料複製(replication):同一資料的副本存放在多個節點,可提升讀取效率與可用性,但需維持副本一致。
  • 資料分割(fragmentation):依列(水平分割)、欄(垂直分割)或兩者組合,將資料分置於不同節點。
  • 混合配置:同時採用分割與複製。

判斷分散式資料庫是否對使用者透明,常看位置透明、分割透明及複製透明:使用者不必知道資料在哪個節點、如何分割,或存取的是哪一份副本。

解題方法

作答時先界定兩種架構的資料存放與控制方式,再依管理、效能、可靠性、擴充性、一致性與成本等面向逐項比較。優缺點須寫出原因,例如分散式架構能就近存取資料,但跨節點交易與一致性管理較複雜;集中式架構管理較簡單,但中心故障會影響整體服務。

集中式資料庫

**特點:**資料集中存放於單一伺服器或資料中心,由中央資料庫管理系統統一處理儲存、權限、備份與交易。各使用者透過網路連線至中心進行操作。

優點:

  1. **管理與維護簡單:**資料、權限、備份及版本集中管理,較容易制定一致的作業規範。
  2. **一致性較容易維持:**資料更新由中央系統處理,無須跨多個節點同步副本。
  3. **安全與稽核較集中:**存取控制及監控可集中規劃與執行。
  4. **初期建置較單純:**不必先處理跨站點資料配置、分散式交易與同步問題。

缺點:

  1. **單點故障風險:**中心伺服器或網路中斷,可能使多數使用者無法存取資料。
  2. **效能瓶頸:**大量請求集中至同一中心,可能造成處理負載與網路流量過高。
  3. **遠端存取延遲:**使用者與資料中心距離較遠時,查詢及更新需經網路傳輸,反應時間可能增加。
  4. **擴充受限:**負載增加時,若主要依賴提升中央主機能力,擴充成本可能較高。

分散式資料庫

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 三 題15 分

請解釋下列資料庫領域之專有名詞:

(一) 複合屬性(Composite Attribute)

(二) 髒讀(Dirty Read)

(三) 幻讀(Phantom Read)

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資料庫資料模型中的屬性分類,以及交易並行控制中的讀取異常。複合屬性屬於實體關係模型(ER Model)的概念;髒讀與幻讀則是多個交易同時執行時可能發生的問題。

解題方法

(一)複合屬性(Composite Attribute)

複合屬性是指一個屬性可以再分解為數個具有意義的子屬性。以「地址」為例,可拆成「縣市」、「行政區」、「路名」與「門牌號碼」;「姓名」也可依需求拆成「姓」與「名」。

在 ER 模型中,若應用系統需要個別查詢或處理這些組成部分,便可將其建模為複合屬性。相對地,若屬性不能再依該系統需求有意義地拆分,通常稱為簡單屬性。

(二)髒讀(Dirty Read)

髒讀是指一個交易讀取了另一個尚未提交交易所寫入的資料。若寫入資料的交易之後回復(Rollback),讀取該資料的交易便曾讀到一個從未正式提交的值。

例:交易 T1T_1 將帳戶餘額由 1,000 元改成 800 元,但尚未提交;此時交易 T2T_2 讀到 800 元。若 T1T_1 隨後回復,資料庫餘額恢復為 1,000 元,則 T2T_2 讀到的 800 元就是髒資料。

(三)幻讀(Phantom Read)

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 四 題15 分

闡述何謂預存程序(Store Procedure)與觸發程序(Trigger),以及敘述它們各自的優點?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資料庫伺服器端的兩種程式物件:預存程序(Stored Procedure)與觸發程序(Trigger)。兩者都可將程式邏輯放在資料庫中執行,但呼叫方式不同:

  • 預存程序:預先編寫並儲存在資料庫中的程式,應用程式或使用者可明確呼叫執行,並可傳入參數、回傳結果。
  • 觸發程序:與資料表或檢視表等資料庫物件相關聯的程式;當指定事件發生時,例如資料新增、修改或刪除,資料庫會依設定自動執行。

解題方法

作答時可先定義兩者,再從「執行方式」與「優點」分別說明。最關鍵的區別是:預存程序由外部明確呼叫;觸發程序由資料庫事件自動啟動。

預存程序:定義與優點

預存程序是由 SQL 陳述式及程序控制語法組成,經建立後儲存在資料庫中的程式單元。呼叫端可指定程序名稱及參數,請資料庫執行其中的資料查詢或異動工作。

其優點如下:

  1. 提升重複工作的效率:常用 SQL 與商業邏輯集中保存,減少每次呼叫時重複傳送大量 SQL 指令。
  2. 便於重複使用與維護:多個應用程式可呼叫同一程序;邏輯集中修改後,各呼叫端即可採用更新後的版本。
  3. 有助於安全控管:可授權使用者執行特定程序,而不直接授予其底層資料表的完整存取權限。
  4. 減少用戶端與資料庫之間的往返:複合操作可在資料庫端一次完成,降低網路通訊成本。
  5. 有利於一致性:將共用的資料處理規則集中於資料庫端,避免不同應用程式各自實作而產生差異。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 五 題15 分

請闡述視表(VIEW)的用途與優缺點。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

視表(View)是以查詢敘述定義的虛擬資料表,呈現一個或多個基礎資料表中的部分欄位或符合條件的資料。一般視表本身不儲存查詢結果;使用者查詢視表時,資料庫管理系統會依其定義存取基礎資料表。實體化視表(Materialized View)則會實際儲存查詢結果,需另行維護更新。

解題方法

本題是觀念題,可從「資料存取與呈現」「安全性與簡化」「更新與效能」三個面向,依序說明視表的用途、優點與限制。

一、用途與優點

  1. 簡化複雜查詢:將常用的多表連接、篩選或彙總查詢定義為視表,使用者可直接查詢視表,不必每次重寫複雜的 SQL。
  2. 限制資料可見範圍:只公開特定資料列或欄位,隱藏敏感資訊。例如建立只包含員工姓名與部門的視表,不提供薪資欄位。
  3. 提供一致的資料呈現:不同使用者或應用程式透過相同視表存取資料,降低重複撰寫查詢造成的定義不一致。
  4. 提供邏輯資料獨立性:在不改變使用者查詢介面的前提下,調整底層資料表結構或查詢實作;只要視表仍維持原有介面,應用程式就不必同步修改。
  5. 支援摘要與報表:透過彙總查詢呈現統計資訊;若使用實體化視表,還可避免每次都重新計算大型查詢結果。

二、缺點與限制

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 六 題35 分

資料庫內有三個表格,分別是 Product、Sales_table、Supplier。這三個表的欄位名稱與資料紀錄如下:

Product Table

IDnameSupplyID
P001玄天花S001
P002仙草S003
P003吉梗S002
P006辣椒S001
P007富士蘋果S003
P008岡山羊S002
P009台南牛肉S003

Sales_table

SeqProdIDamount
ord001P00112000
ord002P00920000
ord003P00716000
ord004P00625500
ord005P0025000
ord006P00117000

Supplier Table

IDname
S001大發
S002大紫
S003大展
S004大途

請回答下列問題:

(一) 請寫出建立 Sales_table 表格的 SQL 陳述句(SQL statement)。

(二) 請寫出以下 SQL 陳述句的結果集(Result Set)。

SELECT Product.name as customerName, Supplier.name as EmployerName FROM Product, Supplier, Sales_table WHERE Sales_table.amount >= 15000 AND Sales_table.ProdID = Product.ID AND Product.SupplyID = Supplier.ID;

(三) 請寫出以下 SQL 陳述句的結果集。

SELECT Supplier.ID as SuplID, Supplier.name as SuplName, (SELECT SUM(Sales_table.amount) FROM Sales_table WHERE Sales_table.ProdID IN (SELECT Product.ID FROM Product WHERE Product.SupplyID = Supplier.ID)) AS total_amount FROM Supplier;

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查:

  • CREATE TABLE 建表語法。
  • 多表連接,利用 WHERE 條件建立等值連接。
  • WHERE 篩選資料。
  • 子查詢與相關子查詢。
  • SUM 聚合函數。
  • NULL:沒有符合資料時,SUM 的結果為 NULL,不是 00。

(一)建立 Sales_table 表格

依題目資料,Seq 最大長度為 6,ProdID 長度為 4,amount 為整數,可寫成:

CREATE TABLE Sales_table (
 Seq VARCHAR(6) NOT NULL,
 ProdID VARCHAR(4) NOT NULL,
 amount INT NOT NULL,
 PRIMARY KEY (Seq),
 FOREIGN KEY (ProdID) REFERENCES Product(ID)
);

其中:

  • Seq 為每筆銷售紀錄的編號,因此設定為主鍵。
  • ProdID 對應 Product.ID,因此設定為外來鍵。
  • amount 儲存銷售金額。

(二)SQL 結果集

解題方法

篩選條件為:

Sales_table.amount≥15000Sales\_table.amount \geq 15000

符合的銷售紀錄如下:

SeqProdIDamount
ord002P00920000
ord003P00716000
ord004P00625500
ord006P00117000

再依照:

  • Sales_table.ProdID = Product.ID
  • Product.SupplyID = Supplier.ID

查出產品名稱及供應商名稱。

結果集

customerNameEmployerName
台南牛肉大展
富士蘋果大展
辣椒大發
玄天花大發

題目未使用 ORDER BY,因此 SQL 標準不保證輸出順序;上表依題目銷售紀錄順序列示。


(三)SQL 結果集

解題方法

子查詢先找出某供應商所供應的產品:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

其他考古題