資料庫系統概論:第 三章 資料庫範例:course_db 下一頁 |
第三章 資料庫範例 - course_db
3-1 course_db資料庫功能
本書在 AppServ 系統上建構一套網頁資料庫,以供本書編寫範例使用,資料庫名為course_db。它是用來開發學校的『課程管理系統』使用,如圖 2-15,我們期望能製作出下列應用程式 :
圖 3-1 課程管理系統的功能 3-2 course_db資料庫結構 如圖 3-2,在 course_db 資料庫內,我們建立了 7 個資料表,以及 3 個視界,其功能如下:(個資料表內容隨後說明)
圖 3-2 course_db 內的資料表 (1) students 資料表 全校所有學生都登錄此資料表內,如圖 3-3。資料表 students 包含有 7 個欄位:{student_ID, name, class_ID, sex, tel, mailbox, address},並以 student_ID 為主鍵(Primary key)、class_ID 為外來鍵,連結到 classes 資料表的主鍵 class_ID,作為登錄該學生所屬班級。
圖 3-3 students 資料表的屬性 其中,比較特殊的是學號(student_ID),我們用 8 個數字表示,由左至右排列是:
譬如,學號 = 40311101,表示該生是日間四技、103 年度入學、資管系、甲班、座號為 1。 (2) teachers 資料表 全校教師皆登錄於此資料表內,如圖 3-4。資料表 teachers 係登錄教師資料,包含 8 個欄位,以 teacher_ID(員工代號)作為主鍵,另外 Dep_ID 表示該教師目前在哪一系工作,它參考到 department(系別資料表)的主鍵 Dep_ID。欄位 title 表示該教師的職務,譬如是教師或系主任。
圖 3-4 teachers 資料表的屬性 (3) classes 資料表 全校所有班級皆登錄於 classes 資料表內,如圖 3-5。各班級的資料包含有 4 個欄位,其中 class_ID 為主鍵,Dep_ID 表示該班是屬於哪一個系所、year 試入學年度。另外, class_ID 包含 6 個數字,表示方法如同 student_ID(學號)的前 6 個數字一樣。
圖 3-5 classes 資料表的屬性 (4)department 資料表 全校所有系所皆登錄於 department 資料表內,如圖 3-6。它包含有兩個欄位:系別代碼 dep_ID 與系別名稱 Dep_name,以 dep_ID 為主鍵。
圖 3-6 department 資料表的屬性 (5)all_course 資料表 全校各系所全學年所規劃的課程皆登錄於 all_course 資料表內,如圖 3-7,它包含有 5 個欄位:課程代碼 course_ID、課程名稱 course_name、系所代碼 dep_ID 與必選修 required 與學分數 credit。各欄位說明如下:
圖 3-7 all_course 資料表的屬性
(6)open_course 資料表 全校這學期所開的課程皆登錄於 open_course 資料表內,這就比較複雜,同一課程可能由多位老師開在不同班級上,每位老師可能開若干個課程。它包含 4 個欄位,說明如下:
圖 3-8 open_course 資料表的屬性
(7)select_course 資料表 如圖 3-9,資料表 select_course 是學生的選課記錄,並可登錄成績。它包含 6 個欄位,並且是雙主鍵(student_ID, open_course_ID),表示哪一位學生、修讀哪一門課。其它是登錄平時成績(normal)、期中考成績(midTerm)、期末考成績(finalTerm)、與學期成績(final)。
圖 3-9 select_course 資料表屬性 (8)simple_students 視界 如圖 3-10,視界(view) simple_students 是簡化 students 資料表的欄位,一般選課作業並不需要那麼詳細的個人資料。它包含 4 個欄位,如下:
圖 3-10 simple_students 視界的屬性 (9)simple_teachers 視界 圖3-11,同樣,簡化 teachers 資料表欄位,如下:
圖 3-11 simple_teachers 視界的屬性 (10)public_course 視界 我們為了資料表的正規化問題(請參考拙著『資料庫管理系統』講義),將許多資料拆到各個資料表內,如此會造成查詢資料的困難,因此,我們建立 public_course 視界來操作會比較容易。至於,製作技巧容後再說明。它包含 7 個欄位,如圖 3-12 所示。
圖 3-12 public_course 視界的屬性 |
翻轉工作室:粘添壽
資料庫系統概論(含邏輯設計)
翻轉電子書系列: |