通過圖和文字說明來辨別mysql和Oracle數據庫

剛接觸Oracle時一直感覺mysql和Oracle兩個數據庫的邏輯結構是相仿的,但是經過初步學習才發現他們之間結構差異之大,下面就簡單介紹他們的區別吧。

mysql
這個數據庫有一個默認root用戶,一般情況下我們使用時候建立的數據庫都是在該用戶下建立的數據庫。當然可以建立多個數據庫。它的使用邏輯結構如下圖:
這裏寫圖片描述
那麼在我們現實的開發中,很多時候用到jdbcAPI,配置屬性如下:

driver:com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/[database]
username:root
password:root

在實際的開發中一般情況下我們只改變數據庫名字,所以相對來說比較簡單。

那麼下面就來看下Oracle數據庫的結構
Oracle
初學Oracle才發現其邏輯結構的複雜,以及邏輯結構的嚴謹。首先Oracle數據庫是數據的物理存儲。這就包括數據文件ORA或者DBF、控制文件、聯機日誌、參數文件。其實Oracle數據庫的概念和其它數據庫不一樣,這裏的數據庫是一個操作系統只有一個庫。可以看作是Oracle就只有一個大數據庫。同時不同於mysql在頂級中一般只有一個有root用戶(也可以自己新建),但是在Oracle中出現了ORCL實例的概念,一個Oracle實例(Oracle Instance)有一系列的後臺進程(Backguound Processes)和內存結構(Memory Structures)組成。一個數據庫可以有n個實例。但是在實際開發中一個實例就足以。在實例下面就是對應用戶了,不同實例可以建相同名字的用戶。
其次就是“表空間”這個概念,表空間是Oracle對物理數據庫上相關數據文件(ORA或者DBF文件)的邏輯映射。一個數據庫在邏輯上被劃分成一到若干個表空間,每個表空間包含了在邏輯上相關聯的一組結構。每個數據庫至少有一個表空間(稱之爲system表空間)。每個表空間由同一磁盤上的一個或多個文件組成,這些文件叫數據文件(datafile)。一個數據文件只能屬於一個表空間。同時,不同用戶也可以設置自己默認的表空間。邏輯圖如下:
這裏寫圖片描述
在現實開發中jdbc配置也不同於mysql,如下:

driver: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:orcl
username:[user1]
password:[pass1]

正如上面介紹到的,一般在一個項目中我們用到的實例只有一個所以url中最後的orcl是不變的,但是最後的username,password是要根據需要用戶來的不同進行轉換的。
總的來說,由於oracle的數據庫不是普通的概念,oracle是有用戶和表空間對數據進行管理和存放的。但是表不是有表空間去查詢的,而是由用戶去查的。因爲不同用戶可以在同一個表空間建立同一個名字的表!這裏區分就是用戶了!

下面附上比較官方的Oracle數據庫結構圖:
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章