數(shù)據(jù)庫課件第2章 數(shù)據(jù)模型_第1頁
數(shù)據(jù)庫課件第2章 數(shù)據(jù)模型_第2頁
數(shù)據(jù)庫課件第2章 數(shù)據(jù)模型_第3頁
數(shù)據(jù)庫課件第2章 數(shù)據(jù)模型_第4頁
數(shù)據(jù)庫課件第2章 數(shù)據(jù)模型_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫技術(shù)及應(yīng)用

——基于SQLServer2016和MongoDB第2章數(shù)據(jù)模型第2章數(shù)據(jù)模型2.1數(shù)據(jù)模型的概念及類型2.2概念模型2.3邏輯模型(重點(diǎn))2.4物理模型2.5關(guān)系代數(shù)數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB22.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)模型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB3抽象轉(zhuǎn)化信息世界(概念模型)機(jī)器世界(數(shù)據(jù)模型)現(xiàn)實世界(事物)概念模型→邏輯模型數(shù)據(jù)庫設(shè)計人員完成現(xiàn)實世界→概念模型數(shù)據(jù)庫設(shè)計人員完成邏輯模型→物理模型由DBMS完成2.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB4

學(xué)生

學(xué)

年齡

性別

籍貫學(xué)生1

100927楊明白22男

北京學(xué)生2

100652劉明24男

湖北學(xué)生3

101091李偉23男

山西學(xué)生4

100676王瑩瑩22女

四川實體↓屬性↓

值1←

值2←

值3←

值4←記錄型記錄↓項↓機(jī)器世界信息世界↑事物

↑特征

現(xiàn)實世界用概念模型用數(shù)據(jù)模型

值1→

實體型→

值3→

值4→

值2→實體集2.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)模型用來形式化描述數(shù)據(jù)數(shù)據(jù)之間的聯(lián)系數(shù)據(jù)語義和約束規(guī)則數(shù)據(jù)模型的組成要素數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)完整性數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB52.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)結(jié)構(gòu)的概念描述數(shù)據(jù)庫的組成對象,以及對象之間的聯(lián)系數(shù)據(jù)結(jié)構(gòu)描述的內(nèi)容對象的數(shù)據(jù)類型、內(nèi)容、性質(zhì),如關(guān)系模型中的屬性與數(shù)據(jù)之間聯(lián)系有關(guān)的對象數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB62.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)操作對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作及有關(guān)的操作規(guī)則,是對系統(tǒng)動態(tài)特性的描述數(shù)據(jù)操作的類型查詢更新(包括插入、刪除、修改)數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB72.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)的完整性約束一組完整性規(guī)則的集合。完整性規(guī)則:給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB82.1數(shù)據(jù)模型的概念及類型根據(jù)應(yīng)用目的,模型分為兩個層次:概念模型(信息模型)按用戶的觀點(diǎn),獨(dú)立于計算機(jī)實現(xiàn)的,只用來描述和組織所關(guān)心的信息結(jié)構(gòu)的概念數(shù)據(jù)模型,強(qiáng)調(diào)語義數(shù)據(jù)庫設(shè)計人員和用戶之間進(jìn)行交流的語言對應(yīng)于信息世界數(shù)據(jù)模型按計算機(jī)系統(tǒng)的觀點(diǎn),直接面向計算機(jī)系統(tǒng)的,描述數(shù)據(jù)庫中數(shù)據(jù)的邏輯結(jié)構(gòu)的基本數(shù)據(jù)模型對應(yīng)于數(shù)據(jù)世界(機(jī)器世界)包括邏輯模型和物理模型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB92.1數(shù)據(jù)模型的概念及類型數(shù)據(jù)模型邏輯模型:采用某一數(shù)據(jù)模型組織數(shù)據(jù),如關(guān)系模型。物理模型:描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法概念模型概念模型用于信息世界的建模;是現(xiàn)實世界到機(jī)器世界的第一層抽象;是數(shù)據(jù)庫設(shè)計的有力工具;數(shù)據(jù)庫設(shè)計人員和用戶之間進(jìn)行交流的語言;數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB102.2概念模型信息世界中的基本概念實體Entity:客觀存在并相互區(qū)別的事物。具體的人、事、物,抽象的概念(訂貨)屬性Attribute:實體或聯(lián)系的特征。學(xué)生(學(xué)號,姓名,性別)關(guān)鍵字,鍵Key:唯一標(biāo)識實體的屬性或?qū)傩越M域Domain:屬性的取值范圍。性別(男,女)實體型EntityType:實體名+屬性名集合實體集EntitySet:同型實體的集合聯(lián)系Relationship:實體與實體之間的聯(lián)系數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB112.2概念模型實體間的聯(lián)系實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映了現(xiàn)實世界事物之間的相互關(guān)聯(lián)。聯(lián)系的類型:一對一聯(lián)系記為1:1。如學(xué)校與校長間的聯(lián)系一對多聯(lián)系記為1:n。

如宿舍房間與學(xué)生的聯(lián)系多對多聯(lián)系記為m:n。

如一個教師可以教授多個學(xué)生,而一個學(xué)生又可以受教于多個教師數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB12設(shè)實體集

E1E22.2概念模型實體間的聯(lián)系數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB13實體集A

實體集B

聯(lián)系名 1 1 (a) 實體集A

實體集B

1 n (b) 實體集A

實體集B

m n (c) 聯(lián)系名 聯(lián)系名 2.2概念模型概念模型的一種表示方法E-R圖提供了表示實體、屬性和實體間聯(lián)系的方法實體:矩形屬性:橢圓聯(lián)系:菱形數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB14學(xué)生與課程間的聯(lián)系學(xué)號

學(xué)生2.2概念模型兩實體集間多實體集間同一實體集內(nèi)數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB15相同實體集間的兩個聯(lián)系職工E領(lǐng)導(dǎo)1n職工E領(lǐng)導(dǎo)1n職工中的M醫(yī)生D病人P診病1n護(hù)理mn2.2概念模型E-R模型實例數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB16mn選修姓名學(xué)號出生日期課程號學(xué)分課程名成績

學(xué)生課程2.3邏輯模型基本概念1)數(shù)據(jù)項(Item)。又稱為字段(Field),是數(shù)據(jù)庫中可以命名的最小邏輯數(shù)據(jù)單位,用于描述屬性的數(shù)據(jù)。2)記錄(Record)。記錄是數(shù)據(jù)項的有序集,即一個記錄是有若干個數(shù)據(jù)項組成,用它描述實體。3)記錄型(RecordType)。記錄名及其所有數(shù)據(jù)項的集合,稱為記錄型。例如,學(xué)生(學(xué)號,姓名,性別,出生日期,所屬系)就是學(xué)生的記錄型。4)文件(File)。文件是一個具有符號名的一組同類記錄的集合。文件包含記錄的結(jié)構(gòu)和記錄的值。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB172.3邏輯模型最常用的邏輯模型層次模型(HierarchicalModel)網(wǎng)狀模型(NetworkModel)關(guān)系模型(RelationalModel)面向?qū)ο竽P停∣bject-OrientedModel)關(guān)鍵字-值模型(Key-Value)列存儲模型(Column-oriented)文檔模型(Document)圖存儲模型。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB182.3邏輯模型層次模型層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型層次數(shù)據(jù)庫系統(tǒng)的典型代表是IBM公司1968年推出的IMS(InformationManagementSystem)數(shù)據(jù)庫管理系統(tǒng)層次模型用樹形結(jié)構(gòu)來表示各類實體以及實體間的聯(lián)系數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB192.3邏輯模型層次模型通過樹形結(jié)構(gòu)表示實體及聯(lián)系。如描述學(xué)校管理機(jī)構(gòu)。每個結(jié)點(diǎn)表示一個實體(型),箭頭表示實體(型)間的聯(lián)系(由父到子)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB20樹枝根2.3邏輯模型層次數(shù)據(jù)模型主要特點(diǎn)有且僅有一個根結(jié)點(diǎn);每個非根結(jié)點(diǎn)有且僅有一個父(直接上層)結(jié)點(diǎn)。它最適合表示實體的一對多聯(lián)系。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB21非根根2.3邏輯模型網(wǎng)狀數(shù)據(jù)模型典型代表是DBTG系統(tǒng):70年代由DBTG提出的一個系統(tǒng)方案奠定了數(shù)據(jù)庫系統(tǒng)的基本概念、方法和技術(shù)實際系統(tǒng)CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB222.3邏輯模型網(wǎng)狀數(shù)據(jù)模型通過網(wǎng)狀結(jié)構(gòu)表示實體及聯(lián)系?!熬W(wǎng)”中每個結(jié)點(diǎn)表示一個實體(型),結(jié)點(diǎn)之間箭頭表示實體(型)間的聯(lián)系。網(wǎng)狀數(shù)據(jù)模型主要特點(diǎn):網(wǎng)狀數(shù)據(jù)模型可能有多個根結(jié)點(diǎn),某些非根結(jié)點(diǎn)可能有多個父結(jié)點(diǎn),適合表示實體的多對多聯(lián)系。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB23根多個父結(jié)點(diǎn)2.3邏輯模型網(wǎng)狀數(shù)據(jù)模型適合復(fù)雜的關(guān)系最少的數(shù)據(jù)冗余算法復(fù)雜、專用優(yōu)點(diǎn):能直觀、形象地描述實體及其聯(lián)系,易于被人們所理解和掌握。缺點(diǎn):數(shù)據(jù)結(jié)構(gòu)較復(fù)雜,存儲數(shù)據(jù)需要更多的鏈接指針;在檢索數(shù)據(jù)時,需要考慮數(shù)據(jù)的存儲路徑;在插入或刪除數(shù)據(jù)時,涉及到調(diào)整鏈接指針數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB242.3邏輯模型——關(guān)系模型關(guān)系模型E.F.Codd于1970年提出關(guān)系數(shù)據(jù)模型,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念1972年提出了關(guān)系的第一、第二、第三范式1974年提出了關(guān)系的BC范式80年代后,關(guān)系數(shù)據(jù)庫系統(tǒng)成為最重要、最流行的數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB252.3邏輯模型——關(guān)系模型關(guān)系數(shù)據(jù)模型數(shù)據(jù)模型的任務(wù)是描述現(xiàn)實世界中的實體及其聯(lián)系。關(guān)系數(shù)據(jù)模型就是采用一個有序數(shù)組描述實體及其屬性,用這種有序數(shù)組的集合描述一個實體集合,而采用定義在兩個集合上的關(guān)系反映不同實體間的聯(lián)系。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB26部門編號部門名稱員工編號員工姓名性別住址D001總經(jīng)理辦E001錢達(dá)理男東風(fēng)路78號D001總經(jīng)理辦E002東方牧男五一北路25號D002市場部E003郭文斌男公司集體宿舍D003銷售部E004肖海燕女公司集體宿舍D004倉儲部E005張明華男韶山北路55號2.3邏輯模型——關(guān)系模型關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示數(shù)據(jù)的邏輯結(jié)構(gòu)----二維表從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。關(guān)系操作集合插入、刪除、修改、查詢(選擇、投影、連接、除、并、交、差)關(guān)系完整性約束實體完整性、參照完整性、域完整性、用戶定義完整性數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB272.3邏輯模型——關(guān)系模型關(guān)系數(shù)據(jù)庫就是一些相關(guān)的二維表和其他數(shù)據(jù)庫對象的集合。在這個定義中明確,關(guān)系數(shù)據(jù)庫中的所有信息都存儲在二維表格中;一個關(guān)系數(shù)據(jù)庫可能包含多個表;除了這種二維表外,關(guān)系數(shù)據(jù)庫還包含一些其他對象,如視圖等。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB28北京科技大學(xué)通信工程系數(shù)據(jù)表….…

