




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章數據庫系統結構軟件工程系
劉金嶺1/28/20251
本章主要內容
(1)數據庫設計中的數據描述。
(2)數據模型的描述。
(3)數據庫的體系結構。
1/28/20252本章的重要概念
概念、邏輯和物理設計中的數據描述,數據聯系的描述,數據模型的定義,實體間二元聯系,ER模型,數據庫的體系結構,三級結構,兩級映象,兩級數據獨立性。1/28/202532.1數據描述
概念設計中的數據描述邏輯設計中的數據描述物理存儲中的數據描述數據聯系的描述
1/28/20254概念設計中的數據描述數據庫的概念設計是根據用戶的需求設計數據庫的概念結構。實體(Entity):
客觀存在、可以相互區別的事物稱為實體。實體可以是具體的對象,例如一名男學生,一輛汽車等。也可以是抽象的對象,例如一次借書,一場足球比賽等。實體集(EntitySet)性質相同的同類實體的集合,稱為實體集。例如所有的男學生,全國足球錦標賽的所有比賽等。有時,在不引起混淆的情況下也稱實體集為實體。屬性(Attribute):
實體有很多特性,每一個特性稱為一個屬性。每一個屬性有一個值域,其類型可以是整數型、實數型、字符串型等。例如實體學生有屬性學號、姓名、年齡、性別等。實體標識符(Identifier):
能惟一標識實體的屬性或屬性集,稱為實體標識符。有時也稱為關鍵碼(Key),或簡稱為鍵。例如學生的學號可以作為學生實體的標識符。1/28/20255邏輯設計中的數據描述數據庫的邏輯設計是根據概念設計得到的,邏輯設計中的術語如下:字段(Field):
標記實體屬性的命名單位稱為字段或數據項。它是可以命名的最小信息單位,所以又稱為數據元素或數據項。字段的命名往往和屬性名相同。例如學生有學號、姓名、年齡、性別等字段。記錄(Record):
字段的有序集合稱為記錄。一般用一個記錄描述一個實體,所以記錄又可以定義為能完整地描述一個實體的字段集。例如一個學生記錄,由有序的字段集組成:學號,姓名,年齡,性別。文件(File):
同一類記錄的集合稱為文件。文件是用來描述實體集的。例如所有的學生記錄組成了一個學生文件。關鍵碼(Key)能惟一標識文件中每個記錄的字段或字段集,稱為記錄的關鍵碼(簡稱為鍵)。1/28/20256概念設計和邏輯設計中兩套術語的對應關系概念設計邏輯設計實體屬性實體集實體標識符記錄字段(或數據項)文件關鍵碼在數據庫技術中,每個概念都有類型(Type)和值(Value)之區分。例如“學生”是一個實體類型,而具體的人“張三”、“李四”是實體值。記錄也有記錄類型和記錄值之分。
在不會引起誤解時,不去仔細區分類型和值,籠統地稱“記錄”。
1/28/20257物理存儲中的數據描述數據描述有兩種形式:物理描述和邏輯描述。物理數據描述指數據在存儲設備上的存儲方式的描述,物理數據是實際存放在存儲設備上的數據。在數據庫系統中,邏輯數據與物理數據之間可以是差別很大的。數據庫系統的一個目標是使用戶能簡單、方便、容易地存取數據,不必關心數據庫的存儲結構和具體實現方式。1/28/20258數據聯系的描述(1)在現實世界中,事物內部以及事物之間是有聯系的,這些聯系在信息世界中反映為實體集內部的聯系和實體集之間的聯系。實體內部的聯系通常是指組成實體的各屬性之間的聯系;實體之間的聯系通常是指不同實體集之間的聯系。兩個實體集之間的聯系一對一聯系(1:1):如果對于實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多聯系,記為1:N。實體集A聯系名實體集B111/28/20259數據聯系的描述(2)一對多聯系(1:N):如果對于實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多聯系,記為1:N。1N實體集A聯系名實體集B1/28/202510數據聯系的描述(3)例一對一聯系一對多聯系1/28/202511數據聯系的描述(4)多對多聯系(M:N):如果對于實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中也有M個實體(M≥0)與之聯系,則稱實體集A與實體集B具有多對多聯系,記為M:N。實體集A聯系名實體集BMN一對一聯系是一對多聯系的特例,而一對多聯系又是多對多聯系的特例。
1/28/202512數據聯系的描述(5)例多對多聯系1/28/202513數據聯系的描述(6)
實體間的聯系
若實體E1,E2,…,En之間存在聯系,對于實體Ej與(j=1,2,…,i-1,i+1,…,n)中給定實體,最多只和Ei中的一個實體相聯系,則說Ei與E1,E2,…,Ej-1,Ej+1,…,En聯系是一對多的。對于課程、教師與參考書3個實體,如果一門課程可以有若干個教師講授,使用若干本參考書,而每一個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯系是一對多的。
1課程講授教師參考書MN1/28/202514數據聯系的描述(7)有3個實體:供應商、項目、零件,一個供應商可以供給多個項目多種零件,而每個項目可以使用多個供應商供應的零件,每種零件可由不同供應商供給,由此看出供應商、項目、零件三者之間是多對多的聯系。M供應商供應項目零件NP
3個實體之間多對多的聯系和3個實體兩兩之間的(共3個)多對多聯系的語義是不同的。1/28/202515數據聯系的描述(8)單個實體集內的聯系同一個實體集內的各實體之間也可以存在一對一、一對多、多對多的聯系。例如,職工實體集內部具有領導與被領導的聯系,即某一職工(干部)“領導”若干名職工,而一個職工僅被另外一個職工直接領導,因此這是一對多的聯系。單個實體集之間一對多聯系示例N1職工領導1/28/2025162.2數據模型
數據模型的定義實體聯系模型層次模型
網狀模型
關系模型面向對象模型能表示實體類型及實體間聯系的模型稱為“數據模型”。1/28/202517數據模型的定義數據模型的種類很多,目前被廣泛使用的可分為兩種類型。一種是獨立于計算機系統的數據模型,完全不涉及信息在計算機中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為“概念數據模型”;另一種數據模型是直接面向數據庫的邏輯結構,它是對現實世界的第二層抽象。這類模型直接與DBMS有關,稱為“邏輯數據模型”,簡稱“邏輯模型”?,F實世界認識抽象概念模型邏輯模型信息世界機器世界
現實世界中客觀對象的抽象過程1/28/202518實體聯系模型(1)
ER(實體─聯系方法)圖提供了表示實體型、屬性和聯系的方法:
實體型:用矩形表示,矩形框內寫明實體名。
屬性:用橢圓形表示,并用無向邊將其與相應的實體型連接起來。例如,學生實體具有學號、姓名、性別、出生年份、系、入學時間等屬性,用ER圖表示如圖所示。學生學號姓名性別系出生年份入學時間1/28/202519實體聯系模型(2)聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體型連接起來,同時在無向邊旁標上聯系的類型(1:1,1:N或M:N)。需要注意的是,如果一個聯系具有屬性,則這些屬性也要用無向邊與該聯系連接起來,如右圖。M供應商供應項目零件NP供應量
聯系的屬性表示1/28/202520實體聯系模型(3)現以學校的教學情況為例來建立ER圖。教學情況可由學生、課程、教師、學習、任課等組成。學生對課程是多對多聯系:一個學生可以學多門課程,而一門課程又有多個學生學習;教師對課程是一對多聯系:一個教師可以講授多門課程,但一門課程至多只能由一個教師任教(當一門課程分別在不同的班開課時,可看做幾門課程,它們的課程名可以相同,但課程號不能相同,用以區別,這樣就可以滿足一對多的假設)。學號姓名性別年齡學生課程教師學習任課學號課程號成績課程號課程名課時數課程號姓名姓名性別年齡MNN1一般在劃ER圖時這兩個屬性要去掉!一般在劃ER圖時這兩個屬性要去掉!1/28/202521層次模型(1)
層次數據模型的數據結構
在數據庫中定義滿足下面兩個條件的基本層次聯系的集合為層次模型。有且只有一個結點沒有雙親結點,這個結點稱為根結點;根以外的其他結點有且只有一個雙親結點。每個記錄類型可包含若干個字段。這里,記錄類型描述的是實體,字段描述實體的屬性。各個記錄類型及其字段都必須命名。各個記錄類型、同一記錄類型中各個字段不能同名。每個記錄類型可以定義一個排序字段,也稱為碼字段,如果定義該排序字段的值是唯一的,則它能唯一地標識一個記錄值。R1R2R3R4R5根節點葉節點葉節點葉節點兄弟節點兄弟節點樹形結構圖1/28/202522層次模型(2)
層次模型的優點主要有:
⑴層次模型的數據結構比較簡單清晰。⑵層次數據庫的查詢效率高。因為層次模型中記錄之間的聯系用有向邊表示,這種聯系在DBMS中常常用指針來實現。因此這種聯系也就是記錄之間的存取路徑。當要存取某個結點的記錄值,DBMS就沿著這一條路徑很快找到該記錄值,所以,層次數據庫的查詢性能優于關系數據庫,不低于網狀數據庫。⑶層次數據模型提供了良好的完整性支持。1/28/202523層次模型(3)層次模型的缺點主要有
⑴現實世界中很多聯系是非層次型的,如結點之間具有多對多聯系。⑵一個結點具有多個雙親等,層次模型表示這類聯系的方法很笨拙,只能通過引入冗余數據(易產生不一致性)或創建非自然的數據結構(引入虛擬結點)來解決。對插入和刪除操作的限制比較多,因此應用程序的編寫比較復雜。⑶查詢子女結點必須通過雙親結點。⑷由于結構嚴密,層次命令趨于程序化。1/28/202524網狀模型(1)網狀數據模型的數據結構在數據庫中,把滿足以下兩個條件的基本層次聯系集合稱為網狀模型:允許一個以上的結點無雙親;一個結點可以有多于一個的雙親。網狀數據模型的優點:⑴能夠更為直接地描述現實世界,如一個結點可以有多個雙親。結點之間可以有多種聯系。⑵具有良好的性能,存取效率較高。1/28/202525網狀模型(2)網狀數據模型的缺點主要有:⑴結構比較復雜,而且隨著應用環境的擴大,數據庫的結構就變得越來越復雜,不利于最終用戶掌握。⑵網狀模型的DDL、DML復雜,并且要嵌入某一種高級語言(如COBOL、C)中。因此用戶不易掌握和使用。⑶由于記錄之間的聯系是通過存取路徑實現的,應用程序在訪問數據時必須選擇適當的存取路徑,因此,用戶必須了解系統結構的細節。這樣就加重了編寫應用程序的負擔。1/28/202526關系模型(1)關系數據模型的數據結構
從用戶觀點看,關系模型由一組關系組成。每個關系的數據結構是一張規范化的二維表。學號姓名年齡性別系名年級200912004王小明19女計算機系2009200912006黃大鵬20男數學系2009200912008張文斌18女經管系2009………………1/28/202527關系模型(2)關系(Relation):一個關系對應通常說的一張表,如表2.2中的這張學生登記表。元組(Tuple)表中的一行即為一個元組。屬性(Attribute):
表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。如這張表有6列,對應6個屬性:學號,姓名,年齡,性別,系名和年級。碼(Key):也稱為碼鍵。表中的某個屬性組,它可以惟一確定一個元組,如表2.2中的學號,可以惟一確定一個學生,也就成為本關系的碼。域(Domain):屬性的取值范圍,如人的年齡一般在1~150歲之間,大學生年齡屬性的域是(14~38),性別的域是(男,女),系名的域是一個學校所有系名的集合。分量元組中的一個屬性值。關系模式:對關系的描述,一般表示為
關系名(屬性l,屬性2,…,屬性n)1/28/202528關系模型(3)關系術語一般表格術語關系名關系模式關系元組屬性屬性名屬性值分量非規范關系表名表頭(表格的描述)(一張)二維表記錄或行列列名列值一條記錄中的一個列值表中有表(大表中嵌有小表)關系和現實生活中的表格所使用的術語做一個粗略的對比如下:1/28/202529關系模型(4)關系數據模型具有下列優點:⑴關系模型與非關系模型不同,它是建立在嚴格的數學概念的基礎上的。⑵關系模型的概念單一。無論實體還是實體之間的聯系都用關系來表示。對數據的檢索和更新結果也是關系(即表)。所以其數據結構簡單、清晰,用戶易懂易用。⑶關系模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫開發建立的工作。關系數據模型最主要的缺點是:由于存取路徑對用戶透明,查詢效率往往不如非關系數據模型。1/28/202530面向對象模型(1)面向對象的基本概念對象(Object):對象是現實世界中實體的模型化,與記錄概念相仿,但遠比記錄復雜。每個對象有一個惟一的標識符,把狀態(State)和行為(Behavior)封裝(Encapsulate)在一起。其中,對象的狀態是該對象屬性值的集合,對象的行為是在對象狀態上操作的方法集。類(Class):將屬性集和方法集相同的所有對象組合在一起,構成了一個類。類的屬性值域可以是基本數據類型(整型、實型、字符串型),也可以是記錄類型和集合類型。也就是類可以有嵌套結構。系統中所有的類組成了一個有根的有向無環圖,叫類層次。1/28/202531面向對象模型(2)面向對象數據庫系統的優點:
⑴能有效地表達客觀世界和有效地查詢信息:面向對象方法綜合了在關系數據庫中發展的全部工程原理、系統分析、軟件工程和專家系統領域的內容。⑵可維護性好:在耦合性和內聚性方面,面向對象數據模型的性能尤為突出。⑶能很好地解決“阻抗不匹配”(impedancemismatch)問題:應用程序語言與數據庫管理系統對數據類型支持的不一致問題,這一問題通常稱之為阻抗不匹配問題。1/28/202532面向對象模型(3)面向對象數據庫系統的缺點:⑴技術還不成熟:面向對象模型還存在著標準化問題,是否修改SQL以適應面向對象的程序,還是用新的對象查詢語言來代替它,目前還沒有解決。⑵面向對象系統開發的有關原理才剛開始,只是具有雛形,還需要一段時間的研究。但在可靠性、成本等方面還是令人可以接受的。⑶理論還需完善:到現在為止沒有關于面向對象分析的一套清晰的概念模型,怎樣設計獨立于物理存儲的信息還不明確。1/28/2025332.3數據庫的體系結構
主要內容三級模式結構
三級結構和兩級映像
兩級數據獨立性從數據庫管理系統的抽象層次看,數據庫系統通常采用三級模式結構1/28/202534三級模式結構(1)數據庫的體系結構分成三級:外部級(External)、概念級(Conceptual)和內部級(Internal)。這個結構稱為“數據庫的體系結構”,有時亦稱為“三級模式結構”,或“數據抽象的三個級別”。從某個角度看到的數據特性,稱為“數據視圖”(DataView)。外部級最接近用戶,是單個用戶能看到的數據特性。概念級涉及到所有用戶的數據定義,也就是全局性的數據視圖。內部級最接近于物理存儲設備,涉及到物理數據存儲的結構。數據庫的三個模式結構是對數據的三個抽象級別。它把數據的具體組織留給DBMS去做,用戶只要抽象地處理數據,而不必關心數據在計算機中的表示和存儲。1/28/202535三級模式結構(2)數據庫系統的三級模式結構如下圖:應用A應用B應用C應用D應用E外模式1外模式2外模式3模式內模式數據庫外模式/模式映像內模式/模式映像外部級最接近用戶,是單個用戶能看到的數據特性。單個用戶使用的數據視圖的描述稱為“外模式”。概念級涉及到所有用戶的數據定義,也就是全局性的數據視圖。全局數據視圖的描述稱為“概念模式”,也稱為“模式”。內部級最接近于物理存儲設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共政策的傳播與影響力試題及答案
- 2024年民族出版社招聘事業編制專業技術人員筆試真題
- 2024年臨沂蒙陰縣教育和體育局引進人才筆試真題
- 善于歸納西方政治制度的明確性試題及答案
- 機電工程用戶體驗設計試題
- 2025年冰雪運動培訓基地智能化管理與創新服務報告
- 軟考網絡工程師考試重點知識匯編試題及答案
- 工業互聯網平臺數據清洗算法在工業互聯網平臺數據管理優化中的應用
- 數據傳輸中的延時分析試題及答案
- 新能源與環保:環保型電力生產與消費模式創新
- 定額〔2025〕1號文-關于發布2018版電力建設工程概預算定額2024年度價格水平調整的通知
- 樓頂發光字制作安裝合同
- 中德材料中英文對照
- 個人租房合同協議書電子版免費下載7篇
- 帶電流互感器三相四線有功電表的接線演示文稿
- 2023年高考全國甲卷數學(理)試卷【含答案】
- 2023年安徽ACM省賽試題
- 2023深圳一模數學試卷及答案
- (完整版)METS醫護英語水平考試
- 車險查勘定損中級培訓水淹車處理指引及定損培訓
- GB/T 25695-2010建筑施工機械與設備旋挖鉆機成孔施工通用規程
評論
0/150
提交評論