數據庫系統原理 課件全套 王勛 第1-10章 概述 -數據庫設計_第1頁
數據庫系統原理 課件全套 王勛 第1-10章 概述 -數據庫設計_第2頁
數據庫系統原理 課件全套 王勛 第1-10章 概述 -數據庫設計_第3頁
數據庫系統原理 課件全套 王勛 第1-10章 概述 -數據庫設計_第4頁
數據庫系統原理 課件全套 王勛 第1-10章 概述 -數據庫設計_第5頁
已閱讀5頁,還剩661頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第1章概述數據→處理→信息→分析/決策

數據庫技術→數據管理最有效的手段。1.1數據庫實例

學生選課數據庫/網上書店數據庫1.2基本知識

數據/數據庫/數據庫管理系統/數據庫系統/數據管理技術1.3數據模型

概念/組成要素/分類1.4數據庫系統的結構

模式結構

/體系結構11.1數據庫實例1.1.1學生選課數據庫2學號SNo姓名SName性別SSex年齡SAge電話SPhone照片SPhoto微信MInfoS00001楊康男2013666612316Xn.jpgXn123456S00002穆念慈女1913666612326Pj.jpgpj234567S00003歐陽克男2513666612336Ws.jpgWs345678S00004周伯通男2213666612346Wd.jpgWd456789表1.1學生Student1.1數據庫實例1.1.1學生選課數據庫3表1.2課程Course課程號CNo課程名CName先修課CPNo開課學期Seme學時Peri學分CredC001高等數學Null1644C002數據庫原理C0033483C003Python語言C00124831.1數據庫實例1.1.1學生選課數據庫4表1.3選課StudentCourse學號SNo課程號CNo成績Grade

學號SNo課程號CNo成績GradeS00001C00199

S00002C00295S00001C00298

S00003C00188S00001C00396

S00003C00389S00002C00198

S00004C002991.1數據庫實例1.1.2電子書店EBook

圖書Book/客戶Cust/出版社Press/購買Buy圖書(書號,書名,作者,社號,版次,定價,進價,售價)Book(BNo,BName,Author,PNo,EditNo,Price,PPrice,SPrice)客戶(戶號,戶名,性別,生日,電話,婚否,照片,郵箱)Cust(CNo,CName,CSex,Birth,Phone,Marry,Photo,Email)出版社(社號,社名,郵編,社址,電話,郵箱,網址)Press(PNo,PName,PCode,PAddr,Phone,Email,HPage)購買(戶號,書號,購買日期)Buy(CNo,BNo,PDate)5圖書Book書號BNo書名BName作者Author社號PNo版次EditNo定價Price進價PPrice售價SPriceISBN978-7-04-040664-1數據庫系統概論王珊ISBN978-7-04539.62025ISBN978-7-302-33894-9Java程序設計教程雍俊海ISBN978-7-3023692636ISBN978-7-5612-2591-2圖像技術韓培友ISBN978-7-56121361216ISBN978-7-5612-2123-1IDL可視化分析韓培友ISBN978-7-56121451922ISBN978-7-5178-0167-2Access數據庫應用韓培友ISBN978-7-81140139.81619ISBN978-7-81140-582-8MySQL實驗指導韓培友ISBN978-7-8114012510156客戶Cust戶號CNo戶名CName性別CSex生日Birth電話Phone婚否Marry照片Photo郵箱EMailC001郭靖男1966-06-0113611122233是二進制數據Hu.Jpg123450@C002黃藥師男1979-09-1013911122233是NULL543210@C003黃蓉女1988-10-0613622233355是NULL122220@C004洪七公男1999-06-1613922233355否NULL222220@C005梅超風女2002-07-1113655566699否NULL345220@C006梅超風女2006-08-0813955566699否NULL562220@7購買Buy戶號CNo書號BNo購買日期PDate

戶號CNo書號BNo購買日期PDateC001ISBN978-7-04-040664-12014-10-26

C002ISBN978-7-04-040664-12014-11-22C001ISBN978-7-302-33894-92014-06-16

C002ISBN978-7-302-33894-92014-08-12C001ISBN978-7-5612-2591-22010-01-12

C003ISBN978-7-5612-2591-22011-11-13C001ISBN978-7-5612-2123-12006-12-01

C005ISBN978-7-5612-2123-12008-10-09C001ISBN978-7-5178-0167-22014-03-19

C006ISBN978-7-5178-0167-22015-06-18C001ISBN978-7-81140-582-82012-09-15

C006ISBN978-7-81140-582-82013-10-178出版社Press社號PNo社名PName郵編PCode社址PAddr電話Phone郵箱EMail網址HPageISBN978-7-04高等教育出版社100120北京市西城區德外大街4號(010)58581118Gjdzfwb@ISBN978-7-302清華大學出版社100084清華大學學研大廈A座(010)62781733e-sale@www.tup.tsinghua.ISBN978-7-115人民郵電出版社100164北京市豐臺區成壽寺路11號(010)81055075Youdianhr@ISBN978-7-5612西北工業大學出版社710072西安市友誼西路127號(029)88493844Fxb@ISBN978-7-81140浙江工商大學出版社310012杭州市教工路198號(0571)8882370361627291@9分析電子書店數據庫:四張表

一張表是否可行?

數據只能以表的形式存儲嗎?

是否存在規范的數據結構來組織數據?思考:使用四張表優于使用一張表?請從多方面進行分析提示:

從數據冗余、插入異常、修改異常、刪除異常等方面分析結論:對于實際應用,設計數據庫中表的個數,規范每個表的屬性個數以及每個屬性的特征要求、約束條件和依賴關系等,最終實現安全穩定合理的數據庫系統。

數據庫技術會給出正確答案!101.2數據庫技術基本知識對象:數據內容:

通過對數據的統一組織和管理,按照指定的數據結構建立相應的數據庫;利用數據庫管理系統實現對數據庫的數據進行添加、修改、刪除、查詢、計算和報表等多功能的應用系統目的:利用數據庫系統實現對數據的處理和分析概念:數據/數據庫/數據庫管理系統/數據庫系統發展:人工管理/文件管理/數據庫系統/數據倉庫DW(數據挖掘DM)/大數據(BigData)111.2.1數據數據(Data):表示客觀事物的符號分類:文本、圖形、圖像、音頻、視頻、動畫等類型

文本→數值、字符、日期、時間、邏輯等類型例如:圖書定價:39.6書名:圖像技術生日:1966年6月6日(1966-6-6)婚否:是照片:Cat.jpg起飛時間:16時16分16秒(16:16:16)等121.2.1數據數值:表示年齡、工資和單價等大小多少的數據。例如:16,-10和26.6。字符:表示人名、地名和物品等名稱的數據。例如:李明、杭州和圖書。日期:表示工作日期、出生日期和入黨日期等數據。例如:2016年6月6日。時間:表示上班時間、休息時間和開飯時間等數據。例如:10:12:19。邏輯:表示是否結婚、是否黨員等邏輯判斷結果的數據。例如:真和假。圖形:表示直線、三角形和圓形等幾何圖形的數據。例如:正方形和五角星。圖像:表示人物照片、風景照片和遙感圖像等數據。例如:貓的照片Cat.jpg。音頻:表示語音、聲效和音樂等數據。例如:一段錄音和飛機起飛的聲音。視頻:表示MTV和電影剪輯等數據。例如:精彩電影剪輯Robot.mpg。動畫:計算機三維動畫的數據。例如:Flash動畫Fly.fla和3D動畫Audi.3ds。13多媒體數據/信息多媒體數據:文本、圖形、聲音、圖像、視頻和動畫等數據的集合,稱為多媒體數據(Multimedia

Data)例如:網站及其網頁和素材信息:信息來源于數據,數據是信息的載體。信息是數據處理后有價值的數據原始數據需要進行數據處理,才能成為真正有價值的信息141.2.2數據庫數據庫(DataBase,DB):長期存儲在計算機內,有組織可共享的大量數據的集合。即:存放數據的電子倉庫。數據庫對所有的數據,按照指定的數據模型實行統一的組織、存儲和管理。數據庫獨立于程序而存在,并提供給不同的用戶共享。

例如:圖書、客戶、出版社和購買等組成電子書店數據庫EBook特點:數據結構化存儲、冗余度低,獨立性高、共享和易擴展等多媒體數據庫(Multimedia

DataBase,MDB):支持多媒體數據的數據庫結果:數據庫是數據的歸宿。數據經過結構化處理,按照統一的數據結構存入數據庫,進而實現數據共享。151.2.3數據庫管理系統數據庫管理系統(DataBaseManagementSystem,DBMS)是提供給用戶,并幫助用戶建立、使用和管理數據庫的軟件系統管理數據的軟件;用于維護數據庫、接受和完成用戶提出的訪問數據庫的請求。例如:微軟公司的SQLServer和Access、甲骨文公司的Oracle、IBM公司的DB2和開源的MySQL等目的:使用數據庫,并對數據庫中的數據進行數據處理和分析,數據庫管理系統是幫助達到這一目的的工具和手段作用:DBMS作為數據庫系統的核心,建立在操作系統OS之上,位于OS與用戶之間的一個數據管理軟件,負責對DB進行統一的管理和控制。保證了數據的安全性和完整性,同時提供了多用戶并發控制和數據恢復機制。科學地組織和存儲數據、高效地獲取和維護數據16數據庫管理系統的功能數據定義:用于定義數據的數據定義語言(DataDefinitionLanguage,DDL),利用DDL可以方便的定義數據庫的數據對象及其關系數據操縱:用于操作數據的數據操縱語言(DataManipulation

Language,DML),利用DML可以靈活方便的對數據庫進行插入、修改、刪除、查詢和報表等操作事務和運行管理:用于實現對數據庫的安全性、完整性、并發性和恢復性等進行保護控制的數據控制語言(DataControlLanguage,DCL),以保證數據的安全和完整組織、存儲和管理數據:實現對數據庫的統一組織、存儲和管理,確定數據庫文件的存儲結構和訪問方式,減少數據冗余,提高數據庫的利用率數據庫的建立和維護:數據定義、操縱、控制和存貯的具體實現;數據庫的備份與重組重構、性能監視與分析等維護任務171.2.4數據庫系統數據庫系統(DataBaseSystem,DBS):在計算機系統中引入數據庫后,由數據庫、數據庫管理系統、開發工具、應用系統、數據庫管理員和用戶等構成的完整系統。組成:由硬件、軟件和人員等三大部分組成硬件:計算機硬件和數據庫專用硬件。計算機硬件:計算機的CPU、內存、硬盤、交換機和路由器等數據庫專用硬件:快速存取數據的磁盤陣列、磁帶陣列或者光盤陣列、快速傳輸設備和數據備份設備等軟件:操作系統(OperatingSystem,OS)、DBMS、開發工具(程序設計語言和專用工具)和應用系統等人員:數據庫設計員、程序員、數據庫管理員和用戶等。181.2.4數據庫系統人員:數據庫設計員、程序員、數據庫管理員和用戶等。數據庫設計員:負責系統的需求分析、性能分析、概念結構、邏輯結構和物理結構設計等。程序員:主要負責應用系統的設計、實現和測試。數據庫管理員(DataBaseAdministrator,DBA):對數據庫進行建立、使用和維護等的專職管理人員。DBA應該與數據庫設計員、程序員和用戶,共同參與數據庫設計。19DBA的職責決定數據庫的信息內容和結構根據存儲的數據,對數據庫的信息內容和結構作統一的結構化處理。決定數據庫的存儲結構和存取策略:確定數據在存儲設備上的存儲結構和存取策略,提高存取效率和存儲空間的利用率。定義數據的安全性和完整性約束:定義用戶對數據庫的存取權限、數據的保密級別和完整性約束條件,從而保證數據庫的安全性和完整性監控數據庫的使用和運行:DBA負責監視數據庫系統運行的整個過程,并且及時處理運行過程中出現的問題。數據庫的改進、重組和重構:分析系統運行的性能指標,根據實際情況,不斷改進數據庫設計。根據影響系統性能的因素,DBA有權定期對數據庫進行重組織和重構造,以提高整個系統的性能。20數據庫系統21用戶1DB…

DBA數據庫專用工具應用系統用戶n程序設計語言DBMSOS開發工具數據庫系統與計算機系統的關系22用戶應用系統開發工具DBMSOS

硬件1.2.5

數據管理技術數據管理技術經歷的階段:人工管理文件管理數據庫系統數據倉庫大數據231.人工管理階段利用原始計算機進行數據處理的初級階段。程序員采用人工方式進行數據處理,數據處理的速度慢,準確性差。數據不保存,沒有結構化

數據一般不予保存,而且沒有經過統一結構化管理數據不能共享

一個應用程序對應一組數據集合,使得數據不能共享應用程序管理數據:計算機沒有相應的軟件管理數據,數據需要應用程序自行管理數據不具獨立性:數據和程序不具有相互獨立性,數據依賴于相應的應用程序。24人工管理階段應用程序與數據集合之間的關系25應用程序1數據集合1應用程序n數據集合n??????2.文件系統階段數據以文件方式存儲,對數據文件進行統一組織、存儲和管理,加快了數據處理速度,提高了準確性。數據可以保存,沒有結構化。數據可以長期保存,仍然沒有經過統一結構化管理。數據不能共享。一個應用程序對應一組文件,使得數據文件不能共享。文件系統管理數據。盡管計算機提供了文件管理系統,對文件進行統一管理,但是每個應用程序仍然只能使用與自己相應的文件組。數據不具獨立性:數據和程序不具有相互獨立性,數據依賴于相應的應用程序。數據冗余高:由于數據不能共享,因此存在大量的冗余數據,浪費存儲空間。26文件系統階段應用程序與文件組之間的關系27…應用程序1文件組1應用程序n文件組n…文件管理系統3.數據庫系統階段數據結構化且易擴充。數據進行有組織的統一結構化管理,按照統一規范的結構進行永久存儲,實現整體數據的結構化數據庫管理系統管理數據。功能強大,對數據進行統一管理和控制;提供了數據安全性保護、數據完整性約束、多用戶并發控制和數據庫恢復等數據獨立性高。真正實現程序和數據的分離管理,程序和數據既相互獨立,程序又可以調用數據,從而具有較高的數據和程序的獨立性。如果邏輯結構或者物理結構發生變化時,應用程序可以不改,或少該,減輕工作數據共享性高。數據面向整個系統,不面向應用程序,從而具有共享性數據冗余度低。由于數據可以共享,因此只需要保留較少的用于數據管理的冗余數據,從而節省了存儲空間。28數據庫系統階段應用程序與數據庫之間的關系29應用程序1應用程序n…數據庫數據庫管理系統1.3數據模型

概念

組成要素

分類301.3.1數據模型的概念數據模型(DataModel):實際問題的模擬和抽象。

針對實際問題,研究數據及其聯系,并最終解決問題的方法和步驟(數據特征的抽象+描述/組織/操作數據)。例如:電子書店中圖書進價的平均價格模型:結論:數據模型是一組概念、描述或者公式的集合。用數據模型可以抽象、表示和處理現實世界中客觀事物的本質特征及其聯系。特點:(1)真實模擬實際問題。(2)容易理解。(3)易于計算機實現。31

數據模型的組成要素組成:數據結構、數據操作和數據完整性約束等。1.數據結構

數據庫中數據對象特性的靜態描述。數據結構用于描述數據庫的組成對象及其聯系。即:數據對象及其特征的集合:數據對象的特性、類型和屬性等。數據對象之間的聯系:數據對象之間的一對一聯系、一對多聯系和多對多聯系等。例如:在電子書店中,出版社的數據結構可以設計如下:出版社(社號,社名,郵編,社址,電話,郵箱,網址)32數據模型的組成要素2.數據操作數據操作:數據庫中數據對象具體內容的動態描述。數據操作是對數據庫中數據對象所執行的操作以及操作規則的集合。數據模型必須嚴格定義操作的確切含義、操作符號、操作規則以及實現操作的語言。即:(1)檢索操作:數據對象的索引、排序和查詢等。例如:在EBook中,對出版社按照“社號”建立索引。查詢銷售信息。(2)更新操作:數據對象的插入、修改和刪除等。例如:在電子書店中,刪除“購買”表中戶號為“C005”的客戶的購買信息。33數據模型的組成要素3.數據完整性約束數據完整性約束是為了確保數據的正確性和相容性,而對數據對象約定的一系列約束條件和約束規則。例如:在電子書店中,客戶的性別只能是“男”或者“女”。數據完整性約束:實體完整性、參照完整性和用戶定義完整性等。數據模型需要提供定義數據完整性的機制。341.3.3.數據模型的分類概念模型邏輯模型物理模型351.概念模型概念模型:數據及其關系的圖形表示。利用專用描述工具,按照統一的描述方法,對實際問題抽象后,而建立的體現數據及其關系的結構模型。例如:E-R圖專用描述工具:具有較強語義表達能力,且擁有統一的語法格式和描述方法,能夠方便地表達應用中的各種語義。例如:實體-聯系方法(Entity

Relationship

Approach,E-R方法)。特點:簡單、清晰、易于理解,獨立于DBMS等組成:實體、屬性和聯系等36(1)實體(Entity)實體(記錄,元組):客觀存在且相互區別的事物

實體可以是具體的人、事、物或者抽象對象等

例如:客戶實體:戶號,戶名,性別,生日,手機,婚否,郵箱圖書實體:書號,書名,作者,社號,版次,定價,進價、售價(C001,李明,男,1966-06-01是,123450@)(ISBN978-7-04-040664-1,數據庫系統概論,王珊,ISBN978-7-04,5,39.6,25,20)實體集(表,關系):同類實體組成的實體集合例如:客戶實體:戶號,戶名,性別,生日,手機,婚否,郵箱(C001,李明,男,1966-06-01是,123450@)(C002,吳光,男,1979-09-10是,543210@)(C003,王英,女,1988-10-06是,122220@)(C004,趙慶,男,1999-06-16否,222220@)(C005,李麗,女,2002-07-11否,345220@)(C006,李麗,女,2006-08-08否,562220@)37(2)屬性(Attribute)屬性(字段,數據項):實體所具有的特性。由多個屬性來描述例如:戶號特征:C001,C002,C003,C004,C005和C006

