《數(shù)據(jù)庫應用AnApplicationofDatabaseSystem》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)庫應用AnApplicationofDatabaseSystem(50頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫應用An Application of Database System主講:陳昌平 實驗總結(jié)主要錯誤 1、不能為某數(shù)據(jù)類型指定列寬,如int、text、datetime等數(shù)據(jù)類型。 2、沒有創(chuàng)建db_teaching_data.mdf文件。原因:filename的路徑不在同一行。 3、其他錯誤:如標點符號錯誤,正確的應該在英文狀態(tài)下輸入標點。 數(shù)據(jù)庫系統(tǒng)基本概念上次課所建表的表結(jié)構如何來的? Why?四個基本概念數(shù)據(jù) 數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)管理的發(fā)展歷程和數(shù)據(jù)庫發(fā)展歷史數(shù)據(jù)模型邏輯結(jié)構設計 數(shù)據(jù)庫的三級模式結(jié)構數(shù)據(jù)庫的三級模式:外模式、概念模式、內(nèi)模式什么是模式呢?模式就是
2、數(shù)據(jù)的一種抽象描述。內(nèi)模式是數(shù)據(jù)庫中數(shù)據(jù)的存儲結(jié)構、存儲方法、存取策略等的描述,也稱物理模式、存儲模式概念模式是數(shù)據(jù)庫中數(shù)據(jù)的邏輯結(jié)構的描述,也稱模式、概念結(jié)構。 外模式是單個用戶用到的數(shù)據(jù)邏輯結(jié)構的抽象,通常也稱視圖、子模式。 數(shù)據(jù)庫的三級模式結(jié)構 數(shù)據(jù)庫的三級模式結(jié)構一個數(shù)據(jù)庫只有一個內(nèi)模式,一個概念模式,但可以有多個外模式。實際的物理數(shù)據(jù)庫與內(nèi)模式對應,用戶使用外模式。 數(shù)據(jù)庫的三級模式結(jié)構數(shù)據(jù)庫管理系統(tǒng)(DBMS),不僅提供三級模式的定義語言,而且還提供了三級模式之間相互轉(zhuǎn)換的機制,即二級映射機制。二級映射即外模式到模式的轉(zhuǎn)換,表示為“外模式/模式”映射,模式到內(nèi)模式的轉(zhuǎn)換,表示為“模
3、式/內(nèi)模式” 映射。 數(shù)據(jù)庫的三級模式結(jié)構外模式/模式映射,定義了外模式到模式之間的對應關系。是在外模式中定義的。模式/內(nèi)模式映射,定義了模式到內(nèi)模式之間的對應關系。在模式中描述的。 數(shù)據(jù)模型在數(shù)據(jù)庫中用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實世界的模擬數(shù)據(jù)模型應滿足三方面要求能比較真實地模擬現(xiàn)實世界容易為人所理解便于在計算機上實現(xiàn) 數(shù)據(jù)模型的組成要素數(shù)據(jù)結(jié)構 :對系統(tǒng)靜態(tài)特性的描述與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關和與數(shù)據(jù)之間聯(lián)系有關的對象的集合。數(shù)據(jù)結(jié)構包括兩方面的內(nèi)容,一是數(shù)據(jù)本身,如關系模型中的關系、域、屬性等;二是數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)操作 :系統(tǒng)動態(tài)
4、特性的描述對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作及有關的操作規(guī)則檢索、更新(包括插入、刪除、修改)數(shù)據(jù)的約束條件 一組完整性規(guī)則的集合 數(shù)據(jù)模型數(shù)據(jù)模型分成兩個不同的層次 (1) 概念數(shù)據(jù)模型 也稱信息模型,它是按用戶的觀點來對數(shù)據(jù)和信息建模。 (2) 結(jié)構數(shù)據(jù)模型 主要包括網(wǎng)狀模型、層次模型、關系模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。 概念數(shù)據(jù)模型基本概念 E-R模型邏輯結(jié)構設計 概念數(shù)據(jù)模型信息世界中的基本概念(1) 實體(Entity)客觀存在并可相互區(qū)別的事物稱為實體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個
5、實體可以由若干個屬性來刻畫。屬性有“型”和“值”之分。(3) 碼(Key)(候選碼)唯一標識實體的屬性集稱為碼。 概念數(shù)據(jù)模型信息世界中的基本概念(4)域(Domain) 屬性的取值范圍稱為該屬性的域。(5) 實體型(Entity Type)用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型如學生(學號,姓名,年齡,性別,系)就是一個實體型。(6) 實體集(Entity Set) 同型實體的集合稱為實體集例如,全體學生就是一個實體集。 概念數(shù)據(jù)模型信息世界中的基本概念(7) 聯(lián)系(Relationship) 現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系
6、實體型間聯(lián)系 兩個實體型 一對一聯(lián)系(1:1) 三個實體型 一對多聯(lián)系(1:n) 一個實體型 多對多聯(lián)系(m:n) 概念數(shù)據(jù)模型一對一聯(lián)系一對多聯(lián)系多對多聯(lián)系班級班級-班長 班長111:1聯(lián)系課程選修學生mnm:n聯(lián)系班級組成學生1n1:n聯(lián)系 概念數(shù)據(jù)模型聯(lián)系一對一聯(lián)系:如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系。記為1:1。一對多聯(lián)系:如果對于實體集A中的每一個實體,實體集B中有n個實體(n0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系。記為1:n。
7、多對多聯(lián)系:如果對于實體集A中的每一個實體,實體集B中有n個實體(n0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m0)與之聯(lián)系,則稱實體集A與實體B具有多對多聯(lián)系。記為m:n 概念模型的表示方法E-R模型概念模型的表示方法很多實體聯(lián)系方法實體聯(lián)系方法(E-R方法)用E-R圖來描述現(xiàn)實世界的概念模型 E-R方法也稱為E-R模型 概念模型的表示方法E-R模型實體型:用矩形表示,矩形框內(nèi)寫明實體名。屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來。學生教師學生 學號年齡性別姓名 概念模型的表示方法E-R模型聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別
8、與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1、1:n或m:n) 聯(lián)系的屬性:聯(lián)系本身也是一種實體型,也可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來 概念模型的表示方法E-R模型班級班級-班長 班長111:1聯(lián)系班級組成學生1n1:n聯(lián)系課程選修學生mnm:n聯(lián)系 概念模型的表示方法E-R模型課程講授教師1m多個實體型間的1:n聯(lián)系參考書n課程選修學生mn成績 概念模型的表示方法E-R模型 班級正班長學號 姓名屬于院系專業(yè)編號人數(shù) 概念模型的表示方法E-R模型 學生班級班號班級名稱班級人數(shù)屬于學號姓名性別年齡籍貫 概念模型的表示方法E-R模型 學生課程課程
9、號 課程名 學分選課學號姓名性別年齡籍貫成績 常用結(jié)構數(shù)據(jù)模型非關系模型層次模型(Hierarchical Model)網(wǎng)狀模型(Network Model )數(shù)據(jù)結(jié)構:以基本層次聯(lián)系為基本單位關系模型(Relational Model)數(shù)據(jù)結(jié)構:表面向?qū)ο竽P?Object Oriented Model)數(shù)據(jù)結(jié)構:對象 結(jié)構數(shù)據(jù)模型關系模型關系模型的基本概念1、關系 一個關系就是一張二維表,通常將一個沒有重復行、重復列的二維表看成一個關系,每個關系都有一個關系名。2、元組 二維表的每一行在關系中稱為元組(Tuple)。一行描述了現(xiàn)實世界中的一個實體,或者描述了不同實體間的一種聯(lián)系。3、屬性
10、二維表的每一列在關系中稱為屬性(Attribute),每個屬性都有一個屬性名,各個屬性的取值稱為屬性值。每個屬性有一定的取值范圍,稱為值域。 結(jié)構數(shù)據(jù)模型關系模型關系模型的基本概念4、關鍵字 關系中能惟一區(qū)分、確定不同元組的屬性或?qū)傩越M合,稱為該關系的一個關鍵字。關鍵字又稱為鍵或碼(Key)。5、外部關鍵字 如果關系中某個屬性或?qū)傩越M合并非關鍵字,但卻是另一個關系的主關鍵字,則稱此屬性或?qū)傩越M合為本關系的外部關鍵字或外鍵(Foreign Key)。在關系數(shù)據(jù)庫中,用外部關鍵字表示兩個表間的聯(lián)系。 結(jié)構數(shù)據(jù)模型關系模型關系模型的基本概念6、關系模式對關系的描述關系名(屬性1,屬性2,屬性n)學生
11、(學號,姓名,年齡,性別,系,年級)7、目或度(Degree):設有關系R(D1,D2,Dn ),這里的R表示關系的名字,n是關系的目或度。 結(jié)構數(shù)據(jù)模型關系模型關系數(shù)據(jù)模型的數(shù)據(jù)操縱與完整性約束 關系數(shù)據(jù)模型的操縱主要包括查詢、插入、刪除和更新數(shù)據(jù)。這些操作必須滿足關系的完整性約束條件。關系的完整性約束條件包括三大類:實體完整性、參照完整性和用戶定義的完整性。其具體含義將在后面介紹。關系數(shù)據(jù)模型的存儲結(jié)構 在關系數(shù)據(jù)模型中,實體及實體間的聯(lián)系都用表來表示。在數(shù)據(jù)庫的物理組織中,表以文件形式存儲,每一個表通常對應一種文件結(jié)構。 結(jié)構數(shù)據(jù)模型關系模型 關系數(shù)據(jù)庫關系數(shù)據(jù)庫系統(tǒng)是支持關系數(shù)據(jù)模型的
12、數(shù)據(jù)庫系統(tǒng)。關系數(shù)據(jù)庫應用數(shù)學方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。該數(shù)據(jù)庫由多個關系模型即多個表組成。表中列定義事物的屬性,行保存該事物的屬性所對應的所有數(shù)據(jù)。關系數(shù)據(jù)庫管理系統(tǒng)RDBMS如著名的IBM DB2,Oracle,Ingres,SYBASE,Informix,COBASE, PBASE,EasyBase, DM/2, OpenBase等。 關系數(shù)據(jù)庫中的基本概念記錄表中的一行數(shù)據(jù)稱為記錄字段表中的屬性,屬性是列的定義主鍵外鍵索引搜索時的排列順序 練習1:設計E-R模型 為某連鎖商店設計一個E-R模型。該企業(yè)下有若干連鎖店,每家商店有若干職工,但每個職工只能服務于一家商店。其中商店實體型的屬性
13、包括商店號、商店名、地址、店長。商品型實體的屬性包括商品號、商品名、規(guī)格、單價、產(chǎn)地。職工實體型的屬性包括職工號、姓名、性別、工資,在聯(lián)系中應反映出職工參加某商店的開始時間、商店銷售商品的月銷售量。 數(shù)據(jù)庫系統(tǒng)終端用戶終端用戶終端用戶應用系統(tǒng)應用開發(fā)工具 數(shù)據(jù)庫管理系統(tǒng)操作系統(tǒng) 數(shù)據(jù)庫數(shù)據(jù)庫管理員 硬件應用系統(tǒng)開發(fā)程序員 數(shù)據(jù)庫設計流程 數(shù)據(jù)庫設計流程需求分析概念模式設計邏輯模式設計數(shù)據(jù)庫實施E/R圖RDBMS 模式存儲模式數(shù)據(jù)庫運行和維護 邏輯結(jié)構設計P911用E-R圖描述實體集與實體集之間的聯(lián)系,目的是以E-R 圖為工具,設計關系型數(shù)據(jù)庫,確定應用系統(tǒng)所使用的數(shù) 據(jù)庫應該有哪些表,每個表應
14、該有什么。任務將實體和實體的屬性及實體間的聯(lián)系轉(zhuǎn)換為關系模式確定關系模式的屬性和碼 邏輯結(jié)構設計經(jīng)理(經(jīng)理姓名,民族,住址,出生年月,電話)公司(公司名稱,注冊地,類型,電話)學生(學號,姓名,民族,出生年月,班號)班級(班號,名稱,年級,系,專業(yè)) 邏輯結(jié)構設計(E-R到關系模式)1:1 11經(jīng) 理公 司領 導經(jīng)理姓 名住 址出生年月電 話民 族公司名 稱電 話類 型注冊地 邏輯結(jié)構設計(E-R到關系模式)1:1法則1:聯(lián)系單獨對應關系模式,由聯(lián)系的屬性,參與聯(lián)系的各實體集的主碼構成該關系模式的屬性,其主碼可選參與實體集的任一方主碼。法則2:聯(lián)系不單獨對應關系模型,聯(lián)系的屬性以及一方的主碼加
15、入另一方實體集對應的關系模式中。 邏輯結(jié)構設計(E-R到關系模式)1:1經(jīng)理(經(jīng)理姓名,民族,住址,出生年月,電話)公司(公司名稱,注冊地,類型,電話)法則1:經(jīng)理(經(jīng)理姓名,民族,住址,出生年月,電話)公司(公司名稱,注冊地,類型,電話)領導(公司名稱,經(jīng)理姓名)法則2:經(jīng)理(經(jīng)理姓名,民族,住址,出生年月,電話,公司名稱)公司(公司名稱,注冊地,類型,電話)或者:經(jīng)理(經(jīng)理姓名,民族,住址,出生年月,電話) 公司(公司名稱,注冊地,類型,電話,經(jīng)理姓名) 邏輯結(jié)構設計(E-R到關系模式)1:N1n學 生班 級屬 于姓 名學 號民 族出生年 月名 稱班 號系年 級專 業(yè) 邏輯結(jié)構設計(E-R
16、到關系模式)1:N法則1:聯(lián)系單獨對應關系模式,由聯(lián)系的屬性,參與聯(lián)系的各實體集的主碼構成該 關系模式的屬性,N端的主碼作為該關系模型主碼。法則2:聯(lián)系不單獨對應關系模型,將聯(lián)系的屬性以及1端的主碼加入N端實體集對應的關系模式中,主碼仍為N端主碼。 邏輯結(jié)構設計(E-R到關系模式)1:N學生(學號,姓名,民族,出生年月,班號)班級(班號,名稱,年級,系,專業(yè))法則1:學生(學號,姓名,民族,出生年月,班號)班級(班號,名稱,年級,系,專業(yè))聯(lián)系(學號,班號)法則2:學生(學號,姓名,民族,出生年月,班號,班號)班級(班號,名稱,年級,系,專業(yè)) 邏輯結(jié)構設計(E-R到關系模式)M:N學 習m
17、n學 生學 號姓 名出生 年月民 族課程號課程名學時數(shù)課程成績 邏輯結(jié)構設計(E-R到關系模式)M:N法則:聯(lián)系單獨對應一個關系模式,該關系模式包括聯(lián)系的屬性,參與聯(lián)系的各實體集的主碼,該關系模式的主碼由各實體集的主碼屬性共同組成。 學生(學號,姓名,民族,出生年月)課程(課程號,課程名,學時數(shù))學習(學號,課程號,成績) 練習2:將E-R模型轉(zhuǎn)換成關系模式集,并指出主碼和外碼。 為某連鎖商店下有若干連鎖店,每家商店有若干職工,但每個職工只能服務于一家商店。其中商店實體型的屬性包括商店號、商店名、地址、店長。商品型實體的屬性包括商品號、商品名、規(guī)格、單價、產(chǎn)地。職工實體型的屬性包括職工號、姓名、性別、工資,在聯(lián)系中應反映出職工參加某商店的開始時間、商店銷售商品的月銷售量。 參考答案法則1商店(商店號,商店名,地址,店長)商品(商品號,商品名,規(guī)格,單價,產(chǎn)地)職工(職工號,姓名,性別,工資)銷售(商店號,商品號,月銷售量)聘用(職工號,商店號,聘用日期)法則2商店(商店號,商店名,地址,店長)商品(商品號,商品名,規(guī)格,單價,產(chǎn)地)職工(職工號,姓名,性別,工資,商店號,聘用日期)銷售(商店號,商品號,月銷售量)