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

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

第 一 題25 分

政府在推動兩稅合一以抑制房價高漲。今有一家房屋仲介公司擬建置一資料庫,經過系統分析後,有如下需求:

⑴每一間房屋(House)有一房屋編號(house-id)、街道名稱(house-str)、房屋種類(house-type)與價格(price),房屋編號唯一識別所有房屋。

⑵每一屋主(Seller)有一屋主編號(seller-id)、屋主姓名(seller-name)、屋主地址(seller-addr)與屋主電話(seller-tel),每一屋主有數個電話,屋主編號唯一識別所有屋主。

⑶每一買主(Buyer)有一買主編號(buyer-id)、買主姓名(buyer-name)、買主地址(buyer-addr)與買主電話(buyer-tel),每一買主有數個電話,買主編號唯一識別所有買主。

⑷房屋與屋主的關係為一個屋主可同時提供數間房屋委賣(Sold-By),一間房屋可由多位屋主所擁有。每一委賣皆記錄其委賣時間(sold-time)、契約書編號(contr-id)與佣金成數(sold-comm)。

⑸房屋與買主的關係為一個買主可同時購買(Purch-By)數間房屋,但每一房屋僅為一買主所購買。每一購買皆記錄其購屋日期(buy-time)、契約書編號(contr-id)、成交價(buy-price)與佣金成數(buy-comm)。

⑹每一屋主(Seller)會有多個繼承人(Inher-Dep)。每一繼承人(Inheritor)有繼承人編號(inher-id)與繼承人姓名(inher-name),繼承人編號唯一識別繼承人,繼承人依附於屋主存在。

請繪出此房屋仲介公司資料庫的實體關係圖(ER Diagram)。此實體關係圖裡應包括強實體型態(Strong Entity Types)與弱實體型態(Weak Entity Types)的設計,並請標示各項限制(Constraints)。

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

這一題的完整詳解

核心觀念

本題考查 ER 模型中的強實體、弱實體、識別關係、複合鍵、多值屬性,以及關係的基數與參與限制。題目不是選擇題,重點是把文字需求轉換成實體、屬性、關係與限制。

  • 強實體:自身具有完整主鍵,可獨立識別。
  • 弱實體:不能只靠自身的部分鍵識別,必須結合擁有者強實體的主鍵。
  • 多值屬性:同一實體可有多個屬性值,例如屋主電話、買主電話。
  • 基數限制:說明關係兩端可參與的數量,如一對多、多對多。
  • 參與限制:說明某實體是否必須參與關係;題目未明示必須參與時,不額外假設全參與。

解題方法

先依「唯一識別」判斷實體及主鍵,再依「依附於……存在」判斷弱實體,最後逐一把文字中的關係轉成 ER 關係並標示基數。

  1. 強實體
  • House:主鍵為 house-id;屬性為 house-str、house-type、price。
  • Seller:主鍵為 seller-id;屬性為 seller-name、seller-addr。
  • Buyer:主鍵為 buyer-id;屬性為 buyer-name、buyer-addr。
  1. 多值電話屬性

屋主與買主均有多個電話,因此 seller-tel、buyer-tel 分別畫成多值屬性。電話不是題目指定的識別鍵,不可取代各自的編號主鍵。

  1. 弱實體 Inheritor

Inheritor 依附於 Seller 存在,表示繼承人不能脫離屋主獨立識別,因此設計為弱實體。以 inher-id 作為部分鍵(辨識鍵),透過識別關係 Inher-Dep 連結屋主;完整識別鍵為:

{seller-id, inher-id}\{seller\text{-}id,\ inher\text{-}id\}

每位繼承人必須且只能依附一位屋主;每位屋主有多位繼承人。故 Inheritor 對識別關係為全參與,Seller 端為一、Inheritor 端為多。

  1. 屋主與房屋:Sold-By

一位屋主可提供多間房屋,一間房屋也可由多位屋主擁有,因此為多對多關係(M:N)。關係屬性為 sold-time、contr-id、sold-comm。題目未限定 contr-id 在全資料庫或此關係內唯一,故不將它逕列為主鍵。

  1. 買主與房屋:Purch-By

一位買主可購買多間房屋,每間房屋僅由一位買主購買,因此為一對多關係:Buyer 端為一,House 端為多。關係屬性為 buy-time、contr-id、buy-price、buy-comm。題目描述已購買房屋的情形;未說明每間房屋都必須售出,因此 House 對此關係為部分參與。

ER 圖與限制

🔒

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

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

免費註冊

第 二 題25 分

給予一關聯綱要(Relation Schema)GROUND(property-id,county-name,lot-id,area,price,tax-rate)GROUND(property\text{-}id, county\text{-}name, lot\text{-}id, area, price, tax\text{-}rate)。此關聯綱要記錄土地資料,包括財產編號(property-id)、鄉鎮名稱(county-name)、地號(lot-id)、土地面積(area)、價格(price)與稅率(tax-rate),主鍵為財產編號(property-id)。

並給予一組功能依附性(Functional Dependencies):

{property-id}→{county-name,lot-id,area,price,tax-rate}\{property\text{-}id\}\rightarrow\{county\text{-}name, lot\text{-}id, area, price, tax\text{-}rate\} {county-name,lot-id}→{property-id,area,price,tax-rate}\{county\text{-}name, lot\text{-}id\}\rightarrow\{property\text{-}id, area, price, tax\text{-}rate\} {county-name}→{tax-rate}\{county\text{-}name\}\rightarrow\{tax\text{-}rate\} {area}→{price}\{area\}\rightarrow\{price\}

關聯綱要 GROUNDGROUND 是否為 2NF?如不是,會有何問題?請將 GROUNDGROUND 正規化至 2NF,然後至 3NF。

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

