資料庫基礎

在E-R圖中,學生與課程之間有「一位學生修多門課,一門課有多位學生修」的多對多關係。以關聯式資料庫的表格實現此關係的適當方法是下列何者?

  1. A新建一個以學號與課程編號為外鍵的選課表格
  2. B在學生表格中加入一個課程編號欄位
  3. C在課程表格中加入一個學號欄位
查看答案與解析

正確答案:A. 新建一個以學號與課程編號為外鍵的選課表格

E-R圖(實體關係圖)是以圖表示資料庫所管理的對象(實體)與實體之間的關係,關係有一對一、一對多、多對多等基數。一對多的關係,只要讓「多」那一側的表格以外鍵持有「一」那一側的主鍵即可表示(例如讓員工表格持有部門代碼)。然而多對多的關係,只在任一表格加入一個欄位,每位學生只能記錄一門課(或每門課只能記錄一位學生)。因此要在兩者之間放置以學號與課程編號為外鍵的選課表格(關聯實體),分解成學生與選課、課程與選課兩個一對多的關係。選課表格的主鍵一般為學號與課程編號的組合。

  • A. 正確。放置關聯實體的表格,分解成兩個一對多的關係。
  • B. 每位學生只能記錄一個課程編號,無法表示修多門課。
  • C. 每門課只能記錄一個學號,無法表示多位學生修課。
練習這個領域 前往領域頁面

相關計算工具

資料庫基礎的其他題目

  1. 在帳戶表格中開始一筆交易,執行從帳戶A的餘額減去300的UPDATE,以及在帳戶B的餘額加上300的UPDATE。之後執行ROLLBACK而非COMMIT。帳戶表格會變成怎樣?
  2. 在交易應具備的ACID特性中,「從帳戶A扣款並存入帳戶B的轉帳處理,即使途中發生故障,也只會是兩者都完成或完全不進行」的性質是下列何者?
  3. 庫存表格中某商品的庫存數為10。交易T1讀出庫存數後寫入減3的值,T2讀出庫存數後寫入減5的值。若不加鎖,依T1讀取、T2讀取、T1寫入、T2寫入的順序執行,最後的庫存數為多少?
  4. 在同時執行交易時發生的問題中,下列何者正確說明了髒讀(Dirty read)?
  5. 交易T1執行 SELECT COUNT(*) FROM 訂單 WHERE 金額 >= 1000,結果為8筆。緊接著T2以INSERT新增一筆金額2000的訂單並提交。T1再次執行相同的SELECT敘述,結果變為9筆。這個現象是下列何者?