【正文】
二維表格的第。關(guān)系R1表示三個(gè)人基本情況,而關(guān)系R2則無(wú)實(shí)際意義,因?yàn)橐粋€(gè)人不可能有兩個(gè)年齡和性別。集合,…,稱為關(guān)系的域。(2)關(guān)系的數(shù)學(xué)定義。如:現(xiàn)有集合A,B,其中A={a1,a2},B={b1,b2,b3},則集合A,B的笛卡爾乘積為集合D,且有D={(a1,b1),(a1,b2),(a1,b3),(a2,b1),(a2,b2),(a2,b3)}。給定一組集合,…,則這組集合的笛卡爾乘積是集合:。之后,引進(jìn)了規(guī)范化理論,提出了關(guān)系代數(shù)和關(guān)系演算等數(shù)據(jù)操縱語(yǔ)言,為數(shù)據(jù)庫(kù)的發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ),由于關(guān)系數(shù)據(jù)庫(kù)是建立在較完善的關(guān)系理論數(shù)學(xué)基礎(chǔ)之上,同時(shí)它簡(jiǎn)單明了,便于用戶理解和使用,自八十年代以來(lái),關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)已成為數(shù)據(jù)庫(kù)領(lǐng)域中最為活躍的一個(gè)分支。(8)DISCONNECT(撤消屬籍),將當(dāng)前記錄從包含它的全部或部分系型的系值中移走,在系籍約束容許的情況下。(7)RECONNECT(改變屬籍),將當(dāng)前記錄從包含它的某一指定系值中移走,然后加入到這個(gè)系的另一系值中。(6)CONNECT(加入屬籍),將當(dāng)前記錄插入到指定的系型的系值中。(4)MODIFY(修改),將用GET所獲的記錄值或數(shù)據(jù)項(xiàng),在用戶工作區(qū)進(jìn)行修改后,用此語(yǔ)句將其回存到數(shù)據(jù)庫(kù)中。(1)FIND(查找),它主要有:(A)在某記錄類型中查找;(B)在某系類型中查找;(C)在某系中查找屬記錄;(D)查找某系值的首記錄;(E)在某系中按某數(shù)據(jù)項(xiàng)值查找;(2)GET(取值),將當(dāng)前的記錄值或數(shù)據(jù)項(xiàng)的值讀取到用戶工作區(qū),以供進(jìn)一步操作?!?】網(wǎng)狀數(shù)據(jù)庫(kù)數(shù)據(jù)操縱方法 在DBTG系統(tǒng)中,用戶的應(yīng)用程序是用主語(yǔ)言和DML語(yǔ)言混合編寫(xiě)而成,主語(yǔ)言用于操縱內(nèi)存中的數(shù)據(jù),進(jìn)行某種運(yùn)算等,DML語(yǔ)言則是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操縱。若其中數(shù)據(jù)項(xiàng)有變化,還需列出有變化的數(shù)據(jù)項(xiàng)。(3)域的描述,列出子模式定義所涉及的域。子模式的定義描述與模式有所不同,它的描述主要有以下內(nèi)容:(1)子模式標(biāo)識(shí)部分,其作用是定義子模式名稱及其所對(duì)應(yīng)的模式(2)換名描述,即將模式中的域名、記錄名、系名還是數(shù)據(jù)項(xiàng)名用其它名稱替換,以消除同主語(yǔ)言規(guī)則不一致的地方,同時(shí)提高描述的可讀性。每一個(gè)子模式可供若干應(yīng)用程序共享,但一個(gè)應(yīng)用程序一次只能啟用一個(gè)子模式。(5),模式定義描述結(jié)束。其語(yǔ)句格式為:SET SELECTION IS THRU 〈系名〉OWNER IDENTIFIED BY CURRENT OF SET。固定意味著一個(gè)屬記錄刪除前,它必須是某一系值中的成員;強(qiáng)制意味著一個(gè)屬記錄在屬于某個(gè)系值時(shí),可以通過(guò)操作,使之成為另一系值的成員,但不容許離開(kāi)這一系;任選則意味著一個(gè)屬記錄可以屬于某個(gè)系值,也可以不附屬任一系值而獨(dú)立存在。自動(dòng)意味著當(dāng)一個(gè)屬記錄值插入到數(shù)據(jù)庫(kù)后,由DBMS自動(dòng)將其加入到一個(gè)系值中;手動(dòng)則意味著加入到某一系值的工作將由用戶自己完成。(B)屬籍類別是指屬記錄在插入或刪除時(shí),所具有的特性。(A)系的實(shí)現(xiàn)方式(MODE)有兩種:(i)鏈?zhǔn)剑–HAIN),將一個(gè)系值中的首記錄及其屬記錄用指針連接在一起。如圖2。(4)系條目。(D)系統(tǒng)方式(SYSTEM),由DBMS所提供的一種標(biāo)準(zhǔn)方式,確定記錄的存放位置。(B)直接方式(DIRECT),記錄的存放位置由系統(tǒng)所給定每個(gè)記錄的數(shù)據(jù)庫(kù)碼確定。(3),它用來(lái)定義記錄名、記錄的存放方式、記錄所在的域及記錄中各數(shù)據(jù)項(xiàng)的類型、長(zhǎng)度等。它的作用是定義一個(gè)或若干域,其格式為:AREA NAME IS 〈域名〉。它的作用是標(biāo)識(shí)一個(gè)模式,即標(biāo)識(shí)一個(gè)網(wǎng)狀數(shù)據(jù)庫(kù)的概念層數(shù)據(jù)庫(kù),其格式為:SCHEMA NAME IS 〈模式名〉。(c)所示,則C—SC系型的系值共有三個(gè),它們是:{C1;S1C1A,S2C1B,S3C1B,S4C1B},{C2;S1C2B,S3C2C,S4C2A},{C3;S2C3A,S4C3C},而S—SC系型的系值共有四個(gè),它們是:{S1;S1C1A,S1C2B},{S2;S2C1B,S2C3A},{S3;S3C1B,S3C2C},{S4;S4C1B,S4C2A,S4C3C}。一個(gè)系型中的首記錄型有幾個(gè)記錄,系型的系值就有幾個(gè)。系也有型和值之分,系型是與系所描述的聯(lián)系相關(guān)聯(lián)的記錄型的集合,通常一個(gè)系型是由一個(gè)首記錄型和若干相關(guān)的屬記錄型組成。在設(shè)計(jì)概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)時(shí),通常將實(shí)體型定義為記錄型,實(shí)體型的屬性定義為記錄型的數(shù)據(jù)項(xiàng),并將實(shí)體型之間的聯(lián)系用系加以描述,由此將網(wǎng)狀數(shù)據(jù)模型的定義描述轉(zhuǎn)換為網(wǎng)狀數(shù)據(jù)庫(kù)概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)。它主要包括三方面內(nèi)容,它們是:(1)模式數(shù)據(jù)描述語(yǔ)言規(guī)范;(2)子模式數(shù)據(jù)描述語(yǔ)言規(guī)范;(3)數(shù)據(jù)操縱語(yǔ)言規(guī)范。這里以網(wǎng)狀數(shù)據(jù)庫(kù)方面著名的DBTG報(bào)告為基礎(chǔ),介紹有關(guān)的情況。同樣它在數(shù)據(jù)庫(kù)的發(fā)展過(guò)程中,曾起過(guò)重要的作用。網(wǎng)狀數(shù)據(jù)模型對(duì)于層次或非層次結(jié)構(gòu)的事物都能比較自然地模擬描述,從這一點(diǎn)上講,它比層次數(shù)據(jù)模型功能要強(qiáng)。 為了描述網(wǎng)狀數(shù)據(jù)模型中各實(shí)體型之間不同的聯(lián)系,必須給每個(gè)聯(lián)系明確的定義,在網(wǎng)狀數(shù)據(jù)庫(kù)中,每個(gè)聯(lián)系被定義成一個(gè)系。R1實(shí)體和R2實(shí)體之間有兩種聯(lián)系SET1和SET2。(2)網(wǎng)狀數(shù)據(jù)模型中容許有復(fù)合鏈。即一個(gè)子女實(shí)體對(duì)應(yīng)于一個(gè)雙親實(shí)體;而在網(wǎng)狀數(shù)據(jù)模型中,從子女實(shí)體到其雙親實(shí)體之間的聯(lián)系可以不是唯一的,(a)中,R4實(shí)體就有兩個(gè)雙親R2和R3。它們均為網(wǎng)狀數(shù)據(jù)模型。滿足以上兩條約束的E-R數(shù)據(jù)模型,就可稱為是網(wǎng)狀數(shù)據(jù)模型,在網(wǎng)狀數(shù)據(jù)模型中,用長(zhǎng)方形表示實(shí)體型;將長(zhǎng)方形分為若干方塊,表示實(shí)體型的各屬性;用有向線段表示各實(shí)體型之間的聯(lián)系。(2)若將實(shí)體抽象表示為一結(jié)點(diǎn),聯(lián)系抽象表示為一有向線段,忽視屬性,所得到的數(shù)據(jù)模型抽象拓?fù)鋱D,滿足以下要求:(A)可以有一個(gè)以上的結(jié)點(diǎn)無(wú)雙親結(jié)點(diǎn)。 網(wǎng)狀數(shù)據(jù)模型 網(wǎng)狀數(shù)據(jù)模型也是定義在E-R數(shù)據(jù)模型基礎(chǔ)之上一種數(shù)據(jù)模型,它與網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)邏輯組織結(jié)構(gòu)是一致的。如同領(lǐng)航員一樣,在樹(shù)形的河道中航行。 由以上操作例子可以看出,層次數(shù)據(jù)庫(kù)的數(shù)據(jù)操作是基于檢索進(jìn)行的;數(shù)據(jù)檢索都是從根片斷開(kāi)始,按照數(shù)據(jù)庫(kù)的層次數(shù)據(jù)結(jié)構(gòu)進(jìn)行查找的。901039。00139。⑤REPL(Replace):其功能是修改滿足條件的一片斷值。) DLET上述語(yǔ)句執(zhí)行結(jié)果是,將001系9010班級(jí)及其板級(jí)中所有學(xué)生的片斷值全部刪除。) CLASS(CNO=39。例如:GHU DEPT(DNO=39。) STUDENT上述語(yǔ)句執(zhí)行結(jié)果是,將用戶工作區(qū)中已建立好的一個(gè)學(xué)生片斷值,插入001系9010班級(jí)中。) CLASS(CNO=39。例如:ISRT DEPT (DNO=39。) STUDENT NS GN STUDENT GO TO NS上述語(yǔ)句執(zhí)行結(jié)果是,檢索出第一個(gè)專業(yè)是應(yīng)用數(shù)學(xué)的班級(jí)中的第一個(gè)學(xué)生及其之后的所有學(xué)生信息。例如:GN DEPT CLASS(CSK=39。)上述語(yǔ)句執(zhí)行結(jié)果是,檢索出第一個(gè)專業(yè)是應(yīng)用數(shù)學(xué)的班級(jí)信息。例如:GU DEPT CLASS(CSK=39。這里操作假定是基于圖33的物理數(shù)據(jù)庫(kù)所定義的一個(gè)邏輯數(shù)據(jù)庫(kù),它包含有DEPT、CLASS和STUDENT三個(gè)片斷型?!?】層次數(shù)據(jù)庫(kù)數(shù)據(jù)操縱方法 IMS數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)操縱語(yǔ)言所提供的操作有四種類型,它們是查找、插入、刪除、更新。提高了用戶應(yīng)用程序的獨(dú)立性。④END語(yǔ)句:指示說(shuō)明子模式描述結(jié)束。②SENSEG語(yǔ)句:指出邏輯數(shù)據(jù)庫(kù)所對(duì)應(yīng)的物理數(shù)據(jù)庫(kù)片斷名,指出其雙親片斷名,以及對(duì)該片斷的處理方式(PROCOPT),處理方式有:G:容許讀;I:容許插入;R:容許修改;D:容許刪除等。(2)若干個(gè)程序說(shuō)明塊(PSB),它描述特定用戶的局部邏輯結(jié)構(gòu)。 最后我們從圖2。同樣根片斷值有幾個(gè),其邏輯數(shù)據(jù)庫(kù)記錄就有幾個(gè)。 一個(gè)物理數(shù)據(jù)庫(kù)記錄型中,部分帶根的片斷型所組成的有序集合,稱為邏輯數(shù)據(jù)庫(kù)記錄型。(2)一個(gè)邏輯子女片斷必須有一個(gè)物理雙親片斷和一個(gè)邏輯雙親片斷。這里我們只介紹第一種情況下的邏輯數(shù)據(jù)庫(kù)的定義和描述。【2】層次數(shù)據(jù)庫(kù)用戶層數(shù)據(jù)邏輯組織結(jié)構(gòu)的設(shè)計(jì)與描述 在IMS數(shù)據(jù)庫(kù)系統(tǒng)中,用戶層數(shù)據(jù)邏輯組織結(jié)構(gòu)所定義的子模式,稱為IMS邏輯數(shù)據(jù)庫(kù),它是從物理數(shù)據(jù)庫(kù)中派生出來(lái)的,數(shù)據(jù)庫(kù)的應(yīng)用程序只能使用邏輯數(shù)據(jù)庫(kù)。⑦END語(yǔ)句:指示說(shuō)明模式描述結(jié)束。⑤DBDGEN語(yǔ)句:指示模式編譯器開(kāi)始產(chǎn)生數(shù)據(jù)庫(kù)模式定義。③SEGM語(yǔ)句:定義片斷名、一個(gè)片斷值的長(zhǎng)度、片斷值可能的個(gè)數(shù)、采用連接指針的類型和雙親片斷名。(D)層次索引直接存取方法(HIDAM),即將數(shù)據(jù)庫(kù)中的所有片斷值,按照其層次數(shù)據(jù)結(jié)構(gòu)從上而下、從左而右的順序用指針(PTR=H)連接起來(lái)存放,或用兄弟、子女指針(PTR=T)連接起來(lái)存放,并建立根片斷值的索引。(B)層次索引存取方法(HISAM),即將數(shù)據(jù)庫(kù)中的所有根片斷值,用指針連接起來(lái)或單獨(dú)存放,并建立其索引;其它下屬片斷值,按照其層次數(shù)據(jù)結(jié)構(gòu)從上而下、從左而右的順序存放。(3)命名各片斷中的字段名、數(shù)據(jù)類型和長(zhǎng)度。該描述主要包括以下內(nèi)容:(1)命名物理數(shù)據(jù)庫(kù),規(guī)定存儲(chǔ)組織方法和存取方法,指定物理設(shè)備及塊的大小。通常一個(gè)IMS數(shù)據(jù)庫(kù)是由若干這樣的物理數(shù)據(jù)庫(kù)記錄所構(gòu)成。如學(xué)校有20個(gè)系,它的物理數(shù)據(jù)庫(kù)就有20個(gè)記錄。整個(gè)數(shù)據(jù)模型結(jié)構(gòu)DTCS稱為是一物理數(shù)據(jù)庫(kù)記錄型,其每一個(gè)記錄值是由根片斷的一個(gè)值及其所有相應(yīng)的下屬片斷的值所組成。這里TEACHER和CLASS片斷型稱為是DEPT片斷型的下屬片斷,同樣STUDENR稱為是CLASS的下屬片斷。其中:數(shù)據(jù)模型中的片斷型有DEPT、CLASS、STUDENT、TEACHER,各片斷型中的字?jǐn)喾謩e是DEPT(DNO系編號(hào),DNA系名,DMA系主任),CLASS(CNO班級(jí)編號(hào),CSK專業(yè)),STUDENT(SNO學(xué)生編號(hào),SNA姓名,SAG年齡),TEACHER(TNO教師編號(hào),TNA教師姓名,TAG教師年齡)。需要說(shuō)明的是,這里講的物理數(shù)據(jù)庫(kù)并不是指存儲(chǔ)在物理設(shè)備上的數(shù)據(jù)庫(kù),即與數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)。在設(shè)計(jì)概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)時(shí),通常將實(shí)體型定義為片斷型,實(shí)體型的屬性定義為片斷型的字?jǐn)?,并通過(guò)指定片斷的雙親片斷,定義片斷型之間的聯(lián)系,由此將層次數(shù)據(jù)模型的定義描述轉(zhuǎn)換為層次數(shù)據(jù)庫(kù)概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)。這里以IBM公司的IMS層次數(shù)據(jù)庫(kù)系統(tǒng)為例,來(lái)說(shuō)明有關(guān)的情況。在這一小節(jié),我們將介紹層次數(shù)據(jù)庫(kù)的數(shù)據(jù)描述,數(shù)據(jù)操縱的定義和基本過(guò)程。 ,顯然它滿足樹(shù)的定義,而其中各實(shí)體型之間的相互聯(lián)系均為一對(duì)多的聯(lián)系,所以說(shuō)這是個(gè)典型的層次數(shù)據(jù)模型結(jié)構(gòu)。 學(xué)校行政管理機(jī)構(gòu)的E-R圖和層次數(shù)據(jù)模型結(jié)構(gòu)圖 在現(xiàn)實(shí)世界中,有許多層次結(jié)構(gòu)的例子,如在行政管理部門(mén)中,部下設(shè)許多局,局下設(shè)許多處,處下設(shè)許多科等。滿足以上兩條約束的E-R數(shù)據(jù)模型,就可稱為是層次數(shù)據(jù)模型,在層次數(shù)據(jù)模型中,用長(zhǎng)方形表示實(shí)體型;將長(zhǎng)方形分為若干方塊,表示實(shí)體型的各屬性;用有向線段表示各實(shí)體型之間的聯(lián)系。該拓?fù)鋱D有以下特點(diǎn):(A)有且僅有一個(gè)結(jié)點(diǎn)無(wú)雙親結(jié)點(diǎn),此結(jié)點(diǎn)稱為樹(shù)的根。其具體定義如下:(1)對(duì)E-R數(shù)據(jù)模型中的聯(lián)系類型加以限制,只容許是一對(duì)多的聯(lián)系(包括一對(duì)一聯(lián)系),在此基礎(chǔ)上,用實(shí)體、屬性和聯(lián)系這三個(gè)基本要素描述客觀信息世界中的信息結(jié)構(gòu)。 數(shù)據(jù)模型與數(shù)據(jù)庫(kù)系統(tǒng) 本節(jié)主要介紹常用的三種數(shù)據(jù)庫(kù)系統(tǒng)所支持的數(shù)據(jù)模型有關(guān)基本知識(shí),以及與數(shù)據(jù)模型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)的基本情況。由于E-R圖直觀易懂,通過(guò)它,計(jì)算機(jī)專業(yè)人員與非計(jì)算機(jī)專業(yè)人員可以進(jìn)行直接地交流和合作,同時(shí)使用E-R圖,可以很方便、真實(shí)和合理地描述出一個(gè)具體數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的信息結(jié)構(gòu),并以此作為進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的基礎(chǔ)。最后作為示意,我們分別給出了零件實(shí)體型的三個(gè)屬性描述和職工與工程型實(shí)體間“工作”聯(lián)系的屬性描述,這些屬性用橢圓加以表示。并描述了這五個(gè)實(shí)體型間的相互聯(lián)系,這些聯(lián)系分別是部門(mén)與職工實(shí)體型間一對(duì)多的“所屬”聯(lián)系;職工與工程型實(shí)體間多對(duì)多的“工作”和一對(duì)一“管理”兩種聯(lián)系;工程與零件實(shí)體型間多對(duì)多的“所需”聯(lián)系;工程、供應(yīng)商和零件三個(gè)實(shí)體型間相互多對(duì)多的“供應(yīng)”聯(lián)系。 最后為了說(shuō)明上面我們所介紹的有關(guān)E-R圖的建立和表示方法,這里我們介紹一個(gè)制造工廠數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中所涉及的部分信息對(duì)象所構(gòu)成的E-R圖。這樣我們就可以得到一個(gè)能夠較好地描繪出實(shí)體、實(shí)體與實(shí)體之間相互聯(lián)系以及有關(guān)實(shí)體和聯(lián)系屬性的結(jié)構(gòu)圖,這個(gè)圖通常就被稱為E-R圖。在完成了上述的分析步驟,就可以獲得能夠描述現(xiàn)實(shí)信息世界的E-R數(shù)據(jù)模型。(3)根據(jù)(1)、(2)二個(gè)步驟的結(jié)論,確定能夠描述所要求所有信息對(duì)象的各實(shí)體間的聯(lián)系。使用E-R數(shù)據(jù)模型來(lái)分析描述現(xiàn)實(shí)信息世界中的各種信息對(duì)象的主要分析步驟如下:(1)首先根據(jù)數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用的整體要求,確定所涉及的現(xiàn)實(shí)信息世界中的所有信息對(duì)象的范圍。 實(shí)體、屬性和聯(lián)系三個(gè)基本要素的概念是有明確區(qū)分的,但是對(duì)于某個(gè)具體數(shù)據(jù)對(duì)象,究竟它應(yīng)該被認(rèn)為是實(shí)體,還是屬性或聯(lián)系,常常需要根據(jù)具體應(yīng)用背景和用戶的觀點(diǎn),方可確定。又如機(jī)器和零件這兩個(gè)實(shí)體型,“構(gòu)造”是它們之間的一種聯(lián)系,數(shù)量這一屬性,即需要多少數(shù)量的零件構(gòu)造某一個(gè)機(jī)器,則是構(gòu)造這一聯(lián)系的屬性。 不僅實(shí)體型有屬性,聯(lián)系也可以有屬性,如學(xué)生和課程這兩個(gè)實(shí)體型,“選課”是它們之間的一種聯(lián)系,學(xué)生選修某門(mén)課程取得了某個(gè)成績(jī),顯然成績(jī)描述是的一個(gè)屬性,但它既不是學(xué)生實(shí)體型中的一個(gè)屬性,也不是課程實(shí)體型中的一個(gè)屬性。實(shí)體型中的某個(gè)(些)屬性的取值可以用來(lái)唯一區(qū)分實(shí)體型中具體實(shí)體,如學(xué)生實(shí)體型中的學(xué)號(hào)屬性的取值就可以用來(lái)區(qū)分每一個(gè)學(xué)生。一個(gè)屬性的值域可以是整數(shù)、浮點(diǎn)數(shù)、字符串等。這些屬性的一組值就表示了一個(gè)具體的實(shí)體?!?】屬性