戶名特征:李明,吳光,王英,趙慶,李麗和李麗例如:客戶實體和圖書實體的屬性如下:客戶實體(戶號、戶名、性別、生日、手機、婚否,郵箱)圖書實體(書號、書名、作者、社號、版次、定價、進價和售價)域:屬性的取值范圍例如:戶號的域:{C開頭且后面為三位數字}

性別的域:{“男”,“女”}38(2)屬性(Attribute)候選鍵/碼(Candidate

Key,CK):區分實體的最小屬性集候選鍵可以一個屬性,或多個屬性;一個實體集可以有多個候選鍵例如:出版社實體集的候選鍵有兩個:社號和社名;因為出版社的社名一般不相同。客戶實體集的候選鍵為戶號。主鍵/碼(Primary

Key,PK):被選中使用的候選鍵主鍵的取值唯一,且一個實體集只能有一個主鍵全鍵/碼(AllKey,AK):實體集的所有屬性組成候選鍵主屬性:候選鍵的屬性。非主屬性:不包含在任何候選鍵中的屬性型和值:屬性和實體集均有型和值之分。屬性型:描述了屬性的本質特征。屬性值:給出屬性的具體數據。屬性=屬性型+屬性值39實體集的型與值實體集型:描述同類實體的靜態結構;實體集值:同類實體的具體數據

實體的所有屬性構成實體集型;所有實體的屬性值構成實體集值。

實體集=實體集型+實體集值屬性名:每個屬性的名稱。表示屬性的本質特性實體集名:實體集的名稱。表示實體的本質特性實體集名和屬性名二者一起共同組成實體集型;即:實體集的結構。例如:多個客戶實體所組成的實體集的名稱命名為“客戶”。客戶屬性(戶號,戶名,性別,生日,手機,婚否,郵箱)共同組成客戶實體集的型,即:客戶(戶號,戶名,性別,生日,手機,婚否,郵箱)40實體集的型與值再如:多個圖書實體所組成的實體集的名稱可以命名為“圖書”。圖書實體集的屬性(書號,書名,作者,社號,版次,定價,進價,售價)共同組成了圖書實體集的型,即:圖書(書號,書名,作者,社號,版次,定價,進價,售價)說明:在不引起混淆的情況下,如果沒有特殊聲明,通常使用“屬性名”代替屬性,實體名代替實體集例如:用“圖書”代表“圖書實體集”;用“客戶”表示“客戶實體集”。用屬性名“書號”代表圖書的一個屬性(書號型+書號值);用屬性名“戶號”代表客戶的一個屬性(戶號型+戶號值)41(3)聯系(Relationship)聯系:實體集之間或實體集內部的關聯關系。1:1;1:n;n:m

實體集與實體集之間(內部)存在一定聯系。內部聯系稱為自聯系例如:客戶和圖書之間存在客戶購買圖書的聯系一對一聯系(1:1):對于實體集A中的每一個實體,實體集B中有且只能有一個實體與之聯系,反之亦然。例如:出版社與社長之間的聯系;學校與校長之間的聯系等。一對多聯系(1:n):對于實體集A中的每一個實體,實體集B中有n(n≥2)個實體與之聯系;反之,對于實體集B中的每一個實體,實體集A中有且只能有一個實體與之聯系。例如:出版社與圖書之間的聯系;學院與班級之間的聯系;班級與學生之間的聯系等。42(3)聯系(Relationship)多對多聯系(m:n):對于實體集A中的每一個實體,實體集B中有n(n≥2)個實體與之聯系,反之,對于實體集B中的每一個實體,實體集A中有n(n≥2)實體與之聯系多對多聯系是一種復雜的聯系例如:客戶和圖書之間的購買聯系。因為一本電子圖書可以賣給多個客戶,而且一個客戶可以購買多本圖書。表1.4是客戶和圖書的聯系再如:學生與課程之間的選修聯系。因為一門課程可以供多個學生選修,而且一個學生可以選修多門課聯系的屬性:聯系可以擁有屬性。聯系及其屬性構成聯系的完整描述例如:客戶和圖書之間的購買聯系產生一個新屬性:購買日期43E-R圖E-R圖:使用實體-聯系方法所建立的用于描述概念模型中實體及其聯系的圖形。E-R圖是概念模型的一種常用的表述方法。E-R圖是一種概念模型。

E-R圖簡單易學,在DB設計中得到了廣泛應用。詳見第5章例如:在電子書店中,客戶購買圖書的概念模型(即:E-R圖)如圖1.6所示。44nm書號客戶購買圖書書名售價戶號戶名電話購買日期2.邏輯模型邏輯模型:概念結構的DBMS表示。即:為了能夠用DBMS實現用戶需求,將概念結構轉化為適用于DBMS表示和實現的數據結構模型。例如:關系模式的集合。分類:層次模型、網狀模型、關系模型和面向對象模型等。通常把相同特征的數據所組成的整體稱為集合(例如:實體集)。集合之間或者集合內部通常存在著一定的聯系。45(1)層次模型層次模型(HierarchicalModel):具有樹型結構的數據模型(圖1.7)

層次模型是最早出現的數據模型46記錄集記錄集記錄集記錄集…記錄集記錄集記錄集………記錄集(1)層次模型特點:存在唯一的沒有雙親的根節點

非根節點均有唯一的雙親節點

記錄集之間的聯系是一對多聯系。反映事物之間的一對多聯系層次數據庫:支持層次模型的數據庫思考:層次模型的優缺點例如:學校的組織機構可以表示為如圖1.8所示的層次模型。即:學校為根節點,其下級有兩個孩子節點學院和處;學院又有兩個孩子節點系和班級;處有一個孩子節點科。例如:1968年IBM公司的IMS(Information

ManagementSystem)47學校的組織機構(層次模型)48學校學院處系班級科(2)網狀模型網狀模型(NetworkModel):具有網狀結構數據模型(圖1.9)

