資料庫基礎知識

2021-07-30 00:04:08 字數 4566 閱讀 4237

資料庫四類故障

事務內部故障

系統故障

介質故障

計算機病毒

資料庫恢復

原理:建立冗餘資料。確定資料庫是否可恢復的方法就是其包含的每一條資訊是否都可以利用冗餘儲存在別處的資訊重構。

資料庫系統的體系結構

集中式資料庫系統

客戶端/伺服器體系結構(c/s):客戶端負責資料表示服務,伺服器負責資料庫服務

資料庫伺服器

事務伺服器(主查詢)

資料伺服器(主互動,客戶端和伺服器可以進行互動)

並行資料庫系統:多個物理上連在一起的cpu,而分布式是地理上分布

共享記憶體式多處理器(多處理器共享記憶體和公共磁碟介面)

無共享式並行體系結構(每乙個處理器都承擔自己的資料和任務)

分布式資料庫系統

物理上分布、邏輯上集中(把單位的資料模式按資料**和用途合理分布在系統的多個節點上,是大部分資料可以就地或就近訪問)

物理上分布、邏輯上分布(由兩部分組成,一是本節點的資料模式,二是本節點共享的其他結點上有關的資料模式,結點間的資料共享由雙方協商決定,利於擴充套件)

資料庫的**模式結構

概念模式

外模式(使用者模式/子模式)

內模式(儲存模式)

兩級映像(模式/內模式映像、外模式/模式映像)

er模型(entity-relationship,實體聯絡模型,用er圖描述)

實體(用矩形表示,框內寫明實體名)

聯絡(用菱形表示,框內寫明聯絡名,用無向邊連線實體,同時標註聯絡的型別)

屬性(用橢圓表示,框內寫明屬性名)

網路模型(採用網路結構表示資料與資料之間聯絡的資料模型)

關係模型(若干個關係模式組成的集合)

物件導向模型

關係代數

基本概念

屬性和域

域:每個屬性的取值範圍對應的乙個值的集合

第一正規化:所有的域都應該是原子資料

笛卡爾積與關係

關係的相關名詞

目或度候選碼:關係中的某一屬性或屬性組的值能唯一的標識乙個元組;

主碼:乙個關係有多個候選碼,則選定其中乙個為主碼

完整性約束

實體完整性:規定r的主屬性a不能為空值

參照完整性

使用者定義完整性

五中關係代數運算 並差

廣義笛卡爾積

投影選擇

擴充套件的關係代數運算

交連線

0連線等值連線

自然連線

除sql

索引 作用:

通過建立索引唯一索引,可以保證資料記錄的唯一性

可以大大加快資料的檢索速度

可以加速表與表之間的連線

在使用order by和group by子句中進行檢索資料時,可以顯著減少查詢中分組和排序的時間。

使用索引可以再檢索資料的過程中使用優化隱藏起,提高系統效能

分類 聚集索引(索引表中索引項的順序與表中記錄的物理順序一致的索引)

非聚集索引

建立索引

語句格式:

create [unique][cluster]index 《索引名》 on 《表名》(《列名》[次序][,《列名》[次序]])...

引數說明

次序:可選asc(公升序)或dsc(降序),預設值為asc

unique:表明次索引的每乙個索引值只對應唯一的資料記錄

cluster:表明要建立的索引是聚簇索引,意思是索引項的順序與表中記錄的物理順序一致的索引組織。

刪除索引

語句格式:drop index 《索引名》

檢視:從乙個或者多個基本表或檢視中匯出的表,其結構和資料是建立在對錶的查詢基礎上的

語句格式:

create view 檢視名 (列表名)

as select 查詢子句

[with check option]

注意,檢視建立要遵循以下規定

子查詢可以使任意複雜的select語句,但是通常不允許含有order by子句和distinict短語

with check option表示對update,insert,delete操作時保證更新,插入或刪除的行滿足檢視定義中的謂詞條件(即子查詢中的條件表示式)

組成檢視的屬性列名或者全部省略或者全部指定。如果省略屬性列名,則隱含該檢視由select子查詢目標列的主屬性組成。

sql訪問控制

資料控制 控制的是使用者對資料的儲存權利,是由dba決定的。所以dbms應該具有下列功能

