通过图和文字说明来辨别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数据库结构图:
这里写图片描述
这里写图片描述

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