假設有一汽車經銷商之關聯式資料庫(Relational database)包含三個表格
(Table),其綱要(Schema)如下,有底線之屬性(Attribute)為該表
格之主鍵(Primary key):
汽車(汽車編號, 廠牌, 售價)
顧客(顧客編號, 姓名, 住址, 電話)
購買(顧客編號, 汽車編號, 購買年份)
(1) 請寫出關聯代數(Relational algebra)來列出所有於2009 年購買汽車
的顧客姓名和其購買的汽車售價。
(2) 請寫出SQL 敘述(Statement)來列出售價介於100 萬和120 萬之間的
汽車編號及其廠牌。
(3) 針對不同的年份,請寫出SQL 敘述(Statement)來列出每個年份和在
該年份中所有售出的汽車的總售價。
在資料庫的交易管理中,時間戳記(timestamp)是一種同步控制
(Concurrency control)的方法:
(1) 請敘述時間戳記排序法(timestamp-ordering protocol)的做法,假設
write_item(X)代表要寫入資料項X 的動作,read_item(X)代表要讀取資
料項X 的動作,read_TS(X)代表資料項X 被讀取的時間戳記,
write_TS(X)代表資料項X 被寫入的時間戳記,TS(T)代表交易T 的時
間戳記。
(2) 請問使用時間戳記排序法會發生飢餓(starvation)的現象嗎?為什麼?
一個關聯式資料庫(Relational database)表格的綱要如下所示:
R(A, B, C, D, E),R 為表格名稱,A、B、C、D、E 為表格的五個屬性
(Attribute),此表格有以下的功能相依性(Functional dependency):
A →C,D → BE
(1) 請列出R 的所有候選鍵(Candidate key)。
(2) 如果表格R 不為BCNF(Boyce-Codd Normal Form),請將其分解成
符合BCNF 的表格,並寫出每一個表格的綱要。
在分散式資料庫中,兩階段提交(Two-phase commit)和三階段提交
(Three-phase commit)是兩個交易回復(Recovery)管理方法:
(1) 請問這個兩階段提交的方法有何缺點。
(2) 請問三階段提交方法是如何改善兩階段提交方法的缺點。
假若有一家服飾店要建置一個資料庫,其資料需求如下:
服飾:每一件服飾有一個服飾編號、服飾名稱、服飾種類、單價。
每一件服飾的服飾編號是唯一的。
顧客:每一個顧客有一個顧客編號、顧客姓名、顧客住址、數個手機
號碼。
每一個顧客的顧客編號是唯一的,一個顧客每次可購買數件服
飾,每一次購買皆記錄其購買時間。
供貨廠商:每一個廠商有一個廠商編號、廠商名稱、廠商住址、數個
公司電話。每一個供貨廠商的廠商編號是唯一的,一個廠
商每次可供應數件服飾,每一次供貨皆記錄其供貨時間。
(1) 畫一個實體關係圖(Entity-relationship diagram)以充分表達上述的資
料需求。
(2) 將(1)的實體關係圖轉換成一個關聯式資料庫綱要(Relational database
schema),請寫出每一個表格的綱要,包括表格名稱、屬性、主鍵。
可觀看題目詳解,並提供模擬測驗!(免費會員無法觀看研究所試題解答)