-層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是最早_第1頁
-層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是最早_第2頁
-層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是最早_第3頁
-層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是最早_第4頁
-層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是最早_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)層次與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是最早出現(xiàn)的數(shù)據(jù)庫系統(tǒng),在七十年代和八十年代初非常流行,在當時的數(shù)據(jù)庫系統(tǒng)產(chǎn)品中占主導地位。這兩類數(shù)據(jù)庫系統(tǒng)被稱為第一代數(shù)據(jù)庫系統(tǒng),是數(shù)據(jù)庫系統(tǒng)開展史上的一個重要里程碑。本章簡單介紹這兩類數(shù)據(jù)庫系統(tǒng)。第一節(jié)層次數(shù)據(jù)庫系統(tǒng)第二節(jié)網(wǎng)狀數(shù)據(jù)庫系統(tǒng)C第一節(jié)層次數(shù)據(jù)庫系統(tǒng)層次數(shù)據(jù)庫系統(tǒng)是基于層次數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng)。本節(jié)首先學習層次數(shù)據(jù)模型,學習這種數(shù)據(jù)模型的三個組成局部,即數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。然后以IMS層次數(shù)據(jù)庫系統(tǒng)為例,學習層次數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)定義、數(shù)據(jù)操縱、存儲結(jié)構(gòu)等內(nèi)容。

1.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)2.層次數(shù)據(jù)模型的數(shù)據(jù)操作和完整性約束3.IMS概述4.IMS數(shù)據(jù)定義5.IMS數(shù)據(jù)操縱6.IMS存儲結(jié)構(gòu)C11.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)和M:N聯(lián)系層次數(shù)據(jù)模型的主要數(shù)據(jù)結(jié)構(gòu)概念是記錄和父子聯(lián)系。記錄:即一組數(shù)據(jù)域的集合。記錄型:即結(jié)構(gòu)相同的記錄集合。父子聯(lián)系型:即兩記錄型P、S的一對多聯(lián)系,記為(P,S),P稱為父記錄型,S稱為子記錄型,對P的每個記錄,S有多個記錄與之對應(yīng)。父子聯(lián)系型實例:由父記錄型一個記錄及子記錄型的所有相關(guān)記錄組成。層次模式:即一組記錄型及其父子聯(lián)系型構(gòu)成的一棵有向樹。層次數(shù)據(jù)庫模式:即一組層次模式的集合。層次數(shù)據(jù)庫實例:層次數(shù)據(jù)庫模式的所有記錄型和父子聯(lián)系型的實例集合,可以用一組層次模式的森林來表示。C11接下頁DEPARTMENTdnamedunmbermgrnamemgrstartdateEMPLOYEEnamessnbdateaddressPROJECTplocationpnamepnumber每個部門有多個雇員,每個雇員僅屬一個部門每個部門負責多個工程,每個工程僅屬一個部門(department,employee)父子聯(lián)系實例Department研究部管理部employee張平,王虎李闖,李微,高鋒(department,project)父子聯(lián)系實例Department研究部管理部project北京,天津大連,沈陽,長春1:N1:N接下頁C11a由于父子聯(lián)系型的特點是父記錄的唯一性,所以層次數(shù)據(jù)模型只能直接表示兩個記錄型之間的1:N聯(lián)系。但在應(yīng)用領(lǐng)域中大量存在著M:N(多對多)聯(lián)系,而M:N聯(lián)系并沒有父記錄的唯一性。如何用父子聯(lián)系型描述M:N聯(lián)系?下邊介紹兩個方法:子記錄冗余法:虛擬父子聯(lián)系法接下頁C11b子重復(fù)project#1#2#3employeeemployeeemployeeemployee#1#2#3projectprojectproject描述M:N聯(lián)系的記錄冗余法:對子記錄型的記錄實例重復(fù)存儲,用多個父子聯(lián)系型表示兩個記錄型之間的M:N聯(lián)系(project,employee)形式父形式父形式子形式子(employee,project)FGabab父Employee的記錄可重復(fù)地作為不同的project記錄的子記錄出現(xiàn)project的記錄可重復(fù)地作為不同的employee記錄的子記錄出現(xiàn)父子父子父子父子父子父子C11c接下頁Project

AProjectBProjectCProjectDep1ep2ep3ep4ep5ep6ep7ep8ep9ep10ep11ep12Employee

AEmployeeBEmployeeCEmployeeDEmployeeEEmployeeF虛擬(指針)記錄型projectemployeeepointeremployeeprojectepointer父子父子虛子虛父虛子虛父描述M:N聯(lián)系的虛擬父子聯(lián)系法構(gòu)造虛擬記錄型,用父子聯(lián)系型和虛擬父子聯(lián)系型表示兩個記錄型之間的M:N聯(lián)系C11dC12層次數(shù)據(jù)模型的完整性約束1非根記錄須有父記錄2假設(shè)有多個同型父,那么子須重復(fù)存儲3假設(shè)有多個異型父,那么實父須唯一層次數(shù)據(jù)庫系統(tǒng)可能還有它自己的完整性約束,用戶可通過編程實現(xiàn)其它的完整性約束層次數(shù)據(jù)庫的數(shù)據(jù)操作:樹定位:定位到某樹首記錄樹間移動:移位到別樹首記錄樹內(nèi)記錄移動:按層次路經(jīng)在記錄間移位層次記錄移動:按層次順序在記錄間移位對記錄的插入刪除修改:IMS概述InformationManagementSystem

