當前位置:首頁 » 操作系統 » 資料庫原理及應用

資料庫原理及應用

發布時間: 2022-01-09 04:39:10

資料庫原理及應用試題

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自動利用鏡像磁碟數據進行資料庫的恢復,不需要關閉系統和重裝資料庫副本。
二是提高資料庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像資料庫上的數據,而不必等待該用戶釋放鎖。

⑵ 資料庫原理及應用

資料庫原理是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗餘度、與應用程序彼此獨立的數據集合。應用:資料庫管理系統可以依據它所支持的資料庫模型來作分類,例如關系式、XML;或依據所支持的計算機類型來作分類,例如伺服器群集、行動電話;或依據所用查詢語言來作分類。

在資料庫的發展歷史上,資料庫先後經歷了層次資料庫、網狀資料庫和關系資料庫等各個階段的發展,資料庫技術在各個方面的快速的發展。特別是關系型資料庫已經成為目前資料庫產品中最重要的一員,80年代以來, 幾乎所有的資料庫廠商新出的資料庫產品都支持關系型資料庫,即使一些非關系資料庫產品也幾乎都有支持關系資料庫的介面。

這主要是傳統的關系型資料庫可以比較好的解決管理和存儲關系型數據的問題。隨著雲計算的發展和大數據時代的到來,關系型資料庫越來越無法滿足需要,這主要是由於越來越多的半關系型和非關系型數據需要用資料庫進行存儲管理。

同時,分布式技術等新技術的出現也對資料庫的技術提出了新的要求,於是越來越多的非關系型資料庫就開始出現,這類資料庫與傳統的關系型資料庫在設計和數據結構有了很大的不同, 它們更強調資料庫數據的高並發讀寫和存儲大數據。

(2)資料庫原理及應用擴展閱讀

資料庫管理系統主要完成對資料庫的操縱與管理功能,實現資料庫對象的創建、資料庫存儲數據的查詢、添加、修改與刪除操作和資料庫的用戶管理、許可權管理等。它的安全直接關繫到整個資料庫系統的安全,其防護手段主要有:

(1)使用正版資料庫管理系統並及時安裝相關補丁。

(2)做好用戶賬戶管理,禁用默認超級管理員賬戶或者為超級管理員賬戶設置復雜密碼;為應用程序分別分配專用賬戶進行訪問;設置用戶登錄時間及登錄失敗次數限制,防止暴力破解用戶密碼。

(3)分配用戶訪問許可權時,堅持最小許可權分配原則,並限制用戶只能訪問特定資料庫,不能同時訪問其他資料庫。

(4)修改資料庫默認訪問埠,使用防火牆屏蔽掉對外開放的其他埠,禁止一切外部的埠探測行為。

(5)對資料庫內存儲的重要數據、敏感數據進行加密存儲,防止資料庫備份或數據文件被盜而造成數據泄露。

(6)設置好資料庫的備份策略,保證資料庫被破壞後能迅速恢復。

(7)對資料庫內的系統存儲過程進行合理管理,禁用掉不必要的存儲過程,防止利用存儲過程進行資料庫探測與攻擊。

(8)啟用資料庫審核功能,對資料庫進行全面的事件跟蹤和日誌記錄。

⑶ 資料庫原理及應用與數據結構有什麼關系

現在資料庫一般分為兩種:關系型資料庫,比如現在常用的oracle,mysql等.再就是非關系型資料庫,比較新興,用的公司比較少,比較提倡面向對象,前段時間google就換了這種.
資料庫就是數據的存儲,用哪種數據結構存儲會有不一樣的效果.
兩者關系硬要說的話,數據結構比較基礎.

⑷ 資料庫原理及應用的目錄

