第一章 數(shù)據(jù)模型_第1頁
第一章 數(shù)據(jù)模型_第2頁
第一章 數(shù)據(jù)模型_第3頁
第一章 數(shù)據(jù)模型_第4頁
第一章 數(shù)據(jù)模型_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章數(shù)據(jù)模型

內(nèi)容簡介:介紹現(xiàn)代數(shù)據(jù)庫常用的數(shù)據(jù)模型。數(shù)據(jù)模型在數(shù)據(jù)庫系統(tǒng)中的作用。數(shù)據(jù)模型之間的轉(zhuǎn)化。評價各種模型的優(yōu)劣。如何設(shè)計各種模型。第一節(jié)關(guān)系模型一關(guān)系模型的再定義:關(guān)系模型是用二維表表示數(shù)據(jù),規(guī)定表自身上的約束條件,以及表與表之間的約束條件的數(shù)據(jù)庫表示方法。他的操作是基于關(guān)系代數(shù)和關(guān)系演算的。

二特點

1簡潔的數(shù)據(jù)表示方法。2.堅實嚴謹?shù)睦碚摶A(chǔ)。(模式理論和運算理論)3.使用方便。

關(guān)系模型的不足1.應(yīng)用范圍的局限性。2.數(shù)據(jù)類型單調(diào)。3.受到第一范式的限制。4.缺少嵌套機制。(表中不能含表)。模式定義與域完整性約束1.基本語句

CREATETABLE

表名(屬性1類型1,…,)2.主碼的定義

primarykey(屬性1,…,屬性n)3.空值與缺省值

notnull,null,default常數(shù)

4.屬性域的約束

check(邏輯條件)例:建立成績表

CREATETABLEXK(xhc(10),khc(4),

cjintcheck(cj>=0andcj<=100),primarykey(xh,kh))

五外碼與參照完整性1.外碼:在另一張表中作為主碼的屬性。注意:外碼可在同一張表中。

foreignkey外碼reference主表(主碼)

2.參照完整性在次表中出現(xiàn)的外碼必須在主表中出現(xiàn)。

實現(xiàn)參照完整性的方法:1.級聯(lián)規(guī)則:.當主表作刪除時,外碼同時刪除。.當主表作修改時,外碼相應(yīng)修改。

ondeletecascadeonupdatecascade2.置空規(guī)則:.當主碼被刪除時,外碼被置空。

setnull3.禁止規(guī)則:禁止主碼作刪除。

noaction

例:對xk表說明外碼,并按級聯(lián)規(guī)則設(shè)置參照完整性。

createtablexk(xhc(10),khc(4),

cjintnotnullcheck(cj>=0andcj<=100),primarykey(xh,kh),foreignkeyxhreferencexs(xh),ondeletecascade,onupdatecascade,foreignkeykhreferencekc(kh),ondeletecascadeonupdatecascade)

思考題:設(shè)居民表應(yīng)包括如下屬性:身份證號,姓名,住址,聯(lián)系電話,性別,配偶身份證號。請建立該表的模式,并設(shè)定參照完整性。

解答:

createtablejm(sfzhmc(150),xmc(20),

zzc(20),xbc(2),lxdhc(20)),psfzc(15),primarykey(sfzhm),foreignkeypsfzreferencejm(sfzhm)ondeletesetnullonupdatecascade)第二節(jié)擴充的E-R模型及向關(guān)系模型的轉(zhuǎn)化子集與繼承性1.子集:如果一個實體集是另一個實體集的一部分。則稱該實體集為子集,另一實體集為超集。2.子集聯(lián)系:

ISA

3.繼承性:.子集繼承超集的所有屬性.子集繼承超級上的所有聯(lián)系

例:一個E-R模型的實例

客戶儲蓄類別開戶ISA大客戶帳號

實體集向關(guān)系的轉(zhuǎn)化\\*1.若屬性是簡單屬性,則可直接轉(zhuǎn)化為表模式。實體碼成為表的碼。2.若屬性是組合屬性,則把組合屬性轉(zhuǎn)化為簡單屬性。常見的組合屬性有.集合類型.數(shù)組類型.結(jié)構(gòu)類型

三聯(lián)系向關(guān)系模式的轉(zhuǎn)化1.1-1和1-n的轉(zhuǎn)化例將下列E-R圖轉(zhuǎn)化為關(guān)系模式

111n

LD(bmh,ygh)

和SY(bmh,ygh)BM(bmh,mc)YG(ygh,xm)部門職員領(lǐng)導(dǎo)屬于部門號職員號名稱姓名

思考題:還有其他的設(shè)計方法嗎?n-m的轉(zhuǎn)化方法將聯(lián)系轉(zhuǎn)化為關(guān)系模式。子集的轉(zhuǎn)化方法.在子集中引入超集的碼。.在超集中增加類別標志。例:有下列子集,怎么轉(zhuǎn)化?

學(xué)生研究生ISA學(xué)號導(dǎo)師

.YJS(xh,ds).XS(xh,lb)

想一想,把研究生分出來有什么好處?如何確定關(guān)系模式中的碼?1.實體碼直接成為關(guān)系的碼。2.聯(lián)系轉(zhuǎn)化為關(guān)系后,關(guān)系的碼由聯(lián)系的函數(shù)依賴決定。三種情況:.由實體碼決定.由實體碼的組合決定.由聯(lián)系的函數(shù)依賴決定

考慮如下的E-R模型:確定聯(lián)系的碼??蛻魞π铋_戶帳號身份證號儲蓄編號余額

五E—R模型優(yōu)劣評析1.直觀、簡潔。2.與機器模型無關(guān)。3.很容易轉(zhuǎn)變?yōu)殛P(guān)系模型。4.有時難以區(qū)分實體與聯(lián)系。有時難以區(qū)分是實體屬性還是聯(lián)系屬性。5.缺乏對實體和聯(lián)系上的操作的描述機制。

思考題:每份合同中應(yīng)寫明定購商名稱,所在地,聯(lián)系電話,供貨商名稱,所在地,聯(lián)系電話,經(jīng)手人,商品編號,類別,型號,品牌,數(shù)量,單價,金額,訂貨日期,交貨日期。每份合同可定若干種商品。請畫出反應(yīng)合同業(yè)務(wù)的E-R圖,并轉(zhuǎn)化為關(guān)系模式。第三節(jié)面向?qū)ο竽P团cODL語言對象的基本概念1.對象:被計算機處理和唯一標識的基本單位。2.屬性:描述對象特征的數(shù)據(jù)項。3.對象的表示方法:{OID,[VALUES]}.OID:

對象標識符.VALUES:

表示對象的一組值

4.對象值的類型.基本類型char,float,integer,date.引用類型類名

.元組類型[…].組合類型set,array,structure類1.定義:具有相同屬性對象的集合。2.組成:.屬性.聯(lián)系.方法

3.Class

類名[key(一組屬性)]

extent外部名{

attribute

類型屬性名;…

relationship對象類型聯(lián)系名[inverse類名::聯(lián)系名];…}

說明:1.外部名用于查詢中。2.對象類型只能是基本對象類型和集合對象類型。3.Inverse用來反映相應(yīng)一對聯(lián)系,采用同一個物理結(jié)構(gòu)。

4.子類

定義:一個類的對象集是另一個對象集的子集。繼承性:語句:

class

子類名:超類名{

attribute類型屬性名;…

relationship對象類型聯(lián)系名[inverse類名::聯(lián)系名];…}

例:用ODL語言描述選課E-R圖

classstudentextentstudenttext{attributechar(10)xh;attributechar(20)xm;relationshipset(selectcourse)s_select;}學(xué)生課程選課學(xué)號姓名成績課程名課號

classcoursekey(kh)extentcoursetet{attributechar(4)kh;attributechar(20)km;relationshipset(selectcourse)c_selected;}classselectcourseextentsctext{attributeint

cj;relationshipcoursesc_course;relationshipstudentsc_student;}

E-R模型向?qū)ο竽P偷霓D(zhuǎn)化1.實體向類的轉(zhuǎn)化。

2.不帶聯(lián)系屬性的轉(zhuǎn)化。轉(zhuǎn)化為relationship3.帶聯(lián)系屬性的轉(zhuǎn)化。.通過屬性轉(zhuǎn)移。.通過引入弱實體。如:學(xué)生課程選課成績

轉(zhuǎn)化為:

學(xué)生課程選課選擇被選成績課號學(xué)號

四對象模型的評析1.類型豐富2.與面向?qū)ο蟪绦蛟O(shè)計方法保持一致。3.很容易與對象程序設(shè)計語言進行混合編程。4.缺乏對聯(lián)系屬性的描述,不如關(guān)系模型直觀。5.在查詢中可能出現(xiàn)副作用。

思考題:1.當聯(lián)系是多元聯(lián)系時,應(yīng)如何轉(zhuǎn)化?2.將下列E-R圖轉(zhuǎn)化為對象模型。

演員電影姓名住址名稱制片廠演出角色長度

說明:1.除長度是integer外,其余屬性為string。2.一部電影可能有多家制片公司制作。3.一名演員可能有多處住址,且由省,市,區(qū)(縣),街,社區(qū),門牌樓號。第四節(jié)對象--關(guān)系模型對象-關(guān)系模型1.定義:在數(shù)據(jù)庫中的數(shù)據(jù)或者是以元組的方式存放,或者是以對象的方式存放。2.特點:.在DBMS中存在兩種表示數(shù)據(jù)的方式。表和類。.在數(shù)據(jù)操作上,既適合關(guān)系的處理方式也適合對象的處理方式。新增的類型1.元組類型:

語句:ROW(屬性1類型1,…,屬性n

類型n)

如:

dz(地址)可定義為:

ROW(shc(20),sic(20),xuanc(20))2.用戶自定義類型(UDT)

用createtype定義的類型稱為UDT。

語句:createtype

類型名AS(屬性1類型1,…,屬性n類型n)

作用:.為屬性提供一種新類型。.其值以對象方式存儲。.定義類型化表。

例:定義讀者類型。它包括讀者編號,姓名。

createtypedztypeas(dzbhc(12),xmc(20)).

有了dztype后,可以在表的定義和對象的定義中使用該類型。子類型的定義語句:createtype子類名under超類名

as(屬性1類型1,…,屬性n類型n)

作用:定義一個子類型。它除了繼承超類型外,自身還有n個屬性。

例:在讀者類型中定義學(xué)生子類型,它還要增加學(xué)號,所在院系,籍貫(省、市、區(qū)縣)

createtypexstypeunderdztypeas(

xhc(12),szyxc(20),dzrow(shenc(20),Shic(20),xianc(20))

注意:xstype

類型繼承了dztype類型的前兩個屬性。

4.自定義類型屬性值的獲取與修改.獲取屬性值的方法:用屬性名表示。.改變屬性值的方法:屬性名(值)例如:在讀者類型中引用讀者編號

dz.dzbh獲取屬性函數(shù)

dz.sh(“湖北省“)改變屬性函數(shù)問:在學(xué)生類型中如何引用學(xué)生所在的省份?設(shè)xs是該類型上的變量。

三對象與表的定義1.對象定義語句:

createtable類名of

用戶自定義類型。作用:指明了該類的屬性由用戶自定義類型決定。如:將學(xué)生作為對象進行定義。例1:createtablexsofxstype.

以上定義的表稱為類型化表。該對象表按對象方式存放。通過指針類型建立對象之間的聯(lián)系。

2.表的定義

creattable

表名(屬性1類型1,…,屬性n

類型n)

如:定義學(xué)生表例2:

createtablexs(xhc(10),xmc(20),dzROW(shc(20),sic(20),xuan(20))

注意:例1與例2的區(qū)別。第五節(jié)WEB數(shù)據(jù)模型HTML

文件1.HTML的基本概念定義:在文本文件中插入某些標記,由因特網(wǎng)識別的文件。特點:.HTML語言規(guī)定了一組標記的集合。每個標記有特定的含義。.瀏覽器能識別這些標記,并將HTML文件轉(zhuǎn)換為人所熟悉的形式,在屏幕上顯示出來。

.HTML文件沒有格式描述語句。2.HTML文件的一個例子:<html><head><title>

標題</title></head><body><p>

段落</p></body></html>

說明:.每個標記稱為元素,元素可以嵌套,開標記與閉標記應(yīng)成對出現(xiàn)。.每個開標記可帶屬性,屬性為瀏覽器提供參數(shù)。如:<Img

Src=“Mxh.Jpg”Width=“145”Height=“130”Alt=“新聞?wù)掌?gt;

二XML

文件的基本概念1.定義:XML是擴展的HTML,它具有文件格式定義和查詢的功能。2.特點:.用戶可以自定義任何標記。.增加了文件類型描述語言(DTD)。.增加了基于XML的查詢(Xquery)

XML的語言成份1.XML元素:用于表示文檔內(nèi)容的基本單位。基本格式為:

<標簽名屬性名=…>…</標簽名>

說明:對元素內(nèi)容進行標識。2.指令:<?指令>:要求XML處理器應(yīng)完成的功能。如:<?XMLVersion=‘1.0’>注釋:<!注釋內(nèi)容>

作用:引入腳本語言,或其他XML指令。

4.XML結(jié)構(gòu)

XML文件是由若干元素適當嵌套的樹形結(jié)構(gòu)。子元素:嵌套在一個元素內(nèi)的元素稱為子元素。一個XML文件例子:

這是一個學(xué)生信息的XML文檔.doc

XML格式文件----DTD1.DTD是對XML文檔格式進行描述的文件。其作用為:.描述XML文檔的結(jié)構(gòu)。.描述元素屬性的數(shù)據(jù)類型。.描述元素之間的嵌套關(guān)系。DTD文件的構(gòu)成.文件說明<!DOCTYPE文件名>.元素說明:<!ELEMENT元素名(子元素1,…,子元素n)

說明:.反應(yīng)一個元素所包含的子元素。.用*號表示若干相同的子元素。.用EMPTY表示空元素??赵兀褐覆话魏巫釉睾驮貎?nèi)容的元素。.屬性說明:<!ATTLIST