網狀模型是最復雜的數據模型。49記錄集記錄集11記錄集記錄集…記錄集記錄集記錄集…記錄集記錄集記錄集(2)網狀模型特點:

可以存在多個沒有雙親的節點。

節點可以有多個雙親節點。記錄集之間的聯系是多對多聯系。反映事物之間的多對多聯系網狀數據庫:支持網狀模型的數據庫思考:網狀模型的優缺點例如:20~70年數據系統語言研究會的DBTG系統方案。HP公司的IMAGE。例如:速遞公司需要管理車隊、車輛和司機,車隊需要聘任司機,車隊需要擁有車輛,司機可以駕駛車輛,則速遞公司的數據模型可以表示為如圖所示的網狀模型。50速遞公司車隊組織機構(網狀模型)51車輛司機車隊擁有聘用駕駛(3)關系模型關系模型(RelationalModel):具有規范二維表格結構數據模型

表1.1~表1.4:圖書Book/客戶Cust/出版社Press/購買BuyIBM公司的E.F.Codd于1970年首次提出關系數據庫:支持關系模型的數據庫。最流行的數據模型特點:關系模型結構簡單,符合人類的思維方式,容易被接受和使用易于計算機實現容易從概念模型轉換過來52(3)關系模型定義1.1

笛卡爾積:元組t(Tuple):分量(Component)t[Ai]:域:取值范圍。所有元素的集合;度(Degree):屬性個數n基數(CardinalNumber)(有限集合):笛卡爾積:用二維表格表示,每一列數據是類型相同的一個屬性理論價值:針對實際問題,笛卡爾積的很多元組是沒有意義的需要篩選出有實際意義的元組→關系53定義1.2關系關系:笛卡爾積的子集。關系名:關系的名稱關系=關系型+關系值關系型:組成關系的屬性型的集合。結構。關系值:組成關系的屬性值的集合。即:元組的集合元組(實體,記錄):關系值的每一行54定義1.2關系例1.1

如果客戶的姓名和性別的取值如下:姓名={張三,李四,王五};性別={男,女}姓名和性別的笛卡爾積(圖1.11)如下:姓名×性別={(張三,男),(張三,女),

(李四,男),(李四,女),

(王五,男),(王五,女)}姓名和性別組成的關系(不妨命名為:客戶)如下:客戶(姓名,性別)={(張三,男),(李四,女),(王五,女)}關系型:客戶(姓名,性別)關系值:{("張三","男"),("李四","女"),("王五","女")}關系:笛卡爾積的一個子集,且具有實際意義(圖1.11)55笛卡兒積與關系56

×張三

李四

王五姓名

性別

張三

男張三

女李四

男李四

女王五

男王五

女姓名

性別

張三

男李四

女王五

姓名性別

姓名×性別

客戶(姓名,性別)定義1.3

關系模式關系模式:組成關系的關系型。即:關系的結構描述關系=關系模式+元組集合=關系模式+關系值關系與關系模式的關系:關系模式是關系型。關系的結構部分。關系特征的靜態描述。關系模式決定關系,即:關系模式一旦確定,則關系的取值必須滿足關系模式的類型和域的要求。關系模式是元組個數為0時的關系(空關系)關系是關系模式及其某一時刻的值所組成的整體。關系是關系模式下關系值的動態描述。一個關系模式對應多個關系。一個關系模式下,可以存在多個與之相應的關系,從而表現出關系模式在不同時刻的動態數據狀態57定義1.3關系模式例如:二維表格由表頭和表體組成。

表頭就是關系模式,表體就是元組集合。思考:在例1.1中,添加年齡屬性:年齡={16,18,19},則姓名×性別×年齡=?,姓名×性別×年齡中元組的個數是多少?構造一個有意義的客戶關系:客戶(姓名,性別,年齡)。58定義1.4關系數據庫關系數據庫:所有關系的集合。例如:電子書店的數據庫(本書范例數據庫):

電子書店EBook=R{圖書Book,客戶Cust,出版社Press,購買Buy}關系模型的特點:屬性(或數據項)是同類型的不可再分的最小單位,即滿足第一范式(1NF)。屬性不能重名(即:不同的字段不能重名)。元組不能重復(即:不同的記錄不能重復)。屬性的順序可以互換。元組的順序可以互換。59定義1.4關系數據庫例如:表1.5所示的圖書價格表不是關系。因為屬性“價格”又分為定價、進價和售價,所以“價格”不是不可再分的最小單位。表1.5不是規范的二維表,因為規范的表中不能嵌套子表。60書號書名作者價格定價進價售價ISBN978-7-04-040664-1數據庫系統概論王珊39.62025ISBN978-7-302-33894-9Java程序設計教程雍俊海692636ISBN978-7-5612-2591-2圖像技術韓培友361216ISBN978-7-5612-2123-1IDL可視化分析韓培友451922ISBN978-7-5178-0167-2Access數據庫應用韓培友39.81619ISBN978-7-81140-582-8MySQL實驗指導韓培友251015關系模型的組成層次組成層次:屬性、元組、關系和數據庫等。若干屬性值組成元組,若干元組組成關系,若干關系組成數據庫。規范的二維表是關系的常用表示方法。結論:關系模型具有結構簡單清晰、表達能力強、易懂易用和擁有嚴謹數學理論支持等優點。使得它成為目前最流行的數據模型。61(4)面向對象模型面向對象模型(ObjectOrientedModel):20世紀80年代把面向對象程序設計(ObjectOrientedProgramming,OOP)方法和技術引入到數據庫技術之后發展起來的新數據模型。面向對象模型不僅支持傳統的數據庫應用,而且支持CAD、OA和GIS等多媒體領域。遺憾的是面向對象模型沒有推廣成功。623.物理模型物理模型:數據的存儲模型,用于描述數據在計算機內部的存儲結構和存取方法的模型

物理模型是對數據最底層的抽象目的:利用合理的存儲結構和存取策略,充分利用存儲空間,實現快速存取,提高數據存取效率和存儲空間利用率物理模型是邏輯模型的最終物理實現,為邏輯模型選取最適合的物理環境。概念模型、邏輯模型和物理模型的關系(圖1.12)63邏輯模型物理模型概念模型

實際問題

1.4數據庫系統的結構數據庫系統模式結構從數據庫管理系統角度分析數據庫系統體系結構從最終用戶角度分析641.4.1

數據庫系統的模式結構模式結構:三級模式:外模式、模式和內模式二級映像:外模式/模式和模式/內模式65

DBMS

數據庫外模式/模式映象模式/內模式映象應用應用應用應用應用應用外模式外模式外模式模式內模式操作系統1.三級模式(1)外模式外模式(子模式;用戶模式):面向用戶的數據庫局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖。它是局部應用數據的邏輯表示。一個數據庫可以有多個外模式。不同的外模式反映了不同用戶的應用需求、看待數據的方式、以及對數據保密的要求。模式中的同一數據,在外模式中的結構、類型、長度、保密級別等都可以不同;外模式與應用的關系為一對多關系。同一外模式可以為用戶的多個應用系統所使用,但是一個應用程序只能使用一個外模式。661.三級模式(2)模式模式(結構模式;邏輯模式):數據庫中全部數據的整體邏輯結構和特征的描述,即數據庫中數據的邏輯表示,是所有用戶的公共數據視圖,體現了數據庫的總體特征。數據庫模式是以某一種數據模型為基礎,統一綜合地考慮所有用戶的需求,并將這些需求結合成為一個邏輯整體。一個數據庫只能有一個模式。(3)內模式內模式(存儲模式;物理模式):對數據庫物理結構和存儲方式的描述,是數據在數據庫內部的組織存儲方式。一個數據庫只能有一個內模式。672.二級映像外模式/模式映像外模式/模式映像實現了用戶級的數據庫和邏輯層的數據庫之間的轉換,并通過映像提供的上下級服務把二者聯系起來。外模式/模式映像的用途:保證數據的邏輯獨立性。即:當模式發生改變時,數據庫管理員修改有關的外模式/模式映像,使外模式保持不變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,即數據的邏輯獨立性。682.二級映像模式/內模式映像模式/內模式映像實現了邏輯層的數據庫和物理層的數據庫之間的轉換,并通過映像提供的上下級服務把二者聯系起來。模式/內模式映像的用途:保證數據的物理獨立性。即:當數據庫的存儲結構發生改變時(例如:選用新的存儲結構),數據庫管理員修改模式/內模式映像,使模式保持不變,應用程序不受影響。保證了數據與程序的物理獨立性,即數據的物理獨立性。數據的邏輯獨立性和數據的物理獨立性合稱為數據獨立性。通過二級映像,保證了數據庫系統的數據獨立性,同時使用戶使用數據庫更加靈活方便。數據庫系統的二級映像反映出了三級模式之間的相互關系:模式是內模式的邏輯表示;內模式是模式的物理實現;外模式則是模式的部分抽象和提取。69數據庫系統模式結構的優點確保數據庫的數據獨立性確保數據庫的安全性和保密性用戶使用數據庫更加靈感方便提高了數據庫的共享性,減少了數據冗余701.4.2數據庫系統的體系結構單用戶數據庫系統主從式數據庫系統分布式數據庫系統客戶/服務器數據庫系統瀏覽器/應用服務器/數據庫服務器數據庫系統等711.5小結數據、數據庫、數據管理系統和數據庫系統的概念及其關系數據管理階段:人工管理階段、文件系統階段和數據庫系統階段數據庫管理系統的功能數據庫系統的組成。DBA的職責數據模型的概念和組成要素以及常用的數據模型:概念模型、邏輯模型(層次模型,網狀模型,關系模型和面向對象模型)和物理模型數據庫系統的模式結構與數據獨立性研究內容:數據庫理論研究、數據庫設計、數據庫管理系統的研發和數據庫應用系統(Management

Info

System,MIS)的開發等72第2章關系運算關系數據語言基本集合運算

笛卡爾積/并集/差集/交集專用關系運算

選擇/投影/連接/除運算更新運算綜合實例查詢優化

示例分析

/查詢處理與查詢優化/等價變換/優化規則/優化方法小結732.1關系數據語言關系數據語言:一種抽象的查詢語言;關系代數/元組(域)關系演算特點:操作對象和操作結果都是集合74

常用運算:笛卡爾積、并集、差集、交集、選擇、投影、連接、除運算符號:∪,∩,-,×,σ,π,÷,┒,∨,∧,≤,<,≥,>,=,≠,

2.1關系數據語言電子書店EBook

圖書Book/客戶Cust/出版社Press/購買Buy圖書(書號,書名,作者,社號,版次,定價,進價,售價)Book(BNo,BName,Author,PNo,EditNo,Price,PPrice,SPrice)客戶(戶號,戶名,性別,生日,電話,婚否,照片,郵箱)Cust(CNo,CName,CSex,Birth,Phone,Marry,Photo,Email)出版社(社號,社名,郵編,社址,電話,郵箱,網址)Press(PNo,PName,PCode,PAddr,Phone,Email,HPage)購買(戶號,書號,購買日期)Buy(CNo,BNo,PDate)75圖書Book書號BNo書名BName作者Author社號PNo版次EditNo定價Price進價PPrice售價SPriceISBN978-7-04-040664-1數據庫系統概論王珊ISBN978-7-04539.62025ISBN978-7-302-33894-9Java程序設計教程雍俊海ISBN978-7-3023692636ISBN978-7-5612-2591-2圖像技術韓培友ISBN978-7-56121361216ISBN978-7-5612-2123-1IDL可視化分析韓培友ISBN978-7-56121451922ISBN978-7-5178-0167-2Access數據庫應用韓培友ISBN978-7-81140139.81619ISBN978-7-81140-582-8MySQL實驗指導韓培友ISBN978-7-81140125101576客戶Cust戶號CNo戶名CName性別CSex生日Birth電話Phone婚否Marry照片Photo郵箱EMailC001李明男1966-06-0113611122233是二進制數據Hu.Jpg123450@C002吳光男1979-09-1013911122233是NULL543210@C003王英女1988-10-0613622233355是NULL122220@C004趙慶男1999-06-1613922233355否NULL222220@C005李麗女2002-07-1113655566699否NULL345220@C006李麗女2006-08-0813955566699否NULL562220@77購買Buy戶號CNo書號BNo購買日期PDate

