版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章緒論內(nèi)容概述闡述數(shù)據(jù)庫的基本概念,介紹數(shù)據(jù)管理技術(shù)的進(jìn)展情況、數(shù)據(jù)庫技術(shù)產(chǎn)生和發(fā)展的背景,數(shù)據(jù)模型的基本概念、組成要素和主要的數(shù)據(jù)模型,概念模型的基本概念及ER方法,數(shù)據(jù)庫系統(tǒng)的3級模式結(jié)構(gòu)以及數(shù)據(jù)庫系統(tǒng)的組成。本章目標(biāo)本章講解的數(shù)據(jù)庫基本概念和基本知識是學(xué)習(xí)后續(xù)各個章節(jié)的基礎(chǔ)。學(xué)習(xí)本章的目的在于了解基本知識,掌握基本概念,為以后的學(xué)習(xí)打好扎實(shí)的基礎(chǔ)。重點(diǎn)和難點(diǎn)重點(diǎn):牢固掌握概念模型的基本概念及其主要建模方法ER方法;掌握關(guān)系數(shù)據(jù)模型的相關(guān)概念、數(shù)據(jù)庫系統(tǒng)三級模式和兩層映像的體系結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)的邏輯獨(dú)立性和物理獨(dú)立性等;對于如何通過ER方法描述現(xiàn)實(shí)世界的概念模型要做到能夠舉一反三的程度。難點(diǎn):本章的難點(diǎn)是需要掌握數(shù)據(jù)庫領(lǐng)域大量的基本概念。有些概念一開始接觸會感到比較抽象,但不要緊,隨著學(xué)習(xí)的逐漸推進(jìn),在后續(xù)章節(jié)中,這些抽象的概念會逐漸變得清晰具體起來。此外,數(shù)據(jù)模型及數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)也是本章的難點(diǎn)。第一章緒論第二章關(guān)系數(shù)據(jù)庫內(nèi)容概述系統(tǒng)地講解關(guān)系數(shù)據(jù)庫的重要概念,并著重對關(guān)系模型進(jìn)行講解。關(guān)系模型包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、以及關(guān)系完整性約束三個組成部分。講解關(guān)系代數(shù)。本章目標(biāo)掌握關(guān)系模型的三個組成部分及各部分所包括的主要內(nèi)容;牢固掌握關(guān)系數(shù)據(jù)結(jié)構(gòu)及其定義;關(guān)系的三類完整性約束的概念。為學(xué)習(xí)后面關(guān)系數(shù)據(jù)庫系統(tǒng)打好基礎(chǔ)。重點(diǎn)和難點(diǎn)重點(diǎn):掌握關(guān)系數(shù)據(jù)結(jié)構(gòu)及其定義;關(guān)系的三類完整性約束的概念。需要舉一反三的是:關(guān)系代數(shù)(包括抽象的語言及具體的語言);關(guān)系代數(shù)中的各種運(yùn)算(包括并、交、差、選擇、投影、連接、除、及廣義笛卡爾積等)能夠使用這些語言完成各種數(shù)據(jù)操縱。難點(diǎn):由于關(guān)系代數(shù)較為抽象,因此在學(xué)習(xí)的過程中一定要結(jié)合具體的實(shí)例進(jìn)行學(xué)習(xí)。同時,要注意把握由具體語言到抽象語言的原則。第二章關(guān)系數(shù)據(jù)庫第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL內(nèi)容概述詳細(xì)介紹關(guān)系數(shù)據(jù)庫語言SQL。SQL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。它內(nèi)容十分豐富,功能非常強(qiáng)大。因?yàn)殛P(guān)系數(shù)據(jù)庫系統(tǒng)的主要功能是通過SQL來實(shí)現(xiàn)的,因此講解SQL的同時要進(jìn)一步講述關(guān)系數(shù)據(jù)庫的基本概念。本章目標(biāo)牢固掌握SQL,達(dá)到舉一反三的掌握SQL的功能。同時通過實(shí)踐,體會面向過程的語言和SQL的區(qū)別和優(yōu)點(diǎn)。體會關(guān)系數(shù)據(jù)庫系統(tǒng)為數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)提供良好環(huán)境,減輕用戶負(fù)擔(dān),提高用戶生產(chǎn)率的原因。重點(diǎn)和難點(diǎn)重點(diǎn):關(guān)系模型和關(guān)系數(shù)據(jù)庫是《數(shù)據(jù)庫系統(tǒng)概論》課程的重點(diǎn),第3章又是重點(diǎn)中的重點(diǎn)。要熟練正確的使用SQL完成對數(shù)據(jù)庫的查詢、插入、刪除、更新操作。在使用具體的SQL時,能有意識地和關(guān)系代數(shù)進(jìn)行比較,了解他們各自的特點(diǎn)。難點(diǎn):用SQL語言正確完成復(fù)雜查詢,掌握SQL語言強(qiáng)大的查詢功能。因此在學(xué)習(xí)過程中一定要多練習(xí),要在安裝好的數(shù)據(jù)庫系統(tǒng)上進(jìn)行實(shí)際操作,檢查你的答案,你查詢的結(jié)果是否正確。只有通過大量練習(xí)才能真正達(dá)到舉一反三的熟練程度。第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第四章關(guān)系數(shù)據(jù)理論內(nèi)容概述詳細(xì)講解關(guān)系數(shù)據(jù)理論,主要是關(guān)系數(shù)據(jù)庫規(guī)范化理論。包括關(guān)系數(shù)據(jù)庫邏輯設(shè)計可能出現(xiàn)的問題,數(shù)據(jù)依賴的基本概念(包括,函數(shù)依賴、平凡函數(shù)依賴、非平凡的函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴的概念;碼、候選碼、外碼的概念;多值依賴的概念),范式的概念、1NF、2NF、3NF、BCNF、4NF的概念和判定方法。本章目標(biāo)關(guān)系數(shù)據(jù)理論既是關(guān)系數(shù)據(jù)庫的重要理論基礎(chǔ)也是數(shù)據(jù)庫邏輯設(shè)計的理論指南和有力工具。要掌握規(guī)范化理論和優(yōu)化數(shù)據(jù)庫模式設(shè)計的方法。重點(diǎn)和難點(diǎn)重點(diǎn):了解什么是一個"不好"的數(shù)據(jù)庫模式。什么是模式的插入異常和刪除異常。規(guī)范化理論的重要意義。牢固掌握數(shù)據(jù)依賴的基本概念,范式的概念,從1NF到4NF的定義,規(guī)范化的含義和作用。需要舉一反三的:四個范式的理解與應(yīng)用,各個級別范式中存在的問題(插入異常、刪除異常、數(shù)據(jù)冗余)和解決方法。難點(diǎn):能夠根據(jù)應(yīng)用語義,完整地寫出關(guān)系模式的數(shù)據(jù)依賴集合,并能根據(jù)數(shù)據(jù)依賴分析某一個關(guān)系模式屬于第幾范式。各個級別范式的關(guān)系及其證明。本章內(nèi)容的理論性較強(qiáng)。要通過具體例子和習(xí)題練習(xí)理解和掌握理論知識。第四章關(guān)系數(shù)據(jù)理論第五章數(shù)據(jù)庫設(shè)計內(nèi)容概述講解數(shù)據(jù)庫設(shè)計方法和技術(shù)。數(shù)據(jù)庫設(shè)計的特點(diǎn),數(shù)據(jù)庫設(shè)計的基本步驟,數(shù)據(jù)庫設(shè)計過程中數(shù)據(jù)字典的內(nèi)容,數(shù)據(jù)庫設(shè)計各個階段的設(shè)計目標(biāo)、具體設(shè)計內(nèi)容、設(shè)計描述、設(shè)計方法等。本章內(nèi)容的實(shí)踐性較強(qiáng),講授較少,學(xué)生進(jìn)行實(shí)踐。本章目標(biāo)掌握數(shù)據(jù)庫設(shè)計方法和步驟,使學(xué)生具有設(shè)計數(shù)據(jù)庫模式以及開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)的基本能力,能在實(shí)際工作中運(yùn)用這些知識、技術(shù)和方法,設(shè)計符合應(yīng)用需求的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。重點(diǎn)和難點(diǎn)重點(diǎn):掌握數(shù)據(jù)庫設(shè)計步驟和數(shù)據(jù)庫設(shè)計過程中的各級模式設(shè)計方法。特別是數(shù)據(jù)庫概念結(jié)構(gòu)的設(shè)計和邏輯結(jié)構(gòu)的設(shè)計,這是數(shù)據(jù)庫設(shè)計過程中最重要的兩個環(huán)節(jié)。牢固掌握用E-R圖來表示概念模型的方法,掌握E-R圖的設(shè)計,E-R圖向關(guān)系模型的轉(zhuǎn)換。難點(diǎn):技術(shù)上的難點(diǎn)是E-R圖的設(shè)計和數(shù)據(jù)模型的優(yōu)化,包括對現(xiàn)實(shí)世界進(jìn)行抽象的能力,提取實(shí)體、屬性、實(shí)體型之間的聯(lián)系,正確劃分實(shí)體與屬性的能力。如何把第6章關(guān)系數(shù)據(jù)理論與本章結(jié)合,用關(guān)系數(shù)據(jù)理論指導(dǎo)數(shù)據(jù)庫的邏輯設(shè)計。第五章數(shù)據(jù)庫設(shè)計
真正的難點(diǎn)是理論與實(shí)際的結(jié)合。同學(xué)們一般缺乏實(shí)際經(jīng)驗(yàn),缺乏對實(shí)際問題解決的能力。特別是缺乏應(yīng)用領(lǐng)域的知識。而數(shù)據(jù)庫設(shè)計需要設(shè)計人員對應(yīng)用環(huán)境、專業(yè)業(yè)務(wù)有具體深入的了解,這樣才能設(shè)計出符合具體領(lǐng)域要求的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。要在完成本章習(xí)題的基礎(chǔ)上認(rèn)真完成大作業(yè)。體會這些要點(diǎn),從而真正掌握本章講解的知識、方法和技術(shù)。第五章數(shù)據(jù)庫設(shè)計課程作業(yè)
在某個RDBMS產(chǎn)品上,選擇合適的應(yīng)用系統(tǒng)開發(fā)工具為某個部門或單位開發(fā)一個數(shù)據(jù)庫應(yīng)用系統(tǒng)。通過實(shí)踐,掌握本章介紹的數(shù)據(jù)庫設(shè)計方法,同時培養(yǎng)團(tuán)隊合作精神。要求9~10位同學(xué)組成一個開發(fā)小組,每位同學(xué)承擔(dān)不同角色(例如:項目管理員、DBA、系統(tǒng)分析員、系統(tǒng)設(shè)計員、系統(tǒng)開發(fā)員、系統(tǒng)測試員)。具體要求:*給出數(shù)據(jù)庫設(shè)計各個階段的詳細(xì)設(shè)計報告;*
寫出系統(tǒng)的主要功能和使用說明;*提交運(yùn)行的系統(tǒng);*寫出收獲和體會,包括已解決和尚未解決的問題,進(jìn)一步完善的設(shè)想與建議;
每個小組進(jìn)行報告和答辯,講解設(shè)計方案,演示系統(tǒng)運(yùn)行,匯報分工與合作情況。第1章緒論1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)Home1.1信息、數(shù)據(jù)與數(shù)據(jù)處理1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)1.5數(shù)據(jù)模型本章概要
在本章中,首先介紹數(shù)據(jù)庫中有關(guān)的主要概念,然后回顧數(shù)據(jù)管理技術(shù)的三個發(fā)展階段。要求了解數(shù)據(jù)庫的三個發(fā)展階段及各階段的主要特點(diǎn),掌握數(shù)據(jù)庫中的有關(guān)的基本概念、數(shù)據(jù)庫系統(tǒng)的組成及各部分的主要功能。重點(diǎn)掌握實(shí)體、屬性定義和實(shí)體型之間的聯(lián)系類型及特點(diǎn)。了解三種數(shù)據(jù)模型的特點(diǎn)及區(qū)別,為后面各章的學(xué)習(xí)打下基礎(chǔ)。
人們的一切活動時刻都和大量的信息打交道,所有的這些信息就構(gòu)成了信息世界。人類社會的一切活動都離不開對信息的處理,由于信息世界中的絕大部分信息都可以用數(shù)據(jù)來表示,因此,信息處理實(shí)際上也可以說是數(shù)據(jù)處理。從數(shù)據(jù)處理技術(shù)發(fā)展的歷史來看,數(shù)據(jù)處理技術(shù)大致經(jīng)歷了手工處理、機(jī)械處理和電子處理3個階段。Home1.1信息、數(shù)據(jù)與數(shù)據(jù)處理1.1信息、數(shù)據(jù)與數(shù)據(jù)處理1、數(shù)據(jù)與信息在數(shù)據(jù)處理中,我們最常用到的基本概念就是數(shù)據(jù)和信息,信息與數(shù)據(jù)有著不同的含義。1)信息的定義信息是關(guān)于現(xiàn)實(shí)世界事物的存在方式或運(yùn)動狀態(tài)的反映的綜合,具體說是一種被加工為特定形式的數(shù)據(jù),但這種數(shù)據(jù)形式對接收者來說是有意義的,而且對當(dāng)前和將來的決策具有明顯的或?qū)嶋H的價值。如“2000年碩士研究生將擴(kuò)招30%”,對接受者有意義,使接受者據(jù)此作出決策。2)信息的特征信息源于物質(zhì)和能量,它不可能脫離物質(zhì)而存在,信息的傳遞需要物質(zhì)載體,信息的獲取和傳遞要消耗能量。如信息可以通過報紙、電臺、電視、計算機(jī)網(wǎng)絡(luò)進(jìn)行傳遞。信息是可以感知的,人類對客觀事物的感知,可以通過感覺器官,也可以通過各種儀器儀表和傳感器等,不同的信息源有不同的感知形式。如報紙上刊登的信息通過視覺器官感知,電臺中廣播的信息通過聽覺器官感知。1.1信息、數(shù)據(jù)與數(shù)據(jù)處理
信息是可存儲、加工、傳遞和再生的。動物用大腦存儲信息,叫做記憶。計算機(jī)存儲器、錄音、錄像等技術(shù)的發(fā)展,進(jìn)一步擴(kuò)大了信息存儲的范圍。借助計算機(jī),還可對收集到的信息進(jìn)行取舍整理。3)
數(shù)據(jù)的定義數(shù)據(jù)是用來記錄信息的可識別的符號,是信息的具體表現(xiàn)形式。1.1信息、數(shù)據(jù)與數(shù)據(jù)處理4)
數(shù)據(jù)的表現(xiàn)形式可用多種不同的數(shù)據(jù)形式表示同一信息,而信息不隨數(shù)據(jù)形式的不同而改變。如“2000年碩士研究生將擴(kuò)招30%”,其中的數(shù)據(jù)可改為漢字形式“兩千年”、“百分之三十”。數(shù)據(jù)的概念在數(shù)據(jù)處理領(lǐng)域中已大大地拓寬了,其表現(xiàn)形式不僅包括數(shù)字和文字,還包括圖形、圖象、聲音等。這些數(shù)據(jù)可以記錄在紙上,也可記錄在各種存儲器中。
1.1信息、數(shù)據(jù)與數(shù)據(jù)處理2、數(shù)據(jù)與信息的聯(lián)系數(shù)據(jù)是信息的符號表示或載體,信息則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。如上例中的數(shù)據(jù)2000、30%被賦予了特定的語義,它們就具有了傳遞信息的功能。3、數(shù)據(jù)處理數(shù)據(jù)處理是將數(shù)據(jù)轉(zhuǎn)換成信息的過程,包括對數(shù)據(jù)的收集、存儲、加工、檢索、傳輸?shù)纫幌盗谢顒印F淠康氖菑拇罅康脑紨?shù)據(jù)中抽取和推導(dǎo)出有價值的信息,作為決策的依據(jù)。1.1信息、數(shù)據(jù)與數(shù)據(jù)處理可用下式簡單的表示信息、數(shù)據(jù)與數(shù)據(jù)處理的關(guān)系:信息=數(shù)據(jù)+數(shù)據(jù)處理數(shù)據(jù)是原料,是輸入,而信息是產(chǎn)出,是輸出結(jié)果?!靶畔⑻幚怼钡恼嬲x應(yīng)該是為了產(chǎn)生信息而處理數(shù)據(jù)。1.1信息、數(shù)據(jù)與數(shù)據(jù)處理1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域1.2.1數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理。數(shù)據(jù)管理是指對數(shù)據(jù)的組織、分類、編碼、存儲、檢索和維護(hù)。隨著計算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段。
人工管理階段(50年代中期以前)這一階段計算機(jī)主要用于科學(xué)計算。硬件中的外存只有卡片、紙帶、磁帶,沒有磁盤等直接存取設(shè)備。軟件只有匯編語言,沒有操作系統(tǒng)和管理數(shù)據(jù)的軟件。數(shù)據(jù)處理的方式基本上是批處理。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域人工管理階段的特點(diǎn)如下:1.數(shù)據(jù)不保存因?yàn)楫?dāng)時計算機(jī)主要用于科學(xué)計算,對于數(shù)據(jù)保存的需求尚不迫切。2.系統(tǒng)沒有專用的軟件對數(shù)據(jù)進(jìn)行管理每個應(yīng)用程序都要包括數(shù)據(jù)的存儲結(jié)構(gòu)、存取方法、輸入方式等,程序員編寫應(yīng)用程序時,還要安排數(shù)據(jù)的物理存儲,因此程序員負(fù)擔(dān)很重。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域3.數(shù)據(jù)不共享數(shù)據(jù)是面向程序的,一組數(shù)據(jù)只能對應(yīng)一個程序。多個應(yīng)用程序涉及某些相同的數(shù)據(jù)時,也必須各自定義,因此程序之間有大量的冗余數(shù)據(jù)。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域4.數(shù)據(jù)不具有獨(dú)立性程序依賴于數(shù)據(jù),如果數(shù)據(jù)的類型、格式、或輸入輸出方式等邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化,必須對應(yīng)用程序做出相應(yīng)的修改。應(yīng)用程序1數(shù)據(jù)集1應(yīng)用程序2數(shù)據(jù)集2數(shù)據(jù)集3應(yīng)用程序3圖1.1人工管理階段1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域
文件系統(tǒng)階段(50年代后期至60年代中期)這一階段,計算機(jī)不僅用于科學(xué)計算,還大量用于信息管理。大量的數(shù)據(jù)存儲、檢索和維護(hù)成為緊迫的需求。硬件有了磁盤、磁鼓等直接存儲設(shè)備。在軟件方面,出現(xiàn)了高級語言和操作系統(tǒng)。操作系統(tǒng)中有了專門管理數(shù)據(jù)的軟件,一般稱為文件系統(tǒng)。處理方式有批處理,也有聯(lián)機(jī)處理。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域文件管理數(shù)據(jù)的特點(diǎn)如下:1.數(shù)據(jù)以文件形式可長期保存下來用戶可隨時對文件進(jìn)行查詢、修改和增刪等處理。2.文件系統(tǒng)可對數(shù)據(jù)的存取進(jìn)行管理程序員只與文件名打交道,不必明確數(shù)據(jù)的物理存儲,大大減輕了程序員的負(fù)擔(dān)。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域3.文件形式多樣化有順序文件、倒排文件、索引文件等,因而對文件的記錄可順序訪問,也可隨機(jī)訪問,更便于存儲和查找數(shù)據(jù)。
4.程序與數(shù)據(jù)間有一定獨(dú)立性由專門的軟件即文件系統(tǒng)進(jìn)行數(shù)據(jù)管理,程序和數(shù)據(jù)間由軟件提供的存取方法進(jìn)行轉(zhuǎn)換,數(shù)據(jù)存儲發(fā)生變化不一定影響程序的運(yùn)行。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域在文件系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1.2表示。文件n應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n文件1文件2文件系統(tǒng)……
圖1.2文件系統(tǒng)階段1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域與人工管理階段相比,文件系統(tǒng)階段對數(shù)據(jù)的管理有了很大的進(jìn)步,但一些根本性問題仍沒有徹底解決,主要表現(xiàn)在以下三方面:1.數(shù)據(jù)冗余度大各數(shù)據(jù)文件之間沒有有機(jī)的聯(lián)系,一個文件基本上對應(yīng)于一個應(yīng)用程序,數(shù)據(jù)不能共享。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域2.數(shù)據(jù)獨(dú)立性低數(shù)據(jù)和程序相互依賴,一旦改變數(shù)據(jù)的邏輯結(jié)構(gòu),必須修改相應(yīng)的應(yīng)用程序。而應(yīng)用程序發(fā)生變化,如改用另一種程序設(shè)計語言來編寫程序,也需修改數(shù)據(jù)結(jié)構(gòu)。3.數(shù)據(jù)一致性差由于相同數(shù)據(jù)的重復(fù)存儲、各自管理,在進(jìn)行更新操作時,容易造成數(shù)據(jù)的不一致性。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域數(shù)據(jù)庫系統(tǒng)階段(60年代末開始)
60年代后期,計算機(jī)應(yīng)用于管理的規(guī)模更加龐大,數(shù)據(jù)量急劇增加;硬件方面出現(xiàn)了大容量磁盤,使計算機(jī)聯(lián)機(jī)存取大量數(shù)據(jù)成為可能;硬件價格下降,而軟件價格上升,使開發(fā)和維護(hù)系統(tǒng)軟件的成本增加。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域
文件系統(tǒng)的數(shù)據(jù)管理方法已無法適應(yīng)開發(fā)應(yīng)用系統(tǒng)的的需要。為解決多用戶、多個應(yīng)用程序共享數(shù)據(jù)的需求,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域數(shù)據(jù)庫系統(tǒng)管理數(shù)據(jù)的特點(diǎn)如下:
1.數(shù)據(jù)共享性高、冗余少這是數(shù)據(jù)庫系統(tǒng)階段的最大改進(jìn),數(shù)據(jù)不再面向某個應(yīng)用程序而是面向整個系統(tǒng),當(dāng)前所有用戶可同時存取庫中的數(shù)據(jù)。這樣便減少了不必要的數(shù)據(jù)冗余,節(jié)約存儲空間,同時也避免了數(shù)據(jù)之間的不相容性與不一致性。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域2.數(shù)據(jù)結(jié)構(gòu)化按照某種數(shù)據(jù)模型,將全組織的各種數(shù)據(jù)組織到一個結(jié)構(gòu)化的數(shù)據(jù)庫中,整個組織的數(shù)據(jù)不是一盤散沙,可表示出數(shù)據(jù)之間的有機(jī)關(guān)聯(lián)。例:要建立學(xué)生成績管理系統(tǒng),系統(tǒng)包含學(xué)生(學(xué)號、姓名、性別、系別、年齡)、課程(課程號、課程名)、成績(學(xué)號、課程號、成績)等數(shù)據(jù),分別對應(yīng)三個文件。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域
若采用文件處理方式,因?yàn)槲募到y(tǒng)只表示記錄內(nèi)部的聯(lián)系,而不涉及不同文件記錄之間的聯(lián)系,要想查找某個學(xué)生的學(xué)號、姓名、所選課程的名稱和成績,必須編寫一段不很簡單的程序來實(shí)現(xiàn)。而采用數(shù)據(jù)庫方式,數(shù)據(jù)庫系統(tǒng)不僅描述數(shù)據(jù)本身,還描述數(shù)據(jù)之間的聯(lián)系,上述查詢可以非常容易地聯(lián)機(jī)查到。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域3.數(shù)據(jù)獨(dú)立性高數(shù)據(jù)的獨(dú)立性是指邏輯獨(dú)立性和物理獨(dú)立性。數(shù)據(jù)的邏輯獨(dú)立性是指當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必須修改,從而保證了數(shù)據(jù)與程序間的邏輯獨(dú)立性。例如,在原有的記錄類型之間增加新的聯(lián)系,或在某些記錄類型中增加新的數(shù)據(jù)項,均可確保數(shù)據(jù)的邏輯獨(dú)立性。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,數(shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必改變。例如,改變存儲設(shè)備和增加新的存儲設(shè)備,或改變數(shù)據(jù)的存儲組織方式,均可確保數(shù)據(jù)的物理獨(dú)立性。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域4.有統(tǒng)一的數(shù)據(jù)控制功能數(shù)據(jù)庫為多個用戶和應(yīng)用程序所共享,對數(shù)據(jù)的存取往往是并發(fā)的,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù),為確保數(shù)據(jù)庫數(shù)據(jù)的正確有效和數(shù)據(jù)庫系統(tǒng)的有效運(yùn)行,數(shù)據(jù)庫管理系統(tǒng)提供下述四方面的數(shù)據(jù)控制功能。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域(1)數(shù)據(jù)的安全性(security)控制:防止不合法使用數(shù)據(jù)造成數(shù)據(jù)的泄露和破壞,保證數(shù)據(jù)的安全和機(jī)密;例如,系統(tǒng)提供口令檢查或其他手段來驗(yàn)證用戶身份,防止非法用戶使用系統(tǒng);也可以對數(shù)據(jù)的存取權(quán)限進(jìn)行限制,只有通過檢查后才能執(zhí)行相應(yīng)的操作。(2)數(shù)據(jù)的完整性(integrity)控制:系統(tǒng)通過設(shè)置一些完整性規(guī)則以確保數(shù)據(jù)的正確性、有效性和相容性。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域正確性是指數(shù)據(jù)的合法性,如年齡屬于數(shù)值型數(shù)據(jù),只能含0,1,…9,不能含字母或特殊符號;有效性是指數(shù)據(jù)是否在其定義的有效范圍,如月份只能用1~12之間的正整數(shù)表示;相容性是指表示同一事實(shí)的兩個數(shù)據(jù)應(yīng)相同,否則就不相容,如一個人不能有兩個性別。(3)并發(fā)(concurrency)控制:多用戶同時存取或修改數(shù)據(jù)庫時,防止相互干擾而提供給用戶不正確的數(shù)據(jù),并使數(shù)據(jù)庫受到破壞。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域(4)數(shù)據(jù)恢復(fù)(recovery):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不可靠時,系統(tǒng)有能力將數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到最近某一時刻的正確狀態(tài)。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)圖1.3數(shù)據(jù)庫系統(tǒng)階段1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域
從文件系統(tǒng)管理發(fā)展到數(shù)據(jù)庫系統(tǒng)管理是信息處理領(lǐng)域的一個重大變化。在文件系統(tǒng)階段,人們關(guān)注的是系統(tǒng)功能的設(shè)計,因此程序設(shè)計處于主導(dǎo)地位,數(shù)據(jù)服從于程序設(shè)計;而在數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)的結(jié)構(gòu)設(shè)計成為信息系統(tǒng)首先關(guān)心的問題。數(shù)據(jù)庫技術(shù)經(jīng)歷了以上三個階段的發(fā)展,已有了比較成熟的數(shù)據(jù)庫技術(shù),但隨著計算機(jī)軟硬件的發(fā)展,數(shù)據(jù)庫技術(shù)仍需不斷向前發(fā)展。
1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域1.2.2數(shù)據(jù)庫技術(shù)的研究領(lǐng)域數(shù)據(jù)庫學(xué)科的研究范圍主要包括以下三個領(lǐng)域:1.數(shù)據(jù)庫管理系統(tǒng)軟件的研制
DBMS是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。
DBMS的研制包括研制DBMS本身及以DBMS為核心的一組相互聯(lián)系的軟件系統(tǒng),包括工具軟件和中間件。研制的目標(biāo)是提高系統(tǒng)的性能和提高用戶的生產(chǎn)率。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域2.數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計的研究范圍包括:數(shù)據(jù)庫的設(shè)計方法、設(shè)計工具和設(shè)計理論的研究,數(shù)據(jù)模型和數(shù)據(jù)建模的研究,計算機(jī)輔助數(shù)據(jù)庫設(shè)計及其軟件系統(tǒng)的研究,數(shù)據(jù)庫設(shè)計規(guī)范和標(biāo)準(zhǔn)的研究等。1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域3.數(shù)據(jù)庫理論數(shù)據(jù)庫理論的研究主要集中于關(guān)系規(guī)范化理論、關(guān)系數(shù)據(jù)理論等。近年來,隨著人工智能與數(shù)據(jù)庫理論的結(jié)合以及并行計算技術(shù)的發(fā)展,數(shù)據(jù)庫邏輯演繹和知識推理、并行算法等都成為新的研究方向。隨著數(shù)據(jù)庫應(yīng)用領(lǐng)域的不斷擴(kuò)展,計算機(jī)技術(shù)的迅猛發(fā)展,數(shù)據(jù)庫技術(shù)與人工智能技術(shù)、網(wǎng)絡(luò)通信技術(shù)、并行計算技術(shù)等到相互滲透、相互結(jié)合,使數(shù)據(jù)庫技術(shù)不斷涌現(xiàn)新的研究方向。
1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與研究領(lǐng)域1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)1.3.1數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)通常是指數(shù)據(jù)庫和相應(yīng)的軟硬件系統(tǒng)。主要由數(shù)據(jù)(庫)、用戶、軟件和硬件四部分組成。
數(shù)據(jù)(庫)數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)有組織的共享的數(shù)據(jù)的集合。它可以供用戶共享,具有盡可能小的冗余度和較高的數(shù)據(jù)獨(dú)立性,使得數(shù)據(jù)存儲最優(yōu),數(shù)據(jù)最容易操作,并且具有完善的自我保護(hù)能力和數(shù)據(jù)恢復(fù)能力。數(shù)據(jù)庫特點(diǎn)如下:1.集成性:把某特定應(yīng)用環(huán)境中的各種應(yīng)用相關(guān)的數(shù)據(jù)及其數(shù)據(jù)之間的聯(lián)系全部地集中地并按照一定的結(jié)構(gòu)形式進(jìn)行存儲,或者說,把數(shù)據(jù)庫看成為若干個單個性質(zhì)不同的數(shù)據(jù)文件的聯(lián)合和統(tǒng)一的數(shù)據(jù)整體。2.共享性:數(shù)據(jù)庫中的一塊塊數(shù)據(jù)可為多個不同的用戶所共享,即多個不同的用戶,使用多種不同的語言,為了不同的應(yīng)用目的,而同時存取數(shù)據(jù)庫,甚至同時存取同一塊數(shù)據(jù),即多用戶系統(tǒng)。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)
用戶用戶是指使用數(shù)據(jù)庫的人,即對數(shù)據(jù)庫的存儲、維護(hù)和檢索等操作。用戶分為三類:1.第一類用戶,終端用戶(EndUser)主要是使用數(shù)據(jù)庫的各級管理人員、工程技術(shù)人員、科研人員,一般為非計算機(jī)專業(yè)人員;1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)2.第二類用戶,應(yīng)用程序員(ApplicationProgrammer)負(fù)責(zé)為終端用戶設(shè)計和編制應(yīng)用程序,以便終端用戶對數(shù)據(jù)庫進(jìn)行存取操作。3.第三類用戶,數(shù)據(jù)庫管理員(DadabaseAdministrator,簡稱DBA)
DBA是指全面負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的“管理、維護(hù)和正常使用的”人員,其職責(zé)如下:1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)(1)參與數(shù)據(jù)庫設(shè)計的全過程,決定數(shù)據(jù)庫的結(jié)構(gòu)和內(nèi)容;(2)定義數(shù)據(jù)的安全性和完整性,負(fù)責(zé)分配用戶對數(shù)據(jù)庫的使用權(quán)限和口令管理;(3)監(jiān)督控制數(shù)據(jù)庫的使用和運(yùn)行,改進(jìn)和重新構(gòu)造數(shù)據(jù)庫系統(tǒng)。當(dāng)數(shù)據(jù)庫受到破壞時,應(yīng)負(fù)責(zé)恢復(fù)數(shù)據(jù)庫;當(dāng)數(shù)據(jù)庫的結(jié)構(gòu)需要改變時,完成對數(shù)據(jù)結(jié)構(gòu)的修改。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)DBA不僅要有較高的技術(shù)專長和較深的資歷,并應(yīng)具有了解和闡明管理要求的能力。特別對于大型數(shù)據(jù)庫系統(tǒng),DBA極為重要。對于常見的微機(jī)數(shù)據(jù)庫系統(tǒng),通常只有一個用戶,常常不設(shè)DBA,DBA的職責(zé)由應(yīng)用程序員或終端用戶代替。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)
軟件(Software)
負(fù)責(zé)數(shù)據(jù)庫存取、維護(hù)和管理的軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS),數(shù)據(jù)庫系統(tǒng)的各類人員對數(shù)據(jù)庫的各種操作請求,都由DBMS完成,
DBMS是數(shù)據(jù)庫系統(tǒng)的核心軟件。硬件(Hardware)存儲和運(yùn)行數(shù)據(jù)庫系統(tǒng)的硬件設(shè)備。包括CPU、內(nèi)存、大容量的存儲設(shè)備、外部設(shè)備等。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)層次結(jié)構(gòu)圖如下圖由上圖看出:
DBMS在操作系統(tǒng)(OS)的支持下工作,應(yīng)用程序在DBMS支持下才能使用數(shù)據(jù)庫。編譯系統(tǒng)OS硬件應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具DBMS1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)1.3.2數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)可以從多種不同的角度考查數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)。從數(shù)據(jù)庫管理系統(tǒng)的角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu);從數(shù)據(jù)庫最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。例如:學(xué)生記錄定義為(學(xué)號、姓名、性別、系別、年齡),稱為記錄型,而(001101,張立,男,計算機(jī),20)則是該記錄型的一個記錄值。模式只是對記錄型的描述,而與具體的值無關(guān)。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)
在數(shù)據(jù)庫系統(tǒng)中,對于同一意義下的數(shù)據(jù),如:學(xué)生數(shù)據(jù),從計算機(jī)中處理的二進(jìn)制表示到用戶處理的諸如學(xué)生姓名、年齡等概念的數(shù)據(jù)之間,存在著許多抽象和轉(zhuǎn)換。通常DBMS把數(shù)據(jù)庫從邏輯上分為三級,即外模式、模式和內(nèi)模式,它們分別反映了看待數(shù)據(jù)庫的三個角度。三級模式結(jié)構(gòu)如圖1.5所示。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)應(yīng)用1應(yīng)用2應(yīng)用n……子模式1……子模式m子模式/模式映象模式模式/內(nèi)模式映象內(nèi)模式數(shù)據(jù)庫
圖1.5數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
1.模式模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,又稱概念模式或概念視圖。視圖可理解為一組記錄的值,用戶或程序員看到和使用的數(shù)據(jù)庫的內(nèi)容。模式處于三級結(jié)構(gòu)的中間層,它是整個數(shù)據(jù)庫實(shí)際存儲的抽象表示,也是對現(xiàn)實(shí)世界的一個抽象,是現(xiàn)實(shí)世界某應(yīng)用環(huán)境(企業(yè)或單位)的所有信息內(nèi)容集合的表示,也是所有個別用戶視圖綜合起來的結(jié)果,所以又稱用戶共同視圖。它表示了數(shù)據(jù)庫的整體數(shù)據(jù)。。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)2.外模式又稱子模式或用戶模式或外視圖,是三級結(jié)構(gòu)的最外層,個別用戶只對整個數(shù)據(jù)庫的一部分感興趣,所以外視圖是個別用戶看到和使用的數(shù)據(jù)庫內(nèi)容,因此也常把外視圖稱為用戶數(shù)據(jù)庫。它由多種外記錄值構(gòu)成,這些記錄值是概念視圖的某一部分的抽象表示。即個別用戶看到和使用的數(shù)據(jù)庫內(nèi)容,也稱“用戶DB”。由多個“外記錄值”組成,是概念視圖的某一部分的抽象表示。從邏輯關(guān)系上看,外模式包含于概念模式。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)3.內(nèi)模式又稱存儲模式或內(nèi)視圖,是三級結(jié)構(gòu)中的最內(nèi)層,也是靠近物理存儲的一層,即與實(shí)際存儲數(shù)據(jù)方式有關(guān)的一層,由多個存儲記錄組成,但并非物理層,不必關(guān)心具體的存儲位置。在數(shù)據(jù)庫系統(tǒng)中,外模式可有多個,而概念模式、內(nèi)模式只能各有一個。內(nèi)模式是整個數(shù)據(jù)庫實(shí)際存儲的表示,而概念模式是整個數(shù)據(jù)庫實(shí)際存儲的抽象表示,外模式是概念模式的某一部分的抽象表示。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)4.三級結(jié)構(gòu)的優(yōu)點(diǎn)(1)保證數(shù)據(jù)的獨(dú)立性。將模式和內(nèi)模式分開,保證了數(shù)據(jù)的物理獨(dú)立性;將外模式和模式分開,保證了數(shù)據(jù)的邏輯獨(dú)立性。(2)簡化了用戶接口。按照外模式編寫應(yīng)用程序或敲入命令,而不需了解數(shù)據(jù)庫內(nèi)部的存儲結(jié)構(gòu),方便用戶使用系統(tǒng)。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)(3)有利于數(shù)據(jù)共享。在不同的外模式下可有多個用戶共享系統(tǒng)中數(shù)據(jù),減少了數(shù)據(jù)冗余。(4)利于數(shù)據(jù)的安全保密。在外模式下根據(jù)要求進(jìn)行操作,不能對限定的數(shù)據(jù)操作,保證了其他數(shù)據(jù)的安全。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)
數(shù)據(jù)庫系統(tǒng)的二級映象數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它使用戶能邏輯地抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機(jī)內(nèi)部的存儲方式,把數(shù)據(jù)的具體組織交給DBMS管理。為了能夠在內(nèi)部實(shí)現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,DBMS在三級模式之間提供了二級映象功能。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)1.模式/內(nèi)模式映象數(shù)據(jù)庫中的模式和內(nèi)模式都只有一個,所以模式/內(nèi)模式映象是唯一的。它確定了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,存儲結(jié)構(gòu)變化時,模式/內(nèi)模式映象也應(yīng)有相應(yīng)的變化,使其概念模式仍保持不變,即把存儲結(jié)構(gòu)的變化的影響限制在概念模式之下,這使數(shù)據(jù)的存儲結(jié)構(gòu)和存儲方法較高的獨(dú)立于應(yīng)用程序,通過映象功能保證數(shù)據(jù)存儲結(jié)構(gòu)的變化不影響數(shù)據(jù)的全局邏輯結(jié)構(gòu)的改變,從而不必修改應(yīng)用程序,即確保了數(shù)據(jù)的物理獨(dú)立性。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)2.外模式/模式映象數(shù)據(jù)庫中的同一模式可以有任意多個外模式,對于每一個外模式,都存在一個外模式/模式映象。它確定了數(shù)據(jù)的局部邏輯結(jié)構(gòu)與全局邏輯結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,在原有的記錄類型之間增加新的聯(lián)系,或在某些記錄類型中增加新的數(shù)據(jù)項時,使數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變,外模式/模式映象也發(fā)生相應(yīng)的變化,這一映象功能保證了數(shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必須修改,從而保證了數(shù)據(jù)與程序間的邏輯獨(dú)立性。1.3數(shù)據(jù)庫系統(tǒng)的組成和結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟件,它是數(shù)據(jù)庫系統(tǒng)的核心組成部分,用戶在數(shù)據(jù)庫系統(tǒng)中的一切操作,包括數(shù)據(jù)定義、查詢、更新及各種控制,都是通過DBMS進(jìn)行的。
DBMS就是實(shí)現(xiàn)把用戶意義下的抽象的邏輯數(shù)據(jù)處理轉(zhuǎn)換成計算機(jī)中的具體的物理數(shù)據(jù)的處理軟件,這給用戶帶來很大的方便。1.4.1DBMS的主要功能1.數(shù)據(jù)定義
DBMS提供數(shù)據(jù)定義語言DDL(DataDefineLanguage),定義數(shù)據(jù)的模式、外模式和內(nèi)模式三級模式結(jié)構(gòu),定義模式/內(nèi)模式和外模式/模式二級映象,定義有關(guān)的約束條件,例如,為保證數(shù)據(jù)庫安全而定義的用戶口令和存取權(quán)限,為保證正確語義而定義完整性規(guī)則。1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
2.數(shù)據(jù)操縱
DBMS提供數(shù)據(jù)操縱語言DML(DataManipulationLanguage)實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作,包括檢索、插入、修改、刪除等。
SQL語言就是DML的一種。3.數(shù)據(jù)庫運(yùn)行管理
DBMS對數(shù)據(jù)庫的控制主要通過四個方面實(shí)現(xiàn):數(shù)據(jù)的安全性控制數(shù)據(jù)的完整性控制多用戶環(huán)境下的并發(fā)控制數(shù)據(jù)庫的恢復(fù)1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
4.數(shù)據(jù)庫的建立和維護(hù)功能包括數(shù)據(jù)庫的初始數(shù)據(jù)的裝入,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)、重組織,系統(tǒng)性能監(jiān)視、分析等功能。5.數(shù)據(jù)通信
DBMS提供與其他軟件系統(tǒng)進(jìn)行通信的功能。實(shí)現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
1.4.2DBMS的組成
DBMS是許多“系統(tǒng)程序”所組成的一個集合。每個程序都有自己的功能,共同完成DBMS的一件或幾件工作。1.語言編譯處理程序(1)數(shù)據(jù)定義語言DDL及其編譯程序它把用DDL編寫的各級源模式編譯成各級目標(biāo)模式,這些目標(biāo)模式是對數(shù)據(jù)庫結(jié)構(gòu)信息的描述,而不是數(shù)據(jù)本身,它們被保存在數(shù)據(jù)字典中,供以后數(shù)據(jù)操縱或數(shù)據(jù)控制時使用。1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
(2)數(shù)據(jù)操縱語言DML及其編譯程序,實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作。DML有兩類,一類是宿主型,嵌入在高級語言中,不能單獨(dú)使用;另一類是自主型或自含型,可獨(dú)立地交互使用。2.系統(tǒng)運(yùn)行控制程序,主要包括以下幾部分:系統(tǒng)總控程序:是DBMS運(yùn)行程序的核心,用于控制和協(xié)調(diào)各程序的活動;安全性控制程序:防止未被授權(quán)的用戶存取數(shù)據(jù)庫中的數(shù)據(jù);1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
完整性控制程序:檢查完整性約束條件,確保進(jìn)入數(shù)據(jù)庫中的數(shù)據(jù)的正確性、有效性和相容性;并發(fā)控制程序:協(xié)調(diào)多用戶、多任務(wù)環(huán)境下各應(yīng)用程序?qū)?shù)據(jù)庫的并以操作,保證數(shù)據(jù)的一致性;數(shù)據(jù)存取和更新程序:實(shí)施對數(shù)據(jù)庫數(shù)據(jù)的檢索、插入、修改、刪除等操作;通信控制程序:實(shí)現(xiàn)用戶程序與DBMS間的通信。3.系統(tǒng)建立、維護(hù)程序,主要包括以下幾部分:裝配程序:完成初始數(shù)據(jù)庫的數(shù)據(jù)裝入;1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
重組程序:當(dāng)數(shù)據(jù)庫系統(tǒng)性能變壞時(如查詢速度變慢),需要重新組織數(shù)據(jù)庫,重新裝入數(shù)據(jù);系統(tǒng)恢復(fù)程序:當(dāng)數(shù)據(jù)庫系統(tǒng)受到破壞時,將數(shù)據(jù)庫系統(tǒng)恢復(fù)到以前某個正確的狀態(tài)。4.數(shù)據(jù)字典(DataDictionary,簡稱DD)用來描述數(shù)據(jù)庫中有關(guān)信息的數(shù)據(jù)目錄,包括數(shù)據(jù)庫的三級模式、數(shù)據(jù)類型、用戶名、用戶權(quán)限等有關(guān)數(shù)據(jù)庫系統(tǒng)的信息,起著系統(tǒng)狀態(tài)的目錄表的作用,幫助用戶、DBA、DBMS本身使用和管理數(shù)據(jù)庫。1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
1.4.3DBMS的數(shù)據(jù)存取的過程在數(shù)據(jù)庫系統(tǒng)中,DBMS與操作系統(tǒng)、應(yīng)用程序、硬件等協(xié)同工作,共同完成數(shù)據(jù)各種存取操作,其中DBMS起著關(guān)鍵的作用。
DBMS對數(shù)據(jù)的存取通常需要以下四步:1.用戶使用某種特定的數(shù)據(jù)操作語言向DBMS發(fā)出存取請求;2.DBMS接受請求并解釋;3.DBMS依次檢查外模式、外模式/模式映象、模式、模式/內(nèi)模式映象及存儲結(jié)構(gòu)定義;1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
4.DBMS對存儲數(shù)據(jù)庫執(zhí)行必要的存取操作;上述存取過程中還包括安全性控制、完整性控制,以確保數(shù)據(jù)的正確性、有效性和一致性。1.4數(shù)據(jù)庫管理系統(tǒng)(DBMS)
1.5數(shù)據(jù)模型1.5.1數(shù)據(jù)模型的組成要素數(shù)據(jù)模型是模型的一種,是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象。數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件三個要素組成。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特性。數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合,它是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。在數(shù)據(jù)庫系統(tǒng)中,人們通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。
數(shù)據(jù)結(jié)構(gòu)有層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)系結(jié)構(gòu)三種類型,按照這三種結(jié)構(gòu)命名的數(shù)據(jù)模型分別稱為層次模型、網(wǎng)狀模型和關(guān)系模型。2.數(shù)據(jù)操作數(shù)據(jù)操作用于描述系統(tǒng)的動態(tài)特性。數(shù)據(jù)操作是對數(shù)據(jù)庫中各種數(shù)據(jù)操作的集合,包括操作及相應(yīng)的操作規(guī)則。如數(shù)據(jù)的檢索、插入、刪除和修改等。數(shù)據(jù)模型必須定義這些操作的確切含義、操作規(guī)則以及實(shí)現(xiàn)操作的語言。1.5數(shù)據(jù)模型3.數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。數(shù)據(jù)模型還應(yīng)該提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。例如,在學(xué)生數(shù)據(jù)庫中,學(xué)生的年齡不得超過40歲。1.5數(shù)據(jù)模型1.5.2數(shù)據(jù)之間的聯(lián)系
三個世界的劃分由于計算機(jī)不能直接處理現(xiàn)實(shí)世界中的具體事物,所以人們必須將具體事物轉(zhuǎn)換成計算機(jī)能夠處理的數(shù)據(jù)。在數(shù)據(jù)庫中用數(shù)據(jù)模型來抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)。數(shù)據(jù)庫即是模擬現(xiàn)實(shí)世界中某應(yīng)用環(huán)境(一個企業(yè)、單位或部門)所涉及的數(shù)據(jù)的集合,它不僅要反映數(shù)據(jù)本身的內(nèi)容,而且要反映數(shù)據(jù)之間的聯(lián)系。1.5數(shù)據(jù)模型
這個集合或者包含了信息的一部分(用用戶視圖模擬),或者包含了信息的全部(用概念視圖模擬),而這種模擬是通過數(shù)據(jù)模型來進(jìn)行的。為了把現(xiàn)實(shí)世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,在實(shí)際的數(shù)據(jù)處理過程中,首先將現(xiàn)實(shí)世界的事物及聯(lián)系抽象成信息世界的信息模型,然后再抽象成計算機(jī)世界的數(shù)據(jù)模型。1.5數(shù)據(jù)模型
信息模型并不依賴于具體的計算機(jī)系統(tǒng),不是某一個DBMS所支持的數(shù)據(jù)模型,它是計算機(jī)內(nèi)部數(shù)據(jù)的抽象表示,是概念模型;概念模型經(jīng)過抽象,轉(zhuǎn)換成計算機(jī)上某一DBMS支持的數(shù)據(jù)模型。所以說,數(shù)據(jù)模型是現(xiàn)實(shí)世界的兩級抽象的結(jié)果。在數(shù)據(jù)處理中,數(shù)據(jù)加工經(jīng)歷了現(xiàn)實(shí)世界、信息世界和計算機(jī)世界三個不同的世界,經(jīng)歷了兩級抽象和轉(zhuǎn)換。這一過程如圖1.6所示。
1.5數(shù)據(jù)模型圖1.6數(shù)據(jù)處理的抽象和轉(zhuǎn)換過程現(xiàn)實(shí)世界信息世界認(rèn)識抽象計算機(jī)世界1.5數(shù)據(jù)模型
信息世界中的基本概念在信息世界中,常用的主要概念如下:1.實(shí)體(Entity)客觀存在并且可以相互區(qū)別的“事物”稱為實(shí)體。實(shí)體可以是可觸及的對象,如一個學(xué)生,一本書,一輛汽車;也可以是抽象的事件,如一堂課,一次比賽等。2.屬性(Attributes)
實(shí)體的某一特性稱為屬性。1.5數(shù)據(jù)模型
如學(xué)生實(shí)體有學(xué)號、姓名、年齡、性別、系等方面的屬性。屬性有"型"和“值”之分,"型"即為屬性名,如姓名、年齡、性別是屬性的型;“值”即為屬性的具體內(nèi)容,如(990001,張立,20,男,計算機(jī))這些屬性值的集合表示了一個學(xué)生實(shí)體。3.實(shí)體型(EntityType)若干個屬性型組成的集合可以表示一個實(shí)體的類型,簡稱實(shí)體型。如學(xué)生(學(xué)號,姓名,年齡,性別,系)就是一個實(shí)體型。1.5數(shù)據(jù)模型4.實(shí)體集(EntitySet)
同型實(shí)體的集合稱為實(shí)體集。如所有的學(xué)生、所有的課程等。5.鍵(Key)能唯一標(biāo)識一個實(shí)體的屬性或?qū)傩约Q為實(shí)體的鍵。如學(xué)生的學(xué)號,學(xué)生的姓名可能有重名,不能作為學(xué)生實(shí)體的鍵。6.域(Domain)屬性值的取值范圍稱為該屬性的域。如學(xué)號的域?yàn)?位整數(shù),姓名的域?yàn)樽址?,年齡的域?yàn)樾∮?0的整數(shù),性別的域?yàn)椋校?.5數(shù)據(jù)模型7.聯(lián)系(Relationship)在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系同樣也要抽象和反映到信息世界中來,在信息世界中將被抽象為實(shí)體型內(nèi)部的聯(lián)系和實(shí)體型之間的聯(lián)系。實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系;實(shí)體之間的聯(lián)系通常是指不同實(shí)體集之間的聯(lián)系。反映實(shí)體型及其聯(lián)系的結(jié)構(gòu)形式稱為實(shí)體模型,也稱作信息模型,它是現(xiàn)實(shí)世界及其聯(lián)系的抽象表示。1.5數(shù)據(jù)模型兩個實(shí)體型之間的聯(lián)系有如下三種類型:(1)一對一聯(lián)系(1:1)實(shí)體集A中的一個實(shí)體至多與實(shí)體集B中的一個實(shí)體相對應(yīng),反之亦然,則稱實(shí)體集A與實(shí)體集B為一對一的聯(lián)系。記作1:1。如:班級與班長,觀眾與座位,病人與床位。(2)一對多聯(lián)系(1:n)實(shí)體集A中的一個實(shí)體與實(shí)體集B中的多個實(shí)體相對應(yīng),反之,實(shí)體集B中的一個實(shí)體至多與實(shí)體集A中的一個實(shí)體相對應(yīng)。記作1:n。如:班級與學(xué)生、公司與職員、省與市。1.5數(shù)據(jù)模型(3)多對多(m:n)實(shí)體集A中的一個實(shí)體與實(shí)體集B中的多個實(shí)體相對應(yīng),反之,實(shí)體集B中的一個實(shí)體與實(shí)體集A中的多個實(shí)體相對應(yīng)。記作(m:n)。如:教師與學(xué)生,學(xué)生與課程,工廠與產(chǎn)品。實(shí)際上,一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)系的特例。1.5數(shù)據(jù)模型
可以用圖形來表示兩個實(shí)體型之間的這三類聯(lián)系,如圖書1.7所示。
ABABAB(a)(b)(c)圖1.7不同實(shí)體集實(shí)體之間的聯(lián)系1.5數(shù)據(jù)模型
計算機(jī)世界中的基本概念信息世界中的實(shí)體抽象為計算機(jī)世界中的數(shù)據(jù),存儲在計算機(jī)中。在計算機(jī)世界中,常用的主要概念如下:1.字段(Field)對應(yīng)于屬性的數(shù)據(jù)稱為字段,也稱為數(shù)據(jù)項。字段的命名往往和屬性名相同。如學(xué)生有學(xué)號、姓名、年齡、性別、系等字段。2.記錄(Record)對應(yīng)于每個實(shí)體的數(shù)據(jù)稱為記錄。
如一個學(xué)生(990001,張立,20,男,計算機(jī))1.5數(shù)據(jù)模型3.文件(File)對應(yīng)于實(shí)體集的數(shù)據(jù)稱為文件。如所有學(xué)生的記錄組成了一個學(xué)生文件。在計算機(jī)世界中,信息模型被抽象為數(shù)據(jù)模型,實(shí)體型內(nèi)部的聯(lián)系抽象為同一記錄內(nèi)部各字段間的聯(lián)系,實(shí)體型之間的聯(lián)系抽象為記錄與記錄之間的聯(lián)系。現(xiàn)實(shí)世界是設(shè)計數(shù)據(jù)庫的出發(fā)點(diǎn),也是使用數(shù)據(jù)庫的最終歸宿。實(shí)體模型和數(shù)據(jù)模型是現(xiàn)實(shí)世界事物及其聯(lián)系的兩級抽象。而數(shù)據(jù)模型是實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)的根據(jù)。1.5數(shù)據(jù)模型通過以上的介紹,我們可總結(jié)出三個世界中各術(shù)語的對應(yīng)關(guān)系如圖1.8所示。 現(xiàn)實(shí)世界 信息世界計算機(jī)世界 事物總體 實(shí)體集文件 事物個體 實(shí)體記錄 特征 屬性字段 事物間聯(lián)系 實(shí)體模型數(shù)據(jù)模型圖1.8三個世界各術(shù)語的對應(yīng)關(guān)系1.5數(shù)據(jù)模型1.5.3數(shù)據(jù)模型的分類數(shù)據(jù)模型的好壞,直接影響數(shù)據(jù)庫的性能。數(shù)據(jù)模型的選擇,是設(shè)計數(shù)據(jù)庫的一項首要任務(wù)。目前最常用的數(shù)據(jù)模型有層次模型(HierarchicalModel)、網(wǎng)狀模型(NetworkModel)和關(guān)系模型(RelationalModel)。這三種數(shù)據(jù)模型的根區(qū)別在于數(shù)據(jù)結(jié)構(gòu)不同,即數(shù)據(jù)之間聯(lián)系的表示方式不同。層次模型用“樹結(jié)構(gòu)”來表示數(shù)據(jù)之間的聯(lián)系;網(wǎng)狀模型是用“圖結(jié)構(gòu)”來表示數(shù)據(jù)之間的聯(lián)系;關(guān)系模型是用“二維表”來表示數(shù)據(jù)之間的聯(lián)系。1.5數(shù)據(jù)模型
其中層次模型和網(wǎng)狀模型是早期的數(shù)據(jù)模型,統(tǒng)稱為非關(guān)系模型。
20世紀(jì)70年代至80年代初,非關(guān)系模型的數(shù)據(jù)庫系統(tǒng)非常流行,在數(shù)據(jù)庫系統(tǒng)產(chǎn)品中占據(jù)了主導(dǎo)地位,現(xiàn)在已逐漸被關(guān)系模型的數(shù)據(jù)庫系統(tǒng)取代,但在美國等國,由于早期開發(fā)的應(yīng)用系都是基于層次數(shù)據(jù)庫或網(wǎng)狀數(shù)據(jù)庫系統(tǒng),因此目前層次數(shù)據(jù)庫或網(wǎng)狀數(shù)據(jù)庫的系統(tǒng)仍很多。
20世紀(jì)80年代以來,面向?qū)ο蟮姆椒ê图夹g(shù)在計算機(jī)各個領(lǐng)域,包括程序設(shè)計語言、軟件工程、計算機(jī)硬件等各方面都產(chǎn)生了深遠(yuǎn)的影響,出現(xiàn)了一種新的數(shù)據(jù)模型——面向?qū)ο蟮臄?shù)據(jù)模型
1.5數(shù)據(jù)模型
層次模型層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,采用層次模型的數(shù)據(jù)庫的典型代表是IBM公司的IMS(InformationManagementSystem)數(shù)據(jù)庫管理系統(tǒng)?,F(xiàn)實(shí)世界中,許多實(shí)體之間的聯(lián)系都表現(xiàn)出一種很自然的層次關(guān)系,如家族關(guān)系,行政機(jī)構(gòu)等。層次模型用一棵“有向樹”的數(shù)據(jù)結(jié)構(gòu)來表示各類實(shí)體以及實(shí)體間的聯(lián)系。1.5數(shù)據(jù)模型
在樹中,每個結(jié)點(diǎn)表示一個記錄類型,結(jié)點(diǎn)間的連線(或邊)表示記錄類型間的關(guān)系,每個記錄類型可包含若干個字段,記錄類型描述的是實(shí)體,字段描述實(shí)體的屬性,各個記錄類型及其字段都必須命名。如果要存取某一記錄型的記錄,可以從根結(jié)點(diǎn)起,按照有向樹層次向下查找。1.5數(shù)據(jù)模型圖1.9是層次模型有向樹的示意圖。結(jié)點(diǎn)A為根結(jié)點(diǎn),D,F,G為葉結(jié)點(diǎn),B,D為兄結(jié)點(diǎn)……
圖1.9層次模型有向樹的示意圖
ABCDEF1.5數(shù)據(jù)模型3.層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)點(diǎn)主要有:(1)比較簡單,只需很少幾條命令就能操縱數(shù)據(jù)庫,比較容易使用。(2)結(jié)構(gòu)清晰,結(jié)點(diǎn)間聯(lián)系簡單,只要知道每個結(jié)點(diǎn)的雙親結(jié)點(diǎn),就可知道整個模型結(jié)構(gòu)?,F(xiàn)實(shí)世界中許多實(shí)體間的聯(lián)系本來就呈現(xiàn)出一種很自然的層次關(guān)系,如表示行政層次,家族關(guān)系很方便。(3)它提供了良好的數(shù)據(jù)完整性支持。1.5數(shù)據(jù)模型層次模型的缺點(diǎn)主要有:(1)不能直接表示兩個以上的實(shí)體型間的復(fù)雜的聯(lián)系和實(shí)體型間的多對多聯(lián)系,只能通過引入冗余數(shù)據(jù)或創(chuàng)建虛擬結(jié)點(diǎn)的方法來解決,易產(chǎn)生不一致性。(2)對數(shù)據(jù)的插入和刪除的操作限制太多。(3)查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)。1.5數(shù)據(jù)模型
網(wǎng)狀模型現(xiàn)實(shí)世界中事物之間的聯(lián)系更多的是非層次關(guān)系的,用層次模型表示這種關(guān)系很不直觀,網(wǎng)狀模型克服了這一弊病,可以清晰的表示這種非層次關(guān)系。
20世紀(jì)70年代,數(shù)據(jù)系統(tǒng)語言研究會CODASYL下屬的數(shù)據(jù)庫任務(wù)組DBTG(DataBaseTaskGroup)提出了一個系統(tǒng)方案,DBTG系統(tǒng),也稱CODASYL系統(tǒng),成為了網(wǎng)狀模型的代表。網(wǎng)狀模型取消了層次模型的兩個限制,兩個或兩個以上的結(jié)點(diǎn)都可以有多個雙親結(jié)點(diǎn),則此時有向樹變成了有向圖,該有向圖描述了網(wǎng)狀模型。1.5數(shù)據(jù)模型網(wǎng)狀模型的特征(1)有一個以上的結(jié)點(diǎn)沒有雙親;(2)至少有一個結(jié)點(diǎn)可以有多于一個雙親。即允許兩個或兩個以上的結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),允許某個結(jié)點(diǎn)有多個雙親結(jié)點(diǎn),則此時有向樹變成了有向圖,該有向圖描述了網(wǎng)狀模型。網(wǎng)狀模型中每個結(jié)點(diǎn)表示一個記錄型(實(shí)體),每個記錄型可包含若干個字段(實(shí)體的屬性),結(jié)點(diǎn)間的連線表示記錄類型(實(shí)體)間的父子關(guān)系。1.5數(shù)據(jù)模型如:學(xué)生和課程間的關(guān)系。一個學(xué)生可以選修多門課程,一門課程可以由多個學(xué)生選修。如圖1.11所示
圖1.11學(xué)生與課程的網(wǎng)狀模型
學(xué)生課程1.5數(shù)據(jù)模型3.網(wǎng)狀模型的優(yōu)缺點(diǎn)網(wǎng)狀模型的優(yōu)點(diǎn)主要有:(1)能更為直接地描述客觀世界,可表示實(shí)體間的多種復(fù)雜聯(lián)系。(2)具有良好的性能和存儲效率網(wǎng)狀模型的缺點(diǎn)主要有(1)結(jié)構(gòu)復(fù)雜,其DDL語言極其復(fù)雜。(2)數(shù)據(jù)獨(dú)立性差,由于實(shí)體間的聯(lián)系本質(zhì)上是通過存取路徑表示的,因此應(yīng)用程序在訪問數(shù)據(jù)時要指定存取路徑。1.5數(shù)據(jù)模型
關(guān)系模型關(guān)系模型是發(fā)展較晚的一種模型,
1970年美國IBM公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型。他發(fā)表了題為“大型共享數(shù)據(jù)銀行數(shù)據(jù)的關(guān)系模型”(ARelationModelofDataforLargeSharedDataBanks),在文中解釋了關(guān)系模型,定義了某些關(guān)系代數(shù)運(yùn)算,研究了數(shù)據(jù)的函數(shù)相關(guān)性,定義了關(guān)系的第三范式,從而開創(chuàng)了數(shù)據(jù)庫的關(guān)系方法和數(shù)據(jù)規(guī)范化理論的研究,1.5數(shù)據(jù)模型
他為此獲得了1981年的圖靈獎。此后許多人把研究方向轉(zhuǎn)到關(guān)系方法上,陸續(xù)出現(xiàn)了關(guān)系數(shù)據(jù)庫系統(tǒng)。
1977年IBM公司研制的關(guān)系數(shù)據(jù)庫的代表SystemR開始運(yùn)行,其后又進(jìn)行了不斷的改進(jìn)和擴(kuò)充,出現(xiàn)了基于SystemR的數(shù)據(jù)庫系統(tǒng)SQL/DB。
20世紀(jì)80年代以來,計算機(jī)廠商新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。數(shù)據(jù)庫領(lǐng)域當(dāng)前的研究工作也都是以關(guān)系方法為基礎(chǔ)。1.5數(shù)據(jù)模型
關(guān)系數(shù)據(jù)庫已成為目前應(yīng)用最廣泛的數(shù)據(jù)庫系統(tǒng),如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫系統(tǒng)Foxpro、Acess,大型數(shù)據(jù)庫系統(tǒng)Oracle、Informix、Sybase、SQLServer等都是關(guān)系數(shù)據(jù)庫系統(tǒng)。1.5數(shù)據(jù)模型1.關(guān)系模型的基本概念關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一個“二維表框架”組成的集合,每個二維表又可稱為關(guān)系,所以關(guān)系模型是“關(guān)系框架”的集合。關(guān)系模型與層次模型、網(wǎng)狀模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概念之上的。圖1.12給出了教學(xué)數(shù)據(jù)庫的關(guān)系模型及其實(shí)例,包含五個關(guān)系:教師關(guān)系T、學(xué)生關(guān)系S、課程關(guān)系C、選課關(guān)系SC和授課關(guān)系TC,分別對應(yīng)五張表。1.5數(shù)據(jù)模型T(教師表)TNO教師號TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別T1李力男47教授15003000計算機(jī)T2王平女28講師8001200信息T3劉偉男30講師9001200計算機(jī)T4張雪女51教授16003000自動化T5張?zhí)m女39副教授13002000信息1.5數(shù)據(jù)模型S(學(xué)生表)SNO學(xué)號SN姓名SEX性別AGE年齡DEPT系別S1趙亦女17計算機(jī)S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機(jī)S6吳麗女20自動化1.5數(shù)據(jù)模型C(課程表)CNO課程號CN課程名CT課時C1程序設(shè)計60C2微機(jī)原理80C3數(shù)字邏輯60C4數(shù)據(jù)結(jié)構(gòu)80C5數(shù)據(jù)庫60C6編譯原理60C7操作系統(tǒng)601.5數(shù)據(jù)模型SC(選課表)TC(授課表)
SNO學(xué)號CNO課程號SCORE成績
TNO教師號CNO課程號S1C190
T1C1S1C285
T1C4S2C557
T2C5S2C680
T3C1S2C7
T3C5S2C570
T4C2S3C10
T4C3S3C270
T5C5S3C485
T5C7S4C193
S4C285
S4C383
S5C289
(1)關(guān)系(Relation)一個關(guān)系對應(yīng)一張二維表(2)元組(Tuple)表格中的一行,如S表中的一個學(xué)生記錄即為一個元組。(3)屬性(Attribute)表格中的一列,相當(dāng)于記錄中的一個字段,如S表中有五個屬性(學(xué)號,姓名,性別,年齡,系別)。(4)關(guān)鍵字(Key)可唯一標(biāo)識元組的屬性或?qū)傩约?,也稱為關(guān)系鍵或主碼,如S表中學(xué)號可以唯一確定一個學(xué)生,為學(xué)生關(guān)系的主碼。1.5數(shù)據(jù)模型(5)域(Domain)屬性的取值范圍,如年齡的域是(14~40),性別的域是(男,女)。(6)分量每一行對應(yīng)的列的屬性值,即元組中的一個屬性值,如學(xué)號、姓名、年齡等均是一個分量。(7)關(guān)系模式對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,……屬性n),如:學(xué)生(學(xué)號,姓名,性別,年齡,系別)。1.5數(shù)據(jù)模型在關(guān)系模型中,實(shí)體是用關(guān)系來表示的,如:學(xué)生(學(xué)號,姓名,性別,年齡,系別)課程(課程號,課程名,課時)實(shí)體間的關(guān)系也是用關(guān)系來表示的,如:學(xué)生和課程之間的關(guān)系選課關(guān)系(學(xué)號,課程號,成績)1.5數(shù)據(jù)模型2.關(guān)系模型的數(shù)據(jù)操縱與完整性約束數(shù)據(jù)操縱主要包括查詢、插入、刪除和修改數(shù)據(jù),這些操作必須滿足關(guān)系的完整性約束條件,即實(shí)體完整性、參照完整性和用戶定義的完整性。有關(guān)完整性的具體含義將在下一章介紹。在非關(guān)系模型中,操作對象是單個記錄,而關(guān)系模型中的數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系,即若干元組的集合;用戶只要指出“干什么”,而不必詳細(xì)說明“怎么干”,從而大大地提高了數(shù)據(jù)的獨(dú)立性,提高了用戶的生產(chǎn)率。1.5數(shù)據(jù)模型3、關(guān)系模型的優(yōu)缺點(diǎn)關(guān)系模型的優(yōu)點(diǎn)主要有:(1)
與非關(guān)系模型不同,它有較強(qiáng)的數(shù)學(xué)理論根據(jù)。(2)
數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用,不僅用關(guān)系描述實(shí)體,而且用關(guān)系描述實(shí)體間的聯(lián)系。(3)
關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫建立和開發(fā)的工作。1.5數(shù)據(jù)模型本章主要講述:關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系的定義和性質(zhì)關(guān)系數(shù)據(jù)庫的基本概念關(guān)系運(yùn)算2.1關(guān)系模型
關(guān)系模型就是用二維表格結(jié)構(gòu)來表示實(shí)體及實(shí)體之間聯(lián)系的模型。關(guān)系模型是各個關(guān)系的框架的集合,即關(guān)系模型是一些表格的格式,其中包括關(guān)系名、屬性名、關(guān)鍵字等。例如,教學(xué)數(shù)據(jù)庫中教師與課程的關(guān)系模型如圖所示教師關(guān)系T課程關(guān)系C 授課關(guān)系SC圖2.1教師—課程數(shù)據(jù)庫的關(guān)系模型TNO教師號TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別CNO課程號CN課程名CT課時
TNO教師號CNO課程號從各個關(guān)系的框架中,我們可以很容易看出哪兩個關(guān)系之間有聯(lián)系。例如:教師關(guān)系和授課關(guān)系有公共的屬性“教師號”,則表明這兩個關(guān)系有聯(lián)系。而課程關(guān)系和授課關(guān)系有公共的屬性“課程號”,則表明這兩個關(guān)系也有聯(lián)系。至于元組之間的聯(lián)系,則與具體的數(shù)據(jù)有關(guān)。只有在公共屬性上具有相同屬性值的元組之間才有聯(lián)系。2.1關(guān)系模型
由上例可以看出,在一個關(guān)系中可以存放兩類信息:一類是描述實(shí)體本身的信息一類是描述實(shí)體(關(guān)系)之間的聯(lián)系的信息在層次模型和網(wǎng)狀模型中,把有聯(lián)系的實(shí)體(元組)用指針鏈接起來,實(shí)體之間的聯(lián)系是通過指針來實(shí)現(xiàn)的。而關(guān)系模型則采用不同的思想,即用二維表來表示實(shí)體與實(shí)體之間的聯(lián)系,這就是關(guān)系模型的本質(zhì)所在。在建立關(guān)系模型時,只要把的所有的實(shí)體及其屬性用關(guān)系框架來表示,同時把實(shí)體之間的關(guān)系也用關(guān)系框架來表示,就可以得到一個關(guān)系模型。2.1關(guān)系模型
2.2關(guān)系的定義
在關(guān)系模型中,數(shù)據(jù)是以二維表的形式存在的,這個二維表就叫做關(guān)系。關(guān)系理論是以集合代數(shù)理論為基礎(chǔ)的,因此,我們可以用集合代數(shù)給出二維表的“關(guān)系”定義。為了從集合論的角度給出關(guān)系的定義,我們先引入域和笛卡爾積的概念。2.2.1域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合,又稱為值域。(用D表示)域中所包含的值的個數(shù)稱為域的基數(shù)(用m表示)。關(guān)系中用域表示屬性的取值范圍。例如:D1={李力,王平,劉偉} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 其中,D1,D2,D3為域名,分別表示教師關(guān)系中姓名、性別、年齡的集合。域名無排列次序,如D2={男,女}={女,男}2.2關(guān)系的定義2.2.2笛卡爾積(CartesianProduct)
給定一組域D1,D2,…,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為
D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。由定義可以看出,笛卡爾積也是一個集合。其中:1.元素中的每一個di叫做一個分量(Component),來自相應(yīng)的域(di∈Di)2.每一個元素(d1,d2,d3,…,dn)叫做一個n元組(n-tuple),簡稱元組(Tuple)。但元組不是di的集合,元組的每個分量(di)是按序排列的。而集合中的元素是沒有排序次序的.2.2關(guān)系的定義3.若Di(i=1,2,……n)為有限集,Di中的集合元素個數(shù)稱為Di的基數(shù),用mi(i=1,2,……n)表示,則笛卡爾積D1×D2×……×Dn的基數(shù)M(即元素(d1,d2,……dn)的個數(shù))為所有域的基數(shù)的累乘之積,即
M=例如:上述表示教師關(guān)系中姓名、性別兩個域的笛卡爾積為:D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)}其基數(shù)M=m1×m2=3*2=6元組的個數(shù)為62.2關(guān)系的定義4.笛卡爾積可用二維表的形式表示。例如,上述的6個元組可表示成表2.1。表2.1D1和D2的笛卡爾積由上例可以看出,笛卡爾積實(shí)際是一個二維表,表的框架由域構(gòu)成,表的任意一行就是一個元組,表中的每一列來自同一域,如第一個分量來自D1,第二個分量來自D2。姓名性別李力男李力女王平男王平女劉偉男劉偉女2.2關(guān)系的定義2.2.3關(guān)系(Relation)笛卡爾積D1×D2×…×Dn的任一子集稱為定義在域D1,D2,…Dn上的n元關(guān)系(Relation),可用R(D1,D2……Dn)表示如上例D1×D2笛卡爾積的子集可以構(gòu)成教師關(guān)系T1,如下表:姓名性別李力男王平女劉偉男2.2關(guān)系的定義幾點(diǎn)說明:1.
R為關(guān)系名,n稱為關(guān)系的目或度(Degree)。當(dāng)n=1時,稱為單元關(guān)系。當(dāng)n=2時,稱為二元關(guān)系?!?dāng)n=n時,稱為n元關(guān)系。2.2關(guān)系的定義2.該子集中的元素是關(guān)系中的元組,用r表示,關(guān)系中元組個數(shù)是關(guān)系的基數(shù)。如(李力,男),(王平,女),(劉偉,男)為三個元組,關(guān)系T的基數(shù)為3。如果一個關(guān)系的元組個數(shù)是無限的,則稱為無限關(guān)系;如果一個關(guān)系的元組個數(shù)是有限的,則稱為有限關(guān)系。3.
同樣可以把關(guān)系看成一個二維表。其中,(1)表的框架由域Di(i=1,2,……n)構(gòu)成;(2)表的任意一行對應(yīng)一個元組;(3)表的每一列來自同一域;(4)域可以相同,為了加以區(qū)別,每列起一個名字,稱為屬性,n目關(guān)系有n個屬性,屬性的名字唯一,屬性的取值范圍Di(i=1,2,…,n)稱為值域(5)具有相同關(guān)系框架的關(guān)系成為同類關(guān)系, 例如,有另一個關(guān)系T2,如表2.3所示:姓名性別張雪女張?zhí)m女2.2關(guān)系的定義4.數(shù)學(xué)上關(guān)系是笛卡爾積的任意子集,但在實(shí)際應(yīng)用中關(guān)系是笛卡爾積中所取的有意義的子集。例如在表2.1中選取一個子集構(gòu)成如下關(guān)系,顯然不符合實(shí)際情況姓名性別李力男李力女在關(guān)系模型中,關(guān)系可進(jìn)一步定義為:定義在域D1,D2,……Dn(不要求完全相異)上的關(guān)系由關(guān)系頭(Heading)和關(guān)系體(Body)組成。關(guān)系頭:由屬性名A1,A2,…,An的集合組成,每個屬性Ai正好對應(yīng)一個域Di(i=1,2,…,n),關(guān)系頭,也稱關(guān)系框架,相對固定,是關(guān)系的數(shù)據(jù)結(jié)構(gòu)的描述。關(guān)系體:是指關(guān)系結(jié)構(gòu)中的內(nèi)容或者數(shù)據(jù),并非固定不變,它隨元組的建立、刪除或修改而變化。2.2關(guān)系的定義
嚴(yán)格地說,關(guān)系是種規(guī)范化了的二維表中行的集合,為了使相應(yīng)的數(shù)據(jù)操作簡化,在關(guān)系模型中,對關(guān)系作了種種限制,關(guān)系具有如下特性:1.關(guān)系中不允許出現(xiàn)相同的元組。因?yàn)閿?shù)學(xué)上集合中沒有相同的元素,而關(guān)系是元組的集合,所以作為集合元素的元組應(yīng)該是唯一的。2.關(guān)系中元組的順序(即行序)是無關(guān)緊要的,在一個關(guān)系中可以任意交換兩行的次序。因?yàn)榧现械脑厥菬o序的,所以作為集合元素的元組也是無序的。根據(jù)關(guān)系的這個性質(zhì),可以改變元組的順序使其具有某種排序,然后按照順序查詢數(shù)據(jù),可以提高查詢速度。2.3關(guān)系的性質(zhì)3.關(guān)系中屬性的順序是無關(guān)緊要的,即列的順序可以任意交換。交換時,應(yīng)連同屬性名一起交換,否則將得到不同的關(guān)系。例如:關(guān)系T1作如下交換時,無任何影響,如下表所示:性別姓名男李力女王平男劉偉2.3關(guān)系的性質(zhì)而作如下交換時,不交換屬性名,只交換屬性列中的值,則得到不同的關(guān)系,如下表:
姓名性別男李力女王平男劉偉2.3關(guān)系的性質(zhì)4.同一屬性名下的各個屬性值必須來自同一個域,是同一類型的數(shù)據(jù)。5.關(guān)系中各個屬性必須有不同的名字,不同的屬性可來自同一個域,即它們的分量可以取自同一個域。例如,有如下表中關(guān)系,職業(yè)與兼職是兩個不同的屬性,但它們?nèi)∽酝粋€域職業(yè)={教師,工人,輔導(dǎo)員}。
姓名職業(yè)兼職張強(qiáng)教師輔導(dǎo)員王麗工人教師劉寧教師輔導(dǎo)員2.3關(guān)系的性質(zhì)6.關(guān)系中每一分量必須是不可分的數(shù)據(jù)項,或者說所有屬性值都是原子的,即是一個確定的值,而不是值的集合。屬性值可以為空值,表示“未知”或“不可使用”,即不可“表中有表”。滿足此條件的關(guān)系稱為規(guī)范化關(guān)系,否則稱為非規(guī)范化關(guān)系。例如,在表2.8中,籍貫含有省、市/縣兩項,出現(xiàn)了“表中有表”的現(xiàn)象,則為非規(guī)范化關(guān)系,而把籍貫分成省、市/縣兩列,將其規(guī)范化,如表2.9所示。 表2.8表2.9姓名籍貫
姓名省市/縣省市/縣
張強(qiáng)吉林長春
張強(qiáng)吉林長春王麗山西大同
王麗山西大同2.3關(guān)系的性質(zhì)2.4.1候選鍵與關(guān)系鍵能唯一標(biāo)識關(guān)系中元組的屬性或?qū)傩约?,則稱該屬性或?qū)傩约癁楹蜻x鍵(CandidateKey),也稱候選關(guān)鍵字或候選碼。如:“學(xué)生關(guān)系”中的學(xué)號能唯一標(biāo)識每一個學(xué)生,則屬性學(xué)號是學(xué)生關(guān)系的候選鍵。在“選課關(guān)系”中,只有屬性的組合“學(xué)號+課程號”才能唯一地區(qū)分每一條選課記錄,則屬性集“學(xué)號+課程號”是選課關(guān)系的候選鍵。2.4關(guān)系的鍵
下面給出候選鍵的形式化定義:設(shè)關(guān)系R有屬性A1,A2,……An,其屬性集K=(Ai,Aj,……Ak),當(dāng)且僅當(dāng)滿足下列條件時,K被稱為候選鍵:
1.唯一性(Uniqueness):關(guān)系R的任意兩個不同元組,其屬性集K的值是不同的。
2.最小性(Minimally):組成關(guān)系鍵的屬性集(Ai,Aj,……Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質(zhì)例如:“學(xué)生關(guān)系”中的每個學(xué)生的學(xué)號是唯一的,“選課關(guān)系”中“學(xué)號+課程號”的組合也是唯一的。對于屬性集“學(xué)號+課程號”去掉任一屬性,都無法唯一標(biāo)識選課記錄。2.4關(guān)系的鍵
如果一個關(guān)系中有多個候選鍵,可以從中選擇一個作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主關(guān)系鍵(PrimaryKey),
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度物聯(lián)網(wǎng)解決方案代理授權(quán)銷售合同范本4篇
- 2024銅門制安工程招投標(biāo)合同
- 2025年度校園文化節(jié)影視展贊助合同3篇
- 2025年歷史建筑圍墻修繕施工合同4篇
- 2025年度廚房設(shè)備翻新與性能提升合同3篇
- 2025年度智能大廈腳手架設(shè)計與施工一體化合同4篇
- 2025年cfg樁基施工綠色施工技術(shù)交流與合作合同3篇
- 2024銷售委托合同范本
- 2025年度出租車駕駛員權(quán)益保障合同3篇
- 2025年度新型冷鏈物流承包運(yùn)輸合同4篇
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護(hù)理風(fēng)險防控PPT
- 充電樁采購安裝投標(biāo)方案(技術(shù)方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報告
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 保險行業(yè)加強(qiáng)清廉文化建設(shè)
- Hive數(shù)據(jù)倉庫技術(shù)與應(yīng)用
- 數(shù)字的秘密生活:最有趣的50個數(shù)學(xué)故事
評論
0/150
提交評論