1. 程式人生 > >ORACLE、 SQLSERVER、MYSQL與DB2的區別

ORACLE、 SQLSERVER、MYSQL與DB2的區別

1. ORACLE
oracle能在所有主流平臺上執行(包括 windows)。完全支援所有的工業標準採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支援.oracle並行伺服器通過使一組結點共享同一簇中的工作來擴充套件windownt的能力,提供高可用性和高伸縮性的簇的解決方案。如果windowsNT不能滿足需要,使用者可以把資料庫移到UNIX中。Oracle的並行伺服器對各種UNIX平臺的叢集機制都有著相當高的整合度。oracle獲得最高認證級別的ISO標準認證.oracle效能最高, 保持開放平臺下的TPC-D和TPC-C的世界記錄oracle多層次網路計算,支援多種工業標準,可以用ODBC、JDBC、OCI等網路客戶連線。長時間的開發經驗,完全向下相容。得到廣泛的應用。完全沒有風險。
Oracle在相容性、可移植性、可聯結性、高生產率上、開放性也存在優點
。Oracle產品採用標準SQL,並經過美國國家標準技術所(NIST)測試。與IBM SQL/DS,DB2,INGRES,IDMS/R等相容。 Oracle的產品可運行於很寬範圍的硬體與作業系統平臺上。可以安裝在70種以上不同的大、中、小型機上;可在VMS、DOS、UNIX、WINDOWS等多種作業系統下工作。能與多種通訊網路相連,支援各種協議(TCP/IP、DECnet、LU6.2等)。提供了多種開發工具,能極大的方便使用者進行進一步的開發。Oracle良好的相容性、可移植性、可連線性和高生產率是Oracle RDBMS具有良好的開放性。

2. SQLSERVER
SQL Server 是Microsoft推出一套產品,它具有使用方便、可伸縮性好、與相關軟體整合程度高
等優點,逐漸成為Windows平臺下進行資料庫應用開發較為理想的選擇之一。SQLServer是目前流行的資料庫之一,它已廣泛應用於金融,保險,電力,行政管理等與資料庫有關的行業.而且,由於其易操作性及友好的介面,贏得了廣大使用者的青睞,尤其是SQLServer與其它資料庫,如Access,FoxPro,Excel等有良好的ODBC介面,可以把上述資料庫轉成SQLServer的資料庫,因此目前越來越多的讀者正在使用SQLServer.
3. MYSQL
MySQL不支援事務處理,沒有檢視,沒有儲存過程和觸發器,沒有資料庫端的使用者自定義函式,不能完全使用標準的SQL語法。
從資料庫行家聽說的第一件事就是MySQL缺乏transactions,rollbacks, 和subselects的功能。如果你計劃使用MySQL寫一個關於銀行、會計的應用程式,或者計劃維護一些隨時需要線性遞增的不同類的計數器,你將缺乏transactions功能。在現有的釋出版本的MySQL下,請不要有任何的這些想法。(請注意,MySQL的測試版3.23.x系列現在已經支援transactions了)。
  在非常必要的情況下,MySQL的侷限性可以通過一部分開發者的努力得到克服。在MySQL中你失去的主要功能是subselect語句,而這正是其它的所有資料庫都具有的。換而言之,這個失去的功能是一個痛苦。
MySQL沒法處理複雜的關聯性資料庫功能,例如,子查詢(subqueries),雖然大多數的子查詢都可以改寫成join
另一個MySQL沒有提供支援的功能是事務處理(transaction)以及事務的提交(commit)/撤銷(rollback)。一個事務指的是被當作一個單位來共同執行的一群或一套命令。如果一個事務沒法完成,那麼整個事務裡面沒有一個指令是真正執行下去的。對於必須處理線上訂單的商業網站來說,MySQL沒有支援這項功能,的確讓人覺得很失望。但是可以用MaxSQL,一個分開的伺服器,它能通過外掛的表格來支援事務功能。 
外來鍵(foreignkey)以及參考完整性限制(referentialintegrity)可以讓你制定表格中資料間的約束,然後將約束(constraint)加到你所規定的資料裡面。這些MYSQL沒有的功能表示一個有賴複雜的資料關係的應用程式並不適合使用MySQL。當我們說MySQL不支援外來鍵時,我們指的就是資料庫的參考完整性限制--MySQL並沒有支援外來鍵的規則,當然更沒有支援連鎖刪除(cascadingdelete)的功能。簡短的說,如果你的工作需要使用複雜的資料關聯,那你還是用原來的Access吧。 
你在MySQL中也不會找到儲存程序(storedprocedure)以及觸發器(trigger)。(針對這些功能,在Access提供了相對的事件程序(eventprocedure)。)