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

下載本文檔

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

文檔簡(jiǎn)介

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

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

二特點(diǎn)

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

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

CREATETABLE

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

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

notnull,null,default常數(shù)

4.屬性域的約束

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

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

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

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

foreignkey外碼reference主表(主碼)

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

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

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

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

noaction

例:對(duì)xk表說(shuō)明外碼,并按級(jí)聯(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)包括如下屬性:身份證號(hào),姓名,住址,聯(lián)系電話,性別,配偶身份證號(hào)。請(qǐng)建立該表的模式,并設(shè)定參照完整性。

解答:

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

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

ISA

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

例:一個(gè)E-R模型的實(shí)例

客戶(hù)儲(chǔ)蓄類(lèi)別開(kāi)戶(hù)ISA大客戶(hù)帳號(hào)

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

三聯(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)部門(mén)職員領(lǐng)導(dǎo)屬于部門(mén)號(hào)職員號(hào)名稱(chēng)姓名

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

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

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

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

考慮如下的E-R模型:確定聯(lián)系的碼??蛻?hù)儲(chǔ)蓄開(kāi)戶(hù)帳號(hào)身份證號(hào)儲(chǔ)蓄編號(hào)余額

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

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

對(duì)象標(biāo)識(shí)符.VALUES:

表示對(duì)象的一組值

4.對(duì)象值的類(lèi)型.基本類(lèi)型char,float,integer,date.引用類(lèi)型類(lèi)名

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

3.Class

類(lèi)名[key(一組屬性)]

extent外部名{

attribute

類(lèi)型屬性名;…

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

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

4.子類(lèi)

定義:一個(gè)類(lèi)的對(duì)象集是另一個(gè)對(duì)象集的子集。繼承性:語(yǔ)句:

class

子類(lèi)名:超類(lèi)名{

attribute類(lèi)型屬性名;…

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

例:用ODL語(yǔ)言描述選課E-R圖

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

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.實(shí)體向類(lèi)的轉(zhuǎn)化。

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

轉(zhuǎn)化為:

學(xué)生課程選課選擇被選成績(jī)課號(hào)學(xué)號(hào)

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

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

演員電影姓名住址名稱(chēng)制片廠演出角色長(zhǎng)度

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

語(yǔ)句:ROW(屬性1類(lèi)型1,…,屬性n

類(lèi)型n)

如:

dz(地址)可定義為:

ROW(shc(20),sic(20),xuanc(20))2.用戶(hù)自定義類(lèi)型(UDT)

用createtype定義的類(lèi)型稱(chēng)為UDT。

語(yǔ)句:createtype

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

作用:.為屬性提供一種新類(lèi)型。.其值以對(duì)象方式存儲(chǔ)。.定義類(lèi)型化表。

例:定義讀者類(lèi)型。它包括讀者編號(hào),姓名。

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

有了dztype后,可以在表的定義和對(duì)象的定義中使用該類(lèi)型。子類(lèi)型的定義語(yǔ)句:createtype子類(lèi)名under超類(lèi)名

as(屬性1類(lèi)型1,…,屬性n類(lèi)型n)

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

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

createtypexstypeunderdztypeas(

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

注意:xstype

類(lèi)型繼承了dztype類(lèi)型的前兩個(gè)屬性。

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

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

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

三對(duì)象與表的定義1.對(duì)象定義語(yǔ)句:

createtable類(lèi)名of

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

以上定義的表稱(chēng)為類(lèi)型化表。該對(duì)象表按對(duì)象方式存放。通過(guò)指針類(lèi)型建立對(duì)象之間的聯(lián)系。

2.表的定義

creattable

表名(屬性1類(lèi)型1,…,屬性n

類(lèi)型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的基本概念定義:在文本文件中插入某些標(biāo)記,由因特網(wǎng)識(shí)別的文件。特點(diǎn):.HTML語(yǔ)言規(guī)定了一組標(biāo)記的集合。每個(gè)標(biāo)記有特定的含義。.瀏覽器能識(shí)別這些標(biāo)記,并將HTML文件轉(zhuǎn)換為人所熟悉的形式,在屏幕上顯示出來(lái)。

.HTML文件沒(méi)有格式描述語(yǔ)句。2.HTML文件的一個(gè)例子:<html><head><title>

標(biāo)題</title></head><body><p>

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

說(shuō)明:.每個(gè)標(biāo)記稱(chēng)為元素,元素可以嵌套,開(kāi)標(biāo)記與閉標(biāo)記應(yīng)成對(duì)出現(xiàn)。.每個(gè)開(kāi)標(biāo)記可帶屬性,屬性為瀏覽器提供參數(shù)。如:<Img

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

二XML

文件的基本概念1.定義:XML是擴(kuò)展的HTML,它具有文件格式定義和查詢(xún)的功能。2.特點(diǎn):.用戶(hù)可以自定義任何標(biāo)記。.增加了文件類(lèi)型描述語(yǔ)言(DTD)。.增加了基于XML的查詢(xún)(Xquery)

XML的語(yǔ)言成份1.XML元素:用于表示文檔內(nèi)容的基本單位?;靖袷綖椋?/p>

<標(biāo)簽名屬性名=…>…</標(biāo)簽名>

說(shuō)明:對(duì)元素內(nèi)容進(jìn)行標(biāo)識(shí)。2.指令:<?指令>:要求XML處理器應(yīng)完成的功能。如:<?XMLVersion=‘1.0’>注釋?zhuān)?lt;!注釋內(nèi)容>

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

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

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

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

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

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

元素名屬性名類(lèi)型強(qiáng)制性要求>

3DTD中的類(lèi)型.元素值類(lèi)型:#PCDATA

字符型.屬性類(lèi)型:ID元素標(biāo)識(shí)碼,在文檔中的值是唯一的。

IDREF引用另一元素的碼.強(qiáng)制性要求:#REQUIRED

必須的#IMPLIED

可選擇的一個(gè)DTD格式文件實(shí)例

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

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

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

crscode=“111111111”>

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

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

CREATEASSERTION斷言名CHECK

條件說(shuō)明:當(dāng)條件為假時(shí),DBMS終止操作,并提示用戶(hù)。例:限制每門(mén)課的選課人數(shù)不能超過(guò)100人。

CREATEASSERTIONRSXZCHECK100>=ALL(SELECTCOUNT(XH)FROMXKGROUPBYKH

請(qǐng)問(wèn):如何寫(xiě)一斷言限制學(xué)生選課門(mén)數(shù)超過(guò)8門(mén)。CREATEASSERTIONXKMSCHECK(8>=ALL(SELECTCOUNT(*)FROMXKGROUPBYXH)

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

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

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

UPDATEOF屬性。

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論