淺談數(shù)據(jù)庫管理系統(tǒng)
目前,常見的數(shù)據(jù)庫管理系統(tǒng)主要有 Oracle、MySQL、 SQL Server,, Mongodb等,這些數(shù)據(jù)庫中,前三種均為關(guān)系型數(shù)據(jù)庫,而 Mongodb是非關(guān)系型的數(shù)據(jù)庫。
1.Oracle
Oracle是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領(lǐng)域一直處領(lǐng)先地位的產(chǎn)品??梢哉f Oracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。
Oracle的結(jié)構(gòu)包括數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)、外存儲結(jié)構(gòu)、內(nèi)存儲結(jié)構(gòu)和進(jìn)程結(jié)構(gòu)。在Oracle中,數(shù)據(jù)庫不僅指物理上的數(shù)據(jù),還包括處理這些數(shù)據(jù)的程序,即DBMS本身。Oracle提供了 PL/SQL、 Designer2000、Foms等開發(fā)和設(shè)計(jì)工具。
除了以關(guān)系格式存儲數(shù)據(jù)外, Oracle支持面向?qū)ο蟮慕Y(jié)構(gòu)(如抽象數(shù)據(jù)類型)。一個(gè)對象可以與其他對象建立聯(lián)系,也可以包含其他對象,還可以用一個(gè)對象視圖支持面向?qū)ο蟮慕涌跀?shù)據(jù)而無須對表做任何修改。
無論是面向?qū)ο蟮慕Y(jié)構(gòu)還是關(guān)系結(jié)構(gòu), Oracle數(shù)據(jù)庫都將其數(shù)據(jù)存儲在物理的數(shù)據(jù)文件中。數(shù)據(jù)庫結(jié)構(gòu)提供數(shù)據(jù)存儲到文件的邏輯圖,允許不同類型的數(shù)據(jù)分開存,這些邏輯劃分即是表空間。在Oracle中,除了存儲數(shù)據(jù)的文件外,還有DBMS的代碼文件日志文件和其他一些控制文件、跟蹤文件等。外存儲結(jié)構(gòu)主要包括表空間和文件結(jié)構(gòu)。
Oracle數(shù)據(jù)庫在運(yùn)行中使用兩種類型的內(nèi)存結(jié)構(gòu),分別是系統(tǒng)全局區(qū)和程序全局區(qū)。系統(tǒng)全局區(qū)是數(shù)據(jù)庫運(yùn)行時(shí)存放系統(tǒng)數(shù)據(jù)的內(nèi)存區(qū)域,它由所有服務(wù)器進(jìn)程和客戶進(jìn)程共享程序全局區(qū)是單個(gè)存放 Oracle進(jìn)程工作時(shí)需要的數(shù)據(jù)和控制信息的,程序全局區(qū)不能共享。
2. MYSQL
MYSQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典 MYSQL AB公司開發(fā),目前屬于Oracle旗下產(chǎn)品。 MYSQL是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,大量小型Web應(yīng)用都采用該數(shù)據(jù)庫管理系統(tǒng)。
MYSQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MYSQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。 MYSQL軟件采用了雙授權(quán)政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MSQL作為網(wǎng)站數(shù)據(jù)庫。
3. SQLServer
SQL Server是微軟公司的數(shù)據(jù)庫產(chǎn)品, SQL Server I的分布式體系結(jié)構(gòu)把應(yīng)用程序?qū)?shù)據(jù)庫的訪問和數(shù)據(jù)庫引擎分離開來。 SQL Server的核心數(shù)據(jù)庫服務(wù)器運(yùn)行在基于Windows的服務(wù)器之上。基于 Windows的服務(wù)器一般通過以太局域網(wǎng)與多個(gè)客戶機(jī)系統(tǒng)連接。這些客戶機(jī)系統(tǒng)一般是運(yùn)行 SQL Server客戶機(jī)軟件的PC機(jī)。這些PC機(jī)既可以是單獨(dú)的桌面系統(tǒng),也可以是其他網(wǎng)絡(luò)服務(wù)的平臺,如 IIS Web服務(wù)器。
SQL Server與流行的開發(fā)工具和桌面應(yīng)用程序緊密集成,例如,可以從由 VisualBasic、 Visual C+、 Powerbuilder、 Delphi Visual Foxpro和許多其他PC開發(fā)環(huán)境下開發(fā)的客戶應(yīng)用程序中訪問 SQL Server數(shù)據(jù)庫。 SQL Server與流行開發(fā)工具所使用的幾種數(shù)據(jù)訪問接口兼容,例如,可以通過 Microsoft JET Engine和 Data Access Objects(DAO) Remote Data Objects(RDO). Activex Data Objects (ADO), OLE DB, ODBC (OpenDatabase Connectivity,開放數(shù)據(jù)庫互連) SQL Server內(nèi)置 Db-library以及第三方開發(fā)工具來訪問 SQL Server數(shù)據(jù)庫。對于無縫桌面訪問, SQL Server使用 OLE DB提供者和ODBC驅(qū)動程序,這些驅(qū)動程序允許從任何與ODBC或者 OLE DB兼容的桌面
應(yīng)用程序中訪問 SQL Server數(shù)據(jù)庫。 OLE DB和ODBC可以從數(shù)百個(gè)簡化設(shè)計(jì)的桌面應(yīng)用程序中為特定的査詢、數(shù)據(jù)分析、自定義報(bào)表打開 SQL Server數(shù)據(jù)庫。桌面集成減少了自定義的編程工作。 SQL Server對ODBC的支持允許其他平臺,如 Macintosh或各種Unix系統(tǒng)訪問 SQL Server數(shù)據(jù)庫。
SQL Server的4個(gè)基本服務(wù)器組件包括 Open Data Services、MS SQL server、SQLServer Agent和 MSDTC。
4. Mongodb
Mongodb是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。目在為Web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
Mongodb是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,類似Json的bson格式,因此可以存比較復(fù)雜的數(shù)據(jù)類型。 Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。