訂單

客戶

產(chǎn)品

產(chǎn)品數(shù)據(jù)庫表2.3邏輯模型——關(guān)系模型1.關(guān)系是一張二維表,通常將一個無重復(fù)行、重復(fù)列的二維表看成一個關(guān)系,每個關(guān)系都有一個關(guān)系名。2.元組二維表的每一行在關(guān)系中稱為元組。描述了現(xiàn)實世界中的一個實體或不同實體間的一種聯(lián)系。3.屬性二維表的每一列在關(guān)系中稱為屬性,每個屬性都有一個屬性名,各個屬性的取值稱為屬性值。每個屬性有一定的取值范圍,稱為值域。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB292.3邏輯模型——關(guān)系模型4.域(Domain)關(guān)系中每個屬性的值是有一定變化范圍,每一個屬性所對應(yīng)的變化范圍叫做屬性的變域或簡稱域,它是屬性值的集合,關(guān)系中所有屬性的實際取值必須來自于它對應(yīng)的域。5.分量一個元組在一個屬性域上的取值稱為該元組在此屬性上的分量。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB302.3邏輯模型——關(guān)系模型6.關(guān)系模式二維表的表頭那一行稱為關(guān)系模式,即一個關(guān)系的關(guān)系名及其全部屬性名的集合。關(guān)系模式是概念模型中實體型及實體型之間聯(lián)系的數(shù)據(jù)模型表示。一般表示為:關(guān)系名(屬性名1,屬性名2,……,屬性名n)關(guān)系模式指出了一個關(guān)系的結(jié)構(gòu);而關(guān)系則是由滿足關(guān)系模式結(jié)構(gòu)的元組構(gòu)成的集合。關(guān)系模式是穩(wěn)定的、靜態(tài)的,而關(guān)系則是隨時間變化的、動態(tài)的。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB312.3邏輯模型——關(guān)系模型一個關(guān)系就是沒有重復(fù)行和重復(fù)列的二維表,二維表的每一行在關(guān)系中稱為元組,每一列在關(guān)系中稱為屬性。學(xué)生關(guān)系的每一行代表一個學(xué)生的記錄,每一列代表學(xué)生記錄的一個字段。屬性個數(shù)(n)稱為關(guān)系的元。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB32屬性信息9元關(guān)系2.3邏輯模型——關(guān)系模型舉例數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB33元組1元組2元組3元組4元組…行(元組)列(屬性)同一關(guān)系2.3邏輯模型——關(guān)系模型7.候選碼(Candidatekey)若關(guān)系中的某一屬性或?qū)傩越M合的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼在最簡單的情況下,候選碼只包含一個屬性。在最極端的情況下,關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼,稱為全碼(All-key)8.主碼若一個關(guān)系有多個候選碼,則選定其中一個為主碼(Primarykey)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB342.3邏輯模型——關(guān)系模型9主屬性(PrimaryAttribute)和非主屬性主碼的各個屬性稱為主屬性。不包含在任何侯選碼中的屬性稱為非主屬性。10.外碼如果關(guān)系中某個屬性或?qū)傩越M合并非碼,但卻是另一個關(guān)系的主碼,則稱此屬性或?qū)傩越M合為本關(guān)系的外碼或外鍵(ForeignKey)。在關(guān)系數(shù)據(jù)庫中,用外碼表示兩個表間的聯(lián)系。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB352.3邏輯模型——關(guān)系模型10.外碼數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB36學(xué)號姓名性別所在系101張三男901102李四男902105胡小斌男901系編號系名系主任901通信王平902電子李義學(xué)生表所在系表PKPKFK2.3邏輯模型——關(guān)系模型關(guān)系模型的組成關(guān)系模型的數(shù)據(jù)結(jié)構(gòu):關(guān)系是關(guān)系模型中最基本的數(shù)據(jù)結(jié)構(gòu)。關(guān)系模型的數(shù)據(jù)操作:主要包括查詢、插入、刪除和修改。數(shù)據(jù)的完整性約束:實體完整性、參照完整性、域完整性和用戶定義完整性。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB372.3邏輯模型——關(guān)系模型1)實體完整性(EntityIntegrity)若屬性A是關(guān)系R的主屬性,則屬性A不能取空值且取值唯一;就是一個關(guān)系模型中的所有元組都是惟一的,沒有兩個完全相同的元組,也就是一個二維表中沒有兩個完全相同行,也稱為行完整性。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB38例:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)2.3邏輯模型——關(guān)系模型域完整性對關(guān)系R中屬性(列)數(shù)據(jù)的規(guī)范,限制屬性的數(shù)據(jù)類型、格式以及取值范圍。就是對表中列數(shù)據(jù)的規(guī)范,也稱列完整性,用于限制列的數(shù)據(jù)類型、格式以及取值范圍。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB392.3邏輯模型——關(guān)系模型參照完整性在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此存在著關(guān)系與關(guān)系間的引用。參照完整性是通過定義外鍵來(存在或為空)建立的。例1學(xué)生實體、專業(yè)實體學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號”。學(xué)生關(guān)系中的“專業(yè)號”值必須是確實存在的專業(yè)的專業(yè)號,即專業(yè)關(guān)系中有該專業(yè)的記錄。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB402.3邏輯模型——關(guān)系模型用戶定義的完整性針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求例:工齡<年齡學(xué)生成績>=0數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB41面向?qū)ο竽P偷闹饕拍睿海?)對象與對象標(biāo)識:一個對象就是一個實體所具有的屬性和定義于這些屬性之上的一組操作的集合體,每個對象有一個唯一的標(biāo)識,稱為對象標(biāo)識。(2)封裝:每一個對象是其狀態(tài)與操作的封裝(3)類與類層次:將屬性集和操作相同的所有對象組合在一起,可以構(gòu)成一個類。(4)消息:消息是對象間通信的手段,一個對象通過向另一個對象發(fā)送消息來請求其服務(wù)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB422.3邏輯模型——面向?qū)ο竽P?.3邏輯模型——面向?qū)ο竽P兔嫦驅(qū)ο蟮奶攸c(diǎn)抽象性封裝性繼承性多態(tài)性數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB432.3邏輯模型關(guān)鍵字-值模型最簡單的NoSQL數(shù)據(jù)庫是關(guān)鍵字-值(Key-Value)存儲模型。這種數(shù)據(jù)庫存儲數(shù)據(jù)時不采用任何模式,這意味著存儲的數(shù)據(jù)無需遵循任何預(yù)定義的結(jié)構(gòu)。Key-Value模型比較簡單,類似于HashTable,一個關(guān)鍵字對應(yīng)一個值,本質(zhì)是一種“映射”。Key-Value模型的優(yōu)點(diǎn)是易于實現(xiàn)和添加數(shù)據(jù),因此非常適合用于提供基于鍵來存儲和檢索數(shù)據(jù)的簡單存儲,缺點(diǎn)是無法根據(jù)存儲的值來查找元素。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB442.3邏輯模型關(guān)鍵字-值模型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB45鍵(Key)值(Value)D:\path\bagBinary:pictureHttp:///Binary:<html>Fish:2008Binary:30中國:上海:浦東Binary:浦東國際機(jī)場2.3邏輯模型列存儲模型列存儲模型在以列的方式存儲數(shù)據(jù),列是數(shù)據(jù)庫中最小的存儲單元,它是一個三元組,包括獨(dú)一無二的名稱、值和時間戳,即一個帶有時間戳的Key-Value鍵值對。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB462.3邏輯模型列存儲模型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB472.3邏輯模型文檔模型(1)可以定義具體的對象結(jié)構(gòu)。在Key-Value模型中,數(shù)據(jù)對象的結(jié)構(gòu)都是一樣的,沒有具體結(jié)構(gòu)。其優(yōu)點(diǎn)是可以存放任何類型的數(shù)據(jù),而缺點(diǎn)是數(shù)據(jù)訪問的靈活性低,如無法通過內(nèi)容或字段值進(jìn)行查找數(shù)據(jù)(只能通過關(guān)鍵字來查找)。相反,在文檔模型中可以定義具體的對象結(jié)構(gòu)。(2)可以根據(jù)數(shù)據(jù)對象的內(nèi)容進(jìn)行查找數(shù)據(jù)和建立索引。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB482.3邏輯模型文檔模型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB49一條文檔記錄,內(nèi)含若干個成對的鍵值對,該數(shù)據(jù)格式叫JSON2.3邏輯模型圖存儲模型該模型以圖的形式存儲數(shù)據(jù),是圖形關(guān)系的最佳數(shù)據(jù)模型。圖存儲模型記為G(V,E),V為結(jié)點(diǎn)的集合,每個結(jié)點(diǎn)具有若干屬性,E為邊的集合,也可以具有若干屬性。該模型支持圖結(jié)構(gòu)的各種基本算法,可以直觀地表達(dá)和展示數(shù)據(jù)之間的聯(lián)系。使用傳統(tǒng)關(guān)系數(shù)據(jù)庫來解決的話性能低下,而且設(shè)計使用不方便。主要應(yīng)用于航線拓?fù)鋱D、社交網(wǎng)絡(luò)、推薦系統(tǒng)和關(guān)系圖譜。比較典型的圖存儲數(shù)據(jù)庫是Noeo4J。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB502.3邏輯模型圖存儲模型數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB512.3邏輯模型8種邏輯數(shù)據(jù)模型的比較數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB522.4物理模型物理模型是面向計算機(jī)等數(shù)據(jù)處理存儲設(shè)備物理表示的模型,是描述數(shù)據(jù)在系統(tǒng)存儲設(shè)備內(nèi)部的表示方式和存取方法,如存儲位置和方式、索引等,同具體的DBMS、操作系統(tǒng)和處理存儲設(shè)備有關(guān)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB532.5關(guān)系代數(shù)關(guān)系數(shù)據(jù)庫的基本特征有堅實的理論基礎(chǔ)(關(guān)系代數(shù))幾個元素組成的一個有序組稱為一個元組,通常元組是用圓括號括起來的一些元素表示,元素間使用逗號分隔。例如(E001,錢達(dá)理,男,東風(fēng)路78號)是元組的例子。在關(guān)系數(shù)據(jù)庫中,可以把一個表的每一行看作一個元組。數(shù)據(jù)結(jié)構(gòu)簡單、易于理解對用戶提供了較全面的操作支持得到了眾多開發(fā)商的支持?jǐn)?shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB542.5關(guān)系代數(shù)域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:整數(shù)實數(shù)介于某個取值范圍的整數(shù)指定長度的字符串集合{‘男’,‘女’}介于某個取值范圍的日期{張清玫,劉逸}{計算機(jī)專業(yè),通信工程專業(yè)}數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB552.5關(guān)系代數(shù)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D=D1×D2×…×Dn={(d1,d2,…,dn)|di

Di,i=1,2,…,n}所有域的所有取值的一個組合不能重復(fù)數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB562.5關(guān)系代數(shù)笛卡爾積(續(xù))設(shè)有三個集合如下:A={a1,a2},B={b1,b2},C={c1,c2},則集合A、B、C上的笛卡兒積為數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB57ABCa1b1c1a1b1c2a1b2c1a1b2c2a2b1c1a2b1c2a2b2c1a2b2c22.5關(guān)系代數(shù)笛卡爾積(續(xù))D中的每一個元素(d1,d2,…,dn)叫做一個元組。元組中的每一個值di叫做一個分量。一個元組是組成該元組的各分量的有序集合,而不僅僅是各分量集合。笛卡爾積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域?;鶖?shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB582.5關(guān)系代數(shù)關(guān)系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關(guān)系,表示為

R(D1,D2,…,Dn)

R:關(guān)系名

n:關(guān)系的目或度(Degree)每個關(guān)系都有一個關(guān)系名。二維表的名稱就是關(guān)系的名稱,二維表的每一列都是一個屬性。n元關(guān)系就會有n個屬性。一個關(guān)系中的每一個屬性都有一個名字,且各個屬性的屬性名都不同,對應(yīng)參與笛卡兒積運(yùn)算的每個集合的名稱。一個屬性的取值范圍Di(i=1,2,3,…,n)稱為該屬性的域(Domain)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB592.5關(guān)系代數(shù)基本關(guān)系的性質(zhì)列是同質(zhì)的(Homogeneous)每一列中的分量是同一類型的數(shù)據(jù),來自同一個域不同的列可出自同一個域(注意屬性和域的關(guān)系)其中的每一列稱為一個屬性不同的屬性要給予不同的屬性名列的順序無所謂,列的次序可以任意交換任意兩個元組不能完全相同行的順序無所謂,行的次序可以任意交換分量必須取原子值:各分量都是不可分的數(shù)據(jù)項。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB602.5關(guān)系代數(shù)關(guān)系模式實際上完整的關(guān)系模式的數(shù)學(xué)定義為:

R(U、D、dom、F)

其中:R為關(guān)系模式名,U為組成該關(guān)系的屬性名的集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域映像的集合,F(xiàn)為屬性間函數(shù)依賴關(guān)系的集合。關(guān)系模式通常簡寫為:

R(U)或R(A1,A2,A3,…,An)

其中:R為關(guān)系名,Ai(i=1,2,3,…,n)為屬性名。域名構(gòu)成的集合及屬性向域映像的集合一般為關(guān)系模式定義中的屬性的類型和長度。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB612.5關(guān)系代數(shù)關(guān)系運(yùn)算符關(guān)系運(yùn)算符主要包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)比較運(yùn)算符和邏輯運(yùn)算符。(1)集合運(yùn)算符:∪(并運(yùn)算)、─(差運(yùn)算)、∩(交運(yùn)算)、╳(笛卡爾集)。(2)專門的關(guān)系運(yùn)算符:σ(選擇)、兀(投影),?(連接)、÷(除)。(3)(算術(shù))比較運(yùn)算符:>(大于)、≥(大于等于)、<(小于)、≤(小于等于)、=(等于)、≠(不等于)。(4)邏輯運(yùn)算符:﹁(非)、∧(與)、∨(并)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB622.5關(guān)系代數(shù)關(guān)系運(yùn)算種類關(guān)系運(yùn)算的種類可分為兩類,即傳統(tǒng)的關(guān)系運(yùn)算和專門的關(guān)系運(yùn)算。傳統(tǒng)和關(guān)系運(yùn)算將關(guān)系看做元組的集合,即關(guān)系運(yùn)算的方向是“水平”方向行的角度來進(jìn)行。專門的關(guān)系運(yùn)算不僅涉及行而且涉及列。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB632.5關(guān)系代數(shù)傳統(tǒng)的集合運(yùn)算主要使用傳統(tǒng)的集合運(yùn)算方法,將關(guān)系(表)作為行(元組)的集合,從關(guān)系(表)的行方向角度進(jìn)行運(yùn)算。有時需要兩個關(guān)系進(jìn)行運(yùn)算,例如找到兩個表中相同的部分,這種運(yùn)算類似于傳統(tǒng)集合運(yùn)算中的交運(yùn)算。傳統(tǒng)的集合運(yùn)算可以實現(xiàn)的基本操作:①并運(yùn)算,實現(xiàn)數(shù)據(jù)的插入和添加。②差運(yùn)算,實現(xiàn)數(shù)據(jù)記錄的刪除。③修改數(shù)據(jù)記錄的操作,由先刪除(差)后插入(并)兩個操作實現(xiàn)。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB642.5關(guān)系代數(shù)并運(yùn)算設(shè)關(guān)系R和關(guān)系S是同一關(guān)系模式下的關(guān)系,則關(guān)系R和關(guān)系S的并(Union)運(yùn)算是指關(guān)系R和關(guān)系S的所有元組合并,再刪除重復(fù)的元組,組成一個新關(guān)系,其結(jié)果仍為n元關(guān)系。記作:其中,“∪”為并運(yùn)算符,t為關(guān)系R或關(guān)系S的元組變量,“∨”為邏輯或運(yùn)算符。數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB652.5關(guān)系代數(shù)數(shù)據(jù)庫技術(shù)及應(yīng)用——基于SQLServer2016和MongoDB66差運(yùn)算設(shè)關(guān)系R和S是同一關(guān)系模式下的關(guān)系,則R和S的差(Difference)運(yùn)算是由屬于R但不屬于S的元組組成的集合,即關(guān)系R中刪除與關(guān)系S中相同的元組,組成一個新的關(guān)系,其結(jié)果仍為n元關(guān)系。記作:其中,“-”為差運(yùn)算符,t為元組變量,“∧”為邏輯與運(yùn)算符。差運(yùn)算主要用于關(guān)系數(shù)據(jù)的刪除操作。2.5關(guān)系代數(shù)交運(yùn)算關(guān)系R和S是同一關(guān)系模式下的關(guān)系,則R和S的交(Intersection)運(yùn)算是由既屬于R又屬于

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論