《MSSQL數據庫培訓-數據庫建模.pptx》由會員分享,可在線閱讀,更多相關《MSSQL數據庫培訓-數據庫建模.pptx(22頁珍藏版)》請在裝配圖網上搜索。
1、MS SQL數據庫開發(fā)培訓數據庫建模主講人:黃浩 內容數據庫建模概述1數據庫E-R圖2數據庫范式3完整性約束4建模工具介紹5 建模的實質u數據庫的結構,也稱為數據庫模式u將現實世界中客觀存在的事物以數據形式存儲到計算機中并進行處理,就需要對其進行分析、抽象、進而確定數據的結構以及數據間的內在聯系,這一過程稱為數據建模u模型是對不能直接觀察的事物進行形象的描述和模擬u數據庫建模步驟: 建模的實質信息結構化數據 人是無羽毛的兩足動物姓名性別出生年月血型籍貫張小美美女1988-08-08AB杭州 建模的問題我怎么知道建立哪些模型?模型和模型之間是否存在關系?如何有效的將信息結構化模型?模型的屬性如何
2、正確確認?如何有效的管理模型?建模的那些問題 內容數據庫建模概述1數據庫E-R圖2數據庫范式3完整性約束4建模工具介紹5 E-R圖u實體-聯系圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯系的方法,用來描述現實世界的概念模型具有相同屬性的實體具有相同的特征和性質,用實體名及其屬性名集合來抽象和刻畫同類實體聯系也稱關系,信息世界中反映 實體內部或實體之間的聯系。實體內部的聯系通常是指組成實體的各屬性之間的聯系;實體之間的聯系通常是指不同實體集之間的聯系聯系要素屬性實體型實體所具有的某一特性,一個實體可由若干個屬性來刻畫 聯系的類型丈 夫妻 子婚 姻父
3、親生 育子 女 教 師教 學學 生 一個簡單的大學選課數據庫,涉及如下數據: 學生Student:學號SNo、姓名Sname、年齡Age、性別Ssex、系別Dept; 課程Course:課程號Cno、課程名CName、課程學分Credit; 教師Teacher:教師姓名Tname、教師性別Tsex、職稱Post;系別Dept:系別編號Dno,系別名DName、系別電話DTel,系別地址DAddr;一個學生可以選修多門課,每門課可以由多個學生選修;一位教師可講授多門課程,每門課程可由多位教師講授,學生在選課的同時可以選老師,學生選修課程會有成績Score。 E-R圖舉例CNoSNSNo Scor
4、e CNStudent CourseBelong TeachSupplyDepart TeacherChoose 內容數據庫建模概述1數據庫E-R圖2數據庫范式3完整性約束4建模工具介紹5 范式綜述無重復的列非碼屬性必須完全依賴于碼非主屬性不依賴于其它非主屬性任何非主屬性不能對主鍵子集依賴 禁止主鍵列和非主鍵列一對多關系不受約束將表分割成盡可能小的塊,為了排除在表中所有的冗余消除了數據冗余、更新異常、插入異常和刪除異常 第一范式u所謂第一范式(1NF)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性u在任何一個關系數據庫中,
5、第一范式(1NF)是對關系模式的設計基本要求,一般設計中都必須滿足第一范式(1NF) 第二范式u在一范式(1NF)的基礎上,非碼屬性必須完全依賴于碼u第二范式(2NF)要求數據庫表中的每個實例或記錄必須可以被唯一地區(qū)分。選取一個能區(qū)分每個實體的屬性或屬性組,作為實體的唯一標識。u第二范式(2NF)要求實體的屬性完全依賴于主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那么這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一標識。 u第二范式就是在第一范式的基礎上屬性完全依賴于主
6、鍵 第二范式應用舉例u把所有信息放到一個表中(學號, 課程) (姓名, 年齡, 成績, 學分)(學號,學生姓名、年齡、性別、課程、課程學分、系別、學科成績,系辦地址、系辦電話)同一門課程由n個學生選修,學分 就重復n-1次;同一個學生選修了m門課程,姓名和年齡就重復了m-1次若調整了某門課程的學分,數據表中所有行的學分值都要更新假設一批學生已經完成課程的選修,這些選修記錄就應該從數據庫表中刪除。但是,與此同時,課程名稱和學分信息也被刪除了。很顯然,這也會導致插入異常更新異常刪除異常數據冗余 第二范式舉例(學號,姓名、年齡、性別、課程、課程學分、系別、學科成績、系辦地址、系辦電話)(學號,姓名、
7、年齡、性別、系別、系辦地址、系辦電話)學生:(課程、課程學分)課程:(學號,課程、學科成績)成績: 第三范式u在1NF基礎上,任何非主屬性不依賴于其它非主屬性u第三范式(3NF)要求一個關系中不包含已在其它關系已包含的非主關鍵字信息。u第三范式就是屬性不依賴于其它非主屬性,也就是在滿足2NF的基礎上,任何非主屬性不得傳遞依賴于主屬性。(學號,姓名、年齡、性別、系別、系辦地址、系辦電話)學生: (學號,姓名、年齡、性別、系別)學生:(系別、系辦地址、系辦電話)院系: 內容數據庫建模概述1數據庫E-R圖2數據庫范式3完整性約束4建模工具介紹5 完整性約束要求某個屬性的值必須處于特定的范圍內或者取自
8、特性值的集合在實體集的范圍內唯一標識一個實體的屬性或屬性集。一個類中的任何兩個對象在構成鍵碼的屬性集上的取值決不能相同一個實體中某個特定屬性或屬性集(通常稱為外鍵碼)的 取值,如果不是空值,則只能引用另一個確實存在的鍵碼屬性或屬性集的值 內容數據庫建模概述1數據庫E-R圖2數據庫范式3完整性約束4建模工具介紹5 建模工具uSybase PowerDesigner - 一個高端數據建模工具。uERWin - 一個高端數據建模工具。uRational Rose Enterprise - 一個高端UML工具,恰如其分的數據庫建模支持。uVisio Professional - 一個價格低廉的繪圖工具,可用來生成數據模型、UML圖等。企業(yè)版還支持針對各種數據庫的雙向工程能力。uERD Tool List -http:/ u 一個關于各種數據庫和UML建模工具的鏈接和資源的清單。 聯系交流方式:u Email:u QQ:275126625u手機:13713567052