




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章數據模型
內容簡介:介紹現代數據庫常用的數據模型。數據模型在數據庫系統中的作用。數據模型之間的轉化。評價各種模型的優劣。如何設計各種模型。第一節關系模型一關系模型的再定義:關系模型是用二維表表示數據,規定表自身上的約束條件,以及表與表之間的約束條件的數據庫表示方法。他的操作是基于關系代數和關系演算的。
二特點
1簡潔的數據表示方法。2.堅實嚴謹的理論基礎。(模式理論和運算理論)3.使用方便。
關系模型的不足1.應用范圍的局限性。2.數據類型單調。3.受到第一范式的限制。4.缺少嵌套機制。(表中不能含表)。模式定義與域完整性約束1.基本語句
CREATETABLE
表名(屬性1類型1,…,)2.主碼的定義
primarykey(屬性1,…,屬性n)3.空值與缺省值
notnull,null,default常數
4.屬性域的約束
check(邏輯條件)例:建立成績表
CREATETABLEXK(xhc(10),khc(4),
cjintcheck(cj>=0andcj<=100),primarykey(xh,kh))
五外碼與參照完整性1.外碼:在另一張表中作為主碼的屬性。注意:外碼可在同一張表中。
foreignkey外碼reference主表(主碼)
2.參照完整性在次表中出現的外碼必須在主表中出現。
實現參照完整性的方法:1.級聯規則:.當主表作刪除時,外碼同時刪除。.當主表作修改時,外碼相應修改。
ondeletecascadeonupdatecascade2.置空規則:.當主碼被刪除時,外碼被置空。
setnull3.禁止規則:禁止主碼作刪除。
noaction
例:對xk表說明外碼,并按級聯規則設置參照完整性。
createtablexk(xhc(10),khc(4),
cjintnotnullcheck(cj>=0andcj<=100),primarykey(xh,kh),foreignkeyxhreferencexs(xh),ondeletecascade,onupdatecascade,foreignkeykhreferencekc(kh),ondeletecascadeonupdatecascade)
思考題:設居民表應包括如下屬性:身份證號,姓名,住址,聯系電話,性別,配偶身份證號。請建立該表的模式,并設定參照完整性。
解答:
createtablejm(sfzhmc(150),xmc(20),
zzc(20),xbc(2),lxdhc(20)),psfzc(15),primarykey(sfzhm),foreignkeypsfzreferencejm(sfzhm)ondeletesetnullonupdatecascade)第二節擴充的E-R模型及向關系模型的轉化子集與繼承性1.子集:如果一個實體集是另一個實體集的一部分。則稱該實體集為子集,另一實體集為超集。2.子集聯系:
ISA
3.繼承性:.子集繼承超集的所有屬性.子集繼承超級上的所有聯系
例:一個E-R模型的實例
客戶儲蓄類別開戶ISA大客戶帳號
實體集向關系的轉化\\*1.若屬性是簡單屬性,則可直接轉化為表模式。實體碼成為表的碼。2.若屬性是組合屬性,則把組合屬性轉化為簡單屬性。常見的組合屬性有.集合類型.數組類型.結構類型
三聯系向關系模式的轉化1.1-1和1-n的轉化例將下列E-R圖轉化為關系模式
111n
LD(bmh,ygh)
和SY(bmh,ygh)BM(bmh,mc)YG(ygh,xm)部門職員領導屬于部門號職員號名稱姓名
思考題:還有其他的設計方法嗎?n-m的轉化方法將聯系轉化為關系模式。子集的轉化方法.在子集中引入超集的碼。.在超集中增加類別標志。例:有下列子集,怎么轉化?
學生研究生ISA學號導師
.YJS(xh,ds).XS(xh,lb)
想一想,把研究生分出來有什么好處?如何確定關系模式中的碼?1.實體碼直接成為關系的碼。2.聯系轉化為關系后,關系的碼由聯系的函數依賴決定。三種情況:.由實體碼決定.由實體碼的組合決定.由聯系的函數依賴決定
考慮如下的E-R模型:確定聯系的碼。客戶儲蓄開戶帳號身份證號儲蓄編號余額
五E—R模型優劣評析1.直觀、簡潔。2.與機器模型無關。3.很容易轉變為關系模型。4.有時難以區分實體與聯系。有時難以區分是實體屬性還是聯系屬性。5.缺乏對實體和聯系上的操作的描述機制。
思考題:每份合同中應寫明定購商名稱,所在地,聯系電話,供貨商名稱,所在地,聯系電話,經手人,商品編號,類別,型號,品牌,數量,單價,金額,訂貨日期,交貨日期。每份合同可定若干種商品。請畫出反應合同業務的E-R圖,并轉化為關系模式。第三節面向對象模型與ODL語言對象的基本概念1.對象:被計算機處理和唯一標識的基本單位。2.屬性:描述對象特征的數據項。3.對象的表示方法:{OID,[VALUES]}.OID:
對象標識符.VALUES:
表示對象的一組值
4.對象值的類型.基本類型char,float,integer,date.引用類型類名
.元組類型[…].組合類型set,array,structure類1.定義:具有相同屬性對象的集合。2.組成:.屬性.聯系.方法
3.Class
類名[key(一組屬性)]
extent外部名{
attribute
類型屬性名;…
relationship對象類型聯系名[inverse類名::聯系名];…}
說明:1.外部名用于查詢中。2.對象類型只能是基本對象類型和集合對象類型。3.Inverse用來反映相應一對聯系,采用同一個物理結構。
4.子類
定義:一個類的對象集是另一個對象集的子集。繼承性:語句:
class
子類名:超類名{
attribute類型屬性名;…
relationship對象類型聯系名[inverse類名::聯系名];…}
例:用ODL語言描述選課E-R圖
classstudentextentstudenttext{attributechar(10)xh;attributechar(20)xm;relationshipset(selectcourse)s_select;}學生課程選課學號姓名成績課程名課號
classcoursekey(kh)extentcoursetet{attributechar(4)kh;attributechar(20)km;relationshipset(selectcourse)c_selected;}classselectcourseextentsctext{attributeint
cj;relationshipcoursesc_course;relationshipstudentsc_student;}
E-R模型向對象模型的轉化1.實體向類的轉化。
2.不帶聯系屬性的轉化。轉化為relationship3.帶聯系屬性的轉化。.通過屬性轉移。.通過引入弱實體。如:學生課程選課成績
轉化為:
學生課程選課選擇被選成績課號學號
四對象模型的評析1.類型豐富2.與面向對象程序設計方法保持一致。3.很容易與對象程序設計語言進行混合編程。4.缺乏對聯系屬性的描述,不如關系模型直觀。5.在查詢中可能出現副作用。
思考題:1.當聯系是多元聯系時,應如何轉化?2.將下列E-R圖轉化為對象模型。
演員電影姓名住址名稱制片廠演出角色長度
說明:1.除長度是integer外,其余屬性為string。2.一部電影可能有多家制片公司制作。3.一名演員可能有多處住址,且由省,市,區(縣),街,社區,門牌樓號。第四節對象--關系模型對象-關系模型1.定義:在數據庫中的數據或者是以元組的方式存放,或者是以對象的方式存放。2.特點:.在DBMS中存在兩種表示數據的方式。表和類。.在數據操作上,既適合關系的處理方式也適合對象的處理方式。新增的類型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個屬性。
例:在讀者類型中定義學生子類型,它還要增加學號,所在院系,籍貫(省、市、區縣)
createtypexstypeunderdztypeas(
xhc(12),szyxc(20),dzrow(shenc(20),Shic(20),xianc(20))
注意:xstype
類型繼承了dztype類型的前兩個屬性。
4.自定義類型屬性值的獲取與修改.獲取屬性值的方法:用屬性名表示。.改變屬性值的方法:屬性名(值)例如:在讀者類型中引用讀者編號
dz.dzbh獲取屬性函數
dz.sh(“湖北省“)改變屬性函數問:在學生類型中如何引用學生所在的省份?設xs是該類型上的變量。
三對象與表的定義1.對象定義語句:
createtable類名of
用戶自定義類型。作用:指明了該類的屬性由用戶自定義類型決定。如:將學生作為對象進行定義。例1:createtablexsofxstype.
以上定義的表稱為類型化表。該對象表按對象方式存放。通過指針類型建立對象之間的聯系。
2.表的定義
creattable
表名(屬性1類型1,…,屬性n
類型n)
如:定義學生表例2:
createtablexs(xhc(10),xmc(20),dzROW(shc(20),sic(20),xuan(20))
注意:例1與例2的區別。第五節WEB數據模型HTML
文件1.HTML的基本概念定義:在文本文件中插入某些標記,由因特網識別的文件。特點:.HTML語言規定了一組標記的集合。每個標記有特定的含義。.瀏覽器能識別這些標記,并將HTML文件轉換為人所熟悉的形式,在屏幕上顯示出來。
.HTML文件沒有格式描述語句。2.HTML文件的一個例子:<html><head><title>
標題</title></head><body><p>
段落</p></body></html>
說明:.每個標記稱為元素,元素可以嵌套,開標記與閉標記應成對出現。.每個開標記可帶屬性,屬性為瀏覽器提供參數。如:<Img
Src=“Mxh.Jpg”Width=“145”Height=“130”Alt=“新聞照片“>
二XML
文件的基本概念1.定義:XML是擴展的HTML,它具有文件格式定義和查詢的功能。2.特點:.用戶可以自定義任何標記。.增加了文件類型描述語言(DTD)。.增加了基于XML的查詢(Xquery)
三
XML的語言成份1.XML元素:用于表示文檔內容的基本單位。基本格式為:
<標簽名屬性名=…>…</標簽名>
說明:對元素內容進行標識。2.指令:<?指令>:要求XML處理器應完成的功能。如:<?XMLVersion=‘1.0’>注釋:<!注釋內容>
作用:引入腳本語言,或其他XML指令。
4.XML結構
XML文件是由若干元素適當嵌套的樹形結構。子元素:嵌套在一個元素內的元素稱為子元素。一個XML文件例子:
這是一個學生信息的XML文檔.doc
XML格式文件----DTD1.DTD是對XML文檔格式進行描述的文件。其作用為:.描述XML文檔的結構。.描述元素屬性的數據類型。.描述元素之間的嵌套關系。DTD文件的構成.文件說明<!DOCTYPE文件名>.元素說明:<!ELEMENT元素名(子元素1,…,子元素n)
說明:.反應一個元素所包含的子元素。.用*號表示若干相同的子元素。.用EMPTY表示空元素。空元素:指不包含任何子元素和元素內容的元素。.屬性說明:<!ATTLIST
元素名屬性名類型強制性要求>
3DTD中的類型.元素值類型:#PCDATA
字符型.屬性類型:ID元素標識碼,在文檔中的值是唯一的。
IDREF引用另一元素的碼.強制性要求:#REQUIRED
必須的#IMPLIED
可選擇的一個DTD格式文件實例
例:這是學生文檔的格式文件.doc
七.DTD格式文件的不足1.DTD
格式文件中屬性的類型單調。2.DTD中缺少嚴格的數據一致性檢查和描述功能。如:<CrsTaken
crscode=“111111111”>
crscode應該是課程號,而不是學號。3.DTD中沒有引入XML的名字空間
XMLNS4.DTD中的標簽名是全局的,缺少局部標簽名。第六節斷言與觸發器一斷言1.定義設置數據庫應滿足的條件;2.格式:
CREATEASSERTION斷言名CHECK
條件說明:當條件為假時,DBMS終止操作,并提示用戶。例:限制每門課的選課人數不能超過100人。
CREATEASSERTIONRSXZCHECK100>=ALL(SELECTCOUNT(XH)FROMXKGROUPBYKH
請問:如何寫一斷言限制學生選課門數超過8門。CREATEASSERTIONXKMSCHECK(8>=ALL(SELECTCOUNT(*)FROMXKGROUPBYXH)
觸發器1.事件:引起數據庫的狀態發生改變的操作。
2.定義:當設定的事件發生時,由DBMS自動啟動的維護數據庫一致性的程序。3.觸發事件:能夠啟動觸發器的事件。
刪除(DELETE),插入(INSERT),更新(
UPDATEOF屬性。
觸發時間:BEFOR;在操作前觸發
AFTER:在操作后觸發
INSTEADOF:取代操作。3觸發條件:執行觸發器操作的條件。4觸發粒度:引起觸發器工作的數據單位。行粒度:(FOREACHROW)
表粒度(FOREACHSTATMENT)5操作:一組SQL語句,或其他語句。三語句與執行1格式:CREATETRIGGER
觸發器名{before|after|insteadof屬性{insert|delete|updateof屬性名}ON表名
referencing[oldas元組名][newas元組名][oldtableas表名][newtableas表名][foreachrow|forstatement][when條件]語句序列。
2說明:刪除事件只有舊表或舊行。插入事件只有新表或新行。更新事件既有舊表,舊行,也有新表,新行。觸發器的啟動和執行當觸發事件發生時,觸發器被激活,如果觸發條件成立,則執行觸發器的操作,然后返回應用程序繼續執行。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業勞動合同規定
- 土建工程承包合同意向書
- 企業管理咨詢培訓合同書
- 支付勞動合同報酬
- 貨物貿易的居間合同
- 協議合同草稿
- 合同轉讓變更協議
- 安保合同框架協議
- 復印合同協議拼音
- 合同分紅協議
- 醫療保障基金使用監督管理條例解讀
- 【MOOC】兒科學-濱州醫學院 中國大學慕課MOOC答案
- 八年級信息技術上學期 第三課wps的輔助功能 說課稿
- 隧洞施工安全教育培訓
- 愛國衛生專業培訓
- 抗菌藥物科學化管理
- 雙碳背景下的我國物流行業優化發展研究
- 智慧物流園區建設可行性研究
- 2024年湖北宜昌猇亭區社區專職工作者招考聘用管理單位遴選500模擬題附帶答案詳解
- 國家安全教育1班學習通超星期末考試答案章節答案2024年
- 大學生創新創業基礎(創新創業課程)完整全套教學課件
評論
0/150
提交評論