戶號CNo書號BNo購買日期PDateC001ISBN978-7-04-040664-12014-10-26

C002ISBN978-7-04-040664-12014-11-22C001ISBN978-7-302-33894-92014-06-16

C002ISBN978-7-302-33894-92014-08-12C001ISBN978-7-5612-2591-22010-01-12

C003ISBN978-7-5612-2591-22011-11-13C001ISBN978-7-5612-2123-12006-12-01

C005ISBN978-7-5612-2123-12008-10-09C001ISBN978-7-5178-0167-22014-03-19

C006ISBN978-7-5178-0167-22015-06-18C001ISBN978-7-81140-582-82012-09-15

C006ISBN978-7-81140-582-82013-10-1778出版社Press社號PNo社名PName郵編PCode社址PAddr電話Phone郵箱EMail網址HPageISBN978-7-04高等教育出版社100120北京市西城區德外大街4號(010)58581118Gjdzfwb@ISBN978-7-302清華大學出版社100084清華大學學研大廈A座(010)62781733e-sale@www.tup.tsinghua.ISBN978-7-115人民郵電出版社100164北京市豐臺區成壽寺路11號(010)81055075Youdianhr@ISBN978-7-5612西北工業大學出版社710072西安市友誼西路127號(029)88493844Fxb@ISBN978-7-81140浙江工商大學出版社310012杭州市教工路198號(0571)8882370361627291@792.2基本集合運算

笛卡爾積

并集

差集

交集802.2.1笛卡爾積R×S:把R的每一個元組和S的每一個元組依次對接起來,對接后所生成的分量個數為n+m的所有元組的集合。屬性:分量個數:R的分量個數和S的分量個數的和元組個數:R的元組個數和S的元組個數的乘積元組關系演算:域關系演算:812.2.1笛卡爾積例2.1

已知R和S,則R×S

=?笛卡爾積中包含有較多無意義的元組?82×姓名

性別

張良

男李麗

女年齡

成績

189816991996姓名

性別

年齡

成績

張良

男1898張良

男1699張良

男1996李麗

女1898李麗

女1699李麗

女1996

=(a)R(b)S(c)R×S2.2.2并集R∪S:具有相同屬性的關系R和S中的所有元組的集合屬性:分量個數:等于R的分量個數,或等于S的分量個數元組個數:小于等于k1+k2。k1和k2分別為R和S的元組的個數元組關系演算:域關系演算:832.2.2并集例2.2已知R和S,則R∪S

=?84=∪RSR∪S姓名

性別

張良

男李麗

女姓名

性別

張良

男李麗

女王海

姓名

性別

李麗

女王海

2.2.3差集R?S:具有相同屬性的關系R和S中屬于R,但不屬于S的所有元組的集合屬性:分量個數:等于R的分量個數,或等于S的分量個數元組個數:小于等于k1。k1為R的元組的個數元組關系演算:域關系演算:852.2.3差集例2.3已知R和S,則R─S

=?86=─RSR─S姓名

性別

張良

男李麗

女姓名

性別

張良

姓名

性別

李麗

女王海

2.2.4交集R∩S:具有相同屬性的關系R和S中相同元組的集合屬性:分量個數:等于R的分量個數,或等于S的分量個數元組個數:小于等于Min(k1,k2)。K1,k2分別為R和S的元組的個數元組關系演算:域關系演算:872.2.4交集例2.4已知R和S,則R∩S

=?88=∩RSR∩S姓名

性別

張良

男李麗

女姓名

性別

李麗

姓名

性別

李麗

女王海

綜合示例例2.5關系R和關系S及其并集、交集、差集和笛卡爾積89XYZ222255552XYZ255265552R.XR.YR.ZS.XS.YS.Z222255222265222552255255255265255552552255552265552552R×SXYZ222XYZ222255552265XYZ255552RSR-SR∪SR∩S2.3專用關系運算

選擇

投影

連接

除運算90選擇選擇(Selection):在R中選擇出滿足給定條件的元組。關系代數:

是邏輯表達式屬性:分量個數:等于R的元組的分量個數。元組個數:小于等于k1。k1是R的元組的個數。元組關系演算:域關系演算:91選擇例2.6從關系R中,查詢90分以上(不含90分)的女生92姓名

性別

年齡

成績王娟

女1996孫麗

女1898姓名

性別

年齡

成績張軍

男1888李明

男1699王娟

女1996孫麗

女1898R選擇例2.7查詢“高等教育出版社”的出版社信息93

選擇例2.8查詢作者是“王珊”,或者售價大于等于15且小于25的圖書信息94

2.3.2投影投影(Projection):在R中選擇出若干屬性列組成的關系關系代數:屬性:A中的屬性分量個數:等于A中的屬性的個數。元組個數:小于等于k1。k1是R的元組的個數。因為要去掉重復元組。元組關系演算:域關系演算:952.3.2投影例2.9從關系R中,查詢所有人的姓名和性別96姓名

性別

年齡

成績

張軍

男1888李明

男1699王海

女1996孫麗

女1898姓名

性別

張軍

男李明

男王海

女孫麗

女2.3.2投影例2.10從R中,查詢所有90分以上(不含90分)的女生的姓名和性別97姓名

性別

年齡

成績

張軍

男1888李明

男1699王海

女1996孫麗

女1898姓名

性別

王海

女孫麗

女2.3.2投影例2.11查詢圖書的書名、作者和定價98

2.3.2投影例2.12查詢客戶的戶名和電話99