通過grant和revoke將授權通知系統,並存入資料字典

當使用者提出請求時,根據授權情況檢查是否執行操作請求

授權的語句格式

grant 《許可權》[,《許可權》]...[on《物件型別》《物件名》] to 《使用者》[,《使用者》]...

[with grant option]

收回許可權

revoke 《許可權》[,《許可權》]...[on《物件型別》《物件名》] from 《使用者》[,《使用者》]...

關聯式資料庫的規範化

函式依賴

規範化

1nf(第一正規化):若關係模式r中的每乙個分量是不可再分的資料項,則r屬於第一正規化

2nf(**):

若關係模式r屬於1nf,且每乙個非主屬性完全依賴於碼,則r屬於2nf

當1nf消除了非主屬性對碼的部分函式依賴,則稱為2nf

3nf(**)

若關係模式r(u,f)中若不存在這樣的碼x,屬性組y及非主屬性z(z不包含於y)使得x->y(y不可以推得x),y->z成立,則關係模式r屬於3nf

即當2nf消除了非主屬性對碼的傳遞函式依賴,則稱為3nf

bcnf(**)

4nf(**)

5nf(**)

模式分解:對乙個給定的模式進行分解,使得分解後的模式是否與原來的模式等價有三種情況

分解具有無損連線性

分解要保持函式依賴

分解既要無損連線性,又要保持函式依賴

資料庫的控制功能

事務管理(是乙個操作序列,要麼都做,要麼都不做)

begin transaction 事務開始

commit事務提交

rollback事務回滾

事務具有acid性質

原子性(atomicity):要麼都做,要麼都不做

一致性(consistency):資料庫從乙個一致性狀態到另乙個一致性裝態

隔離性(isolation):事務互相隔離;事務成功提交的整個過程,事務對於其他事務都是不可見的

永續性(durability):一旦事務成功提交,那麼即使資料崩潰,資料庫的更新操作也永久有效

資料庫備份與恢復

備份方法

恢復的基本原理是建立資料冗餘(重複儲存)。建立資料冗餘的方法是進行資料轉儲和登記日誌檔案。資料轉儲分為靜態轉儲、動態轉儲、海量轉儲、增量轉儲

靜態轉儲和動態轉儲:區別在於轉儲期間是否允許對資料庫進行任何訪問、修改操作

海量儲存和增量儲存。

海量指每次轉儲全部資料

增量指每次只轉儲上次轉儲後更新過的資料

日誌檔案:把資料庫的每次操作寫入日誌檔案,一旦故障則通過日誌檔案撤銷對資料庫的改變,回退到初始狀態。

恢復 反向掃瞄檔案日誌(從後往前掃),查詢事務的更新操作

對事物的更新操作進行逆操作

繼續反向掃瞄,繼續查詢更新操作,繼續逆操作,知道事務開始的標誌

資料庫映象

併發控制

併發帶來的問題

丟失修改

不可重複讀

讀髒資料

併發控制技術

封鎖 排它鎖

共享鎖**封鎖協議

一級封鎖協議

二級封鎖協議

**封鎖協議

活鎖與死鎖

併發排程的可序列性

兩段封鎖協議

封鎖的粒度

資料庫基礎知識

資料定義 定義基本表 create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 後面用到的表 1 學生 表 student 由學號 sno 姓名 sname 性別 s 年齡 sage 所在系 sdept 5個屬性組成,可記為 stud...

資料庫 基礎知識

e r模型 實體 聯絡模型 entity relationship model,e r模型 實體是指現實中區別於其他物件的一種 物體 或一件 事情 例如一名學生,乙個專案等等。同乙個型別中所有的實體被叫做實體集,對應於資料庫的一張表,乙個實體則對應於一條記錄。不同的任務之間,就是通過聯絡關係整合到一...

資料庫基礎知識

一 1 ddl 資料庫定義語句,建立資料表 dml 資料庫操作語言 dcl 資料控制語言 dql 資料查詢語言 2 資料查詢,sql語句 看課堂作業 查詢結果是表。3 聚集函式的一般格式 會使用 distinct all 列名 4 檢視 從乙個或幾個基本表 或檢視 匯出的表,與基本表不同,是乙個虛表...