資源描述:
《北大青鳥數(shù)據(jù)庫課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第一章數(shù)據(jù)庫的設(shè)計(jì)課程地位C#SQLServerXMLPSPMASP.NETOracleOOADComputerBaseHTMLJavaScriptSQLBaseOOPJavaCSTBJSP/ServletEJB/WebServiceWinFormsStruts/JSFTesting/SQALinux2課程內(nèi)容回顧數(shù)據(jù)庫有哪些基本操作?建庫建表加約束創(chuàng)建登錄帳戶基本的數(shù)據(jù)操縱語句有哪些?語法是?增(INSERT)刪(DELETE)改(UPDATE)查(SELECT)常用的聚合函數(shù)有哪些?表連接分為哪幾種類型?
2、3課程目標(biāo)了解設(shè)計(jì)數(shù)據(jù)庫的基本步驟熟練使用T-SQL實(shí)現(xiàn)建庫、建表、加約束掌握T-SQL編程,實(shí)現(xiàn)功能強(qiáng)大的查詢掌握創(chuàng)建索引、視圖,快速訪問數(shù)據(jù)庫掌握創(chuàng)建存儲(chǔ)過程,實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)規(guī)則理解觸發(fā)器的原理,實(shí)現(xiàn)高級的約束4本章目標(biāo)了解設(shè)計(jì)數(shù)據(jù)庫的步驟掌握如何繪制數(shù)據(jù)庫的E-R圖理解數(shù)據(jù)庫的規(guī)范化-三大范式5為什么需要設(shè)計(jì)數(shù)據(jù)庫2-1修建茅屋需要設(shè)計(jì)嗎?修建大廈需要設(shè)計(jì)嗎?結(jié)論:當(dāng)數(shù)據(jù)庫比較復(fù)雜時(shí)我們需要設(shè)計(jì)數(shù)據(jù)庫6為什么需要設(shè)計(jì)數(shù)據(jù)庫2-2良好的數(shù)據(jù)庫設(shè)計(jì):節(jié)省數(shù)據(jù)的存儲(chǔ)空間能夠保證數(shù)據(jù)的完整性方便進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)的
3、開發(fā)糟糕的數(shù)據(jù)庫設(shè)計(jì):數(shù)據(jù)冗余、存儲(chǔ)空間浪費(fèi)內(nèi)存空間浪費(fèi)數(shù)據(jù)更新和插入的異常7軟件項(xiàng)目開發(fā)周期需求分析階段:分析客戶的業(yè)務(wù)和數(shù)據(jù)處理需求;概要設(shè)計(jì)階段:設(shè)計(jì)數(shù)據(jù)庫的E-R模型圖,確認(rèn)需求信息的正確和完整;詳細(xì)設(shè)計(jì)階段:將E-R圖轉(zhuǎn)換為多張表,進(jìn)行邏輯設(shè)計(jì),并應(yīng)用數(shù)據(jù)庫設(shè)計(jì)的三大范式進(jìn)行審核;代碼編寫階段:選擇具體數(shù)據(jù)庫進(jìn)行物理實(shí)現(xiàn),并編寫代碼實(shí)現(xiàn)前端應(yīng)用;軟件測試階段:……安裝部署:……現(xiàn)實(shí)世界建模信息世界數(shù)據(jù)庫世界模型轉(zhuǎn)換規(guī)范化8設(shè)計(jì)數(shù)據(jù)庫的步驟4-1收集信息:與該系統(tǒng)有關(guān)人員進(jìn)行交流、坐談,充分理解數(shù)據(jù)庫需要
4、完成的任務(wù)BBS論壇的基本功能:用戶注冊和登錄,后臺數(shù)據(jù)庫需要存放用戶的注冊信息和在線狀態(tài)信息;用戶發(fā)貼,后臺數(shù)據(jù)庫需要存放貼子相關(guān)信息,如貼子內(nèi)容、標(biāo)題等;論壇版塊管理:后臺數(shù)據(jù)庫需要存放各個(gè)版塊信息,如版主、版塊名稱、貼子數(shù)等;9設(shè)計(jì)數(shù)據(jù)庫的步驟4-2標(biāo)識對象(實(shí)體-Entity)標(biāo)識數(shù)據(jù)庫要管理的關(guān)鍵對象或?qū)嶓w實(shí)體一般是名詞:用戶:論壇普通用戶、各版塊的版主。用戶發(fā)的主貼用戶發(fā)的跟貼(回貼)版塊:論壇的各個(gè)版塊信息10設(shè)計(jì)數(shù)據(jù)庫的步驟4-3論壇用戶:呢稱密碼電子郵件生日性別用戶的等級備注信息注冊日期狀態(tài)積分
5、主貼發(fā)貼人發(fā)貼表情回復(fù)數(shù)量標(biāo)題正文發(fā)貼時(shí)間點(diǎn)擊數(shù)狀態(tài):最后回復(fù)時(shí)間回貼貼子編號回貼人,回貼表情標(biāo)題正文回貼時(shí)間點(diǎn)擊數(shù)版塊版塊名稱版主本版格言點(diǎn)擊率發(fā)貼數(shù)標(biāo)識每個(gè)實(shí)體的屬性(Attribute)11設(shè)計(jì)數(shù)據(jù)庫的步驟4-4標(biāo)識對象之間的關(guān)系(Relationship)跟貼和主貼有主從關(guān)系:我們需要在跟貼對象中表明它是誰的跟貼;版塊和用戶有關(guān)系:從用戶對象中可以根據(jù)版塊對象查出對應(yīng)的版主用戶的情況;主貼和版塊有主從關(guān)系:需要表明發(fā)貼是屬于哪個(gè)版塊的;跟貼和版塊有主從關(guān)系:需要表明跟貼是屬于哪個(gè)版塊的;12繪制E-R圖4
6、-1E-R(Entity-Relationship)實(shí)體關(guān)系圖符合含義實(shí)體,一般是名詞屬性,一般是名詞關(guān)系,一般是動(dòng)詞13繪制E-R圖4-2管理bbsUser(用戶,版主)……出生日期昵稱版塊名稱版主……bbsSection(版塊)14繪制E-R圖4-3映射基數(shù)一對一XXXXYYYYXXXXYYYY一對多XXXXYYY多對一XXXXYYYY多對多客戶訂單產(chǎn)品1NMN15繪制E-R圖1111M1MMMM用戶積分性別用戶等級備注信息注冊日期版塊名稱本版留言發(fā)貼數(shù)狀態(tài)密碼昵稱電子郵件生日論壇用戶(BBSUser)管理發(fā)
7、表發(fā)表跟隨屬于屬于點(diǎn)擊率版主標(biāo)題發(fā)貼人貼子編號正文點(diǎn)擊率版塊(BBSSection)發(fā)貼(BBSTopic)發(fā)貼人正文狀態(tài)貼子編號所在版塊最后回復(fù)時(shí)間發(fā)貼表情回復(fù)數(shù)量點(diǎn)擊率發(fā)貼時(shí)間標(biāo)題M跟貼(BBSReply)所在版塊發(fā)貼時(shí)間最后回復(fù)時(shí)間發(fā)貼表情1論壇E-R圖16如何將E-R圖轉(zhuǎn)換為表3-1將各實(shí)體轉(zhuǎn)換為對應(yīng)的表,將各屬性轉(zhuǎn)換為各表對應(yīng)的列標(biāo)識每個(gè)表的主鍵列,需要注意的是:沒有主鍵的表添加ID編號列,它沒有實(shí)際含義,用于做主鍵或外鍵,例如用戶表中的“UID”列,版塊表中添加“SID”列,發(fā)貼表和跟貼表中的“TID
8、”列在表之間建立主外鍵,體現(xiàn)實(shí)體之間的映射關(guān)系17如何將E-R圖轉(zhuǎn)換為表3-2UID主鍵TID主鍵RID主鍵SID主鍵18如何將E-R圖轉(zhuǎn)換為表添加各表之間的關(guān)系19數(shù)據(jù)規(guī)范化僅有好的RDBMS并不足以避免數(shù)據(jù)冗余,必須在數(shù)據(jù)庫的設(shè)計(jì)中創(chuàng)建好的表結(jié)構(gòu)DrE.F.codd最初定義了規(guī)范化的三個(gè)級別,范式是具有最小冗余的表結(jié)構(gòu)。這些范式是:第一范式(1stNF-FirstNo