第2章-數(shù)據(jù)庫系統(tǒng)結構_第1頁
第2章-數(shù)據(jù)庫系統(tǒng)結構_第2頁
第2章-數(shù)據(jù)庫系統(tǒng)結構_第3頁
第2章-數(shù)據(jù)庫系統(tǒng)結構_第4頁
第2章-數(shù)據(jù)庫系統(tǒng)結構_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第2章數(shù)據(jù)庫系統(tǒng)結構軟件工程系

劉金嶺1/28/20251

本章主要內(nèi)容

(1)數(shù)據(jù)庫設計中的數(shù)據(jù)描述。

(2)數(shù)據(jù)模型的描述。

(3)數(shù)據(jù)庫的體系結構。

1/28/20252本章的重要概念

概念、邏輯和物理設計中的數(shù)據(jù)描述,數(shù)據(jù)聯(lián)系的描述,數(shù)據(jù)模型的定義,實體間二元聯(lián)系,ER模型,數(shù)據(jù)庫的體系結構,三級結構,兩級映象,兩級數(shù)據(jù)獨立性。1/28/202532.1數(shù)據(jù)描述

概念設計中的數(shù)據(jù)描述邏輯設計中的數(shù)據(jù)描述物理存儲中的數(shù)據(jù)描述數(shù)據(jù)聯(lián)系的描述

1/28/20254概念設計中的數(shù)據(jù)描述數(shù)據(jù)庫的概念設計是根據(jù)用戶的需求設計數(shù)據(jù)庫的概念結構。實體(Entity):

客觀存在、可以相互區(qū)別的事物稱為實體。實體可以是具體的對象,例如一名男學生,一輛汽車等。也可以是抽象的對象,例如一次借書,一場足球比賽等。實體集(EntitySet)性質(zhì)相同的同類實體的集合,稱為實體集。例如所有的男學生,全國足球錦標賽的所有比賽等。有時,在不引起混淆的情況下也稱實體集為實體。屬性(Attribute):

實體有很多特性,每一個特性稱為一個屬性。每一個屬性有一個值域,其類型可以是整數(shù)型、實數(shù)型、字符串型等。例如實體學生有屬性學號、姓名、年齡、性別等。實體標識符(Identifier):

能惟一標識實體的屬性或?qū)傩约Q為實體標識符。有時也稱為關鍵碼(Key),或簡稱為鍵。例如學生的學號可以作為學生實體的標識符。1/28/20255邏輯設計中的數(shù)據(jù)描述數(shù)據(jù)庫的邏輯設計是根據(jù)概念設計得到的,邏輯設計中的術語如下:字段(Field):

標記實體屬性的命名單位稱為字段或數(shù)據(jù)項。它是可以命名的最小信息單位,所以又稱為數(shù)據(jù)元素或數(shù)據(jù)項。字段的命名往往和屬性名相同。例如學生有學號、姓名、年齡、性別等字段。記錄(Record):

字段的有序集合稱為記錄。一般用一個記錄描述一個實體,所以記錄又可以定義為能完整地描述一個實體的字段集。例如一個學生記錄,由有序的字段集組成:學號,姓名,年齡,性別。文件(File):

同一類記錄的集合稱為文件。文件是用來描述實體集的。例如所有的學生記錄組成了一個學生文件。關鍵碼(Key)能惟一標識文件中每個記錄的字段或字段集,稱為記錄的關鍵碼(簡稱為鍵)。1/28/20256概念設計和邏輯設計中兩套術語的對應關系概念設計邏輯設計實體屬性實體集實體標識符記錄字段(或數(shù)據(jù)項)文件關鍵碼在數(shù)據(jù)庫技術中,每個概念都有類型(Type)和值(Value)之區(qū)分。例如“學生”是一個實體類型,而具體的人“張三”、“李四”是實體值。記錄也有記錄類型和記錄值之分。

在不會引起誤解時,不去仔細區(qū)分類型和值,籠統(tǒng)地稱“記錄”。

1/28/20257物理存儲中的數(shù)據(jù)描述數(shù)據(jù)描述有兩種形式:物理描述和邏輯描述。物理數(shù)據(jù)描述指數(shù)據(jù)在存儲設備上的存儲方式的描述,物理數(shù)據(jù)是實際存放在存儲設備上的數(shù)據(jù)。在數(shù)據(jù)庫系統(tǒng)中,邏輯數(shù)據(jù)與物理數(shù)據(jù)之間可以是差別很大的。數(shù)據(jù)庫系統(tǒng)的一個目標是使用戶能簡單、方便、容易地存取數(shù)據(jù),不必關心數(shù)據(jù)庫的存儲結構和具體實現(xiàn)方式。1/28/20258數(shù)據(jù)聯(lián)系的描述(1)在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實體集內(nèi)部的聯(lián)系和實體集之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。兩個實體集之間的聯(lián)系一對一聯(lián)系(1:1):如果對于實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系,記為1:N。實體集A聯(lián)系名實體集B111/28/20259數(shù)據(jù)聯(lián)系的描述(2)一對多聯(lián)系(1:N):如果對于實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系,記為1:N。1N實體集A聯(lián)系名實體集B1/28/202510數(shù)據(jù)聯(lián)系的描述(3)例一對一聯(lián)系一對多聯(lián)系1/28/202511數(shù)據(jù)聯(lián)系的描述(4)多對多聯(lián)系(M:N):如果對于實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有M個實體(M≥0)與之聯(lián)系,則稱實體集A與實體集B具有多對多聯(lián)系,記為M:N。實體集A聯(lián)系名實體集BMN一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)系的特例。

1/28/202512數(shù)據(jù)聯(lián)系的描述(5)例多對多聯(lián)系1/28/202513數(shù)據(jù)聯(lián)系的描述(6)

實體間的聯(lián)系

若實體E1,E2,…,En之間存在聯(lián)系,對于實體Ej與(j=1,2,…,i-1,i+1,…,n)中給定實體,最多只和Ei中的一個實體相聯(lián)系,則說Ei與E1,E2,…,Ej-1,Ej+1,…,En聯(lián)系是一對多的。對于課程、教師與參考書3個實體,如果一門課程可以有若干個教師講授,使用若干本參考書,而每一個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書之間的聯(lián)系是一對多的。

1課程講授教師參考書MN1/28/202514數(shù)據(jù)聯(lián)系的描述(7)有3個實體:供應商、項目、零件,一個供應商可以供給多個項目多種零件,而每個項目可以使用多個供應商供應的零件,每種零件可由不同供應商供給,由此看出供應商、項目、零件三者之間是多對多的聯(lián)系。M供應商供應項目零件NP

3個實體之間多對多的聯(lián)系和3個實體兩兩之間的(共3個)多對多聯(lián)系的語義是不同的。1/28/202515數(shù)據(jù)聯(lián)系的描述(8)單個實體集內(nèi)的聯(lián)系同一個實體集內(nèi)的各實體之間也可以存在一對一、一對多、多對多的聯(lián)系。例如,職工實體集內(nèi)部具有領導與被領導的聯(lián)系,即某一職工(干部)“領導”若干名職工,而一個職工僅被另外一個職工直接領導,因此這是一對多的聯(lián)系。單個實體集之間一對多聯(lián)系示例N1職工領導1/28/2025162.2數(shù)據(jù)模型

數(shù)據(jù)模型的定義實體聯(lián)系模型層次模型

網(wǎng)狀模型

關系模型面向?qū)ο竽P湍鼙硎緦嶓w類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。1/28/202517數(shù)據(jù)模型的定義數(shù)據(jù)模型的種類很多,目前被廣泛使用的可分為兩種類型。一種是獨立于計算機系統(tǒng)的數(shù)據(jù)模型,完全不涉及信息在計算機中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為“概念數(shù)據(jù)模型”;另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結構,它是對現(xiàn)實世界的第二層抽象。這類模型直接與DBMS有關,稱為“邏輯數(shù)據(jù)模型”,簡稱“邏輯模型”。現(xiàn)實世界認識抽象概念模型邏輯模型信息世界機器世界

現(xiàn)實世界中客觀對象的抽象過程1/28/202518實體聯(lián)系模型(1)

ER(實體─聯(lián)系方法)圖提供了表示實體型、屬性和聯(lián)系的方法:

實體型:用矩形表示,矩形框內(nèi)寫明實體名。

屬性:用橢圓形表示,并用無向邊將其與相應的實體型連接起來。例如,學生實體具有學號、姓名、性別、出生年份、系、入學時間等屬性,用ER圖表示如圖所示。學生學號姓名性別系出生年份入學時間1/28/202519實體聯(lián)系模型(2)聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關實體型連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1,1:N或M:N)。需要注意的是,如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來,如右圖。M供應商供應項目零件NP供應量

聯(lián)系的屬性表示1/28/202520實體聯(lián)系模型(3)現(xiàn)以學校的教學情況為例來建立ER圖。教學情況可由學生、課程、教師、學習、任課等組成。學生對課程是多對多聯(lián)系:一個學生可以學多門課程,而一門課程又有多個學生學習;教師對課程是一對多聯(lián)系:一個教師可以講授多門課程,但一門課程至多只能由一個教師任教(當一門課程分別在不同的班開課時,可看做幾門課程,它們的課程名可以相同,但課程號不能相同,用以區(qū)別,這樣就可以滿足一對多的假設)。學號姓名性別年齡學生課程教師學習任課學號課程號成績課程號課程名課時數(shù)課程號姓名姓名性別年齡MNN1一般在劃ER圖時這兩個屬性要去掉!一般在劃ER圖時這兩個屬性要去掉!1/28/202521層次模型(1)

層次數(shù)據(jù)模型的數(shù)據(jù)結構

在數(shù)據(jù)庫中定義滿足下面兩個條件的基本層次聯(lián)系的集合為層次模型。有且只有一個結點沒有雙親結點,這個結點稱為根結點;根以外的其他結點有且只有一個雙親結點。每個記錄類型可包含若干個字段。這里,記錄類型描述的是實體,字段描述實體的屬性。各個記錄類型及其字段都必須命名。各個記錄類型、同一記錄類型中各個字段不能同名。每個記錄類型可以定義一個排序字段,也稱為碼字段,如果定義該排序字段的值是唯一的,則它能唯一地標識一個記錄值。R1R2R3R4R5根節(jié)點葉節(jié)點葉節(jié)點葉節(jié)點兄弟節(jié)點兄弟節(jié)點樹形結構圖1/28/202522層次模型(2)

層次模型的優(yōu)點主要有:

⑴層次模型的數(shù)據(jù)結構比較簡單清晰。⑵層次數(shù)據(jù)庫的查詢效率高。因為層次模型中記錄之間的聯(lián)系用有向邊表示,這種聯(lián)系在DBMS中常常用指針來實現(xiàn)。因此這種聯(lián)系也就是記錄之間的存取路徑。當要存取某個結點的記錄值,DBMS就沿著這一條路徑很快找到該記錄值,所以,層次數(shù)據(jù)庫的查詢性能優(yōu)于關系數(shù)據(jù)庫,不低于網(wǎng)狀數(shù)據(jù)庫。⑶層次數(shù)據(jù)模型提供了良好的完整性支持。1/28/202523層次模型(3)層次模型的缺點主要有

⑴現(xiàn)實世界中很多聯(lián)系是非層次型的,如結點之間具有多對多聯(lián)系。⑵一個結點具有多個雙親等,層次模型表示這類聯(lián)系的方法很笨拙,只能通過引入冗余數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)結構(引入虛擬結點)來解決。對插入和刪除操作的限制比較多,因此應用程序的編寫比較復雜。⑶查詢子女結點必須通過雙親結點。⑷由于結構嚴密,層次命令趨于程序化。1/28/202524網(wǎng)狀模型(1)網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結構在數(shù)據(jù)庫中,把滿足以下兩個條件的基本層次聯(lián)系集合稱為網(wǎng)狀模型:允許一個以上的結點無雙親;一個結點可以有多于一個的雙親。網(wǎng)狀數(shù)據(jù)模型的優(yōu)點:⑴能夠更為直接地描述現(xiàn)實世界,如一個結點可以有多個雙親。結點之間可以有多種聯(lián)系。⑵具有良好的性能,存取效率較高。1/28/202525網(wǎng)狀模型(2)網(wǎng)狀數(shù)據(jù)模型的缺點主要有:⑴結構比較復雜,而且隨著應用環(huán)境的擴大,數(shù)據(jù)庫的結構就變得越來越復雜,不利于最終用戶掌握。⑵網(wǎng)狀模型的DDL、DML復雜,并且要嵌入某一種高級語言(如COBOL、C)中。因此用戶不易掌握和使用。⑶由于記錄之間的聯(lián)系是通過存取路徑實現(xiàn)的,應用程序在訪問數(shù)據(jù)時必須選擇適當?shù)拇嫒÷窂剑虼耍脩舯仨毩私庀到y(tǒng)結構的細節(jié)。這樣就加重了編寫應用程序的負擔。1/28/202526關系模型(1)關系數(shù)據(jù)模型的數(shù)據(jù)結構

從用戶觀點看,關系模型由一組關系組成。每個關系的數(shù)據(jù)結構是一張規(guī)范化的二維表。學號姓名年齡性別系名年級200912004王小明19女計算機系2009200912006黃大鵬20男數(shù)學系2009200912008張文斌18女經(jīng)管系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)關系術語一般表格術語關系名關系模式關系元組屬性屬性名屬性值分量非規(guī)范關系表名表頭(表格的描述)(一張)二維表記錄或行列列名列值一條記錄中的一個列值表中有表(大表中嵌有小表)關系和現(xiàn)實生活中的表格所使用的術語做一個粗略的對比如下:1/28/202529關系模型(4)關系數(shù)據(jù)模型具有下列優(yōu)點:⑴關系模型與非關系模型不同,它是建立在嚴格的數(shù)學概念的基礎上的。⑵關系模型的概念單一。無論實體還是實體之間的聯(lián)系都用關系來表示。對數(shù)據(jù)的檢索和更新結果也是關系(即表)。所以其數(shù)據(jù)結構簡單、清晰,用戶易懂易用。⑶關系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。關系數(shù)據(jù)模型最主要的缺點是:由于存取路徑對用戶透明,查詢效率往往不如非關系數(shù)據(jù)模型。1/28/202530面向?qū)ο竽P?1)面向?qū)ο蟮幕靖拍顚ο螅∣bject):對象是現(xiàn)實世界中實體的模型化,與記錄概念相仿,但遠比記錄復雜。每個對象有一個惟一的標識符,把狀態(tài)(State)和行為(Behavior)封裝(Encapsulate)在一起。其中,對象的狀態(tài)是該對象屬性值的集合,對象的行為是在對象狀態(tài)上操作的方法集。類(Class):將屬性集和方法集相同的所有對象組合在一起,構成了一個類。類的屬性值域可以是基本數(shù)據(jù)類型(整型、實型、字符串型),也可以是記錄類型和集合類型。也就是類可以有嵌套結構。系統(tǒng)中所有的類組成了一個有根的有向無環(huán)圖,叫類層次。1/28/202531面向?qū)ο竽P?2)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的優(yōu)點:

⑴能有效地表達客觀世界和有效地查詢信息:面向?qū)ο蠓椒ňC合了在關系數(shù)據(jù)庫中發(fā)展的全部工程原理、系統(tǒng)分析、軟件工程和專家系統(tǒng)領域的內(nèi)容。⑵可維護性好:在耦合性和內(nèi)聚性方面,面向?qū)ο髷?shù)據(jù)模型的性能尤為突出。⑶能很好地解決“阻抗不匹配”(impedancemismatch)問題:應用程序語言與數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)類型支持的不一致問題,這一問題通常稱之為阻抗不匹配問題。1/28/202532面向?qū)ο竽P?3)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的缺點:⑴技術還不成熟:面向?qū)ο竽P瓦€存在著標準化問題,是否修改SQL以適應面向?qū)ο蟮某绦颍€是用新的對象查詢語言來代替它,目前還沒有解決。⑵面向?qū)ο笙到y(tǒng)開發(fā)的有關原理才剛開始,只是具有雛形,還需要一段時間的研究。但在可靠性、成本等方面還是令人可以接受的。⑶理論還需完善:到現(xiàn)在為止沒有關于面向?qū)ο蠓治龅囊惶浊逦母拍钅P停鯓釉O計獨立于物理存儲的信息還不明確。1/28/2025332.3數(shù)據(jù)庫的體系結構

主要內(nèi)容三級模式結構

三級結構和兩級映像

兩級數(shù)據(jù)獨立性從數(shù)據(jù)庫管理系統(tǒng)的抽象層次看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結構1/28/202534三級模式結構(1)數(shù)據(jù)庫的體系結構分成三級:外部級(External)、概念級(Conceptual)和內(nèi)部級(Internal)。這個結構稱為“數(shù)據(jù)庫的體系結構”,有時亦稱為“三級模式結構”,或“數(shù)據(jù)抽象的三個級別”。從某個角度看到的數(shù)據(jù)特性,稱為“數(shù)據(jù)視圖”(DataView)。外部級最接近用戶,是單個用戶能看到的數(shù)據(jù)特性。概念級涉及到所有用戶的數(shù)據(jù)定義,也就是全局性的數(shù)據(jù)視圖。內(nèi)部級最接近于物理存儲設備,涉及到物理數(shù)據(jù)存儲的結構。數(shù)據(jù)庫的三個模式結構是對數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給DBMS去做,用戶只要抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的表示和存儲。1/28/202535三級模式結構(2)數(shù)據(jù)庫系統(tǒng)的三級模式結構如下圖:應用A應用B應用C應用D應用E外模式1外模式2外模式3模式內(nèi)模式數(shù)據(jù)庫外模式/模式映像內(nèi)模式/模式映像外部級最接近用戶,是單個用戶能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。概念級涉及到所有用戶的數(shù)據(jù)定義,也就是全局性的數(shù)據(jù)視圖。全局數(shù)據(jù)視圖的描述稱為“概念模式”,也稱為“模式”。內(nèi)部級最接近于物理存儲設

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論