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

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

第 一 題50 分

考慮以下實體關聯圖:

🖼️【此處有附圖,請對照原卷】

(一) 試以最適當且最少個關聯資料表(relations),來描述上述實體關聯圖。需寫出這些關聯資料表的名稱、所含之屬性及主要鍵(primary key)。(15 分)

(二) 除了 primary key 外,還有那些屬性於撰寫程式定義關聯資料表時,須被設定為 Non-NULL,為什麼?(10 分)

(三) 對於上述之關聯資料表(relations),於撰寫程式建立關聯資料庫時,那些屬性之間應設定為參考完整性限制(Referential integrity constraint),為什麼?(10 分)

(四) 依前述之關聯資料表(relations),試寫一 SQL 程式片段,顯示每一門課程之課程名稱、成績 6060 分以上之學生人數、該課程之授課教師姓名。(15 分)

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

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

這一題的完整詳解

核心觀念

本題考查:

  1. ER Model 轉換為關聯資料表。
  2. 實體、屬性、關係及多元關係的表示方式。
  3. Primary Key、Foreign Key、NOT NULL 與參考完整性限制。
  4. 使用 JOIN、條件聚合及 GROUP BY 撰寫查詢。

圖中包含四個實體:

  • 教師:教師編號、教師姓名
  • 課程:課程編號、課程名稱
  • 研究室:研究室編號、地點
  • 學生:學號、學生姓名

以及兩個關係:

  • 教授:教師、課程、研究室之間的關係
  • 修課:課程、學生之間的關係,且具有成績屬性

解題方法

實體轉為獨立資料表;具有屬性的關係也轉為資料表。 「教授」同時連接教師、課程及研究室,因此須以三個外鍵描述該三元關係。「修課」連接課程與學生,並帶有成績屬性,因此也須建立關係資料表。


(一)關聯資料表設計

1. 教師資料表 TEACHER

屬性說明
TeacherNo教師編號
TeacherName教師姓名

主要鍵:

PK=TeacherNoPK = TeacherNo

2. 課程資料表 COURSE

屬性說明
CourseNo課程編號
CourseName課程名稱

主要鍵:

PK=CourseNoPK = CourseNo

3. 研究室資料表 LAB

屬性說明
LabNo研究室編號
Location地點

主要鍵:

PK=LabNoPK = LabNo

4. 學生資料表 STUDENT

屬性說明
StudentNo學號
StudentName學生姓名

主要鍵:

PK=StudentNoPK = StudentNo

5. 教授關係資料表 TEACH

「教授」是教師、課程及研究室之間的三元關係。

屬性說明
TeacherNo教師編號
CourseNo課程編號
LabNo研究室編號

主要鍵可設為三者的組合:

PK=(TeacherNo,CourseNo,LabNo)PK = (TeacherNo, CourseNo, LabNo)

因此關係表示為:

TEACH(TeacherNo,CourseNo,LabNo)TEACH(TeacherNo, CourseNo, LabNo)

6. 修課關係資料表 TAKE

「修課」關係具有成績屬性。

屬性說明
CourseNo課程編號
StudentNo學號
Grade成績

主要鍵為課程與學生的組合:

PK=(CourseNo,StudentNo)PK = (CourseNo, StudentNo)

因此關係表示為:

TAKE(CourseNo,StudentNo,Grade)TAKE(CourseNo, StudentNo, Grade)

(二)應設定為 NOT NULL 的屬性及理由

除了各資料表的 Primary Key 必須是 NOT NULL 外,以下外鍵也應設定為 NOT NULL:

TEACH 資料表

  • TeacherNo
  • CourseNo
  • LabNo

理由是每一筆「教授」關係必須同時對應到一位教師、一門課程及一間研究室,不能出現缺少任一參與實體的教授紀錄。

TAKE 資料表

  • CourseNo
  • StudentNo

理由是每一筆「修課」紀錄必須同時指出哪一門課程及哪一位學生,否則無法表示實際的修課關係。

TAKE.Grade

成績若代表該修課紀錄的正式成績,亦應設定為 NOT NULL,因為缺少成績便無法判斷學生是否達到 60 分。不過若系統允許「已選課但尚未評分」,則 Grade 可暫時允許 NULL。

🔒

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

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

免費註冊

第 二 題30 分

R(A,B,C,D,E,F,H,I)R(A,B,C,D,E,F,H,I) 為一個含有 AA、BB、CC、DD、EE、FF、HH、II 八個屬性,且符合 1NF(first normal form)要求之關聯表格。該表格有五個功能相依(Functional Dependency):AB→FAB\to F、A→EA\to E、B→HB\to H、BC→IBC\to I、C→DC\to D。

(一) 試決定最適合被用來當作 RR 的 primary key。(10 分)

