




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章緒論
1.1資料庫系統(tǒng)概述
1.1.1數(shù)據(jù),資料庫,資料庫管理系統(tǒng),資料庫系統(tǒng)1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展1.1.3資料庫系統(tǒng)的特點
返回本章首頁1.1.1數(shù)據(jù),資料庫,資料庫管理系統(tǒng),資料庫系統(tǒng)數(shù)據(jù)資料庫資料庫管理系統(tǒng)資料庫系統(tǒng)返回本節(jié)首頁定義
數(shù)據(jù)是用來記錄資訊的可識別的符號,是資訊的具體表現(xiàn)形式。表現(xiàn)形式
數(shù)據(jù)是資料庫中存儲的基本對象。按廣義的理解來說,數(shù)據(jù)的種類有很多,如文字、圖像、聲音、等等都可以轉(zhuǎn)化為電腦可以識別的標(biāo)識,可以以數(shù)位化後的二進(jìn)位形式存入電腦。在日常生活中人們可以對事務(wù)直接用自然語言描述。在電腦中存儲和處理時,就要抽出對這些事物感興趣的特徵組成一個記錄來描述。與資訊的聯(lián)繫
數(shù)據(jù)解釋的含義稱為數(shù)據(jù)的語義(即資訊),數(shù)據(jù)與其語義是不可分的??梢赃@樣認(rèn)為:數(shù)據(jù)是資訊的符號表示或載體,資訊則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。數(shù)據(jù)(Data)返回本節(jié)首頁資料庫(DataBase,簡稱DB)資料庫
從字面意思來說就是存放數(shù)據(jù)的倉庫。具體而言就是長期存放在電腦內(nèi)的有組織的可共用的數(shù)據(jù)集合,可供多用戶共用,資料庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有盡可能小的冗餘度和較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)張性。資料庫具有兩個比較突出的特點
①把在特定的環(huán)境中與某應(yīng)用程式相關(guān)的數(shù)據(jù)及其聯(lián)繫集中在一塊並按照一定的結(jié)構(gòu)形式進(jìn)行存儲,即集成性。
②資料庫中的數(shù)據(jù)能被多個應(yīng)用程式的用戶所使用,即共用性。返回本節(jié)首頁資料庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)
資料庫管理系統(tǒng)是資料庫系統(tǒng)的核心組成部分,是對數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟體,用戶在資料庫系統(tǒng)中的一些操作都是由資料庫管理系統(tǒng)來實現(xiàn)的。功能:數(shù)據(jù)定義
DBMS提供數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL),用戶通過它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象(包括表、視圖、索引、存儲過程等)進(jìn)行定義。定義相關(guān)的資料庫系統(tǒng)的結(jié)構(gòu)和有關(guān)的約束條件。數(shù)據(jù)操縱
DBMS提供數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML),通過DML操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的一些基本操作,如查詢,插入,刪除和修改等等。其中,國際標(biāo)準(zhǔn)資料庫操作語言——SQL語言就是DML的一種。
返回本節(jié)首頁資料庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)資料庫的運(yùn)行管理這一功能是資料庫管理系統(tǒng)的核心所在。DBMS通過資料庫在建立、運(yùn)用和維護(hù)時統(tǒng)一管理和控制,以保證數(shù)據(jù)安全、正確、有效的正常運(yùn)行。DBMS主要通過數(shù)據(jù)的安全性控制、完整性控制、多用戶應(yīng)用環(huán)境的併發(fā)性控制和數(shù)據(jù)庫數(shù)據(jù)的系統(tǒng)備份與恢復(fù)四個方面來實現(xiàn)對數(shù)據(jù)庫的統(tǒng)一控制功能的。資料庫的建立和維護(hù)功能
資料庫的建立和維護(hù)功能包括資料庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能、資料庫的轉(zhuǎn)儲、恢復(fù)功能、重組織功能和性能監(jiān)視、分析功能等。
返回本節(jié)首頁資料庫系統(tǒng)(DataBaseSystem,簡稱DBS)
資料庫系統(tǒng)是指在電腦系統(tǒng)中引入資料庫後的系統(tǒng)構(gòu)成,主要有數(shù)據(jù)庫(及相關(guān)硬體)、資料庫管理系統(tǒng)(及開發(fā)工具)(及相關(guān)軟體)、應(yīng)用系統(tǒng)、資料庫管理員和用戶這幾部分。其中,在資料庫的建立、使用和維護(hù)的過程要有專門的人員來完成,這些人被稱為資料庫管理員(DataBaseAdministrator,簡稱DBA)。資料庫系統(tǒng)可以用圖1.1表示。資料庫系統(tǒng)在整個電腦系統(tǒng)中的地位如圖1.2所示。返回本節(jié)首頁圖1.1資料庫系統(tǒng)返回本節(jié)首頁
圖1.2資料庫在電腦系統(tǒng)中的地位
返回本節(jié)首頁1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展
談數(shù)據(jù)管理技術(shù),先要講到數(shù)據(jù)處理,所謂數(shù)據(jù)處理是指對各種數(shù)據(jù)進(jìn)行收集、存儲、加工和傳播的一系列活動的總和。數(shù)據(jù)管理則是數(shù)據(jù)處理的中心問題,為此,數(shù)據(jù)管理是指對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲、檢索和維護(hù)的管理活動總稱。就用電腦來管理數(shù)據(jù)而言,數(shù)據(jù)管理是指數(shù)據(jù)在電腦內(nèi)的一系列活動的總和。數(shù)據(jù)管理技術(shù)已經(jīng)曆了人工管理、檔系統(tǒng)及資料庫系統(tǒng)三個發(fā)展階段。這三個階段的特點及其比較如表1.1所示。人工管理階段檔系統(tǒng)階段資料庫系統(tǒng)階段返回本節(jié)首頁表1.1數(shù)據(jù)管理三個階段的比較人工管理階段檔系統(tǒng)階段資料庫系統(tǒng)階段應(yīng)用背景科學(xué)計算科學(xué)計算、管理大規(guī)模管理背硬體背景無直接存取存儲設(shè)備磁片、磁鼓大容量磁片景軟體背景沒有操作系統(tǒng)有檔系統(tǒng)有數(shù)據(jù)庫管理系統(tǒng)處理方式批處理聯(lián)機(jī)即時處理、批處理聯(lián)機(jī)即時處理、分佈處理、批處理數(shù)據(jù)的管理者用戶(程式員)檔系統(tǒng)資料庫管理系統(tǒng)數(shù)據(jù)面向的對象某一應(yīng)用程式某一應(yīng)用現(xiàn)實世界特數(shù)據(jù)的共用程度無共用,冗餘度極大共用性差,冗餘度大共用性高,冗餘度小數(shù)據(jù)的獨(dú)立性不獨(dú)立,完全依賴於程式獨(dú)立性差具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性點數(shù)據(jù)的結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu)整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述數(shù)據(jù)控制能力應(yīng)用程式自己控制應(yīng)用程式自己控制由資料庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、併發(fā)控制和恢復(fù)能力返回本節(jié)首頁
人工管理階段
20世紀(jì)50年代中期以前,電腦主要用於科學(xué)計算。硬體設(shè)施方面:外存只有紙帶、卡片、磁帶,沒有磁片等直接存取設(shè)備;軟體方面:沒有操作系統(tǒng)和管理數(shù)據(jù)的軟體;數(shù)據(jù)處理方式是批處理。人工管理數(shù)據(jù)具有以下幾個特點:數(shù)據(jù)不保存應(yīng)用程式管理數(shù)據(jù)數(shù)據(jù)不共用
數(shù)據(jù)是面向應(yīng)用的,一組數(shù)據(jù)只能對應(yīng)一個程式。如果多個應(yīng)用程式涉及某些相同的數(shù)據(jù),則由於必須各自進(jìn)行定義,無法進(jìn)行數(shù)據(jù)的參照,因此程式間有大量的冗餘數(shù)據(jù)。
數(shù)據(jù)不具有獨(dú)立性
數(shù)據(jù)的獨(dú)立性包括了數(shù)據(jù)的邏輯獨(dú)立性和數(shù)據(jù)的物理獨(dú)立性。當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化時,必須對應(yīng)用程式做相應(yīng)的修改。在人工管理階段,程式與數(shù)據(jù)之間的對應(yīng)關(guān)係可用圖1.3表示。返回本節(jié)首頁圖1.3人工管理階段應(yīng)用程式與數(shù)據(jù)之間的對應(yīng)關(guān)係返回本節(jié)首頁
檔系統(tǒng)階段
20世紀(jì)50年代後期到60年代中期,這時電腦已大量用於數(shù)據(jù)的管理。硬體方面:有了磁片、磁鼓等直接存取存儲設(shè)備;軟體方面:操作系統(tǒng)中已經(jīng)有了專門的管理軟體,一般稱為檔系統(tǒng);處理方式有批處理、聯(lián)機(jī)即時處理。特點如下:數(shù)據(jù)長期保存檔系統(tǒng)管理數(shù)據(jù)數(shù)據(jù)共用性差,冗餘度大數(shù)據(jù)獨(dú)立性差在檔系統(tǒng)階段,程式與數(shù)據(jù)之間的關(guān)係如圖1.4所示。返回本節(jié)首頁圖1.4檔系統(tǒng)階段應(yīng)用程式與數(shù)據(jù)之間的對應(yīng)關(guān)係返回本節(jié)首頁資料庫系統(tǒng)階段
20世紀(jì)60年代後期以來,電腦用於管理的規(guī)模更為龐大,數(shù)據(jù)量急劇增長,硬體已有大容量磁片,硬體價格下降;軟體則價格上升,使得編制、維護(hù)軟體及應(yīng)用程式成本相對增加;處理方式上,聯(lián)機(jī)即時處理要求更多,分佈處理也在考慮之中。介於這種情況,檔系統(tǒng)的數(shù)據(jù)管理滿足不了應(yīng)用的需求,為解決共用數(shù)據(jù)的需求,隨之從檔系統(tǒng)中分離出了專門軟體系統(tǒng)——資料庫管理系統(tǒng),用來統(tǒng)一管理數(shù)據(jù)。資料庫系統(tǒng)階段應(yīng)用程式與數(shù)據(jù)之間的對應(yīng)關(guān)係可用圖1.5表示。返回本節(jié)首頁圖1.5資料庫系統(tǒng)階段應(yīng)用程式與數(shù)據(jù)之間的對應(yīng)關(guān)係返回本節(jié)首頁結(jié)論
綜上所述,如圖1.6所示,隨著數(shù)據(jù)管理技術(shù)的不斷發(fā)展,應(yīng)用程式不斷從底層的、低級的、物理的數(shù)據(jù)管理工作中解脫出來,能獨(dú)立的、較高邏輯級別地輕鬆處理資料庫數(shù)據(jù)。從而能極大地提高了應(yīng)用軟體的生產(chǎn)力。目前關(guān)係資料庫系統(tǒng)已逐漸淘汰了網(wǎng)狀資料庫和層次資料庫,成為當(dāng)今最流行的商用資料庫系統(tǒng)。返回本節(jié)首頁
1.1.3資料庫系統(tǒng)的特點
主要特點:數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)的共用性高,冗餘度低,易擴(kuò)充數(shù)據(jù)獨(dú)立性高數(shù)據(jù)由DBMS統(tǒng)一管理和控制結(jié)論返回本節(jié)首頁數(shù)據(jù)結(jié)構(gòu)化
數(shù)據(jù)結(jié)構(gòu)化是資料庫系統(tǒng)與檔系統(tǒng)的根本區(qū)別。在檔系統(tǒng)中,相互獨(dú)立的檔的記錄內(nèi)部是有結(jié)構(gòu)的。傳統(tǒng)檔的最簡單形式是等長同格式的記錄集合。例如:一個教師人事記錄檔。
每個記錄都有如圖1.7的記錄格式:圖1.7教師記錄格式示例圖1.8(a)主記錄——詳細(xì)記錄格式示例圖1.8(b)教師王名記錄示例返回本節(jié)首頁數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁圖1.7教師記錄格式示例圖1.8(a)主記錄——詳細(xì)記錄格式示例圖1.8(b)教師王名記錄示例數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁圖1.9教師數(shù)據(jù)組織這樣就可以節(jié)省許多存儲空間,靈活性也相對提高。但這樣建立的檔還有局限性,因為這種結(jié)構(gòu)上的靈活性只是針對一個應(yīng)用而言。而圖1.9教師數(shù)據(jù)組織,這種數(shù)據(jù)組織方式為各部分的管理提供了必要的記錄,使數(shù)據(jù)結(jié)構(gòu)化了。這就要求在描述數(shù)據(jù)時不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)繫。在檔系統(tǒng)中,儘管其記錄內(nèi)已經(jīng)有了某些結(jié)構(gòu),但記錄之間沒有聯(lián)繫。數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁資料庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,是資料庫的主要特徵之一,也是資料庫系統(tǒng)與檔系統(tǒng)的本質(zhì)區(qū)別。在資料庫系統(tǒng)中,數(shù)據(jù)不再針對某一應(yīng)用,而是面向全組織,是整體結(jié)構(gòu)化的。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且存取數(shù)據(jù)的方式也是很靈活的,可以存取資料庫中的某一個資料項目(或字段)、一組資料項目、一個記錄或是一組記錄。而在檔系統(tǒng)中,數(shù)據(jù)的最小單位是記錄(一次一記錄的讀寫),粒度不能細(xì)到資料項目。數(shù)據(jù)結(jié)構(gòu)化返回本節(jié)首頁數(shù)據(jù)的共用性高,冗餘度低,易擴(kuò)充資料庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此數(shù)據(jù)可以被多個用戶、多個應(yīng)用共用使用。數(shù)據(jù)共用可以大大的減少數(shù)據(jù)冗餘,節(jié)約存儲空間。數(shù)據(jù)共用還能夠避免數(shù)據(jù)之間的不相容性與不一致性。所謂數(shù)據(jù)的不一致性是指同一數(shù)據(jù)不同拷貝的值不一樣。採用人工管理或檔系統(tǒng)管理時,由於數(shù)據(jù)被重複存儲,當(dāng)不同的應(yīng)用使用和修改不同的拷貝時就容易造成數(shù)據(jù)的不一致。在資料庫中數(shù)據(jù)共用,減少了由於數(shù)據(jù)冗餘造成的不一致現(xiàn)象。返回本節(jié)首頁數(shù)據(jù)的共用性高,冗餘度低,易擴(kuò)充
由於數(shù)據(jù)面向整個系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個應(yīng)用共用使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)系統(tǒng)彈性大,易於擴(kuò)充,可以適應(yīng)各種用戶的要求??梢匀≌w數(shù)據(jù)的各種子集用於不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時,只要重新選取不同的子集或加上一部分?jǐn)?shù)據(jù)便可以滿足新的需求。返回本節(jié)首頁
數(shù)據(jù)獨(dú)立性高
數(shù)據(jù)獨(dú)立性包括了數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性兩方面。物理獨(dú)立性是指用戶的應(yīng)用程式與存儲在磁片上的資料庫中數(shù)據(jù)是相互獨(dú)立的。也就是說,數(shù)據(jù)在磁片上的資料庫中怎樣存儲是由DBMS管理的,用戶程式不需要瞭解,應(yīng)用程式要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變時,應(yīng)用程式不用改變。邏輯獨(dú)立性是指用戶的應(yīng)用程式與資料庫的整體邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程式也可以不需修改的。返回本節(jié)首頁
數(shù)據(jù)獨(dú)立性高
數(shù)據(jù)獨(dú)立性是由DBMS的三級模式結(jié)構(gòu)與二級映象功能來保證的,將在後面介紹。數(shù)據(jù)與程式的獨(dú)立,把數(shù)據(jù)的定義從程式中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),從而簡化了應(yīng)用程式的編制,大大減少了應(yīng)用程式的維護(hù)和修改。返回本節(jié)首頁數(shù)據(jù)由DBMS統(tǒng)一管理和控制資料庫是長期在電腦內(nèi)有組織的大量的可共用的數(shù)據(jù)集合
,資料庫的共用是併發(fā)的共用,即多個用戶可以同時存取資料庫中的數(shù)據(jù)甚至可以同時存取資料庫中的同一塊數(shù)據(jù)。
DBMS提供以下幾方面的數(shù)據(jù)控制功能:(1)數(shù)據(jù)的安全性控制(2)數(shù)據(jù)的完整性約束(3)併發(fā)控制(4)資料庫恢復(fù)
返回本節(jié)首頁結(jié)論目前,資料庫已經(jīng)成為現(xiàn)代資訊系統(tǒng)的不可分離的重要組成部分。
資料庫系統(tǒng)的出現(xiàn)使資訊系統(tǒng)從以加工數(shù)據(jù)的程式為中心轉(zhuǎn)向圍繞共用的資料庫為中心的新階段。這樣既便於數(shù)據(jù)的集中管理,又有利於應(yīng)用程式的研製和維護(hù),提高了數(shù)據(jù)的利用率和相容性,提高了決策的可靠性。資料庫技術(shù)是電腦領(lǐng)域中發(fā)展最快的技術(shù)之一,資料庫技術(shù)的發(fā)展是沿著數(shù)據(jù)模型的主線展開的。返回本節(jié)首頁1.2數(shù)據(jù)模型
模型是現(xiàn)實世界特徵的模擬和抽象。數(shù)據(jù)模型也是一種模型,它能實現(xiàn)對現(xiàn)實世界數(shù)據(jù)特徵的抽象。數(shù)據(jù)模型應(yīng)滿足三方面的要求:比較真實地模擬現(xiàn)實世界;容易為人所理解;便於在電腦上實現(xiàn)。根據(jù)模型應(yīng)用的不同目的,分為兩類。第一類模型是概念模型,也稱資訊模型。一般應(yīng)具有以下能力:(1)具有對現(xiàn)實世界的抽象與表達(dá)能力(2)完整、精確的語義表達(dá)力(3)易於理解和修改。(4)易於向DBMS所支持的數(shù)據(jù)模型轉(zhuǎn)換
返回本章首頁1.2數(shù)據(jù)模型
另一類模型是數(shù)據(jù)模型,包括層次模型、網(wǎng)狀模型、關(guān)係模型等,它是按電腦系統(tǒng)對數(shù)據(jù)建模,主要用於DBMS的實現(xiàn)。數(shù)據(jù)模型是資料庫系統(tǒng)的核心和基礎(chǔ),各種機(jī)器上實現(xiàn)的DBMS軟體都是基於某種數(shù)據(jù)模型的。返回本章首頁為了把現(xiàn)實世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型,人們常常首先將現(xiàn)實世界抽象為資訊世界,然後將資訊世界轉(zhuǎn)換(或數(shù)據(jù)化)為機(jī)器世界。這一過程如圖1.11所示。數(shù)據(jù)模型的組成要素1.2數(shù)據(jù)模型返回本章首頁1.2.1數(shù)據(jù)模型的組成要素數(shù)據(jù)模型描述了系統(tǒng)的三個方面:靜態(tài)特性、動態(tài)特性和完整性約束條件。一般由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成,是嚴(yán)格定義的一組概念的集合。返回本節(jié)首頁1.2.1數(shù)據(jù)模型的組成要素
一、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用於描述系統(tǒng)的靜態(tài)特性,是所研究的對象類型的集合。二、數(shù)據(jù)操作數(shù)據(jù)操作用於描述系統(tǒng)的動態(tài)特性,是指對數(shù)據(jù)庫中各種對象及對象的實例允許執(zhí)行的操作的集合。三、數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的基本的通用的完整性約束條件。數(shù)據(jù)模型還應(yīng)該提供自定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。返回本節(jié)首頁圖1.12數(shù)據(jù)模型的三要素示意圖
要說明的是圖1.11是簡單化、邏輯示意的圖,數(shù)據(jù)模型的三要素在資料庫中都是嚴(yán)格定義的一組概念的集合。在關(guān)係資料庫可以簡單理解為:數(shù)據(jù)結(jié)構(gòu)是表結(jié)構(gòu)定義及其它資料庫對象定義的命令集;數(shù)據(jù)操作是資料庫管理系統(tǒng)提供的數(shù)據(jù)操作(操作命令、語法規(guī)定、參數(shù)說明等)命令集;數(shù)據(jù)完整性約束是各關(guān)係表約束的定義及操作約束規(guī)則等的集合。1.2.2概念模型概念模型是現(xiàn)實世界到機(jī)器世界的一個中間層次。資訊世界中的基本概念概念模型的表示層次模型概述返回本節(jié)首頁資訊世界中的基本概念主要有:實體:實體是指客觀存在並可以相互區(qū)別的事物。屬性:屬性是指實體所具有的某一特性。碼:碼是指唯一標(biāo)識實體的屬性集。域:域是指屬性的取值範(fàn)圍,具有相同的數(shù)據(jù)類型的數(shù)據(jù)集合。實體型:具有相同屬性的實體必然具有共同的特徵和性質(zhì)。實體集:實體集是指同型實體的集合。聯(lián)繫:在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有關(guān)聯(lián)的。兩個實體型之間的聯(lián)繫有以下三種:一對一聯(lián)繫;一對多聯(lián)繫;多對多聯(lián)繫。兩個實體型之間的三類聯(lián)繫可以用如圖1.12、1.13所示來表示。返回本節(jié)首頁圖1.13兩個實體型之間的三類聯(lián)繫示意圖返回本節(jié)首頁圖1.14兩個實體型之間的三類聯(lián)繫返回本節(jié)首頁
單個或多個實體型之間也有類似於兩個實體型之間的三種聯(lián)繫類型。例如,對於教師、課程與參考書三個實體型,如果一門課程可以有若干個教師講授,使用若干本參考書,而每個教師只講授一門課程,每一本參考書只供一門課程使用,則課程與教師、參考書三者間的聯(lián)繫是一對多的,如圖1.15(a)所示。要注意的是三個實體型之間多對多聯(lián)繫與三個實體型兩兩之間的多對多聯(lián)繫(共有三個)的語義及E-R圖是不同的。資訊世界中的基本概念返回本節(jié)首頁圖1.15兩個實體型之間的三類聯(lián)繫返回本節(jié)首頁
同一個實體型對應(yīng)的實體集內(nèi)的各實體之間也可以存在一對一、一對多、多對多的聯(lián)繫的(可以把一個實體集邏輯上看成兩個與原來一樣的實體集來理解)。例如:同學(xué)實體集內(nèi)部同學(xué)與同學(xué)之間老朋友的關(guān)係可能是多對多的(如圖1.16所示),這是因為每位同學(xué)的老朋友往往有多位。資訊世界中的基本概念返回本節(jié)首頁圖1.16一個實體型實體之間的多對多聯(lián)繫返回本節(jié)首頁概念模型的表示最常用的是實體—聯(lián)繫方法。該方法用E-R圖來描述現(xiàn)實世界的概念模型。E-R圖提供了表示實體型、屬性和聯(lián)繫的方法。實體型:用矩形表示,矩形框內(nèi)寫明實體名。屬性:用橢圓表示,橢圓形內(nèi)寫明屬性名。並用無向邊將其與相應(yīng)的實體連接起來。聯(lián)繫:用菱形表示,菱形框內(nèi)寫明聯(lián)繫名,並用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。返回本節(jié)首頁如圖1.17所示就是一個班級、學(xué)生的概念模型(用E-R圖表示),班級實體型與學(xué)生實體型之間很顯然是一對多關(guān)係。應(yīng)用時應(yīng)針對某實際情況,試著設(shè)計反映實際內(nèi)容的實體及實體聯(lián)繫的E-R圖。概念模型的表示返回本節(jié)首頁層次模型概述
在資料庫領(lǐng)域中,有四種最常用的數(shù)據(jù)模型,它們是:被稱為非關(guān)係模型的層次模型、網(wǎng)狀模型、關(guān)係模型和麵向?qū)ο竽P汀1菊潞喴榻B層次模型、網(wǎng)狀模型、關(guān)係模型。層次模型的數(shù)據(jù)結(jié)構(gòu)多對多聯(lián)繫在層次模型中的表示層次模型的數(shù)據(jù)操縱與約束條件層次模型的存儲結(jié)構(gòu)層次模型的優(yōu)缺點返回本節(jié)首頁層次模型的數(shù)據(jù)結(jié)構(gòu)
在資料庫中,對滿足以下兩個條件的數(shù)據(jù)模型稱為層次模型。(1)有且僅有一個節(jié)點無雙親,這個節(jié)點稱為“根節(jié)點”。(2)其他節(jié)點有且僅有一個雙親。一個層次模型在理論上可以包含任意有限個記錄型和字段,但任何實際的系統(tǒng)都會因為存儲容量或?qū)崿F(xiàn)複雜度而限制層次模型中包含的記錄型個數(shù)和字段的個數(shù)。若用圖來表示,層次模型是一棵倒立的樹。節(jié)點層次(Level)從根開始定義,根為第一層,根的子女稱為第二層,根稱為其子女的雙親,同一雙親的子女稱為兄弟。返回本節(jié)首頁層次模型的數(shù)據(jù)結(jié)構(gòu)
圖1.18
給出了一個系的層次模型。層次模型對具有一對多的層次關(guān)係的描述非常自然、直觀、容易理解,這是層次資料庫的突出優(yōu)點。
圖1.19
是圖1.18的具體化,成為一個教師-學(xué)生層次資料庫。
圖1.20
是圖1.19數(shù)據(jù)模型的一個值。返回本節(jié)首頁
圖1.18一個層次模型的示例
返回本節(jié)首頁
圖1.19教師-學(xué)生資料庫模型
返回本節(jié)首頁
圖1.20教師-學(xué)生資料庫的一個值返回本節(jié)首頁層次模型的存儲結(jié)構(gòu)
層次資料庫中不僅要存儲數(shù)據(jù)本身,還要存儲數(shù)據(jù)之間的層次聯(lián)繫。方法:(1)鄰接法按照層次樹前序的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來體現(xiàn)層次順序。例如對於圖1.21(a)的資料庫,按鄰接法存放圖1.21(b)中以記錄A1為首的層次記錄實例集,則應(yīng)如圖1.22所示存放。返回本節(jié)首頁層次模型的存儲結(jié)構(gòu)
(2)鏈接法用指引元來反映數(shù)據(jù)之間的層次聯(lián)繫。則如圖1.23所示,其中圖1.23(a)每個記錄設(shè)兩類指引元,分別指向最左邊的子女和最近的兄弟,這種鏈接方法稱為子女-兄弟鏈接法;圖1.23(b)按樹的前序順序鏈接各記錄值,這種鏈接方法稱為層次序列鏈接法。返回本節(jié)首頁層次模型的優(yōu)缺點
優(yōu)點:
(1)層次模型本身比較簡單
(2)實體間聯(lián)繫是固定的(3)良好的完整性支持
缺點
:
(1)層次模型表示非層次性的方法很笨拙
(2)對插入和刪除操作的限制太多
(3)查詢子女結(jié)點必須通過雙親結(jié)點,缺乏快速定位機(jī)制。
(4)由於結(jié)構(gòu)嚴(yán)密,層次命令趨於程式化。返回本節(jié)首頁1.2.4網(wǎng)狀模型
網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTG系統(tǒng),也稱CODASYL系統(tǒng),它是20世紀(jì)70年代數(shù)據(jù)系統(tǒng)語言研究會CODASYL(ConferenceOnDataSystemsLanguage)下屬的資料庫任務(wù)組(DataBaseTaskGroup,簡稱DBTG)提出的一個系統(tǒng)方案。圖1.23給出了一個抽象的簡單的網(wǎng)狀模型。
返回本節(jié)首頁圖1.24簡單的網(wǎng)狀模型
返回本節(jié)首頁一、網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)
在資料庫中,把滿足以下兩個條件的基本層次聯(lián)繫集合稱為網(wǎng)狀模型:(1)
允許一個以上的結(jié)點無雙親;(2)
一個結(jié)點可以有多於一個的雙親。它去掉了層次模型的兩個限制,此外它還許兩個結(jié)點之間有多種聯(lián)繫。因此網(wǎng)狀模型可以更直接地去描述現(xiàn)實世界。以教師授課為例,看看網(wǎng)狀資料庫模式是怎樣組織數(shù)據(jù)的。
返回本節(jié)首頁按照常規(guī)語義,一個教師可以講授若干門課程,一門課程可以由多個教師講授,因此教師與課程之間是多對多聯(lián)繫。這裏引進(jìn)一個教師授課的連結(jié)記錄,它由兩個數(shù)據(jù)項組成,即教師號、課程號,表示某個教師講授一門課程。圖1.25為教師授課資料庫的網(wǎng)狀資料庫模式。
一、網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)
返回本節(jié)首頁圖1.25為教師授課資料庫的網(wǎng)狀資料庫模式。
返回本節(jié)首頁二、網(wǎng)狀模型的數(shù)據(jù)操作與完整性約束
DBTG在模式DDL中提供了定義DBTG資料庫完整性的若干概念和語句,主要有:
(1)支持記錄碼的概念,碼即唯一標(biāo)識記錄的資料項目的集合。(2)保證一個聯(lián)繫中雙親記錄和子女記錄之間是一對多的聯(lián)繫。(3)可以支持雙親記錄和子女記錄之間某些約束條件。
返回本節(jié)首頁三、網(wǎng)狀模型的存儲結(jié)構(gòu)
常用的方法是鏈接法,包括單向鏈接、雙向鏈接、環(huán)狀鏈接、向首鏈接等,此外其他實現(xiàn)方法,如指引元陣列法、二進(jìn)位陣列法、索引法等,依具體系統(tǒng)不同而不同。教師任課資料庫中,記錄之間的聯(lián)繫用單向環(huán)狀鏈接法實現(xiàn),如圖1.26所示。返回本節(jié)首頁圖1.26教師/授課/課程的網(wǎng)狀資料庫實例
返回本節(jié)首頁四、網(wǎng)狀模型的優(yōu)缺點
優(yōu)點主要有:
(1)能夠更為直接地描述現(xiàn)實世界
(2)具有良好的性能,存取效率較高。缺點主要有:(1)結(jié)構(gòu)比較複雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,資料庫的結(jié)構(gòu)就變得越來越複雜.(2)其DDL、DML語言複雜,用戶不容易使用。
返回本節(jié)首頁1.2.5關(guān)係模型
關(guān)係模型是目前最重要的一種模型。美國IBM公司的研究員E.F.Codd於1970年發(fā)表題為“大型共用系統(tǒng)的關(guān)係資料庫的關(guān)係模型”的論文,文中首次提出了資料庫系統(tǒng)的關(guān)係模型。資料庫領(lǐng)域當(dāng)前的研究工作都是以關(guān)係方法為基礎(chǔ)的。
數(shù)據(jù)模型的三個組成要素,主要體現(xiàn)如下:一、關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)二、關(guān)係模型的數(shù)據(jù)操縱與約束條件
三、關(guān)係模型的存儲結(jié)構(gòu)
返回本節(jié)首頁關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)
關(guān)係模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。每一行稱為一個元組,每一列稱為一個屬性(或字段)
通過圖1.27所示的教師登記表,介紹關(guān)係模型中的相關(guān)的術(shù)語關(guān)係:一個關(guān)係對應(yīng)一張二維表,圖1.27表示的就是一張教師登記表元組:二維表中的一行稱為一個元組屬性:二維表中的一列稱為一個屬性,對應(yīng)每一個屬性的名字稱為屬性名
主碼:二維表中的某個屬性或是屬性組可以唯一確定一個元組,則稱為主碼,也稱為關(guān)係鍵
返回本節(jié)首頁域:屬性的取值範(fàn)圍稱為域
分量:元組中的一個屬性值
關(guān)係模式:表現(xiàn)為關(guān)係名和屬性集的集合,是對關(guān)係的具體描述。一般表示為:關(guān)係名(屬性1,屬性2,…,屬性N)關(guān)係模型要求關(guān)係必須是規(guī)範(fàn)化的,即要求關(guān)係必須滿足一定規(guī)範(fàn)條件,關(guān)係的每一個分量必須是一個不可分的資料項目,不允許表中還有表.例如:圖1.27
中出產(chǎn)日期是可分的資料項目,出產(chǎn)日期有可以分為年,月,日。因此,圖1.25的表就不符合關(guān)係模型要求。關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)
返回本節(jié)首頁圖1.27關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)及術(shù)語返回本節(jié)首頁圖1.28表中有表的示例返回本節(jié)首頁二、關(guān)係模型的數(shù)據(jù)操縱與約束條件
關(guān)係模型的操作主要包括查詢、插入、刪除和修改數(shù)據(jù)。這些操作必須滿足關(guān)係的完整性約束條件,即實體完整性、參照完整性和用戶定義完整性。
在非關(guān)係模型中,操作對象是單個記錄,而關(guān)係模型中的數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)係,即若幹元組的集合
.關(guān)係模型把對數(shù)據(jù)的存取路徑向用戶隱蔽起來,從而大大地提高了數(shù)據(jù)的獨(dú)立性。返回本節(jié)首頁
在關(guān)係數(shù)據(jù)模型中,實體及實體間的聯(lián)繫都用表來表示。在資料庫的物理組織中,表以檔形式存儲,每一個表通常對應(yīng)一種檔結(jié)構(gòu),也有多個表對應(yīng)一種檔結(jié)構(gòu)。三、關(guān)係模型的存儲結(jié)構(gòu)返回本節(jié)首頁
關(guān)係模型優(yōu)點:(1)有較強(qiáng)的數(shù)學(xué)理論根據(jù)。(2)數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。(3)關(guān)係模型的存取路徑對用戶透明,具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性。關(guān)係模型具有查詢效率不如非關(guān)係模型效率高缺點。為了提高性能,必須對用戶的查詢進(jìn)行優(yōu)化,增加了開發(fā)資料庫管理系統(tǒng)的負(fù)擔(dān)。四、關(guān)係模型的優(yōu)缺點
返回本節(jié)首頁表1.2層次、網(wǎng)狀、關(guān)係模型比較表比較項層次模型網(wǎng)狀模型關(guān)係模型創(chuàng)始1968年IBM公司的IMS系統(tǒng)1969年CODASYL的DBTG報告(1971年通過)1970年E.F.Codd提出關(guān)係模型典型產(chǎn)品IMSIDS/Ⅱ,IMAGE/3000,IDMS等Oracle,Sybase,DB2,SQLServer等盛行時期20世紀(jì)70年代20世紀(jì)70年代到80年代中期20世紀(jì)80年代至今數(shù)據(jù)結(jié)構(gòu)複雜(樹形結(jié)構(gòu)),要加樹形限制複雜(有向圖結(jié)構(gòu)),結(jié)構(gòu)上無需嚴(yán)格限制簡單(二維表),無需嚴(yán)格限制數(shù)據(jù)聯(lián)繫通過指針連接記錄型,聯(lián)繫單一通過指針連接記錄型,聯(lián)繫多樣,較複雜通過聯(lián)繫表(含外碼),聯(lián)繫多樣查詢語言過程式,一次一記錄。查詢方式單一(雙親到子女)過程式,一次一記錄。查詢方式多樣非過程式,一次一集合。查詢方式多樣實現(xiàn)難易在電腦中實現(xiàn)較方便在電腦中實現(xiàn)較困難在電腦中實現(xiàn)較方便數(shù)學(xué)理論基礎(chǔ)樹(研究不規(guī)範(fàn),不透徹)無向圖(研究不規(guī)範(fàn),不透徹)關(guān)係理論(關(guān)係代數(shù)、關(guān)係演算),研究深入、透徹、返回本節(jié)首頁表1.3現(xiàn)實世界、資訊世界、機(jī)器世界/關(guān)係資料庫間術(shù)語對照表現(xiàn)實世界資訊世界機(jī)器世界/關(guān)係資料庫事物實體記錄/元組(或行)若干同類事物實體集記錄集(即檔)/元組集(即關(guān)係)若干特徵刻畫的事物實體型記錄型/二維表框架(即關(guān)係模式)事物的特徵屬性字段(或資料項目)/屬性(或列)事物之間的關(guān)聯(lián)實體型(或?qū)嶓w)之間的聯(lián)繫記錄型之間的聯(lián)繫/聯(lián)繫表(外碼)事物某特徵的所有可能值域字段類型/域事物某特徵的一個具體值一個屬性值字段值/分量可區(qū)分同類事物的特徵或若干特徵碼關(guān)鍵字段/關(guān)係鍵(或主碼)返回本節(jié)首頁1.3資料庫系統(tǒng)結(jié)構(gòu)
可以有多種不同的層次或不同的角度來考查資料庫系統(tǒng)的結(jié)構(gòu)。從資料庫管理系統(tǒng)內(nèi)部系統(tǒng)結(jié)構(gòu)看,資料庫系統(tǒng)通常採用三級模式結(jié)構(gòu)。從資料庫外部的體系結(jié)構(gòu)看,資料庫系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分佈式結(jié)構(gòu)、客戶/伺服器和並行結(jié)構(gòu)等。
1.3.1資料庫系統(tǒng)的三級模式結(jié)構(gòu)
1.3.2資料庫的二級映象功能與數(shù)據(jù)獨(dú)立性
1.3.3資料庫管理系統(tǒng)的工作過程返回本章首頁資料庫系統(tǒng)的三級模式結(jié)構(gòu)
資料庫系統(tǒng)的三級模式結(jié)構(gòu)是指外模式、模式和內(nèi)模式。如圖1.29
一、外模式(ExternalSchema)
外模式也稱子模式(SubSchema)或用戶模式,是三級模式的最外層,它是資料庫用戶能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述。把普通用戶看到和使用的資料庫內(nèi)容稱為視圖。視圖集也稱為用戶級數(shù)據(jù)庫,它對應(yīng)於外模式。外模式通常是模式的子集。一個資料庫可以有多個外模式。同一外模式也可以為某一用戶的多個應(yīng)用系統(tǒng)所用,但一個應(yīng)用程式只能使用一個外模式。
返回本節(jié)首頁資料庫系統(tǒng)的三級模式結(jié)構(gòu)
返回本節(jié)首頁圖1.29資料庫系統(tǒng)的三級模式結(jié)構(gòu)二、模式(Schema)模式又稱概念模式,也稱邏輯模式,是資料庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述,是所有用戶的公共數(shù)據(jù)視圖,是數(shù)據(jù)視圖的全部。它是資料庫系統(tǒng)模式結(jié)構(gòu)的中間層。概念模式實際上是資料庫數(shù)據(jù)在邏輯級上的視圖。一個資料庫只有一個模式。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)繫、定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。資料庫系統(tǒng)的三級模式結(jié)構(gòu)
返回本節(jié)首頁三、內(nèi)模式(InternalSchema)
內(nèi)模式也稱為存儲模式,一個資料庫只有一個內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在資料庫內(nèi)部的表示方式。
資料庫系統(tǒng)的三級模式結(jié)構(gòu)
返回本節(jié)首頁資料庫系統(tǒng)三級模式結(jié)構(gòu)概念比較,請參見表1.4
比較
外模式
模式
內(nèi)模式
定義
也稱子模式或用戶模式,還稱用戶級模式
也稱邏輯模式,還稱概念級模式
也稱存儲模式,還稱物理級模式
是資料庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述
是資料庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述,它包括:數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)之間的聯(lián)繫和與數(shù)據(jù)有關(guān)的安全性、完整性要求。
它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述。
特點1
是各個具體用戶所看到的數(shù)據(jù)視圖,是用戶與DB的介面。
是所有用戶的公共數(shù)據(jù)視圖。一般只有DBA能看到全部
數(shù)據(jù)在資料庫內(nèi)部的表示方式。特點2
可以有多個外模式
只有一個模式
只有一個內(nèi)模式返回本節(jié)首頁資料庫系統(tǒng)三級模式結(jié)構(gòu)概念比較,請參見表1.4比較
外模式
模式
內(nèi)模式
特點3
針對不同用戶,有不同的外模式描述。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),資料庫中其餘數(shù)據(jù)是不可見的。所以外模式是保證資料庫安全性的一個有力措施。
資料庫模式以某一種數(shù)據(jù)模型(層狀、網(wǎng)狀、關(guān)係)為基礎(chǔ),統(tǒng)一綜合地考慮所有用戶的需求,並將這些需求有機(jī)地結(jié)合成一個邏輯整體。以前由DBA定義,現(xiàn)基本由DBMS定義。
特點4
面向應(yīng)用程式或最終用戶。由DBA定義與管理。
由DBA定義或由DBMS預(yù)先設(shè)置。
DDL
DBMS提供三種模式的描述語言(DDL)來嚴(yán)格定義三種模式。如:子模式DDL、模式DDL和內(nèi)模式DDL。子模式DDL和用戶選用的程式設(shè)計語言具有相容的語法。如:Cobol子模式DDL。關(guān)係資料庫三種模式的描述語言統(tǒng)一於SQL語言中。
返回本節(jié)首頁資料庫的二級映象功能與數(shù)據(jù)獨(dú)立性
為了能夠在內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)繫和轉(zhuǎn)換,資料庫管理系統(tǒng)在這三級模式之間提供了兩層映象:外模式/模式映象,模式/內(nèi)模式映象。
這兩層映象保證了資料庫系統(tǒng)的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。一、外模式/模式映象
模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。資料庫系統(tǒng)都有一個外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)係。當(dāng)模式改變時,由資料庫管理員對各個外模式/模式映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程式是依據(jù)數(shù)據(jù)的外模式編寫的,保證了數(shù)據(jù)與程式的邏輯獨(dú)立性,簡稱為數(shù)據(jù)邏輯獨(dú)立性。
返回本節(jié)首頁二、模式/內(nèi)模式映象
資料庫中只有一個模式,也只有一個內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了資料庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)係。當(dāng)資料庫的存儲結(jié)構(gòu)改變了,由資料庫管理員對模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程式也不必改變。保證了數(shù)據(jù)與程式的物理獨(dú)立性,簡稱為數(shù)據(jù)物理獨(dú)立性。在資料庫的三級模式結(jié)構(gòu)中,資料庫模式即全局邏輯結(jié)構(gòu)是資料庫的中心與關(guān)鍵,它獨(dú)立於資料庫的其他層次。
資料庫的二級映象功能與數(shù)據(jù)獨(dú)立性
返回本節(jié)首頁資料庫的內(nèi)模式依賴於它的全局邏輯結(jié)構(gòu),但獨(dú)立於資料庫的用戶視圖即外模式,也獨(dú)立於具體的存儲設(shè)備。資料庫的外模式面向具體的應(yīng)用程式,它定義在邏輯模式之上,但獨(dú)立於內(nèi)模式和存儲設(shè)備。資料庫的二級映象保證了資料庫外模式的穩(wěn)定性,從而根本上保證了應(yīng)用程式的穩(wěn)定性,使得資料庫系統(tǒng)具有較高的數(shù)據(jù)與程式的獨(dú)立性。資料庫的三級模式與二級映象使得數(shù)據(jù)的定義和描述可以從應(yīng)用程式中分離出去。
資料庫的二級映象功能與數(shù)據(jù)獨(dú)立性
返回本節(jié)首頁1.3.3資料庫管理系統(tǒng)的工作過程
資料庫管理系統(tǒng)控制的數(shù)據(jù)操作過程基於資料庫系統(tǒng)的三級模式結(jié)構(gòu)與二級映象功能,總體操作過程能從其讀或?qū)懸粋€用戶記錄的過程大體反映出來。下麵就以應(yīng)用程式從資料庫中讀取一個用戶記錄的過程(如圖1.27所示)來說明。按照步驟解釋運(yùn)行過程如下:(1)應(yīng)用程式A向DBMS發(fā)出從資料庫中讀用戶數(shù)據(jù)記錄的命令;(2)DBMS對該命令進(jìn)行語法檢查、語義檢查,並調(diào)用應(yīng)用程式A對應(yīng)的子模式,檢查A的存取許可權(quán),決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則轉(zhuǎn)(10)向用戶返回錯誤資訊返回本節(jié)首頁1.3.3資料庫管理系統(tǒng)的工作過程
返回本節(jié)首頁圖1.30DBMS讀取用戶記錄的過程示意圖1.3.3資料庫管理系統(tǒng)的工作過程
(3)在決定執(zhí)行該命令後,DBMS調(diào)用模式,依據(jù)子模式/模式映象的定義,確定應(yīng)讀入模式中的哪些記錄;(4)DBMS調(diào)用內(nèi)模式,依據(jù)模式/內(nèi)模式映象的定義,決定應(yīng)從哪個檔、用什麼存取方式、讀入哪個或哪些物理記錄;(5)DBMS向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令;返回本節(jié)首頁(6)操作系統(tǒng)執(zhí)行從物理檔中讀數(shù)據(jù)的有關(guān)操作;(7)操作系統(tǒng)將數(shù)據(jù)從資料庫的存儲區(qū)送至系統(tǒng)緩衝區(qū);(8)DBMS依據(jù)內(nèi)模式/模式(模式/內(nèi)模式映象的反方向看待,並不是另一種新映象,模式/子模式映象也是類似情況)、模式/子模式映象的定義,導(dǎo)出應(yīng)用程式A所要讀取的記錄格式;1.3.3資料庫管理系統(tǒng)的工作過程
返回本節(jié)首頁(9)DBMS將數(shù)據(jù)記錄從系統(tǒng)緩衝區(qū)傳送到應(yīng)用程式A的用戶工作區(qū);(10)DBMS向應(yīng)用程式A返回命令執(zhí)行情況的狀態(tài)資訊。至此,DBMS就完成了一次讀用戶數(shù)據(jù)記錄的過程。DBMS向資料庫寫一個用戶數(shù)據(jù)記錄的過程經(jīng)歷的環(huán)節(jié)類似於讀,只是過程基本是相反而已。由DBMS控制的大量用戶數(shù)據(jù)的存取操作,可以理解為就是由許許多多這樣的讀或?qū)懙幕具^程組合完成的。
1.3.3資料庫管理系統(tǒng)的工作過程
返回本節(jié)首頁
1.4資料庫系統(tǒng)的組成
資料庫系統(tǒng)是指電腦系統(tǒng)中引入資料庫後的整個人機(jī)系統(tǒng)。為此,資料庫系統(tǒng)應(yīng)由電腦硬體、資料庫、電腦軟體及各類人員組成。一、硬體平臺二、資料庫資料庫是存放數(shù)據(jù)的地方,是存儲在電腦內(nèi)有組織的大量可共用的數(shù)據(jù)集合,具有盡可能少的冗餘和較高的數(shù)據(jù)獨(dú)立性,有完整的自我保護(hù)能力和數(shù)據(jù)恢復(fù)能力。返回本章首頁
1.4資料庫系統(tǒng)的組成
三、軟體資料庫系統(tǒng)的軟體主要包括:(1)支持DBMS運(yùn)行的操作系統(tǒng);(2)DBMS:DBMS可以通過操作系統(tǒng)對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行存取、管理和維護(hù);(3)具有與資料庫介面的高級語言及其編譯系統(tǒng);(4)以DBMS為核心的應(yīng)用開發(fā)工具,為特定應(yīng)用環(huán)境開發(fā)的資料庫應(yīng)用系統(tǒng)。
返回本章首頁
四、用戶進(jìn)行管理和維護(hù)資料庫系統(tǒng)的人員——資料庫管理員;具體職責(zé)包括:(1)決定資料庫中的資訊內(nèi)容和結(jié)構(gòu)(2)決定資料庫的存儲結(jié)構(gòu)和存取策略(3)定義數(shù)據(jù)的安全性要求和完整性約束條件(4)監(jiān)控資料庫的使用和運(yùn)行(5)資料庫的改進(jìn)和重組重構(gòu)
1.4資料庫系統(tǒng)的組成
返回本章首頁
資料庫應(yīng)用系統(tǒng)分析設(shè)計的人員——系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計人員;具體開發(fā)資料庫系統(tǒng)的人員——資料庫應(yīng)用程式員;使用資料庫系統(tǒng)的人員——最終用戶。
1.4資料庫系統(tǒng)的組成
返回本章首頁1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展*
1.5.1資料庫技術(shù)的研究領(lǐng)域資料庫技術(shù)的研究領(lǐng)域十分廣泛,概括地而言包括以下三方面:
1、DBMS系統(tǒng)軟體的研製
2、資料庫應(yīng)用系統(tǒng)設(shè)計與開發(fā)的研製
3、資料庫理論的研究
1.5.2資料庫技術(shù)的發(fā)展資料庫技術(shù)產(chǎn)生於20世紀(jì)60年代中期,由於其在商業(yè)領(lǐng)域的成功應(yīng)用,在20世紀(jì)80年代後,得到迅速推廣,新的應(yīng)用對數(shù)據(jù)庫技術(shù)在數(shù)據(jù)存儲和管理方面提出了更高的要求,從而進(jìn)一步推動了資料庫技術(shù)的發(fā)展。返回本章首頁1、數(shù)據(jù)模型的發(fā)展和三代數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)模型是資料庫系統(tǒng)的核心和基礎(chǔ),數(shù)據(jù)模型的發(fā)展帶動著數(shù)據(jù)庫系統(tǒng)不斷更新?lián)Q代。數(shù)據(jù)模型的發(fā)展可以分為三個階段:第一階段為格式化數(shù)據(jù)模型,包括層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型第二階段為關(guān)係數(shù)據(jù)模型第三階段則是以面向?qū)ο髷?shù)據(jù)模型為代表的非傳統(tǒng)數(shù)據(jù)模型1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁據(jù)上述的數(shù)據(jù)模型三個發(fā)展階段,資料庫系統(tǒng)也可以相應(yīng)地劃分為三代:第一代數(shù)據(jù)庫系統(tǒng)為層次與網(wǎng)狀資料庫系統(tǒng)第二代數(shù)據(jù)庫系統(tǒng)為關(guān)係資料庫系統(tǒng)新一代資料庫系統(tǒng)(即第三代)的發(fā)展呈現(xiàn)百花齊放的局面1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁2、資料庫技術(shù)與其他相關(guān)技術(shù)的結(jié)合
將資料庫技術(shù)與其他相關(guān)技術(shù)相結(jié)合,是當(dāng)代資料庫技術(shù)發(fā)展的主要特徵之一
(1)面向?qū)ο筚Y料庫系統(tǒng)面向?qū)ο筚Y料庫系統(tǒng)是資料庫技術(shù)與面向?qū)ο蠹夹g(shù)相結(jié)合的產(chǎn)物。1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁(2)分佈式資料庫系統(tǒng)分佈式資料庫系統(tǒng)是資料庫技術(shù)與電腦網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。(3)並行資料庫系統(tǒng)並行資料庫系統(tǒng)就是在並行電腦上運(yùn)行的具有並行處理能力的資料庫系統(tǒng),它是資料庫技術(shù)與並行電腦技術(shù)相結(jié)合的產(chǎn)物。1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁(4)多媒體資料庫系統(tǒng)多媒體資料庫系統(tǒng)是資料庫技術(shù)與多媒體技術(shù)相結(jié)合的產(chǎn)物。(5)主動資料庫系統(tǒng)主動資料庫系統(tǒng)是資料庫技術(shù)與人工智慧技術(shù)相結(jié)合的產(chǎn)物。
(6)模糊資料庫系統(tǒng)模糊資料庫系統(tǒng)是資料庫技術(shù)與模糊技術(shù)相結(jié)合的產(chǎn)物。
1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁3、資料庫技術(shù)的新應(yīng)用資料庫技術(shù)在不同領(lǐng)域中的應(yīng)用,也導(dǎo)致了一些新型資料庫系統(tǒng)的出現(xiàn),這些應(yīng)用領(lǐng)域往往無法直接使用傳統(tǒng)資料庫系統(tǒng)來管理和處理其中的數(shù)據(jù)對象。(1)數(shù)據(jù)倉庫系統(tǒng)(2)工程資料庫系統(tǒng)1.5資料庫技術(shù)的研究領(lǐng)域及其發(fā)展
返回本章首頁
1.6小結(jié)
本章概述了資料庫的基本概念,介紹了數(shù)據(jù)管理技術(shù)發(fā)展的三個階段及各自的優(yōu)缺點,說明了資料庫系統(tǒng)的優(yōu)點。數(shù)據(jù)模型是資料庫系統(tǒng)的核心和基礎(chǔ)。本章介紹了組成數(shù)據(jù)模型的三要素及其內(nèi)涵、概念模型和三種主要的資料庫模型。概念模型也稱資訊模型,用於資訊世界的建模,E-R模型是這類模型的典型代表,E-R方法簡單、清晰,應(yīng)用十分廣泛。數(shù)據(jù)模型包括非關(guān)係模型(層次模型和網(wǎng)狀模型)和關(guān)係模型。本章簡要地講解了層次模型、網(wǎng)狀模型和關(guān)係模型,而關(guān)係模型將在後續(xù)章節(jié)中作更詳細(xì)的介紹。返回本章首頁
1.6小結(jié)
資料庫系統(tǒng)的結(jié)構(gòu)包括三級模式和兩層映象。資料庫系統(tǒng)三級模式和兩層映象的系統(tǒng)結(jié)構(gòu)保證了資料庫系統(tǒng)中能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。資料庫系統(tǒng)不僅是一個電腦系統(tǒng),而且是一個人-機(jī)系統(tǒng),人的作用特別是DBA的作用最為重要。返回本章首頁習(xí)題一、選擇題1、()是位於用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟體。資料庫在建立、使用和維護(hù)時由其統(tǒng)一管理、統(tǒng)一控制。
A.DBMSB.DBC.DBSD.DBA2、文字、圖形、圖像、聲音、學(xué)生的檔案記錄、貨物的運(yùn)輸情況等,這些都是()
A.DATAB.DBSC.DBD.其他3、目前()資料庫系統(tǒng)已逐漸淘汰了網(wǎng)狀資料庫和層次資料庫,成為當(dāng)今最為流行的商用資料庫系統(tǒng)。
A.關(guān)係B.面向?qū)ο驝.分佈D.對象-關(guān)係4、()是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。因此在資料庫系統(tǒng)中,人們通常按它的類型來命名數(shù)據(jù)模型。
A.?dāng)?shù)據(jù)結(jié)構(gòu)B.?dāng)?shù)據(jù)操縱C.完整性約束D.?dāng)?shù)據(jù)聯(lián)繫5、()屬於資訊世界的模型,實際上是現(xiàn)實世界到機(jī)器世界的一個中間層次。
A.?dāng)?shù)據(jù)模型B.概念模型C.非關(guān)係模型D.關(guān)係模型返回本章首頁習(xí)題6、當(dāng)資料庫的()改變了,由資料庫管理員對()映象作相應(yīng)改變,可以使()保持不變,從而保證了數(shù)據(jù)的物理獨(dú)立性。
(1)模式(2)存儲結(jié)構(gòu)(3)外模式/模式(4)用戶模式(5)模式/內(nèi)模式
A.(1)和(3)和(4)B.(1)和(5)和(3)C.(2)和(5)和(1)D.(1)和(2)和(4)7、資料庫的三級體系結(jié)構(gòu)即子模式、模式與內(nèi)模式是對()的三個抽象級別。
A.資訊世界B.資料庫系統(tǒng)
C.?dāng)?shù)據(jù)D.資料庫管理系統(tǒng)8、英文縮寫DBA代表()A.資料庫管理員B.資料庫管理系統(tǒng)
C.?dāng)?shù)據(jù)定義語言D.?dāng)?shù)據(jù)操縱語言9、模式和內(nèi)模式()。
A.只能各有一個B.最多只能有一個
C.至少兩個D.可以有多個返回本章首頁10、在資料庫中存儲的是()。
A.?dāng)?shù)據(jù)B.資訊C.?dāng)?shù)據(jù)和數(shù)據(jù)之間的聯(lián)繫D.?dāng)?shù)據(jù)模型的定義二、填空題1、資料庫就是長期儲存在電腦內(nèi)_________、_________的數(shù)據(jù)集合。2、數(shù)據(jù)管理技術(shù)已經(jīng)曆了人工管理階段、___________和___________三個發(fā)展階段。3、數(shù)據(jù)模型通常都是由_________、_________和__________三個要素組成。4、資料庫系統(tǒng)的主要特點:___________________、數(shù)據(jù)冗餘度小、具有較高的數(shù)據(jù)程式獨(dú)立性、具有統(tǒng)一的數(shù)據(jù)控制功能等。5、用二維表結(jié)構(gòu)表示實體以及實體間聯(lián)繫的數(shù)據(jù)模型稱為_____________數(shù)據(jù)模型。6、在資料庫的三級模式體系結(jié)構(gòu)中,外模式與模式之間的映象,實現(xiàn)了資料庫的____________獨(dú)立性。7、資料庫系統(tǒng)是以____為中心的系統(tǒng)。8、E-R圖表示的概念模型比________更一般、更抽象、更接近現(xiàn)實世界。習(xí)題返回本章首頁9、外模式,亦稱為子模式或用戶模式,是__________能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述。10、資料庫系統(tǒng)的軟體主要包括支持__________運(yùn)行的操作系統(tǒng)以及_________本身。三、簡答題1、簡述電腦數(shù)據(jù)管理技術(shù)發(fā)展的三個階段。2、常用的三種數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)各有什麼特點?3、試述資料庫系統(tǒng)的特點。4、試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三要素。5、試述概念模型的作用。6、定義並理解概念模型中的以下術(shù)語:實體、實體型、實體集、屬性、碼、實體聯(lián)繫圖(E-R圖)、三種聯(lián)繫類型7、學(xué)校有若干個系,每個系有若干班級和教研室,每個教研室有若干教師,每個教師只教一門課,每門課可由多個教師教;每個班有若干學(xué)生,每個學(xué)生選修若干課程,每門課程可由若干學(xué)生選修。請用E-R圖畫出該學(xué)校的概念模型,注明聯(lián)繫類型。習(xí)題返回本章首頁2.1關(guān)係模型
關(guān)係模型由關(guān)係數(shù)據(jù)結(jié)構(gòu)、關(guān)係操作集合和關(guān)係完整性約束三部分組成。
關(guān)係數(shù)據(jù)結(jié)構(gòu)
關(guān)係操作集合
關(guān)係完整性返回本章首頁1、關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)——關(guān)係
關(guān)係模型的數(shù)據(jù)結(jié)構(gòu):非常單一,在用戶看來,關(guān)係模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但關(guān)係模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實世界的實體以及實體間的各種聯(lián)繫。BACK2、關(guān)係操作關(guān)係操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、並(union)、交(intersection)、差(difference)等查詢(query)操作和增加(insert)、刪除(delete)、修改(update)等更新操作兩大部分。查詢的表達(dá)能力是其中最主要的部分。關(guān)係操作表示方式:代數(shù)方式→關(guān)係代數(shù)邏輯方式→關(guān)係演算:元組關(guān)係演算和域關(guān)係演算關(guān)係數(shù)據(jù)語言可以分成三類:關(guān)係代數(shù):用對關(guān)係的集合運(yùn)算表達(dá)查詢要求,例如ISBL。關(guān)係演算:用謂詞表達(dá)查詢要求,可分為兩類:①元組關(guān)係演算:謂詞變元的基本對象是元組變數(shù),例如APLHA、QUEL;②域關(guān)係演算:謂詞變元的基本對象是域變數(shù),例如QBE。關(guān)係數(shù)據(jù)語言,例如SQL。BACK3、關(guān)係的三類完整性約束關(guān)係模型提供了豐富的完整性控制機(jī)制,允許定義三類完整性:實體完整性、參照完整性和用戶自定義的完整性。其中實體完整性和參照完整性是關(guān)係模型必須滿足的完整性約束條件,應(yīng)該由關(guān)係系統(tǒng)自動支持。用戶自定義的完整性是應(yīng)用領(lǐng)域特殊要求而需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束。下麵將從數(shù)據(jù)模型的三要素出發(fā),逐步介紹關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)(包括關(guān)係的形式化定義及有關(guān)概念)、關(guān)係的三類完整性約束、關(guān)係代數(shù)與關(guān)係演算操作等。BACK2.2關(guān)係數(shù)據(jù)結(jié)構(gòu)及其形式化定義
2.2.1
關(guān)係
2.2.2
關(guān)係模式
2.2.3
關(guān)係資料庫
在關(guān)係模型中,無論是實體還是實體之間的聯(lián)繫均由單一的結(jié)構(gòu)類型即關(guān)係(二維表)來表示關(guān)係模型是建立在集合代數(shù)的基礎(chǔ)上的,這裏我們從集合論角度給出關(guān)係數(shù)據(jù)結(jié)構(gòu)的形式化定義。返回本章首頁2.2.1
關(guān)係⒈域(Domain)定義2.1
域是一組具有相同數(shù)據(jù)類型的值的集合。又稱為值域(用D表示)。域中所包含的值的個數(shù)稱為域的基數(shù)(用m表示)。在關(guān)係中就是用域來表示屬性的取值範(fàn)圍的。
例如,自然數(shù)、整數(shù)、實數(shù)、長度小於10位元組的字串集合、1-16之間的整數(shù)都是域,又如:
D1={張三,李四}
D1的基數(shù)m1為2D2={男,女}D2的基數(shù)m2為2D3={19,20,21}D3的基數(shù)m3為3BACK⒉笛卡爾積(CartesianProduct)定義2.2
給定一組域D1、D2、…Dn(這些域中可以包含相同的元素,即可以完全不同,也可以部分或全部相同),D1、D2、…Dn
的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}由定義可以看出,笛卡爾積也是一個集合。其中:(1)其中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple),或簡稱為元組(Tuple)。但元組不是di的集合,元組由di按序排列而成。(2)元素中的每一個值di叫作一個分量(Component)。分量來自相應(yīng)的域(di∈Di)。(3)若Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn
的基數(shù)為n個域的基數(shù)累乘之積,即M=(4)笛卡爾積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域。BACK例如D1與D2的笛卡爾積:姓名性別張三男張三女李四男李四女D1×D2={(張三,男),(張三,女),(李四,男),(李四,女)}可以表示成二維表,如下表2.1所示:表2.1笛卡爾積D1×D2D1×D2×D3={(張三,男,19),(張三,男,20),(張三,男,21),(張三,女,19),(張三,女,20),(張三,女,21),(李四,男,19),(李四,男,20),(李四,男,21),(李四,女,19),(李四,女,20),(李四,女,21)}BACK⒊關(guān)係(Relation)定義2.3D1×D2×…×Dn的任一子集叫作在域D1,D2,…,Dn
上的關(guān)係,用R(D1,D2,…Dn)表示。如上例中D1×D2
笛卡爾積的子集可以構(gòu)成關(guān)係T1,如下表2.3所示:姓名性別張三男李四女表2.3D1×D2笛卡爾積的子集(關(guān)係T1)R表示關(guān)係的名字,n是關(guān)係的目或度(Degree)。當(dāng)n=1時,稱為單元關(guān)係。當(dāng)n=2時,稱為二元關(guān)係?!?dāng)n=m時,稱為m元關(guān)係。關(guān)係中的每個元素是關(guān)係中的元組,通常用t表示。BACK基本概念:關(guān)係:是笛卡爾積的子集,所以關(guān)係也是一個二維表。元組:對應(yīng)表的每行域:對應(yīng)表的每列屬性(Attribute):由於域可以相同,為了加以區(qū)分,必須對每列起一個唯一的名字。候選碼(Candidatekey):若關(guān)係中的某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼。關(guān)係至少含有一個候選碼。主碼(Primarykey):若一個關(guān)係有多個候選碼,則選定其中一個為主控使用者稱為主碼。主屬性(Primeattribute):候選碼中的諸屬性。非主屬性(Non-keyattribute):不包含在任何侯選碼中的屬性。在最簡單的情況下,侯選碼只包含一個屬性。全碼(All-key):關(guān)係模式的所有屬性組是這個關(guān)係模式的侯選碼,稱為全碼(All-key)。BACK基本關(guān)係的性質(zhì):①列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。②不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。③列的順序無所謂,即列的次序可以任意交換。④任意兩個元組不能完全相同。⑤行的順序無所謂,即行的次序可以任意交換。⑥分量必須取原子值,即每一個分量都必須是不可分的資料項目。BACK表2.4課程關(guān)係C課程名學(xué)時理論實驗資料庫5220C語言4520數(shù)據(jù)結(jié)構(gòu)5530課程名理論學(xué)時實驗學(xué)時資料庫5220C語言4520數(shù)據(jù)結(jié)構(gòu)5530
如表2.4的關(guān)係就不規(guī)範(fàn),存在“表中有表”現(xiàn)象,可將它進(jìn)行規(guī)範(fàn)化為表2.5所示的關(guān)係。
關(guān)係模型要求關(guān)係必須是規(guī)範(fàn)化的,即要求關(guān)係模式必須滿足一定的規(guī)範(fàn)條件。這些規(guī)範(fàn)條件中最基本的一條就是,關(guān)係的每一個分量必須是不可再分的資料項目。規(guī)範(fàn)化的關(guān)係稱為範(fàn)式。例如:BACK表2.5課程關(guān)係C2.2.2關(guān)係模式關(guān)係模式是一個5元組:
定義2.4
關(guān)係的描述稱為關(guān)係模式(RelationSchema)。一個關(guān)係模式應(yīng)當(dāng)是一個五元組。它可以形式化地表示為:R(U,D,dom,F)。其中R為關(guān)係名,U為組成該關(guān)係的屬性名集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)係集合。關(guān)係模式通??梢院営洖椋篟(A1,A2,…,An)或R(U)。其中R為關(guān)係名,A1,A2,…,An為屬性名。而功能變數(shù)名稱及屬性向域的映象常常直接說明為屬性的類型、長度。關(guān)係實際上就是關(guān)係模式在某一時刻的狀態(tài)或內(nèi)容。也就是說,關(guān)係模式是型,關(guān)係是它的值。關(guān)係模式是靜態(tài)的、穩(wěn)定的,而關(guān)係是動態(tài)的、隨時間不斷變化的,因為關(guān)係操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。把關(guān)系模式和關(guān)係統(tǒng)稱為關(guān)係。BACK2.2.2關(guān)係模式BACK關(guān)係模式的五元組可以如圖2.1來說明,通過這五個方面,一個關(guān)係被充分地刻畫、描述出來了。圖2.1關(guān)係模式的五元組示意圖2.2.3關(guān)係資料庫
在關(guān)係模型中,實體以及實體間的聯(lián)繫都是用關(guān)係來表示。例如學(xué)生實體、課程實體、學(xué)生與課程之間的多對多選課聯(lián)繫都可以分別用一個關(guān)係(或二維表)來表示。在一個給定的現(xiàn)實世界領(lǐng)域中,所有實體及實體之間的聯(lián)繫的關(guān)係的集合構(gòu)成一個關(guān)係資料庫。關(guān)係資料庫也有型和值之分。關(guān)係資料庫的型也稱為關(guān)係資料庫模式,是對關(guān)係資料庫的描述,是關(guān)係模式的集合。關(guān)係資料庫的值也稱為關(guān)係資料庫,是關(guān)係的集合。關(guān)係資料庫模式與關(guān)係資料庫通常統(tǒng)稱為關(guān)係資料庫。BACK2.3關(guān)係的完整性
關(guān)係模型的完整性規(guī)則是對關(guān)係的某種約束條件。關(guān)係模型中可以有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。
實體完整性
參照完整性
自定義完整性返回本章首頁
規(guī)則2.1
實體完整性規(guī)則:若屬性組(或?qū)傩裕㎏是基本關(guān)係R的主碼(或稱主關(guān)鍵字),則所有元組K的取值唯一,並且K中屬性不能全部或部分取空值。例如:在課程關(guān)係T中,若“課程名”屬性為主碼,則“課程名”屬性不能取空值,並且課程名要唯一。對於實體完整性規(guī)則說明如下:實體完整性規(guī)則是針對基本關(guān)係而言的。一個基本表通常對應(yīng)現(xiàn)實世界的一個實體集。關(guān)係模型中以主碼作為其唯一性標(biāo)識,主碼中屬性即主屬性不能取空值。BACK一、實體完整性(EntityIntegrity)二、參照完整性(Referentialintegrity)[例1]學(xué)生實體和專業(yè)實體可以用下麵的關(guān)係表示,其中主碼用下劃線標(biāo)識:學(xué)生(學(xué)號,姓名,性別,年齡,系別號)系別(系別號,系名)
定義2.5
設(shè)F是基本關(guān)係R的一個或一組屬性,但不是關(guān)係R的碼,如果F與基本關(guān)係S的主碼Ks相對應(yīng),則稱F是基本關(guān)係R的外碼(Foreignkey),並稱基本關(guān)係R為參照關(guān)係(Referencingrelation),基本關(guān)係S為被參照關(guān)係(Referencedrelation)或目標(biāo)關(guān)係(Targetrelation)。關(guān)係R和S可能是相同的關(guān)係,即自身參照。
目標(biāo)關(guān)系S的主碼Ks和參照關(guān)係的外碼F必須定義在同一個(或一組)域上。參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。BACK[例2]學(xué)生,課程,學(xué)生與課程之間的多對多聯(lián)繫可以如下三個關(guān)係表示:
學(xué)生(學(xué)號,姓名,性別,年齡,系別號)
課程(課程號,課程名,課時)
選修(學(xué)號,課程號,成績)
例1中,學(xué)生關(guān)係的“系別號”與系別關(guān)係的“系別號”相對應(yīng),因此,“系別號”屬性是學(xué)生關(guān)係的外碼,是系別關(guān)係的主碼。這裏系別關(guān)係是被參照關(guān)係,學(xué)生關(guān)係為參照關(guān)係。例2中,選修關(guān)係的“學(xué)號”屬性與學(xué)生關(guān)係的“學(xué)號”屬性相對應(yīng),“課程號”屬性與課程關(guān)係的“課程號”屬性相對應(yīng),因此“學(xué)號”和“課程號”屬性是選修關(guān)係的外碼,這裏學(xué)生關(guān)係和課程關(guān)係均為被參照關(guān)係,選修關(guān)係為參照關(guān)係。BACK規(guī)則2.2
參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)係R的外碼,它與基本關(guān)係S的主碼Ks相對應(yīng)(基本關(guān)係R和S可能是相同的關(guān)係),則對於R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等於S中某個元組的主碼值。例如,例1中學(xué)生關(guān)係中的每個元組的“系別號”屬性只能取下麵兩類值:空值,表示尚未給該學(xué)生分配系別非空值,這是該值必須是系別關(guān)係中某個元組的“系別號”的值,表示該學(xué)生不可能分配到一個不存在的系中。即被參照關(guān)係“系別”中一定存在一個元組,它的主碼值等於該參照關(guān)係“學(xué)生”中的外碼值。對於例2,按照參照完整性規(guī)則,“學(xué)號”和“課程號”屬性也可以取兩類值:空值或目標(biāo)關(guān)係中已經(jīng)存在的值。但由於“學(xué)號”和“課程號”是選修關(guān)係中的主屬性,按照實體完整性規(guī)則,它們均不能取空值。所以選修關(guān)係中的“學(xué)號”和“課程號”屬性實際上只能取相應(yīng)被參照關(guān)係中已經(jīng)存在的主碼值。BACK三、用戶定義完整性(User-definedintegrity)
實體完整性和參照性適用於任何關(guān)係資料庫系統(tǒng)。除此之外,不同的關(guān)係資料庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要能制定一些特殊的約束條件。用戶定義的完整性就是針對某一具體應(yīng)用的關(guān)係資料庫所制定約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。關(guān)係模型應(yīng)提供定義和檢驗這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程式承擔(dān)這一功能。BACK關(guān)係完整性約束示意圖BACK圖2.2關(guān)係完整性約束示意圖2.4關(guān)係代數(shù)
關(guān)係代數(shù)是一種抽象的查詢語言,用對關(guān)係的運(yùn)算來表達(dá)關(guān)係操作,關(guān)係代數(shù)是研究關(guān)係數(shù)據(jù)操作語言的一種較好的數(shù)學(xué)工具。
集合運(yùn)算
關(guān)係運(yùn)算返回本章首頁2.4關(guān)係代數(shù)返回本章首頁
關(guān)係代數(shù)以一個或兩個關(guān)係為輸入(或稱為操作對象),產(chǎn)生一個新的關(guān)係作為其操作結(jié)果。即其運(yùn)算對象是關(guān)係,運(yùn)算結(jié)果亦為關(guān)係。關(guān)係代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)係運(yùn)算符、算術(shù)比較符和邏輯運(yùn)算符,如表2.6所示,各運(yùn)算操作示意圖如圖2.3所示。運(yùn)算符含義運(yùn)算符含義集合運(yùn)算符∪∩-並交差比較運(yùn)算符>≥<≤=≠大於大於等於小於小於等於等於不等於專門的關(guān)系運(yùn)算符×σ∏÷∞廣義笛卡爾積選取投影除連接邏輯運(yùn)算符∧∨?與或非表2.6關(guān)係代數(shù)的運(yùn)算符2.4關(guān)係代數(shù)返回本章首頁圖2.3關(guān)係代數(shù)運(yùn)算操作示意圖2.4.1傳統(tǒng)的集合運(yùn)算BACK
傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,包括並、交、差、廣義笛卡爾積四種運(yùn)算,其關(guān)係操作示意如圖2.4所示。圖2.4傳統(tǒng)集合運(yùn)算關(guān)係操作示意圖2.4.1傳統(tǒng)的集合運(yùn)算
設(shè)關(guān)係R和關(guān)係S具有相同的目n(即兩個關(guān)係都有n個屬性),且相應(yīng)的屬性取自同一個域,則關(guān)係R與關(guān)係S的並由屬於R或?qū)凫禨的所有元組組成。記作:R∪S={t|tR∨tS},其結(jié)果關(guān)係仍為n目關(guān)係,由屬於R或?qū)凫禨的元組組成。關(guān)係的並操作對應(yīng)於關(guān)係的插入或添加記錄的操作,俗稱“+”操作,是關(guān)係代數(shù)的基本操作。⒈並(Union)
XYZx1y1z1x1y3z2x2y3z3XYZx1y1z2x1y3z2x2y3z3XYZx1y1z1x1y3z2x1y1z2
x2y3z3RRUSSBACK⒉差(Difference)設(shè)關(guān)係R和關(guān)係S具有相同的目n,且相應(yīng)的屬性取自同一個域,則關(guān)係R與關(guān)係S的差由屬於R而不屬於S的所有元組組成。記作:R-S={t|tR∧tS}其結(jié)果關(guān)係仍為n目關(guān)係,由屬於R而不屬於S的所有元
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧夏工業(yè)職業(yè)學(xué)院《軟件測試課設(shè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 茂名職業(yè)技術(shù)學(xué)院《俄羅斯文化基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江金融職業(yè)學(xué)院《計算力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 發(fā)光字廣告牌制作合同
- 勞動技術(shù)服務(wù)合同書
- 手房中介買賣合同書
- 煤炭合作的合同
- 酒類二級經(jīng)銷商合同
- 循環(huán)借款合同貸款循環(huán)合同
- 房屋租賃給公司合同
- 山東省五級師承結(jié)業(yè)論文骨傷科一萬字以上
- 《發(fā)作性睡病》課件
- 人教PEP版(一起)(2024)一年級上冊英語全冊教案(單元整體教學(xué)設(shè)計)
- 家鄉(xiāng)美食論文開題報告
- 江蘇省鹽城市2024-2025學(xué)年高三上學(xué)期11月期中考試 地理 含答案
- 肝膽外科術(shù)前宣教
- 百果園水果店加盟協(xié)議書范文
- 基于生成對抗網(wǎng)絡(luò)的圖像分類方法
- DB11T 219-2021 養(yǎng)老機(jī)構(gòu)服務(wù)質(zhì)量星級劃分與評定
- GB/T 44577-2024商用電動洗碗機(jī)性能測試方法
- 干部家庭社會關(guān)系登記表
評論
0/150
提交評論