實作練習 ~ 選課資料

我們在"從ER Model到資料庫的實作練習",了解從ER Model到資料庫的形成步驟,現在來進行實際的實體資料庫建立。

假設資料庫的關聯及結構如下圖 (下圖是以Access的工具製作而成):



其邏輯資料庫可以表示如下:

課程資料表 course(cid,cname,credit,tid)
老師資料表 teacher(tid,tname,tarea)
學生資料表 student(sid,sname,did)
科系代碼表 department(tid,tname,tboss)
選課資料表 enrollment(sid,cid,score)
學務處資料表 score1(serial,sid,score)
教務處資料表 score2(serial,sid,score)

但是這個資料庫結構設計有些問題:
(1)沒有表示年度與學期
(2)教務處資料表的學業成績是甚麼?
(3)課程資料表是用來給學生選課,應該分成~課程基本資料表+開課資料表

所以我們將之更新如下:

課程基本資料表 course(cid,cname,credit,ctype,did)
開課資料表 courseoffer(cid,ctime,roomid,tid,cyear,csemester)
老師資料表 teacher(tid,tname,tarea)
學生資料表 student(sid,sname,did)
科系代碼表 department(tid,tname,tboss)
選課資料表 enrollment(sid,cid,cyear,csemester,score)
學務處資料表 score1(serial,sid,score,cyear,csemester)
教務處資料表 score2(serial,sid,score,cyear,csemester)

如果以更新後的資料表,應該如何實作呢?
並且如得到以下資訊呢?

(1)資管系的課程有幾門科目是選修?幾門科目是必修?
(2)資管系的課程有幾門科目是三學分?
(3)資管系的課程有那些名稱中有info這個字串?
(4)103學年度上學期有幾門課程提供學生選課?
(5)某老師在103學年度上學期有幾門課程提供學生選課?
(6)某學生在103學年度上學期選了幾門課程?
 ....

上面的結構可以檢查衝堂嗎? 要如何才能呢?

張貼留言

0 留言