第五章資料庫完整性
1、約束的建立:not null、unique、foreign key、check、default
not null 非空約束
check 檢查約束
unique 唯一約束
primary key 主碼約束
foreign key 外碼約束
default 預設約束
2、約束的命名:alter table table_name add constraint constraint_name ……
例:建立唯一約束
alter table course
add constraint uq_cname unique(cname)
其中:constraint關鍵詞即對該約束進行命
名,即uq_cname是約束名。
3、約束的刪除:alter table table_name drop constraint constrant_name
alter table 表名 drop constraint 約束名
例:alter table student drop constraint c_s***_def
注意:表中的約束不能修改,只能刪除後重建。
4、參照完整性的違約處理:no action、set null、cascade
● 實體完整性違約處理:實體完整性是通過在表中定義主碼來實現。當更新操作違反了實體完整性,則該更新操作被拒絕執行。
● 使用者定義完整性違約處理:dbms預設採用拒絕執行。
● 參照完整性違約處理有三種方式:拒絕執行no action、級聯cascade和設定為空set null。預設為拒絕執行。
5、什麼是觸發器?它什麼時候被執行?after觸發器與instead of觸發器有什麼區別?
● 觸發器:是由使用者定義的,且在關係表上的一類由事件驅動的特殊過程。
● 常用事件:insert、delete、update(即資料更新操作)
● after:在觸發事件的sql語句的所有操作(包括各種約束檢查)都已成功執行後觸發器被觸發。 若使用for關鍵詞,則預設為after。
只能定義在表上,可為表的同一操作定義多個該類觸發器。
● instead of:不執行其所觸發的更新操作,而僅執行觸發器本身。可定義在表和檢視上,對同一觸發操作只能定義乙個該類觸發器
6、deleted表和inserted表起什麼作用?(不考)
7、能夠編寫簡單的觸發器程式。
第六章關係資料理論
1、如何判定關係的「好壞」?
2、概念:資料依賴、函式依賴、平凡的函式依賴、非平凡的函式依賴、決定因素、相互函式依賴、完全函式依賴、部分函式依賴、傳遞函式依賴、候選碼、主屬性、非主屬性、全碼、多值依賴
● 資料依賴:是屬性與屬性之間的一種約束關係。一般是現實世界中屬性間相互聯絡的抽象;或是資料內在的性質,是語義的體現。
● 函式依賴:設r(u)是乙個屬性集u上的關係模式,x和y是u的子集。若對於r(u)的任意乙個可能的關係r,r中不可能存在兩個元組在x上的屬性值相等, 而在y上的屬性值不等, 則稱「x函式確定y」或「y函式依賴於x」,記作 x→y。
● 非平凡函式依賴:x→y,但y不屬於x
● 平凡的函式依賴:x→y,但y屬於x決定因素:若x→y,則x稱為該函式依賴的決定因素
● 相互函式依賴:若x→y,且y→x,記為x←→y
● 完全函式依賴:在r(u)中,如果x→y,並且對於x的任何乙個真子集x』,都有x』→y, 則稱y對x完全函式依賴,記作x→y。
● 部分函式依賴:若x→y,但y不完全函式依賴於x,則稱y對x部分函式依賴,記作x→y。
● 傳遞函式依賴:在r(u)中,如果x→y,(y不屬於x) ,y→x,y→z,則稱z對x
傳遞函式依賴,記為:x → z
注意:若y→x, 即x←→y,則z直接依賴於x。
● 候選碼:設k為r(u, f)中的屬性或屬性組,若k→u,則k為r的候選碼。(也稱碼)
● 主屬性:包含中任何乙個候選碼中的屬性。非主屬性:不包含在任何候選碼中的屬性。
● 全碼:整個屬性組是碼。
● 多值依賴:設關係模式r(u), x、 y和z是u的子集,並且z=u-x-y。則
多值依賴 x→→y成立,當且僅當對r(u)的任一關係r,給定的一對
x, z)值,有一組y的值,這組值僅僅決定於x值而與z值無關。
3、正規化:1nf、2nf、3nf、bcnf、4nf
● 1nf:每乙個分量必須是不可分的資料項(即不可以表中還有表)。
● 2nf:若r∈1nf,且每乙個非主屬性完全函式依賴於碼,則r∈2nf。
● 3nf:每乙個非主屬性既不部分依賴於碼,也不傳遞依賴於碼,則r∈3nf。
● bcnf:每乙個決定因素都含碼,則r∈bcnf。
● 4nf:r的每個非平凡多值依賴x→→y(y x),x都含碼,則r 4nf 。
4、根據實際要求能夠分析出屬性間的函式依賴關係和多值依賴關係
5、能夠判定某關係的碼、以及是屬於幾正規化
6、armstrong公理系統(涉及邏輯蘊含的概念)
① 自反律:若y x u,則x→y為f所蘊含。
② 增廣律:若x→y為f所蘊含,且z u,則xz→yz為f所蘊含。
③ 傳遞律:若x→y及y→z為f所蘊含,則x→z為f所蘊含。
7、能夠求xf+
求屬性集x關於u上的函式依賴集f的閉包xf+。
① 令x(0)=x, i=0
② 求b,這裡b=
③ x(i+1)=b∪x(i)
④ 判斷x(i+1)=x(i)嗎?
⑤ 若相等或x(i)=u,則x(i)就是xf+,演算法終止。
⑥ 若否,則i=i+1,返回②步。
能夠求f的極小函式依賴集
① 逐一檢查f中各函式依賴x→y,若y=a1a2…ak (k>2),則用
來取代x→y。
② 逐一檢查f中各函式依賴x→a,令g=f-,若a∈xg+,則從f中去
掉此函式依賴。
③ 逐一取出f中各函式依賴x→a,設x=b1b2…bm,逐一考查bi(i=1,2,…,m)
若a∈(x-bi)f+,則以取代x。
最後剩下的f就是極小函式依賴集。
9、能夠判定某模式分解是否具有無損連線性
① 建立一張k列n行的表,每一列對應乙個屬性,每一行對應分解中的乙個關係模式。若屬性aj屬於ui,則在j列i行交叉處填上aj,否則填上bij。
② 反覆針對fd中的每乙個xi→ai做下列操作:找到xi所對應的列中具有相同符號的那些行。考察這些行中的ai列的元素,若其中有ai,則全部改為ai;否則全部改為bmi ,m是這些行的行號最小值。
注意,若某個bti被改動,則該列的全部的bti符號均應作相應的更改。
③ 如在某次改動後,表中有一行出現a1, a2 , … , ak,則演算法終止,分解具有無損連線性;否則不具有無損連線性。
10、能夠判定某模式分解是否保持函式依賴(即判定函式依賴集是否等價)
① 求f的極小函式依賴集,仍記為f。
② 找出不在f**現的屬性,把這樣的屬性構成乙個關係模式。並把它們從u
中去掉,剩餘的屬性仍記為u。
③ 若有x→a∈f,且xa=u,則ρ=,演算法終止。
④ 否則,對f按具有相同左部的原則分組(假定分為k組),每一組函式依賴
所涉及的全部屬性形成乙個屬性集ui。若ui uj (i≠j)就去掉ui。於是
ρ =11、模式分解:最高可達4nf的分解。
第七章資料庫設計
1、你認為資料庫設計應該如何進行?
● 需求分析
● 概念結構設計
● 邏輯結構設計
● 物理結構設計
● 資料庫實施
● 資料庫執行和維護
2、資料庫設計時所需要的資料從**來?
3、對每個資料庫進行分析時重點要分析什麼?
4、分er圖在合併時會產生什麼衝突?如何解決?
5、er模型如何向關係模型進行轉換?
● 乙個實體型轉換為乙個關係模式,實體的屬性就是關係的屬性,實體的碼就是關係的碼。
● 乙個1:1聯絡可以轉換為乙個獨立的關係模式,也可以與任意一端對應的關係模式合併。
① 若轉換為乙個獨立的關係,則與該聯絡相連的各實體的碼及聯絡本身的屬性均轉換為關係的屬性,每個實體的碼均為該關係的候選碼。
② 若與某一端實體對應的關係合併,則需要在該關係的屬性中加入另乙個關係的碼和聯絡本身的屬性。但在一些情況下,與不同的關係模式合併效率和語義會大不一樣。因此究竟應該與哪端的關係模式合併需要依應用的具體情況而定。
● 乙個1:n聯絡可以轉換為乙個獨立的關係模式,也可以與n端對應的關係模式合併。若轉換為乙個獨立的關係,則與該聯絡相連的各實體的碼以及聯絡本身的屬性均轉換為關係的屬性,而關係的碼為n端實體的碼。
● 乙個m:n聯絡轉換為乙個關係模式。與該聯絡相連的各實體的碼以及聯絡本身的屬性均轉換為關係的屬性,各實體的碼組成關係的碼或關係碼的一部分。
● 三個或三個以上實體間的乙個多元聯絡轉換為乙個關係模式。與該多元聯絡相連的各實體的碼以及聯絡本身的屬性均轉換為關係的屬性,各實體的碼組成關係的碼或關係碼的一部分。
● 具有相同碼的關係模式可合併。將其中乙個關係模式的全部屬性加入到另乙個關係模式中,然後去掉其中的同義屬性。
第八章資料庫程式設計
1、變數的宣告與賦值:declare、set、select
區域性變數的宣告
declare @a as char(8)
declare @b varchar(20)
declare @c int, @d real
對變數賦值
set @a = 'abc'
select @c = 1, @d = 2.3
2、常用語句:if、while、return、break、continue
3、自定義函式:標量函式與錶值函式。
● 函式返回值型別。由於返回單值,故稱標量函式。
● 函式返回值型別是表,故稱為錶值函式。
4、游標的宣告、開啟、資料讀取、關閉與釋放。
● 游標的宣告:
declare cursor_name cursor
[ local | global ]
[ forward_only | scroll ][ static | keyset | dynamic | fast_forward ]
《資料庫原理》知識點2019
外碼 設f是基本關係r的乙個或一組屬性,但不是關係r的碼。ks是基本關係s的主碼。如果f與ks相對應,則稱f是r的外碼。5 等值連線與自然連線的區別與聯絡。p57 自然連線是一種特殊的等值連線。它要求兩個關係中進行比較的分量必須是相同的屬性組,並且在結果中把重複的屬性列去掉。區別 一般的連線操作是從...
資料庫考試知識點重要
資料模型 data model 1,資料模型的定義 2,資料模型的分類 根據不同的應用,資料模型分為兩大類 在有的書上,邏輯模型和物理模型統稱為結構資料模型,也簡稱資料模型。3,資料模型的組成要素 概念模型 conceptual model 1,概念模型的定義 2,概念模型的表示方法 e r圖方法 ...
《資料庫技術與應用實驗》知識點總結
建立資料庫 資料庫的開啟與關閉 利用表設計器建立表 字段設定 包括欄位名,字段資料型別,字段屬性 字段大小 輸入掩碼 有效性規則 有效性文字 預設值 查閱嚮導等 設定主鍵 修改並儲存表設計 建立表之間的關係 包括設定參照完整性 資料的輸入 修改和編輯 表的複製 更名和刪除 資料的匯入 匯出 選擇查詢...