(二) 繼上題,試將 RR 分割成符合 2NF(second normal form)及 3NF(third normal form)要求的關聯表格,並標出各關聯表格之 primary key。(20 分)

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

這一題的完整詳解

核心觀念

本題考查功能相依、候選鍵判定,以及第二正規化(2NF)與第三正規化(3NF)的分解。

  • 屬性閉包:屬性集合 XX 的閉包 X+X^+,是由 XX 出發,反覆套用功能相依後可推得的全部屬性。
  • 候選鍵:能決定關係中全部屬性的最小屬性集合。候選鍵若有多個,選定其中一個作為 primary key。
  • 部分功能相依:非主屬性只依賴複合候選鍵的一部分,違反 2NF。
  • 遞移功能相依:非主屬性經由另一個非主屬性依賴候選鍵,違反 3NF。
  • 主屬性:至少屬於一個候選鍵的屬性;不屬於任何候選鍵的屬性為非主屬性。

解題方法與推導

(一)決定 primary key

已知功能相依:

AB→F,A→E,B→H,BC→I,C→DAB\to F,\quad A\to E,\quad B\to H,\quad BC\to I,\quad C\to D

先觀察右側屬性集合為 {F,E,H,I,D}\{F,E,H,I,D\}。A,B,CA,B,C 都沒有出現在任何功能相依的右側,因此它們無法由其他屬性推得,必須包含在任何候選鍵中。

計算 ABCABC 的閉包:

  1. 由 AB→FAB\to F,得 FF。
  2. 由 A→EA\to E,得 EE。
  3. 由 B→HB\to H,得 HH。
  4. 由 BC→IBC\to I,得 II。
  5. 由 C→DC\to D,得 DD。

因此:

(ABC)+={A,B,C,D,E,F,H,I}(ABC)^+=\{A,B,C,D,E,F,H,I\}

ABCABC 能決定全部屬性;且 A,B,CA,B,C 都必須出現在鍵中,故 ABCABC 是最小超鍵,也就是唯一候選鍵。因此,最適合的 primary key 為 ABCABC。

(二)分解為 2NF 與 3NF

候選鍵是複合鍵 ABCABC。先判斷非主屬性:只有 A,B,CA,B,C 屬於候選鍵,其餘 D,E,F,H,ID,E,F,H,I 均為非主屬性。

先分解至 2NF

檢查非主屬性是否只依賴候選鍵的一部分:

  • A→EA\to E:EE 只依賴鍵的一部分 AA。
  • B→HB\to H:HH 只依賴鍵的一部分 BB。
  • C→DC\to D:DD 只依賴鍵的一部分 CC。
  • AB→FAB\to F:FF 依賴 ABCABC 的真子集 ABAB。
  • BC→IBC\to I:II 依賴 ABCABC 的真子集 BCBC。
🔒

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

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

免費註冊

第 三 題20 分

資料庫中,採用雜湊法索引及採用循序檔之資料結構,以儲存資料檔案時,對兩者:

(1) 在最壞的資料搜尋時間上;

(2) 在儲存空間的利用率上;

(3) 資料是否需事先經過排序;

(4) 是否適合建構在 linked list 資料結構下作業等方面,進行比較。(20 分)

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

這一題的完整詳解

核心觀念

本題比較兩種檔案組織方式:

  • 雜湊檔(hash file):以雜湊函數將資料鍵值轉換成儲存位址,直接定位資料。
  • 循序檔(sequential file):依搜尋鍵值排序後,將資料依序儲存;常見作法是按鍵值遞增排列。

比較時要注意,「循序檔」是依鍵值維持次序的檔案組織,不等同於雜湊法中可能採用的溢位區或鏈結串列。

解題方法

逐項從資料如何定位、如何排列及如何配置儲存空間比較:

比較項目雜湊法索引循序檔
(1) 最壞搜尋時間平均情況下,雜湊函數可將鍵值直接映射到位址,搜尋通常接近 O(1)O(1)。但發生碰撞時須檢查其他資料或溢位區;若大量鍵值碰撞,最壞可退化為 O(n)O(n)。資料依鍵值排序後儲存。若逐筆循序搜尋,最壞須檢查 nn 筆,為 O(n)O(n);若可利用排序採二分搜尋,則可達 O(log⁡n)O(\log n),但外部儲存裝置上的實際效率還受區塊讀取影響。
(2) 空間利用率需保留空桶或空位以降低碰撞,並可能需要溢位區等額外空間;空間利用率通常較低,且受負載因子影響。若資料筆數固定且檔案緊密排列,空間利用率通常較高;但為便於插入而預留空間,或使用溢位區時,利用率會下降。
(3) 是否需事先排序不需要。雜湊函數依鍵值計算位址,資料無須依鍵值排序。需要依搜尋鍵值排序,才能維持循序檔的有序特性。
🔒

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

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

免費註冊

其他考古題