三級數據庫技術:習題筆記(1)
數據庫概論
1.外模式/模式映像保證了數據與程序的邏輯獨立性
數據庫的三級模式由外模式、模式、內模式構成。
外模式:是用戶可見的部門數據的存在形式。
模式:可以等價為全體數據的邏輯結構而用戶不可見,是三級模式的中間部分。
內模式:對應數據庫的物理結構和存儲方式。
當模式改變時,由數據庫管理員對各個外模式/模式的映像作相應的改變,但是外模式可以不變,從而應用程序可以不必修改,因此外模式/模式保證了數據與程序的邏輯獨立性。模式相當於一種中間層。
一個數據庫只有一個內模式,但有多個外模式!
2.一個數據庫有且只有一個主要數據文件,可以有多個次要數據文件
主要文件和次要數據文件可以存放在相同的磁盤上,也可以分開放置。
一個數據文件不可以是多個文件組的成員,日志文件不包含在文件組中。
3.數據庫用戶及系統表
數據庫用戶分為:系統管理員、對象擁有者、普通用戶!
- db_datawriter:具有增刪改查所有用戶表數據的權限。
- db_owner:用戶具有創建數據庫對象的權限!
- db_accessadmin:角色具有添加和刪除數據庫用戶的權限。
- db_backupoperator:角色具有備份和恢復數據庫的權限。
4.從功能角度數據庫系統可以划分成四個層次
- 表示層:人機界面設計。
- 業務邏輯層:梳理DBAS的各項任務活動,將其表示為系統構件(類、模塊、組件等)
- 數據訪問層:針對DBAS的數據處理需求設計用於操作數據庫的各類事物
- 數據持久層:應用系統的存儲結構設計。
4.磁盤陣列RAID
磁盤陣列是由很多便宜、容量較小、穩定性較高、速度較慢的磁盤組成一個大型的磁盤組,利用個別磁盤提供數據所產生的加成效果提升整個磁盤的系統性能。RAID技術主要包含RAID0~RAID50,其中RAID可以提高讀取性能和很高的數據安全性和可用性,而RAID5更適合與小數據塊和隨機讀寫的數據,要提高讀寫速度,RAID1比較合適。
關於游標
游標主要用於 T-SQL 批、存儲過程以及觸發器當中,其作用是存儲一個結果集,並能通過循環將這個結果集里的數據一條條取出來進行處理。
1、定位到結果集的某一行;
2、從當前結果集的位置搜索一行或部分行;
3、允許對結果集中的當前行進行數據修改。
關於索引
語法:
索引技術:
索引是對數據庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問數據庫表中的特定信息。如果想按特定職員的姓來查找他或她,則與在表中搜索所有的行相比,索引有助於更快地獲取信息。
數據庫索引好比是一本書前面的目錄,能加快數據庫的查詢速度。索引分為聚簇索引和非聚簇索引兩種,聚簇索引 是按照數據存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。
....聚集索引的鍵值可以重復
復合索引:
用戶在多個列上簡歷索引,這種索引叫做復合索引。復合索引在數據庫操作期間所需的開銷更小,可以代替多個單一索引。當表的行數遠遠大於索引鍵的數目時,這種方式可以明顯加快表的查詢速度。對於復合索引:
- 對於一張表來說,如果有一個復合索引就沒有必要建立一個單索引。
- 如果查詢條件需要,可以在已有單索引的情況下,添加復合索引對於效率有一定的提高。
- 對於復合索引,在查詢時,最好將WHERE條件順序作為索引列的順序,這樣效率最高!
- 復合索引最好首先加載值域范圍變化較大的項上。
索引考點:
- 在數據庫文件的主碼屬性集上建立的索引成為主索引。
索引的使用原則:
- .經常在查詢中用作條件的列應當添加索引。
- 頻繁進行排序或分組的列(即進行ORDER BY或GROUP BY)的列,應當為其添加索引。
- 一個列的值域很大時,應當為其添加索引。
- 如果待排序的列有多個,應當在這些列中添加復合索引。
數據庫語法問題
1.自身連接
如果連接操作是一個表與其自己進行連接,稱為表的自身連接。語法格式:
SELECT 查詢內容 FROM 表明 表別名1,表名 表別名 2 ..... SELECT 查詢內容 FROM 需要連接表1 JOIN 需要連接表2 ON.....
2..CHECK約束和觸發器類似,都可以實現用戶自定義約束
創建表時指出CHECK約束:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (Id_P>0) )對已有表添加CHECK約束:
ALTER TABLE Persons ADD CHECK (Id_P>0)
3.標量函數
標量函數是返回單個函數值的函數,標量函數中不適用於SET語句!
4.將查詢結果保存到新的表中
SELECT * INTO NEW_TABLE FROM OLD_TABLE;
數據庫故障及恢復策略
在數據庫運行過程中,可能會出現各種各樣的故障,這些故障可分為以下三類:事務故障、系統故障和介質故障。應該根據故障類型的不同,采取不同的恢復策略。
1.事務故障及其恢復:
事務故障表示由非預期的、不正常的程序結束所造成的故障。
造成程序非正常結束的原因包括輸人數據錯誤、運算溢出、違反存儲保護、並行事務發生死鎖等2.系統故障及其恢復:
系統故障是指系統在運行過程中,由於某種原因,造成系統停止運轉,致使所有正在運行的事務都以非正常方式終止,要求系統重新啟動。引起系統故障的原因可能有硬件錯誤(如CPu故障、操作系統)或DBMS代碼錯誤、突然斷電等。
3.介質故障及其恢復
介質故障是指系統在運行過程中,由於輔助存儲器介質受到破壞,使存儲在外存中的數據部分或全部丟失。
這類故障比事務故障和系統故障發生的可能性要小,但這是最嚴重的一種故障,破壞性很大,磁盤上的物理數據和日志文件可能被破壞,這需要裝入發生介質故障前最新的后備數據庫副本,然后利用日志文件重做該副本后所運行的所有事務。
2.數據庫應用系統的性能指標
包括:數據操作性應該的時間或數據訪問響應時間,系統吞吐量、允許並發訪問的最大用戶數、每TPS代價值。
3.數據庫的恢復順序
數據庫建模
1.UML設計
- 用例圖:系統[長方框]、角色[]、用例[橢圓]
2.DFD建模方式
DFD建模方式,也被稱為過程建模和功能建模方法,核心是數據流。
3.IDEF1X建模
IDEF0t圖的基本元素是矩形框和箭頭,矩形框代表功能活動.....
4.3N范式說明
數據庫設計的各個階段
系統設計
- 概念設計
- 數據庫概念模型設計
- 系統總體設計
- 邏輯設計
- 數據庫邏輯結構設計
- 應用程序概要設計
- 數據庫事物概要設計
- 物理設計
- 數據庫物理結構設計
- 數據庫事物詳細設計
- 應用程序詳細設計
系統規划與定義
- 任務陳述
- 確定任務目標
- 確定系統范圍和邊界
- 確定任務視圖
實現和部署階段
- 建立數據庫結構
- 數據加載
- 事物和應用程序的編碼及測試
- 系統集成
- 測試和試運行
- 系統部署
運行和維護階段:
- 數據庫的轉儲和恢復;
- 系統監控與分析(定期檢查CPU、內存使用情況)
- 數據庫的安全性和完整性控制;
- 數據庫性能的監控分析和改進
- 數據庫的重組和重構
數據庫轉儲
- 完全轉儲:對數據庫中的所有數據進行轉儲,此種方法占用較多的時間和空間。
- 差量轉儲:對最近一次數據庫完全轉儲以來發生變化的數據庫進行轉儲。
- 增量轉儲:只復制上次轉儲后發生變化的文件或數據塊。增量轉儲所需的時間和空間都比較短,但增量存儲只能和完全轉儲配合,才能對數據庫進行恢復。增量轉儲所需時間比完全轉儲時間長。
數據倉庫
數據倉庫是一個面向主題的、集成的、非易失的,且隨時間變化的數據集合,用來支持管理人員的決策。
粒度越大,綜合程度越高;粒度越小,表示綜合成都越小。
粒度越小,細節成都越高,空間代價也越大。
分布式數據庫
基本特征
- 本地自治
- 非集中式管理
- 高可用性
分片透明性
分片透明性是最高級別的透明性,位於全局概念模式和分片模式之間。分片透明性是指數據分片是用戶無需考慮的,完全透明的,在編寫程序時用戶只需要對全局關系進行操作!
- 全局外模式:全局應用的用戶視圖,即終端用戶看到的邏輯上並未分布的表、視圖等;
- 全局概念模式:描述全體數據的邏輯結構和特征;
- 分片模式:描述每個數據片段以及全局關系到片段的映像,是分布式數據庫系統中全局關系到片段的映像,是分布式系統中全局數據的邏輯划分視圖。
數據庫性能優化
存儲優化
- 物化視圖
- 聚集
.......

