HKDSE · Thinka 原創模擬試題

2023 DSE 資訊及通訊科技 模擬試題 | Past Paper 練習

Thinka 2023 文憑試模擬試卷 — 資訊及通訊科技

125 210 分鐘2023
此為 Thinka 原創練習卷,按該年文憑試的結構與難度設計,並非香港考評局試卷,亦非其複製本。

卷一 甲部 (MCQ)

回答全部40題多項選擇題。所有題目分數相同。
40 題目 · 40
題目 1 · MCQ
1
設 \(A\) 和 \(B\) 為兩個以二補碼表示的 8 位元有符號整數,其中 \(A = 01011011_2\) 且 \(B = 10100100_2\)。以下哪項關於運算 \(A + B\) 的描述是正確的? (1) 結果是負數。 (2) 沒有發生溢位。 (3) 結果的十六進制表示為 \(\text{FF}_{16}\)。
  1. A.僅 (1)
  2. B.僅 (1) 及 (2)
  3. C.僅 (2) 及 (3)
  4. D.(1)、(2) 及 (3)
題目 2 · MCQ
1
某主機的 IP 地址為 192.168.10.45,子網遮罩為 255.255.255.224。以下哪項是該主機所屬的網絡地址(子網地址)?
  1. A.192.168.10.0
  2. B.192.168.10.32
  3. C.192.168.10.45
  4. D.192.168.10.63
題目 3 · MCQ
1
考慮一個包含兩個數據表的文件資料庫:Student(StudentID, Name, Class),其中 StudentID 為主鍵;以及 Enrollment(StudentID, CourseID, EnrollDate),其中 (StudentID, CourseID) 為複合主鍵,且 StudentID 為參照 Student(StudentID) 的外鍵。以下哪項操作不會違反任何完整性約束?
  1. A.在 Enrollment 中插入一條記錄,其 StudentID 的值在 Student 中並不存在。
  2. B.從 Student 中刪除一條記錄,其 StudentID 目前正被 Enrollment 參照。
  3. C.在 Enrollment 中插入一條記錄,其中 StudentID 的值為空值(null)。
  4. D.在 Student 中插入一條記錄,其 StudentID 的值在 Student 中目前並不存在。
題目 4 · MCQ
1
數據庫表 Sales 包含數據行 SaleID、ProductID、Region 和 Amount。以下 SQL 查詢的輸出是什麼? SELECT Region, COUNT(SaleID) FROM Sales GROUP BY Region HAVING AVG(Amount) > 1100。 [Sales 數據:(1, 'P01', 'North', 1500), (2, 'P02', 'South', 2000), (3, 'P01', 'South', 1200), (4, 'P03', 'North', 800), (5, 'P02', 'North', 1000), (6, 'P01', 'North', 500)]
  1. A.Region: South, COUNT(SaleID): 2
  2. B.Region: North, COUNT(SaleID): 4
  3. C.Region: North, COUNT(SaleID): 4; Region: South, COUNT(SaleID): 2
  4. D.沒有返回任何記錄
題目 5 · MCQ
1
某關係數據庫關係 R(A, B, C, D) 的複合主鍵為 (A, B)。以下哪項函數依賴會違反第二範式 (2NF)?
  1. A.(A, B) -> C
  2. B.C -> D
  3. C.A -> D
  4. D.(A, B) -> D
題目 6 · MCQ
1
考慮以下虛擬碼:A 是一個索引從 1 開始、包含 5 個整數的陣列:[4, 7, 2, 9, 5]。For i from 1 to 4 do: For j from 1 to 5 - i do: If A[j] > A[j+1] then Swap A[j] and A[j+1]。當外層循環完成第一次迭代(即 i = 1 時),陣列 A 的內容是什麼?
  1. A.[2, 4, 5, 7, 9]
  2. B.[4, 2, 7, 5, 9]
  3. C.[4, 2, 5, 7, 9]
  4. D.[2, 7, 4, 5, 9]
題目 7 · MCQ
1
在機器週期的指令提取階段,以下哪項正確描述了程式計數器 (PC) 和記憶體地址暫存器 (MAR) 的角色?
  1. A.PC 存放下一條待提取指令的地址,而 MAR 存放目前正在讀取的記憶體地址。
  2. B.MAR 存放從記憶體提取的數據,而 PC 存放已解碼的指令。
  3. C.PC 存放目前正在讀取的記憶體地址,而 MAR 存放下一條指令。
  4. D.MAR 存放下一條指令的地址,而 PC 存放算術運算的累積結果。
