自考必背 資料庫系統原理第六章

2021-10-05 04:48:15 字數 3283 閱讀 6838

1、對資料庫施加資料完整性約束的作用

防止資料庫中存在不符合語義的資料,維護資料庫完整性

隨時檢測更新狀態資料庫內容是否符合完整性約束,保障資料一致性與正確性

防止對資料庫的惡意破壞,體改完整性檢測的效率,減輕資料庫程式設計人員負擔

2、完整性約束條件的作用物件可以是列、元祖、表

列:欄位的型別、空值、取值範圍、精度等約束

元祖:字段之間的約束,開始日期小於結束期

表:主鍵和外來鍵之間的約束

3、定義與實現完整性約束

(1)實體完整性約束:指關係的主屬性,即主碼的組成不能為空,也就是關係的主屬性不能是null

(2)參照完整性約束:定義外碼和主碼之間的引用規則,它是對關係間引用資料的一種限制

(3)使用者定義的完整性約束:針對某一應用環境的完整性約束條件,它反應了某一具體應用所涉及的資料應滿足的條件

check約束:在建立表或更新表同時,根據使用者的實際完整性要求定義的。

4、使用sql實現命名完整性約束

5、使用sql實現更新完整性約束

create table table_name(

id int not null auto_increment,

name varchar(50) not null default "",

primary key(id),

foreign key(shcool_id)

reference school(id)

on delete restrict

on update restrict

cascade:父表delete、update的時候,子表會delete、update掉關聯記錄;

set null:父表delete、update的時候,子表會將關聯記錄的外來鍵字段所在列設為null,所以注意在設計子表時外來鍵不能設為not null;

restrict:如果想要刪除父表的記錄時,而在子表中有關聯該父表的記錄,則不允許刪除父表中的記錄;

no action:同 restrict,也是首先先檢查外來鍵;

6、觸發器

create trigger trigger_name after update on table_name for each row set new.name = old.name;

drop trigger if exists trigger_name;

7、sql語言安全控制中的訪問控制的作用,兩種方式使用者賬號和許可權管理

儲存在名為mysql的資料庫user表中,包含所有使用者帳號。

需要為使用者分配訪問適當的許可權。

8、使用者賬號管理

create user 'admin'@'127.0.0.1' identifield by '123456',

'hongda'@'127.0.0.1' identifield by password 'afrwefwe';

drop user [email protected];

rename user 'hongda'@'127.0.0.1' to 'hong'@'127.0.0.1';

set password for 'hongda'@'127.0.0.1' = 'asfohwoiefhowihefoiw';

9、使用者許可權管理

grant select(id,name) on table_name to 'hongda'@'127.0.0.1';

grant select,update on table_name to 'hongda'@'127.0.0.1',

'admin'@'127.0.0.1'

with grant option;

10、事務與併發控制的概念

併發控制:對併發操作提供一定的控制,防止他們互相干擾,從而保證資料庫的正確性不被破壞,避免資料庫不一致性;

事務:使用者定義的乙個資料操作序列,這些操作可以作為乙個完整的工作單元,要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位;

11、事務的特徵acid

原子性、一致性、隔離性、持續性

12、併發操作的問題

丟失更新

不可重複讀

讀髒資料

13、封鎖

封鎖作為一種常用的併發控制技術,用於解決併發操作所帶來的資料不一致性問題

基本思想:事務通過向系統請求對它所希望的資料物件加鎖,以確保它不被非預期修改

(1)鎖:允許或阻止乙個事務對乙個資料物件的訪問特權。排它鎖(x鎖)、共享鎖(s鎖)

(2)用封鎖進行併發控制:

事務對資料加了x鎖,只有當事務結束後,才可對資料做訪問

事務對資料加了s鎖,其他事務可以繼續施加s鎖。x鎖必讀等待s鎖全部釋放才可請求

事務執行資料庫操作時先請求相應的鎖,由dbms隱式執行

事務一直戰友獲得的鎖,當rollback或commit時釋放

(3)封鎖的粒度

粒度描述封鎖的資料單元的大小。粒度越細,併發越高,軟體複雜性和系統夠開銷也大。對資料庫加鎖,粒度最大,資料訪問只能順序執行,效能大大下降。

(4)封鎖的級別

又稱為一致性級別或隔離度。與封鎖期限有關,有的只是資料單元的訪問期,有的是整個事務的訪問期。

0級封鎖:封鎖的事務不重複寫其他非0級封鎖事務的為提交的更新資料

1級封鎖:被封鎖的事務不允許重寫未提交的更新資料

2級封鎖:被封鎖的事務既不重寫也不讀未提交的更新資料

3級封鎖:被封鎖的事務不讀未提交的更新資料,不寫任何未提交資料

(5)活鎖與死鎖

活鎖:併發事務處理過程中,由於鎖會使一事務處於等待狀態而排程其他事務,因而該事務可能因為優先順序低永遠等待下去。

死鎖:兩個以上事務迴圈等待被同組中另一事物鎖住的資料單元的情形

死鎖解決方法:一次性鎖請求、鎖請求排序、序列化處理、資源剝奪

(6)可序列性

一組事務的乙個排程就是他們基本操作的乙個排序。乙個排程中,任意兩個事務t1和t2,要麼t1所有操作都在t2之前,要麼之後,則該排程是可序列的。

(7)兩段封鎖法

任意乙個事務中,所有加鎖操作都必須在所有釋放鎖操作之前。

14、備份與恢復

概念:備份是指通過匯出資料或複製表檔案的方式製作資料庫的副本;恢復是指當前資料庫遭到破壞時,將備份載入到系統中,使資料庫從錯誤狀態恢復到正確狀態。

作用:保證資料庫的可靠性和完整性

可以用於資料恢復

通過匯出資料或者複製表檔案的方式製作資料庫的副本

select * from table_name into outfile 'c://table_name.txt';

load data infile 'c://table_name.txt' into table table_name;

資料庫系統概論筆記(第六章)

第六章.關係資料理論 1.第一正規化 1nf 每乙個分量必須是不可分的資料項 2.資料依賴 乙個關係內部屬性和屬性之間的約束關係 最重要的是函式依賴和多值依賴 3.乙個好的模式應當不會發生插入異常 刪除異常 更新異常。同時資料冗餘盡可能少。4.函式依賴 某個屬性集決定另乙個屬性集時,稱另一屬性集依賴...

第六章 資料庫原理

6.1 sql語言的功能有哪些 常見筆試題 6.2 內鏈結與外連線有什麼區別 select fieldlist from table1 inner join table2 on tablel.column table2.column 6.3 什麼是事務 6.4 什麼是儲存過程?它與函式有什麼區別與聯...

資料庫第六章

一 關係模式由五部分組成,是乙個五元組 r u,d,dom,f 關係名r是符號化的元組語義 u為一組屬性 d為屬性組u中的屬性所來自的域 dom為屬性到域的對映 f為屬性組u上的一組資料依賴 二 一對一聯絡 設x,y為關係中的屬性或屬性組,它們的所有可能取值組成兩個集合。如果對於x中的任一具體值y中...