當我看到這周的每周一文的題目是“關於對資料庫的認識和理解”的時候,我突然覺得無從下手,因為我不知道寫什麼,自己對資料庫的理解和接觸過的資料庫,僅僅限於課堂上老師講過的微軟公司的SQLServer2008,對於其他的資料庫自己也只是道聽途說。於是乎我瘋狂的在網上找資料,從不同的方面瞭解了當前的幾種主流
當我看到這周的每周一文的題目是“關於對資料庫的認識和理解”的時候,我突然覺得無從下手,因為我不知道寫什麼,自己對資料庫的理解和接觸過的資料庫,僅僅限於課堂上老師講過的微軟公司的SQLServer2008,對於其他的資料庫自己也只是道聽途說。於是乎我瘋狂的在網上找資料,從不同的方面瞭解了當前的幾種主流資料庫。在此整理一下自己所瞭解到的東西分享給大家。當然由於SQLServer2008自己用的還算多,所以我會著重的講解一下自己對這個資料庫的感受。
目前,商品化的資料庫管理系統以關係型資料庫為主導產品,技術比較成熟。面向對象的資料庫管理系統雖然技術先進,資料庫易於開發、維護,但尚未有成熟的產品。國際國內的主導關係型資料庫管理系統有Oracle、Sybase、INFORMIX和INGRES。這些產品都支持多平臺,如我們熟知的UNIX、Windows等,但支持的程度不一樣。當然這裡面的資料庫,對於處於學生階段的我們來說比較陌生,但是在實際工作中接觸的比較多。言歸正傳,接下來我就從安全性,伸縮性,開放性,操作性,以及應用領域等幾個方面來給大家介紹介紹。
- SQLServer
SQL Server 是Microsoft 公司推出的關係型資料庫管理系統。可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平臺使用。是Web上最流行的用於存儲數據的資料庫,它已廣泛用於電子商務、銀行、保險、電力等與資料庫有關的行業。目前最新的版本是SQLServer2012.他只能運行於windows上,操作系統的系統的穩定性對資料庫十分重要。並行實施和共存模型不是很成熟,很難處理日益增多的用戶數和數據捲,伸縮性有限。但是由於其友好的操作界面,使開發者操作起來比較容易。它提供了眾多的web和電子商務功能,使得通過對web數據的訪問比較輕鬆。
其主要特點如下:
- 優點:
- 真正的客戶/伺服器體繫結構; 在這種體繫結構中,包括多台電腦,其中處理應用程式,請求服務的電腦稱客戶機,處理資料庫的電腦稱為伺服器。
- 圖形化用戶界面,使系統管理和資料庫管理更加直觀、簡單;提供了表、視圖和查詢定義的圖形界面,在Query Analyze的圖形界面中使用SQL語言,伺服器和資料庫的用戶配置的圖形化界面。
- 豐富的編程介面工具,為用戶進行程式設計提供了更大的選擇餘地;SQLServer提供了豐富的應用程式介面來訪問伺服器的數據,主要的訪問方法有:ODBC API、OLE DB、Transact-SQL和DB-Library,客戶機可以通過這些API作為動態連接庫來使用,並通過客戶端的網路庫與SQLServer伺服器通信。對Web技術的支持,使用戶能夠很容易地將資料庫中的數據發佈到Web頁面上;
- 在Web Assistant中可以將資料庫表中的數據引出來,還可以將HTML中的數據引入到資料庫中。SQLServer的數據可以自動發行到Web頁上;用戶可以通過一個普通的瀏覽器來查詢存儲在SQLServer中的信息,因此可以用存儲在SQLServer中的信息創建動態Web頁。
- SQL Server提供數據倉庫功能:這個功能只在Oracle和其他更昂貴的DBMS中才有。
- 支持XML(Extensive Markup Language,擴展標記語言)
- 缺點:
- 開放性:只能運行在微軟的windows平臺,沒有絲毫的開放性可言。
- 可伸縮性,並行性:並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據捲,伸縮性有限。
- 性能穩定性:SQLServer當用戶連接多時性能會變的很差,並且不夠穩定。
- 使用風險:SQLServer完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需時間來證明。並不十分相容早期產品。使用需要冒一定風險。
- 客戶端支持及應用模式:主要支持C/S模式。
- ORACLE:
提起資料庫,第一個想到的公司,一般都會是Oracle(甲骨文)。該公司成立於1977年,最初是一家專門開發資料庫的公司。Oracle在資料庫領域一直處於領先地位。 1984年,首先將關係資料庫轉到了桌面電腦上。然後,Oracle5率先推出了分散式資料庫、客戶/伺服器結構等嶄新的概念。最新的Oracle 12c主要增加了對象技術,成為關係—對象資料庫系統。目前,Oracle產品覆蓋了大、中、小型機等幾十種機型,Oracle資料庫成為世界上使用最廣泛的關係數據系統之一.
- 優點:
- 相容性:Oracle產品採用標準SQL,並經過美國國家標準技術所(NIST)測試。與IBM SQL/DS、DB2、INGRES、IDMS/R等相容。
- 可移植性:Oracle的產品可運行於很寬範圍的硬體與操作系統平臺上。可以安裝在70種以上不同的大、中、小型機上;可在VMS、DOS、UNIX、Windows等多種操作系統下工作。
- 可聯結性:Oracle能與多種通訊網路相連,支持各種協議(TCP/IP、DECnet、LU6.2等)。
- 高生產率:Oracle產品提供了多種開發工具,能極大地方便用戶進行進一步的開發。
- 開放性:Oracle良好的相容性、可移植性、可連接性和高生產率使Oracle RDBMS具有良好的開放性
- Oracle真正實現了行級鎖,SQL Server也宣稱實現了行級鎖,但你實際去試,如果不加索引,其實是不行的。
- Oracle的事務日誌歸檔相當方便,而SQL Server要用事務日誌備份來實現,而且還要配置自動作業,啟動agent服務。
- Oracle的數據字典豐富,使得DBA容易判斷資料庫的各種情況,雖然SQL Server 2005學習了Oracle的數據字典的特點,但從數量及方便程度上還是相差太多。個人感覺這是Oracle最人性化的地方。
- Oracle的觸發器比SQL Server的種類多幾種。
- 缺點:
- 較複雜,操作界面不友好。對於新手而言,上手有一定的難度。
- MySql:
MySQL是最受歡迎的開源SQL資料庫管理系統,它由MySQL AB開發、發佈和支持。MySQL AB是一家基於MySQL開發人員的商業公司,它是一家使用了一種成功的商業模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的註冊商標。MySQL是一個快速的、多線程、多用戶和健壯的SQL資料庫伺服器。MySQL伺服器支持關鍵任務、重負載生產系統的使用,也可以將它嵌入到一個大配置的軟體中去。
- 優點:
- 它使用的核心線程是完全多線程,支持多處理器。
- 有多種列類型:1、2、3、4、和8位元組長度自有符號/無符號整數、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM類型。
- 它通過一個高度優化的類庫實現SQL函數庫並像他們能達到的一樣快速,通常在查詢初始化後不該有任何記憶體分配。沒有記憶體漏洞。
- 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來自不同資料庫的表。
- 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。
- 所有列都有預設值。你可以用INSERT插入一個表列的子集,那些沒用明確給定值的列設置為他們的決省值。
- MySQL可以工作在不同的平臺上。支持C、C++、Java、Perl、PHP、Python和TCL API。
- 缺點:
- MySQL最大的缺點是其安全系統,主要是複雜而非標準,另外只有到調用mysqladmin來重讀用戶許可權時才發生改變。
- MySQL的另一個主要的缺陷之一是缺乏標準的RI(Referential Integrity-RI)機制;Rl限制的缺乏(在給定欄位域上的一種固定的範圍限制)可以通過大量的數據類型來補償。
- MySQL沒有一種存儲過程(Stored Procedure)語言,這是對習慣於企業級資料庫的程式員的最大限制。
- MySQL不支持熱備份。
- MySQL的價格隨平臺和安裝方式變化。
以上就是本人通過收集資料以及一些自我的感受整理的關於對幾種資料庫的認識。
資料來源:
http://blog.csdn.net/keywaytang/article/details/7544002
http://blog.renren.com/share/253251848/11925571593
http://blog.chinaunix.net/uid-7374279-id-2057575.html
http://www.educity.cn/develop/123622.html
http://blog.163.com/zhenzhen09biye@126/blog/static/130059154201001443631158/