題目 8 · MCQ
1
小麗想向小明發送一條機密訊息,並確保小明能夠驗證該訊息確實是由小麗發出的(真確性及不可否認性)。在使用公鑰密碼學時,小麗應該分別使用什麼密鑰來 (1) 簽署訊息,以及 (2) 加密訊息?
  1. A.(1) 小麗的私鑰; (2) 小明的公鑰
  2. B.(1) 小麗的公鑰; (2) 小明的私鑰
  3. C.(1) 小明的公鑰; (2) 小麗的私鑰
  4. D.(1) 小明的私鑰; (2) 小麗的公鑰
題目 9 · MCQ
1
某學校希望託管其學生管理系統。學校決定從雲端服務供應商處租用虛擬伺服器和存儲空間,而不是維護實體伺服器,但學校的 IT 員工仍將自行安裝和管理操作系統、數據庫及應用軟件。該學校使用的是哪種雲端服務模式?
  1. A.軟件即服務 (SaaS)
  2. B.平台即服務 (PaaS)
  3. C.架構即服務 (IaaS)
  4. D.數據庫即服務 (DBaaS)
題目 10 · MCQ
1
以下哪些關於編譯器與解譯器的比較描述是正確的? (1) 編譯器在執行前將整個原始碼翻譯成機器碼,而解譯器則是逐行翻譯並執行代碼。 (2) 解譯型程序通常比編譯型程序運行得更快,因為它不需要編譯步驟。 (3) 若代碼中間存在語法錯誤,編譯器會在生成任何可執行文件前報錯,而解譯器可能會先執行錯誤之前的代碼,然後在錯誤處停止。
  1. A.僅 (1)
  2. B.僅 (1) 及 (2)
  3. C.僅 (1) 及 (3)
  4. D.僅 (2) 及 (3)
題目 11 · MCQ
1
在 8 位元二補碼表示法中,十進位數 \(-37\) 的二進位表示法是什麼?
  1. A.11011011
  2. B.11011010
  3. C.10100101
  4. D.11100101
題目 12 · MCQ
1
下列關於快取記憶體(Cache Memory)的敘述,哪一個/些是正確的?

(1) 它的速度比 CPU 內部的暫存器更快。
(2) 它儲存常用數據與指令,以加快 CPU 的存取速度。
(3) 它的容量通常比主記憶體(RAM)大。
  1. A.只有 (2)
  2. B.只有 (1) 及 (2)
  3. C.只有 (2) 及 (3)
  4. D.(1)、(2) 及 (3)
題目 13 · MCQ
1
下列哪些 IP 地址可以分配給私有區域網絡(LAN)上的主機,而不需要在公共互聯網上進行路由?

(1) 10.150.23.45
(2) 172.20.100.2
(3) 192.168.1.254
(4) 168.192.0.1
  1. A.只有 (1) 及 (3)
  2. B.只有 (2) 及 (3)
  3. C.只有 (1)、(2) 及 (3)
  4. D.(1)、(2)、(3) 及 (4)
題目 14 · MCQ
1
在公開金鑰密碼學中,當愛麗絲(Alice)想發送一封經數位簽署的訊息給鮑伯(Bob),以確保不可否認性及完整性時,愛麗絲應該:
  1. A.使用愛麗絲的私鑰加密訊息雜湊值。
  2. B.使用鮑伯的公鑰加密訊息雜湊值。
  3. C.使用愛麗絲的公鑰加密訊息雜湊值。
  4. D.使用鮑伯的私鑰加密訊息雜湊值。
題目 15 · MCQ
1
在關聯式資料庫中,有兩個資料表:
`STUDENT(StudentID, StudentName, ClassID)` 及 `CLASS(ClassID, ClassName, RoomNo)`。
`StudentID` 是 `STUDENT` 的主鍵,`ClassID` 是 `CLASS` 的主鍵。`STUDENT` 中的 `ClassID` 是參照 `CLASS` 的外鍵。下列哪項操作會違反參照完整性?
  1. A.在 CLASS 中插入一筆具有新 ClassID 的新記錄。
  2. B.在 STUDENT 中插入一筆其 ClassID 不存在於 CLASS 中的新記錄。
  3. C.從 STUDENT 中刪除一筆記錄。
  4. D.修改 CLASS 資料表中某班級的 ClassName。
題目 16 · MCQ
1
考慮資料表 `Sales(SalesID, ItemID, Quantity, Price)`。
以下 SQL 語句的目的是什麼?

```sql
SELECT ItemID, SUM(Quantity * Price) AS TotalRevenue
FROM Sales
GROUP BY ItemID
HAVING SUM(Quantity * Price) > 1000;
```
  1. A.尋找任何單次交易中單價大於 1000 的產品 ID 列表。
  2. B.計算每種產品的總銷售數量,並顯示總數量大於 1000 的產品。
  3. C.尋找在所有交易中總銷售額(Quantity * Price)大於 1000 的產品 ID。
  4. D.顯示所有銷售金額大於 1000 的銷售記錄,並按 ItemID 分組。
題目 17 · MCQ
1
資料表 `ProjectMember(ProjectID, EmployeeID, EmployeeName, HoursWorked)` 的複合主鍵為 `(ProjectID, EmployeeID)`。
其函數相依性為:
- `(ProjectID, EmployeeID) -> HoursWorked`
- `EmployeeID -> EmployeeName`

此資料表滿足哪一個正規形式,原因為何?
  1. A.僅第一正規化 (1NF),因為存在部分相依性。
  2. B.僅第二正規化 (2NF),因為不存在遞移相依性。
  3. C.第三正規化 (3NF),因為所有非鍵屬性都完全函數相依於主鍵。
  4. D.它甚至不符合 1NF,因為它有重複鍵。
題目 18 · MCQ
1
考慮以下虛擬碼:

```
Set A to [3, 8, 2, 7, 5]
Set N to 5
For i from 0 to N - 2:
For j from 0 to N - 2 - i:
If A[j] > A[j+1] Then
Swap A[j] and A[j+1]
EndIf
EndFor
EndFor
```

在外部循環剛好完成 2 次疊代(即 `i = 0` 和 `i = 1`)後,陣列 `A` 的狀態是什麼?
  1. A.[3, 2, 7, 5, 8]
  2. B.[2, 3, 5, 7, 8]
  3. C.[2, 3, 7, 5, 8]
  4. D.[2, 3, 5, 8, 7]
題目 19 · MCQ
1
考慮以下遞迴函數:

```
Function f(n, k)
If n == 0 Then
Return 0
Else If n % 2 == 1 Then
Return k + f(n // 2, k * 2)
Else
Return f(n // 2, k * 2)
EndIf
EndFunction
```
註:`//` 爲整數除法。調用函數 `f(11, 3)` 的返回值是多少?
  1. A.33
  2. B.13
  3. C.15
  4. D.48
題目 20 · MCQ
1
某學校希望託管自己的虛擬學習環境(VLE)網站。IT 部門決定向雲端服務商租用虛擬機器(VM)和儲存空間。他們將自行安裝及維護作業系統、網頁伺服器軟體和 VLE 應用程式。該學校使用的是哪種雲端服務模式?
  1. A.基礎設施即服務 (IaaS)
  2. B.平台即服務 (PaaS)
  3. C.軟體即服務 (SaaS)
  4. D.資料庫即服務 (DBaaS)
題目 21 · MCQ
1
一個 8 位元的暫存器使用二補碼表示法儲存一個帶符號整數。若該暫存器的內容為 \(10101100_2\),它的十進制值是多少?
  1. A.-84
  2. B.-44
  3. C.-83
  4. D.172
題目 22 · MCQ
1
考慮以下兩個數據庫數據表:`STUDENT` 和 `CLASS`。\n`STUDENT` 表:`StudentID`(主鍵)、`Name`、`ClassID`(參照 `CLASS.ClassID` 的外鍵)\n`CLASS` 表:`ClassID`(主鍵)、`TeacherInCharge`\n\n以下哪項操作必定會違反參照完整性(referential integrity)?\nI. 插入一個新的學生記錄,其 `ClassID` 在 `CLASS` 表中並不存在。\nII. 從 `CLASS` 表中刪除一個班級記錄,而 `STUDENT` 表中仍有一些學生記錄具有該 `ClassID`。\nIII. 將某個學生的 `Name` 更新為空值(null)。
  1. A.只有 I
  2. B.只有 I 及 II
  3. C.只有 II 及 III
  4. D.I、II 及 III
題目 23 · MCQ
1
考慮以下偽代碼段:\n\n```\nX = 15\nY = 6\nWhile X != Y Do\n If X > Y Then\n X = X - Y\n Else\n Y = Y - X\n EndIf\nEndWhile\n```\n\n`X` 的最終值是多少?
  1. A.3
  2. B.6
  3. C.9
  4. D.15
題目 24 · MCQ
1
一部電腦的 IP 地址為 `192.168.10.45`,子網掩碼(subnet mask)為 `255.255.255.224`。以下哪一個 IP 地址與這部電腦屬於同一個子網?
  1. A.192.168.10.15
  2. B.192.168.10.30
  3. C.192.168.10.60
  4. D.192.168.10.65
題目 25 · MCQ
1
Alice 想使用公開金鑰密碼學發送一條機密訊息給 Bob。她還希望確保 Bob 能夠驗證該訊息確實是由她發送的(身份驗證)。以下哪項描述了正確的加密過程?
  1. A.Alice 用 Bob 的公開金鑰加密訊息,然後用她自己的公開金鑰加密結果。
  2. B.Alice 用她自己的私有金鑰加密訊息,然後用 Bob 的公開金鑰加密結果。
  3. C.Alice 用 Bob 的私有金鑰加密訊息,然後用她自己的私有金鑰加密結果。
  4. D.Alice 用 Bob 的公開金鑰加密訊息,然後用她自己的私有金鑰加密結果。
題目 26 · MCQ
1
考慮以下數據庫數據表 `SALES`:\n\n| SaleID | Product | Category | Amount |\n|---|---|---|---|\n| 1 | Laptop | IT | 8000 |\n| 2 | Mouse | IT | 150 |\n| 3 | Desk | Furniture | 1200 |\n| 4 | Chair | Furniture | 800 |\n| 5 | Phone | IT | 5000 |\n\n以下 SQL 查詢的輸出是什麼?\n\n```sql\nSELECT Category, AVG(Amount) FROM SALES\nGROUP BY Category\nHAVING COUNT(*) > 1 AND AVG(Amount) > 1000;\n```
  1. A.Category | AVG(Amount)
    IT | 4383.33
  2. B.Category | AVG(Amount)
    IT | 4383.33
    Furniture | 1000.00
  3. C.Category | AVG(Amount)
    Furniture | 1000.00
  4. D.空集合(沒有返回任何行)
題目 27 · MCQ
1
關於虛擬記憶體中「抖動」(thrashing)的敘述,以下哪些是正確的?\n\nI. 當操作系統花費在輔助存儲器與內存之間交換頁面(swapping)的時間多於執行實際程序指令的時間時,就會發生抖動。\nII. 增加物理內存(RAM)的容量有助於解決抖動問題。\nIII. 重組硬碟是消除抖動最有效的方法。
  1. A.只有 I
  2. B.只有 I 及 II
  3. C.只有 II 及 III
  4. D.I、II 及 III
題目 28 · MCQ
1
在 CPU 的「讀取-解碼-執行」週期中,在讀取一條指令後,哪一個暫存器會立即更新,以儲存下一條待讀取指令的地址?
  1. A.記憶體地址暫存器 (MAR)
  2. B.程序計數器 (PC)
  3. C.指令暫存器 (IR)
  4. D.累加器 (ACC)
題目 29 · MCQ
1
考慮關係 `BOOK_LOAN`,其屬性為:\n`{LoanID, StudentID, StudentName, BookID, BookTitle, LoanDate}`\n\n假設:\n- `LoanID` 為主鍵。\n- 每個學生都有唯一的 `StudentID` 和單一的 `StudentName`。\n- 每本書都有唯一的 `BookID` 和單一的 `BookTitle`。\n\n此關係滿足以下哪些正規形式(normal forms)?\n\nI. 第一正規化 (1NF)\nII. 第二正規化 (2NF)\nIII. 第三正規化 (3NF)
  1. A.只有 I
  2. B.只有 I 及 II
  3. C.只有 II 及 III
  4. D.I、II 及 III
題目 30 · MCQ
1
一家軟件開發公司希望開發並部署一個新的網頁應用程式。他們希望完全專注於編寫代碼和管理應用程式,而無需擔心管理底層的操作系統、硬件伺服器、存儲或網絡基礎設施。哪種雲端計算服務模式最適合他們?
  1. A.基礎設施即服務 (IaaS)
  2. B.平台即服務 (PaaS)
  3. C.軟件即服務 (SaaS)
  4. D.數據庫即服務 (DBaaS)
題目 31 · MCQ
1
考慮以下偽代碼:
```
Integer Array A[0..5] = {3, 8, 2, 9, 5, 4}
Integer i, temp
For i = 0 To 4 Do:
If A[i] > A[i+1] Then:
temp = A[i]
A[i] = A[i+1]
A[i+1] = temp
EndIf
EndFor
```
執行該偽代碼後,陣列 `A` 的內容是什麼?
  1. A.{2, 3, 4, 5, 8, 9}
  2. B.{3, 2, 8, 5, 4, 9}
  3. C.{3, 8, 2, 5, 4, 9}
  4. D.{3, 2, 5, 4, 8, 9}
題目 32 · MCQ
1
數據庫資料表 `STUDENT` 包含欄位 `StudentID`、`Name`、`Class` 和 `Score`。以下哪一個 SQL 查詢能正確顯示每個班別中取得 60 分或以上的人數,並同時顯示班別名稱?
  1. A.`SELECT Class, COUNT(*) FROM STUDENT WHERE Score >= 60 GROUP BY Class;`
  2. B.`SELECT Class, COUNT(*) FROM STUDENT GROUP BY Class HAVING Score >= 60;`
  3. C.`SELECT Class, COUNT(Score) FROM STUDENT WHERE Score >= 60 GROUP BY StudentID;`
  4. D.`SELECT Class, SUM(Score) FROM STUDENT WHERE Score >= 60 GROUP BY Class;`
題目 33 · MCQ
1
在關係數據庫中,資料表 `PROJECT` 具有複合主鍵 `(ProjID, MemberID)`。資料表 `MEMBER` 的主鍵為 `MemberID`。以下關於參照完整性(referential integrity)的敘述中,哪一項/些是正確的?
(1) `PROJECT` 中的 `MemberID` 是參照 `MEMBER` 中 `MemberID` 的外鍵。
(2) `PROJECT` 中的 `MemberID` 不能包含重複的值。
(3) 若 `MemberID` 不存在於 `MEMBER` 中,則不能將該記錄新增至 `PROJECT`。
  1. A.只有 (1)
  2. B.只有 (1) 及 (3)
  3. C.只有 (2) 及 (3)
  4. D.(1)、(2) 及 (3)
題目 34 · MCQ
1
考慮以下表示圖書館系統的實體關係(ER)圖:
`[Reader] <---- (1:N) ---- [Borrow] ---- (N:1) ----> [Book]`
以下關於 `Reader` 與 `Book` 之間關係的描述,哪一項是正確的?
  1. A.一位讀者可以借閱多本書,且一本書可以在不同時間被多位讀者借閱。
  2. B.每位讀者只能借閱一本書,且每本書只能被一位讀者借閱。
  3. C.關係資料表 `Borrow` 的複合主鍵必須僅由 `Reader` 和 `Book` 的主鍵組成,不允許包含其他任何欄位。
  4. D.Reader 與 Book 之間的關係是一對一(1:1)關係。
題目 35 · MCQ
1
一部電腦的 IP 地址為 `192.168.10.75`,子網掩碼為 `255.255.255.240`。以下哪一個是該電腦所屬子網的網絡地址(或子網 ID)?
  1. A.`192.168.10.0`
  2. B.`192.168.10.64`
  3. C.`192.168.10.72`
  4. D.`192.168.10.80`
題目 36 · MCQ
1
一個音頻檔案以下列規格進行錄製:
- 採樣率:\(44.1 \text{ kHz}\)
- 採樣大小:\(16\text{-bit}\)
- 聲道:雙聲道(2 聲道)
- 長度:\(2\text{ 分鐘}\)
在不進行壓縮的情況下,該音頻檔案的估算大小是多少百萬字節(MB)?(假設 \(1 \text{ MB} = 10^6 \text{ 字节}\))
  1. A.\(5.3 \text{ MB}\)
  2. B.\(10.6 \text{ MB}\)
  3. C.\(21.2 \text{ MB}\)
  4. D.\(42.3 \text{ MB}\)
題目 37 · MCQ
1
以下關於不同類型電腦記憶體的描述,哪一項/些是正確的?
(1) 高速緩衝記憶體(Cache memory)比主記憶體(RAM)更快,用於儲存經常存取的數據。
(2) ROM 是非易失性的(non-volatile),通常用於儲存 BIOS/UEFI 啟動程式。
(3) RAM 是易失性的(volatile),這意味著當電源關閉時其內容會丟失。
  1. A.只有 (1) 及 (2)
  2. B.只有 (1) 及 (3)
  3. C.只有 (2) 及 (3)
  4. D.(1)、(2) 及 (3)
題目 38 · MCQ
1
Alice 想要通過互聯網向 Bob 發送一份機密文件。為了確保**機密性**(只有 Bob 能閱讀該文件)和**真實性**(Bob 能驗證 Alice 是發送者),Alice 應該使用以下哪一種加密方法?
  1. A.先使用 Alice 的私鑰加密文件,再使用 Bob 的公鑰加密其結果。
  2. B.先使用 Bob 的私鑰加密文件,再使用 Alice 的公鑰加密其結果。
  3. C.先使用 Alice 的公鑰加密文件,再使用 Bob 的私鑰加密其結果。
  4. D.先使用 Bob 的公鑰加密文件,再使用 Alice 的公鑰加密其結果。
題目 39 · MCQ
1
一家軟件公司想要部署一個網頁應用程式。他們決定不管理實體伺服器,而是向雲端服務供應商租用虛擬機和儲存空間,以允許他們安裝自己的操作系統、數據庫和應用軟件。他們正在使用哪一種雲端服務模型?
  1. A.軟件即服務(SaaS)
  2. B.平台即服務(PaaS)
  3. C.基礎設施即服務(IaaS)
  4. D.數據庫即服務(DBaaS)
題目 40 · MCQ
1
以下哪一項/些是操作系統(OS)執行的典型任務?
(1) 分配記憶體空間給不同的運行中應用程式。
(2) 使用裝置驅動程式管理輸入/輸出裝置。
(3) 掃描檔案以檢測並清除電腦病毒。
  1. A.只有 (1) 及 (2)
  2. B.只有 (1) 及 (3)
  3. C.只有 (2) 及 (3)
  4. D.(1)、(2) 及 (3)

卷一 乙部 (Conventional)

在提供的空間內回答所有問題。
5 題目 · 40
題目 1 · Structured Conventional
8
一個圖像的分辨率為 \(1024 \times 1024\) 像素,並以 24-bit 真彩色(true color)儲存。

(a) (i) 計算該圖像未經壓縮的檔案大小(以 MB 為單位),使用 \(1\text{ MB} = 1024^2\text{ bytes}\)。寫出你的計算步驟。 (2 分)
(ii) 若將該圖像轉換為 8-bit 灰階(grayscale)圖像,灰階圖像與原 24-bit 圖像的檔案大小比例是多少? (1 分)

(b) 考慮一個使用二補碼(two's complement)表示法的 8-bit 系統。
(i) 以 8-bit 二補碼表示十進制數 \(-18\)。 (1 分)
(ii) 在 8-bit 二補碼中將 \(35\) 與 \(-18\) 相加,以進行減法運算 \(35 - 18\)。寫出你的二進制加法步驟及最終的十進制結果。 (2 分)

(c) 解釋為什麼對於支持中文和英文等多語言內容的網頁,UTF-8 比 ASCII 被更廣泛採用。 (2 分)
題目 2 · Structured Conventional
8
某學校的區域網絡(LAN)通過路由器連接到互聯網。內部網絡使用專有 IP 地址範圍 \(192.168.1.0/24\)。

(a) (i) 以點分十進制記法寫出 \(192.168.1.0/24\) 的子網掩碼(subnet mask)。 (1 分)
(ii) 在此子網中,最多可以為多少個主機設備分配有效的 IP 地址?解釋你的答案。 (2 分)

(b) 簡述以下各項在學校網絡中的主要功能:
(i) DHCP 伺服器 (2 分)
(ii) 在路由器上運行的 NAT(網絡地址轉換) (2 分)
(c) 學生嘗試使用域名(例如 `www.school.edu.hk`)來 ping 一個網站,但 ping 失敗。然而,在網頁瀏覽器中直接輸入該網站的 IP 地址卻能成功載入網頁。指出最有可能出現故障的網絡服務。 (1 分)
題目 3 · Structured Conventional
8
一個網上書店數據庫包含兩個數據表:`PUBLISHERS`(出版社)和 `BOOKS`(圖書)。其模式定義如下:

`PUBLISHERS(PubID, PubName, Address, Contact)`
`BOOKS(BookID, Title, Price, PubID, PublishDate)`

(a) (i) 辨識 `BOOKS` 表的主鍵(primary key)和外鍵(foreign key)。 (2 分)
(ii) 指出並解釋 `PUBLISHERS` 和 `BOOKS` 之間的關係(例如:1:1、1:N 或 M:N)。 (2 分)

(b) (i) 數據庫管理員嘗試插入一條圖書記錄,其中的 `PubID` 在 `PUBLISHERS` 表中並不存在。指出會發生什麼情況,並命名被違反的完整性約束(integrity constraint)。 (2 分)
(ii) 用戶能否插入一條 `BookID` 為空值(null)的新圖書記錄?參考數據庫完整性解釋你的答案。 (2 分)
題目 4 · Structured Conventional
8
以下算法旨在找出含有 \(N\) 個整數的數組 `A` 中的第二大數值(其中 \(N \ge 2\))。數組索引從 1 開始。

```
1. largest = A[1]
2. second_largest = -999999
3. For i = 2 to N Do
4. If A[i] > largest Then
5. second_largest = largest
6. largest = A[i]
7. Else If A[i] > second_largest And A[i] != largest Then
8. second_largest = A[i]
9. EndIf
10. EndFor
```

(a) 通過完成下表,追蹤當 \(N = 5\) 且 \(A = [12, 15, 8, 15, 14]\) 時算法的執行過程。 (4 分)

| `i` | `A[i]` | `largest` | `second_largest` |
| --- | --- | --- | --- |
| 初始 (Initial) | - | 12 | -999999 |
| 2 | 15 | | |
| 3 | 8 | | |
| 4 | 15 | | |
| 5 | 14 | | |

(b) (i) 若輸入數組為 \(A = [10, 10, 10]\) 且 \(N = 3\),`second_largest` 的最終值是多少? (1 分)
(ii) 解釋第 7 行中的條件 `A[i] != largest` 如何確保算法在數組中存在重複的最大值時仍能正確運行(例如:找出第二大且*不重複*的數值)。 (3 分)
題目 5 · Structured Conventional
8
一個電子商務平台處理機密的客戶交易並要求用戶登錄。

(a) 該平台使用 `https://` 代替 `http://` 作為其網址。
(i) 辨識用於實現 HTTPS 的網絡協議。 (1 分)
(ii) 解釋該協議如何保護用戶憑據(如密碼),使其免於在公共 Wi-Fi 上通過「數據包竊聽」(packet sniffing)被盜。 (2 分)

(b) 為了防止自動腳本進行暴力破解攻擊,該平台在登錄頁面上設置了 CAPTCHA(驗證碼)。解釋 CAPTCHA 如何幫助區分人類用戶和自動機器人。 (2 分)

(c) 在建立 HTTPS 連接期間,初始會使用非對稱加密(asymmetric encryption),但隨後系統會切換到對稱加密(symmetric encryption)來傳輸網頁。
(i) 為什麼在初始握手(handshake)中使用非對稱加密而不是對稱加密? (2 分)
(ii) 為什麼在握手後,數據傳輸更傾向於使用對稱加密而不是非對稱加密? (1 分)

卷二 Elective (Conventional)

在所選的選修單元中,四題中任擇三題回答。
3 題目 · 45
題目 1 · Elective Structured Conventional
15
本地外賣平台「HK-Express-Food」希望設計一個數據庫來存儲有關餐廳、食品項目和顧客訂單的信息。起初,一名初級數據庫設計師提出了一個單一關係(Relation)來保存所有數據:

`ORDER_TEMP (OrderID, CustomerID, CustomerName, CustomerPhone, RestaurantID, RestaurantName, RestaurantAddress, OrderDate, FoodID, FoodName, UnitPrice, Quantity, DeliveryFee)`

假設每筆訂單均由一位顧客在特定日期向一家餐廳發出,且一筆訂單中可以訂購多個不同的食品項目。

(a) 確定 `ORDER_TEMP` 的主鍵(Primary Key),並指出為什麼該關係不符合第二範式(2NF),需提及部分函數依賴(Partial Functional Dependency)的概念。(3分)

(b) 在 `ORDER_TEMP` 中找出兩個傳遞函數依賴(Transitive Dependencies)。解釋傳遞函數依賴如何導致數據冗餘(Data Redundancy)或更新異常(Update Anomalies)。(3分)

(c) 將關係 `ORDER_TEMP` 分解為一組符合第三範式(3NF)的關係。對於每個關係,指出其名稱並列出其屬性,清晰地在主鍵下方加上底線,並用星號(*)或井號(#)標記外鍵。(6分)

(d) HK-Express-Food 希望加入「優惠券(Coupons)」功能。一張優惠券可被多位不同的顧客多次使用,而一位顧客也可以在不同時間使用多張不同的優惠券,但每筆訂單最多只能使用一張優惠券。建議應如何修改數據庫模式(Database Schema)以支援此功能。(3分)
題目 2 · Elective Structured Conventional
15
健身中心「FitLife」使用以下三個關係表來管理其會員、課程和預訂:

`MEMBER (MemberID, MemberName, MemberType, JoinDate, Balance)`
- `MemberType` 可為 'Gold'、'Silver' 或 'Bronze'。
- `Balance` 為會員帳戶中當前的預付貨幣餘額。

`CLASS (ClassID, ClassName, Instructor, Fee, MaxCapacity)`
- `Fee` 為參加該課程的費用。

`BOOKING (BookingID, MemberID, ClassID, BookingDate, Status)`
- `Status` 可為 'Confirmed' 或 'Cancelled'。

編寫 SQL 語句來執行 (a) 至 (e) 中的任務。

(a) 編寫一個 SQL 語句,列出所有在 '2023-01-01' 之後加入的 Gold 會員的姓名,並按姓名按字母順序升序排列。(2分)

(b) 編寫一個 SQL 語句,顯示每個課程的 `ClassName` 及其已確認('Confirmed')的預訂總數。如果某個課程沒有任何確認預訂,則顯示 0。(3分)

(c) 編寫一個 SQL 語句,顯示預訂了至少兩門由導師 'Alex' 教授的不同課程的會員姓名。(3分)

(d) (i) 由於推廣活動,FitLife 想要向所有已確認預訂「Yoga Basic」課程的 Gold 會員的帳戶餘額(`Balance`)退回 \$20。編寫一個 SQL 語句以相應地更新 `MEMBER` 表。(3分)
(ii) 指出可用於防止 `Balance` 低於零的數據庫完整性約束(Integrity Constraint)類型,並寫出用於在 `MEMBER` 表中定義此約束的 SQL 片段。(2分)

(e) 建立一個名為 `V_CLASS_SUMMARY` 的數據庫檢視表(View),顯示每個課程的 `ClassID`、`ClassName` 及其預訂率。(預訂率定義為:`BOOKING` 表中該課程的預訂總數除以其 `MaxCapacity` 再乘以 100)。(2分)
題目 3 · Elective Structured Conventional
15
網上零售店「HK-Shop」使用關係數據庫管理顧客的購買記錄。系統在高交易量下會執行大量並發(同時)的事務。其庫存控制系統的簡化模式如下:

`INVENTORY (ProductID, ProductName, StockLevel, UnitPrice)`
`ORDER_LINE (OrderID, ProductID, Quantity)`

(a) 假設顧客 A 和顧客 B 企圖在同一毫秒購買同款產品(`ProductID` = 'P101',其目前的 `StockLevel` = 1)。
(i) 描述在沒有實施事務管理(鎖定,Locking)的情況下,可能會發生的並行(Concurrency)問題。指出該現象的專業術語。(3分)
(ii) 解釋「兩階段鎖定(Two-Phase Locking, 2PL)」如何防止這種並行問題。(2分)
(iii) 然而,鎖定可能會導致「死鎖(Deadlock)」情況。在此情境下描述什麼是死鎖,並提出一種數據庫管理系統(DBMS)可以用來處理死鎖的方法。(3分)

(b) HK-Shop 的數據庫管理員(DBA)希望優化以下頻繁運行的 SQL 查詢的效能:
```sql
SELECT ProductName, UnitPrice
FROM INVENTORY
WHERE UnitPrice BETWEEN 100 AND 500
ORDER BY UnitPrice DESC;
```
(i) 建議並編寫一個 SQL 語句以建立合適的數據庫索引(Index),以加快此查詢的速度。(2分)
(ii) 解釋該索引如何提高查詢效能。(2分)
(iii) 指出在數據庫上建立過多索引的一個負面影響。(1分)

(c) 安全性是一個關鍵問題。DBA 希望將訪問權限授予新聘請的客戶服務主任 "Lucy"。Lucy 應該只被允許查看(但不能修改)訂單詳情,並且她不應該對 `INVENTORY` 表有任何訪問權限。
編寫 SQL 語句以授予 Lucy 對 `ORDER_LINE` 表的適當權限。(2分)