資料庫系統概論第 三章 資料庫範例:course_db   上一頁    

3-3 course_db資料表關聯圖

內容:

  • 3-3 course_db 資料表關聯圖

  • 3-4 關聯圖的使用技巧

         

3-4 關聯圖使用技巧

當我們將資料分散儲存於各個資料表之後,是否可以從中搜尋到所要的資訊?這就是考驗資料庫設計的效益如何,我們用幾個範例來測試 course_db 是否真的可以使用。

(1)查詢『進四資管二丙』的學生名冊:

全校的學生都登錄於 students 資料表內,並由 class_ID 表示該學生是屬於哪一班,但它是班級代碼並非班級名稱,因此,我們必須先由 classes 資料表內,查詢出『四資管二丙』的班級代碼(class_ID),再利用 class_ID students 表內查出該班的學生。因此,欲找出此訊息須查詢 classes students 兩資料表,將其關係獨立繪出如下:

(2)查詢『資訊工程系』教師名冊。

全校教師皆登錄於 teachers 資料表內,利用 Dep_ID 欄位來註明該教師是屬於哪一系,但它僅登錄系別代碼 (Dep_ID)。吾人要查『資訊工程系』教師,則需先由 department 表內查出它的 Dep_ID,再利用此 Dep_ID teachers 表內查詢出該系教師名冊。查詢動作如下圖:

(3)查詢『電機工程系』的老師這學期開了那些課程:

這個學期全校所開的課程都記錄於 Open_course 資料表內,其中以 teacher_ID 註明是哪位老師所開的課程。要知道電機工程系的老師所開課程,必須先由 department 表內查出該系的 dep_ID,再利用此 dep_ID teachers 表內查出電機系所有老師的 teacher_ID。再利用這些 teacher_ID open_course 表中查詢出他們所開的課程的 course_ID,接著,再利用這些 course_ID all_course 表中查詢,該系老師所開課程的名稱。因此,欲查詢某一系所有老師所開的所有課程,必須動用到四個資料表,如下圖所示。

(4)查詢『粘添壽』老師開課課程,以及所開課程的班級之名稱。

必須先由 teachers 表中查詢出粘添壽老師的 teacher_ID,再利用它由 open_course 表中查詢出,這位老師這學期所開的課程為何。但 opene_course 僅登錄 course_ID class_ID,必須分別由 all_course 表與 classes 表中查詢出它們的名稱。

(5)查詢學號 4011203 修讀那些課程及其成績。

全校學生修課及成績皆登錄於 select_course 表內,由學號可以查詢出學生選讀開課代碼,以及成績,再利用開課代碼,由 open_course 表內查出其課程代碼(course_ID),再利用 course_ID all_course 表中查詢出它的課程名稱、必選修與學分數,查詢動作如下圖所示。

(6)請查詢『進四資管二丙』這學期開了那些課程

此問題牽涉到三個資料表,如下圖所示。先由班級名稱由 classes 表中查詢出它的 class_ID,再利用 class_ID open_course 表中查詢出該班這學期開了那些課程的 course_ID,再利用 course_ID all_course 查詢該課程的課程名稱、必選修與學分數。

(7)查詢粘添壽老師這學期所授課資料庫管理系統的學生名冊:

如欲查詢某位老師的某一課程的學生名冊,此牽涉到六個資料表,查詢動作如下圖所示。

翻轉工作室:粘添壽

 

資料庫系統概論(含邏輯設計)

 

 

翻轉電子書系列: