資料庫系統概論第 八章 善用 View 視界查詢   上一頁    下一頁

8-2 視界的產生

內容:

  • 8-2-1 水平投影的視界

  • 8-2-2 垂直投影的視界

  • 8-2-3 多表格投影的視界

我們介紹幾種視界產生方法與運用。

8-2-1 水平投影的視界 資管系教師

我們僅取資料表某些記錄(水平排列),則稱為水平投影。如下圖所示,我們由 teachers資料表內,僅取 dep_ID = “11” 資訊管理系的老師。

我們用 SQL 命令建立該 view,並取名為 mis_teachers,如下:

create view mis_teachers as

select *

from teachers

where dep_ID = "11"

執行成功後,可以發現在 course_db 上增加了 11_teachers 表,它的型態是 檢視”(view),記憶體空間未知(unknow)。我們利用 SQL 命令觀察 11_teachers 表的內容如何,如下:

Select *

From mis_teachers;

如果使用完,不再需要它時,可將它刪除 SQL 命令(刪除 11_teachers ),如下:

drop view mis_teachers;

8-2-2 垂直投影的視界 減化學生資料

我們擷取資料表某些欄位,如同垂直投影一般。如下圖,一般學生選課管理很少用到電話、電子郵件、地址、電話等資料。因此,我們只要投影有用到的地方即可,譬如姓名、學號、性別。

我們用 SQL 命令建立該 view,並取名為 smp_students,如下:

Create  view  smp_students  as

Select student_ID, name, class_ID, sex

From students;

執行成功後,可以發現在 course_db 上增加了 smp_students 表,它的型態是 檢視”(view)。我們利用 SQL 命令觀察 smp_students 表的內容如何,如下:

Select *

From smp_students;

如果使用完,不再需要它時,可將它刪除 SQL 命令(刪除 11_teachers ),如下:

drop view smp_students;

8-2-3 多表格投影的視界 簡化教師資料

我們可以經由巢狀、合併或混合等技巧,將查詢的結果建立一個視界,這種應用可能更加廣泛。譬如,教師開課大多是系所辦理,很少牽涉到其它系老師,處理老師開課時大多不需要電子郵件、地址等資料,因此,我們可以針對每一個系所,建立一個 view 來專門處理該系所開課使用的教師表格,也許可以減少不需要的資料負荷。譬如開啟一個 sim_mis_teachers 視界{teacher_ID, name, sex},專門給資管系使用。我們用 SQL 命令建立該 view,如下:

create view sim_mis_teachers as

select teacher_ID, name, sex

from teachers

where dep_ID = (select dep_ID

              from department

              where dep_name="資訊管理系")

執行成功後,可以發現在 course_db 上增加了 smp_mis_teachers 表,它的型態是 檢視”(view)。我們利用 SQL 命令觀察其內容如何,如下:

Select *

From smp_mis_teachers;

如果使用完,不再需要它時,可將它刪除 SQL 命令,如下:

drop view smp_mis_teachers;

翻轉工作室:粘添壽

 

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

 

 

翻轉電子書系列: