數(shù)據(jù)庫(kù)管理系統(tǒng)
數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的核心。數(shù)據(jù)庫(kù)管理系統(tǒng)是由一組基于操作系統(tǒng)的數(shù)據(jù)管理通用軟件組成的軟件系統(tǒng),是操作系統(tǒng)和用戶之間的數(shù)據(jù)管理軟件,負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)和數(shù)據(jù)控制。1961年,美國(guó)通用電氣公司開發(fā)了世界上第一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)——集成數(shù)據(jù)存儲(chǔ)(IDS ),這標(biāo)志著第一代數(shù)據(jù)庫(kù)管理系統(tǒng)——網(wǎng)格數(shù)據(jù)庫(kù)管理系統(tǒng)的出現(xiàn)。1968年,IBM推出的IMS(信息管理系統(tǒng))是第一個(gè)大型商業(yè)數(shù)據(jù)庫(kù)管理系統(tǒng)。1970年,Edgar F.Codd提出了一個(gè)關(guān)系數(shù)據(jù)模型來解決第一代數(shù)據(jù)庫(kù)管理系統(tǒng)的問題。1974年,IBM開發(fā)了第二代數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SystemR。該系統(tǒng)證實(shí)了Edgar F.Codd的關(guān)系數(shù)據(jù)模型的可行性、有效性和優(yōu)越性,并直接推動(dòng)了數(shù)據(jù)操作語言SQL的出現(xiàn)。隨后,商用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)相繼出現(xiàn)。一般來說,數(shù)據(jù)庫(kù)管理系統(tǒng)的主要功能包括數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)庫(kù)操作管理、數(shù)據(jù)存儲(chǔ)和管理、數(shù)據(jù)庫(kù)建立和維護(hù)、數(shù)據(jù)通信接口等。
發(fā)展歷史 編輯本段
背景
數(shù)據(jù)庫(kù)管理系統(tǒng)是隨著數(shù)據(jù)庫(kù)系統(tǒng)的誕生而出現(xiàn)的。50年代中期,計(jì)算機(jī)主要用于科學(xué)計(jì)算,沒有磁盤存儲(chǔ)設(shè)備和操作系統(tǒng)軟件。數(shù)據(jù)大多以穿孔紙帶的形式進(jìn)行物理存儲(chǔ)和處理,數(shù)據(jù)管理主要依靠人工。50年代后期,隨著磁盤、磁鼓等直接存儲(chǔ)設(shè)備的出現(xiàn),以及軟件領(lǐng)域操作系統(tǒng)的存在,計(jì)算機(jī)不僅可以用于科學(xué)計(jì)算,還可以用于數(shù)據(jù)管理,從而進(jìn)入文件系統(tǒng)階段。在這個(gè)階段,操作系統(tǒng)中的文件系統(tǒng)模塊管理存儲(chǔ)的數(shù)據(jù)。但是,由于文件之間的相對(duì)獨(dú)立性,文件系統(tǒng)缺乏完整統(tǒng)一的管理和共享數(shù)據(jù)的能力,因此其缺點(diǎn)是數(shù)據(jù)冗余和不一致性較多,數(shù)據(jù)之間的聯(lián)系較弱,數(shù)據(jù)的邏輯獨(dú)立性較差,并且由于文件服務(wù)于特定的應(yīng)用,因此很難在現(xiàn)有數(shù)據(jù)上擴(kuò)展新的應(yīng)用。
20世紀(jì)60年代以后,隨著計(jì)算機(jī)在數(shù)據(jù)管理領(lǐng)域的廣泛應(yīng)用,人們對(duì)數(shù)據(jù)管理技術(shù)提出了更高的要求:希望為企業(yè)或部門組織數(shù)據(jù),減少數(shù)據(jù)冗余,提供更高的數(shù)據(jù)共享能力,同時(shí)要求程序和數(shù)據(jù)具有更高的獨(dú)立性。當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生變化時(shí),不涉及數(shù)據(jù)的物理結(jié)構(gòu),也不影響應(yīng)用程序,從而降低了應(yīng)用程序的開發(fā)和維護(hù)成本。數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)運(yùn)而生,數(shù)據(jù)管理進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)階段。數(shù)據(jù)庫(kù)系統(tǒng)階段的應(yīng)用與數(shù)據(jù)的關(guān)系是通過數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)來實(shí)現(xiàn)的,數(shù)據(jù)庫(kù)管理系統(tǒng)由此誕生。
第一代:網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)
20世紀(jì)60年代,美國(guó)啟動(dòng)了阿波羅載人登月工程。這個(gè)項(xiàng)目需要處理和管理龐大的數(shù)據(jù)。在此背景下,1961年,美國(guó)通用電氣公司開發(fā)了世界上第一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)——集成數(shù)據(jù)存儲(chǔ)(IDS),標(biāo)志著網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)的出現(xiàn),這一系統(tǒng)在當(dāng)時(shí)得到了廣泛的分布和應(yīng)用。1968年,IBM推出了基于分層數(shù)據(jù)模型的IMS(信息管理系統(tǒng)),這是第一個(gè)標(biāo)志性的大型商用數(shù)據(jù)庫(kù)管理系統(tǒng),也是數(shù)據(jù)庫(kù)系統(tǒng)中的第一個(gè)商用產(chǎn)品,并成功應(yīng)用于商業(yè)、金融等領(lǐng)域。
在此期間,為了幫助建立數(shù)據(jù)庫(kù)標(biāo)準(zhǔn),數(shù)據(jù)系統(tǒng)語言會(huì)議(CODASYL)成立了一個(gè)表格處理工作隊(duì),其中包括美國(guó)政府和商業(yè)界的代表。1967年,CODASYL更名為DataBaseTaskGroup (DBTG)。1971年,數(shù)據(jù)庫(kù)任務(wù)組(DBTG)發(fā)表了第一份正式報(bào)告,該報(bào)告包括三個(gè)部分:網(wǎng)狀數(shù)據(jù)庫(kù)模型、數(shù)據(jù)定義語言(DDL)和數(shù)據(jù)操作語言(DML)的規(guī)范。DBTG系統(tǒng)和分層方法代表了第一代數(shù)據(jù)庫(kù)管理系統(tǒng)。
因?yàn)榈谝淮鷶?shù)據(jù)庫(kù)管理系統(tǒng)主要依賴于網(wǎng)格或?qū)哟螖?shù)據(jù)模型。這類數(shù)據(jù)庫(kù)系統(tǒng)具有結(jié)構(gòu)復(fù)雜、數(shù)據(jù)定義和數(shù)據(jù)修改不方便的缺點(diǎn),因此很快被基于關(guān)系數(shù)據(jù)模型的第二代數(shù)據(jù)庫(kù)系統(tǒng)所取代。
第二代:關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)
1970年,Edgar F.Codd在他的論文《大型共享數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)系模型》中提出了關(guān)系數(shù)據(jù)模型,以解決網(wǎng)絡(luò)和層次數(shù)據(jù)庫(kù)系統(tǒng)中存在的問題。Edgar F.Codd建議將數(shù)據(jù)存儲(chǔ)在由行和列組成的簡(jiǎn)單表格中,而不是存儲(chǔ)在層次結(jié)構(gòu)中,這樣當(dāng)用戶查詢數(shù)據(jù)時(shí),就不需要知道它的數(shù)據(jù)結(jié)構(gòu)。1974年,IBM開發(fā)了關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SystemR。該系統(tǒng)證實(shí)了Edgar F.Codd的關(guān)系數(shù)據(jù)模型的可行性、有效性和優(yōu)越性,并直接推動(dòng)了數(shù)據(jù)操作語言SQL的出現(xiàn),成為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)的標(biāo)準(zhǔn)語言。隨后,商業(yè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)如雨后春筍般出現(xiàn)并得到廣泛應(yīng)用。典型的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)包括Oracle、DB2、Informix、Sybase等。1976年,Honeywell公司開發(fā)了Multics關(guān)系數(shù)據(jù)庫(kù)(MRDS),這是第一個(gè)商用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)被稱為第二代數(shù)據(jù)庫(kù)管理系統(tǒng)。由于關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)具有模型簡(jiǎn)單明了、理論基礎(chǔ)好、數(shù)據(jù)獨(dú)立性強(qiáng)、數(shù)據(jù)庫(kù)語言非過程化、標(biāo)準(zhǔn)化等特點(diǎn),因此在數(shù)據(jù)庫(kù)市場(chǎng)上迅速取得了壟斷地位,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)仍然是目前市場(chǎng)份額最大的數(shù)據(jù)庫(kù)管理系統(tǒng)。
第三代:對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)
1976年,美籍華人計(jì)算機(jī)科學(xué)家彼得。陳提出的實(shí)體關(guān)系模型作為一種概念數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)已被廣泛接受。此外,Edgar F.Codd試圖通過稱為RM/T(1979)和隨后的RM/V2(1990)的關(guān)系模型的擴(kuò)展版本來解決他的工作中的一些缺點(diǎn)。擴(kuò)展的關(guān)系模型更接近真實(shí)世界的描述,被歸類為語義數(shù)據(jù)建模。為了適應(yīng)越來越復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用,出現(xiàn)了兩種新型系統(tǒng):OODBMS(面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng))和ORDBMS(面向?qū)ο箨P(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))。然而,與以前的數(shù)據(jù)模型不同,這些模型的實(shí)際組成并不清楚。這些變化促使了第三代數(shù)據(jù)庫(kù)管理系統(tǒng)的出現(xiàn)。
20世紀(jì)90年代以后,互聯(lián)網(wǎng)、多層B/S結(jié)構(gòu)和企業(yè)數(shù)據(jù)庫(kù)與Web應(yīng)用的集成已經(jīng)成為一種趨勢(shì)。90年代末建立了對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),不僅支持廣泛使用的SQL,而且具有良好的通用性和面向?qū)ο筇匦裕С謴?fù)雜對(duì)象和復(fù)雜對(duì)象的復(fù)雜行為。對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)滿足了新的應(yīng)用領(lǐng)域的需求和傳統(tǒng)應(yīng)用領(lǐng)域深化發(fā)展的需要。人們將面向?qū)ο蠹夹g(shù)與數(shù)據(jù)庫(kù)技術(shù)相結(jié)合的系統(tǒng)稱為第三代數(shù)據(jù)庫(kù)管理系統(tǒng)或新一代數(shù)據(jù)庫(kù)管理系統(tǒng)。
系統(tǒng)原理 編輯本段
應(yīng)用程序通過數(shù)據(jù)庫(kù)管理系統(tǒng)訪問和維護(hù)數(shù)據(jù),而數(shù)據(jù)庫(kù)管理系統(tǒng)以特定的結(jié)構(gòu)化方式管理和保存數(shù)據(jù)。為了從大量的數(shù)據(jù)中快速找到所需的數(shù)據(jù),并對(duì)龐大的數(shù)據(jù)庫(kù)進(jìn)行日常維護(hù),有必要使用數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)管理系統(tǒng)是操縱和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。用戶通過數(shù)據(jù)庫(kù)管理系統(tǒng)訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)管理員也通過數(shù)據(jù)庫(kù)管理系統(tǒng)維護(hù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)可以制作多個(gè)應(yīng)用程序,允許用戶在同一時(shí)間或不同時(shí)間使用不同的方法建立、修改和查詢數(shù)據(jù)庫(kù)。大多數(shù)數(shù)據(jù)庫(kù)管理系統(tǒng)都提供了數(shù)據(jù)定義語言、數(shù)據(jù)操作語言和數(shù)據(jù)控制語言,供用戶定義數(shù)據(jù)庫(kù)模式結(jié)構(gòu)和權(quán)限約束,實(shí)現(xiàn)添加、刪除數(shù)據(jù)等操作。
系統(tǒng)分類 編輯本段
在數(shù)據(jù)庫(kù)中,因?yàn)閿?shù)據(jù)是按照一定的數(shù)學(xué)模型組織的。因此,從數(shù)據(jù)模型的角度來看,根據(jù)計(jì)算機(jī)系統(tǒng)支持的數(shù)據(jù)模型的不同,數(shù)據(jù)庫(kù)管理系統(tǒng)主要可以分為以下幾類:
分層數(shù)據(jù)庫(kù)管理系統(tǒng)
分層數(shù)據(jù)庫(kù)管理系統(tǒng)的典型代表是IMS,它是美國(guó)IBM公司開發(fā)的第一個(gè)大型商用數(shù)據(jù)庫(kù)管理系統(tǒng),并得到了廣泛的應(yīng)用。在本系統(tǒng)中,數(shù)據(jù)管理模型是分層數(shù)據(jù)模型,即采用樹結(jié)構(gòu)來表示實(shí)體及其關(guān)系。在層次模型中,文件或記錄之間的關(guān)系形成一個(gè)層次結(jié)構(gòu)。分層數(shù)據(jù)庫(kù)將記錄集表示為倒置的樹結(jié)構(gòu)。一棵樹的節(jié)點(diǎn)代表實(shí)體集,一棵樹可以定義為一組節(jié)點(diǎn),即有一個(gè)專門指定的節(jié)點(diǎn)叫做根(node),其他節(jié)點(diǎn)只有一個(gè)父節(jié)點(diǎn)。節(jié)點(diǎn)之間的連線表示兩個(gè)相連的實(shí)體集之間的關(guān)系,只能是“1: m”。通常代表1的實(shí)體集放在最上面,稱為父節(jié)點(diǎn),代表M的實(shí)體集放在最下面,稱為子節(jié)點(diǎn)。記錄之間的聯(lián)系是通過指針來實(shí)現(xiàn)的,查詢效率高,但缺點(diǎn)是復(fù)雜難掌握。
網(wǎng)絡(luò)化數(shù)據(jù)庫(kù)管理系統(tǒng)
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)的典型代表是CODASYL提出的DBTG系統(tǒng)。在這個(gè)系統(tǒng)中,數(shù)據(jù)模型是一個(gè)網(wǎng)絡(luò)模型,即實(shí)體類型和實(shí)體之間的關(guān)系用有向圖結(jié)構(gòu)來表示。和層次模型一樣,記錄之間的關(guān)系也是通過指針來實(shí)現(xiàn)的,可以很容易地實(shí)現(xiàn)M: N關(guān)系,查詢效率高。但它也有和層次模型類似的缺點(diǎn),就是數(shù)據(jù)結(jié)構(gòu)復(fù)雜,編程也復(fù)雜。
關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)
關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)模型采用IBM研究員Edgar F.Codd在他的論文中提出的關(guān)系模型。在關(guān)系模型中,用一個(gè)叫做“關(guān)系”的二維表來組織數(shù)據(jù),也就是用一個(gè)二維表結(jié)構(gòu)來表示實(shí)體和實(shí)體之間的關(guān)系。背后可能有復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來保證對(duì)各種數(shù)據(jù)操作的快速響應(yīng),但數(shù)據(jù)庫(kù)系統(tǒng)的用戶不需要關(guān)聯(lián),從而提高了數(shù)據(jù)庫(kù)開發(fā)人員的效率。
常見系統(tǒng) 編輯本段
MySQL
MySQL是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),由瑞典的MySQL AB公司開發(fā)。MySQL是流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)之一,MySQL是Web應(yīng)用中最好的RDBMS應(yīng)用之一。關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)在不同的表中,而不是將所有數(shù)據(jù)存儲(chǔ)在一個(gè)大倉(cāng)庫(kù)中,這提高了速度和靈活性。
Oracle
Oracle是美國(guó)Oracle公司(甲骨文公司)提供的一套以分布式數(shù)據(jù)庫(kù)為核心的軟件產(chǎn)品,是目前最流行的客戶機(jī)/服務(wù)器或B/S架構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是一個(gè)基于數(shù)據(jù)庫(kù)的中間件。Oracle數(shù)據(jù)庫(kù)是目前世界上應(yīng)用最廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng)。作為一個(gè)通用數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能。作為關(guān)系數(shù)據(jù)庫(kù),它是完全關(guān)系的產(chǎn)物;作為一個(gè)分布式數(shù)據(jù)庫(kù),它實(shí)現(xiàn)了分布式處理功能。但是它的所有知識(shí),只要在一個(gè)機(jī)型上學(xué)習(xí)甲骨文知識(shí),就可以用在各種類型的機(jī)器上。
MicrosoftSQL Server
SQL Server是微軟公司推出的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),具有使用方便、可擴(kuò)展性好、與相關(guān)軟件集成度高等優(yōu)點(diǎn)。它可以跨多種平臺(tái)使用,從運(yùn)行Microsoft Windows 98的筆記本電腦到運(yùn)行Microsoft Windows 2012的大型多處理器服務(wù)器。MicrosoftSQL Server是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),它通過使用集成的商業(yè)智能(BI)工具來提供企業(yè)級(jí)數(shù)據(jù)管理。MicrosoftSQLServer數(shù)據(jù)庫(kù)引擎為關(guān)系數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更加安全可靠的存儲(chǔ)功能,使用戶能夠?yàn)槠髽I(yè)構(gòu)建和管理高可用性和高性能的數(shù)據(jù)應(yīng)用程序。
Access
Access是微軟公司推出的小型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。和Word、Excel、PowerPoint一樣,也是Office系列辦公軟件的重要組成部分之一。Access功能強(qiáng)大,操作簡(jiǎn)單,為用戶提供了數(shù)據(jù)管理工具集和數(shù)據(jù)庫(kù)應(yīng)用程序的開發(fā)環(huán)境。它主要適用于小型數(shù)據(jù)庫(kù)系統(tǒng)的開發(fā),是目前流行的桌面數(shù)據(jù)庫(kù)管理系統(tǒng)之一。
PostgreSQL
PostgreSQL是一個(gè)自由軟件對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS ),功能齊全,基于加州大學(xué)計(jì)算機(jī)系開發(fā)的PostgreSQL。POSTGRES的很多領(lǐng)先概念是在相對(duì)較晚的階段才出現(xiàn)在商業(yè)網(wǎng)站的數(shù)據(jù)庫(kù)中的。PostgreSQL支持大多數(shù)SQL標(biāo)準(zhǔn),并提供許多其他現(xiàn)代功能,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性和多版本并發(fā)控制。類似地,PostgreSQL可以在許多方面進(jìn)行擴(kuò)展,例如添加新的數(shù)據(jù)類型、函數(shù)、運(yùn)算符、聚合函數(shù)、索引方法和過程語言。此外,由于許可證的靈活性,任何人都可以出于任何目的免費(fèi)使用、修改和分發(fā)PostgreSQL。
BigTable
BigTable是一個(gè)非關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它是一種稀疏的、分布式的、持久的多維排序圖,可以快速可靠地處理PB級(jí)數(shù)據(jù),可以部署到數(shù)千臺(tái)機(jī)器上。BigTable已經(jīng)應(yīng)用于60多個(gè)谷歌產(chǎn)品和項(xiàng)目,包括谷歌分析、谷歌財(cái)務(wù)、Orkut、個(gè)性化搜索、Writely和谷歌地球。這些產(chǎn)品對(duì)BigTable提出了不同的要求,有的需要高通量批處理,有的需要及時(shí)向終端用戶提供響應(yīng)數(shù)據(jù)。他們使用的BigTable集群的配置也大相徑庭。一些集群只有幾臺(tái)服務(wù)器,而另一些集群需要數(shù)千臺(tái)服務(wù)器,存儲(chǔ)數(shù)百TB的數(shù)據(jù)。
Cassandra
Cassandra是一個(gè)免費(fèi)、開源、分布式、寬列存儲(chǔ)NoSQL數(shù)據(jù)庫(kù)管理系統(tǒng),旨在處理許多商業(yè)服務(wù)器上的大量數(shù)據(jù)。
MongoDB
MongoDB是由其同名公司(原名10Gen)開發(fā)的開源軟件,其特點(diǎn)是高性能和高可擴(kuò)展性。這是一個(gè)面向文檔的NoSQL數(shù)據(jù)庫(kù)管理系統(tǒng)。
CouchDB
CouchDB是一個(gè)開源的面向文檔的數(shù)據(jù)管理系統(tǒng)。CouchDB可以安裝在大多數(shù)操作系統(tǒng)上,包括Linux和MacOSX X,CouchDB的文檔更新模型是無鎖的,所以CouchDB、SQL和CouchDB的結(jié)構(gòu)不需要預(yù)定義,沒有固定的模式,所以它是任意結(jié)構(gòu)的文檔集合。數(shù)據(jù)不必滿足任何范式,存在數(shù)據(jù)冗余;用戶不需要知道文檔結(jié)構(gòu),甚至不需要知道文檔名稱;屬于動(dòng)態(tài)模式下的靜態(tài)查詢。
系統(tǒng)組成 編輯本段
連接管理器和安全管理器
連接管理器提供了建立數(shù)據(jù)庫(kù)連接的設(shè)備??梢栽诒镜卦O(shè)置,也可以通過網(wǎng)絡(luò)設(shè)置,后者更常見。它驗(yàn)證登錄憑證,如用戶名和密碼,并返回連接句柄。數(shù)據(jù)庫(kù)連接可以作為單個(gè)進(jìn)程運(yùn)行,也可以作為進(jìn)程中的一個(gè)線程運(yùn)行。線程代表進(jìn)程的內(nèi)部執(zhí)行路徑,是處理器調(diào)度的最小單位。一個(gè)進(jìn)程可以包含多個(gè)線程,這些線程可以共享資源(比如內(nèi)存)。安全管理器驗(yàn)證用戶是否具有執(zhí)行所需數(shù)據(jù)庫(kù)操作的適當(dāng)權(quán)限。例如,一些用戶擁有讀取數(shù)據(jù)的權(quán)限,而另一些用戶擁有寫入數(shù)據(jù)的權(quán)限。安全管理器從目錄中檢索這些權(quán)限。
DDL編譯器
DDL編譯器編譯DDL中的數(shù)據(jù)定義。理想情況下,DBMS應(yīng)該提供三個(gè)DDL:一個(gè)用于內(nèi)部數(shù)據(jù)模型,一個(gè)用于邏輯數(shù)據(jù)模型,一個(gè)用于外部數(shù)據(jù)模型。然而,對(duì)于使用SQL作為DDL的關(guān)系數(shù)據(jù)庫(kù),在大多數(shù)情況下,它是具有三個(gè)不同指令集的單個(gè)DDL。DDL編譯器首先解析DDL定義并檢查其語法正確性。然后,它將數(shù)據(jù)定義轉(zhuǎn)換為內(nèi)部形式,并在出現(xiàn)錯(cuò)誤時(shí)輸出錯(cuò)誤提示。編譯成功后,它將在目錄中注冊(cè)數(shù)據(jù)定義,數(shù)據(jù)庫(kù)管理系統(tǒng)的所有其他組件都可以通過目錄使用這些定義。
詢問處理程序
查詢處理器是數(shù)據(jù)庫(kù)管理系統(tǒng)最重要的組成部分之一。它幫助我們執(zhí)行與數(shù)據(jù)庫(kù)查詢相關(guān)的操作,例如從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)、插入數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)。大多數(shù)DBMS供應(yīng)商都有自己專用的查詢處理器,通常包括DML編譯器、查詢解釋器、查詢重寫器、查詢優(yōu)化器和查詢執(zhí)行器。
四層架構(gòu):存儲(chǔ)管理器
存儲(chǔ)管理器管理物理文件訪問,以確保正確有效地存儲(chǔ)數(shù)據(jù)。它由事務(wù)管理器、緩沖管理器、鎖管理器和恢復(fù)管理器組成。
DBMS工具
除了前面討論的組件之外,數(shù)據(jù)庫(kù)管理部門還附帶了各種工具。加載工具支持從各種來源(如其他數(shù)據(jù)庫(kù)管理部門、文本文件、Excel文件等)加載信息。)到數(shù)據(jù)庫(kù)里。重組工具自動(dòng)重組數(shù)據(jù)以提高性能。性能監(jiān)控工具報(bào)告各種關(guān)鍵性能指標(biāo),如占用的存儲(chǔ)空間、查詢響應(yīng)時(shí)間和事務(wù)吞吐量,以監(jiān)督數(shù)據(jù)庫(kù)管理系統(tǒng)。用戶管理工具支持用戶組或帳戶的創(chuàng)建以及權(quán)限的分配。數(shù)據(jù)庫(kù)管理工具通常包括備份和恢復(fù)工具。
DBMS接口
數(shù)據(jù)庫(kù)管理系統(tǒng)需要與許多成員進(jìn)行交互,如數(shù)據(jù)庫(kù)設(shè)計(jì)者、數(shù)據(jù)庫(kù)管理員、應(yīng)用程序和最終用戶。為了促進(jìn)這些交互,它提供了各種用戶接口,如基于網(wǎng)絡(luò)的接口、獨(dú)立查詢語言接口、命令行接口、基于表單的接口、用戶圖形接口、自然語言接口、應(yīng)用編程接口(API)、管理接口和網(wǎng)絡(luò)接口。
系統(tǒng)功能 編輯本段
一般來說,數(shù)據(jù)庫(kù)管理系統(tǒng)的功能主要包括以下六個(gè)方面。
數(shù)據(jù)定義功能:數(shù)據(jù)定義包括定義構(gòu)成數(shù)據(jù)庫(kù)結(jié)構(gòu)的模式、存儲(chǔ)模式和外部模式,定義外部模式和模式之間的映射,定義模式和存儲(chǔ)模式之間的映射,定義相關(guān)約束。例如,為確保數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確語義而定義的完整性規(guī)則、為確保數(shù)據(jù)庫(kù)的安全性而定義的用戶密碼和訪問權(quán)限等。
數(shù)據(jù)處理功能:數(shù)據(jù)操作包括數(shù)據(jù)庫(kù)數(shù)據(jù)的檢索、插入、修改和刪除等基本操作。
數(shù)據(jù)庫(kù)操作管理:管理數(shù)據(jù)庫(kù)的操作是數(shù)據(jù)庫(kù)管理系統(tǒng)的核心部分,包括并發(fā)控制、安全檢查、完整性約束的檢查和實(shí)現(xiàn)以及數(shù)據(jù)庫(kù)的內(nèi)部維護(hù)(如索引和數(shù)據(jù)字典的自動(dòng)維護(hù))。所有訪問數(shù)據(jù)庫(kù)的操作都應(yīng)在這些控制程序的統(tǒng)一管理下進(jìn)行,以確保數(shù)據(jù)的安全性、完整性和一致性,以及多個(gè)用戶對(duì)數(shù)據(jù)庫(kù)的并發(fā)使用。
數(shù)據(jù)存儲(chǔ)和管理功能:數(shù)據(jù)庫(kù)需要存儲(chǔ)各種數(shù)據(jù),如數(shù)據(jù)字典、用戶數(shù)據(jù)、訪問路徑等。數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)將這些數(shù)據(jù)分門別類地組織、存儲(chǔ)和管理,確定用什么樣的文件結(jié)構(gòu)和訪問方式在物理上組織這些數(shù)據(jù),如何實(shí)現(xiàn)數(shù)據(jù)之間的聯(lián)系,從而提高存儲(chǔ)空間的利用率,提高隨機(jī)查找、順序查找、添加、刪除、修改的時(shí)間效率。
數(shù)據(jù)庫(kù)建立和維護(hù)功能:數(shù)據(jù)庫(kù)的建立包括數(shù)據(jù)庫(kù)初始數(shù)據(jù)的輸入和數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)庫(kù)維護(hù)包括數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)和恢復(fù)、數(shù)據(jù)庫(kù)重組和重建、性能監(jiān)控和分析等。
數(shù)據(jù)通信接口功能:數(shù)據(jù)庫(kù)管理系統(tǒng)需要提供與其他軟件系統(tǒng)通信的功能。例如,它提供了與其他數(shù)據(jù)庫(kù)管理系統(tǒng)或文件系統(tǒng)的接口,以便可以將數(shù)據(jù)轉(zhuǎn)換為另一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)或文件系統(tǒng)可以接收的格式,或者可以接收來自其他數(shù)據(jù)庫(kù)管理系統(tǒng)或文件系統(tǒng)的數(shù)據(jù)。除上述功能外,為適應(yīng)數(shù)據(jù)共享環(huán)境,現(xiàn)代數(shù)據(jù)庫(kù)管理系統(tǒng)一般還具有數(shù)據(jù)完整性維護(hù)、安全保護(hù)、多用戶并發(fā)控制和故障恢復(fù)等功能。
工作模式 編輯本段
數(shù)據(jù)庫(kù)管理系統(tǒng)是管理數(shù)據(jù)的軟件系統(tǒng),是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分。用戶在數(shù)據(jù)庫(kù)系統(tǒng)中的所有操作,包括數(shù)據(jù)定義、查詢、更新和各種控制,都是通過數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行的。
數(shù)據(jù)庫(kù)管理系統(tǒng)的工作模式如下:
1接收來自應(yīng)用程序的數(shù)據(jù)請(qǐng)求和處理請(qǐng)求。
將用戶的數(shù)據(jù)請(qǐng)求轉(zhuǎn)換成復(fù)雜的機(jī)器代碼。
3 .實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。
4接收對(duì)數(shù)據(jù)庫(kù)操作的查詢結(jié)果。
5.處理查詢結(jié)果。
6.將處理結(jié)果返回給用戶。
數(shù)據(jù)庫(kù)管理系統(tǒng)總是基于某種數(shù)據(jù)模型,因此它可以看作是某種數(shù)據(jù)模型在計(jì)算機(jī)系統(tǒng)上的具體實(shí)現(xiàn)。根據(jù)不同的數(shù)據(jù)模型,數(shù)據(jù)庫(kù)管理系統(tǒng)分為層次型、網(wǎng)絡(luò)型、關(guān)系型和面向?qū)ο笮?。在不同的?jì)算機(jī)系統(tǒng)中,由于缺乏統(tǒng)一的標(biāo)準(zhǔn),即使是具有相同數(shù)據(jù)模型的數(shù)據(jù)庫(kù)管理系統(tǒng),在用戶界面和系統(tǒng)功能方面也往往是不同的。
系統(tǒng)特征 編輯本段
數(shù)據(jù)是統(tǒng)一組織和管理的:由于數(shù)據(jù)庫(kù)系統(tǒng)使用復(fù)雜的數(shù)據(jù)模型來表示數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)模型不僅描述了數(shù)據(jù)本身的特征,還描述了數(shù)據(jù)之間的關(guān)系,因此數(shù)據(jù)不再是面向某個(gè)特定的應(yīng)用,而是面向整個(gè)應(yīng)用系統(tǒng)。數(shù)據(jù)維護(hù)簡(jiǎn)單方便,易于擴(kuò)展,數(shù)據(jù)冗余明顯減少,真正實(shí)現(xiàn)了數(shù)據(jù)共享。
高度的數(shù)據(jù)獨(dú)立性:數(shù)據(jù)的獨(dú)立性是指數(shù)據(jù)和程序的獨(dú)立性,將應(yīng)用程序中的數(shù)據(jù)定義和管理功能分離,由DBMS負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和管理。由于數(shù)據(jù)在數(shù)據(jù)庫(kù)管理系統(tǒng)的管理下采用三層模式結(jié)構(gòu),數(shù)據(jù)的邏輯獨(dú)立性和物理獨(dú)立性得到了明顯的體現(xiàn)。應(yīng)用程序員不用關(guān)心數(shù)據(jù)的存儲(chǔ)位置和存取方法,只需要知道數(shù)據(jù)的邏輯結(jié)構(gòu),這樣就減輕了負(fù)擔(dān)。
附件列表
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。