一.Oracle数据库的简介
(一)什么是Oracle
Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或浏览器/服务器(Browser/Server,B/S)体系结构的数据库之一。
Oracle通常应用于大型系统的数据产品。
Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
Oracle数据库具有以下特点:
- 支持多用户,大事务量的事务处理
- 数据安全性和完整性控制
- 支持可分布式数据处理
- 可移植性(跨平台)
(二)Oracle体系结构
1.数据库
oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF,控制文件,联机日志,参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。
2.实例
实例的定义:访问Oracle Database的一个手段;一个实例对应一个且也只能对应一个database,而一个database可以有多个实例来访问它,也就是说实例和database的多对一的关系,在典型的情况下,一台机器上装的oracle,他们俩是一对一的关系,对应集群方式(简称RAK)是多对一;实例也是由两个部分组成:内存(memory)和后台进程(background process)。
memory由两部分构成:SGA(system global area,系统全局区)和PGA(program global area,程序全局区);一个实例就一个SGA,SGA是实例的基本组成部分;一个server process启动的时候,就有一个PGA;oracle是一个狂吃内存的软件,内存主要消耗在SGA上。
3.数据文件(dbf)
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只属于一个表空间。一但数据文件被加入到某个空间后,就不能删除这个文件,只能删除其所属的表空间才行。
4.表空间
表空间是Oracle对物理数据库上相关数据文件(ORA或者DBF文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为system表空间)。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只属于一个表空间。
注:表的数据,是有用户放入某一表空间的,而这个表空间会随机把这些数据放到一个或多个数据文件中。
二.Oracle与mySQL的区别
1.本质区别
- MySQL是一个开源的关系数据库管理系统(RDBMS)。它是世界上使用最多的RDBMS,作为服务器运行,提供对多个数据库的多用户访问。它是一个开源、免费的数据库
- Oracle数据库是一个对象关系数据库管理系统(ORDBMS)。它通常被称为Oracle
RDBMS或简称为Oracle,是一个收费的数据库。
2.数据库的安全性
-
MySQL使用三个参数来验证用户,即用户名,密码和位置
-
Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等
3.SQL语法的区别
- Oracle的SQL语法与MySQL有很大不同。Oracle为称为PL / SQL的编程语言提供了更大的灵活性。Oracle的SQL *
Plus工具提供了比MySQL更多的命令,用于生成报表输出和变量定义
4.对事务的提交
-
MySQL默认是自动提交,
-
Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮
5.存储上的区别
- 与Oracle相比,MySQL没有表空间,角色管理,快照,同义词和包以及自动存储管理。
6.数据库的认证
- MySQL认证比Oracle认证更容易。与Oracle(设置为使用数据库身份验证时)和大多数仅使用用户名和密码对用户进行身份验证的其他数据库不同,MySQL在对用户进行身份验证location时会使用其他参数。此location参数通常是主机名,IP地址或通配符。使用此附加参数,MySQL可以进一步将用户对数据库的访问限制为域中的特定主机或主机。此外,这还允许根据进行连接的主机为用户强制实施不同的密码和权限集。因此,从abc.com登录的用户scott可能与从xyz.com登录的用户scott相同或不同。