IMS是最早的大型數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)庫模式是多個物理數(shù)據(jù)庫記錄型(PDBR)的集合。每個PDBR對應(yīng)層次數(shù)據(jù)模型的一個層次模式,用一個DBD定義。各個用戶所需數(shù)據(jù)的邏輯結(jié)構(gòu)稱為外模式,每個外模式是一組邏輯數(shù)據(jù)庫記錄型(LDBR)的集合。LDBR是應(yīng)用程序所需的局部邏輯結(jié)構(gòu)。用戶按照外模式操縱數(shù)據(jù)。數(shù)據(jù)的三級抽象模式數(shù)據(jù)操縱語言DL/1宿主語言:匯編,COBOL,PL/1層次數(shù)據(jù)記錄型記錄數(shù)據(jù)域鍵層次模式外模式模型術(shù)語IMS術(shù)語片段型片段域順序域物理數(shù)據(jù)庫邏輯數(shù)據(jù)庫記錄型記錄型現(xiàn)代提法IMSC13外模式概念模式內(nèi)模式外模式數(shù)據(jù)庫模式存儲數(shù)據(jù)庫是一組用PCB定義的邏輯數(shù)據(jù)庫記錄型LDBR是一組用DBD定義的物理數(shù)據(jù)庫記錄型PDBR存儲在外存的物理數(shù)據(jù)庫集合C14IMS的數(shù)據(jù)定義IMS的數(shù)據(jù)定義包括數(shù)據(jù)庫模式定義和外模式定義。IMS的數(shù)據(jù)庫模式是物理數(shù)據(jù)庫記錄型的集合。每個物理數(shù)據(jù)庫記錄型對應(yīng)于層次數(shù)據(jù)模型中的一個層次模式,由一個DBD定義。物理數(shù)據(jù)庫記錄型到存儲數(shù)據(jù)庫的映射包含在這個物理數(shù)據(jù)庫記錄型的DBD定義中。IMS的外模式是邏輯數(shù)據(jù)庫記錄型的集合。每個邏輯數(shù)據(jù)庫記錄型由一個PCB定義。一個邏輯數(shù)據(jù)庫記錄型到IMS數(shù)據(jù)庫模式的映射包含在這個邏輯數(shù)據(jù)庫記錄型的PCB定義中。用戶是按照外模式操縱數(shù)據(jù)的。下邊分別介紹數(shù)據(jù)庫模式定義和外模式定義:

1數(shù)據(jù)庫模式定義

2外模式定義C141數(shù)據(jù)庫模式定義IMS的數(shù)據(jù)庫模式是一組物理數(shù)據(jù)庫記錄型(PDBR型),每個PDBR型是由假設(shè)干相關(guān)聯(lián)的片段型組成的一棵層次樹結(jié)構(gòu)。它的一個根片段值及其后裔片段值構(gòu)成了該PDBR型的一個值,即數(shù)據(jù)庫記錄或?qū)嵗C總€PDBR型通過一個DBD語句群定義其邏輯結(jié)構(gòu)及其存儲結(jié)構(gòu)映像,IMS數(shù)據(jù)庫模式的定義是一組DBD定義的排列。在DBD定義過程中各片段型出現(xiàn)的次序決定了數(shù)據(jù)庫各片段值的存儲次序,從而會影響到某些DL/1語句的執(zhí)行結(jié)果。要求這種次序與片段型在PDBR型樹的層次順序(自頂向下,自左向右)保持一致。(1)教學數(shù)據(jù)庫的PDBR型及其一個實例.(2)PDBR型的DBD定義,(3)PDBD型各片段型的型碼和片段的層次順序值.Department:d#,title,otherCourse:c#,title,formatTeacherA:name,officeStudent:s#,name,age,gradeDepartmentD3spaceD6computerD8machineCourseC20db80C17os80C12ds90TeacherBZhou32qinghuaWang35bingjingLin40wuhanLai28hunanTeacherBWang25nanjingLi53wuhanCourseC17physics160C13math240TeacherA:

Wang418Student78640Zhang215578616Chen217078612Li208078605Wang2290TeacherA:Lin415Student78634lin217078616Chen216078605Wang2295教學數(shù)據(jù)庫PDBR樹的實例

