Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。
劳伦斯·埃里森和他的朋友,之前的同事Bob Miner(英语:Bob Miner)和Ed Oates(英语:Ed Oates)在1977年创建了软件开发实验室咨询公司(SDL,Software Development Laboratories)。SDL开发了Oracle软件的最初版本。的名称来自于埃里森在Ampex工作时参加的一个由中央情报局创建的项目的代码名称。
一个Oracle数据库系统是以一个由字母和数字组成的系统标识符(SID, Site ID)来做唯一性的区别—包含了至少一个应用程序的实例,和资料存储设备。一个实例(instance)是由一个实例数字(或是一个引导ID:SYS.V_$DATABASE.ACTIVATION#)表示—包含了一个操作系统程序的集合和与存储设备进行交谈的内部结构。典型的程序有PMON(the process monitor程序监看器)和SMON(the system monitor系统监看器)。
Oracle数据库的用户设计到了SGA(System Global Area系统全局领域)服务器端内存结构。SGA保存了缓存信息比如数据缓冲区,SQL命令,和用户信息。在存储之外,数据库由保存了数据变更历史的在线恢复日志。进程可以把在线的恢复日志转换成存档的日志(离线恢复日志),给数据回复和再生提供了基础。
如果Oracle数据库管理员实现了Oracle RAC(Real Application Clusters真正应用集群),那么在不同的服务器上的多个实例,隶属于一个中央磁盘阵列。这个方案提供了一些优点,比如更高的效率、扩展性和冗余。然而,这样会导致系统更复杂,因此许多站点并不使用RAC。在10g版本中,网格计算引进了共享资源,这样一个实例可以使用(例如)网格中另一个节点的CPU资源。
Oracle数据库管理系统可以保存并运行自己的存储程序和函数。PL-SQL(Oracle公司的专有的SQL扩展语言),或面向对象语言Java可以调用那些代码对象或者编写这些代码。
Oracle关系型数据库管理系统从逻辑上把数据保存在表空间内,在物理上以数据文件的形式存储。表空间可以包含多种类型的内存区块,例如数据区块(Data Segment)、索引区块(Index Segment)等等。区块相应的由一个或多个扩展(extent)组成。扩展由相连的数据区块组成。数据区块是数据存储的基本单元。
Oracle数据库管理系统通过存储在SYSTEM
表空间内的信息来跟踪数据存储。SYSTEM
表空间包含了数据字典—以及(默认的)索引和集群。数据字典包含了一个保存了所有数据库中用户对象的信息的表。从8i版本开始,Oracle开始支持表空间,即把空间管理信息保存在它们自己的信头的位图中而不是SYSTEM
表空间内。
在物理层,数据文件(英语:Data file)由一个或多个数据区块组成。区块的大小根据数据库的不同而不同。
数据文件可以使用计算机服务器的文件系统的预先分配空间,直接操作磁盘,或保存在自动存储管理逻辑卷内。
一个或多个控制文件保存了系统整体的信息和状态。
Oracle数据库软件有63个语种的版本(包括了区域差异语言比如美国英语和英国英语)。不同语言版本间的差异包括了日期和月份的名字,缩写,时间格式和排序。
Oracle公司已经把Oracle数据库的错误信息翻译到阿拉伯语、加泰罗尼亚语、中文、捷克语、丹麦语、荷兰语、英语、芬兰语、法语、德语、希腊语、希伯来语匈牙利语、意大利语、日语、韩语、挪威语、波兰语、葡萄牙语、罗马尼亚语、俄语、斯洛伐克语、西班牙语、瑞典语、泰语和土耳其语。
Oracle公司给数据库开发人员提供产生国际化的数据库应用程序的工具与机制。
在2001年发布的Oracle9i之前,甲骨文公司把他们的数据库产品广泛的移植到了不同的平台上。近期,甲骨文公司巩固了一小部分的操作系统平台。
截止至2006年10月,甲骨文公司的Oracle10g支持以下的操作系统和硬件: