[TOC]
graph LR
A[數(shù)據(jù)庫(kù)]-->B[CH2:概念模型_ER]
B-->C[基本]
B-->D[擴(kuò)展]
A-->E[CH3:關(guān)系數(shù)據(jù)模型]
E-->F[數(shù)據(jù)模型]
E-->G[基本概念]
E-->H[集合關(guān)系運(yùn)算]
E-->I[完整性約束]
A-->J[CH4:E-R到關(guān)系模型的轉(zhuǎn)換]
J-->K[基本 E-R 模型的轉(zhuǎn)換]
J-->L[擴(kuò)展的 E-R 模型的轉(zhuǎn)換]
A-->M[CH5:SQL]
ER模型
- 實(shí)體
- 屬性(實(shí)體的屬性)
- 域(屬性的取值范圍)
- 候選碼(唯一標(biāo)識(shí)實(shí)體的屬性或最小屬性組)必須選一個(gè)做主碼
基本E-R模型
擴(kuò)展E-R模型
- 參加約束
- 實(shí)體參與聯(lián)系的最小最大次數(shù)
- 全參與約束:實(shí)體集的每一個(gè)元素都參加聯(lián)系
- 弱實(shí)體
- 強(qiáng)實(shí)體和弱實(shí)體必須一對(duì)多
- 弱實(shí)體必須全參與
- 類(lèi)層次ISA(泛化)
- 聚合
- 聯(lián)系描述的是實(shí)體與實(shí)體之間的關(guān)聯(lián)
- 如果聯(lián)系參與聯(lián)系
- 把聯(lián)系看作聯(lián)系和實(shí)體的組合
- 聯(lián)系和實(shí)體的組合當(dāng)作一個(gè)實(shí)體就叫做聚合
關(guān)系數(shù)據(jù)模型
數(shù)據(jù)模型
數(shù)據(jù)模型三要素:
- 數(shù)據(jù)結(jié)構(gòu)
- 所研究對(duì)象類(lèi)型的集合
- 數(shù)據(jù)操作
- 檢索、更新
- 數(shù)據(jù)約束條件
- 完整性規(guī)則的集合
關(guān)系數(shù)據(jù)庫(kù)發(fā)展
模型劃分
- 網(wǎng)狀缸棵、層次發(fā)展模型
- 關(guān)系數(shù)據(jù)庫(kù)
- 面向?qū)ο髷?shù)據(jù)模型為特征
產(chǎn)品劃分
- 對(duì)關(guān)系模型的支持
- 運(yùn)行環(huán)境
- RDBMS系統(tǒng)構(gòu)成
- 對(duì)應(yīng)用的支持
基本概念
-
基本概念
- 域(類(lèi)型相同元素集合)
- 笛卡兒積( × )
- 元組:一組元素
- 分量:元組中的一個(gè)值
- 基數(shù):元素個(gè)數(shù)
-
關(guān)系: D1XD2X…Dn的子集叫做在域D1, D2, …, Dn上的關(guān)系
- 表示為R(D1, D2, …, Dn)
- 關(guān)系的目或度:n
- 單元關(guān)系: n=1
- 二元關(guān)系: n=2
- 關(guān)系是一個(gè)二維表(子集)
- 候選碼:能夠唯一標(biāo)識(shí)一個(gè)元組的最小屬性組
- 主碼:指定一個(gè)候選碼作為主碼
- 主屬性:候選碼中的屬性
- 非碼屬性:不包含在任何候選碼中的屬性
-
關(guān)系的性質(zhì)
- 不同的列可以出自同一個(gè)域
- 關(guān)系模式:關(guān)系的描述
- 形式化表示:R(U, D, dom, F),簡(jiǎn)記為R(U)或R (A1, A2, …, An)
- 關(guān)系模式是型晒喷,關(guān)系是值
集合關(guān)系運(yùn)算
集合運(yùn)算
- 并∪
- 交∩
- 差 -
- 廣義笛卡爾積:兩個(gè)分別為n和m目的關(guān)系R和S的廣義笛卡爾積是一個(gè)n+m列的元組的集合。若R有k1個(gè)元組价卤,S有k2個(gè)元組毅人,則廣義笛卡爾積有k1×k2個(gè)元組
專(zhuān)門(mén)的關(guān)系運(yùn)算
- 選擇運(yùn)算:在關(guān)系R中選擇滿(mǎn)足給定條件的元組,記作:σF(R)={ t | t∈R ? F (t)=真 }
- 投影運(yùn)算:是從關(guān)系R中選出若干屬性列組成新的關(guān)系洽沟,記作: πA(R)={ t[A] | t?R}
- 連接運(yùn)算:是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿(mǎn)足一定條件的元組,稱(chēng)為連接
- 連接 = 選擇運(yùn)算 + 迪卡爾積運(yùn)算
- 當(dāng)A蜗细、B為相同的屬性組時(shí)裆操,為自然連接
- 象集
-
除:
給定關(guān)系R(X, Y)和S(Y,Z),其中X炉媒,Y踪区,Z為屬性組。R中的Y和S中的Y可以有不同的名字吊骤,但必須取自同一個(gè)域缎岗。
R與S除得到一個(gè)新關(guān)系P(X),P是R中滿(mǎn)足下列條件的元組在X屬性列上的投影
元組在X分量值x的象集Yx==包含==S在Y上投影的集合
參照柳婼的解釋
換名操作
ρ(R(F), E)
- E:關(guān)系表達(dá)式
- F拔是E中重復(fù)的元素名字被重命名
- R:新關(guān)系
小結(jié)
5種基本關(guān)系運(yùn)算
- ∩ 連接 ÷ 這三個(gè)可由其他五個(gè)表示
- 自然連接是可結(jié)合的
- 關(guān)系運(yùn)算的結(jié)果是關(guān)系
完整性約束
- 實(shí)體完整性:主碼中的屬性不可取空值
- 參照完整性:
- 外碼:設(shè)F是關(guān)系R的一個(gè)或一組屬性,如果F與關(guān)系S的主碼Ks相對(duì)應(yīng)白粉,則稱(chēng)F為關(guān)系R的外碼(外鍵)
- 參照關(guān)系R(F,..,...)传泊,被參照關(guān)系S。
- F的取值必須為:
- 或者取空值
- 或者等于S中某個(gè)元組的主碼值
- 參照完整性的特點(diǎn):
- 在被參照關(guān)系中關(guān)鍵字的值在參照關(guān)系中不一定出現(xiàn)
- 但在參照關(guān)系中出現(xiàn)的關(guān)鍵字值在被參照關(guān)系中必須要出現(xiàn)
- 值得注意的是外鍵可能來(lái)自于同一關(guān)系,也就是被參照關(guān)系就是參照關(guān)系
E-R模型到關(guān)系模型的轉(zhuǎn)換
基本 E-R 模型的轉(zhuǎn)換
- 實(shí)體集到關(guān)系的轉(zhuǎn)換 --關(guān)系表
- 屬性?????--關(guān)系表中的屬性
- 主關(guān)鍵詞???--關(guān)系表中的主關(guān)鍵字
- 屬性域????--關(guān)系表中的屬性的域
- 聯(lián)系到關(guān)系的轉(zhuǎn)換
-
多對(duì)多
- 每個(gè)參加聯(lián)系的實(shí)體集的主關(guān)鍵字屬性鸭巴,作為外鍵存在
- 所有外鍵構(gòu)成該實(shí)體集的主關(guān)鍵字
- 聯(lián)系集本身的屬性 -- 一般屬性
-
一對(duì)多
- 將一對(duì)多聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系表【缺點(diǎn)1】多一個(gè)表【缺點(diǎn)2】連接麻煩
- 將聯(lián)系和多的那個(gè)實(shí)體集轉(zhuǎn)換為一個(gè)關(guān)系表【缺點(diǎn)】浪費(fèi)空間
一對(duì)一關(guān)系怎么轉(zhuǎn)換眷细?
-
擴(kuò)展的 E-R 模型的轉(zhuǎn)換
- 具有參加約束的聯(lián)系集的轉(zhuǎn)換
- 弱實(shí)體集
- 一個(gè)弱實(shí)體集總是參與一個(gè)二元一對(duì)多聯(lián)系
- 所以用上面的方法二。浪費(fèi)空間的缺點(diǎn)不再存在
- 類(lèi)層次
-
三個(gè)實(shí)體集轉(zhuǎn)換成三個(gè)關(guān)系表
- 超類(lèi)刪除時(shí)子類(lèi)也要同時(shí)被刪除
- 在子類(lèi)的關(guān)系表中不需要父類(lèi)的非主屬性(體現(xiàn)繼承性)
- 【特點(diǎn)】
- 當(dāng)查詢(xún)涉及到父類(lèi)的屬性和其它一些細(xì)節(jié)屬性時(shí)需要連接操作
- 當(dāng)查詢(xún)僅涉及到父類(lèi)的屬性時(shí)則在父類(lèi)關(guān)系上進(jìn)行即可
- 另一個(gè)優(yōu)點(diǎn)是可以存儲(chǔ)非子類(lèi)的實(shí)體
-
三個(gè)實(shí)體集轉(zhuǎn)換成兩個(gè)關(guān)系表
- 僅生成兩個(gè)關(guān)系:他們都包含超類(lèi)Employees的屬性,除了主關(guān)鍵字約束以外,不需要定義任何約束
- overlap約束只能用通用約束機(jī)制來(lái)實(shí)現(xiàn)
- 【特點(diǎn)】
- 主要缺點(diǎn)是無(wú)法存儲(chǔ)非子類(lèi)的實(shí)體
- 優(yōu)點(diǎn)是僅涉及子類(lèi)的查詢(xún)僅在一個(gè)關(guān)系上進(jìn)行即可,不需要額外的連接操作
- 但涉及到所有子類(lèi)的查詢(xún)則需要在兩個(gè)關(guān)系上進(jìn)行;
-
關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL
概述
SQL語(yǔ)言的組成部分
- 數(shù)據(jù)定義語(yǔ)言(DDL : Data Definition Language)
- 負(fù)責(zé)數(shù)據(jù)結(jié)構(gòu)定義與數(shù)據(jù)庫(kù)對(duì)象定義的語(yǔ)言
- CREATE
- ALTER
- DROP
- 操作的對(duì)象包括關(guān)系表鹃祖、視圖溪椎、索引等。
- 數(shù)據(jù)操縱語(yǔ)言(DML : Data Manipulation Language)
- SELECT
- INSERT
- UPDATE
- DELETE。
- 它們分別用于查詢(xún)校读、添加沼侣、修改和刪除表中的行
- 數(shù)據(jù)控制語(yǔ)言(DCL : Data Control Language)
- 在SQL語(yǔ)言中,是一種可對(duì)數(shù)據(jù)訪(fǎng)問(wèn)權(quán)進(jìn)行控制的指令歉秫,
- 由 GRANT 和 REVOKE 兩個(gè)指令組成蛾洛。
- 事務(wù)處理語(yǔ)言(TPL: Transaction Processing Language )
- 它的語(yǔ)句能確保被DML語(yǔ)句影響的表的所有行及時(shí)得以更新。包括BEGIN TRANSACTION端考,COMMIT和ROLLBACK。
數(shù)據(jù)庫(kù)三級(jí)模式
- SQL語(yǔ)言也支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式體系結(jié)構(gòu)
- 內(nèi)模式:存儲(chǔ)文件(邏輯結(jié)構(gòu))
- 模式:基本表
- 外模式:視圖+一些基本表
數(shù)據(jù)定義基本功能
模式定義
- SQL提供了三級(jí)模式結(jié)構(gòu)的定義功能揭厚,相關(guān)的定義語(yǔ)句如下:
操作對(duì)象 | 創(chuàng)建 | 刪除 | 修改 |
---|---|---|---|
模式(命名空間) | CREATE SCHEMA | DROP SCHEMA | |
關(guān)系表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
視圖 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DROP INDEX |
- 創(chuàng)建模式基本語(yǔ)句
- CREATE SCHEMA <模式名> AUTHORIZATION <用戶(hù)名>
- CREATE SCHEMA <模式名>AUTHORIZATION<用戶(hù)名>[<表定義子句>|<視圖定義子句>|<授權(quán)定義子句>]
- DROP SCHEMA <模式名> <==CASCADE|RESTRICT==>
基本表定義
- SQL基本建表語(yǔ)句
- CREATE TABLE表名
- (<列名1> 數(shù)據(jù)類(lèi)型 [列級(jí)約束],
- [<列名2> 數(shù)據(jù)類(lèi)型 [列級(jí)約束],]
- ……,
- [表級(jí)約束])却特。
- 約束舉例
- primary key
- foreign key
- references
Foreign Key (Cpno) REFERENCES Courses (Cno)
數(shù)據(jù)類(lèi)型
char(n) :固定長(zhǎng)度為n的字符串
varchar(n): 可變長(zhǎng)度為n的字符串
smallint: 短整數(shù)
int: 長(zhǎng)整數(shù)
numeric(p,s) :定點(diǎn)數(shù)。由p位數(shù)字組成筛圆,包括s 位小數(shù)
float(n): 精度至少為n位數(shù)字的浮點(diǎn)數(shù)
real:取決于機(jī)器精度的浮點(diǎn)數(shù)
double precision:取決于機(jī)器精度的雙精度浮點(diǎn)數(shù)
date: 日期裂明,格式為年、月太援、日,YYYY-MM-DD
time: 時(shí)間闽晦,格式為時(shí)、分提岔、秒, HH:MM:SS
- 修改表
-
添加列|完整性約束:
-
ALTER TABLE <表名>** ADD** <列名> <數(shù)據(jù)類(lèi)型> [完整性約束]
- 修改表:在學(xué)生表中添加字段Sclass仙蛉,字符類(lèi)型,長(zhǎng)度20
- Alter table Students add Sclass char(20)
- 增加課程名稱(chēng)必須取唯一值的約束條件
- Alter table Courses add unique (Cname)
-
ALTER TABLE <表名>** ADD** <列名> <數(shù)據(jù)類(lèi)型> [完整性約束]
-
刪除列|完整性約束:
- ALTER TABLE <表名> DROP <列名> <數(shù)據(jù)類(lèi)型> [完整性約束]
-
修改列:
-
ALTER TABLE <表名>ALTER COLUMN<列名> <數(shù)據(jù)類(lèi)型>
- 將年齡的數(shù)字類(lèi)型由字符型改為整型
- Alter table Students alter column Sage int
-
ALTER TABLE <表名>ALTER COLUMN<列名> <數(shù)據(jù)類(lèi)型>
-
- 刪除表
- Drop table <表名> [restrict|cascsde]
- Restrict: 表刪除有限制條件碱蒙,不能被其他表的約束所引用荠瘪,不能有視圖、觸發(fā)器赛惩、存儲(chǔ)過(guò)程或函數(shù)
- Cascade:把一個(gè)基本表的定義連同表上的所有記錄哀墓、索引以及由此基本表導(dǎo)出的所有視圖都刪除,并釋放相應(yīng)的存儲(chǔ)空間
SQL查詢(xún)語(yǔ)句基本結(jié)構(gòu)
- SQL查詢(xún)語(yǔ)句的基本結(jié)構(gòu)
- ==SELECT== [DISTINCT] <目標(biāo)列> [,<目標(biāo)列>]
- ==FROM== <基本表 (視圖)> [,<基本表 (視圖)>]
- [==WHERE== <條件表達(dá)式>]
- [==Group by== <列名1> [==having== <分組表達(dá)式>] ]
- [==Order By== <列名2>[ ==asc | desc== ]];
SQL單關(guān)系查詢(xún)
屬性查詢(xún)
- 指定列順序無(wú)關(guān)
- 用*表示所有屬性
- 列可以包含運(yùn)算符
- 用戶(hù)可以指定別名
元組查詢(xún)
- 使用==distinct==關(guān)鍵字消除重復(fù)行(SQL語(yǔ)句中select默認(rèn)不消除重復(fù))
- 查詢(xún)滿(mǎn)足條件的元組:
WHERE子句常用查詢(xún)條件 | 謂詞 |
---|---|
比較 | =, >, <, >=, <=, !=, <>, !>, !< not + 上述比較運(yùn)算符(例如not=) |
確定范圍 | between and, not between and |
確定集合 | in, not in |
字符匹配 | like, not like |
空值 | is null,is not null |
多重條件 | and, or |
- 字符匹配查詢(xún)
- 通配符
- %:任意長(zhǎng)度的字符串喷兼。
- 例如:a%b == acb, addgb,ab…
- _:任意單個(gè)字符
- 例如:a_b == acb, adb…
- 通配符
SQL多關(guān)系查詢(xún)
集合操作
- 參加集合操作的各查詢(xún)結(jié)果的列數(shù)必須相同篮绰,對(duì)應(yīng)項(xiàng)的數(shù)據(jù)類(lèi)型也必須相同
- 集合操作主要有: 并union、交intersect和差except
- 在union, intersect, except中缺省情況下:消除重復(fù)元組
- 在后加上all季惯,保留重復(fù)元組
多關(guān)系連接操作
-
等值連接
- 比較運(yùn)算符
- between ... and ...
-
自然連接
- 在等值連接中把目標(biāo)列中的重復(fù)屬性列去掉
自身連接
-
外連接
- 在一般連接中,只有滿(mǎn)足條件的元組才可以作為結(jié)果輸出,外連接則不同(左吠各、右外連接),把舍棄的元組保留在結(jié)果關(guān)系中勉抓,而在其他屬性上填空值走孽。
- 左外連接
- From子句的寫(xiě)法:Students LEFT OUTER JOIN Employee
- 右
- From子句的寫(xiě)法:Students RIGHT OUTER JOIN Employee
- 全
- From子句的寫(xiě)法:Students FULL OUTER JOIN Employee
- 左外連接
- 在一般連接中,只有滿(mǎn)足條件的元組才可以作為結(jié)果輸出,外連接則不同(左吠各、右外連接),把舍棄的元組保留在結(jié)果關(guān)系中勉抓,而在其他屬性上填空值走孽。
-
復(fù)合條件連接
- and , or
SQL嵌套查詢(xún)
子查詢(xún)不可以使用order by,只有最終結(jié)果可以
- 不相關(guān)子查詢(xún)求解方法由里向外(in, 比較符)
- 相關(guān)子查詢(xún)求解方法由外向里([not] exists)子查詢(xún)需要用到父查詢(xún)的列
- SQL中沒(méi)有全稱(chēng)量詞,但是 All x(P) = 琳状!( ョx (磕瓷!P) )
SQL分組聚集查詢(xún)
SQL數(shù)據(jù)操縱功能
SQL視圖
SQL索引
SQL的完整性實(shí)現(xiàn)
數(shù)據(jù)庫(kù)安全
查詢(xún)處理與查詢(xún)優(yōu)化
查詢(xún)處理
查詢(xún)優(yōu)化
- 寫(xiě)出查詢(xún)樹(shù)(笛卡兒積、投影、選擇)
- 選擇下移
- 投影下移(有特殊情況需要加條件)
- 笛卡兒積變自然連接
并發(fā)控制
并發(fā)和并行
并發(fā)的問(wèn)題:
- 丟失修改
- 不可重復(fù)讀
- 臟讀
并發(fā)控制的主要方法:
- 基于封鎖機(jī)制的并發(fā)控制
- 基于時(shí)標(biāo)的并發(fā)控制
封鎖
- 基本鎖:
- 排它鎖(X鎖eXclusive)寫(xiě)鎖
- 共享鎖(S鎖Share)讀鎖
- 鎖升級(jí)--可能導(dǎo)致死鎖問(wèn)題(讀鎖升寫(xiě)鎖)
- 封鎖粒度選擇
- 數(shù)據(jù)庫(kù)困食、關(guān)系边翁、元組三級(jí)
- 封鎖粒度越大
- 并發(fā)度越小
- 系統(tǒng)開(kāi)銷(xiāo)越小
- 多粒度封鎖
- 封鎖協(xié)議
- 修改前加X(jué)鎖
- 不保證可重復(fù)讀
- 讀臟數(shù)據(jù)
- 1級(jí)情況下。讀前加S鎖
- 不讀臟數(shù)據(jù)
- 不可重復(fù)讀
- 1級(jí)情況下硕盹。讀前加S鎖直到事物結(jié)束釋放
- 三個(gè)問(wèn)題均滿(mǎn)足
- 修改前加X(jué)鎖
封鎖-饑餓符匾、活鎖和死鎖
- 死鎖產(chǎn)生
- 調(diào)度的隨機(jī)性
- 兩個(gè)事物相互需要資源
- 死鎖預(yù)防
- 思想:破壞產(chǎn)生死鎖條件
- 常用方法:
- 一次封鎖法
- 容易活鎖(永遠(yuǎn)等待)
- 順序封鎖法
- 不可行
-
基于時(shí)標(biāo)的方法
- 等待-死亡
- 受傷-等待
- 一次封鎖法
- 基于時(shí)標(biāo)的方法
- 死鎖的檢測(cè)/診斷與恢復(fù)
- 檢測(cè)
- 超時(shí)法
- 事物等待圖法
- 有回路-死鎖
- 恢復(fù)
- rollback
- 檢測(cè)
可串行化調(diào)度
- 歷程等價(jià)的判別方法
- 每一對(duì)沖突操作不變
- 確保并發(fā)事務(wù)執(zhí)行可串行化的方法:2PL,時(shí)間戳
- 兩階段封鎖協(xié)議(2PL)
- 使用數(shù)據(jù)先申請(qǐng)
- 釋放第一個(gè)封鎖后事務(wù)不再申請(qǐng)和獲得其他封鎖
- 加鎖階段
- 處理
- 釋放階段
- 并發(fā)執(zhí)行所有事務(wù)遵循兩段協(xié)議是正確的
- 可以避免丟失修改瘩例、不可重復(fù)讀啊胶、避免讀臟數(shù)據(jù)
- 不能避免死鎖
- 基于時(shí)標(biāo)
- TS(TimeStamp)
- 時(shí)標(biāo)大的先
- 寫(xiě)后讀寫(xiě)申請(qǐng)均不行 -- 回滾
- 讀后寫(xiě)不行 == 回滾
- 讀后讀可以 == 修改ts時(shí)間戳
數(shù)據(jù)恢復(fù)
- 正常操作時(shí)的事務(wù)回滾
- 系統(tǒng)崩潰后的恢復(fù)
- 重做
- 反做
- 設(shè)置檢查點(diǎn)。崩潰后恢復(fù)直接從檢查點(diǎn)開(kāi)始做
- 緩沖區(qū)管理
- 活動(dòng)事務(wù)修改的塊先不寫(xiě)磁盤(pán)
- 允許活動(dòng)事務(wù)修改的塊寫(xiě)磁盤(pán)
- 介質(zhì)故障的恢復(fù)
- 數(shù)據(jù)轉(zhuǎn)儲(chǔ)
關(guān)系數(shù)據(jù)理論
問(wèn)題的提出
- 問(wèn)題
- 插入異常
- 刪除異常
- 數(shù)據(jù)冗余
- 更新復(fù)雜
- 解決方法:模式分解
- 一個(gè)好的關(guān)系模式應(yīng)該具備以下四個(gè)條件
- 盡可能少的數(shù)據(jù)冗余
- 沒(méi)有插入異常
- 沒(méi)有刪除異常
- 沒(méi)有更新異常
數(shù)據(jù)依賴(lài)
-
函數(shù)依賴(lài):最重要
- 類(lèi)似于變量之間的單值函數(shù)關(guān)系垛贤。設(shè)單值函數(shù)Y=F(X)焰坪,自變量X的值可以決定一個(gè)唯一的函數(shù)值Y。
-
多值依賴(lài)
- 設(shè)R<U>是屬性集U上的關(guān)系模式,X,Y是U的子集,若對(duì)于R<U>的任意一個(gè)可能的關(guān)系r, r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱(chēng)“X函數(shù)確定Y”或“Y函數(shù)依賴(lài)于X”, 記作X→Y
- 非平凡函數(shù)依賴(lài): 若X→Y, 但Y不包含于X, 則稱(chēng)X→Y是非平凡的函數(shù)依賴(lài)
- 平凡函數(shù)依賴(lài): 若X→Y, 但Y包含于X, 則稱(chēng)X→Y是平凡的函數(shù)依賴(lài)
- 完全函數(shù)依賴(lài)
- 部分函數(shù)依賴(lài)
- 函數(shù)傳遞依賴(lài)
連接依賴(lài)
規(guī)范化
一范式(1NF):如果一個(gè)關(guān)系中的所有屬性值均是原子的聘惦,則稱(chēng)該關(guān)系滿(mǎn)足1NF某饰。關(guān)系模型中的關(guān)系必須滿(mǎn)足1NF
二范式(2NF): 若R∈1NF, 且每一個(gè)非主屬性完全函數(shù)依賴(lài)于碼, 則稱(chēng)R∈2NF (即消除非主屬性對(duì)碼的部分依賴(lài))
-
三范式(3NF): 關(guān)系模式R<U, F>中若不存在這樣的碼X, 屬性組Y以及非主屬性組Z (Z Y), 使得X?Y 、 Y?Z和Y ? X 成立善绎,則稱(chēng)R<U, F>?3NF黔漂。
(即消除非主屬性對(duì)碼的傳遞依賴(lài))- 如果關(guān)系模式R<U, F>∈2NF,且每一個(gè)非主屬性不傳遞依賴(lài)于任一候選關(guān)鍵字禀酱,則稱(chēng)R<U, F>→NF
BCNF(Boyce Codd Normal Form): 關(guān)系模式R<U, F> ?1NF, 若X?Y且Y X時(shí), X必含有碼, 則R ?BCNF
數(shù)據(jù)依賴(lài)的公理系統(tǒng)
關(guān)系模式的分解
期末考試:
- [ ] 1. 填空(10')
- [ ] 2. 選擇(10')
- [ ] 3. ER->關(guān)系模型(8')
- [ ] 4. SQL+關(guān)系代數(shù)(12')
- [ ] 5. 查詢(xún)優(yōu)化(6'-8')
- [ ] 6. 并發(fā)(8')
- [ ] 7. 故障恢復(fù)(8')
- [ ] 8. 關(guān)系理論(6')
我的話(huà)
最后說(shuō)兩句炬守。。匆匆整理的東西就這些剂跟,SQL實(shí)在是多劳较。所以懶得打了,大家應(yīng)該自己也能看好浩聋。誰(shuí)知道考試居然出了一分的考題考使用Students表創(chuàng)建視圖IS_Students(信息學(xué)院學(xué)生信息的視圖)的時(shí)候观蜗,添加什么語(yǔ)句使當(dāng)更新IS_Students的時(shí)候,自動(dòng)添加系屬性為'IS'衣洁。墓捻。。剛剛在網(wǎng)上查了半天也沒(méi)查到坊夫。希望有大抛┑冢看到的話(huà)知道可以告訴我~
最后一章關(guān)系數(shù)據(jù)實(shí)在看得我惡心。环凿。而且符號(hào)也不好打梧兼。。很多直接從ppt上粘的公式顯示不了智听,大家將就著看吧羽杰。渡紫。