這一題的完整詳解

核心觀念

本題考查第二正規化(2NF)與第三正規化(3NF)的判斷及分解。

  • 2NF:關聯先須符合 1NF,且每個非主鍵屬性都完全依賴每一個候選鍵;若非主鍵屬性只依賴候選鍵的一部分,便是部分依附,違反 2NF。
  • 3NF:關聯先須符合 2NF,且對每個非平凡功能依附 X→AX\rightarrow A,至少符合下列一項:XX 是超鍵,或 AA 是主鍵屬性(屬於任一候選鍵的屬性)。

主鍵為 property-id。由題目給定的功能依附性,county-name, lot-id 也能決定所有屬性,因此也是候選鍵。

解題方法

先找出候選鍵,再檢查非主鍵屬性是否部分依附於複合候選鍵,判斷是否符合 2NF;接著將造成違規的依附拆出。最後檢查 2NF 各關聯是否仍有非主鍵屬性對鍵的遞移依附,以分解至 3NF。

1. 找候選鍵

題目給定:

property-id→county-name,lot-id,area,price,tax-rateproperty\text{-}id\rightarrow county\text{-}name,lot\text{-}id,area,price,tax\text{-}rate

因此 property-id 是候選鍵。

又因為:

county-name,lot-id→property-id,area,price,tax-ratecounty\text{-}name,lot\text{-}id\rightarrow property\text{-}id,area,price,tax\text{-}rate

且藉由 property-id 可得 county-name 與 lot-id,所以 {county-name, lot-id} 能決定整個關聯,是另一個候選鍵。

因此候選鍵為:

{property-id},{county-name,lot-id}\{property\text{-}id\},\qquad \{county\text{-}name,lot\text{-}id\}

county-name 與 lot-id 是複合候選鍵的一部分。依 county-name → tax-rate,非主鍵屬性 tax-rate 只依賴複合候選鍵的一部分,屬於部分依附,所以 GROUNDGROUND 不符合 2NF。

2. 2NF 分解及問題說明

將部分依附 county-name → tax-rate 拆成獨立關聯:

GROUND1(property-id,county-name,lot-id,area,price)GROUND_1(property\text{-}id,county\text{-}name,lot\text{-}id,area,price) COUNTY(county-name,tax-rate)COUNTY(county\text{-}name,tax\text{-}rate)

這項分解將鄉鎮稅率存放在以 county-name 為鍵的關聯中。原關聯若不分解,同一鄉鎮有多筆土地時,稅率必須重複儲存,會造成:

🔒

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

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

免費註冊

第 三 題25 分

給予如下兩個關聯綱要(Relation Schemas):

EMPLOYEEEMPLOYEE 關聯綱要記錄員工編號(ssn)、年齡(age)及所在部門(dno),主鍵為 ssnssn。

DEPARTMENTDEPARTMENT 關聯綱要記錄部門編號(dnum)及名稱(dname),主鍵為 dnumdnum。

其中 EMPLOYEEEMPLOYEE 的外來鍵(Foreign Key)dnodno 參考到 DEPARTMENTDEPARTMENT 的主鍵(Primary Key)dnumdnum。

請用 SQL GROUP BY 寫出以下查詢:

「至少兩個人的部門,取出部門名稱及年齡大於 25 歲的人數。」

For each department that has more than two employees, retrieve the department name and the number of its employees who each is more than twenty-five years old.

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

這一題的完整詳解

核心觀念

本題考查 JOIN、GROUP BY 與聚合函數 COUNT 的搭配。EMPLOYEE.dno 外鍵參考 DEPARTMENT.dnum,可用兩者相等的條件連結員工與部門,取得部門名稱。

題目有兩種人數條件,須分別處理:

  • 「至少兩個人的部門」是每個部門的員工總數至少為 2。
  • 「年齡大於 25 歲的人數」是只計算 age > 25 的員工。

解題方法

先依 dno 分組,計算各部門的員工總數,並用 HAVING COUNT(*) >= 2 篩出至少有兩名員工的部門。再用條件式聚合,只計算這些部門中年齡大於 25 歲的員工人數。

🔒

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

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

免費註冊

第 四 題25 分

一資料庫管理系統(DBMS)基本上包括一資料庫安全與授權子系統(Database Security and Authorization Subsystem),負責確保對沒有授權資料庫內容存取的安全。

請論述一資料庫安全與授權子系統兩類型的資料庫安全機制(Two Types of Database Security Mechanisms),其中對資料庫內容的存取,在 SQL 語言中可使用何指令來設定權限,並寫出一獲得授權存取表格的例子。

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

這一題的完整詳解

核心觀念

資料庫安全與授權子系統的目的,是防止未經授權者讀取、修改或刪除資料庫內容。資料庫安全機制可分成兩類:

  1. 存取控制(Access Control):依使用者身分與其獲授權的權限,限制可操作的資料庫物件及操作類型。常見做法包括帳號密碼驗證、角色管理與權限授予。
  2. 資料流控制(Flow Control):限制資料在不同安全等級或使用者之間的流動,避免高敏感度資料透過直接或間接方式洩漏給無權知悉者。

題目特別詢問 SQL 中設定資料庫物件權限的指令,屬於存取控制,使用 GRANT 授予權限,並可使用 REVOKE 撤回權限。

解題方法

先指出兩類安全機制,再聚焦題目要求的 SQL 權限設定方式。GRANT 的基本語法為:

GRANT 權限 ON 資料庫物件 TO 使用者或角色;

例如,授予使用者對某資料表的查詢權限:

🔒

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

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

免費註冊

其他考古題