E-R模型又叫實(shí)體-關(guān)系圖金顿。
簡(jiǎn)單屬性:不可再分的屬性毛肋;
復(fù)合屬性:還可以再分的屬性壤靶;
派生屬性:通過(guò)計(jì)算可以得出的屬性双戳。
關(guān)系有1對(duì)1背稼,1對(duì)多,多對(duì)多问窃。
帶下劃線的代表主鍵谨朝。
擴(kuò)展知識(shí):弱實(shí)體和特殊化,這兩種都是實(shí)體佩捞,表現(xiàn)形式如下圖左側(cè)所示绞幌。
表示多的一端盡量用*表示,如果要用M表示一忱,當(dāng)表示多對(duì)多的時(shí)候兩端的字母不能一樣莲蜘,如:M:M這種是不合法的,應(yīng)該寫(xiě)成M:N帘营。
最終得到的邏輯設(shè)計(jì)就是E-R模型票渠。
命名沖突不一定要解決,如異名同義這種情況芬迄,同時(shí)存在經(jīng)理編號(hào)和員工編號(hào)问顷,他們都表示編號(hào),但可以不進(jìn)行統(tǒng)一禀梳,因?yàn)檫M(jìn)行統(tǒng)一后杜窄,有時(shí)反而不太好用。
U代表屬性集合算途,R代表關(guān)系模式的名字羞芍。體現(xiàn)在庫(kù)表中,R代表表名郊艘,U代表列名荷科。
1:1關(guān)系可以寫(xiě)在任意一端;1:n關(guān)系需要放在n這邊的表中纱注;n:m畏浆,只能單獨(dú)做關(guān)系模式。
差:以左邊的為主狞贱,減去右邊的內(nèi)容刻获。比如下圖中S1-S2,就是從S1表中減去S2的內(nèi)容瞎嬉。
1=2和1=‘2’意義不一樣蝎毡,1=2代表第一列和第二列做對(duì)比,1=‘2’代表第一列和‘2’這個(gè)值做對(duì)比氧枣。
select語(yǔ)句:select Sno,Sname from S1 where Sno = ‘No0001’;其中Sno,Sname相當(dāng)于對(duì)S1做投影沐兵,where之后的內(nèi)容相當(dāng)于對(duì)S1做選擇。
先做選擇再進(jìn)行笛卡爾積然后再投影效率會(huì)比較高便监,因?yàn)槿绻扔玫芽柗e選擇范圍會(huì)很大扎谎。
數(shù)據(jù)冗余:下圖中后三列就存在數(shù)據(jù)冗余碳想。
更新異常:如對(duì)下圖更新計(jì)算機(jī)系的名稱時(shí),會(huì)有遺漏就是更新異常毁靶。
插入異常:下圖中想插入一個(gè)學(xué)生但因?yàn)椴恢老档男畔⒒蛘呦氩迦胍粋€(gè)系但沒(méi)有學(xué)生的信息都會(huì)導(dǎo)致插入異常胧奔。
刪除異常:比如刪下圖中的趙六,但會(huì)把信息系這個(gè)信息也會(huì)刪掉预吆,就會(huì)導(dǎo)致刪除異常龙填。
X是決定因子。
下圖中A→B拐叉,AC→B岩遗,C就是冗余鍵;客戶編號(hào)和身份證號(hào)都是候選鍵巷嚣,但(客戶編號(hào),身份證號(hào))這個(gè)組合鍵就存在冗余钳吟,不是候選鍵廷粒。
下圖中A的入度為0,出度為2红且;B入度為1坝茎,出度為0;C入度為1暇番,出度為0.
AD或者(A,D)這兩種形式代表的是A嗤放,D組合鍵;A和B代表的是A壁酬,B兩個(gè)候選鍵次酌。
主屬性:候選鍵都是主屬性。
非主屬性:主屬性之外的所有屬性都是非主屬性舆乔。
對(duì)于規(guī)范化問(wèn)題一般是通過(guò)拆表來(lái)解決岳服。
下圖中T->J中沒(méi)有包含候選鍵所以不滿足BC范式。
答案是C希俩,D吊宋,A
有冗余依賴先去掉冗余依賴再判斷。
下圖兩個(gè)都保持了函數(shù)依賴颜武。
只要出現(xiàn)一行全部?的就說(shuō)明是無(wú)損分解璃搜。
第一個(gè)是無(wú)損分解,第二個(gè)是有損分解鳞上。
原子性:事務(wù)要么就做要么就不做这吻,不能只做一半。
一致性:事務(wù)完成之后要保持一致性的結(jié)果篙议。
隔離性:事務(wù)之間不能相互影響橘原,不論誰(shuí)先做都不能相互影響,比如A事務(wù)的結(jié)果不能影響B(tài)事務(wù)。
持續(xù)性:事務(wù)一旦完成會(huì)在數(shù)據(jù)庫(kù)中持續(xù)保存趾断。
加鎖的對(duì)象要盡量小拒名,加鎖的時(shí)間要盡量短,因?yàn)榧油赕i之后這個(gè)對(duì)象就停了芋酌。
沒(méi)有直接寫(xiě)釋放對(duì)A的寫(xiě)鎖增显,因?yàn)?b>ROLLBACK就有釋放鎖的功能。
讀鎖是3級(jí)封鎖協(xié)議脐帝,事務(wù)完成之后才會(huì)釋放同云。
審計(jì)相當(dāng)于日志的功能。
備份的時(shí)候堵腹,差備的效率比增備低炸站。
還原的時(shí)候,差備的效率比增備高疚顷。以增備還原旱易,還原順序是A0》A1》A2;以差備還原腿堤,還原順序是A0》A1+A2+A3阀坏。
日志文件中要記錄所有操作及修改前和修改后的數(shù)據(jù),commit之后才算正式提交笆檀,要及時(shí)commit忌堂。
所有的恢復(fù)都是根據(jù)日志來(lái),具體是撤銷還是重做看日志酗洒,做完的就重做士修,沒(méi)有做完的就撤銷。
數(shù)據(jù)庫(kù)備份非常重要SV浴@蠲!
集中式數(shù)據(jù)庫(kù)放在一臺(tái)服務(wù)器上箫老,分布式數(shù)據(jù)庫(kù)存放在多臺(tái)服務(wù)機(jī)封字。
關(guān)系數(shù)據(jù)庫(kù)模式:提高性能的擴(kuò)展方式主要以加內(nèi)存,更換CPU這些向上擴(kuò)展的方式耍鬓。(向上垂直擴(kuò)展)
NoSQL模式:提高性能的擴(kuò)展方式主要以集群阔籽,向外擴(kuò)展的方式。(水平擴(kuò)展)
反規(guī)范化用犧牲空間的方式牲蜀,提高查詢效率笆制。
分割表:把經(jīng)常查詢的部分當(dāng)作一個(gè)表,是一個(gè)新表涣达。提高查詢效率
表分區(qū):把一張表分成多塊放到一臺(tái)服務(wù)器的不同磁盤(pán)上
內(nèi)存數(shù)據(jù)庫(kù)缺點(diǎn):
? ? 1在辆、對(duì)內(nèi)存要求比較高证薇,一般要求1TB;
? ? 2匆篓、要將數(shù)據(jù)定期放到外存浑度,要定期備份,因?yàn)橐坏┲貑⒀桓牛瑑?nèi)存上的數(shù)據(jù)就會(huì)被清掉箩张,造成數(shù)據(jù)丟失。
如果用內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行集群窗市,出錯(cuò)概率會(huì)提高先慷,維護(hù)成本比較高。
數(shù)據(jù)庫(kù)性能優(yōu)化:
? ? 1咨察、對(duì)于常用的查詢可以規(guī)劃成一個(gè)表论熙。
? ? 2、索引也不能過(guò)多摄狱,過(guò)多會(huì)出現(xiàn)索引沖突和空值的情況下會(huì)導(dǎo)致索引失效脓诡。
? ? 3、SQL優(yōu)化:盡量用連接不用笛卡爾積二蓝;盡量把子表縮小誉券,把條件放在前面指厌。
大數(shù)據(jù)深度分析結(jié)果用于決策刊愚。
對(duì)于數(shù)據(jù)庫(kù)的問(wèn)題主要是針對(duì)存儲(chǔ)的空間和查詢的時(shí)間。