2.3.3連接連接(Join):把兩個關系按照連接條件進行連接后生成一個新關系的過程。即:根據指定的連接條件,依次檢測R和S中的每一個元組,如果R中的某個元組與S中的某個元組滿足了連接條件,則把這兩個元組對接起來,而最終所有對接后的元組的集合即為R和S的連接。100連接方法和連接過程嵌套循環法(NestedLoop)首先在R中找到第一個元組,然后從頭開始掃描S逐一查找滿足連接件的元組,找到后就將R中的第一個元組與該元組拼接起來,形成結果關系中一個元組。S全部查找完后,再找R中第二個元組,然后再從頭開始掃描S,逐一查找滿足連接條件的元組,找到后就將R中的第二個元組與該元組拼接起來,形成結果表中一個元組。重復上述操作,直到R中的全部元組都處理完畢。排序合并法(SortMerge)首先按連接屬性對R和S排序。對R的第一個元組,從頭開始掃描S,順序查找滿足連接條件的元組,找到后就將R中的第一個元組與該元組拼接起來,形成結果關系中一個元組。當遇到S中第一條大于R連接字段值的元組時,對S的查詢不再繼續。找到R的第二個元組,然后從剛才的中斷點處繼續順序掃描S,查找滿足連接條件的元組,找到后就將R中的第二個元組與該元組拼接起來,形成結果關系中一個元組。直接遇到S中大于R連接字段值的元組時,對S的查詢不再繼續。重復上述操作,直到R或S中的全部元組都處理完畢為止。101連接方法和連接過程索引連接(IndexJoin)對S按連接字段建立索引對R的每個元組,依次根據其連接字段值查詢S的索引,從中找到滿足條件的索引值,進而在S中找到與之對應的元組,找到后就將R中的第一個元組與該元組拼接起來,形成結果表中一個元組;依次進行下去,直到結束。102連接關系代數:R和S的笛卡爾積中選擇出滿足條件的元組。R和S笛卡爾積的選擇操作;由笛卡爾積和選擇運算導出屬性:分量個數:等于R和S分量個數的和元組個數:小于等于k1×k2。k1是R的元組的個數;k2是S的元組的個數元組關系演算:

域關系演算:103等值連接和自然連接等值連接:連接條件取相等的連接運算自然連接:去掉重復屬性列的等值連接區別與聯系:等值連接和自然連接都是要求屬性間按照等值進行連接,而自然連接要求兩個關系中相等的分量必須是相同的屬性組而等值連接不需要,且自然連接要在結果中把重復的屬性列去掉而等值連接不需要104

連接示例例2.14已知R和S,則R和S的條件(C<D)連接、等值連接和自然連接105ABCa1b15a2b16a3b27a4b39AR.BCS.BDa1b15b26a1b15b49a2b16b49a3b27b49

BDb13b26b33b49ABCDa1b153a2b163a3b276a4b393

AR.BCS.BDa1b15b13a2b16b13a3b27b26a4b39b33

RS連接示例例2.15查詢作者是“王珊”的書名、定價、社名和電話106

關系代數:

元組演算:域演算:

除關系R與S的除運算:已知關系R(X,Y)和S(Y,Z),R與S的除運算的結果是一個屬性組為X的關系P(X),并且滿足:對于P(X)中的元組p,R中在X上的投影值等于p的諸元組,在Y上的投影包含S在Y上的投影。關系代數:R

S屬性:X分量個數:X的分量個數元組個數:小于等于k1。k1是R的元組的個數關系演算:107除例2.17已知關系R與S,則R

S=?108

AB

1

2

3

1

1

1

3

4

2B12A

RS除例2.19已知關系R與S,則R

S=?

109XYZx2y2z4x4y6z6x6y8z5x2y4z6x8y5z5x4y4z6x2y4z2x3y3z6x1x1z3YZWy2z4w2y4z2w2y4z6w5XX2RSR

S計算方法1)計算2)計算

即:計算T×S中不在R中的元組3)計算4)計算110除例2.20對于關系R和S,則R÷S的計算過程111除例2.16已知成績Grade和條件Cond,在Grade中選擇滿足條件的學生Result,即在Grade中選擇高等數學和數據結構均為A的學生信息112對于Grade在SName、SSex和SDept上的投影的一個元組t,如果Grade中在SName、SSex和SDept上的投影值等于t的諸元組,在CName和Grade上的投影包含Cond中的元組,則該元組t

是一個結果元組(t

Grade÷Cond)。所有這樣的t就組成了Grade÷CondSNameSSexCNameSDeptGrade李思

高等數學

計算機A劉英

高等數學

數學

B吳康

高等數學

計算機A王晶

數據結構

數學

A吳康

英語

計算機B王晶

高等數學

數學

ACNameGrade高等數學A數據結構ASNameSSexSDept王晶

數學除例2.18查詢至少購買書號是ISBN978-7-04-040664-1和ISBN978-7-302-33894-9的兩本書的客戶的戶號。113

BNoISBN978-7-04-040664-1ISBN978-7-302-33894-92.4更新運算插入運算(Insert):首先用需要插入的元組,創建一個與R同屬性的臨時關系T,然后計算修改運算(Update):首先用差運算把需要修改的元組從R中刪除,得到

;然后利用元組的更新數據創建一個與

同屬性的臨時關系

,最后計算刪除運算(Delete):首先從R中選擇出需要刪除的元組,并構造一個臨時關系

,創建一個與R同屬性的臨時關系T,然后計算1142.5綜合實例例2.21查詢Book、Cust、Buy和Press的笛卡爾積(不難看出,該查詢沒有實際意義)115

2.5綜合實例例2.22查詢客戶、圖書和出版社的詳細信息及其所有購買信息116BookCustBuyPress2.5綜合實例例2.23查詢圖書的書名、作者、社名和售價117πBName,A??thor,PName,SPrice(BookPress)2.5綜合實例例2.24查詢圖書的書名、作者、售價、社名和購買圖書的客戶姓名118πBName,Author,SPrice,PName,CName(BookCustBuyPress)2.5綜合實例例2.25查詢客戶李明購買的作者是韓培友的出版社是浙江工商大學出版的圖書的戶名、書名、作者、定價、售價、社名和購買日期119πCName,BName,Author,PName,Price,SPrice,PName,PName

(

σBName=‘李明’∧Author=‘韓培友’∧PName=‘浙江工商大學出版社’

(

BookCustBuyPress))

2.5綜合實例例2.26查詢購買王珊或者雍俊海書的客戶的戶號和戶名120思

溫馨提示

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

評論

0/150

提交評論