lawpalyer logo

資訊處理 110 年資料庫應用考古題

民國 110 年(2021)資訊處理「資料庫應用」考試題目,共 14 題 | 資料來源:考選部

0 題選擇題 + 14 題申論題

某一個連鎖商店要建置一個關聯式資料庫(Relational Database),請設計 一個資料庫綱要(Database Schema)以滿足下列資料需求:(30 分) 商店(Store):每一家商店有一個商店編號(SID)、商店名稱(Name)、 以及商店所在的城市名稱(City),每一家商店的商店編號是唯一的。 顧客(Customer):每一位顧客有一個顧客編號(CID)、姓名(Name)、 性別(Gender)、地址(Address)、以及若干個電話號碼(Phone), 每一位顧客的顧客編號是唯一的。 交易(Transaction):每一筆交易記錄顧客編號(CID)、商店編號(SID)、 交易日期與時間(Time)、以及交易金額(Amount),每一筆交易是由 顧客編號、商店編號、以及交易日期與時間來唯一識別。
請試述下列名詞之意涵:(每小題5 分,共25 分) Replication independence in a distributed database system B+-tree Entity integrity rule Boyce-Codd Normal Form(BCNF) NOSQL
假設在某關聯式資料庫(Relational database)中,資料庫管理者(Database Administrator, DBA)執行如下之SQL 指令以定義CUSTOMER 和 PURCHASE 兩個表格: create table CUSTOMER (cid char(2), name varchar(10), city varchar(10), primary key(cid)); create table PURCHASE (cid char(2), mid char(2), amount integer, primary key (cid, mid), foreign key(cid) references CUSTOMER); 若使用者依序執行下列六個SQL 指令,  指令一:insert into CUSTOMER values (‘C1’, ‘John’, ‘Taipei’);  指令二:insert into PURCHASE values (‘C1’, ‘M1’, 10);  指令三:insert into CUSTOMER values (‘C1’, ‘Mary’, ‘Taichung’);  指令四:insert into PURCHASE values (‘C1’, ‘M2’, 1);  指令五:update CUSTOMER set cid = ‘C2’ where cid = ‘C1’;  指令六:delete from PURCHASE where cid = ‘C1’; 請針對指令三至指令六此四個指令,分別說明其執行之後所產生的效 果,並加以解釋之。舉例來說,若某指令可順利執行,請說明是那些表 格受到影響,並詳述更新後的表格內容。反之,則請說明是表格定義中 的那項限制,導致該指令無法順利更新表格內容。(20 分)
(2)
(10)
(10)
(2)
(2) 20 分
請定義資料庫管理系統的四個基本名詞:資料庫(Database)、資料(Data)、 資訊(Information)、詮釋資料(Metadata)。(20 分)
假設我們有一個投資公司的資料庫包含以下屬性:B-Broker, O-Office of a broker, I-Investor, S-Stock, Q-Quantity of stock owned by an investor, D-dividend paid by a stock。整體schema R =(B, O, I, S, Q, D)。假設此 資料庫有以下functional dependency, I →B, IS →Q, B →O, S →D。 列舉所有R 的candidate keys。(5 分) 寫出一個lossless-join 分解使得R 分解後滿足BCNF。(10 分)
假設關聯式資料庫中定義三個表格,其中CUSTOMER 表格記錄顧客基 本資料,包含顧客編號(Cid)、姓名(Name)和所居住的城市(City); MERCHANDISE 表格記錄貨品基本資料,包含貨品編號(Mid)和價格 (Price);PURCHASE 表格則為購買資料,記錄了某位顧客(Cid)於某 日(Date)購買某個貨品(Mid)的數量(Amount)。在這些表格的欄位 中,除了價格和數量二者為數值型態的屬性,其餘皆為字串型態。此三 個表格的綱要簡列如下,且每個表格的主鍵以底線標註: CUSTOMER(Cid, Name, City) MERCHANDISE(Mid, Price) PURCHASE(Cid, Mid, Date, Amount) 請根據以下兩個資訊需求分別寫出對應的SQL 查詢指令,注意每個小題 皆各自對應到單一的SQL 查詢句,但是可以使用子查詢句(Subquery) 或類似功能的寫法。 請問所有住在臺北市的顧客,總共花了多少錢在購買物品上?(10 分) 試找出那些顧客購買貨品編號“M1”的總數量,超過編號“C2”顧客購買 貨品編號“M1”的總數量,並輸出那些顧客的編號。(10 分)
T(A, B, C, D, E, F, G)是一個關聯式資料庫表格的綱要,其中T 為表格 名稱,A、B、C、D、E、F、G 為表格的七個屬性,(A, E)為表格的組 合主鍵(Composite Primary Key),同時也是該表格唯一的候選鍵(Candidate Key)。另外,該表格有下列功能相依(Functional Dependency): A B, C, D C D E F (A, E)G 請問表格T 符合第幾正規型式(Normal Form)?請說明理由。(10 分) 表格T 應該要正規化到第幾正規型式才適當?請將表格T 正規化到適 當的正規型式,寫出正規化之後每一個表格的綱要,包括表格名稱、屬 性、主鍵、以及外來鍵(如果有外來鍵的話)。(15 分)
請解釋何謂SQL injection 以及要如何預防?(10 分)常見的SQL injection 攻擊手法為「略過權限檢查」與「注入SQL 子語法」等,請寫出一段有SQL injection 漏洞的網頁程式碼以及可能的SQL injection 攻擊寫法。(10 分)
假設某公司欲建立一個關聯式資料庫系統,以管理內部員工使用公務車 輛的狀況,該公司並限制一個員工在一天之內最多只能借用一部車輛。 假設表格定義為UNIVERSAL(Tag, Year, ID, Title, Date),其內每一筆資 料列(Tuple)記錄了某部車輛的車牌(Tag)和購買年份(Year),使用 該台車輛的員工編號(ID)和職稱(Title),以及使用的日期(Date)。請 針對此表格的5 個屬性,列出三個合理且有意義(Non-Trivial)的函數 相依式(Functional Dependency),並針對所列出的每一項式子,解釋其 合理性或詳述其所代表的限制。接著根據你所列出的函數相依式,分析 此UNIVERSAL 表格,是否符合BCNF 正規化格式(Boyce-Codd Normal Form)。(20 分)
資料倉儲設計最常使用的資料模型為多維度資料模型,是以星狀綱要、雪 花狀綱要或事實星座綱要的形式存在,請先分別說明星狀綱要、雪花狀綱 要與事實星座綱要,然後比較星狀綱要與雪花狀綱要之優缺點。(25 分)
根據以下關聯資料表架構,老師可開設多門課程,同一門課可以有多位 教師,學生也可以修多門課程,修過課程就會有分數。 student(SID, Sname, Sage, Ssex)// 學生編號, 姓名, 年紀, 性別 course(CID, Cname, TID)// 課程編號, 課名, 教師編號 teacher(TID, Tname)// 教師編號, 教師名稱 score(SID, CID, sc)// 學生編號, 課程編號, 分數 寫出以下SQL 查詢 查詢學生名字中含有「Alan」的男學生人數。(5 分) 查詢Alan 修過的課中,那門課只由一位老師開課的課程名稱。(5 分) 查詢修過課程所有成績之平均成績大於等於60 分的同學的學生編號 和學生姓名和平均成績。(10 分) 查詢學過編號為「01」但是沒有學過編號為「02」課程的同學編號與 其修「01」課的分數。(10 分) 查詢沒有學過全部課程的同學的編號。(10 分)
資料庫系統中,經常使用「鎖」 (Lock)的機制來進行交易處理(Transaction Processing)中的併行控制(Concurrency Control),而該機制允許某個資 料項目(Data Item)被「共享鎖」(Shared Lock)或「排他鎖」(Exclusive Lock)鎖定。請問這兩種不同鎖定的模式,對一個資料項目的使用方式 所造成的限制各自為何?另外,資料項目可以小到一筆資料列(Tuple) 或紀錄(Record),也可以大到涵蓋一整個表格或資料庫。請分析資料項 目的大小對系統的效能影響為何?(20 分)
資料庫領域有許多專門術語,請敘述下列術語之意涵: 參與限制(Participation Constraint)(4 分) 基數限制(Cardinality Constraint)(4 分) View(4 分) 外來鍵(Foreign Key)(4 分) 叢集索引(Clustered Index)(4 分)
假設在某個MongoDB 的資料庫中,有個Collection 叫做“student”,其中 每個物件表示學生的編號(_id)、姓名(name)包含名(first)和姓(last) 以及就讀的學系名稱(department)。一個範例物件以JSON 格式表示如 下所列: {"_id": "1", "name": { "first": "Ted", "last": "Codd" }, "department": "CS" } 請以Mongo 語法,依序寫出符合下述要求的指令: 找出姓為“Codd”的學生,並限定只輸出第一位。(10 分) 刪除所有就讀“CS”系的學生資料。(10 分)