資料庫原理期末考試
❶ 資料庫原理及應用試題
1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A --不太確定 14.B 15.C 16.A 17.B 18.A 19.D 20.C
1.試述事務的概念及事務的四個特性。
答:
事務是用戶定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。
事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這個四個特性也簡稱為ACID特性。
原子性:事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性:事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。
隔離性:一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對其他並發事務是隔離的,並發執行的各個事務之間不能互相干擾。
持續性:持續性也稱永久性(Permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。
2.為什麼事務非正常結束時會影響資料庫數據的正確性,請列舉一例說明之。
答:
事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。如果資料庫系統運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入物理資料庫,這時資料庫就處於一種不正確的狀態,或者說是不一致的狀態。
例如某工廠的庫存管理系統中,要把數量為Q的某種零件從倉庫1移到倉庫2存放。
則可以定義一個事務T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則資料庫就處於不一致性狀態,庫存量無緣無故少了Q。
3.資料庫中為什麼要有恢復子系統?它的功能是什麼?
答:
因為計算機系統中硬體的故障、軟體的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響資料庫中數據的正確性,重則破壞資料庫,使資料庫中全部或部分數據丟失,因此必須要有恢復子系統。
恢復子系統的功能是:把資料庫從錯誤狀態恢復到某一已知的正確狀態(亦稱為一致狀態或完整狀態)。
4.資料庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞資料庫數據?
答:資料庫系統中可能發生各種各樣的故障,大致可以分以下幾類:
(1)事務內部的故障;
(2)系統故障;
(3)介質故障;
(4)計算機病毒。
事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據
庫數據。
5.據庫恢復的基本技術有哪些?
答:
數據轉儲和登錄日誌文件是資料庫恢復的基本技術。
當系統運行過程中發生故障,利用轉儲的資料庫後備副本和日誌文件就可以將資料庫恢復到故障前的某個一致性狀態。
6. 資料庫轉儲的意義是什麼? 試比較各種數據轉儲方法。
答:
數據轉儲是資料庫恢復中採用的基本技術。所謂轉儲即DBA定期地將資料庫復制到磁帶或另一個磁碟上保存起來的過程。當資料庫遭到破壞後可以將後備副本重新裝入,將資料庫恢復到轉儲時的狀態。
靜態轉儲:在系統中無運行事務時進行的轉儲操作。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低資料庫的可用性。
動態轉儲:指轉儲期間允許對資料庫進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時後援副本上的數據並不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數據,使得後援副本上的數據不是資料庫的一致版本。
為此,必須把轉儲期間各事務對資料庫的修改活動登記下來,建立日誌文件(log file)。這樣,後援副本加上日誌文件就能得到資料庫某一時刻的正確狀態。
轉儲還可以分為海量轉儲和增量轉儲兩種方式。
海量轉儲是指每次轉儲全部資料庫。增量轉儲則指每次只轉儲上一次轉儲後更新過的數據。從恢復角度看,使用海量轉儲得到的後備副本進行恢復一般說來更簡單些。但如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。
7. 什麼是日誌文件?為什麼要設立日誌文件?
答:
(1)日誌文件是用來記錄事務對資料庫的更新操作的文件。
(2)設立日誌文件的目的是: 進行事務故障恢復;進行系統故障恢復;協助後備副本進行介質故障恢復。
8. 登記日誌文件時為什麼必須先寫日誌文件,後寫資料庫?
答:
把對數據的修改寫到資料庫中和把表示這個修改的日誌記錄寫到日誌文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成了一個。
如果先寫了資料庫修改,而在運行記錄中沒有登記這個修改,則以後就無法恢復這個修改了。如果先寫日誌,但沒有修改資料庫,在恢復時只不過是多執行一次UNDO操作,並不會影響資料庫的正確性。所以一定要先寫日誌文件,即首先把日誌記錄寫到日誌文件中,然後寫資料庫的修改。
9. 針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統故障的恢復?介質故障恢復?)
答:
事務故障的恢復:
事務故障的恢復是由DBMS自動完成的,對用戶是透明的。
DBMS執行恢復步驟是:
(1)反向掃描文件日誌(即從最後向前掃描日誌文件),查找該事務的更新操作。
(2)對該事務的更新操作執行逆操作。即將日誌記錄中「更新前的值」寫入資料庫。
(3)繼續反向掃描日誌文件,做同樣處理。
(4)如此處理下去,直至讀到此事務的開始標記,該事務故障的恢復就完成了。
答:
系統故障的恢復:
系統故障可能會造成資料庫處於不一致狀態:
一是未完成事務對資料庫的更新可能已寫入資料庫;
二是已提交事務對資料庫的更新可能還留在緩沖區,沒來得及寫入資料庫。
因此恢復操作就是要撤銷(UNDO)故障發生時未完成的事務,重做(REDO)已完成的事務。
系統的恢復步驟是:
(1)正向掃描日誌文件,找出在故障發生前已經提交的事務隊列(REDO隊列)和未完成的事務隊列(UNDO隊列)。
(2)對撤銷隊列中的各個事務進行UNDO處理。
進行UNDO處理的方法是,反向掃描日誌文件,對每個UNDO事務的更新操作執行逆操作,即將日誌記錄中「更新前的值」(Before Image)寫入資料庫。
(3)對重做隊列中的各個事務進行REDO處理。
進行REDO處理的方法是:正向掃描日誌文件,對每個REDO事務重新執行日誌文件登記的操作。即將日誌記錄中「更新後的值」(After Image)寫入資料庫。
*解析:
在第(1)步中如何找出REDO隊列和UNDO隊列?請大家思考一下。
下面給出一個演算法:
1) 建立兩個事務隊列:
· UNDO-LIST: 需要執行undo操作的事務集合;
· REDO-LIST: 需要執行redo操作的事務集合;
兩個事務隊列初始均為空。
2) 從日誌文件頭開始,正向掃描日誌文件
· 如有新開始(遇到Begin Transaction)的事務Ti,把Ti暫時放入UNDO-LIST隊列;
· 如有提交的事務(遇到End Transaction)Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列;
直到日誌文件結束
答:
介質故障的恢復:
介質故障是最嚴重的一種故障。
恢復方法是重裝資料庫,然後重做已完成的事務。具體過程是:
(1)DBA裝入最新的資料庫後備副本(離故障發生時刻最近的轉儲副本),使資料庫恢復到轉儲時的一致性狀態。
(2)DBA裝入轉儲結束時刻的日誌文件副本
(3)DBA啟動系統恢復命令,由DBMS完成恢復功能,即重做已完成的事務。
*解析
1)我們假定採用的是靜態轉儲,因此第(1)步裝入資料庫後備副本便可以了。
2)如果採用的是靜動態轉儲,第(1)步裝入資料庫後備副本還不夠,還需同時裝入轉儲開始時刻的日誌文件副本,經過處理後才能得到正確的資料庫後備副本。
3)第(2)步重做已完成的事務的演算法是:
a. 正向掃描日誌文件,找出故障發生前已提交的事務的標識,將其記入重做隊列
b. 再一次正向掃描日誌文件,對重做隊列中的所有事務進行重做處理。即將日誌記錄中「更新後的值」寫入資料庫。
10. 具有檢查點的恢復技術有什麼優點?
答:
利用日誌技術進行資料庫恢復時,恢復子系統必須搜索日誌,確定哪些事務需要REDO,哪些事務需要UNDO。一般來說,需要檢查所有日誌記錄。這樣做有兩個問題:
一是搜索整個日誌將耗費大量的時間。
二是很多需要REDO處理的事務實際上已經將它們的更新操作結果寫到資料庫中了,恢復子系統又重新執行了這些操作,浪費了大量時間。
檢查點技術就是為了解決這些問題。
11. 試述使用檢查點方法進行恢復的步驟。
答:
① 從重新開始文件中找到最後一個檢查點記錄在日誌文件中的地址,由該地址在日誌文件中找到最後一個檢查點記錄。
② 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單ACTIVE-LIST。
這里建立兩個事務隊列:
· UNDO-LIST: 需要執行undo操作的事務集合;
· REDO-LIST: 需要執行redo操作的事務集合;
把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。
③ 從檢查點開始正向掃描日誌文件
· 如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列;
· 如有提交的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列,直到日誌文件結束;
④ 對UNDO-LIST中的每個事務執行UNDO操作, 對REDO-LIST中的每個事務執行REDO操作。
12. 什麼是資料庫鏡像?它有什麼用途?
答:
資料庫鏡像即根據DBA的要求,自動把整個資料庫或者其中的部分關鍵數據復制到另一個磁碟上。每當主資料庫更新時,DBMS自動把更新後的數據復制過去,即DBMS自動保證鏡像數據與主數據的一致性。
資料庫鏡像的用途有:
一是用於資料庫恢復。當出現介質故障時,可由鏡像磁碟繼續提供使用,同時DBMS自動利用鏡像磁碟數據進行資料庫的恢復,不需要關閉系統和重裝資料庫副本。
二是提高資料庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像資料庫上的數據,而不必等待該用戶釋放鎖。
❷ 資料庫原理試題的最後一題綜合題
文字描述都沒有,無法確定聯系。
❸ 【資料庫歷年期末考試題】資料庫原理期末考試題
2005-2006(2)資料庫系統原理試題(A)參考答案及評分標准
一、填空題(每空1分,共14分)
1、 數據結構
2、 元組
3、 實體完整性 參照完整性
4、 1NF
5、 數據字典
6、 B R +BR B S B S +BR B S
7、 可串列的
8、 RAID
9、 動態Hash 方法 可擴展Hash 方法
10、 並發控制技術 資料庫恢復技術
二、選擇題(每題1分,共10分)
1、 D 2、A 3、A 4、B 5、C 6、C 7、C 8、C 9、C 10、A
三、簡答題(每題4分,共16分)
1. 可以表示任何關系代數操作的5種基本代數操作是什麼?
答: ⋃ , - , ⨯ , σ , π
註:1個1分,寫對4個即可得4分
2. 關系資料庫中常用的連接操作的實現演算法有哪些?
答:循環嵌套連接演算法(1分)、排序合並連接演算法(1分)、hash 連接演算法(1分)、索引連接演算法(1分)。
3. 簡述B 樹和B+樹的區別。
答:(1)B+樹的葉子節點鏈在一起(2分)。(2)B+樹的內節點不存放數據指針(2分)。
4. 什麼是資料庫事務?什麼是資料庫事務的原子性?
答:一個存取或更改資料庫的程序的運行稱為資料庫事務(2分)。事務中的所有操作要麼全部被成功的完成且這些操作的結果被永久地存儲到資料庫中,要麼這
個事務對資料庫和其它事務沒有任何影響。這種性質稱為事務的原子性(2分)。
四、綜合題(每題12分,共60分)
(一)已知關系S ,P ,J ,SPJ 的關系模式為:
S (SNO ,SN ,CITY )
P (PNO ,PN ,COLOR )
J (JNO ,JN ,CITY )
SPJ (SNO ,JNO ,PNO ,QTY )
其中:SNO 為供應商號,SN 為供應商姓名,CITY 為所在城市;PNO 為零件號,PN 為 零件名稱,COLOR 為顏色;JNO 為工程項目號,JN 為工程項目名稱;QTY 為數量。
1、 試用
∏JN ((∏JNO ,PNO (SPJ )÷ ∏PNO (P ∏JNO ,JN (J ))(4分)
2、試用完成下列查詢:把零件號為P2的零件重量增加5,顏色改為黃色。
UPDATE P
SET WEIGHT=WEIGHT+5,COLOR=』黃色』
WHERE PNO=』P2』; (4分)
3、試用完成下列查詢:取出1個以上供應商提供的零件號。
SELECT PNO
FROM SPJ
GROUP BY PNO
HA VING COUNT (SNO )≥1 (4分)
(二) 設某商業集團資料庫有三個實體集。一是「商店」實體集,屬性有商店編號、商店名、地址等;二是「商品」 實體集,屬性有商品編號、商品名、規格、單價等;三是「供應商」 實體集,屬性有供應商編號、供應商名、地址等。
商店與商品間存在「銷售」聯系,每個商店可銷售多種商品,每個商品也可放在多個商店檔信胡銷售,每個商店行攔銷售一種商品,有月銷售量;供應商與商品間存在著「供應」 聯系,每個供應商供應多種商品,每種商品可以向多個供應商訂購。供應商供應商品給每個商店有月供應量。
(1)試畫出E-R 圖,並在圖上註明屬性。
(2) 將E--R 圖轉換成關系模型,並指明主鍵和外鍵。
(1)E-R 圖如圖所示。
(6分,其中實體2分、聯系2分、屬性2分)
(2)此E--R 圖轉換成的關系模型如下
商店(商店編號,商店名,地址) 主碼為商店編號
供應商(供應商編號,供應商名,地址) 主碼為供應商編號
商品(商品編號,商品名,規格,單價)
銷售(商店編號,商品號,月銷售量)
主碼為(商店編號,商品號),外碼為商店編號和商品號
供應(供應商編號,商店編號,月供應量)
主碼為(供應商編號,商店編號),外碼為供應商編號,商店編號
共6分,由於學生的寫法多樣,教師根據具體情況給分。
(三)1.設關系模式R 其中: U={A, B, C, D, E, P}
F={A→B,C→P,E→A,CE→D}
求出R 的所有候選關鍵字。
解:由計算可知: (CE)的閉包 = {ABCDEP}
而 C 的閉包={CP}
E 的閉包={ABE} (2分)
所以:R 的候選鍵為坦配 : CE 。 (2分)
2.判斷下面的關系模式最高屬於第幾範式) ,並說明理由。
R({A,B,C},{AC→B,AB→C,B→C})
答:是1NF ,(2分) 因為該關系的候選鍵之一為AB, 又因為有B→C,存在部分函數依賴(2分), 所以, 該關系為1NF.
3. 設關系R 具有屬性集合{O, I, S, A, B},函數依賴集合{I->B, IS->A, A->O}。把R 分解成
3NF ,並使其具有無損連接性和函數依賴保持性。
答:{IB,ISA,AO}(4分)
(四) 設文件F 具有10000個記錄,每個記錄50位元組,其中10位元組用來表示文件的鍵值。每個磁碟塊大小1000位元組,指向磁碟塊的指針佔5位元組,不允許記錄跨兩個塊。
(1) 如果為文件F 建立簡單hash 索引,使用100個hash 桶,則桶目錄需要多
少磁碟塊?平均每個桶需要多少磁碟塊?
答:(1)1 (2)10000個記錄/100個桶=100個記錄每桶,(2分)100個記
錄×50位元組每記錄/1000位元組每塊=5塊(2分)
(2) 如果為文件F 建立B +樹索引,各磁碟塊盡量裝滿,需要多少磁碟塊存儲索
引?
答:求秩D :5D+10(D+1) D=67 (2分)
即每個葉節點能保存D-1=66個鍵值。所以葉節點數為⎡10000/66⎤
=152個。(2分)
上一層的內節點同樣有67個指針,是一個67叉的節點,
⎡10000/67⎤=3,⎡3/67⎤=1(2分)
因此B+樹的節點總數為152+3+1=156個。即需要156個磁碟塊
存儲B+樹索引。(2分)
(五) 對於教學資料庫S(S#,SNAME ,AGE ,SEX) ,SC(S#,C#,GRADE) ,C(C#,CNAME ,TEACHER) 。現有一個查詢:檢索至少學習W ANG 老師所授一門課程的男學生學號和姓名。
1. 給出該查詢的關系代數表達式,並畫出該表達式構成的語法樹。
2. 使用啟發式優化演算法對語法樹進行優化,得到優化的語法樹。
解:(1) 關系代數表達式:
∏ S#,SNAME (σS.S#=SC.S#∧SC.C#=C.C#∧S.SEX=』男』 ∧teacher=』wang』(S×SC×C )) (3分)
∏ S#,SNAME
S.S#=SC.S#∧SC.C#=C.C#∧S.SEX=』男』 ∧teacher=』wang』
(3分)
∏ S#,SNAME σSC.C#=C.C#
σteacher=』wang』
∏ S#,C# S.SEX=』男』
s
結果樹(3分) c sc (3分)
❹ 《資料庫原理應用》簡答題(資料庫原理與應用試題及答案)
1.資料庫:是以某種文件結構存儲的一系列信息表,這種文件結構使您能夠訪問這些脊稿昌表、選擇表中的列、對表進行排序以及根據各種標准選擇行。資料庫通常有多個索引與這些表中的許多列相關聯,所以我們能盡可能快地訪問這些表。資料庫管理系統:隨著計算機在信息處理、情報檢索及各種管理系統的不斷發展,使用計算機時需要處理大量的數據、建立和檢索大量的表格,將這些數據和表格按一定的規律組織起來,以便處理更有效、檢索更迅速、用戶使用更方便,於是就出現了資料庫管理系統。資料庫和資料庫軟體就組成了資料庫管理系統。資料庫管理系統有各種類型,目前許多計算機包括微型機都配有資料庫管理系統,如FoxPro、Oracle、sqlserver等。
2.資料庫系統由資料庫(DB),數據管理系統(DBMS),應用程序,用戶和硬體敬飢組成,其中最關鍵的部分是資料庫.3.主關鍵字(Primarykey):用來唯一辨別表格里記錄的備選關鍵字。外來關鍵字(Foreignkey):表格內匹配同一表格或者另一表格里備選關鍵字的一個列或者一組列。外來鍵允許你將櫻扒一個表格里的記錄和另一個表格里的數據相關聯。有主外鍵關系,進行兩個表或多個表的關聯。
❺ 跪求!緊急!資料庫原理及應用的試題
一:
(1)select 書名,定價 from 圖書 where 定價 = (select max(定價) from 圖書)
(2)查詢存儲有書名為資料庫系統基礎的圖書管的管名.
二:
(1)select S#,SNAME from S where AGE>22
(2)select CNAME,TEACHER from C where c# in ( select c# from SC where S# = 10001)
(3)select SNAME from S where sex='女' and s# in (select S# from SC where C# in (select C# fron C where teacher = '王老師'))
不能實現的話,留言
❻ 資料庫考試的內容包含哪些內容
一、資料庫考試內容:
(1)計算機體系結構以及各主要部件的性能和基本工作原理。
(2)操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識。
(3)常用數據結構和常用演算法。
(4)軟體工程和軟體開發項目管理的基礎知識。
(5)計算機網路的原理和技術。
(6)資料庫原理及基本理論。
(7)常用的大型資料庫管理系統的應用技術。
(8)資料庫應用系統的設計方法和開發過程。
(9)資料庫系統的管理和維護方法,了解相關的安全技術。
(10)資料庫發展趨勢與新技術。
(11)常用信息技術標准、安全性,以及有關法律、法規的基本知識。
(12)了解信息化、計算機應用的基礎知識。
(13)正確閱讀和理解計算機領域的英文資料。
二、考試目標
作為資料庫管理員管理信息系統中的數據資源,作為資料庫管理員建立和維護核心資料庫;擔任資料庫系統有關的技術支持,同時具備一定的網路結構設計及組網能力;具有工程師的實際工作能力和業務水平,能指導計算機技術與軟體專業助理工程師(或技術員)工作。
三、考試范圍
信息系統知識
1.計算機系統知識
2.資料庫技術
3.系統開發和運行維護知識
4.安全性知識
5.標准化知識
6.信息化基礎知識
7.計算機專業英語
資料庫系統設計與管理
1.資料庫設計
2.資料庫應用系統設計
3.資料庫應用系統實施
4.資料庫系統的運行和管理
5.SQL
6.網路環境下的資料庫
7.資料庫的安全性
8.資料庫發展趨勢與新技術
(6)資料庫原理期末考試擴展閱讀:
有些考生在報名軟考中級資料庫系統工程師考試的時候發現沒有這項資格考試,以為資料庫系統工程師考試沒有了,其實並不是這樣的。
資料庫系統工程師每年只有一次考試,通常安排在上半年開考,而下半年是沒有安排資料庫系統工程師考試的。因此,要報名資料庫系統工程師考試的考生要在上半年報名。
由於軟考每年的開考資格安排可能會有所變動,並不是固定在上半年或者下半年考試,因此要報名的考生請關注軟考辦公布的每年的開考資格安排,及時報名