版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
管理信息化信息化知識數(shù)據(jù)庫系統(tǒng)綜合概論第一章數(shù)據(jù)庫系統(tǒng)概論及常見的三種類型的數(shù)據(jù)庫系統(tǒng)的特點。重點介紹關(guān)系數(shù)據(jù)庫的有關(guān)知識。1.1數(shù)據(jù)管理技術(shù)發(fā)展史據(jù)信息,作為我們工作、生活等各方面的決策依據(jù)。數(shù)據(jù)管理則是指對數(shù)據(jù)的組織、編碼、在1880年美國進行人口普查統(tǒng)計時,就已采用穿孔卡片來存儲人口普查數(shù)據(jù),并采用機械為三個具有代表性的階段,即人工管理階段、文件管理階段和數(shù)據(jù)庫管理階段。【1】人工管理階段難實現(xiàn)多個不同應(yīng)用程序間的數(shù)據(jù)資源共享。存在著大量重復(fù)數(shù)據(jù),信息資源浪費嚴(yán)重?!?】文件管理階段這一階段發(fā)生于六十年代,由于當(dāng)時計算機硬件的發(fā)展,以及系統(tǒng)軟件尤其是文件系統(tǒng)的出現(xiàn)和發(fā)展,人們開始利用文件系統(tǒng)來幫助完成數(shù)據(jù)管理工作,具體講就是:數(shù)據(jù)以多種組織結(jié)構(gòu)(如順序文件組織、索引文件文件組織和直接存取文件組織等)的文件形式保存在外部存儲設(shè)備上,用戶通過文件系統(tǒng)而無需直接與外部設(shè)備打交道,以此來完成數(shù)據(jù)的修改、插入、刪除、檢索等管理操作;使用這種管理方式,不僅減輕進行數(shù)據(jù)管理的應(yīng)用程序工作量,更重要地是,當(dāng)數(shù)據(jù)的物理組織或存儲設(shè)備發(fā)生變化時,數(shù)據(jù)的邏輯組織可以不受任何影響,從而保證了基于數(shù)據(jù)邏輯組織所編制的應(yīng)用程序也可以不受硬件設(shè)備變化的影響。這樣就使得程序和數(shù)據(jù)之間具有了一定的相互獨立性?,F(xiàn)來對它們的管理操作。這樣做同樣會導(dǎo)致數(shù)據(jù)的過多冗余和增加數(shù)據(jù)維護工作的復(fù)雜性。管理工作,在數(shù)據(jù)的安全和保密等方面,也難以采取有效的措施加以控制?!?】數(shù)據(jù)庫管理階段1個顯著特點:(1)從整體角度組織數(shù)據(jù)的組織結(jié)構(gòu)如圖1.1所示。圖1.1學(xué)生信息數(shù)據(jù)組織結(jié)構(gòu)采用這種數(shù)據(jù)組織不僅可以有效地解決了文件系統(tǒng)的數(shù)據(jù)組織中所存在的數(shù)據(jù)冗余以及數(shù)據(jù)一致性維護的問題。更主要的是它可以使人們從更高的全局角度出發(fā),合理地組織數(shù)據(jù),從而有利于更大范圍內(nèi)的數(shù)據(jù)資源的共享,提高信息的使用效率。(2)數(shù)據(jù)可為多個應(yīng)用服務(wù)1.11.1加。(3)有一個數(shù)據(jù)庫系統(tǒng)的管理軟件質(zhì)量的一個極其重要的因素。被限制在最小的范圍內(nèi)。由此可大大地減少數(shù)據(jù)庫應(yīng)用程序的開發(fā)與維護的工作量。代和面向?qū)ο竽P痛?。?:均是層次模型或網(wǎng)狀模型。世界上第一個數(shù)據(jù)庫系統(tǒng)是于1964年由美國通用電氣公司開發(fā)成功的IDS(IntegratedDataStoreIBM公司于六十年代末推出了第一個商品化的層次數(shù)據(jù)庫系統(tǒng)IMS(InformationManagementSytem),它們的出現(xiàn)與應(yīng)用為數(shù)據(jù)庫技術(shù)的發(fā)展奠定了基礎(chǔ)。(2:1970年Codd提出了關(guān)系數(shù)據(jù)模型,由于其了不少關(guān)系數(shù)據(jù)庫系統(tǒng),其中具有代表性應(yīng)首推IBM公司推出的SQL/DS和DB2兩個商品化大且在我國用得較多的有OracleSybaseSysbaseInformixFoxPro數(shù)據(jù)庫系統(tǒng)均已被擴充為分布式數(shù)據(jù)庫系統(tǒng)。(3:些商品化系統(tǒng)。但其具體應(yīng)用尚不多。1.2數(shù)據(jù)庫系統(tǒng)統(tǒng)的內(nèi)涵有一個較為清楚的認(rèn)識。1.2.1數(shù)據(jù)庫系統(tǒng)概念由于數(shù)據(jù)庫系統(tǒng)是一個由許多基本概念、技術(shù)方法和其應(yīng)用對象所組成的復(fù)雜的有機整體。這些數(shù)據(jù)的程序相互獨立;數(shù)據(jù)庫中的數(shù)據(jù)可同時為多個應(yīng)用服務(wù);數(shù)據(jù)庫中的數(shù)據(jù)定義、1.2所示。(1)和邏輯組織結(jié)構(gòu)在最大程度上與用戶所編制的應(yīng)用程序相互獨立。(2)多種應(yīng)用:數(shù)據(jù)庫中的數(shù)據(jù),在數(shù)據(jù)庫管理系統(tǒng)的控制與管理之下,可以同時為多種不相互交叉的。用戶的操作方式既可以按以數(shù)據(jù)輸入/輸出和數(shù)據(jù)維護為主的數(shù)據(jù)流量較大的通過編程來完成對數(shù)據(jù)庫中數(shù)據(jù)的各種操作。(3)數(shù)據(jù)庫管理系統(tǒng):它一方面負(fù)責(zé)對數(shù)據(jù)庫中的數(shù)據(jù)進行管理和維護;一方面為用戶操作的操作并保障數(shù)據(jù)庫的安全。該具有的以下五個基本特點:【1】由于數(shù)據(jù)庫系統(tǒng)是從整體角度考慮數(shù)據(jù)的組織,因此它必須有能力描述能夠反映客觀據(jù)模型的數(shù)據(jù)邏輯組織結(jié)構(gòu)。圖1.2數(shù)據(jù)庫系統(tǒng)組成【21存儲設(shè)備上的組織結(jié)構(gòu)被稱為數(shù)據(jù)的物理組織;(2)數(shù)據(jù)在用戶或應(yīng)用程序面前所表現(xiàn)出變,從而引起數(shù)據(jù)物理組織的改變,這種改變稱為數(shù)據(jù)的再組織。用戶在編制應(yīng)用程序時,包括物理和邏輯的獨立性,都是由數(shù)據(jù)庫管理系統(tǒng)進行維護的?!?】數(shù)據(jù)共享,由于數(shù)據(jù)庫是從整體的角度對數(shù)據(jù)進行組織的,并在保證數(shù)據(jù)一致性的情樣不僅造成存儲空間的浪費,更主要的是由此可能帶來數(shù)據(jù)不一致的隱患?!?】數(shù)據(jù)庫系統(tǒng)的安全可靠與完整,一個數(shù)據(jù)庫系統(tǒng)的可靠性體現(xiàn)在它的軟件系統(tǒng)運行故能夠保持一致性。這些特性可以從以下幾個方面進行說明:〈1〉安全性控制安全性控制主要指的是數(shù)據(jù)庫的保密性。并不是每個用戶都能夠存取數(shù)據(jù)庫中所有數(shù)據(jù)的,法對使用者操作數(shù)據(jù)的合法權(quán)進行檢驗,以實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)安全性的保護控制。〈2〉完整性控制阿拉伯?dāng)?shù)字來表示月份,在輸入14來代表月份時顯然是無效的。數(shù)據(jù)庫系統(tǒng)應(yīng)提供盡可能多的檢驗措施,以確保數(shù)據(jù)庫中的數(shù)據(jù)滿足用戶所要求的各種約束要求?!?〉并發(fā)控制錯誤的發(fā)生,保證數(shù)據(jù)庫中數(shù)據(jù)的操作能夠正確完成執(zhí)行。〈4〉故障的發(fā)現(xiàn)與恢復(fù)的內(nèi)容和系統(tǒng)的正常運行?!?】良好的人機接口與性能,任何數(shù)據(jù)庫系統(tǒng)最終都是要和用戶打交道,系統(tǒng)所具有的各重要指標(biāo)。1.2.2數(shù)據(jù)庫結(jié)構(gòu)ANSI模式、用戶層數(shù)據(jù)模式和物理層數(shù)據(jù)模式?!?】概念層數(shù)據(jù)模式,又稱為模式,它是對數(shù)據(jù)庫中數(shù)據(jù)整體邏輯結(jié)構(gòu)的描述,它是對數(shù)據(jù)庫中所有數(shù)據(jù)項、記錄類型以及各記錄類型之間的相互關(guān)系的描述。這里需要說明的是,計是數(shù)據(jù)庫設(shè)計的最基本也是最重要的任務(wù)。【2】用戶層數(shù)據(jù)模式,又稱為外模式或子模式,它是對以用戶為對象使用數(shù)據(jù)庫所涉及到共用同一個子模式。提供這一層次的數(shù)據(jù)模式描述,有以下優(yōu)點:〈1〉用戶只要按照描述自己所使用數(shù)據(jù)的子模式編寫應(yīng)用程序或輸入操作命令,就可以完是用戶接口變得簡單?!?〉保證了數(shù)據(jù)獨立性。由于用戶的數(shù)據(jù)庫應(yīng)用編程僅僅是依據(jù)子模式的數(shù)據(jù)邏輯結(jié)構(gòu)的獨立性?!?〉數(shù)據(jù)能夠被較好地共享。由于同一模式可以產(chǎn)生許多不同的子模式,這些子模式所描證數(shù)據(jù)的一致性、完整性和正確性。〈4〉有利于保證數(shù)據(jù)的安全和保密。由于用戶是通過其相應(yīng)的應(yīng)用程序?qū)?shù)據(jù)庫中數(shù)據(jù)進所描述的數(shù)據(jù),由此就可以保證數(shù)據(jù)庫中的數(shù)據(jù)具有較好的安全性?!?】物理層數(shù)據(jù)模式,又稱為內(nèi)模式或物理模式。它是對數(shù)據(jù)庫中所有數(shù)據(jù)在物理設(shè)備上系統(tǒng)統(tǒng)一控制的。管理系統(tǒng)負(fù)責(zé)完成從概念層數(shù)據(jù)模式到物理層數(shù)據(jù)模式之間的數(shù)據(jù)映射,有的物理獨立性。圖1.3數(shù)據(jù)庫結(jié)構(gòu)各模式間關(guān)系1.3間這兩種映射,當(dāng)然這兩種映射是由管理系統(tǒng)自動完成的,對用戶是透明的。理層的數(shù)據(jù)模式描述。1.2.3數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)的核心是數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS),在它的操作系統(tǒng)之上的應(yīng)用軟件平臺。它一般具有以下三個主要功能:(1ADBMS完成,用戶不必關(guān)心。(B也由DBMSC表生成工具等,幫助用戶更加容易地對數(shù)據(jù)庫的操縱進行編程。(2)管理數(shù)據(jù)庫。它主要包括以下功能:(A)控制整個數(shù)據(jù)庫系統(tǒng)的運行;(B)控制用C(DE構(gòu)的完整和一致。(3)維護數(shù)據(jù)庫,主要包括:(A)初始化時數(shù)據(jù)庫數(shù)據(jù)的裝入;(B)運行時記錄下與用戶、操作、系統(tǒng)狀態(tài)和結(jié)果等信息的工作日志;(C)監(jiān)視數(shù)據(jù)庫性能;在性能變壞時,重新組織數(shù)據(jù)庫;(D)在數(shù)據(jù)庫系統(tǒng)的硬件或軟件發(fā)生故障后,對數(shù)據(jù)庫中受破壞的數(shù)據(jù)進行恢復(fù)。這一小節(jié),將略為詳盡地介紹與數(shù)據(jù)庫管理軟件有關(guān)的一些基本情況。(一)數(shù)據(jù)庫系統(tǒng)語言通常包括數(shù)據(jù)庫數(shù)據(jù)描述語言DDL(DataDescriptionLanguage)和數(shù)據(jù)庫數(shù)據(jù)操作語言DML(DataManipulationLanguage)這兩種語言。數(shù)據(jù)描述語言用于描述數(shù)據(jù)庫中各種模式述這兩種語言一些基本功能?!?】數(shù)據(jù)描述語言分為模式描述語言、子模式描述語言和內(nèi)模式描述語言。它們各自的功能如下:(1)模式描述語言,它是用來描述數(shù)據(jù)庫概念層數(shù)據(jù)模式的,即用于描述數(shù)據(jù)庫中所有數(shù)部語句的集合,通常就被稱為一個模式,一個模式的主要內(nèi)容有:①給數(shù)據(jù)庫總體數(shù)據(jù)的邏輯組織結(jié)構(gòu),即模式取名等)和數(shù)據(jù)長度等。③描述模式中各記錄類型之間的相互聯(lián)系,如果存在有相互聯(lián)系的話。個模式所需要包括的三個基本方面進行定義說明。(2)子模式描述語言,它是用來描述數(shù)據(jù)庫用戶層數(shù)據(jù)模式的,即用于描述用戶所使用的部語句的集合,通常就被稱為一個子模式,一個子模式的主要內(nèi)容有:①給用戶使用數(shù)據(jù)庫所涉及到局部數(shù)據(jù)的邏輯組織結(jié)構(gòu),即子模式取名的數(shù)據(jù)項必須是已在模式中定義過的。模式中定義過的。COBOL子模式描述語言、FORTRAN子模式描述語言和C子模式描述語言等。(3)內(nèi)模式描述語言,它是用來描述數(shù)據(jù)庫中數(shù)據(jù)在物理存貯介質(zhì)上的組織結(jié)構(gòu)和存放方式等,它與數(shù)據(jù)庫系統(tǒng)所運行的硬件環(huán)境特性相關(guān)。例如,系統(tǒng)建立了哪些物理文件?文件述的。定義,或干脆將數(shù)據(jù)描述語言與數(shù)據(jù)操作語言歸并到了一起,以方便用戶使用。如FoxPro數(shù)據(jù)庫系統(tǒng),以及目前比較流行的基于SQL的多種數(shù)據(jù)庫系統(tǒng)?!?】數(shù)據(jù)操作語言數(shù)據(jù)庫中添加數(shù)據(jù)、刪除數(shù)據(jù)庫中沒有保留價值的數(shù)據(jù)或修改某些發(fā)生變化的數(shù)據(jù)等操作。本操作功能:(AB到數(shù)據(jù)庫中;(C)修改數(shù)據(jù)庫中的記錄或聯(lián)系;(D)刪除數(shù)據(jù)庫中的記錄或聯(lián)系;CCOBOL,F(xiàn)ORTRAN編譯程序便不能完全編譯應(yīng)用程序了,解決這一問題有兩種辦法:(A)重新設(shè)計和實現(xiàn)一個編譯程序,使之能編譯包括數(shù)據(jù)操縱語言和主語言的所有語句,這種辦法不大現(xiàn)實經(jīng)濟;(B)不修改主語言編譯程序,而是設(shè)計一個預(yù)編程序來對應(yīng)用程序中的數(shù)據(jù)操縱語言進行后的目標(biāo)程序。這樣做辦法比較可行,目前已為許多數(shù)據(jù)庫系統(tǒng)所采用。工具和數(shù)據(jù)庫API接口等。(二)數(shù)據(jù)庫系統(tǒng)運行管理與控制軟件這幾種軟件一些基本功能(1A序,它們的作用是將各種采用模式描述語言所定義數(shù)據(jù)模式編譯成DBMS所使用的內(nèi)部定義目標(biāo)模式。(B)數(shù)據(jù)庫系統(tǒng)各種數(shù)據(jù)操縱語言的處理程序,它們可將應(yīng)用程序中采用數(shù)據(jù)操縱語言所寫的數(shù)據(jù)操作語句轉(zhuǎn)換成其宿主語言編譯程序所能處理的語句。(C)終端操作(D)數(shù)據(jù)庫控制命令解釋程序,它負(fù)責(zé)解釋執(zhí)行每一條數(shù)據(jù)庫控制命令。(2A法性,以決定一個訪問是否能使用數(shù)據(jù)庫。(B)并發(fā)控制程序。協(xié)調(diào)多個應(yīng)用程序?qū)?shù)據(jù)庫的操作,保證數(shù)據(jù)庫中數(shù)據(jù)的一致性。(C)保密控制程序。實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的安全保密控制。(D)數(shù)據(jù)完整性控制程序。核對數(shù)據(jù)庫完整性約束條件,以決定對數(shù)據(jù)庫的操作是否有效。(E)數(shù)據(jù)庫存取訪問程序。實施對數(shù)據(jù)庫中數(shù)據(jù)的操作,如執(zhí)行檢索、插入、修改、刪除等操作。(F)通訊控制程序。實現(xiàn)用戶程序與DBMS之間的通訊。(3A(B)系統(tǒng)恢復(fù)程序。當(dāng)軟硬件出現(xiàn)故障時,利用恢復(fù)程序?qū)?shù)據(jù)庫恢復(fù)到正確狀態(tài)。(C)行何種操作、數(shù)據(jù)變更情況等等。使每個用戶每次訪問都留下蹤跡。(D)性能監(jiān)測程序。E當(dāng)數(shù)據(jù)庫系統(tǒng)性能變壞時,對數(shù)據(jù)庫重新進行物理組織。(F)轉(zhuǎn)貯、編輯、打印程序、用于轉(zhuǎn)貯數(shù)據(jù)庫的部分和全部數(shù)據(jù),或者編輯打印數(shù)據(jù)等。(4)數(shù)據(jù)庫工具軟件。它主要是為了方便建立數(shù)據(jù)庫系統(tǒng)的具體應(yīng)用,而提供各種工具軟件。其中有數(shù)據(jù)庫系統(tǒng)應(yīng)用程序界面制作工具,報表制作工具等許多軟件工具。命周期,它主要由以下五個階段構(gòu)成:(1DBMS及其支撐環(huán)境的選擇、硬件配置,人員的配備和培訓(xùn),投資估算和效益分析等活動。(2)數(shù)據(jù)庫系統(tǒng)的設(shè)計。它包括了解應(yīng)用系統(tǒng)的信息和處理需求,設(shè)計滿足其要求的整體數(shù)據(jù)模型及處理流程,并結(jié)合具體所采用的數(shù)據(jù)庫系統(tǒng)、硬件環(huán)境和系統(tǒng)軟件平臺的特點,數(shù)據(jù)庫系統(tǒng),來設(shè)計、建立、管理和維護數(shù)據(jù)庫系統(tǒng),使之能夠為用戶提供最佳服務(wù)。(3應(yīng)用程序的編制工作。(4)數(shù)據(jù)庫系統(tǒng)的管理。它包括應(yīng)用軟件的編制與修改、數(shù)據(jù)庫的重新組織、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的備份與恢復(fù)等工作。保證數(shù)據(jù)庫系統(tǒng)的完好,為用戶提供可靠的服務(wù)。(5)數(shù)據(jù)庫系統(tǒng)的調(diào)整。由于應(yīng)用數(shù)據(jù)庫系統(tǒng)的用戶所在的硬環(huán)境,如單位組織調(diào)整、人員變化等,軟環(huán)境,如人員素質(zhì)、應(yīng)用要求等,發(fā)生變化,在數(shù)據(jù)庫系統(tǒng)運行一段時間后,當(dāng)?shù)男薷暮脱a充,使之適應(yīng)新的形勢。一般與一個數(shù)據(jù)庫系統(tǒng)的應(yīng)用系統(tǒng)有關(guān)的人員,有以下四類,他們是:(A)系統(tǒng)管理員,數(shù)據(jù)庫系統(tǒng)的運行工作,以及維護數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù),保證其完整和安全、(B)系統(tǒng)分義相應(yīng)的數(shù)據(jù)庫系統(tǒng)的全局?jǐn)?shù)據(jù)模式;(C)應(yīng)用程序員,他們的任務(wù)主要是分析具體用戶的信息處理需要,定義數(shù)據(jù)庫系統(tǒng)的子模式,編寫具體數(shù)據(jù)庫應(yīng)用程序;(D)用戶,他們具體的數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫的最終使用者。(三)數(shù)據(jù)庫系統(tǒng)訪問示例這里,我們介紹一下普通用戶讀取數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)時,數(shù)據(jù)庫的工作過程(如圖1.4所示),以便使讀者可以從中了解DBMS是如何來進行數(shù)據(jù)庫系統(tǒng)的管理工作的。用戶訪問數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的過程實際上就是用戶與DBMS進行交互的過程。其具體步驟如下:(1)用戶通過應(yīng)用程序指明它使用的子模式名稱,發(fā)出數(shù)據(jù)操作命令,DBMS通過處理用戶的應(yīng)用程序,接收該操作命令。(2)DBMS按照應(yīng)用程序中的子模式名稱,調(diào)出相應(yīng)的子模式,核對該用戶的訪問權(quán)利、操作合法性等,若檢查通過則繼續(xù)執(zhí)行,否則拒絕執(zhí)行并報告出錯信息。(3)DBMS按模式確定子模式中操作所涉及的記錄類型,并通過模式到存儲模式的映射,找出這些記錄類型的相應(yīng)存貯模式。(4)DBMS查閱存貯模式,確定應(yīng)從哪個物理文件、存貯設(shè)備以及調(diào)用哪個訪問程序去讀取所需的記錄。(5)DBMS的訪問程序找到有關(guān)的物理數(shù)據(jù)地址,向操作系統(tǒng)發(fā)出讀操作命令。(6)操作系統(tǒng)收到DBMS發(fā)來的命令后,啟動系統(tǒng)的輸入/輸出程序完成讀操作,把要讀取的數(shù)據(jù)塊送到內(nèi)存中的系統(tǒng)緩沖區(qū)。(7)DBMS收到操作系統(tǒng)關(guān)于輸入/輸出操作結(jié)束回答后,按模式、子模式的定義,將已讀入到系統(tǒng)緩沖區(qū)的內(nèi)容映射為用戶程序所要的邏輯記錄,并送到用戶的工作區(qū)中。(8)DBMS向應(yīng)用程序發(fā)送反映操作執(zhí)行結(jié)果的狀態(tài)信息(由狀態(tài)字描述),如“執(zhí)行成功”、“數(shù)據(jù)未找到”等。(9)記載DBMS系統(tǒng)的工作日志。(10按出錯類型決定程序的后續(xù)處理。后再把修改好的記錄寫回數(shù)據(jù)庫中原記錄的位置上。圖1.4數(shù)據(jù)庫的工作過程1.3實體聯(lián)系模型的使用方法。1.3.1模型的組成數(shù)據(jù)模型包含兩方面內(nèi)容,它們是:(1)數(shù)據(jù)的靜態(tài)特性,這主要包括數(shù)據(jù)的基本結(jié)構(gòu)、數(shù)據(jù)間的聯(lián)系和數(shù)據(jù)中的相互約束等特性;(2)數(shù)據(jù)的動態(tài)特性,這主要包括對數(shù)據(jù)操作應(yīng)用的設(shè)計中,得到了廣泛應(yīng)用。E-R數(shù)據(jù)模型是P.P.Chen在1976E-R數(shù)據(jù)模型就是利用這三個成分來描述反E-R數(shù)據(jù)模型是從現(xiàn)實信息世界到數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)邏輯構(gòu)造成某個DBMS所能接受的數(shù)據(jù)邏輯組織結(jié)構(gòu),其工作往往是十分復(fù)雜而且難度也很大,增加了應(yīng)用系統(tǒng)設(shè)計的復(fù)雜性。識。【1】實體以描述。學(xué)生實體集中的不同的學(xué)生實體,通過其不同的學(xué)號又可加以區(qū)分。例如學(xué)號為881001881002姓名為王明的學(xué)生這個具體實體。【2】聯(lián)系生之間至少存在一種聯(lián)系,即“教學(xué)聯(lián)系,商店與商品之間存在一種‘供應(yīng)聯(lián)系,這些種聯(lián)系記為1:1的聯(lián)系。(2)一對多的聯(lián)系。其定義是:對于實體型A中的一個實體,聯(lián)系。通常將這種聯(lián)系記為1:N的聯(lián)系。1:1的聯(lián)系有時可看成是1:N的聯(lián)系的一種特可以教若干門課,一門課又可以有若干個教師講。通常將這種聯(lián)系記為M:N的聯(lián)系。以上解成每兩個實體型之間均存在一個多對多的聯(lián)系。A聯(lián)系。【3】屬性學(xué)生實體型的屬性。這些屬性的一組值就表示了一個具體的實體。在一個具體的實體型中,性又可稱為該實體型的標(biāo)識碼。是它們之間是它們之間的性?!⒒蚶斫鈹?shù)據(jù)庫的數(shù)據(jù)邏輯組織結(jié)構(gòu)都具有十分重要的意義。定。1.3.2模型的表示下:(1)首先根據(jù)數(shù)據(jù)庫系統(tǒng)應(yīng)用的整體要求,確定所涉及的現(xiàn)實信息世界中的所有信息對象的范圍。(2)根據(jù)第一步驟的結(jié)論,確定能夠描述所要求所有信息對象的各實體及屬性。(3)根據(jù)(1)、(2)二個步驟的結(jié)論,確定能夠描述所要求所有信息對象的各實體間的聯(lián)系。(43被稱為E-R圖方法。廠數(shù)據(jù)庫應(yīng)用系統(tǒng)中所涉及的部分信息對象所構(gòu)成的E-R圖。如圖1.5所示。圖1.5制造工廠信息的E-R圖在圖1.5是部門與職工實體型間一對多的“所屬聯(lián)系;職工與工程型實體間多對多的“工作和一對一“管理兩種聯(lián)系;工程與零件實體型間多對多的“所需聯(lián)系;工程、供應(yīng)商和零件些屬性用橢圓加以表示。-R圖方法還是很受歡迎的。1.4數(shù)據(jù)模型與數(shù)據(jù)庫系統(tǒng)應(yīng)的數(shù)據(jù)庫的基本情況。1.4.1層次數(shù)據(jù)模型1要素描述客觀信息世界中的信息結(jié)構(gòu)。(2)若將實體抽象表示為一結(jié)點,聯(lián)系抽象表示為之間的聯(lián)系。這描述所得到的圖形稱為層次數(shù)據(jù)模型的結(jié)構(gòu)圖。圖1.6學(xué)校行政管理機構(gòu)的E-R圖和層次數(shù)據(jù)模型結(jié)構(gòu)圖圖,作為示例,如圖1.6所示。在如圖1.61.61.4.2層次數(shù)據(jù)庫系統(tǒng)過程。重點介紹層次數(shù)據(jù)模型中的實體、屬性和聯(lián)系在層次數(shù)據(jù)庫中是如何定義和操縱的。這里以IBM公司的IMS層次數(shù)據(jù)庫系統(tǒng)為例,來說明有關(guān)的情況?!?】層次數(shù)據(jù)庫概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)的設(shè)計與描述的數(shù)據(jù)庫,即與數(shù)據(jù)庫的物理存儲結(jié)構(gòu)無關(guān)。圖1.7學(xué)校行政管理機構(gòu)的邏輯組織結(jié)構(gòu)1.7結(jié)構(gòu),若學(xué)校有若干系(DEPT),每個系有若干班級(CLASS),每個班有若干學(xué)生(STUDENT),每個系還有若干教師(TEACHER)。其中:數(shù)據(jù)模型中的片斷型有DEPT、CLASSSTUDENTTEACHERDEPT(DNO-DNA-DMA-CLASS(CNO-班級編號,CSK-STUDENT(SNO-學(xué)生編號,SNA-姓名,SAG-TEACHER(TNO-教師編號,TNA-教師姓名,TAG-DTCS。這里TEACHER和CLASS片斷型稱為是DEPT片斷型的下屬片斷,同樣STUDENR稱為是CLASS的下屬片斷。DEPT又可稱為是TEACHER和CLASS的雙親片斷(在這里它又是根片斷),TEACHER和CLASS又可互稱為兄弟片斷。整個數(shù)據(jù)模型結(jié)構(gòu)DTCS稱為是一物理數(shù)據(jù)庫記錄據(jù)庫有多少個根片斷值,則它就有多少個物理數(shù)據(jù)庫記錄。如學(xué)校有20個系,它的物理數(shù)據(jù)庫就有20通常一個IMS數(shù)據(jù)庫是由若干這樣的物理數(shù)據(jù)庫記錄所構(gòu)成。最后我們給出上述實例的物理數(shù)據(jù)庫的定義描述。該描述主要包括以下內(nèi)容:(1)命名物理數(shù)據(jù)庫,規(guī)定存儲組織方法和存取方法,指定物理設(shè)備及塊的大小。(2)命名各片斷,3圖2.5的物理數(shù)據(jù)庫的具體描述內(nèi)容如下:DBDNAME=DTCS,ACCESS=HDAMDATASETDD1=DTCSHDAM,DEVICE=3330,BLOCK=1024SEGMNAME=DEPT,BYTES=20,FREQ=20,PTR=TFIELDNAME=(DNO,SEQ,U),BYTES=4,START=1,TYPE=CFIELDNAME=DNA,BYTES=8,START=5,TYPE=CFIELDNAME=DMA,BYTES=8,START=13,TYPE=CSEGMNAME=TEACHER,BYTES=14,FREQ=50,PTR=T,PARENT=DEPTFIELDNAME=(TNO,SEQ,U),BYTES=4,START=1,TYPE=CFIELDNAME=TNA,BYTES=8,START=5,TYPE=CFIELDNAME=TAG,BYTES=2,START=13,TYPE=CSEGMNAME=CLASS,BYTES=14,FREQ=60,PTR=T,PARENT=DEPTFIELDNAME=(CNO,SEQ,U),BYTES=4,START=1,TYPE=CFIELDNAME=CSK,BYTES=10,START=5,TYPE=CSEGMNAME=STUDENT,BYTES=15,FREQ=300,PTR=T,PARENT=DEPTFIELDNAME=(SNO,SEQ,U),BYTES=5,START=1,TYPE=CFIELDNAME=SNA,BYTES=8,START=6,TYPE=CFIELDNAME=SAG,BYTES=2,START=14,TYPE=CDBDGENFINISHEND現(xiàn)將上述描述中的部分語句的含義說明如下:①DBD存取方法,它們是:(A)層次順序存取方法(HSAM),即將數(shù)據(jù)庫中的所有片斷值,按照其層次數(shù)據(jù)結(jié)構(gòu)從上而下、從左而右的順序存放。(BHISAM數(shù)據(jù)庫中的所有根片斷值,用指針連接起來或單獨存放,并建立其索引;其它下屬片斷值,按照其層次數(shù)據(jù)結(jié)構(gòu)從上而下、從左而右的順序存放。(C)層次直接存取方法(HDAM),來存放。(DHIDAM數(shù)據(jù)結(jié)構(gòu)從上而下、從左而右的順序用指針(PTR=H)連接起來存放,或用兄弟、子女指針(PTR=T)連接起來存放,并建立根片斷值的索引。②DATASET語句:命名數(shù)據(jù)庫所對應(yīng)的數(shù)據(jù)集合,指定物理設(shè)備及其物理存儲塊的大小。③SEGM語句:定義片斷名、一個片斷值的長度、片斷值可能的個數(shù)、采用連接指針的類型和雙親片斷名。④FIELD語句:定義片斷中的各字段,如字段名、字段數(shù)據(jù)類型、字段長度及排序碼。⑤DBDGEN語句:指示模式編譯器開始產(chǎn)生數(shù)據(jù)庫模式定義。⑥FINISH語句:指示模式編譯器結(jié)束產(chǎn)生數(shù)據(jù)庫模式定義,檢驗生成結(jié)果。⑦END語句:指示說明模式描述結(jié)束。個進行。【2】層次數(shù)據(jù)庫用戶層數(shù)據(jù)邏輯組織結(jié)構(gòu)的設(shè)計與描述1)一個邏輯數(shù)據(jù)庫中的根片斷必須是某個物理數(shù)據(jù)庫中的根片斷。(2)一個邏輯子女片斷必女片斷。一個物理數(shù)據(jù)庫記錄型中,部分帶根的片斷型所組成的有序集合,稱為邏輯數(shù)據(jù)庫記錄型。輯數(shù)據(jù)庫記錄就有幾個。一個物理數(shù)據(jù)庫可以根據(jù)應(yīng)用要求構(gòu)成多個邏輯數(shù)據(jù)庫,在圖3—3的例子中,就可以選取以下六個帶根子集,作為邏輯數(shù)據(jù)庫,它們分別是(DEPT)、(DEPT,TEACHER)、(DEPT,CLASS)、(DEPT,CLASS,STUDENT),(DEPT,TEACHER,CLASS)、(DEPT,TEACHER,CLASS,STUDENT)。最后我們從圖25DEPT和TEACHER兩個片斷型來構(gòu)成一個邏輯數(shù)據(jù)庫,每個邏輯數(shù)據(jù)庫的定義包含兩方面內(nèi)容:(1PCB邏輯數(shù)據(jù)庫與物理數(shù)據(jù)庫之間的映射關(guān)系。(2PSB戶的局部邏輯結(jié)構(gòu)。邏輯數(shù)據(jù)庫的具體定義描述如下:PCBTYPE=DB,DBDNAME=DTCS,KEYLEN=7SENSEGNAME=DEPT,PROCOPT=GSENSEGNAME=TEACHER,PARENT=DEPT,PROCOPT=IPSBGENLANG=PL1,PSBNAME=DETEDBEND現(xiàn)將上述描述中的部分語句的含義說明如下:①PCBPCB的類型,DB所描述的邏輯數(shù)據(jù)庫層次結(jié)構(gòu)中所有片斷排序碼總長。②SENSEG語句:指出邏輯數(shù)據(jù)庫所對應(yīng)的物理數(shù)據(jù)庫片斷名,指出其雙親片斷名,以及對該片斷的處理方式(PROCOPTGIRD:容許刪除等。③PSBGEN語句:指出PSB的應(yīng)用程序所采用的主語言,并給出PSB的名字。④END語句:指示說明子模式描述結(jié)束。全性提供了一定的控制。【3】層次數(shù)據(jù)庫數(shù)據(jù)操縱方法IMS數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)操縱語言所提供的操作有四種類型,它們是查找、插入、刪除、3-3的物理數(shù)據(jù)庫所定義的一個邏輯數(shù)據(jù)庫,它包含有DEPT、CLASS和STUDENT三個片斷型。①GU(GetUnique):其功能是檢索出滿足條件的第一個片斷值。例如:GUDEPTCLASS(CSK='應(yīng)用數(shù)學(xué)')上述語句執(zhí)行結(jié)果是,檢索出第一個專業(yè)是應(yīng)用數(shù)學(xué)的班級信息。②GN(GetNext):其功能是從當(dāng)前位置開始,檢索出滿足條件的一個片斷值。例如:GNDEPTCLASS(CSK='應(yīng)用數(shù)學(xué)')STUDENTNSGNSTUDENTGOTONS學(xué)生信息。③ISRT(Insert):其功能是將用戶工作區(qū)中已建立的一個片斷值,插入滿足要求數(shù)據(jù)庫記錄中。例如:ISRTDEPT(DNO='001')CLASS(CNO='9010')STUDENT上述語句執(zhí)行結(jié)果是,將用戶工作區(qū)中已建立好的一個學(xué)生片斷值,插入001系9010班級中。④DLET(Delete):其功能是刪除滿足條件的一片斷值及其下屬的所有片斷值。例如:GHUDEPT(DNO='001')CLASS(CNO='9010')DLET上述語句執(zhí)行結(jié)果是,將001系9010班級及其板級中所有學(xué)生的片斷值全部刪除。GHU的操作功能與GU類似,只是用GHU操作檢索的片斷值是用于刪除或修改。⑤REPL(Replace):其功能是修改滿足條件的一片斷值。例如:GHUDEPT(DNO='001')CLASS(CNO='9010')(修改用戶工作區(qū)中的CSK值)REPL上述語句執(zhí)行結(jié)果是,將001系C9010班級的專業(yè)修改應(yīng)用數(shù)學(xué)。使用者必須熟悉層次數(shù)據(jù)庫的數(shù)據(jù)層次結(jié)構(gòu)。如同領(lǐng)航員一樣,在樹形的河道中航行。省地隱含在各片斷定義的說明中。1.4.3網(wǎng)狀數(shù)據(jù)模型據(jù)邏輯組織結(jié)構(gòu)是一致的。其具體定義如下:(1)對E-R數(shù)據(jù)模型中的聯(lián)系類型加以限數(shù)據(jù)概念描述客觀信息世界中的信息結(jié)構(gòu)。(2)若將實體抽象表示為一結(jié)點,聯(lián)系抽象表1.8數(shù)據(jù)模型。(a)(b)(c)圖1.8網(wǎng)狀數(shù)據(jù)模型的結(jié)構(gòu)圖網(wǎng)狀數(shù)據(jù)模型與層次數(shù)據(jù)模型有兩點不同:(1)層次數(shù)據(jù)模型從子女實體到其雙親實體之1.8(a)中,R4實體就有兩個雙親R2和R3。因此在網(wǎng)狀數(shù)據(jù)模型中,就不能再用指定雙親的方式來定義聯(lián)系了。(2)網(wǎng)狀數(shù)據(jù)模型中1.8(c)所示。R1實體和R2實體之間有兩種聯(lián)系SET1和SET2R1R2SET1聯(lián)系,SET2為“保養(yǎng)”聯(lián)系。1.4.4網(wǎng)狀數(shù)據(jù)庫系統(tǒng)DBTGDBTG報告為網(wǎng)狀數(shù)據(jù)庫在數(shù)據(jù)模型的描述及其語言的定義制定了標(biāo)準(zhǔn)。它主要包括三方面內(nèi)容,它們是:(1)模式數(shù)據(jù)描述語言規(guī)范;(2)子模式數(shù)據(jù)描述語言規(guī)范;(3)數(shù)據(jù)操縱語言規(guī)范。【1】網(wǎng)狀數(shù)據(jù)庫概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)的設(shè)計與描述換為網(wǎng)狀數(shù)據(jù)庫概念層數(shù)據(jù)邏輯組織結(jié)構(gòu)。首記錄型有幾個記錄,系型的系值就有幾個。(a)(b)(c)圖1.9學(xué)生選課網(wǎng)狀模型下面我們以一個簡單例子來說明上述有關(guān)概念,如圖1.9(a)所示,這是一個學(xué)生選課小SC”聯(lián)系是多對多的聯(lián)系,為了建立其網(wǎng)狀數(shù)據(jù)模型,如圖1.9(b)所示還要建立一新的記錄SC系(S—SCC—SC個記錄型中的數(shù)據(jù)項分別是:S(S#—學(xué)號,SN—姓名),C(C#—課號,CN—課名),SC(S#—C#—G—S—SC(首記錄型為S記錄型為SC),C—SC(首記錄型為C,屬記錄型為SC)。這里若假定學(xué)生選課情況如圖1.9(c)所示,則C—SCC1;S1C1A,S2C1B,S3C1B,S4C1BC2;S1C2B,S3C2C,S4C2AC3;S2C3A,S4C3C而S—SC系型的系值共有四個,它們是:{S1;S1C1A,S1C2B},{S2;S2C1B,S2C3A},{S3;S3C1B,S3C2C},{S4;S4C1B,S4C2A,S4C3C}。內(nèi)容:(1)模式條目。它的作用是標(biāo)識一個模式,即標(biāo)識一個網(wǎng)狀數(shù)據(jù)庫的概念層數(shù)據(jù)庫,其格式為:SCHEMANAMEIS〈模式名〉。(2)域條目。它的作用是定義一個或若干域,其格式為:AREANAMEIS〈域名〉。一個域?qū)Ψ奖?、靈活、高效。(3)記錄條目.一個記錄描述條目對應(yīng)一個記錄型,它用來定義記錄名、記錄的存放方式、記錄所在的域及記錄中各數(shù)據(jù)項的類型、長度等。如圖1.9(bRECORDNAMEISSLOCATIONMODEISCALCUSINGS#DUPLICATESARENOTALLOWEDWITHINAREA—102S#TYPEISCHARACTER302SNTYPEISCHARACTER15其中:記錄的存放方式有四種,它們是:(A)計算方式(CALC),記錄的存放位置由指定的數(shù)據(jù)項作為參量計算確定。(B)直接方式(DIRECT),記錄的存放位置由系統(tǒng)所給定每個記錄的數(shù)據(jù)庫碼確定。(C)經(jīng)由方式(VIA),根據(jù)首記錄,確定屬記錄的存放位置。(DSYSTEMDBMS所提供的一種標(biāo)準(zhǔn)方式,確定記錄的存放位置。上述學(xué)SS#有相同S#值的記錄存在,記錄S存放于域名為AREA—1的域中。(4)系條目。一個系描述條目對應(yīng)一個系型,它的內(nèi)容有:系名、系的實現(xiàn)方式、系的構(gòu)2。7(b選課系型的描述主要內(nèi)容如下:SETNAMEISS—SCMODEISCHAINOWNERISSMEMBERISSCMANDATORYAUTOMATICSETSELECTIONISTHRUS—SCOWNERIDENTIFIEDBYCALC—KEY其中這里有三個概念需要進一步解釋一下。(A)系的實現(xiàn)方式(MODE)有兩種:(i)鏈?zhǔn)剑–HAIN),將一個系值中的首記錄及其屬記錄用指針連接在一起。(iiPOINTARRAY指針集中在一起,形成一張表,在首記錄中存放這張表或存放指向這張表的指針。(B)屬(i)加入系屬籍(INSERTION),它有兩種情況,自動(AUTOMATIC)和手動(MANUAL)。自動意味著當(dāng)一個屬記錄值插入到數(shù)據(jù)庫后,由DBMS自動將其加入到一個系值中;手動則意味著加入到某一系值的工作將由用戶自己完成。(ii)離開系屬籍(RETENTION),它有三種情況,固定(FIXEDMANDATORYOPTIONAL)。固定意味著一個屬記于某個系值,也可以不附屬任一系值而獨立存在。(C)系值的選擇方式(SETSELECTIONISTHRUi語句格式為:SETSELECTIONISTHRU〈系名〉OWNERIDENTIFIEDBYCURRENTOFSET。(ii)由首SETSELECTIONISOWNERUSING首記錄是CALCCALC確定系值。(5)模式描述結(jié)束語句.其作用是告訴模式編譯程序,模式定義描述結(jié)束。其語句為:ENDSCHEMA【2】網(wǎng)狀數(shù)據(jù)庫用戶層數(shù)據(jù)邏輯組織結(jié)構(gòu)的設(shè)計與描述用戶層數(shù)據(jù)邏輯組織結(jié)構(gòu)的設(shè)計即為子模式的設(shè)計,由于DBTG系統(tǒng)支持子模式。每一個子的定義描述與模式有所不同,它的描述主要有以下內(nèi)容:(1)子模式標(biāo)識部分,其作用是定義子模式名稱及其所對應(yīng)的模式(2)換名描述,即將模式中的域名、記錄名、系名還是數(shù)據(jù)項名用其它名稱替換,以消除同主語言規(guī)則不一致的地方,同時提高描述的可讀性。如欲將記錄名DEPT換成DEPARTMENT。(3)域的描述,列出子模式定義所涉及的域。(4)記錄的描述,列出子模式定義所涉及的記錄名。若其中數(shù)據(jù)項有變化,還需列出有變化的數(shù)據(jù)項。(5)系的描述,列出子模式定義所涉及的系并可改變系值選擇方式?!?】網(wǎng)狀數(shù)據(jù)庫數(shù)據(jù)操縱方法在DBTG系統(tǒng)中,用戶的應(yīng)用程序是用主語言和DML語言混合編寫而成,主語言用于操縱內(nèi)DML的數(shù)據(jù)操縱比較復(fù)雜,這里僅列出幾種常用的操作。(1)FIND(查找),它主要有:(A)在某記錄類型中查找;(B)在某系類型中查找;(CDE(2)GET(取值),將當(dāng)前的記錄值或數(shù)據(jù)項的值讀取到用戶工作區(qū),以供進一步操作。(3)STORE(存值),將當(dāng)前用戶工作區(qū)中的記錄,存放到數(shù)據(jù)庫中,并根據(jù)系屬籍類型,將其插入到相應(yīng)系值中。(4)MODIFY(修改),將用GET所獲的記錄值或數(shù)據(jù)項,在用戶工作區(qū)進行修改后,用此語句將其回存到數(shù)據(jù)庫中。(5)ERASE(刪除),從數(shù)據(jù)庫將當(dāng)前所確定的記錄刪除。(6CONNECT容許的情況下。(7RECONNECT個系的另一系值中。當(dāng)然也是要在系籍約束容許的情況下。(8)DISCONNECT(撤消屬籍),將當(dāng)前記錄從包含它的全部或部分系型的系值中移走,在系籍約束容許的情況下。1.4.5關(guān)系數(shù)據(jù)模型關(guān)系模型是由E.F.Codd在1970年引入到數(shù)據(jù)庫領(lǐng)域中來的。之后,E.F.Codd以及其它數(shù)據(jù)庫系統(tǒng)已成為數(shù)據(jù)庫領(lǐng)域中最為活躍的一個分支。數(shù)據(jù)模型的基本知識.【1】關(guān)系的數(shù)學(xué)定義(1)這里我們首先介紹笛卡爾乘積的定義。給定一組集合,,…,,則這組集合的笛卡爾乘積是集合:。這其中:笛卡爾乘積集合中的每一個元素稱為元組,表示參與笛卡爾乘積中的集合個數(shù),又稱為笛卡爾乘積的度。如:現(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)}。笛卡爾乘積D集合包含了六個元組,每個元組有兩個分量。(2)關(guān)系的數(shù)學(xué)定義。笛卡爾乘積的一個子集,就稱為定義在集合,,…,之上的一個關(guān)NAME={}AGE={2122},集合SEX={MF}R1R2如圖1.10R1R2均是建立在集合NAME、AGE、SEX基礎(chǔ)之上的關(guān)系。關(guān)系R1表示三個人基本情況,而關(guān)系R2則無實際意義,因為一個人不可能有兩個年齡和性別?!?】關(guān)系數(shù)學(xué)模型從圖1.10所描述的關(guān)系R1和R2,可以看出用二維表格的形式,來描述關(guān)系的內(nèi)容是非常的具體值。圖1.10關(guān)系R1和R2內(nèi)容=模型可表示為:學(xué)生(學(xué)號,姓名,性別,年齡,籍貫)。而如(,張三,男,21,安系數(shù)據(jù)模型中,其元組值是無序的。即(,)和(,)是相同的關(guān)系。性名稱;二是表格內(nèi)容,它描述關(guān)系中的具體元組值。即表格中的每一行對應(yīng)一個元組值,表格中的每一列對應(yīng)一個屬性。如圖1.11所示。圖1.11學(xué)生關(guān)系的二維表格表示法獲得所需要的關(guān)系數(shù)據(jù)模型,具體內(nèi)容是:(1)對E-R數(shù)據(jù)模型中的各實體類型分別2表示聯(lián)系的各屬性集合之外,還包括相互有聯(lián)系的兩個(或多個)實體類型中的關(guān)鍵屬性圖1.12(a)所示,建立在這一模型基礎(chǔ)上的關(guān)系數(shù)據(jù)模型是由以下三個關(guān)系構(gòu)成,它們是STUDENT關(guān)系、COURSE關(guān)系和SC關(guān)系,這三個關(guān)系內(nèi)容如圖1.12(b)所示。這里我們可以看出,STUDENT關(guān)系是有由SNO和SNAME兩種屬性集合構(gòu)成;COURSE關(guān)系是有由CNO和CNAME兩種屬性集合構(gòu)成;而SC關(guān)系是有由SNO、CNO和GRADE三種屬性集合構(gòu)成;最后我們說明一下在關(guān)系數(shù)據(jù)模型中,用關(guān)系來表示描述E-R數(shù)據(jù)模型中各實體和聯(lián)圖1.12學(xué)生選課的實體聯(lián)系模型和關(guān)系數(shù)據(jù)模型系以及用二維表格的形式,來描述關(guān)系時應(yīng)注意的事項:(A)關(guān)系列表中的列,其應(yīng)是相同的數(shù)據(jù)類型;也就是它們都是取自同一值域。(B)關(guān)系列表中的列的順序是可以任意交換的。(C)同一關(guān)系中,不能有兩個或兩個以上內(nèi)容完全相同的元組存在。(D)元組的關(guān)系列表中元組的順序是可以任意交換的。1.4.6關(guān)系數(shù)據(jù)庫系統(tǒng)以圖1.12所示的描述學(xué)生選課數(shù)據(jù)的三個關(guān)系表進行示例描述,通過描述語言,這由這三個關(guān)系表所構(gòu)成的關(guān)系數(shù)據(jù)庫具體描述如下:RELATIONTABLESTUDENT(SNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULL,SNAMETYPE=CHARACTERLENGTH=20,)KEY(SNO)RELATIONTABLECOURSE(CNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULLCNAMETYPE=CHARACTERLENGTH=30,)KEY(CNO)RELATIONTABLESC(SNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULLCNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULLGRADETYPE=NUMBERICLENGTH=6DECIMAL=2,)KEY(SNO,CNO)RELATIONTABLEKEY會詳細(xì)討論。及運算的總和就是關(guān)系代數(shù),自70年代提出關(guān)系代數(shù)以來,它在關(guān)系數(shù)據(jù)操作語言的發(fā)展關(guān)系代數(shù)運算。它們是選擇、投影和連接。(1SELECTIONSELECT〈關(guān)系表名〉WHERE〈選擇條件〉。(2)投影運算(PROJECTION)。投影運算是從構(gòu)成一個關(guān)系的若干基本屬性集合出發(fā),從可以表示為:PROJECT〈關(guān)系表名〉ON〈屬性名〉。(3)連接運算(JOIN)。連接運算是對兩個關(guān)系進行運算,從構(gòu)成這兩個關(guān)系的所有基本列一定要求的行,組成一個新關(guān)系表。連接運算可以表示為:JOIN〈關(guān)系表名1〉A(chǔ)ND〈關(guān)系表名2〉WHERE〈連接條件〉。數(shù)據(jù)操作語言都是基于這三種關(guān)系代數(shù)運算而構(gòu)造的。1.5關(guān)系數(shù)據(jù)庫理論基礎(chǔ)的理論基礎(chǔ),也就是關(guān)系范式的有關(guān)基本知識。1.5.1問題的提出們就以關(guān)系數(shù)據(jù)模型為背景來討論這個問題,從而形成了數(shù)據(jù)庫邏輯設(shè)計的一個有力工具——數(shù)據(jù)庫邏輯設(shè)計,同樣具有理論上的指導(dǎo)意義。性集的笛卡爾積的一個元素,因而,關(guān)系模式也就是這個元組集合在結(jié)構(gòu)上的描述。60以有學(xué)號(S#),姓名(SN),所在系的名稱(SD)等幾個屬性,由于一個學(xué)號只對應(yīng)一個了,這就象自變量x定了之后,相應(yīng)的函數(shù)值也唯一被確定了一樣。我們也可以說SN,SD函數(shù)依賴于S#;或者說S#函數(shù)決定了SN,SD。記為S#->SN,S#->SD。原因,從中尋找出設(shè)計一個好的關(guān)系模式方法。當(dāng)我們要建立一個數(shù)據(jù)庫來描述學(xué)校中的情況時,所面臨描述對象有學(xué)生(用學(xué)號S#描述),系(用系名SD描述),系負(fù)責(zé)人(用系負(fù)責(zé)人姓名DM描述),課程(用課程名CN描述)和成績(用G描述),于是我們得到了這樣一組屬性:U={S#,SD,DM,CN,G}.現(xiàn)實世界的已知事實告訴我們:(1)一個系有若干學(xué)生,但每個學(xué)生只能屬于一個系;(23生同時選修;(4)每個學(xué)生學(xué)習(xí)每門課程只有一個成績;于是,我們得到了屬性組U上的一組函數(shù)依賴:F={S#->SD,SD->DM,(S#,CN)->G}。因此一個關(guān)系模式應(yīng)當(dāng)描述為:R(U,D,DOM,F)1)R2U是一組屬性,即組成R(3D為域的集合,即屬性取值范圍的集合;(4DOM為U與D之間的映象;(5F是屬性組U上的一組函數(shù)依賴。由于域的定義對關(guān)系模式設(shè)計關(guān)系不大,(34S(U,F(xiàn))。這個模式有下述312S#和CN是這是不容許在關(guān)系中存在的。(3)刪除異常。如果一個系的學(xué)生全部畢業(yè)了,我們在刪除該系學(xué)生選修課程的信息的同時,也把這個系及其負(fù)責(zé)人的信息也丟了。上述這些缺點非常不利于數(shù)據(jù)庫的維護和應(yīng)用,所以我們說,它是一個不好的數(shù)據(jù)庫模式,信息的丟失和造成數(shù)據(jù)的不一致。產(chǎn)生插入和刪除異常的原因可以從對關(guān)鍵字的定義看出,一個關(guān)系中的兩個元組,如為空值的元組是不可能在關(guān)系中存在的。關(guān)系模式:SD(S#,SD,S#->SD),SG(S#,CN,G,(S#,CN)->G,D(SD,DM,SD->DM理論就是基于這一簡單概念的。在1.4.5的規(guī)范化(也稱第一范式)一步的分析以確定如何設(shè)計一個好的、反映現(xiàn)實世界的模式。CoddBC式。1.5.2函數(shù)依賴函數(shù)依賴是關(guān)系數(shù)據(jù)庫設(shè)計中的一個重要概念,下面我們給出函數(shù)依賴的定義。定義1。設(shè)R(U)是屬性集U上的一個關(guān)系模式,X,Y是U的子集。若對于R(U)中任意可能關(guān)系r(即對于每一時刻的數(shù)據(jù)庫中對應(yīng)于關(guān)系模式R的內(nèi)容)r中不可能有兩個元組在X的屬性分量相等,而同時在Y的屬性分量值卻不等,則稱“X函數(shù)決定Y”,或稱Y函數(shù)依賴于X。記作X->Y。r中的屬性或?qū)傩越MXr中Y只有一個X是R的關(guān)鍵字的屬性集合,則對于這一關(guān)系的所有屬性子集Y有X->Y成立,這是因為關(guān)鍵字唯一地決定一個元組。當(dāng)兩個元組的關(guān)鍵字相等時,這兩個XY->姓名,則年齡就不再函數(shù)依賴于姓名了。對于函數(shù)依賴,必須說明幾點的是:(1)當(dāng)我們在確定關(guān)系模式R中的某個函數(shù)依賴時,是指R的所有可能關(guān)系rR中只要有一個關(guān)系r不滿足這個函數(shù)依賴,我們就認(rèn)為R不存在這個函數(shù)依賴;(2)一個關(guān)系模式R上的函數(shù)依賴(3SN->SD,則實際上規(guī)定一個學(xué)生只能在一個系中,排斥了他處在兩個系的可能性。若X->YX->Y1X->YX稱作決定因素;(2)若X->Y,Y->X,則記作X<->Y;(3)若Y不依賴于X,則記作。下面討論函數(shù)依賴的一些性質(zhì)。假設(shè)R(ABCABCR中有A->B和B->CR中必定有A->CR的某一關(guān)系r中滿足A->B,B->C,但不能滿足A->Cr中存在兩個元組u,v,它們在屬性A的分量上取值相等,而在C的分量上取值不相等,u,v在屬性B的分量上的值有兩種可能,若相等,則違反了B->C;若不相等;則違反了A->B;這與假設(shè)矛盾,也就說明了在r中必滿足A->CA->BB->C邏輯蘊涵了函數(shù)依賴A->C。定義2。在R(UY函數(shù)依賴于屬性集合X,但Y函數(shù)不依賴于X的任一子Y對XY依賴于XY對X部分函數(shù)依賴,記作。這里舉一個簡單的例子,在關(guān)系S(S#,SN,SD,SA)中,S#->SD,S#->SA,S#->SN;而在關(guān)系SC(S#,C#,G)中,,。定義3在R(UY->XX->ZZ對Y果X->Y,則Y<->X,實際上是Y->Z,而不是傳遞函數(shù)依賴.定義4。在R(UK為U的屬性或?qū)傩越M,若有,則稱K為R的一個候選關(guān)鍵字,若候選關(guān)鍵字多于一個,則選擇其中之一為主關(guān)鍵字(PrimaryKey).系模式S(S#,SN,SD,SA)中,S#是關(guān)鍵字,如在關(guān)系模式SC(S#,C#,G)中,屬性組(S#,C#)是關(guān)鍵字。定義5在R(UXX是另一個關(guān)系模式的關(guān)鍵字,則稱X是R的外部關(guān)鍵字。例如SC(S#,C#,GS#不是關(guān)鍵字,但S#是關(guān)系S(S#,SN,SD,SAS#對于關(guān)系模式SC來說是外部關(guān)鍵字,主關(guān)鍵字與外部關(guān)鍵字提供了一條關(guān)系之間相互聯(lián)系的途徑,例如關(guān)系模式S與關(guān)系模式SC的聯(lián)系就是通過S#。1.5.3范式的定義一范式,簡稱1NF,在第一范式基礎(chǔ)上進一步滿足一些要求的為第二范式,其余以此類推。R為第幾范式記為。方法。【1】1NF定義6.如果一個關(guān)系模式R的所有屬性都是基本的、不可分的,則R是第一范式。S#STATUSCITYP#QTYS120LONDONP1300S120LONDONP2200S120LONDONP3400S120LONDONP4200S120LONDONP5100S120LONDONP6100S210PARISP1300S210PARISP2400S310PARISP2200S420LONDONP2200S420LONDONP4300S420LONDONP5400圖1.13FIRST關(guān)系表關(guān)系模式FIRST(S#,STATUS,CITY,P#,QTY1.13所示,其函數(shù)依賴集,FIRSTS#P#性STATUS和CITYS#P#QTYS#P#STATUS和CITY也不是相互獨立的,而是也存在著函數(shù)依賴,這使得關(guān)系FIRST在插入,刪除,修改ATHENSP#出現(xiàn)了空值。(S3,P2)的元組,則我們也刪除了S3位于PARIS的信息。商S1從LONDON遷移到AMSTERDAM,就需要修改6個元組?!?】2NF為了解決上述問題,我們把關(guān)系模式FIRST分解成兩個關(guān)系模式SECOND(S#,STATUS,CITY)和SP(S#,P#,QTY),如圖1.14所示。S#STATUSCITYS#P#QTYS120LONDONS1P1300S210PARISS1P2200S310PARISS1P3400S4120LONDONS1P4200S530ATHENSS1P5100SECONDS1P6100S2P1300S2P2400S3P2200S4P2200S4P4300S4P5400SP圖1.14SECOND和SP關(guān)系表這樣處理后的結(jié)構(gòu),克服了S#和CITY存貯操作中的問題。例如,我們可以把S5位于ATHENS的信息插入到SECOND關(guān)系中,即使S5沒有提供任何零件。如果我們在關(guān)系SP中刪除(S3,P2)為關(guān)鍵字的元組,也不會丟失供應(yīng)商S3位于PARIS的信息,當(dāng)供應(yīng)商S1從LONDON遷移到AMSTERDAM,只要對SECOND關(guān)系S1為關(guān)鍵字的元組作修改就可以了,僅僅修改一次,不會出現(xiàn)上述的不一致了。將圖1.13與圖1.14FIRST中屬性STATUS和CITY是非關(guān)鍵字屬性,S#P#S#FIRST中非關(guān)鍵字屬性并不完全函數(shù)依賴于關(guān)鍵字屬性;而改進之后,關(guān)系模式SECOND中,非關(guān)鍵屬性完全依賴于關(guān)鍵字屬性;定義7.如果關(guān)系模式R是1NF,而且非關(guān)鍵的屬性完全函數(shù)依賴于關(guān)鍵字的屬性,那么,關(guān)系模式R是第二范式。按照定義7SECOND和SP都是2NF1NF而不是2NF以通過適當(dāng)投影化為一組等價的2NF
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地下商業(yè)街開發(fā)頂管施工合同
- 醫(yī)院物業(yè)經(jīng)理雇傭合同模板
- 洗浴中心電梯施工協(xié)議
- 2024年銷售人員銷售策略制定與執(zhí)行協(xié)議3篇
- 2024版安裝作業(yè)第三方外包協(xié)議模板版B版
- 研究開發(fā)合同管理典范
- 意大利料理店標(biāo)線施工協(xié)議
- 2024經(jīng)營權(quán)抵押貸款合同
- 2024航空公司餐食供應(yīng)合同
- 2024砂石料開采與礦山生態(tài)修復(fù)合作框架協(xié)議書2篇
- 工程施工揚塵防治教育培訓(xùn)
- 紅薯采購合同模板
- 影視后期制作團隊薪酬激勵方案
- 污水管網(wǎng)技術(shù)標(biāo)
- 2023年河南省公務(wù)員錄用考試《行測》真題及答案解析
- 《輸液港的護理》課件
- 新修訂反洗錢法律知識培訓(xùn)課件
- 精彩的儲運部年終總結(jié)
- 山西省太原市重點中學(xué)2025屆物理高一第一學(xué)期期末統(tǒng)考試題含解析
- Python開發(fā)工程師招聘筆試題及解答(某大型國企)
- 2024年農(nóng)民職業(yè)農(nóng)業(yè)素質(zhì)技能考試題庫(附含答案)
評論
0/150
提交評論