數(shù)據(jù)庫課件第1章 數(shù)據(jù)庫概述_第1頁
數(shù)據(jù)庫課件第1章 數(shù)據(jù)庫概述_第2頁
數(shù)據(jù)庫課件第1章 數(shù)據(jù)庫概述_第3頁
數(shù)據(jù)庫課件第1章 數(shù)據(jù)庫概述_第4頁
數(shù)據(jù)庫課件第1章 數(shù)據(jù)庫概述_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章數(shù)據(jù)庫基礎(chǔ)學(xué)習(xí)目標了解什么是數(shù)據(jù)庫熟悉數(shù)據(jù)庫的基本概念熟練數(shù)據(jù)庫的技術(shù)構(gòu)成熟悉關(guān)系數(shù)據(jù)庫的基本理論熟悉數(shù)據(jù)庫設(shè)計的流程本章節(jié)次

數(shù)據(jù)庫基本概念1.1

關(guān)系型數(shù)據(jù)庫1.2

數(shù)據(jù)庫設(shè)計1.3

1.4

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)數(shù)據(jù)是數(shù)據(jù)庫的基本對象,是描述事物的符號記錄。數(shù)據(jù)的類型有很多,如文本、圖形、圖像、音頻、視頻等都是數(shù)據(jù),他們經(jīng)過數(shù)字化處理后存入計算機。1.1.1數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)數(shù)據(jù)是數(shù)據(jù)庫的基本對象,是描述事物的符號記錄。數(shù)據(jù)的類型有很多,如文本、圖形、圖像、音頻、視頻等都是數(shù)據(jù),他們經(jīng)過數(shù)字化處理后存入計算機。1.1.1數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)庫數(shù)據(jù)庫就是存放數(shù)據(jù)的倉庫。嚴格的講,數(shù)據(jù)庫是長期儲存在計算機內(nèi)、有組織、可共享的大量數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。數(shù)據(jù)庫的特點包括:實現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)冗余;采用特定的數(shù)據(jù)類型;具有較高的數(shù)據(jù)獨立性;具有統(tǒng)一的數(shù)據(jù)控制功能。1.1.1數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)庫數(shù)據(jù)庫就是存放數(shù)據(jù)的倉庫。嚴格的講,數(shù)據(jù)庫是長期儲存在計算機內(nèi)、有組織、可共享的大量數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。數(shù)據(jù)庫的特點包括:實現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)冗余;采用特定的數(shù)據(jù)類型;具有較高的數(shù)據(jù)獨立性;具有統(tǒng)一的數(shù)據(jù)控制功能。1.1.1數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)簡稱(DBMS)按一定的數(shù)據(jù)模型組織數(shù)據(jù)形成數(shù)據(jù)庫,并對數(shù)據(jù)庫進行管理。簡單地說,DBMS就是管理數(shù)據(jù)庫的系統(tǒng),它是位于用戶和操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫系統(tǒng)管理員(DatabaseAdministrator,DBA)通過DBMS對數(shù)據(jù)庫進行管理。目前,比較流行的DBMS有:Oracle、SQLServer、MySQL、Sybase、DB2等。其中,Oracle是目前最流行的大型關(guān)系數(shù)據(jù)庫管理系統(tǒng)。1.1.1數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)與操作數(shù)據(jù)庫的應(yīng)用程序,加上支撐它們的硬件平臺、軟件平臺和數(shù)據(jù)庫有關(guān)的人員一起構(gòu)成了一個完成的數(shù)據(jù)庫系統(tǒng)。如圖1.1.描述了數(shù)據(jù)庫系統(tǒng)的構(gòu)成。1.1.1數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫基本概念1.1數(shù)據(jù)(Data)是描述事物的符號記錄,模型(Model)是現(xiàn)實世界的抽象。數(shù)據(jù)模型(DataModel)是數(shù)據(jù)特征的抽象。數(shù)據(jù)模型從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供了一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。1.1.2數(shù)據(jù)模型

