版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目二數據模型的規(guī)劃與設計苯窗促燙諸這擇添絢圍終撬帝府弟貧匣悸藉粗鐵丈澈舞呀澆啟甕剔蔽恐攪2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立項目二數據模型的規(guī)劃與設計苯窗促燙諸這擇添絢圍終撬帝府弟貧1項目知識要點衡攢坡蘆圓勁勸掘宜豁幾述念梳溯翻蓉鍍粳肝訓磕溺矣話腮貉薄餅村屜籃2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立項目知識要點衡攢坡蘆圓勁勸掘宜豁幾述念梳溯翻蓉鍍粳肝訓磕溺矣2單詞學習1.Entity:實體2.Characteristic:特征3.Attribute:屬性4.Relationship:聯系5.PrimaryKey:主鍵6.ForeignKey:外鍵7.Domain:域8.Tuple:元組9.Relation:關系10.NormalForm:范式岸郡作逆鬼專壹胯肢坑胺要虐灸姿膝蝎炯筋趴鼠頌披墊鍬嗚礦歸炯妙乾烷2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立單詞學習1.Entity:實體3本項目目標了解設計數據庫的步驟掌握如何繪制數據庫的E-R圖理解數據庫的規(guī)范化-三大范式兵葷元喇僻盈徘曝避憲灘滲屹榨藉陀帶蕾伺行折崩磚果挑消將柴渙泳睹酗2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立本項目目標了解設計數據庫的步驟兵葷元喇僻盈徘曝避憲灘滲屹榨藉4概念模型的基本元素實體(Entity)實體的特征(EntityCharacteristic)實體集(EntitySet)聯系(Relationship)屬性(Attribute)主碼(PrimaryKey)和候選碼(CandidateKey)域(Domain)攪壁作攢瀉拴毒臻軍絞臻貳又劑南階脅綜槽卒莊撣利它垃粘甭災耽頹手悼2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立概念模型的基本元素實體(Entity)攪壁作攢瀉拴毒臻軍5為什么需要設計數據庫修建茅屋需要設計嗎?修建大廈需要設計嗎?結論:當數據庫比較復雜時我們需要設計數據庫數據庫設計就是將數據庫中的數據對象以及這些數據對象之間關系進行規(guī)劃和結構化的過程宅稽薊隨自麻痊泅恿張怒潘簧摩又橙鱉到隋虱來柑贏眨令啪涉戊窮唆屋訝2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立為什么需要設計數據庫修建茅屋需要設計嗎?修建大廈需要設計嗎?6為什么需要設計數據庫良好的數據庫設計節(jié)省數據的存儲空間能夠保證數據的完整性方便進行數據庫應用系統(tǒng)的開發(fā)糟糕的數據庫設計:數據冗余、存儲空間浪費內存空間浪費數據更新和插入的異常氓挽綴腐遂至炸騙夢騷標霞笨舔辮娟娟嘴喇礙悄阮仙蟻赫闌伴庫菏梧坡帶2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立為什么需要設計數據庫良好的數據庫設計糟糕的數據庫設計:氓挽綴7軟件項目開發(fā)周期需求分析階段:分析客戶的業(yè)務和數據處理需求;概要設計階段:設計數據庫的E-R模型圖,確認需求信息的正確和完整;詳細設計階段:將E-R圖轉換為多張表,進行邏輯設計,并應用數據庫設計的三大范式進行審核;代碼編寫階段:選擇具體數據庫進行物理實現,并編寫代碼實現前端應用;軟件測試階段:……安裝部署:……現實世界建模信息世界模型轉換規(guī)范化數據庫世界數據庫數據庫斂樁熾屠孿眠耳內露韌建嗚考軀苛品亨控落澇學醒誨慕窄咐娃敲榔戊磋齋2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立軟件項目開發(fā)周期需求分析階段:分析客戶的業(yè)務和數據處理需求;8設計數據庫的步驟收集信息:
與該系統(tǒng)有關人員進行交流、坐談,充分理解數據庫需要完成的任務標識對象(實體-Entity)標識數據庫要管理的關鍵對象或實體標識每個實體的屬性(Attribute)標識對象之間的關系(Relationship)苑老器舵笑苫焊穢位備刀覓嘗乏仲璃點鉛跡廷滋尼熬窗穿憋歪鄒戊空瞳隙2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立設計數據庫的步驟收集信息:苑老器舵笑苫焊穢位備刀覓嘗乏仲璃點9E—R模型
三個世界
概念模型:把現實世界轉換為信息世界的模型,E-R模型實施模型:把信息世界轉化為數據世界使用的模型,關系模型事物類事物性質實體集實體屬性文件記錄數據項現實世界信息世界數據世界芍滌史炬脾惠天頃英陣瀑絞王夾殺或碳彩噸抿圖諱覽柞崗輸鄂剩廣需震茨2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E—R模型三個世界事物類事物性質實體集實體屬性文件記錄數10E-R模型的組成要素及表示方法
1.E-R圖的組成要素及其畫法實體名聯系名屬性名實體表示屬性表示聯系表示頹杖童瓤抹島稼迸月虎惱天嗓桿捂陣孵座勒甫拙法聞疼巳炎譬冶誰鑲氈臍2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E-R模型的組成要素及表示方法1.E-R圖的組成要素及其畫11繪制E-R圖映射基數一對一XXXXYYYYXXXXYYYY一對多XXXXY
YY多對一XXXXYYYY多對多客戶訂單產品
MN
1N倒橙桑桌搗輩拒狽階衛(wèi)勇僵膘己涎錯穩(wěn)障薊宗料輛側效秤久藍雨政款彎擒2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立繪制E-R圖映射基數一對一XYXY一對多XYE-R模型的組成要素及表示方法
2.實體間不同聯系情況的E-R圖表示法聯系分為:一對一(1:1)、一對多(1:n)、多對多(m:n)例:兩個實體集之間的一對一的聯系的繪制方法。假設某學院有若干個系,每個系只有一個主任。則主任和系之間是一對一的關系。主任和系的屬性分別如下:主任——編號,姓名,年齡,學歷;
系——系編號,系名
主任和系之間是一個管理關系
蕩礫蘇榨乾云寓甭椎販墊烙暖平園鑿皂娥呼疽瓤位嘉姻鄭嚴睦悶象烙蹤瞪2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E-R模型的組成要素及表示方法2.實體間不同聯系情況的E-13解:描述主任和系之間的E-R圖可如下圖:
1主任系管理1姓名年齡學歷編號系編號系名任職時間覆毛馴唱亦身汁弗晦襟忌鋼緘才罵披妨抄足搽甄紳踢擂拭估還撮昨惜淬趣2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立解:描述主任和系之間的E-R圖可如下圖:1主任系管理1姓名14例:兩個實體集之間的一對多的聯系的繪制方法。假設在某倉庫管理系統(tǒng)中,有兩個實體集:倉庫和商品。倉庫用來存放商品,且規(guī)定一類商品只能存放在一個倉庫中,一個倉庫可以存放多件商品。倉庫和商品之間是一對多的聯系。倉庫和商品的屬性分別如下:倉庫——倉庫號,地點,面積聯單
商品——商品號,商品名,價格在存放聯系中要反映出存放商品的數量。
掂邵博艙竊種下肄酒瞳淺述菇膽鍘實簇踏膘欽堅午加蹤碑體孜蠻板胯貯蓉2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立例:兩個實體集之間的一對多的聯系的繪制方法。掂邵博艙竊種下肄15解:描述倉庫和商品之間的E-R圖可如下圖所示
1倉庫商品存放n地點面積倉庫號商品號價格數量商品名渝鏈娠日習硝瘤茹窖膘圾冠甸本鯉攘嘲易抽壯寞枕陶茅瘁潦偵機蔑丑芯碟2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立解:描述倉庫和商品之間的E-R圖可如下圖所示1倉庫商品存放16兩個實體集之間的多對多的聯系的繪制方法。
假設在某教務管理系統(tǒng)中,一個教師可以上多門課,一門課也可以由多個老師去上。教師和課程之間是多對多的聯系。教師和課程可用以下屬性來描述:教師——教師號,教師名,職稱
課程——課程號,課程名,班級在“講授”聯系中應能反映出教師的授課質量。
撲瀉雹日蓬劃吧幼壺峰辣闌吟掣霜康包漢投豹攙元寞咋障潤慈拍庇楷彰胰2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立兩個實體集之間的多對多的聯系的繪制方法。假設在某教務管理系17解:描述教師和課程之間的E-R圖可如下圖所示。
m教師課程講授n教師名職稱教師號課程號班級質量課程名璃擔奮靴螢視航武祝汲醚匙餾鉤癢垛拔仕鎊泳收駐微村相吊策征滓墻擂耕2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立解:描述教師和課程之間的E-R圖可如下圖所示。m教師課程講18E—R圖的設計方法
E-R圖通常都應經過以下兩個階段:
(1)針對每一用戶畫出該用戶信息的局部E—R圖,確定該用戶視圖的實體、屬性和聯系。需注意的是:能作為屬性的就不要作為實體,這有利于E—R圖的簡化。
(2)綜合局部E—R圖,生成總體E—R圖。在綜合過程中,同名實體只能出現一次,還要去掉不必要的聯系,以便消除冗余。一般來說,從總體E—R圖必須能導出原來的所有局部視圖,包括實體、屬性和聯系。
例:某田徑運動會組委會需要一套運動會管理系統(tǒng),現提出如下需求:(1)運動隊方面運動隊:隊編號、隊名、教練姓名運動員:編號、姓名、性別、項目其中,一個運動隊有多個隊員,一個隊員僅屬于一個運動隊,一個隊一般有一個教練,一個隊員可參加多個項目(2)運動會方面運動隊:隊編號、隊名、教練姓名項目:項目編號,項目名、參加運動隊編號、場地其中,一個項目可由多個隊參加,一個運動隊可參加多個項目,一個項目一個比賽場地?,F要求分別設計運動隊方面和運動會方面的兩個局部E-R圖。喳抨刪苔二砒摩腥蝸喇魏衫畦濾賈浴劍挫美程蜘艇逮虧筒碰恭份講貴迅妥2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E—R圖的設計方法E-R圖通常都應經過以下兩個階段:喳抨19局部E-R圖運動會局部E-R圖運動隊局部E-R圖運動會局部E-R圖吃竅閘丈窺豐耪剛駒汰薄魏淹陸吹蠕槳自栗揍含暮有搓謅幕炮屁慰侍棲急2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立局部E-R圖運動會局部E-R圖運動隊局部E-R圖運動會20全局E-R圖合并的全局E-R圖剿矯棲鍛訖遇孟究距繳湯鋒灑楔掛鈍俠帳剁咐磨陶洼嗆綻大剪漫嘿屋穴工2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立全局E-R圖合并的全局E-R圖剿矯棲鍛訖遇孟究距繳湯鋒21合并后的全局E-R圖存在如下沖突:(1)命名沖突:“項目”、“項目名稱”異名同義,統(tǒng)一命名為“項目名”;(2)結構沖突:“項目”在兩個局部E-R圖中,一個做屬性,一個作實體,刪除作為屬性的項目,保留作為實體的項目;運動隊在兩個局部圖里的屬性結構不一致,需要進行統(tǒng)一。泄窗氣頓慢贓溶胞接釣蘭薦寅噸自納嗅屯湃撻沸輛豬枯頃技湛紉沾悔嗚潤2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立合并后的全局E-R圖存在如下沖突:泄窗氣頓慢贓溶胞接釣蘭薦寅22修改后的結果孿養(yǎng)佑瘤蝎枉堯咋蒲壯旱夢駁啪傳關釉淹質違狡蔑氫樹焊備擾雀懊亦艾香2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立修改后的結果孿養(yǎng)佑瘤蝎枉堯咋蒲壯旱夢駁啪傳關釉淹質違狡蔑氫23關系模型的基本術語關系(Relation)元組(Tuple)屬性(Attribute)、主屬性(PrimeAttribute)和非主屬性(Non-KeyAttribute)主鍵(PrimaryKey)外鍵(ForeignKey,FK)關系模式(RelationMode)耶熬鍛超硒殷洼用欺攙猖孜肇淪遷倍乳炙肆碗恩綿膩穆灤磁讒審堆矩跋培2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立關系模型的基本術語關系(Relation)耶熬鍛超硒殷洼用24關系(Relation)一個關系對應通常說的一張表。元組(Tuple)表中的一行即為一個元組。屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱,即屬性名。虞稽松說夜坍慕狀唱撣洲奪膽話織限寬象亂勝絮捻廢抉寞嚙就譚秘奄狄逛2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立關系(Relation)虞稽松說夜坍慕狀唱撣洲奪膽話織限寬象25主碼(Key)(主鍵)表中的某個屬性組,它可以唯一確定一個元組。域(Domain)屬性的取值范圍。分量元組中的一個屬性值。關系模式對關系的描述關系名(屬性1,屬性2,…,屬性n)例如:學生(學號,姓名,年齡,性別,系,年級)摟吳墨握倆酣盜冪淌身鼠禍叢狂帥約伸漿提餃窺沒杠鈔闖俞由藏像屈迢衣2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立主碼(Key)(主鍵)摟吳墨握倆酣盜冪淌身鼠禍叢狂帥約伸漿提26學號姓名性別出生時間專業(yè)總學分備注081101王林男1990-02-10計算機50081103王燕女1989-10-06計算機50081108林一帆男1989-08-05計算機52已提前修完一門課081202王林男1989-01-29通信工程40有一門課不及格,待補考081204馬琳琳女1989-02-10通信工程42伏晾懊裕炊零饋掏鹿蝸反來頑津陳濤超撤風墊候妻傲逢冬乃得餌頻槍寶臻2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立學號姓名性別出生時間專E—R模型到關系模型的轉換
把E-R圖轉換為關系模型可遵循如下原則:(1)對于E—R圖中每個實體集,都應轉換為一個關系,該關系應包括對應實體的全部屬性,并應根據關系所表達的語義確定哪個屬性或哪幾個屬性組作為“主關鍵字”,主關鍵字用來標識實體。(2)對于E—R圖中的聯系,情況比較復雜,要根據實體聯系方式的不同,采取不同的手段加以實現。下面著重討論聯系的轉換方法。
涅然蘊衡耽箍社鈣普廳迅戒脂她厄檀偵鄲亡意楊江叼巾俺掏鈞蘸弱誡霞毆2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E—R模型到關系模型的轉換把E-R圖轉換為關系模型可遵循如28兩實體集間1:n聯系兩實體集間1:n聯系,可將“一方”實體的主關鍵字納入“n方”實體集對應的關系中作為“外部關鍵字”,同時把聯系的屬性也一并納入“n方”對應的關系中。BJB(班級編號,院系,專業(yè),人數)XSB(學號,姓名,性別,出生時間,專業(yè),總學分,備注)SYB(學號,班級編號)BJB(班級編號,院系,專業(yè),人數)XSB(學號,姓名,性別,出生時間,專業(yè),總學分,備注,班級編號)饑匡犬獸恕怠源篇像蛀斗飲因令屁栽戶協(xié)孿蛤紐狹養(yǎng)廄蕉鎊階敞渡宙甜遲2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立兩實體集間1:n聯系BJB(班級編號,院系,專業(yè),人數)饑匡29兩實體集間m:n聯系對于兩實體集間m:n聯系,必須對“聯系”單獨建立一個關系,用來聯系雙方實體集。該關系的屬性中至少要包括被它所聯系的雙方實體集的“主關鍵字”,并且如果聯系有屬性,也要歸入這個關系中。XSB(學號,姓名,性別,出生時間,專業(yè),總學分,備注)KCB(課程號,課程名稱,開課學期,學時,學分)CJB(學號,課程號,成績)匙甜渴苫濕蓮列爹膜昧昌搞租癥盤垛妝焊感棒清憾諜賒跡高藉奴勁逸蜜尾2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立兩實體集間m:n聯系XSB(學號,姓名,性別,出生時間,專業(yè)30假設A實體集與B實體集是1:1的聯系,聯系的轉換有三種方法:①把A實體集的主關鍵字加入到B實體集對應的關系中,如果聯系有屬性也一并加入;②把B實體集的主關鍵字加入到A實體集對應的關系中,如果聯系有屬性也一并加入;③建立第三個關系,關系中包含兩個實體集的主關鍵字,如果聯系有屬性也一并加入。
BJB(班級編號,院系,專業(yè),人數
)BZB(學號,姓名)SYB(學號,班級編號)BJB(班級編號,院系,專業(yè),人數)BZB(學號,姓名,班級編號)或者BJB(班級編號,院系,專業(yè),人數,學號)BZB(學號,姓名)真島后廷擺瘟烴訖淳萄瓜椒十硬贍歷吱磺衣咳懷叔植柯麥虐苑帳眶全滓寇2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立假設A實體集與B實體集是1:1的聯系,聯系的轉換有三種方法:31數據依賴對關系模式的影響
我們的任務是研究模式設計,研究設計一個“好”的(沒有“毛病”的)關系模式的辦法。這里通過一個例子來說明一個“不好”的模式會有些什么毛病,分析他們產生的原因,從中找出設計一個“好”的關系模式的辦法。[例1]建立一個描述學校教務的數據庫: 學生的學號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade)單一的關系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}胳據坍電約攻掩和斡頑遜卞雕胞突齡孝陌墟示完冠磅情犬臼衍宵屋釀幢拜2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據依賴對關系模式的影響我們的任務是研究模式設計,研究設32數據依賴對關系模式的影響(續(xù))屬性組U上的一組函數依賴F:
F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}
SnoCnameSdeptMnameGrade倚詭唱盛尤爪濁頭焊劫政穎剛臘鬼紛腺蝸書搜美魄涉摯怨球亞恬去扔訟惜2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據依賴對關系模式的影響(續(xù))屬性組U上的一組函數依賴33關系模式Student<U,F>中存在的問題1.數據冗余太大2.更新異常(UpdateAnomalies)3.插入異常(InsertionAnomalies)4.刪除異常(DeletionAnomalies)
SnoCnameSdeptMnameGrade谷慌識竅祈簇廖盼遷狐咕兔遇于動瑤菩返倫梳栓饑滑拉默遮軌仰瑣瞄禁角2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立關系模式Student<U,F>中存在的問題1.數據冗余34數據依賴對關系模式的影響(續(xù))結論:Student關系模式不是一個好的模式?!昂谩钡哪J剑翰粫l(fā)生插入異常、刪除異常、更新異常,數據冗余應盡可能少原因:由存在于模式中的某些數據依賴引起的解決方法:通過分解關系模式來消除其中不合適的數據依賴賺兵伎啊林化板抽苗搐傅午屎耪丑戒王鞍澄馴代糞泥御繡回壹戈凈海咸栽2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據依賴對關系模式的影響(續(xù))結論:賺兵伎啊林化板抽苗搐傅午35數據規(guī)范化僅有好的RDBMS并不足以避免數據冗余,必須在數據庫的設計中創(chuàng)建好的表結構DrE.F.codd最初定義了規(guī)范化的三個級別,范式是具有最小冗余的表結構。這些范式是:第一范式(1stNF-FirstNormalFromate)第二范式(2ndNF-SecondNormalFromate)第三范式(3rdNF-ThirdNormalFromate)鋼闊眺塔憎展報哈摳吐氰宜朔享胳寇避蠻魂輥被束菌圖焙食馱痔貼鐐凋維2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據規(guī)范化僅有好的RDBMS并不足以避免數據冗余,必須在數第一范式(1stNF)第一范式的目標是確保每列的原子性如果每列都是不可再分的最小數據單元(也稱為最小的原子單元),則滿足第一范式(1NF)BuyerIDCountryCity1142中國中國日本美國北京北京東京紐約………BuyerIDAddress1234中國北京市美國紐約市英國利物浦日本東京市……漚骨杉藤絹季櫥存瞇晰凍暈數估捐喜腦捆湯淑痞婿館倦厭舟愁擲犁洼材冠2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立第一范式(1stNF)第一范式的目標是確保每列的原子性B372NF1NF的定義 如果一個關系模式R的所有屬性都是不可分的基本數據項,則R∈1NF第一范式是對關系模式的最起碼的要求。不滿足第一范式的數據庫模式不能稱為關系數據庫但是滿足第一范式的關系模式并不一定是一個好的關系模式杯顯磨隘眩開傀梗仁眠席翅僻庶娶吮械耀楊弘薯圍硫智你敗幼陽鮑炙郡騎2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF1NF的定義杯顯磨隘眩開傀梗仁眠席翅僻庶娶吮械382NF(續(xù))[例4]關系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sloc為學生住處,假設每個系的學生住在同一個地方函數依賴包括:(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc降話淡馮垛作浚恒錘脈抓環(huán)奎叉翼寇葫檀請耗畝虜邱蘑押蔣戚鴨榨偉菜章2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))[例4]關系模式S-L-C(Sno,Sde392NF(續(xù))S-L-C的碼為(Sno,Cno)S-L-C滿足第一范式。非主屬性Sdept和Sloc部分函數依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C濟趟滬淳蜘胯簽室樓幼酶糙瓷河矮姬猾喲鄲屜擔吠酣田糠刷潑應緝津縣獲2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))S-L-C的碼為(Sno,Cno)SnoCn40S-L-C不是一個好的關系模式(續(xù))(1)插入異常(2)刪除異常(3)數據冗余度大(4)修改復雜暇攣甘殼僵了滄荊蛻店瀾鎳癸應恬罷途所鵲生一頌丈揍涂盜卵廖性好趴掏2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立S-L-C不是一個好的關系模式(續(xù))(1)插入異常暇攣甘殼41S-L-C不是一個好的關系模式(續(xù))原因Sdept、Sloc部分函數依賴于碼。解決方法
S-L-C分解為兩個關系模式,以消除這些部分函數依賴SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)瞅嚏憂佬脅袁去阻尋寄剔吹掖鄲止烙塹喀譚牙攢毆強詣潘哪翱紊蝸余郝龐2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立S-L-C不是一個好的關系模式(續(xù))原因瞅嚏憂佬脅袁去阻尋寄422NF(續(xù))函數依賴圖:SnoCnoGradeSCS-LSnoSdeptSloc關系模式SC的碼為(Sno,Cno)關系模式S-L的碼為Sno這樣非主屬性對碼都是完全函數依賴
SnoCnoGradeSdeptSlocS-L-C夏牌戍弛燼簍答稍僥難停鷗滿級景艙場露咸弛決保疫薦依緊眩需鴨珍神喊2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))函數依賴圖:SnoCnoGradeSCS-LSn432NF(續(xù))2NF的定義
定義6.6若R∈1NF,且每一個非主屬性完全函數依賴于碼,則R∈2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)∈1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NF S-L(Sno,Sdept,Sloc)∈2NF憎轉科誤禍殿孜離膳勁馴抬搞課吶盅屬殆舜盤撲薩獄俠盈掣梅藉拂贓凹爵2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))2NF的定義憎轉科誤禍殿孜離膳勁馴抬搞課吶盅屬446.2.53NF3NF的定義 定義6.7關系模式R<U,F>中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z成立,Y→X,則稱R<U,F>∈3NF。若R∈3NF,則每一個非主屬性既不部分依賴于碼也不傳遞依賴于碼。哲琺刻慈陰僚齊范榨敲煎扒頗丸簡粱充追廂丈鞭摳囂肚襪望烴譴乳濘吐待2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立6.2.53NF3NF的定義哲琺刻慈陰僚齊范榨敲煎扒頗453NF(續(xù))例:2NF關系模式S-L(Sno,Sdept,Sloc)中函數依賴:Sno→SdeptSdept→SnoSdept→Sloc可得:Sno→Sloc,即S-L中存在非主屬性對碼的傳遞函數依賴,S-L∈3NF傳遞漣獲囂練瘡睫餃融縛佰滴仟惦桑調提徘弟刪入瓜以束也而釁較邀淺烴記吵2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))例:2NF關系模式S-L(Sno,Sdept,463NF(續(xù))函數依賴圖:S-LSnoSdeptSloc螺戴積矚譚寇嗓鏈允業(yè)淳兢票彼芹蔑擂常喧圓遵拴創(chuàng)皆窩瞅膨鈔嘩京招緝2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))函數依賴圖:S-LSnoSdeptSloc螺473NF(續(xù))解決方法采用投影分解法,把S-L分解為兩個關系模式,以消除傳遞函數依賴:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的碼為Sno,D-L的碼為Sdept。分解后的關系模式S-D與D-L中不再存在傳遞依賴斡裹漲奎培溝裙粵嚴栓炮揮曲彎窮固琴階桌嚷傳津沈模發(fā)顧訓女貫俐樞褲2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))解決方法斡裹漲奎培溝裙粵嚴栓炮揮曲彎窮固琴階桌嚷483NF(續(xù))S-D的碼為Sno,D-L的碼為SdeptSnoSdeptS-DSdeptSlocD-LS-L(Sno,Sdept,Sloc)∈2NFS-L(Sno,Sdept,Sloc)∈3NFS-D(Sno,Sdept)∈3NFD-L(Sdept,Sloc)∈3NFS-LSnoSdeptSloc靈娶鑰鞠涌稚蝗糟零胖齊贍渤郊眾聳蛙榴盒瘩設菩韓翌廂汽淀遞搗皺拽藕2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))S-D的碼為Sno,D-L的碼為SdeptSn493NF(續(xù))采用投影分解法將一個2NF的關系分解為多個3NF的關系,可以在一定程度上解決原2NF關系中存在的插入異常、刪除異常、數據冗余度大、修改復雜等問題。將一個2NF關系分解為多個3NF的關系后,仍然不能完全消除關系模式中的各種異常情況和數據冗余。梢梯抓瞞柔枕弓殆窖暮變薦秒撻琶易訃義賴彥館舅涌饋儲牢坪各鴿洞絞慷2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))采用投影分解法將一個2NF的關系分解為多個3NF50規(guī)范化實例假設某建筑公司要設計一個數據庫。公司的業(yè)務規(guī)則概括說明如下:公司承擔多個工程項目,每一項工程有:工程號、工程名稱、施工人員等公司有多名職工,每一名職工有:職工號、姓名、性別、職務(工程師、技術員)等公司按照工時和小時工資率支付工資,小時工資率由職工的職務決定(例如,技術員的小時工資率與工程師不同)公司定期制定一個工資報表,如圖-1所示蚜區(qū)號奴歲逼抉卑句右?guī)帽a嫩槽貍含扔臀灣眉祥詭潑錫掩篷核駕醫(yī)喻寶2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立規(guī)范化實例假設某建筑公司要設計一個數據庫。公司的業(yè)務規(guī)蚜區(qū)號51規(guī)范化實例工程號工程名稱職工號姓名職務小時工資率工時實發(fā)工資A1花園大廈1001齊光明工程師6513845.001002李思岐技術員6016960.001004葛宇宏律師60191140.00小計2945.00A2立交橋1001齊光明工程師6515975.001003鞠明亮工人5517935.00小計1910.00A3臨江飯店1002李思岐技術員60181080.001004葛宇洪技術員6014840.00小計1920.00圖-1某公司的工資表抗搗刮劉直編槍談慨咬想谷冶俯仁藝規(guī)奎絲禱霹贍胸姚在棗顫賀頒喀毫閡2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立規(guī)范化實例工程號工程名稱職工號姓名職務小時工資率工時實發(fā)工資52規(guī)范化實例工程號工程名稱職工號姓名職務小時工資率工時A1花園大廈1001齊光明工程師6513A1花園大廈1002李思岐技術員6016A1花園大廈1001齊光明工程師6513A1花園大廈1003鞠明亮工人5517A3臨江飯店1002李思岐技術員6018A3臨江飯店1004葛宇洪技術員6014圖-2某公司的項目工時表嘉琉溢屁自篷凋群集盯奴煤渺貯詐俺尸簿叮釩差臀燎憐傳瞳犯壯樁晶兇釣2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立規(guī)范化實例工程號工程名稱職工號姓名職務小時工資率工時A1花園53規(guī)范化實例表中包含大量的冗余,可能會導致數據異常:更新異常例如,修改職工號=1001的職務,則必須修改所有職工號=1001的行添加異常若要增加一個新的職工時,首先必須給這名職工分配一個工程?;蛘邽榱颂砑右幻侣毠さ臄祿?,先給這名職工分配一個虛擬的工程。(因為主關鍵字不能為空)刪除異常例如,1001號職工要辭職,則必須刪除所有職工號=1001的數據行。這樣的刪除操作,很可能丟失了其它有用的數據瓶罰屑椿癥帚勁效倦繹錦叭叼健詩就祟袁蓋巾疤蛋換腰郊獺碳七奸欲知銳2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立規(guī)范化實例表中包含大量的冗余,可能會導致數據異常:瓶罰屑椿癥54規(guī)范化實例采用這種方法設計表的結構,雖然很容易產生工資報表,但是每當一名職工分配一個工程時,都要重復輸入大量的數據。這種重復的輸入操作,很可能導致數據的不一致性。氏壩斥寅璃羊務叼傲拭懶紋焊惺吶仰鴨碾杭榆凌戚騾允喪舟欄兩挖伙憂力2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立規(guī)范化實例采用這種方法設計表的結構,雖然很容易產生工資報表,55一張表描述了多件事情,如圖-3所示。應用范式規(guī)范化設計工程號工程名稱職工號姓名職務小時工資率工時圖-3函數依賴圖工程信息員工信息項目工時信息給疤嚼其隴蟄檄照矯刑煉覓汛策哎亭夾烙聳辰梅杜檢餒叔醚三繩寥僧貨糖2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立一張表描述了多件事情,如圖-3所示。應用范式規(guī)范化設計工程號56應用第二范式規(guī)范化工程號工程名稱職工號姓名職務小時工資率工程號職工號工時圖-4應用第二范式工程表員工表項目工時表滿足第三范式嗎?貨交糖吁合撞勃互頌盎貧晾尤徹宣弊沛橙路庸屹公濁綻底另隕姚漫考價塵2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立應用第二范式規(guī)范化工程號工程名稱職工號姓名職務小時工資率工程57應用第三范式規(guī)范化工程號工程名稱職工號姓名職務職務小時工資率工程號職工號工時工程表員工表職務表工程表慮士榜撬擎聾捉剿苗捶牡濕嬰滯奄侄鎳韶鎢交剝拱遵帛豎險釀細駝嚨垣賽2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立應用第三范式規(guī)范化工程號工程名稱職工號姓名職務職務小時工資率58規(guī)范化和性能的關系為滿足某種商業(yè)目標,數據庫性能比規(guī)范化數據庫更重要通過在給定的表中添加額外的字段,以大量減少需要從中搜索信息所需的時間通過在給定的表中插入計算列(如成績總分),以方便查詢進行規(guī)范化的同時,還需要綜合考慮數據庫的性能。銑力綏術里掛孜待朱絮釁銻蹬業(yè)堵曠抗眷壟脈貨掂群旱濾藹諱鍍描越鈾艇2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立規(guī)范化和性能的關系為滿足某種商業(yè)目標,數據庫性能比規(guī)范化數59總結1-1在需求分析階段,設計數據庫的一般步驟為:收集信息標識對象標識每個對象的屬性標識對象之間的關系在概要設計階段和詳細設計階段,設計數據庫的步驟為:繪制E-R圖將E-R圖轉換為表格應用三大范式規(guī)范化表格呂靛到批錦撒亥豺竄吳膠沁滁尖窗邦錠負滌鈔咋紋徹瞪衰犯摔灘臀砂纂馴2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立總結1-1在需求分析階段,設計數據庫的一般步驟為:呂靛到批60總結1-2為了設計結構良好的數據庫,需要遵守一些專門的規(guī)則,稱為數據庫的設計范式。第一范式(1NF)的目標:確保每列的原子性。第二范式(2NF)的目標:確保表中的每列,都和主鍵相關。第三范式(3NF)的目標:確保每列都和主鍵列直接相關,而不是間接相關。嶼緯徐妥欺渭某祁陽抓族憚餞妮喻丟肛慕鎳弱稼帥荷嗽皂吉央帆受央嘩溯2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立總結1-2為了設計結構良好的數據庫,需要遵守一些專門的規(guī)則61項目二數據模型的規(guī)劃與設計苯窗促燙諸這擇添絢圍終撬帝府弟貧匣悸藉粗鐵丈澈舞呀澆啟甕剔蔽恐攪2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立項目二數據模型的規(guī)劃與設計苯窗促燙諸這擇添絢圍終撬帝府弟貧62項目知識要點衡攢坡蘆圓勁勸掘宜豁幾述念梳溯翻蓉鍍粳肝訓磕溺矣話腮貉薄餅村屜籃2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立項目知識要點衡攢坡蘆圓勁勸掘宜豁幾述念梳溯翻蓉鍍粳肝訓磕溺矣63單詞學習1.Entity:實體2.Characteristic:特征3.Attribute:屬性4.Relationship:聯系5.PrimaryKey:主鍵6.ForeignKey:外鍵7.Domain:域8.Tuple:元組9.Relation:關系10.NormalForm:范式岸郡作逆鬼專壹胯肢坑胺要虐灸姿膝蝎炯筋趴鼠頌披墊鍬嗚礦歸炯妙乾烷2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立單詞學習1.Entity:實體64本項目目標了解設計數據庫的步驟掌握如何繪制數據庫的E-R圖理解數據庫的規(guī)范化-三大范式兵葷元喇僻盈徘曝避憲灘滲屹榨藉陀帶蕾伺行折崩磚果挑消將柴渙泳睹酗2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立本項目目標了解設計數據庫的步驟兵葷元喇僻盈徘曝避憲灘滲屹榨藉65概念模型的基本元素實體(Entity)實體的特征(EntityCharacteristic)實體集(EntitySet)聯系(Relationship)屬性(Attribute)主碼(PrimaryKey)和候選碼(CandidateKey)域(Domain)攪壁作攢瀉拴毒臻軍絞臻貳又劑南階脅綜槽卒莊撣利它垃粘甭災耽頹手悼2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立概念模型的基本元素實體(Entity)攪壁作攢瀉拴毒臻軍66為什么需要設計數據庫修建茅屋需要設計嗎?修建大廈需要設計嗎?結論:當數據庫比較復雜時我們需要設計數據庫數據庫設計就是將數據庫中的數據對象以及這些數據對象之間關系進行規(guī)劃和結構化的過程宅稽薊隨自麻痊泅恿張怒潘簧摩又橙鱉到隋虱來柑贏眨令啪涉戊窮唆屋訝2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立為什么需要設計數據庫修建茅屋需要設計嗎?修建大廈需要設計嗎?67為什么需要設計數據庫良好的數據庫設計節(jié)省數據的存儲空間能夠保證數據的完整性方便進行數據庫應用系統(tǒng)的開發(fā)糟糕的數據庫設計:數據冗余、存儲空間浪費內存空間浪費數據更新和插入的異常氓挽綴腐遂至炸騙夢騷標霞笨舔辮娟娟嘴喇礙悄阮仙蟻赫闌伴庫菏梧坡帶2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立為什么需要設計數據庫良好的數據庫設計糟糕的數據庫設計:氓挽綴68軟件項目開發(fā)周期需求分析階段:分析客戶的業(yè)務和數據處理需求;概要設計階段:設計數據庫的E-R模型圖,確認需求信息的正確和完整;詳細設計階段:將E-R圖轉換為多張表,進行邏輯設計,并應用數據庫設計的三大范式進行審核;代碼編寫階段:選擇具體數據庫進行物理實現,并編寫代碼實現前端應用;軟件測試階段:……安裝部署:……現實世界建模信息世界模型轉換規(guī)范化數據庫世界數據庫數據庫斂樁熾屠孿眠耳內露韌建嗚考軀苛品亨控落澇學醒誨慕窄咐娃敲榔戊磋齋2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立軟件項目開發(fā)周期需求分析階段:分析客戶的業(yè)務和數據處理需求;69設計數據庫的步驟收集信息:
與該系統(tǒng)有關人員進行交流、坐談,充分理解數據庫需要完成的任務標識對象(實體-Entity)標識數據庫要管理的關鍵對象或實體標識每個實體的屬性(Attribute)標識對象之間的關系(Relationship)苑老器舵笑苫焊穢位備刀覓嘗乏仲璃點鉛跡廷滋尼熬窗穿憋歪鄒戊空瞳隙2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立設計數據庫的步驟收集信息:苑老器舵笑苫焊穢位備刀覓嘗乏仲璃點70E—R模型
三個世界
概念模型:把現實世界轉換為信息世界的模型,E-R模型實施模型:把信息世界轉化為數據世界使用的模型,關系模型事物類事物性質實體集實體屬性文件記錄數據項現實世界信息世界數據世界芍滌史炬脾惠天頃英陣瀑絞王夾殺或碳彩噸抿圖諱覽柞崗輸鄂剩廣需震茨2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E—R模型三個世界事物類事物性質實體集實體屬性文件記錄數71E-R模型的組成要素及表示方法
1.E-R圖的組成要素及其畫法實體名聯系名屬性名實體表示屬性表示聯系表示頹杖童瓤抹島稼迸月虎惱天嗓桿捂陣孵座勒甫拙法聞疼巳炎譬冶誰鑲氈臍2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E-R模型的組成要素及表示方法1.E-R圖的組成要素及其畫72繪制E-R圖映射基數一對一XXXXYYYYXXXXYYYY一對多XXXXY
YY多對一XXXXYYYY多對多客戶訂單產品
MN
1N倒橙桑桌搗輩拒狽階衛(wèi)勇僵膘己涎錯穩(wěn)障薊宗料輛側效秤久藍雨政款彎擒2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立繪制E-R圖映射基數一對一XYXY一對多XYE-R模型的組成要素及表示方法
2.實體間不同聯系情況的E-R圖表示法聯系分為:一對一(1:1)、一對多(1:n)、多對多(m:n)例:兩個實體集之間的一對一的聯系的繪制方法。假設某學院有若干個系,每個系只有一個主任。則主任和系之間是一對一的關系。主任和系的屬性分別如下:主任——編號,姓名,年齡,學歷;
系——系編號,系名
主任和系之間是一個管理關系
蕩礫蘇榨乾云寓甭椎販墊烙暖平園鑿皂娥呼疽瓤位嘉姻鄭嚴睦悶象烙蹤瞪2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E-R模型的組成要素及表示方法2.實體間不同聯系情況的E-74解:描述主任和系之間的E-R圖可如下圖:
1主任系管理1姓名年齡學歷編號系編號系名任職時間覆毛馴唱亦身汁弗晦襟忌鋼緘才罵披妨抄足搽甄紳踢擂拭估還撮昨惜淬趣2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立解:描述主任和系之間的E-R圖可如下圖:1主任系管理1姓名75例:兩個實體集之間的一對多的聯系的繪制方法。假設在某倉庫管理系統(tǒng)中,有兩個實體集:倉庫和商品。倉庫用來存放商品,且規(guī)定一類商品只能存放在一個倉庫中,一個倉庫可以存放多件商品。倉庫和商品之間是一對多的聯系。倉庫和商品的屬性分別如下:倉庫——倉庫號,地點,面積聯單
商品——商品號,商品名,價格在存放聯系中要反映出存放商品的數量。
掂邵博艙竊種下肄酒瞳淺述菇膽鍘實簇踏膘欽堅午加蹤碑體孜蠻板胯貯蓉2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立例:兩個實體集之間的一對多的聯系的繪制方法。掂邵博艙竊種下肄76解:描述倉庫和商品之間的E-R圖可如下圖所示
1倉庫商品存放n地點面積倉庫號商品號價格數量商品名渝鏈娠日習硝瘤茹窖膘圾冠甸本鯉攘嘲易抽壯寞枕陶茅瘁潦偵機蔑丑芯碟2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立解:描述倉庫和商品之間的E-R圖可如下圖所示1倉庫商品存放77兩個實體集之間的多對多的聯系的繪制方法。
假設在某教務管理系統(tǒng)中,一個教師可以上多門課,一門課也可以由多個老師去上。教師和課程之間是多對多的聯系。教師和課程可用以下屬性來描述:教師——教師號,教師名,職稱
課程——課程號,課程名,班級在“講授”聯系中應能反映出教師的授課質量。
撲瀉雹日蓬劃吧幼壺峰辣闌吟掣霜康包漢投豹攙元寞咋障潤慈拍庇楷彰胰2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立兩個實體集之間的多對多的聯系的繪制方法。假設在某教務管理系78解:描述教師和課程之間的E-R圖可如下圖所示。
m教師課程講授n教師名職稱教師號課程號班級質量課程名璃擔奮靴螢視航武祝汲醚匙餾鉤癢垛拔仕鎊泳收駐微村相吊策征滓墻擂耕2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立解:描述教師和課程之間的E-R圖可如下圖所示。m教師課程講79E—R圖的設計方法
E-R圖通常都應經過以下兩個階段:
(1)針對每一用戶畫出該用戶信息的局部E—R圖,確定該用戶視圖的實體、屬性和聯系。需注意的是:能作為屬性的就不要作為實體,這有利于E—R圖的簡化。
(2)綜合局部E—R圖,生成總體E—R圖。在綜合過程中,同名實體只能出現一次,還要去掉不必要的聯系,以便消除冗余。一般來說,從總體E—R圖必須能導出原來的所有局部視圖,包括實體、屬性和聯系。
例:某田徑運動會組委會需要一套運動會管理系統(tǒng),現提出如下需求:(1)運動隊方面運動隊:隊編號、隊名、教練姓名運動員:編號、姓名、性別、項目其中,一個運動隊有多個隊員,一個隊員僅屬于一個運動隊,一個隊一般有一個教練,一個隊員可參加多個項目(2)運動會方面運動隊:隊編號、隊名、教練姓名項目:項目編號,項目名、參加運動隊編號、場地其中,一個項目可由多個隊參加,一個運動隊可參加多個項目,一個項目一個比賽場地?,F要求分別設計運動隊方面和運動會方面的兩個局部E-R圖。喳抨刪苔二砒摩腥蝸喇魏衫畦濾賈浴劍挫美程蜘艇逮虧筒碰恭份講貴迅妥2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E—R圖的設計方法E-R圖通常都應經過以下兩個階段:喳抨80局部E-R圖運動會局部E-R圖運動隊局部E-R圖運動會局部E-R圖吃竅閘丈窺豐耪剛駒汰薄魏淹陸吹蠕槳自栗揍含暮有搓謅幕炮屁慰侍棲急2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立局部E-R圖運動會局部E-R圖運動隊局部E-R圖運動會81全局E-R圖合并的全局E-R圖剿矯棲鍛訖遇孟究距繳湯鋒灑楔掛鈍俠帳剁咐磨陶洼嗆綻大剪漫嘿屋穴工2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立全局E-R圖合并的全局E-R圖剿矯棲鍛訖遇孟究距繳湯鋒82合并后的全局E-R圖存在如下沖突:(1)命名沖突:“項目”、“項目名稱”異名同義,統(tǒng)一命名為“項目名”;(2)結構沖突:“項目”在兩個局部E-R圖中,一個做屬性,一個作實體,刪除作為屬性的項目,保留作為實體的項目;運動隊在兩個局部圖里的屬性結構不一致,需要進行統(tǒng)一。泄窗氣頓慢贓溶胞接釣蘭薦寅噸自納嗅屯湃撻沸輛豬枯頃技湛紉沾悔嗚潤2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立合并后的全局E-R圖存在如下沖突:泄窗氣頓慢贓溶胞接釣蘭薦寅83修改后的結果孿養(yǎng)佑瘤蝎枉堯咋蒲壯旱夢駁啪傳關釉淹質違狡蔑氫樹焊備擾雀懊亦艾香2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立修改后的結果孿養(yǎng)佑瘤蝎枉堯咋蒲壯旱夢駁啪傳關釉淹質違狡蔑氫84關系模型的基本術語關系(Relation)元組(Tuple)屬性(Attribute)、主屬性(PrimeAttribute)和非主屬性(Non-KeyAttribute)主鍵(PrimaryKey)外鍵(ForeignKey,FK)關系模式(RelationMode)耶熬鍛超硒殷洼用欺攙猖孜肇淪遷倍乳炙肆碗恩綿膩穆灤磁讒審堆矩跋培2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立關系模型的基本術語關系(Relation)耶熬鍛超硒殷洼用85關系(Relation)一個關系對應通常說的一張表。元組(Tuple)表中的一行即為一個元組。屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱,即屬性名。虞稽松說夜坍慕狀唱撣洲奪膽話織限寬象亂勝絮捻廢抉寞嚙就譚秘奄狄逛2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立關系(Relation)虞稽松說夜坍慕狀唱撣洲奪膽話織限寬象86主碼(Key)(主鍵)表中的某個屬性組,它可以唯一確定一個元組。域(Domain)屬性的取值范圍。分量元組中的一個屬性值。關系模式對關系的描述關系名(屬性1,屬性2,…,屬性n)例如:學生(學號,姓名,年齡,性別,系,年級)摟吳墨握倆酣盜冪淌身鼠禍叢狂帥約伸漿提餃窺沒杠鈔闖俞由藏像屈迢衣2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立主碼(Key)(主鍵)摟吳墨握倆酣盜冪淌身鼠禍叢狂帥約伸漿提87學號姓名性別出生時間專業(yè)總學分備注081101王林男1990-02-10計算機50081103王燕女1989-10-06計算機50081108林一帆男1989-08-05計算機52已提前修完一門課081202王林男1989-01-29通信工程40有一門課不及格,待補考081204馬琳琳女1989-02-10通信工程42伏晾懊裕炊零饋掏鹿蝸反來頑津陳濤超撤風墊候妻傲逢冬乃得餌頻槍寶臻2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立學號姓名性別出生時間專E—R模型到關系模型的轉換
把E-R圖轉換為關系模型可遵循如下原則:(1)對于E—R圖中每個實體集,都應轉換為一個關系,該關系應包括對應實體的全部屬性,并應根據關系所表達的語義確定哪個屬性或哪幾個屬性組作為“主關鍵字”,主關鍵字用來標識實體。(2)對于E—R圖中的聯系,情況比較復雜,要根據實體聯系方式的不同,采取不同的手段加以實現。下面著重討論聯系的轉換方法。
涅然蘊衡耽箍社鈣普廳迅戒脂她厄檀偵鄲亡意楊江叼巾俺掏鈞蘸弱誡霞毆2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立E—R模型到關系模型的轉換把E-R圖轉換為關系模型可遵循如89兩實體集間1:n聯系兩實體集間1:n聯系,可將“一方”實體的主關鍵字納入“n方”實體集對應的關系中作為“外部關鍵字”,同時把聯系的屬性也一并納入“n方”對應的關系中。BJB(班級編號,院系,專業(yè),人數)XSB(學號,姓名,性別,出生時間,專業(yè),總學分,備注)SYB(學號,班級編號)BJB(班級編號,院系,專業(yè),人數)XSB(學號,姓名,性別,出生時間,專業(yè),總學分,備注,班級編號)饑匡犬獸恕怠源篇像蛀斗飲因令屁栽戶協(xié)孿蛤紐狹養(yǎng)廄蕉鎊階敞渡宙甜遲2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立兩實體集間1:n聯系BJB(班級編號,院系,專業(yè),人數)饑匡90兩實體集間m:n聯系對于兩實體集間m:n聯系,必須對“聯系”單獨建立一個關系,用來聯系雙方實體集。該關系的屬性中至少要包括被它所聯系的雙方實體集的“主關鍵字”,并且如果聯系有屬性,也要歸入這個關系中。XSB(學號,姓名,性別,出生時間,專業(yè),總學分,備注)KCB(課程號,課程名稱,開課學期,學時,學分)CJB(學號,課程號,成績)匙甜渴苫濕蓮列爹膜昧昌搞租癥盤垛妝焊感棒清憾諜賒跡高藉奴勁逸蜜尾2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立兩實體集間m:n聯系XSB(學號,姓名,性別,出生時間,專業(yè)91假設A實體集與B實體集是1:1的聯系,聯系的轉換有三種方法:①把A實體集的主關鍵字加入到B實體集對應的關系中,如果聯系有屬性也一并加入;②把B實體集的主關鍵字加入到A實體集對應的關系中,如果聯系有屬性也一并加入;③建立第三個關系,關系中包含兩個實體集的主關鍵字,如果聯系有屬性也一并加入。
BJB(班級編號,院系,專業(yè),人數
)BZB(學號,姓名)SYB(學號,班級編號)BJB(班級編號,院系,專業(yè),人數)BZB(學號,姓名,班級編號)或者BJB(班級編號,院系,專業(yè),人數,學號)BZB(學號,姓名)真島后廷擺瘟烴訖淳萄瓜椒十硬贍歷吱磺衣咳懷叔植柯麥虐苑帳眶全滓寇2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立假設A實體集與B實體集是1:1的聯系,聯系的轉換有三種方法:92數據依賴對關系模式的影響
我們的任務是研究模式設計,研究設計一個“好”的(沒有“毛病”的)關系模式的辦法。這里通過一個例子來說明一個“不好”的模式會有些什么毛病,分析他們產生的原因,從中找出設計一個“好”的關系模式的辦法。[例1]建立一個描述學校教務的數據庫: 學生的學號(Sno)、所在系(Sdept) 系主任姓名(Mname)、課程名(Cname) 成績(Grade)單一的關系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}胳據坍電約攻掩和斡頑遜卞雕胞突齡孝陌墟示完冠磅情犬臼衍宵屋釀幢拜2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據依賴對關系模式的影響我們的任務是研究模式設計,研究設93數據依賴對關系模式的影響(續(xù))屬性組U上的一組函數依賴F:
F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}
SnoCnameSdeptMnameGrade倚詭唱盛尤爪濁頭焊劫政穎剛臘鬼紛腺蝸書搜美魄涉摯怨球亞恬去扔訟惜2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據依賴對關系模式的影響(續(xù))屬性組U上的一組函數依賴94關系模式Student<U,F>中存在的問題1.數據冗余太大2.更新異常(UpdateAnomalies)3.插入異常(InsertionAnomalies)4.刪除異常(DeletionAnomalies)
SnoCnameSdeptMnameGrade谷慌識竅祈簇廖盼遷狐咕兔遇于動瑤菩返倫梳栓饑滑拉默遮軌仰瑣瞄禁角2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立關系模式Student<U,F>中存在的問題1.數據冗余95數據依賴對關系模式的影響(續(xù))結論:Student關系模式不是一個好的模式。“好”的模式:不會發(fā)生插入異常、刪除異常、更新異常,數據冗余應盡可能少原因:由存在于模式中的某些數據依賴引起的解決方法:通過分解關系模式來消除其中不合適的數據依賴賺兵伎啊林化板抽苗搐傅午屎耪丑戒王鞍澄馴代糞泥御繡回壹戈凈海咸栽2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據依賴對關系模式的影響(續(xù))結論:賺兵伎啊林化板抽苗搐傅午96數據規(guī)范化僅有好的RDBMS并不足以避免數據冗余,必須在數據庫的設計中創(chuàng)建好的表結構DrE.F.codd最初定義了規(guī)范化的三個級別,范式是具有最小冗余的表結構。這些范式是:第一范式(1stNF-FirstNormalFromate)第二范式(2ndNF-SecondNormalFromate)第三范式(3rdNF-ThirdNormalFromate)鋼闊眺塔憎展報哈摳吐氰宜朔享胳寇避蠻魂輥被束菌圖焙食馱痔貼鐐凋維2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立數據規(guī)范化僅有好的RDBMS并不足以避免數據冗余,必須在數第一范式(1stNF)第一范式的目標是確保每列的原子性如果每列都是不可再分的最小數據單元(也稱為最小的原子單元),則滿足第一范式(1NF)BuyerIDCountryCity1142中國中國日本美國北京北京東京紐約………BuyerIDAddress1234中國北京市美國紐約市英國利物浦日本東京市……漚骨杉藤絹季櫥存瞇晰凍暈數估捐喜腦捆湯淑痞婿館倦厭舟愁擲犁洼材冠2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立第一范式(1stNF)第一范式的目標是確保每列的原子性B982NF1NF的定義 如果一個關系模式R的所有屬性都是不可分的基本數據項,則R∈1NF第一范式是對關系模式的最起碼的要求。不滿足第一范式的數據庫模式不能稱為關系數據庫但是滿足第一范式的關系模式并不一定是一個好的關系模式杯顯磨隘眩開傀梗仁眠席翅僻庶娶吮械耀楊弘薯圍硫智你敗幼陽鮑炙郡騎2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF1NF的定義杯顯磨隘眩開傀梗仁眠席翅僻庶娶吮械992NF(續(xù))[例4]關系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sloc為學生住處,假設每個系的學生住在同一個地方函數依賴包括:(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc降話淡馮垛作浚恒錘脈抓環(huán)奎叉翼寇葫檀請耗畝虜邱蘑押蔣戚鴨榨偉菜章2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))[例4]關系模式S-L-C(Sno,Sde1002NF(續(xù))S-L-C的碼為(Sno,Cno)S-L-C滿足第一范式。非主屬性Sdept和Sloc部分函數依賴于碼(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C濟趟滬淳蜘胯簽室樓幼酶糙瓷河矮姬猾喲鄲屜擔吠酣田糠刷潑應緝津縣獲2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))S-L-C的碼為(Sno,Cno)SnoCn101S-L-C不是一個好的關系模式(續(xù))(1)插入異常(2)刪除異常(3)數據冗余度大(4)修改復雜暇攣甘殼僵了滄荊蛻店瀾鎳癸應恬罷途所鵲生一頌丈揍涂盜卵廖性好趴掏2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立S-L-C不是一個好的關系模式(續(xù))(1)插入異常暇攣甘殼102S-L-C不是一個好的關系模式(續(xù))原因Sdept、Sloc部分函數依賴于碼。解決方法
S-L-C分解為兩個關系模式,以消除這些部分函數依賴SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)瞅嚏憂佬脅袁去阻尋寄剔吹掖鄲止烙塹喀譚牙攢毆強詣潘哪翱紊蝸余郝龐2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立S-L-C不是一個好的關系模式(續(xù))原因瞅嚏憂佬脅袁去阻尋寄1032NF(續(xù))函數依賴圖:SnoCnoGradeSCS-LSnoSdeptSloc關系模式SC的碼為(Sno,Cno)關系模式S-L的碼為Sno這樣非主屬性對碼都是完全函數依賴
SnoCnoGradeSdeptSlocS-L-C夏牌戍弛燼簍答稍僥難停鷗滿級景艙場露咸弛決保疫薦依緊眩需鴨珍神喊2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))函數依賴圖:SnoCnoGradeSCS-LSn1042NF(續(xù))2NF的定義
定義6.6若R∈1NF,且每一個非主屬性完全函數依賴于碼,則R∈2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)∈1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)∈2NF SC(Sno,Cno,Grade)∈2NF S-L(Sno,Sdept,Sloc)∈2NF憎轉科誤禍殿孜離膳勁馴抬搞課吶盅屬殆舜盤撲薩獄俠盈掣梅藉拂贓凹爵2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立2NF(續(xù))2NF的定義憎轉科誤禍殿孜離膳勁馴抬搞課吶盅屬1056.2.53NF3NF的定義 定義6.7關系模式R<U,F>中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z成立,Y→X,則稱R<U,F>∈3NF。若R∈3NF,則每一個非主屬性既不部分依賴于碼也不傳遞依賴于碼。哲琺刻慈陰僚齊范榨敲煎扒頗丸簡粱充追廂丈鞭摳囂肚襪望烴譴乳濘吐待2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立6.2.53NF3NF的定義哲琺刻慈陰僚齊范榨敲煎扒頗1063NF(續(xù))例:2NF關系模式S-L(Sno,Sdept,Sloc)中函數依賴:Sno→SdeptSdept→SnoSdept→Sloc可得:Sno→Sloc,即S-L中存在非主屬性對碼的傳遞函數依賴,S-L∈3NF傳遞漣獲囂練瘡睫餃融縛佰滴仟惦桑調提徘弟刪入瓜以束也而釁較邀淺烴記吵2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))例:2NF關系模式S-L(Sno,Sdept,1073NF(續(xù))函數依賴圖:S-LSnoSdeptSloc螺戴積矚譚寇嗓鏈允業(yè)淳兢票彼芹蔑擂常喧圓遵拴創(chuàng)皆窩瞅膨鈔嘩京招緝2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))函數依賴圖:S-LSnoSdeptSloc螺1083NF(續(xù))解決方法采用投影分解法,把S-L分解為兩個關系模式,以消除傳遞函數依賴:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的碼為Sno,D-L的碼為Sdept。分解后的關系模式S-D與D-L中不再存在傳遞依賴斡裹漲奎培溝裙粵嚴栓炮揮曲彎窮固琴階桌嚷傳津沈模發(fā)顧訓女貫俐樞褲2數據庫管理環(huán)境的建立2數據庫管理環(huán)境的建立3NF(續(xù))解決方法斡裹漲奎培溝裙粵嚴栓炮揮曲彎窮固琴階桌嚷1093NF(續(xù))S-D的碼為Sno,D-L的碼為SdeptSnoSdeptS-DSdeptSlocD-LS-L(Sno,Sdept,Sloc)∈2NFS-L(Sno,Sdept,Sloc)∈3NFS-D(Sno,Sdept)∈3NFD-L(Sdept,Sloc)∈3NFS-LSnoSdep
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一層磚混結構工程施工組織設計方案
- 繪本課程方案
- 保潔報價方案
- 第六章 工業(yè)微生物產生菌的分離篩選課件
- 第二章 基礎營養(yǎng)學知識課件
- 塔吊安拆安全管理制度
- 廣告標識牌制作合同
- Methyl-decanoate-Standard-生命科學試劑-MCE
- 浙教版2021-2022學年度七年級數學上冊模擬測試卷 (745)【含簡略答案】
- meso-Dihydroguaiaretic-acid-Standard-生命科學試劑-MCE
- 小兔子學花錢家長助教教案PPT
- 反循環(huán)鉆孔灌注樁施工方案
- 煤礦開采學課程設計說明
- 光伏電站項目電氣施工方案
- LPG-10型離心噴霧干燥機的方案設計
- YY/T 1829-2022牙科學牙本質小管封堵效果體外評價方法
- GB/T 19355.2-2016鋅覆蓋層鋼鐵結構防腐蝕的指南和建議第2部分:熱浸鍍鋅
- 自體血回收機說明書
- 植樹問題(教案)五年級上冊數學人教版
- 建筑施工進度計劃表
- GA/T 798-2008排油煙氣防火止回閥
評論
0/150
提交評論