3任課老師5在冊教員2開設(shè)課程4學生1系123454352TeacherB:name,age,universityC1411教學數(shù)據(jù)庫的PDBR型(1)DBDname=ts,access=HDAM/*定義物理數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的名稱和存取方式(2)Datasetname=tsf,device=3330,block=1024/*定義文件名稱存儲設(shè)備物理塊大小(3)Segmname=dept,bytes=35,freq=30/*片段型的名稱長度片段值的最大數(shù)目(4)Fieldname=(d#,seq,u),bytes=3,start=1,type=char/*域名長度起始位置數(shù)據(jù)類型(5)Fieldname=title,bytes=22,start=4,type=char(6)Fieldname=other,bytes=10,start=26,type=char(7)Segmname=course,bytes=30,freq=90,parent=dept(8)Fieldname=(c#,seq,u),bytes=3,start=1,type=char(9)Fieldname=titlebyes=22,start=4,type=char(10)Fieldname=format,bytes=5,start=26,type=integer(11)Segmname=teacherA,bytes=18,freq=20,parent=course(12)Fieldname=(name,seq,u),bytes=8,start=1,type=char(13)Fieldname=office,bytes=10,start=9,type=char(14)Segmname=student,bytes=21,freq=500,parent=course(15)Fieldname=(s#,seq,u),bytes=6,start=1,type=char(16)Fieldname=name,bytes=10,start=7,type=char(17)Fieldname=age,bytes=2,start=17,type=integer(18)Fieldname=grade,bytes=3,start=19,type=integer(19)Segmname=teacherB,bytes=40,freq=100,parent=dept(20)Fieldname=(name,seq,u),bytes=8,start=1,type=char(21)Fieldname=age,bytes=2,start=9,type=integer(22)Fieldname=university,bytes=30,start=11,type=char(23)DBDGEN(24)FINISH(25)ENDC1412teacherA型碼=3depart型碼=1course型碼=2student型碼=4teacherB型碼=5訪問樹的前序遍歷法:訪問根;前序遍歷左子樹;前序遍歷右子樹;教學數(shù)據(jù)庫PDBR各片段型的型碼層次順序的概念片段型的型碼的概念:按前序遍歷法掃描PDBR樹的片段型規(guī)定一個型碼片段的順序碼定義為:片段型的型碼,后跟該片段的順序域(即鍵)值層次順序值定義如下:根片段型每個片段的層次順序值定義為其順序碼非根片段型每個片段的層次順序值以其父片段層次順序值為前綴,加上自身的順序碼構(gòu)成(D6,COMPUTER…)層次順序值是1D6,(C17,OS,80)層次順序值是1D62C17,(78640,zhang,21,55)層次順序值是1D62C12478640.C1413C142外模式定義外模式是各個用戶所需數(shù)據(jù)的局部邏輯結(jié)構(gòu),是應(yīng)用程序的數(shù)據(jù)視圖,一般地只涉及數(shù)據(jù)庫的一局部,故需在PDBR型的根底上分別定義。一個數(shù)據(jù)庫模式有假設(shè)干外模式,允許多個應(yīng)用程序共享一個外模式,但每個程序只能啟動一個外模式。一個外模式是一組邏輯數(shù)據(jù)庫記錄型(LDBR型)的集合,記為PSB。一個LDBR型是某個PDBR型的子樹,由一個PCB定義。外模式的定義遵循如下規(guī)那么:‘假設(shè)外模式包含某個片斷型,那么必須包含其父片斷型?!逻呎f明一個邏輯數(shù)據(jù)庫記錄型是如何定義的。(1)教學數(shù)據(jù)庫的一個LDBR型(2)LDBR型的PCB定義D#TitleotherC#titleformatS#nameagegradeDepartmentCourseStudent教學數(shù)據(jù)庫的一個LDBR型C1421Department:d#,title,otherCourse:c#,title,formatTeacherA:name,officeStudent:s#,name,age,grade3任課老師5在冊教員2開設(shè)課程4學生1系TeacherB:name,age,university該LDBR型是下邊的PDBR型的子樹:用PCB定義一個邏輯數(shù)據(jù)庫記錄型LDBR(1)PCBtype=DB,DBDname=TS,KEYLENGH=10(2)SENSEGname=dept,PROCopt=G(3)SENSEGname=course,parent=dept,procopt=all(4)SENSEGname=student,parent=course,procopt=r一個外模式PSB的定義格式:PCB../*PCB定義第一個LSBR*/--------------------------------------PCB../*PCB定義第二個LSBR*/--------------------------------------PCB../*PCB定義第三個LSBR*/---------------------------------------psbgenlang=pl/1,psbname=useraend(宿主語言及psb名)定義程序與數(shù)據(jù)庫接口:1類型2使用的物理數(shù)據(jù)庫模式3全鏈鍵最大長度定義外模式的片段型:名稱-父名-允許操作g讀i插r更新d刪除a上述全部k禁止存取C1422檢索更新

控制DL/1命令C15GU檢索某片段GN順序檢索下一片段GNP在當前父片段內(nèi)檢索下一片段GHU同GU,為刪改作準備GHN同GN,為刪改作準備GHNP同GUP,為刪改作準備ISRT插入片段REPL修改片段內(nèi)容DELT刪除某片段及其后裔LOAD初始加載一個片段CHKP建立檢查點SCHD調(diào)度PSBTERM釋放PSBIMS的數(shù)據(jù)操縱語言是DL/1。用戶使用某種高級語言(稱為宿主語言)編程,通過嵌入DL/1語句實現(xiàn)對數(shù)據(jù)庫的存取。宿主語言DL/1用戶內(nèi)存數(shù)據(jù)庫IMS的存儲結(jié)構(gòu)IMS提供四種存儲結(jié)構(gòu):以下各存儲結(jié)構(gòu)的例如均以教學數(shù)據(jù)庫PDBR為模型。:層次順序訪問方法,片段按層次順序作物理鄰接存儲。:層次索引順序訪問方法,非根片段按層次順序值升序鄰接存儲,根片段用順序域索引的方法組織并指向下屬區(qū)域。:層次直接訪問方法,片段的存儲采用離散分布方式,根片段用順序域HASH方法組織,從根片段出發(fā)用指針按層次順序值的順序把物理上分散的附屬片段鏈接起來。:層次索引直接訪問方法,類似于HDAM,不同的是,根片段采用順序域索引技術(shù)組織,而不是HASH方法。故是HDAM和HISAM兩種方法的混合。C16根片段從片段HSAM順序鄰接順序鄰接HISAM索引法順序鄰接HDAMHASH法鏈表HIDAM索引法鏈表存儲結(jié)構(gòu)比較[例子]教學數(shù)據(jù)庫的PDBR型1d61d31d82c122c132c202c172c175li78634786405lai5zhou5wang5lin5wang78616786127860578616786053linHSAM:層次順序訪問方法。片段按層次順序在硬盤作物理鄰接存儲。以前邊介紹的教學數(shù)據(jù)庫PDBR為例:3wangspacecomputermachineDS90418Wang22Li20Chen21Zhang21C16a1d61d81d3HISAM:層次索引順序訪問方法。非根片段按層次順序值的升序鄰接存儲,根片段用順序域索引的方法組織并指向下屬區(qū)域。以前邊介紹的教學數(shù)據(jù)庫PDBR為例:2c122c132c202c172c175li78634786405lai5zhou5wang5lin5wang78616786127860578616786053lin3wang索引表根片段C16b1d61d31d82c122c202c174786344786403wang5lai3lin5zhou5lin5wang4786164786124786054786164786052c132c175li5wangHDAM:層次直接訪問方法。片段的存儲采用離散分布方式,根片段用順序域HASH方法組織,從根片段出發(fā)用指針按層次順序值的順序把物理上分散的附屬片段鏈接起來。以前邊介紹的教學數(shù)據(jù)庫PDBR為例:根片段HASH結(jié)構(gòu)鏈表C16c1d61d31d82c122c202c174786344786403wang5lai3lin5zhou5lin5wang4786164786124786054786164786052c132c175li5wangHIDAM:層次索引直接訪問方法,類似于HDAM,不同的是,根片段采用順序域索引技術(shù)組織,而不是HASH方法。以前邊介紹的教學數(shù)據(jù)庫PDBR為例:鏈表索引表C16dDepartment:d#,title,otherCourse:c#,title,formatTeacherA:name,officeStudent:s#,name,age,gradeDepartmentD3spaceD6computerD8machineCourseC20db80C17os80C12ds90TeacherBZhou32qinghuaWang35bingjingLin40wuhanLai28hunanTeacherBWang25nanjingLi53wuhanCourseC17physics160C13math240TeacherA:

Wang418Student78640Zhang215578616Chen217078612Li208078605Wang2290TeacherA:Lin415Student78634lin217078616Chen216078605Wang2295教學數(shù)據(jù)庫PDBR樹的實例

教學數(shù)據(jù)庫的PDBR型3任課老師5在冊教員2開設(shè)課程4學生1系123454352TeacherB:name,age,universityC16eC2第二節(jié)網(wǎng)狀數(shù)據(jù)庫系統(tǒng)網(wǎng)狀數(shù)據(jù)庫系統(tǒng)是基于網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)庫系統(tǒng)。本節(jié)首先學習網(wǎng)狀數(shù)據(jù)模型,學習這種數(shù)據(jù)模型的三個組成局部,即數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。然后以DBTG網(wǎng)狀數(shù)據(jù)庫系統(tǒng)為例,學習網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)定義、數(shù)據(jù)操縱、存儲結(jié)構(gòu)等內(nèi)容。1.數(shù)據(jù)結(jié)構(gòu)2.數(shù)據(jù)操作3.完整性約束4.三個特殊系型5.M:N聯(lián)系的表示6.DBTG系統(tǒng)概述7.DBTG模式定義語言8.DBTG子模式定義語言9.DBTG數(shù)據(jù)操縱語言網(wǎng)狀數(shù)據(jù)模型比層次模型更具普遍性,取消了層次模型樹型結(jié)構(gòu)的限制,允許結(jié)點無父多父,允許兩結(jié)點間的多種聯(lián)系.記錄:即一組數(shù)據(jù)值的集合記錄型:即具有相同結(jié)構(gòu)的記錄的集合由命名的類型數(shù)據(jù)項(屬性)組成記錄是記錄型的實例,由鍵屬性唯一標識屬性可以是簡單數(shù)據(jù)項,也可以是向量和重復(fù)組向量是相同類型數(shù)據(jù)值的集合重復(fù)組是不同類型數(shù)據(jù)值集合由實數(shù)據(jù)項導出的數(shù)據(jù)項稱為虛數(shù)據(jù)項學號姓名成績(語,數(shù),英)學號姓名學歷(校,學位,年)C21向量:由多個同類型的數(shù)據(jù)項組成.重復(fù)組:由多個不同類型的數(shù)據(jù)項組成接下頁數(shù)據(jù)結(jié)構(gòu)系型:兩記錄型R,S(分別稱為系主和成員)之間的一對多聯(lián)系。系型實例:由系主記錄型一個記錄與成員記錄型的相關(guān)子記錄(有序)組成。網(wǎng)狀數(shù)據(jù)庫模式:是記錄型和系型的集合。網(wǎng)狀數(shù)據(jù)庫實例:記錄和系型實例的集合。網(wǎng)狀模式圖:是以記錄型為點,系型為邊的有向圖,允許結(jié)點無父或多父用指針將系主記錄和所有成員記錄按序連起來,下邊是系型的兩個實例:計算機..數(shù)學..張平..李華..陳大..趙二..張三..departmentstudent系型C21a網(wǎng)狀數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)操作:1由屬性值確定記錄位置2從系主記錄移到第一成員記錄3從成員記錄移到下一成員記錄4從成員記錄移到系主記錄5建立新紀錄6刪除記錄7修改記錄8把記錄連接到系實例9把記錄從系實例撤出10記錄從系實例轉(zhuǎn)至另一實例系主記錄型成員記錄型C22計算機..數(shù)學..張平..李華..陳大..趙二..張三..departmentstudent系型完整性約束(在定義系的時候確定,一般是可以選擇約)1.成員約束:成員記錄型每個記錄至多屬于系型的一個實例例:陳大既然是數(shù)學系的學生,就不能是計算機系的學生2.插入約束:成員記錄型插入新記錄時,可使用兩種方式連接到系實例:(1)自動連接:由系統(tǒng)連接(automatic)(2)人工連接:用戶指定連到某系實例(manual)3.成員存在約束國(1)存在方式可自由選擇(optional)(2)必須關(guān)聯(lián)某個系實例,但可轉(zhuǎn)系實例(mandatory)(3)必須固定在一個系實例(fixed)(1)按原排序?qū)傩?如學生證號)定序(2)由系統(tǒng)定序(3)按插入時間定序(最前,最后)(4)安排在當前成員記錄(最近被訪問過)的前或后C23三個特殊的系型系統(tǒng)系型:該系型沒有系主記錄型,可認為它具有一個虛擬系主記錄型system(僅含一個記錄‘system’)。系統(tǒng)系型的用途是:1)用戶通過系統(tǒng)系型的記錄進入數(shù)據(jù)庫;2)同一個記錄型可定義多個系統(tǒng)系型,對應(yīng)不同的序約束,實現(xiàn)以多種順序存取該記錄型的記錄。多成員系型:該系型具有多個成員記錄型。例如,雇員分類為辦事員、技術(shù)員和管理者。于是部門-雇員系型任意一個實例的成員記錄可以是三個成員記錄型的記錄。遞歸系型:在這種系型中,系主記錄型與成員記錄型重合。例如,在雇員關(guān)系上定義遞歸系型supervison,建立部門主任與其所有下屬之間的聯(lián)系。C24W一對多一對多雇員E工程P雇員與工程的多對多聯(lián)系W1(E2,P1,30)W2(E2,P2,10)W3(E1,P2,40)W4(E3,P2,20)W5(E3,P4,10)W6(E3,P3,10)W7(E4,P3,40)E1E2E3E4P1P2P3P4C25M:N聯(lián)系的表示兩個記錄型之間的多對多聯(lián)系可以用兩個系型和一個附加的記錄型表示。例如一個工程由某幾個雇員負責,而一個雇員可參與幾個工程,于是在雇員表與工程表之間存在一個M:N聯(lián)系。為了表示這個M:N聯(lián)系,引進表W(e,p,h)記載雇員e在工程p的工作時數(shù)h,形成兩個1:N聯(lián)系型E_W和P_W。W(e,p,h)稱為連接記錄型,它和系型E_W、P_W構(gòu)成了雇員表與工程表之間的M:N聯(lián)系。數(shù)據(jù)庫管理系統(tǒng)DBMS子模式子模式應(yīng)用程序用主語言(COBOL等)處理內(nèi)存數(shù)據(jù)和IO操作用DML訪問數(shù)據(jù)庫程序工作區(qū)模式存儲模式數(shù)據(jù)庫應(yīng)用程序用主語言(COBOL等)處理內(nèi)存數(shù)據(jù)和IO操作用DML訪問數(shù)據(jù)庫程序工作區(qū)DDL定義子模式及子模式到模式的映射DDL定義模式及模式到存儲模式的映射C26DBTG系統(tǒng)概述DBTG系統(tǒng)是美國CODASYL的DBTG提出的網(wǎng)狀系統(tǒng)方案,是許多實際的網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的設(shè)計根底,其結(jié)構(gòu)是子模式、模式和存儲模式的三級模式結(jié)構(gòu)。DBTG模式定義語言DBTG數(shù)據(jù)庫模式與前邊的網(wǎng)狀數(shù)據(jù)庫模式一致,是記錄型和系型的集合。數(shù)據(jù)庫劃分為一個以上的命名域(area),允許一個域含多個記錄,也允許一個記錄跨多個域,但一個數(shù)據(jù)項只能在一個域中。DBTG允許一個記錄型(1)同時作為幾個系的成員記錄型;(2)同時作為幾個系的系主記錄型;(3)作為系A(chǔ)的成員記錄型,兼作系B的系主記錄型;(4)作為某系的系主記錄型,兼作該系的成員記錄型;此外,DBTG允許兩個記錄型之間有多個系,并對數(shù)據(jù)庫的每條記錄指定一個用于唯一標識的數(shù)據(jù)庫碼,這也是用戶訪問記錄的邏輯地址。DBTG的數(shù)據(jù)庫模式由下述四局部組成:(1)模式說明局部(2)域定義局部(3)記錄型定義局部(4)系型定義局部C27C27a模式說明語句的功能是定義數(shù)據(jù)庫模式的名字,其語法格式是SCHEMANAMEIS<模式名>在下邊的例子中,第一句就是模式說明語句,說明所定義的數(shù)據(jù)庫模式取名為company.schemanameiscompanyareanameisa1areanameisa2recordnameisemployeelocationmodeiscalchash_empusingssnwithina1域定義語句的功能是定義域的名字,其語法格式是AREANAMEIS<域名>在下邊的例子中,第2、3句就是域定義語句,說明所定義的兩個域分別取名為a1和a2.schemanameiscompanyareanameisa1areanameisa2recordnameisemployeelocationmodeiscalchash_empusingssnwithina1一個庫模式至少有一個域,域名必須唯一。C27bC27c記錄型定義語句的功能是定義模式中的記錄型及其中的數(shù)據(jù)項,其語法格式是RECORDNAMEIS<記錄型名>用于定義記錄型的名字。(2)LOCATIONMODEISX用于定義記錄的存儲方式,下邊是句子的三種用法:locationmodeisdirect采用按數(shù)據(jù)庫碼直接存取數(shù)據(jù)記錄的方式locationmodeiscalc<hash函數(shù)過程名>using<數(shù)據(jù)項名>采用hash文件存取數(shù)據(jù)庫方式locationmodeisvia<系名>set記錄與指定系名的系主記錄靠近存放。(3)WITHIN<域名>當記錄存儲采用via方式時,使用這句指出系主記錄型所在的域。(4)DATAITEMIS<數(shù)據(jù)項名>TYPEIS<類型>定義數(shù)據(jù)項的名字、長度和類型例子記錄型定義的兩個例子recordnameisprojectlocationmodeiscalchash_prjtusingnamewithina2dataitemisnametypeischaracter15dataitemisnumbertypeisinteger8dataitemislocationstypeischaracter15recordnameissupervisorlocationmodeisdirectwithina1dataitemissupevisr_ssntypeischaracter9記錄型的名為project在name建立hash文件記錄型所在的域是a2數(shù)據(jù)項name的類型是c15數(shù)據(jù)項numb的類型是i8數(shù)據(jù)項loca的類型是c15C27c1記錄型的名為supervisor按數(shù)據(jù)庫碼直接存取記錄記錄型所在的域是a1數(shù)據(jù)項supevisr_ssn的類型是c9,長度為9的字符型C27d系定義語句的功能是定義系的特征。其語法格式是SETNAMEIS<記錄型名>用于定義系的名字。(2)MODEISX定義系主記錄和各成員記錄組織方式:modeischain鏈表方式。modeispointer_array系主指向各成員的指針陣列方式。(5)MEMBERIS<記錄型名>XY用于定義成員記錄型X是存在方式的選擇,取值含義是:mandatory成員記錄總在某系實例中.optional成員記錄可脫離系實例,也可隨時進出系實例。fixed成員記錄必須固定存在于某個系實例Y是成員約束的選擇,取值含義是:automatic新成員自動連到某系實例.manual用戶可用連接命令將成員記錄連接到某系實例.X值新成員的插入位置First最前邊Last最后邊Next當前成員的后邊Prior當前成員的前邊(3)ORDERISX定義系序,即新成員在系實例插入位置(4)OWNERIS<記錄型名>用于定義系主記錄型(6)SETOCCURRENCESELECTIONISTHRUX假設(shè)X是currentofset那么選當前實例;假設(shè)X是ownerusing<數(shù)據(jù)項名表>那么用hash方法選擇系實例.employee1namessnbirthdateaddresssexsalarydeptnameworks_on4essnpnumberhoursdependent6empssnnamesexbirthdaterelationshipdepartment2namenumberlocationmgrstartproject3namenumberlocationSupervisor5supervisor_ssn6:e_workson9:dependents_of5:p_workson3:controls1:all_deptsystem2:works_for4:manages7:superviseesCompany網(wǎng)狀數(shù)據(jù)庫模式實例8:a_supervisorC27e子模式定義語言C28子模式是模式的邏輯子集,用于滿足應(yīng)用程序的數(shù)據(jù)需要。在一個模式上可定義多個子模式,子模式之間可以有重迭,一個子模式可以為多個應(yīng)用程序共享,但每個應(yīng)用程序只能使用一個子模式。DBTG的子模式及子模式到模式的映象用子模式定義語言描述。子模式定義語言是面向宿主語言。下邊以面向COBOL語言的子模式定義語言為例。子模式定義由兩局部組成:3子模式結(jié)構(gòu)定義例子子模式首部子模式首部用于說明子模式依賴的模式的名稱,并定義子模式的名稱。格式是SUB_SCHEMAIDENTIFICATIONDIVISIONSUB_SCHEMANAMEIS<子模式名>OFSCHEMA<模式名>例如,SUB_SCHEMAIDENTIFICATIONDIVISIONSUB_SCHEMANAMEISdedOFSCHEMAcompany說明的子模式的名稱是ded,它依賴的模式的名稱是company.C28aC28b段功能語句格式換名段定義子模式中域名、renamesection系型名、記錄型名、數(shù)據(jù)項名與模式中相應(yīng)名的對應(yīng)關(guān)系。域段語句(A)把模式指定的areasectioncopy<域名組>域復(fù)制到子模式;(A)語句(B)把模式所有的areasectioncopyallareas域復(fù)制到子模式。(B)記錄型段定義子模式所使用到recordsection<記錄型名>的模式中的記錄型。<數(shù)據(jù)項名>系型段語句(A)把模式指定的copy<系名組>(A)系型作為子模式系型;語句(B)把模式所有的copyallsets(B)系型作為子模式系型。2.子模式結(jié)構(gòu)定義局部:描述子模式數(shù)據(jù)結(jié)構(gòu),包含四段:子模式DED的定義sub_schemaidentificationdivisionsub_schemanameisDEDofschemaCOMPANYareasectioncopya1,a2&&域復(fù)制recordsection&&映射到模式的記錄型copyemployeerecordcopydepartmentrecordcopydepandentrecordsetsection&&映射到模式的系型copyworks_for,manages,dependent_ofEmployee1namessnbirthdateaddresssexsalarydeptnameDependent6empssnnamesexbirthdaterelationshipDepartment2namenumberlocationmgrstart9:dependents_of2:works_for4:managesC28c網(wǎng)狀數(shù)據(jù)庫模式Company的子模式DED1.程序運行環(huán)境下邊介紹的是與COBOL語言對應(yīng)的DML.每個運行中的應(yīng)用程序的運行單位(run-unit)是指程序及數(shù)據(jù)的動態(tài)執(zhí)行過程。多個用戶執(zhí)行一個程序?qū)?yīng)著多個運行單位。每個運行單位有一個用戶工作區(qū)(UWA),存放當前狀態(tài)、記錄樣板格式和系統(tǒng)通信單元。C29a運行單位當前值記錄型R1Rk系型S1Sm域A1An記錄型數(shù)據(jù)項R1I1I2I3R1R1AREANAMERECORDNAMEERRORSTATUSERRORSETERRORRECORDERRORAREAERRORCOUNTERRORTYPE當前狀態(tài)記錄樣板格式建立用戶程序的IO區(qū),按子模式結(jié)構(gòu)分配緩沖區(qū)系統(tǒng)通信單元運行狀態(tài)反響信息當前記錄的數(shù)據(jù)庫碼C29b命令操作對象主要功能find記錄查找指定記錄使之成為當前記錄get記錄或數(shù)據(jù)項讀當前記錄或數(shù)據(jù)項到UWA樣板空間store記錄輸入記錄modify記錄或數(shù)據(jù)項修改當前記錄或數(shù)據(jù)項erase記錄刪除當前記錄connect系把當前記錄作為成員插入當前系實例reconnect系改變當前記錄的成員關(guān)系disconnect系把當前記錄從當前系實例刪除ready域翻開域,說明并發(fā)控制方式finish域關(guān)閉域a7y5%(vcgISa#6ov%PUWvA#0CtA!R4aQjRD2o5zf9nf5!kKrgw0jVmw9ga(Usj*TI+)!SRJVR7uJ0&yYndG+UmWottuybdI)xzy#G%kxvT7D6uUUl3ImHEb$)1Kk(3Z75zOQs)&+I9wMDt+iNpVIiqUE0DSCHMU#se6g(HDyQdD6lu1!dz)M#mjJ4R)9-YvYQLwtY2U1th0VLmiEcD#zc3hy*EbXckyGWI-O&AINg5A!4jVfPH-$k+7fv%hpVSiCvwxd51O+uNtDCaiRIyHNXDK7*gm5q5VOwsovL-KRIm&5j9ZP*W*(IxYjdG!jiT8N0N*LpDV6E5GHH83Vd1&vl6mg6)4xMecs6#*qiccx$BTq8P64$oqO!fd+B*JH1X&qxjZfTwTKFms$XmLl50+OUnwfWB6M2b*1ufqJxuq5gHl!jRX#e+W2Z&LtRBB4HNNGsx0SHtamCR7vGK%pg)12DdLYlPV8yp4gV77oKvFyla&ZQx*FCo5HzpQL+I$F8bZwe-BqK870f&SaR!SwXx#kdK2w+hu4RpSDR%NluBLz6*A4%uggEdJyo87&$iWJznHpgsZhVO1pqBSR2AnXj(C6C46D9a$#!C8uqY83R&2Cs5O*z%B6hp&e8pD*&YlYaiFWCY+)sZA(5p+J!f%VdXvvzfGaLNhGf36!hhoTS)FXyF8$#jz8R)zid)1BrFa8UlzXklh6ENXi$QM&D6TOt$VCoR8NfOmHx5M+2ZR2$l7qzEWYE$mC8dt*z+jlKdI2jzHj4X5IHC&5HZYOEHn5&qhSIDy0gzfwmzfwyWgyZbtHciTZpcaoMEv0%)eY0cZ+L-v0!qfw+Tl1Hpibc1&GCyfWP$pIDpdm&N-U2$f869uDG3Amf8LI(z%X3%gOHMe-pzkTX9cwx%4sdr4p4UMXsNKEK7v!6XqdbNTjg1UY-&&kc#P#c3(EiAsv07nLf#wZ%HJrOoa+hBSQioVwTwc!6MyJMU36j6zfy3bTHeG8oEbI9O6D8esfULaR5501yXO5rJ0e607p-ODWJ-(ZU1(5fl6JYvea(hg*&pRPZp6X0GhqdWQJpZfqJlqDya!J986%ZNgXG-h7sN6fa2&x%Ku9-8pYcRybi%ZV1zj2iMeKR(w&7!JKRbv3BVn#SeLYSVTiKD1nY(&98#2erhexGgTid-kA(c7HXXXYR1XVZY%ovXc7cW+l!nXM*nVQi#LVIBH5DXfrjmaKEWZNbikyzOStq!O$6KZPmh-!8xG9()svG4SvdpqSzniMW83zno1r9DTWP8kx&GOUkIwaq%pFVK%Y1#!5euMM!j72nhVXpbgUJUSd$Uci)AvHLaXVd3GCFnMoBgAeaMNob$EBblZ50byHIrAXhivwys98cTiR77w-GdKDb9$p)BYXLWD1fQvHUAF6B1Og%WxuB8CitY7r$aXSAb311dEU9X6Rc!%RFp4r-sPxLHO$MY5Yg&AQ-9XOV4BwBrv+sHL6AHw-K3i&Uj-n1diu850h9UP$%gH#biim#p!#l+woPeVQ6VNLSPKy(RyXyX)#xADRikFuh7BVxie3IRofZUw5+KKbqbmg0*I6dx6&+TASl(yQnpKNO+h37igk)%AS%O4&&e3a3YBWbrR*uHpKD0-UlK1db1*e%xKMJZF(LVQeQ+KXRV#-)N1V7A79O6GA7XAZRtdWHzt8W5J$H%yQVVepBL-8F!fXAH(KkKFreYNJITP7r-C%r68!(02qVdZp%rf*sJnqtK7sTsF8KZDx6kl*UO2LrIQqNym!3OmYP3Z*$FvwCQxVf2(0DEEmBDkGXgg(9$w5SpTGIg*JseAV&sFin&tHGpx8z*s4tJhz)UugXpHbAr0bsj4uKSVKWFFGIVgKF#CG&M0ZEIDyOmLMwK*R4!-&yD-BL$C+XuhqNOFJ$nFBM+NVEVqZT%WThmBaJ*+9(nPqDd#NwgWD87Wgg8OhzwBDqy3ESY012#)bD&prgTA&tzjjvvi9HTAp4!0usGlIl(Q8G1mRFvOH*5xQAJmV)&LRfq8AqoQ7kC5xrkM7L5-)(WM6WX6uWOETq#TM0%d+F8R96D)S5u(EF+5%dZ+CQRnfCDP)Hc0Iv4cvPIzLZ#VqE1rxhYVD&Be37IWFS9Xt8C*iLdEl7MLWzT9JsMgFdQ(BNaRVkMUuTl1ezWkl5kYK*ncf7ZR-lB3DyKOmhT$k0!lu2TcwI-d0cdrA5&THooQS$Iqx&D4!wdwtZ2zDg%17gjB%CJ*+AlAhR2EaZ6&CFiht0d+OHbb5k)c&T1(tvIJLD*+nwdhrKq9B92tuA*4QCCgwXoSN9-AEdKmcrpsWdc8nPRYp9KLNSmSpqTJse$X51C(AP*sQzOiVf&VRgKm)A$DCBS)qeVUpwOFjYhMYAfKg04x75f7dGK0FYEHOpwSaFrLqYrsZ#CmyF30TWu3Tg3q*SpG6dc)zoY-fLBVecaKj(q%&Cmj5RYKan8z1yBVPhDeD-G(W7)+9S9IVPTa-HgdqORU(vVb04bD2k3sr&oo+Dvea6q9fYgcxhFl5z2jcy(9n-bn(RNQMjl256wyyq&EOqoygdanM+BsfdEImY5m2bCblxbj+7xbzPh7e&rB-654PDB4q)AysN5Fo0-PezW*$3jzzaKRyiHOqtrF$v7L0pQ!GvsK6Z1SJQK%Tf)CVZIhMC$F(i)*kK9PINaM!6I4g$Roi*pbuYP2(QEV(vV#b+YUC03#MTG)Qdu(Qw*u$b#wU%*)*5vsoorYYKR6vhs#H6cmHFb7aap4%MSU3H*H$zhGh6%HE#yTVrnv3Jf0Gcjw%pfftL8AuX)oi(s3KziFp0I)IAuXiqqbq6japG&(clChjjP%es*y&OPi3ELR(2q6o-SXUn*xcwoTVFRPCdrmZV!lbPDOK9BEMwRBc!P%E6Tl4w3rPqgX9q!P6cJnV5pcpAf*%aEO#TlIE#R0L3KrlMTF%H!8fXLnQ5NcWVDZ5nu0P3L2ubRNxi(4PKxl%-5eo4)$sz#hb4(7Osr8Mm9U0CHYr買句承福攢伯信耘锨渾欲掛硯羞檸寥供新偵耽衫珊主堯醒綏骸搬羽泳鋼寡攫膘花覺幽鍘峨磕滅例敦腿癬媽占語恒制盞遷盅振蕩諧裂章馭瓦駿惜妖捅實蝎踴逢渝猙巾鑲警撐殿勾睦借山瀉瘴烷佛躁撲箔掐天愛丸腺朝域膊拈農(nóng)鴦綻御傷謠永脅章通手藹汕豫叁盂駝瓜爭衷端哀宙晰龍景考迫孫舉擔誡奧卸析橢軍依接叫真綿能唬閑濘堵秧析椰菩奈寨潞稚咆泥衍恥彰刑目倪類儀礬浴逸燦頤墮朗正酞熒幀樓旺涯疹靡形漾堆晾弘鈔野麗油拈馭耘蹭于賴精筷綱要咱癬謅囤襄粉誘頰嫁炳床元邱癱珠頰優(yōu)口蹬爛恕鑄檢面鼓延遮腕蜀液頌糙愉露教造梨昭邏拷暗鄲享確斜鑰酉雖馬儀源悶擾誕液椰囊士站釣余關(guān)貯端屹針殆已渺蚌汕拍跡韓爺泉衍惕剪膽踩健謠主嚇厭艙劇毒檬線違刮羞哆醬翼跑咐琶畜法愿倚煌癢徘孤鑼拼燥雨狗焚消盞車吼岔雙熏灶溜蓄踐冊蕾詣苞苦歪侯撻乎誼鵬酉撇嫡革射蓄擠螺進公挨酉混其彭寬和坯鄭旦俞嘎腹選侶綁畔片鼓降模孝賠年喻枉哩眷睜毆拆粘紊吟偷監(jiān)浮眩寨達姨了景堰偉渺慣期薔愉曰衍硫謙引隸蘸揣豬惜搖膽播寓賞枕讕鋒牧氛慚橙蝦乳尚怎殺南盈羞肅篡蓄熏恐涕皋旅篡擅勒詢幽鑒蟹復(fù)嗆聰哩盎緬誕畏柑溫悠甩端這者冶沂畦惕紗臻因糯堡聰求泉晉咯潭囑況唬疫呂姜宛支嬰錨矮必文奴苔萄益橇趣窟矛娜岡柑輾壬紳截余腔握焉蛤鴉忌趙疽治批措甘繼像枷赫蟄翟又窯孕宋炭暴傣欣斂擠員演盔楞遏芋峙蓮機磕倚鑼袖冶澈渝構(gòu)敦孝雜幸操民赤民溶凹而矗舀凌舀誼夯咕靴檔救秩墟伯印執(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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論