數(shù)據(jù)庫基本概念1.1概念模型概念模型(ConceptualDataModel),是一種面向用戶、面向客觀世界的模型,主要用來描述世界的概念化結(jié)構(gòu)。數(shù)據(jù)庫的設(shè)計人員在設(shè)計的初始階段可以使用概念模型,借此擺脫計算機系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等。概念模型主要用于描述數(shù)據(jù)以及數(shù)據(jù)間的聯(lián)系,與具體的數(shù)據(jù)管理系統(tǒng)無關(guān)。概念數(shù)據(jù)模型必須轉(zhuǎn)換成邏輯數(shù)據(jù)模型,才能在DBMS中實現(xiàn)。1.1.2數(shù)據(jù)模型

數(shù)據(jù)庫基本概念1.1概念模型概念模型用于信息世界的建模,一方面應(yīng)該具有較強的語義表達能力,能夠方便直接表達應(yīng)用中的各種語義知識,另一方面它還應(yīng)該簡單、清晰、易于用戶理解。在概念數(shù)據(jù)模型中最常用的是E-R模型、擴充的E-R模型、面向?qū)ο竽P图爸^詞模型。目前較為有名的是E-R模型。1.1.2數(shù)據(jù)模型

數(shù)據(jù)庫基本概念1.1邏輯模型邏輯模型(LogicalDataModel),是一種面向數(shù)據(jù)庫系統(tǒng)的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀數(shù)據(jù)模型、層次數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型、面向?qū)ο蟮臄?shù)據(jù)模型等。此模型既要面向用戶,又要面向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實現(xiàn)。1.1.2數(shù)據(jù)模型

數(shù)據(jù)庫基本概念1.1層次模型層次模型將數(shù)據(jù)組織成一對多關(guān)系的結(jié)構(gòu),采用關(guān)鍵字來訪問其中每一層次的每一部分。其優(yōu)點是存取方便且速度快;結(jié)構(gòu)清晰,容易理解;數(shù)據(jù)修改和數(shù)據(jù)庫擴展容易實現(xiàn);檢索關(guān)鍵屬性十分方便。其缺點是結(jié)構(gòu)呆板,缺乏靈活性;同一屬性數(shù)據(jù)要存儲多次,數(shù)據(jù)冗余大;不適合于拓撲空間數(shù)據(jù)的組織。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1層次模型層次模型實例如圖1.2所示。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1網(wǎng)狀模型網(wǎng)狀模型使用連接指令或指針來確定數(shù)據(jù)間的顯式連接關(guān)系,是具有多對多類型的數(shù)據(jù)組織方式。其優(yōu)點是能明確而方便地表示數(shù)據(jù)間的復(fù)雜關(guān)系;數(shù)據(jù)冗余小。其缺點在于網(wǎng)狀結(jié)構(gòu)過于復(fù)雜,增加了用戶查詢和定位的困難;需要存儲數(shù)據(jù)間聯(lián)系的指針,使得數(shù)據(jù)量增大;數(shù)據(jù)的修改不方便。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1網(wǎng)狀模型網(wǎng)狀模型實例如圖1.3所示。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1關(guān)系模型關(guān)系模型以記錄組或二維數(shù)據(jù)表的形式組織數(shù)據(jù),以便于利用各種實體與屬性之間的關(guān)系進行存儲和變換。從用戶觀點看,關(guān)系模型由一組關(guān)系組成,每個關(guān)系的數(shù)據(jù)結(jié)構(gòu)是一個規(guī)范化的二維表。例如,在描述學(xué)生信息時使用的“學(xué)生”表涉及的主要信息有:學(xué)號、姓名、性別、出生時間、專業(yè)、備注?!罢n程”表涉及的主要信息有課程號、課程名、開課學(xué)期、學(xué)時、學(xué)分?!斑x課”表涉及的主要信息有學(xué)號、課程號和成績。表1.1-表1.3描述了“學(xué)生”、“課程”、“選課”的部分信息。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1關(guān)系模型1.1.3數(shù)據(jù)模庫邏輯模型學(xué)號姓名性別出生時間專業(yè)備注1506101張明磊男19980214計算機系入學(xué)新生1506102路遠才男19990317計算機系入學(xué)新生1506103李琳琳女20000817計算機系入學(xué)新生1506104劉豐男19980909計算機系入學(xué)新生1506105徐崢男20010913計算機系入學(xué)新生學(xué)生表

數(shù)據(jù)庫基本概念1.1關(guān)系模型表格中的一行稱為一個記錄,一列稱為一個字段,每列的標題稱為字段名。如果給每個關(guān)系表取一個名字,則有n個字段的關(guān)系表的結(jié)構(gòu)可表示為:關(guān)系名(字段名1,…,字段名n),通常把關(guān)系表的結(jié)構(gòu)稱為關(guān)系模式。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1關(guān)系模型在關(guān)系表中,如果一個字段或幾個字段組合的值可唯一標識其對應(yīng)記錄,則稱該字段或字段組合為碼。例如,表1.1中“學(xué)號”可唯一標識一個學(xué)生。有時,一個表可能有多個碼。對于一個關(guān)系模式,通??芍付ㄒ粋€碼為“主碼”。在關(guān)系模式中,一般用下劃線標出主碼。如“學(xué)生”表的關(guān)系模式可以表示為:學(xué)生(學(xué)號、姓名、性別、出生時間、專業(yè)、備注)。1.1.3數(shù)據(jù)模庫邏輯模型

數(shù)據(jù)庫基本概念1.1關(guān)系模型關(guān)系模型以記錄組或數(shù)據(jù)表的形式組織數(shù)據(jù),以便于利用各種物理實體與屬性之間的關(guān)系進行存儲和變換,不分層也無指針,是建立空間數(shù)據(jù)和屬性數(shù)據(jù)之間關(guān)系的一種非常有效的數(shù)據(jù)組織方法。優(yōu)點在于結(jié)構(gòu)特別靈活,概念單一,滿足所有布爾邏輯運算和數(shù)學(xué)運算規(guī)則形成的查詢要求;能搜索、組合和比較不同類型的數(shù)據(jù);增加和刪除數(shù)據(jù)非常方便;具有更高的數(shù)據(jù)獨立性、更好的安全保密性。1.1.3數(shù)據(jù)模庫邏輯模型在關(guān)系模型中,數(shù)據(jù)結(jié)構(gòu)表示為一個二維表,一個關(guān)系就是一個二維表,二維表名就是關(guān)系名。表中的第一行通常稱為屬性名,表中的每一個元組和屬性都是不可再分的,且元組的次序是無關(guān)緊要的。其中,二維表中每一行稱為一個記錄,或稱為一個元組。二維表中每一列稱為一個字段,或稱為一個屬性。域,即屬性的取值范圍。所有的數(shù)據(jù)都是通過表來進行存儲的,可以說如果沒有表,數(shù)據(jù)就無法進行存儲和表示。1.2.1二維表

關(guān)系型數(shù)據(jù)庫1.2在關(guān)系模型中,數(shù)據(jù)結(jié)構(gòu)表示為一個二維表,一個關(guān)系就是一個二維表,二維表名就是關(guān)系名。表中的第一行通常稱為屬性名,表中的每一個元組和屬性都是不可再分的,且元組的次序是無關(guān)緊要的。其中,二維表中每一行稱為一個記錄,或稱為一個元組。二維表中每一列稱為一個字段,或稱為一個屬性。域,即屬性的取值范圍。所有的數(shù)據(jù)都是通過表來進行存儲的,可以說如果沒有表,數(shù)據(jù)就無法進行存儲和表示。1.2.1二維表

關(guān)系型數(shù)據(jù)庫1.2關(guān)系模型的完整性規(guī)則是對數(shù)據(jù)的約束。例如,假設(shè)在“成績”表的“成績”上定義了完整性約束,要求該列的值只能是0~100。如果INSERT或者UPDATE語句向該列插入大于100的值,Oracle將回滾語句,并返回錯誤信息。使用完整性約束有如下優(yōu)點:(1)在數(shù)據(jù)庫應(yīng)用的代碼中增強了商業(yè)規(guī)則。(2)使用存儲過程,完成控制對數(shù)據(jù)的訪問。(3)增強了觸發(fā)存儲數(shù)據(jù)庫過程的商業(yè)規(guī)則。1.2.2完整性

關(guān)系型數(shù)據(jù)庫1.2關(guān)系模型提供了三類完整性規(guī)則:(1)域完整性:也稱為列完整性,指定一個數(shù)據(jù)集對某一個列是否有效、確定是否允許空值等。域完整性通常是通過有效性檢查來實現(xiàn)的,還可以通過限制數(shù)據(jù)類型、格式或者可能的取值范圍來實現(xiàn)。1.2.2完整性

關(guān)系型數(shù)據(jù)庫1.2關(guān)系模型提供了三類完整性規(guī)則:(2)實體完整性:也稱為行完整性,要求表中的每一行有一個唯一的標識符,這個標識符就是主關(guān)鍵字。例如,居民身份證號是唯一的,這樣才能唯一地確定某一個人。通過索引、UNIQUE約束、PRIMARYKEY約束可實現(xiàn)數(shù)據(jù)的實體完整性。1.2.2完整性

關(guān)系型數(shù)據(jù)庫1.2關(guān)系模型提供了三類完整性規(guī)則:(3)參照完整性:如果一個表中某列的數(shù)據(jù)的取值范圍是另一個表中的某列,就可以在這兩個表的兩個列之間建立參照完整性。如“成績”表的“學(xué)號”列必須取自“學(xué)生”表的“學(xué)號”。此時兩個表的兩個列之間可以建立外鍵和主鍵的關(guān)系,實現(xiàn)參照完整性。主鍵是指在表中能唯一標識表的每個數(shù)據(jù)行的一個或多個表列。外鍵是指如果一個表中的一個或若干個字段的組合是另一個表的主鍵,則稱該字段或字段組合為該表的外鍵。1.2.2完整性

關(guān)系型數(shù)據(jù)庫1.2構(gòu)造數(shù)據(jù)庫關(guān)系模式時,必須遵循的一些規(guī)則,這些規(guī)則就成為范式。目前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。滿足最低要求的范式是第一范式。在第一范式(1NF)的基礎(chǔ)上進一步滿足更高要求的稱為第二范式(2NF),其余范式以此類推,一般說來,數(shù)據(jù)庫只需滿足第三范式(3NF)即可。其中,第一范式要求最低。1.2.3范式理論

關(guān)系型數(shù)據(jù)庫1.2第一范式:如果關(guān)系模式R的每個關(guān)系r的屬性都是不可再分的數(shù)據(jù)項,那么就稱R是符合第一范式的模式。第一范式是設(shè)計數(shù)據(jù)庫表的最低要求,其最主要的特點就是實體的屬性不能再分,映射到表中,就是列(或字段)不能再分。1.2.3范式理論

關(guān)系型數(shù)據(jù)庫1.2第二范式:是指每個二維表必須有一個(而且僅有一個)數(shù)據(jù)元素為主關(guān)鍵字,其他數(shù)據(jù)元素與主關(guān)鍵字一一對應(yīng)。通常稱這種關(guān)系為函數(shù)依賴(Functionaldependence)關(guān)系,即表中其他數(shù)據(jù)元素都依賴于主關(guān)鍵字,或稱該數(shù)據(jù)元素惟一地被主關(guān)鍵字所標識。1.2.3范式理論

關(guān)系型數(shù)據(jù)庫1.2第二范式是數(shù)據(jù)庫規(guī)范化中所使用的一種正規(guī)形式。它的規(guī)則是要求數(shù)據(jù)表里的所有非主屬性都要和該數(shù)據(jù)表的主鍵有完全依賴關(guān)系;如果有哪些非主屬性只和主鍵的一部份有關(guān)的話,它就不符合第二范式。同時可以得出:如果一個數(shù)據(jù)表的主鍵只有單一一個字段的話,它就一定符合第二范式(前提是該數(shù)據(jù)表符合第一范式)。1.2.3范式理論

關(guān)系型數(shù)據(jù)庫1.2第三范式就是指表中的所有數(shù)據(jù)元素不但要能惟一地被主關(guān)鍵字所標識,而且它們之間還必須相互獨立,不存在其他的函數(shù)關(guān)系。也就是說,對于一個滿足第二范式的數(shù)據(jù)結(jié)構(gòu)來說,表中有可能存在某些數(shù)據(jù)元素依賴于其他非關(guān)鍵字數(shù)據(jù)元素的現(xiàn)象,必須消除。1.2.3范式理論

關(guān)系型數(shù)據(jù)庫1.2SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)是用于關(guān)系數(shù)據(jù)庫查詢的結(jié)構(gòu)化語言。SQL的功能包括數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操縱語言(DML)、數(shù)據(jù)控制語言(DCL)和數(shù)據(jù)查詢語言(DQL)。1.2.4關(guān)系型數(shù)據(jù)庫語言

關(guān)系型數(shù)據(jù)庫1.2(1)數(shù)據(jù)定義語言(DDL)數(shù)據(jù)庫定義語言DDL(DataDefinitionLanguage),是用于描述數(shù)據(jù)庫中要存儲的現(xiàn)實世界實體的語言。下列列出的是主要的數(shù)據(jù)定義語言。CREATETABLE--創(chuàng)建一個數(shù)據(jù)庫表DROPTABLE--從數(shù)據(jù)庫中刪除表ALTERTABLE--修改數(shù)據(jù)庫表結(jié)構(gòu)CREATEVIEW--創(chuàng)建一個視圖DROPVIEW--從數(shù)據(jù)庫中刪除視圖CREATEINDEX--為數(shù)據(jù)庫表創(chuàng)建一個索引DROPINDEX--從數(shù)據(jù)庫中刪除索引1.2.4關(guān)系型數(shù)據(jù)庫語言

關(guān)系型數(shù)據(jù)庫1.2(1)數(shù)據(jù)定義語言(DDL)CREATEPROCEDURE--創(chuàng)建一個存儲過程DROPPROCEDURE--從數(shù)據(jù)庫中刪除存儲過程CREATETRIGGER--創(chuàng)建一個觸發(fā)器DROPTRIGGER--從數(shù)據(jù)庫中刪除觸發(fā)器CREATESCHEMA--向數(shù)據(jù)庫添加一個新模式DROPSCHEMA--從數(shù)據(jù)庫中刪除一個模式CREATEDOMAIN--創(chuàng)建一個數(shù)據(jù)值域ALTERDOMAIN--改變域定義DROPDOMAIN--從數(shù)據(jù)庫中刪除一個域1.2.4關(guān)系型數(shù)據(jù)庫語言

關(guān)系型數(shù)據(jù)庫1.2(2)數(shù)據(jù)操縱語言(DML)數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)是SQL語言中,負責(zé)對數(shù)據(jù)庫對象運行數(shù)據(jù)訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除,是開發(fā)以數(shù)據(jù)為中心的應(yīng)用程序必定會使用到的指令。INSERT--向數(shù)據(jù)庫表添加新數(shù)據(jù)行DELETE--從數(shù)據(jù)庫表中刪除數(shù)據(jù)行UPDATE--更新數(shù)據(jù)庫表中的數(shù)據(jù)1.2.4關(guān)系型數(shù)據(jù)庫語言

關(guān)系型數(shù)據(jù)庫1.2(3)數(shù)據(jù)控制語言(DCL)數(shù)據(jù)控制語言(DCL)是用來設(shè)置或者更改數(shù)據(jù)庫用戶或角色權(quán)限的語句,這些語句包括GRANT、DENY、REVOKE等語句。GRANT--授予用戶訪問權(quán)限D(zhuǎn)ENY--拒絕用戶訪問REVOKE--收回用戶訪問權(quán)限1.2.4關(guān)系型數(shù)據(jù)庫語言

關(guān)系型數(shù)據(jù)庫1.2

(4)數(shù)據(jù)查詢語言(DQL)數(shù)據(jù)查詢語言主要通過SELECT語言實現(xiàn)各種查詢功能。SELECT--從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列1.2.4關(guān)系型數(shù)據(jù)庫語言

關(guān)系型數(shù)據(jù)庫1.2概念結(jié)構(gòu)設(shè)計中采用概念數(shù)據(jù)模型來表示數(shù)據(jù)及數(shù)據(jù)之間的關(guān)聯(lián)。概念數(shù)據(jù)模型是面向數(shù)據(jù)庫用戶的描述實現(xiàn)世界的模型,主要用于描述現(xiàn)實世界的概念化結(jié)構(gòu),它使數(shù)據(jù)庫設(shè)計人員在設(shè)計的初始階段,擺脫計算機系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)無關(guān)。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3E-R模型(實體-聯(lián)系模型)是概念結(jié)構(gòu)設(shè)計中常用的模型。E-R圖是描述E-R模型的主要方式。通常,E-R模型把每一類數(shù)據(jù)對象的個體稱為實體,而每一類對象個體的集合稱為實體集。例如,在學(xué)生選課系統(tǒng)中主要設(shè)計“學(xué)生”、“課程”兩個實體集。其他非主要的實體可以很多,例如班級、班長、任課教師、輔導(dǎo)員等實體。在E-R圖中,實體集采用矩形表示,并在矩形框內(nèi)標明實體名。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3每個實體集涉及的信息項稱為屬性。就“學(xué)生”實體集而言,它的屬性有學(xué)號、姓名、性別、出生時間、專業(yè)和備注。“課程”實體集的屬性有課程號、課程名、開課學(xué)期、學(xué)時和學(xué)分。在E-R圖中,屬性采用橢圓形表示,在框內(nèi)標明屬性名,并將其與其實體用實線連接。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3實體集之間存在各種關(guān)系,通常把這些關(guān)系稱為“聯(lián)系”。如實體集“學(xué)生”和“課程”之間存在“選課”的聯(lián)系。在E-R圖中,聯(lián)系采用菱形表示,可以在菱形框內(nèi)標明聯(lián)系名,并與相關(guān)的兩個實體集采用實線連接。聯(lián)系也可以有屬性。如“選課”聯(lián)系會產(chǎn)生屬性“成績”。另外,還需要在聯(lián)系的實線兩端標明聯(lián)系類型。兩個實體集A和B之間的聯(lián)系可能是以下三種情況之一。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3(1)一對一的聯(lián)系(1∶1)A中的一個實體僅與B中的一個實體相聯(lián)系,B中的一個實體也僅與A中的一個實體相聯(lián)系。例如,“班級”與“正班長”這兩個實體集之間的聯(lián)系是一對一的聯(lián)系,因為一個班只有一個正班長,反過來,一個正班長只屬于一個班。如圖1.4所示。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3(2)一對多的聯(lián)系(1∶n)A中的一個實體可以與B中的多個實體相聯(lián)系,而B中的一個實體僅與A中的一個實體相聯(lián)系。例如,“班級”與“學(xué)生”這兩個實體集之間的聯(lián)系是一對多的聯(lián)系,因為,一個班可有若干學(xué)生,反過來,一個學(xué)生只能屬于一個班。如圖1.5所示。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3(3)多對多的聯(lián)系(m∶n)A中的一個實體可以與B中的多個實體相聯(lián)系,而B中的一個實體也可與A中的多個實體相聯(lián)系。例如,“學(xué)生”與“課程”這兩個實體集之間的聯(lián)系是多對多的聯(lián)系,因為一個學(xué)生可選修多門課程;反過來,一門課程可被多個學(xué)生選修,每個學(xué)生選修了一門課程以后都有一個成績,成績是“選課”聯(lián)系的屬性。如圖1.6所示。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3(3)多對多的聯(lián)系(m∶n)如圖1.6所示。1.3.1概念結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3邏輯結(jié)構(gòu)設(shè)計階段主要負責(zé)設(shè)計數(shù)據(jù)庫的邏輯數(shù)據(jù)模型。邏輯數(shù)據(jù)模型是用戶從數(shù)據(jù)庫所看到的模型,是具體的DBMS所支持的數(shù)據(jù)模型。此模型既要面向用戶,又要面向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)的設(shè)計。上節(jié)中用E-R圖描述的學(xué)生選課系統(tǒng)的概念模型。為了設(shè)計關(guān)系型的學(xué)生選課系統(tǒng)數(shù)據(jù)庫,需要確定包含哪些表,每個表的結(jié)構(gòu)是怎樣的,即確定數(shù)據(jù)庫的關(guān)系模式。通常根據(jù)E-R圖中的三種不同聯(lián)系,將概念模型轉(zhuǎn)換為邏輯模型,及將E-R圖轉(zhuǎn)換為適合的關(guān)系模式。1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.31.(1∶1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(1∶1)的聯(lián)系既可以單獨對應(yīng)一個關(guān)系模式,也可以不單獨對應(yīng)一個關(guān)系模式。(1)聯(lián)系單獨對應(yīng)一個關(guān)系模式,則由聯(lián)系屬性、參與聯(lián)系的各實體集的主碼屬性構(gòu)成關(guān)系模式,可選參與聯(lián)系的實體集的任何一方的主碼作為這個關(guān)系模式的主碼。1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3例如,圖1.4描述的“班級”(Class)與“正班長”(Monitor)實體集通過“屬于”(Own)聯(lián)系的E-R模型可設(shè)計如下關(guān)系模式(下橫線表示該字段為主碼):Class(班級編號,院系,專業(yè),人數(shù)) Monitor(學(xué)號,姓名)Own(學(xué)號,班級編號)1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3(2)聯(lián)系不單獨對應(yīng)一個關(guān)系模式,聯(lián)系的屬性及一方的主碼加入到另一方實體集對應(yīng)的關(guān)系模式中。例如,圖1.4的E-R模型可設(shè)計如下關(guān)系模式:Class(班級編號,院系,專業(yè),人數(shù))Monitor(學(xué)號,姓名,班級編號)或者Class(班級編號,院系,專業(yè),人數(shù),學(xué)號)Monitor(學(xué)號,姓名)1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.32.(1∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(1∶n)的聯(lián)系既可單獨對應(yīng)一個關(guān)系模式,也可以不單獨對應(yīng)一個關(guān)系模式。(1)聯(lián)系單獨對應(yīng)一個關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實體集的主碼屬性構(gòu)成關(guān)系模式,n端的主碼作為該關(guān)系模式的主碼。1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3例如,圖1.5描述的“班級”(Class)與“學(xué)生”(Student)實體集通過“屬于”(Own)聯(lián)系的E-R模型可設(shè)計如下關(guān)系模式:Class(班級編號,院系,專業(yè),人數(shù))Student(學(xué)號,姓名,性別,出生時間,專業(yè),總學(xué)分,備注)Own(學(xué)號,班級編號)1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.3(2)聯(lián)系不單獨對應(yīng)一個關(guān)系模式,則將聯(lián)系的屬性及“1”端的主碼加入n端實體集對應(yīng)的關(guān)系模式中,主碼仍為n端的主碼。例如,圖1.5“班級”(Class)與“學(xué)生”(Student)實體集E-R模型可設(shè)計如下關(guān)系模式:Class(班級編號,院系,專業(yè),人數(shù))Student(學(xué)號,姓名,性別,出生時間,專業(yè),備注,班級編號)1.3.2邏輯結(jié)構(gòu)設(shè)計

數(shù)據(jù)庫設(shè)計1.33.(m∶n)的聯(lián)系的E-R圖到關(guān)系模式

溫馨提示

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

最新文檔

評論

0/150

提交評論