第1題
假設我們在資料庫系統中以下述指令定義BOOK 表格:
create table Book (
ID
char(5),
Title
varchar(20) not null,
Author
varchar(20),
Price
numeric(8, 2),
primary key (ID));
接著依序執行下列指令:
指令1:insert into BOOK values (‘11111’, ‘Sky’, ‘John’, 60000);
指令2:insert into BOOK values (‘11211’, null, ‘John’, 80000);
指令3:insert into BOOK values (‘11111’, ‘Ocean’, ‘John’, 10000);
指令4:insert into BOOK values (‘11411’, ‘Ocean’, ‘Mary’, null);
請依序判斷每個指令能否順利執行。若能順利執行,請說明該指令對資
料庫的影響(如新增或刪除特定資料表的內容);若不能順利執行,請詳
細說明原因(如違反某種特定的限制)。最後並列出執行四個指令後
BOOK 表格的內容。(25 分)
第2題
若某研究機構需要建立一個資料庫系統,以管理該機構所有曾經執行過
的計畫,經分析後得到下列需求:
每個計畫需要記錄其編號、名稱、預算金額、主持人、開始日期與
結束日期。其中計畫編號不可重複以用來辨識不同的計畫,而日期
則包含年份和月份。
每個委託單位則有編號、名稱、聯絡人姓名與電話等資訊,其中編
號用以辨識不同單位。
一個計畫只能有一個委託單位,但一個單位可以贊助多個計畫案。
請根據上述所有需求畫出一個實體關係圖(Entity-Relationship Diagram,
ER Diagram),注意圖中必須標明實體集合、關係集合、屬性、主鍵和
對應數量限制(Mapping Cardinality)等。此外,計畫的日期請使用複合
屬性(Composite Attribute)的表示法。(20 分)
第3題
在某圖書館所建立的關聯式資料庫系統中,定義了BOOK 表格和
BORROWER 兩個表格,前者記錄館中每本藏書的基本資料,包含國際
標準書號(ISBN)、書名(Title)、作者(Author)和價錢(Price);後者
表示借閱資料,包含借書者編號(No)、書號(ISBN)和借閱日期(Date)。
各表格屬性如下所示,其中除了屬性Price 為數值型態,其餘屬性皆為
字串型態,而主鍵則以底線標註:
BOOK(ISBN, Title, Author, Price)
BORROWER(No, ISBN, Date)
請撰寫SQL 查詢句,分別回答下列各子題:(每小題10 分,共30 分)
輸出價錢超過200 元書籍的ISBN。
找出編號「B01」之借書者,其所有借過書籍的書名。
找出每個借書者(以屬性No 代表)所借閱的書籍總數。