高考申論題
112年
[資訊處理] 資料庫應用
第 一 題
📖 題組:
有一機票購買資料庫,含有以下的關連(relations) 旅客(護照號碼,姓名,電話,年齡) 航班(航班編號,航空公司,出發時間,抵達時間,出發地,目的地) 購票資訊(護照號碼,航班編號,座位,票價) 請用關連式代數(Relational Algebra)回答以下查詢(queries): (每小題 10 分,共 20 分) (一)所有從“臺北”出發,到達目的地是“洛杉磯”的直飛的航班(亦即中間沒有停留任何其他機場),列出這些航班上的旅客護照號碼和姓名。 (二)針對從“臺北”出發的每一個航班,列出航班編號,和此航班所有乘客的平均年齡。
有一機票購買資料庫,含有以下的關連(relations) 旅客(護照號碼,姓名,電話,年齡) 航班(航班編號,航空公司,出發時間,抵達時間,出發地,目的地) 購票資訊(護照號碼,航班編號,座位,票價) 請用關連式代數(Relational Algebra)回答以下查詢(queries): (每小題 10 分,共 20 分) (一)所有從“臺北”出發,到達目的地是“洛杉磯”的直飛的航班(亦即中間沒有停留任何其他機場),列出這些航班上的旅客護照號碼和姓名。 (二)針對從“臺北”出發的每一個航班,列出航班編號,和此航班所有乘客的平均年齡。
📝 此題為申論題,共 2 小題
小題 (一)
所有從“臺北”出發,到達目的地是“洛杉磯”的直飛的航班(亦即中間沒有停留任何其他機場),列出這些航班上的旅客護照號碼和姓名。
思路引導 VIP
首先確認題目需要的最終輸出欄位(護照號碼、姓名),並找出查詢條件(出發地為臺北且目的地為洛杉磯)。接著判斷需要透過自然連接(⋈)將「航班」表(用於條件篩選)、「購票資訊」表(作為橋樑)與「旅客」表(取得姓名)串接起來,最後使用投影(π)選出目標屬性。
小題 (二)
針對從“臺北”出發的每一個航班,列出航班編號,和此航班所有乘客的平均年齡。
思路引導 VIP
看到「每一個...的平均...」,需直覺聯想到延伸關聯代數中的「分組與聚合運算(Grouping and Aggregation)」。解題時先做 Selection 篩選臺北出發的航班,接著用 Natural Join 關聯購票與旅客表以取得年齡,最後套用分組聚合運算子(如 γ 或 G)算出結果。