




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章數據模型第二章數據模型模型(Model)是對現實世界的抽象。數據模型(DataModel)是對現實世界數據特征的抽象,是用來描述數據的一組概念和定義。數據模型是理解數據庫的基礎,現有的數據庫都是基于某種數據模型建立的,數據模型是數據庫系統(tǒng)的核心。要為數據庫建立數據模型,首先要深入到信息的現實世界中進行系統(tǒng)需求分析,建立概念模型真實地、全面的描述現實世界中事物及聯系,然后再將概念模型轉化成數據模型。本章介紹信息的三個世界及聯系、概念模型及其表示方法以及幾種常見的數據模型
第二章數據模型2.1信息的三種世界及描述2.2概念模型及表示2.3數據模型2.4疑難問題解答2.5本章小結2.1信息的三種世界及描述
(1)現實世界指客觀事物及其聯系之實際存在?,F實世界是獨立于人們意識之外的客觀世界,事物及其聯系就處在這個世界中。。2.1信息的三種世界及描述2)信息世界
指現實世界在人腦中形成的概念。信息世界又稱為觀念世界,客觀事物在觀念世界中稱為實體
信息模型又稱“實體聯系模型”,是客觀事物及其自然聯系在人腦中形成的概念。數據模型本質上是“信息模型”的數據化表示信息世界的基本概念實體(Entity):客觀存在并可相互區(qū)分的事物。實體集(EntitySet):同類型實體的集合。每個實體集必須命名。屬性(Attribute):實體所具有的特征和性質。屬性值(AttributeValue):為實體的屬性取值。域(Domain):屬性值的取值范圍。碼(Key):唯一標識實體集中一個實體的屬性或屬性集。實體型(EntityType):表示實體信息結構,由實體名及其屬性名集合表示。如:實體名(屬性1,屬性2,…)
學生(學號,姓名,性別,年齡)2.1信息的三種世界及描述(3)數據世界
是指人腦觀念的數據化,進入計算機領域。數據世界是觀念世界中信息的數據化?,F實世界中的事物及聯系在數據世界中用數據模型來描述※機器世界中的四個概念:
(1)字段--標記實體屬性的命名單位稱為字段或數據項
(2)記錄--字段的有序集合
(3)文件--同一類記錄的匯集
(4)鍵(關鍵碼)--能唯一標識文件中每個記錄的字段或字段集。這個概念與實體標識符的概念相對應。2.1信息的三種世界及描述3.名詞術語(1)實體與屬性
實體是現實世界任何可相互區(qū)別的事物,不論是實際存在的東西,還是概念性的東西,或是事物與事物之間的聯系,一律統(tǒng)稱為實體。
屬性是實體所具有的性質,統(tǒng)稱為屬性。如同現實世界中不同事物是由其特征決定的一樣,在信息世界中不同實體是由其屬性的不同而被區(qū)分的。
實體與屬性分別是客觀世界中對象與性質的抽象描述。一個對象具有某些屬性,反過來,若干屬性可以描述某一個對象。對象與屬性之間具有相對性,即一個對象具有某一個屬性,又可能是其他屬性描述的對象
例如,對象“職工”具有以下屬性:姓名、性別、籍貫、出生日期、畢業(yè)學校等等,而“畢業(yè)學?!庇质切C?、校址、學校人數等屬性描述的對象。
[注意]
實體靠屬性來描述,實體與屬性構成了信息世界表達概念的兩個不同單位。2.1信息的三種世界及描述
(2)實體與屬性的“型”與“值”
實體和屬性都有“型”與“值”之分。“型”是概念的內涵,而“值”是概念的實例?!靶汀北磉_的是個體的共性,表示一個總體,是一個框架;而“值”是個體,是個體的具體內容。
例如:姓名、年齡、性別組成一個記錄型,它的取值為為張英、20歲、女、是一個記錄值。數據項“姓名”的“型”就是名稱為“姓名”,數據特征最長為四位的字符串,而它的值可以是張英、李桂芳、歐陽青等等。記錄型與記錄值通常稱為記錄,同一術語在“型”與“值”不同的兩級平行使用,這時應根據上下文的含義,判斷該術語指的是“型”還是“值”
[注意]
通常,屬性型是個變量,而屬性值是該變量的取值
2.1信息的三種世界及描述(3)實體集
同一類型實體的集合稱為實體集。
(4)域
實體中的每個屬性,都有一個取值范圍,這叫做屬性的域。域可以是整數、實數、字符串、日期、邏輯值等。
[注意]
各實體集相應的屬性有著相同的域。
(5)鍵
鍵也稱關鍵字。所謂鍵,是指實體屬性中,可用于區(qū)別實體集中不同個體的那個屬性或屬性的組合,稱為該實體的鍵。2.1信息的三種世界及描述
例如:在“居民”這個實體中,“身份證號碼”可以作為鍵,因為一旦身份證號碼有了一個值,便惟一地標識了“居民”這個實體集中的某一個個體;當然,“姓名”也可以作為鍵,但是如果出現重名現象,“姓名”這個屬性就不能作為鍵了。
[注意]
但有多個屬性可作為鍵而選定其中一個時,則稱它為該實體的“主鍵”。若在實體諸屬性中,某屬性雖非該實體主鍵,卻是另一實體的主鍵,稱此屬性為“外部鍵”?,F實世界中客觀對象的抽象過程認識抽象信息世界-概念數據模型機器世界-DBMS支持的數據模型現實世界轉換第二章數據模型2.1信息的三種世界及描述2.2概念模型及表示2.3數據模型2.4疑難問題解答2.5本章小結2.2概念模型及表示
概念模型是現實世界到機器世界的一個中間層次?,F實世界的事物反映到人的頭腦中來,人們把這些事物抽象為一種既不依賴于計算機系統(tǒng)又不為某一DBMS支持的概念模型,然后把概念模型轉換為某一DBMS支持的數據模型。概念模型是對信息世界的管理對象、屬性、及聯系等信息的描述形式,概念模型針對于抽象的信息世界。2.2概念模型及表示概念模型是從現實世界到機器世界的一個中間層次。建立概念模型的目的是將用戶關于企業(yè)的描述及業(yè)務的需求等信息準確的紀錄下來,按用戶的觀點對數據和信息建模。這類模型強調其語義表達能力,它要能較方便地、直觀地表達應用中各種語義知識,如被描述對象的意義和相互關系等。是用戶和數據庫設計人員之間進行交流與溝通的工具。2.2概念模型及表示概念模型實際上是現實世界到機器世界的一個中間層次。把現實世界中的客觀對象抽象為某種信息結構,這種信息結構不依賴于具體的計算機系統(tǒng),完全不涉及信息在計算機系統(tǒng)中的結構。強調語義表達能力,概念簡單清晰,易于理解,是用戶和DB設計人員交流的工具。表示方法--E-R模型實體聯系模型(Entity
RelationshipModel)E-R圖2.2概念模型及表示聯系(Relationship):在現實世界中,事物內部以及事物之間是有聯系的,這些聯系在信息世界中反映為實體型內部的聯系和實體型之間的聯系。兩個實體型之間存在的聯系有三類兩個以上的實體型之間存在的聯系有三類同一個實體集內的各實體之間存在的聯系有三類
(1)一對一聯系1:1 (2)一對多聯系1:n (3)多對多聯系m:n實體聯系類型兩個實體型間的聯系實體型1聯系名實體型2111:1聯系實體型1聯系名實體型2mnm:n聯系實體型1聯系名實體型21n1:n聯系兩個實體型間的聯系一對一聯系如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯系,反之亦然,則稱實體集A與實體集B具有一對一聯系。記為1:1。
實例班級與班長之間的聯系:一個班級只有一個正班長一個班長只在一個班中任職兩個實體型間的聯系(續(xù))一對多聯系如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多聯系記為1:n實例班級與學生之間的聯系:一個班級中有若干名學生,每個學生只在一個班級中學習兩個實體型間的聯系(續(xù))多對多聯系(m:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯系,則稱實體集A與實體B具有多對多聯系。記為m:n實例課程與學生之間的聯系:一門課程同時有若干個學生選修一個學生可以同時選修多門課程多個實體型間的聯系(續(xù))多個實體型間的一對多聯系若實體集E1,E2,...,En存在聯系,對于實體集Ej(j=1,2,...,i-1,i+1,...,n)中的給定實體,最多只和Ei中的一個實體相聯系,則我們說Ei與E1,E2,...,Ei-1,Ei+1,...,En之間的聯系是一對多的。多個實體型間的聯系(續(xù))實例
課程、教師與參考書三個實體型如果一門課程可以有若干個教師講授,使用若干本參考書,每一個教師只講授一門課程,每一本參考書只供一門課程使用課程與教師、參考書之間的聯系是一對多的多個實體型間的一對一聯系多個實體型間的多對多聯系同一實體集內各實體間的聯系一對多聯系實例
職工實體集內部具有領導與被領導的聯系某一職工(干部)“領導”若干名職工一個職工僅被另外一個職工直接領導這是一對多的聯系一對一聯系多對多聯系2.概念模型的表示方法概念模型的表示方法很多實體-聯系方法(E-R方法)用E-R圖來描述現實世界的概念模型E-R方法也稱為E-R模型E-R圖實體型用矩形表示,矩形框內寫明實體名。學生教師E-R圖(續(xù))屬性用橢圓形表示,并用無向邊將其與相應的實體連接起來學生學號年齡性別姓名E-R圖(續(xù))聯系聯系本身:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)聯系的屬性:聯系本身也是一種實體型,也可以有屬性。如果一個聯系具有屬性,則這些屬性也要用無向邊與該聯系連接起來
聯系的表示方法實體型1聯系名實體型2111:1聯系實體型1聯系名實體型2mnm:n聯系實體型1聯系名實體型21n1:n聯系聯系的表示方法(續(xù))實體型1聯系名mn同一實體型內部的m:n聯系實體型1聯系名實體型21m多個實體型間的1:n聯系實體型3n聯系的表示方法示例班級班級-班長班長111:1聯系課程選修學生mnm:n聯系班級組成學生1n1:n聯系聯系的表示方法示例(續(xù))職工領導1n同一實體型內部的1:n聯系課程講授教師1m多個實體型間的1:n聯系參考書n聯系屬性的表示方法課程選修學生mn成績某工廠的物資管理物資管理涉及的實體: 倉庫屬性有倉庫號、面積、號碼 零件屬性有零件號、名稱、規(guī)格、單價 供應商屬性有供應商號、姓名、地址、號碼 項目屬性有項目號、預算、開工日期 職工屬性有職工號、姓名、年齡、職稱實體之間的聯系 (1)一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中。用庫存量來表示某種零件在某個倉庫中的數量。 (2)一個倉庫有多個職工當倉庫保管員,一個職工只能在一個倉庫工作。 (3)職工之間有領導-被領導關系。 (4)一個供應商可以供給若干項目多種零件,每個項目可以使用不同供應商供應的零件,每種零件可由不同供應商供給。用供應量來表示某供應商供應了多少數量的零件給某個項目。
第二章數據模型2.1信息的三種世界及描述2.2概念模型及表示2.3數據模型2.4疑難問題解答2.5本章小結2.3數據模型
1.數據模型
數據模型是客觀事物及其聯系的數據描述,數據模型不僅要表示存儲了哪些數據,更重要的是以一定的結構形式表示出各種不同的數據之間的聯系。利用這種聯系可以很快地找到相關聯的一串數據,從而可以利用這種聯系做各種運算處理。數據模型應具有描述數據和數據聯系兩方面功。
[注意]
數據模型是實體模型的數據化。
數據模型表示的只是數據庫的框架,在框架的約束下填上具體數據才能成為真正的數據庫。2.3數據模型
2.數據的描述
對數據的描述應指出:模型中包含哪些記錄類型,并對記錄類型進行命名;指明各個記錄類型由哪些數據項構成,并隊數據項進行命名,每個數據項均需指明其數據類型和取值范圍。
3.數據間聯系的描述
對數據間聯系的描述要指明:各個不同記錄類型間所存在的聯系和聯系方式。數據模型中的“聯系”是一種特殊類型的記錄,通常還要對這種“聯系”進行命名。2.3數據模型
[注意]
數據庫系統(tǒng)與文件系統(tǒng)本質的不同就表現在文件系統(tǒng)中的記錄之間沒有聯系,而在數據庫中各個記錄好似互相聯系的,正是通過這種聯系,數據庫才能支持訪問不同類型記錄的數據。數據模型的三要素
(1)數據結構數據結構是所研究的對象類型(ObjectType)的集合。這些對象是數據庫的組成成分,它們包括兩類,一類是與數據類型、內容、性質有關的對象,例如網狀模型中的數據項、記錄,關系模型中的域、屬性、關系等;一類是與數據之間聯系有關的對象,例如網狀模型中的系型(SetType)。數據結構是對系統(tǒng)靜態(tài)特性的描述。數據結構是刻畫一個數據模型性質最重要的方面。數據模型的三要素(2)數據操作數據操作是指對數據庫中各種數據對象允許執(zhí)行的操作的集合,包括操作對象及有關的操作規(guī)則。數據庫主要有數據檢索和數據更新(包括插入、刪除、修改)兩大類操作。數據模型必須定義這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先級)以及實現操作的語言。數據操作是對系統(tǒng)動態(tài)特性的描述。數據模型的三要素(3)數據完整性約束條件數據的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是數據模型中數據及其聯系所具有的制約和依存規(guī)則,用以限定符合數據模型的數據庫狀態(tài)以及狀態(tài)的變化,以保證數據的正確、有效、相容。
數據庫有不同的類型,它是根據數據模型劃分的。在計算機系統(tǒng)中,任何一個數據庫管理系統(tǒng)都是根據不同的數據模型有針對性地設計出來的。目前比較成熟的數據模型有:層次模型、網狀模型和關系模型三種。其中關系模型在數據庫系統(tǒng)中廣泛應用,是本書講解的重點
一層次模型
層次模型是用樹結構表示記錄類型及其聯系的數據模型。2.3數據模型1.層次數據模型的數據結構層次模型
滿足下面兩個條件的基本層次聯系的集合為層次模型。1.有且只有一個結點沒有雙親結點,這個結點稱為根結點2.根以外的其它結點有且只有一個雙親結點層次模型中的幾個術語根結點,雙親結點,兄弟結點,葉結點層次數據模型的數據結構(續(xù))
R1
根結點
R2
兄弟結點
R3
葉結點
R4
兄弟結點
R5
葉結點
葉結點層次數據模型的數據結構(續(xù))表示方法實體型:用記錄類型描述。每個結點表示一個記錄類型。屬性:用字段描述。每個記錄類型可包含若干個字段。聯系:用結點之間的連線表示記錄(類)型之間的一對多的聯系實例:教員-學生數據模型(P23)層次數據模型的數據結構(續(xù))特點結點的雙親是唯一的只能直接處理一對多的實體聯系每個記錄類型定義一個排序字段,也稱為碼字段任何記錄值只有按其路徑查看時,才能顯出它的全部意義沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在層次數據模型的數據結構(續(xù))多對多聯系在層次模型中的表示用層次模型間接表示多對多聯系方法將多對多聯系分解成一對多聯系分解方法冗余結點法虛擬結點法2.層次模型的數據操縱
查詢插入刪除更新3.層次模型的完整性約束無相應的雙親結點值就不能插入子女結點值如果刪除雙親結點值,則相應的子女結點值也被同時刪除更新操作時,應更新所有相應記錄,以保證數據的一致性4.層次數據模型的存儲結構鄰接法按照層次樹前序遍歷的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實現層次順序鏈接法用指引元來反映數據之間的層次聯系子女-兄弟鏈接法P26層次序列鏈接法P265.層次模型的優(yōu)缺點優(yōu)點層次數據模型簡單,對具有一對多的層次關系的部門描述自然、直觀,容易理解性能優(yōu)于關系模型,不低于網狀模型層次數據模型提供了良好的完整性支持缺點多對多聯系表示不自然對插入和刪除操作的限制多查詢子女結點必須通過雙親結點層次命令趨于程序化6.典型的層次數據庫系統(tǒng)IMS數據庫管理系統(tǒng)第一個大型商用DBMS1968年推出IBM公司研制2.3數據庫類型二.網狀模型用有向圖結構表示實體類型及實體間聯系的數據模型。
[注意]
網狀模型有一個以上的結點無父結點;至少有一個結點有多于一個父結點。
網狀模型能夠反映各種復雜聯系情況。在網狀模型的具體實現上,對于記錄間的m:n聯系,是將其轉換m個1:n聯系來處理的1.網狀數據模型的數據結構網狀模型滿足下面兩個條件的基本層次聯系的集合為網狀模型。1.允許一個以上的結點無雙親;2.一個結點可以有多于一個的雙親。網狀數據模型的數據結構
R1
R2
R3
L1L2
R1
R2
L3
L1L2
R3
L4
R4
R5
網狀數據模型的數據結構(續(xù))表示方法(與層次數據模型相同)實體型:用記錄類型描述。每個結點表示一個記錄類型。屬性:用字段描述。每個記錄類型可包含若干個字段。聯系:用結點之間的連線表示記錄(類)型之間的一對多的父子聯系。網狀數據模型的數據結構(續(xù))特點只能直接處理一對多的實體聯系每個記錄類型定義一個排序字段,也稱為碼字段任何記錄值只有按其路徑查看時,才能顯出它的全部意義網狀數據模型的數據結構(續(xù))網狀模型與層次模型的區(qū)別網狀模型允許多個結點沒有雙親結點網狀模型允許結點有多個雙親結點網狀模型允許兩個結點之間有多種聯系(復合聯系)網狀模型可以更直接地去描述現實世界層次模型實際上是網狀模型的一個特例網狀數據模型的數據結構(續(xù))
R1
R2
R3
L1L2
R1
R2
L3
L1L2
R3
L4
R4
R5
網狀數據模型的數據結構(續(xù))
R1
L1L2
R2網狀數據模型的數據結構(續(xù))學生宿舍學生教研室系教師網狀數據模型的數據結構(續(xù))父母人子女樹種植砍伐養(yǎng)育贍養(yǎng)網狀數據模型的數據結構(續(xù))多對多聯系在網狀模型中的表示用網狀模型間接表示多對多聯系方法將多對多聯系直接分解成一對多聯系2.網狀模型的數據操縱查詢插入刪除更新3.網狀數據模型的完整性約束網狀數據庫系統(tǒng)(如DBTG)對數據操縱加了一些限制,提供了一定的完整性約束碼雙親結點與子女結點之間是一對多聯系屬籍類別加入類別(自動的,手工的)移出類別(固定的,必須的,隨意的)3.網狀數據模型的完整性約束完整性約束條件允許插入尚未確定雙親結點值的子女結點值允許只刪除雙親結點值4.網狀數據模型的存儲結構關鍵實現記錄之間的聯系常用方法單向鏈接雙向鏈接環(huán)狀鏈接向首鏈接例:P295.網狀模型的優(yōu)缺點優(yōu)點能夠更為直接地描述現實世界,如一個結點可以有多個雙親具有良好的性能,存取效率較高缺點結構比較復雜,而且隨著應用環(huán)境的擴大,數據庫的結構就變得越來越復雜,不利于最終用戶掌握DDL、DML語言復雜,用戶不容易使用6.典型的網狀數據庫系統(tǒng)DBTG系統(tǒng),亦稱CODASYL系統(tǒng)由DBTG提出的一個系統(tǒng)方案奠定了數據庫系統(tǒng)的基本概念、方法和技術70年代推出實際系統(tǒng)CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE2.3數據庫類型
三.關系模型
關系的本質是一張二維表,而關系模型的本質則是用若干個二維表表示實體及其聯系。關系模型與層次模型和網狀模型的理論和風格截然不同,如果說層次和網狀模型是用“圖”來表示實體及其聯系,那么關系模型則是用“表”來表示實體及其聯系的。關系數據模型的數據結構在用戶觀點下,關系模型中數據的邏輯結構是一張二維表,它由行和列組成。關系模型的基本概念關系(Relation)一個關系對應通常說的一張表。元組(Tuple)表中的一行即為一個元組。屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。關系模型的基本概念主碼(Key)表中的某個屬性組,它可以唯一確定一個元組。域(Domain)屬性的取值范圍。分量元組中的一個屬性值。關系模式對關系的描述關系名(屬性1,屬性2,…,屬性n)學生(學號,姓名,年齡,性別,系,年級)關系數據模型的數據結構(續(xù))實體及實體間的聯系的表示方法實體型:直接用關系(表)表示。屬性:用屬性名表示。一對一聯系:隱含在實體對應的關系中。一對多聯系:隱含在實體對應的關系中。多對多聯系:直接用關系表示。關系數據模型的數據結構(續(xù))例1學生、系、系與學生之間的一對多聯系:學生(學號,姓名,年齡,性別,系號,年級)系(系號,系名,辦公地點)例2系、系主任、系與系主任間的一對一聯系關系數據模型的數據結構(續(xù))例3學生、課程、學生與課程之間的多對多聯系:
學生(學號,姓名,年齡,性別,系號,年級)課程(課程號,課程名,學分)選修(學號,課程號,成績)關系數據模型的數據結構(續(xù))關系必須是規(guī)范化的,滿足一定的規(guī)范條件最基本的規(guī)范條件:關系的每一個分量必須是一
最新文檔
- 光纖新型結構設計考核試卷
- 建筑材批發(fā)商市場渠道營銷策略考核試卷
- 毛皮制品的數字化供應鏈考核試卷
- 味精企業(yè)的品牌形象塑造與傳播考核試卷
- 娛樂市場營銷策略與實施考核試卷
- 小麥加工中的谷物營養(yǎng)成分保持技術考核試卷
- 會展旅游與目的地營銷考核試卷
- 橡膠制品在工業(yè)機器人的靈活性考核試卷
- 寵物寄托中心寵物寄養(yǎng)服務法律援助平臺搭建考核試卷
- 智能車載語音交互技術考核試卷
- 天津市建筑安全員-C證考試題庫
- 2025年皖北衛(wèi)生職業(yè)學院單招職業(yè)適應性測試題庫參考答案
- 小學生春耕教學課件
- 2024年南信語文數學試卷(含答案)
- 2024年重慶市集中選調應屆大學畢業(yè)生到基層工作考試真題
- 2025年個人投資合同電子版模板
- 車輛掛靠協(xié)議書
- 2025年湖南交通職業(yè)技術學院單招職業(yè)適應性測試題庫1套
- 2017年公務員多省聯考《申論》真題(吉林甲級卷)及參考答案(含詳細解析)
- 一年級下冊健康成長教案
- 電力系統(tǒng)老化問題及其隱患解決方案研究報告發(fā)布
評論
0/150
提交評論