《資料庫原理及應用》
第1章 緒論
1.1 數據管理技術的發展
1.1.1 人工管理階段
1.1.2 文件系統階段
1.1.3 資料庫管理階段
1.2 資料庫系統結構
1.2.1 三級模式結構
1.2.2 資料庫系統的二級獨立性
1.2.3 資料庫系統的二級映像
1.3 資料庫、資料庫管理系統和資料庫系統
1.3.1 資料庫
1.3.2 資料庫管理系統
1.3.3 資料庫系統
1.4 資料庫技術的發展
小結
習題
第2章 數據模型
2.1 數據模型的概念
2.1.1 數據的三個范疇
.2.1.2 數據模型的組成要素及分類
2.2 e-r模型
2.2.1 基本概念
2.2.2 e-r圖設計
2.3 面向對象模型
2.3.1 對象建模的基本知識
2.3.2 類圖
小結
習題
第3章 關系資料庫
3.1 關系數據模型
3.1.1 關系數據模型概述
3.1.2 基本術語
3.1.3 關系的性質
3.2 關系的完整性
3.3 關系代數
3.3.1 傳統的集合運算
3.3.2 專門的關系運算
3.3.3 關系代數運算的應用實例
3.3.4 關系代數的擴充操作
小結
習題
第4章 結構化查詢語言sql
4.1 sql概述
4.1.1 sql語言的發展
4.1.2 sql語言的特點
4.1.3 sql語言的基本概念
4.2 數據定義語句
4.2.1 基本表的定義
4.2.2 基本表的修改與刪除
4.2.3 基本表的刪除
4.3 查詢
4.3.1 單表查詢
4.3.2 連接查詢
4.3.3 嵌套查詢
4.3.4 集合查詢
4.4 數據操縱
4.4.1 插入數據
4.4.2 修改數據
4.4.3 刪除數據
4.5 視圖
4.5.1 視圖的定義與刪除
4.5.2 查詢視圖
4.5.3 更新視圖
4.5.4 視圖的作用
小結
習題
第5章 存儲過程、觸發器和數據完整性
5.1 sql server編程結構
5.1.1 變數
5.1.2 顯示信息
5.1.3 注釋語句
5.1.4 批處理
5.1.5 流程式控制制語句
5.2 存儲過程
5.2.1 存儲過程的基本概念
5.2.2 創建存儲過程
5.2.3 使用sql server管理控制台執行存儲過程
5.2.4 修改和刪除存儲過程
5.3 觸發器
5.3.1 觸發器的基本概念
5.3.2 創建觸發器
5.3.3 修改和刪除觸發器
5.4資料庫完整性
5.4.1 約束
5.4.2 默認值
5.4.3 規則
5.4.4 用戶定義的數據完整性
小結
習題
第6章 關系資料庫設計理論
6.1 問題的提出
6.2 基本概念
6.2.1 函數依賴
6.2.2 碼
6.3 規范化
6.3.1 第一範式
6.3.2第二範式
6.3.3 第三範式
6.3.4 bc範式
6.3.5 多值依賴與第四範式
6.3.6 關系模式規范化
6.4 函數依賴的公理系統
6.4.1 armstrong公理系統
6.4.2 閉包
6.4.3 函數依賴集的等到價和最小化
6.5 模式分解
6.5.1 模式分解的准則
6.5.2 分解的函數依賴保持性和無損連接性
6.5.3 模式分解的演算法
小結
習題
第7章 索引
7.1 索引的概念
7.1.1 聚集索引
7.1.2 非聚集索引
7.1.3 唯一索引
7.1.4 何時應該創建索引
7.1.5 系統如何訪問表中的數據
7.2 sql server 2005中的索引
7.2.1 索引的結構
7.2.2 管理索引
小結
習題
第8章 資料庫設計
8.1 資料庫設計概述
8.2 資料庫設計的過程
8.2.1 資料庫設計的步驟
8.2.2 需求分析階段
8.2.3 概念設計階段
8.2.4 邏輯設計階段
8.2.5 物理設計階段
8.2.6 資料庫實現階段
8.2.7 資料庫的運行與維護階段
8.3 資料庫設計實例:電網設備搶修物資管理資料庫設計
8.3.1 需求分析
8.3.2 概念模型
8.3.3 邏輯模型
小結
習題
第9章 資料庫安全
9.1 安全性概述
9.1.1 用戶標識與鑒別
9.1.2 存取控制
9.1.3 自主存取控制方法
9.1.4 強制存取控制方法
9.1.5 視圖機制
9.1.6 審計
9.1.7 數據加密
9.2 sql server的安全性
9.2.1 sql server 2005的身份驗證模式
9.2.2 sql server 2005的安全機制
9.3 用戶管理和角色管理
9.3.1 登錄用戶和資料庫用戶
9.3.2 用戶管理
9.3.3 角色管理
9.3.4 sql server的固定角色
9.4 許可權管理
9.4.1 授予許可權
9.4.2 收回許可權
9.4.3 禁止許可權
9.5 架構
小結
習題
第10章 資料庫保護
10.1 事務
10.1.1 事務的定義
10.1.2 事務的acid性質
10.1.3 事務的狀態
10.2 並發控制
10.2.1 並發操作與數據的不一致性
10.2.2 封鎖
10.2.3 並發操作的調度
10.3 資料庫的恢復
10.3.1 存儲器的結構
10.3.2 恢復的原則和實現方法
10.3.3 故障類型和恢復方法
10.4 sql server資料庫備份與恢復
10.4.1 資料庫備份方法
10.4.2 資料庫恢復
小結
習題
第11章資料庫技術新進展
11.1 數據倉庫
11.1.1 數據倉庫的概念、特點與組成
11.1.2 數據的技術
11.1.3 數據倉庫的幾個重要概念
11.1.4 數據倉庫的結構
11.1.5 數據倉庫的多維數據模型
11.1.6 數據倉庫系統設計
11.1.7 數據倉庫的未來
11.2 數據挖掘
11.2.1 支持數據挖掘的基礎
11.2.2 數據挖掘的分析方法
11.2.3 數據挖掘常用的基本技術
11.2.4數據挖掘技術實施的步驟
11.2.5數據挖掘技術發展
11.3 資料庫技術的研究及發展
11.3.1 資料庫技術的研究熱點
11.3.2 資料庫技術的發展方向
11.4 結語
小結
習題
附錄a sql server 2005的安裝及使用
a.1 sql server簡介
a.2 sql server 2005的安裝
a.3 sql server配置管理器
a.4 啟動sql server服務
a.5 使用sql server management studio管理資料庫
附錄b 實驗
實驗一 通過sql server management studio創建及管理資料庫
實驗二 通過sql語句創建與管理數據表
實驗三 單表查詢
實驗四 復雜查詢
實驗五 視圖的創建與使用
實驗六 存儲過程
實驗七 觸發器
實驗八 實現數據完整性
實驗九 索引及資料庫安全
參考文獻

⑸ 如何學習資料庫原理和應用

去找一個WEB項目,自己練練手。然後再看書,可能效果會好一點。

熱點內容
java的vector 發布:2024-04-27 07:05:00 瀏覽:203
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601
編程日課 發布:2024-04-27 05:56:54 瀏覽:620
漏洞上傳工具 發布:2024-04-27 05:50:58 瀏覽:717
手機如何選擇存儲 發布:2024-04-27 05:40:25 瀏覽:800
機架式伺服器怎麼操作 發布:2024-04-27 05:19:02 瀏覽:816