1. 程式人生 > >Mysql、Oracle、Db2的比較

Mysql、Oracle、Db2的比較


Process——————————————  database  ——Object

Process———— Server  —————— User     ——Object

Process————database——User ——Schema  ——Object

依次是Mysql、Oracle、Db2

沒做過oracle多例項,db2也是剛剛接觸,淺顯的理解

Mysql這種方式很初級最容易被人想到,Database與User分開是跟其他兩個的區別,用授權來關聯使用者和資料庫。

jdbc的連線地址裡面,三者分別指定了Database、User、User(&Schema),Db2如果不單獨建立Schema則形式是跟Oracle一樣的。Db2的User只能是作業系統的使用者,資料庫本身不能建立使用者,這點好像不太好,對於不同的應用系統,Mysql是建立不同的Database,Oracle是建立不同的User,這時Db2有兩種方法,一是建立不同的作業系統使用者,二是在User下建立不同的Schema,然後jdbc連線地址宣告這個Schema。


就應用劃分層面來說,三種資料庫的Database、User、Schema在一個層面。Oracle相比Mysql可以新建多個例項,一個例項等同於Mysql的一個程序,我的理解Oracle的建立例項就是建立database,會新建出一個oracleserver。Db2的Database跟Oracle例項在一個層面,區別是Oracle建立例項比較麻煩,Db2一句話就執行完了。Oracle的兩個例項之間獨立,Db2也是。訪問需要通過特定方式。


統一說來,

1:Oracle的例項與Db2的資料庫是一回事,應該被統一稱作例項比較合適,而Mysql便是單例項模式

2:應用劃分層,三者分別是database、user、schema,統一稱作database比較合適,真正的資料都在這一層。

從這裡理解於是:使用者名稱與密碼的作用只是用來登陸,以及賦予對database的訪問許可權。

mysql中這兩者是無關的。

oracle這裡本沒有database的概念,user就是database,可以理解為建立一個user時同時建立一個同名的database。有幾個user就有幾個database。

db2建立一個user會同時建立一個同名的database作為schema,另外還能再建立其他多個schema。