元素名屬性名類型強制性要求>

3DTD中的類型.元素值類型:#PCDATA

字符型.屬性類型:ID元素標識碼,在文檔中的值是唯一的。

IDREF引用另一元素的碼.強制性要求:#REQUIRED

必須的#IMPLIED

可選擇的一個DTD格式文件實例

例:這是學(xué)生文檔的格式文件.doc

七.DTD格式文件的不足1.DTD

格式文件中屬性的類型單調(diào)。2.DTD中缺少嚴格的數(shù)據(jù)一致性檢查和描述功能。如:<CrsTaken

crscode=“111111111”>

crscode應(yīng)該是課程號,而不是學(xué)號。3.DTD中沒有引入XML的名字空間

XMLNS4.DTD中的標簽名是全局的,缺少局部標簽名。第六節(jié)斷言與觸發(fā)器一斷言1.定義設(shè)置數(shù)據(jù)庫應(yīng)滿足的條件;2.格式:

CREATEASSERTION斷言名CHECK

條件說明:當條件為假時,DBMS終止操作,并提示用戶。例:限制每門課的選課人數(shù)不能超過100人。

CREATEASSERTIONRSXZCHECK100>=ALL(SELECTCOUNT(XH)FROMXKGROUPBYKH

請問:如何寫一斷言限制學(xué)生選課門數(shù)超過8門。CREATEASSERTIONXKMSCHECK(8>=ALL(SELECTCOUNT(*)FROMXKGROUPBYXH)

觸發(fā)器1.事件:引起數(shù)據(jù)庫的狀態(tài)發(fā)生改變的操作。

2.定義:當設(shè)定的事件發(fā)生時,由DBMS自動啟動的維護數(shù)據(jù)庫一致性的程序。3.觸發(fā)事件:能夠啟動觸發(fā)器的事件。

刪除(DELETE),插入(INSERT),更新(

UPDATEOF屬性。

觸發(fā)時間:BEFOR;在操作前觸發(fā)

AFTER:在操作后觸發(fā)

INSTEADOF:取代操作。3觸發(fā)條件:執(zhí)行觸發(fā)器操作的條件。4觸發(fā)粒度:引起觸發(fā)器工作的數(shù)據(jù)單位。行粒度:(FOREACHROW)

表粒度(FOREACHSTATMENT)5操作:一組SQL語句,或其他語句。三語句與執(zhí)行1格式:CREATETRIGGER

觸發(fā)器名{before|after|insteadof屬性{insert|delete|updateof屬性名}ON表名

referencing[oldas元組名][newas元組名][oldtableas表名][newtableas表名][foreachrow|forstatement][when條件]語句序列。

2說明:刪除事件只有舊表或舊行。插入事件只有新表或新行。更新事件既有舊表,舊行,也有新表,新行。觸發(fā)器的啟動和執(zhí)行當觸發(fā)事件發(fā)生時,觸發(fā)器被激活,如果觸發(fā)條件成立,則執(zhí)行觸發(fā)器的操作,然后返回應(yīng)用程序繼續(xù)執(zhí)行。

溫馨提示

  • 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

提交評論