知名百科 >> Oracle数据库 >> 历史版本
编辑时间历史版本内容长度图片数目录数修改原因
2024-05-08 09:41 最新历史版本 13157 1 5
  返回词条

Oracle数据库

ORACLE数据库是由甲骨文公司于1979年开发的一种关系数据库。Oracle数据库由多个关系组成,包括表、视图、索引、序列、存储过程等。它是一个以数据为中心的信息库,反映了数据之间的关系。Oracle数据库适用于Windows、Linux、UNIX等操作系统。

1977年,劳雷尔·埃里森、鲍勃·迈纳和埃德·奥茨共同创建了软件开发实验室(SDL,甲骨文的前身)并开发了甲骨文。1979年,Oralce公司推出了第一个基于SQL标准的关系数据库Oralce 2的商业版本,该版本是用汇编语言开发的,然后在1983年推出了用C语言开发的Oracle 3。从1998年到2001年,Oracle公司发布了Oracle 8i和Oracle 9i版本的I(Internet)系列。然后从2003年到2007年,开始了g(grid)网格系列的研究,发布了Oracle 10g和Oracle 11g版本。甲骨文从2013年开始研究c(云)云系列,并发布了Oracle 12c,之后版本不断更新迭代。2023年,代号为“App Simple”的Oracle 23c发布。

Oracle数据库因其良好的并行处理能力、良好的系统移植性、使用方便和强大的功能而被广泛应用于各个领域。它是一种高效、可靠、高通量的数据库解决方案,可满足银行、医院、保险等企事业单位开发大规模数据库的需求。到2022年,根据DB-Engines公布的最新排名,Oracle数据库的受欢迎程度是世界第一。

目录

发展历史

早期发展

1970年,IBM研究员Edgarh Ted Cod发表了一篇论文《大规模共享数据库数据的关系模型》。当时,当层次模型和网络模型的数据库产品在市场上占据主要地位时,本文拉开了关系数据库软件革命的序幕。1977年,拉里·埃里森、鲍勃·迈纳和埃德·奥茨在硅谷共同创立了一家名为“软件开发实验室”的软件公司(SDL),这就是甲骨文公司的前身。在看到Cod的论文后,Oates与Ellison和Miner进行了讨论,并共同计划建立一个商业关系数据库管理系统(RDBMS)。

1979年,Oracle公司推出了世界上第一个基于SQL标准的关系数据库Oracle 2,可用于DEC公司的PDP-11计算机。它是第一个商业关系数据库。它基于汇编语言开发,集成了相对完整的SQL实现,包括子查询、连接等功能,但软件不稳定,缺少事务处理等重要功能。

编程语言发展

随着高级语言的发展,1983年3月,Oracle公司发布了由C语言开发的Oracle 3,这使Oracle具有了一个关键的特征——可移植性。它还引入了SQL语句和事务的原子性——SQL语句要么成功要么全部失败,事务要么全部提交要么全部回滚。1984年,Oracle公司发布了Oracle 4,它增加了读取一致性,并确保用户在查询期间可以看到一致的数据。1985年,甲骨文发布了Oracle 5。成为第一批可以在客户机/服务器模式下运行的RDBMS产品,这意味着在桌面客户机上运行的业务应用程序可以通过网络访问数据库服务器。随后在1986年发布了Oracle版,它支持分布式查询,并允许通过一次性查询访问存储在多个位置的数据。

1988年,Oracle版本发布,并引入了PL/SQL过程化SQL语言,包括条件处理、循环、分支、变量和错误处理。还介绍了行级锁和在线热备份功能的重要特点,使数据库能够在使用过程中创建在线备份,增强了其可用性。1992年基于Unix的Oracle 7的发布最终确立了Oracle数据库在数据库市场的主导地位,它增加了许多新功能,包括分布式事务处理功能、增强的管理功能、用于应用程序开发的新工具和安全方法,以及强大的网格能力和系统易于扩展和开发的优势。

随着面向对象语言的发展,Oracle第8版于1997年发布,它支持面向对象开发和新的多媒体应用程序,为支持互联网和网格计算奠定了基础,并开始具有同时处理大量用户和海量数据的特点。

Oracle网络系列数据库

随后在1998年,Oracle 8i版本发布,其中I代表Internet。这个版本增加了许多旨在支持互联网的特性,并为数据库用户提供了Java支持。它成为第一个完全集成本地Java运行时环境的数据库,Oracle存储过程可以用Java编写。在2001年6月的Oracle开放世界大会上,Oracle发布了Oracle 9i,它强调对网络计算的支持,更适合企业级的高强度网络计算。还有一项最重要的技术,真正的应用集群(RAC)——集群技术。

网格系列的Oracle数据库

Oracle专注于网格的发展,并开始了网格版本的进程。2003年,Oracle开放世界大会上还发布了新版本的Oracle 10g,其中G代表grid,这是第一个为网格计算设计的数据库。它可以从单个实例迁移到网格计算模式,而无需更改一行代码。它还具有独特的安全性,可以满足隐私、合法合规和数据集成的需求,并可以借助集群技术为用户提供不间断的可用性、可扩展性和低成本的集群模式。

2007年,Oralce公司进行了全面创新,发布了Oracle 11g版本,实现了根据用户需求进行信息申报周期管理等多项创新,提高了系统性能的安全性。增加了对RDID标签、DICOM医学图像和3D空间等重要数据类型的支持,并加强了对二进制XML和性能优化的支持。

Oracle云系列数据库

随着云计算的发展,在G版本之后开始了C版本的开发。2013年,Oracle 12c正式发布,C代表cloud,意思是云计算。与之前的11g版本相比,该版本采用了多租户管理的概念,通过可插拔结构实现数据库集群结构,共享操作系统和数据库,并以云的形式直接向客户提供数据库,这也成为Oracle数据库架构的最大变化。

Oracle数据库Oracle数据库

2015年,Oracle商业智能12c(Oracle BI 12c)正式推出,它使企业能够在企业分析平台上混合任何数据并进行可视化分析。2018年,甲骨文18c发布。该版本功能变化不大,但已全面逐步完善,在性能、高可用、多租户、安全、数据仓库和开发等方面进行了升级和改进。

2019年,甲骨文19c发布。作为Oracle 12c和18c系列产品的长期支持产品,该版本提供了最高级别的版本稳定性以及最长的支持服务和错误修复帮助。此版本中的新功能:一些功能可以在静默模式下使用,添加了自动索引功能,增强了内存中外部表的大数据和性能,并定期清除闪回日志。

2021年,云融合数据库Oracle 21c正式发布。新版本包含200多项新创新,包括不可变块链表、数据库中的JavaScript、原生JSON二进制数据类型、数据库中用于机器学习的AutoML、持久内存存储以及增强的内存、图形处理性能、数据库表拆分、多租户和安全功能。

2023年,Oracle 23c版本正式发布。Oracle 23c的代号为“App Simple”,它专注于通过声明预期结果(而不是手动编码)来简化数据专业人员、开发人员和数据用户与数据交互的方式。该数据系统使用新的数据库技术(如JSON、关系二进制视图和AI向量搜索)和新的自然语言接口函数来生成解决方案。Raft复制——也是为了确保数据完整性和无缝操作而引入的。

组成结构

Oracle架构

Oracle以数据为中心,构建于操作系统之上。为了访问数据,所有Oracle工具都必须采用SQL和PL/SQL技术来通过Oracle core处理该SQL语句。您可以使用Oracle提供的各种工具:SQL*Plus、Oracle*Forms、Pro*C、Oracle*Menu、Oracle*ReportWriter等。生成应用系统(用户自己编写的各种应用系统),如人事管理系统、图书管理系统等。,包括Oracle自己提供的应用软件。如甲骨文财务、甲骨文制造等。

Oracle流程结构

进程是一条“控制线索”,是多用户操作系统下协调多任务的机制。Oracle数据库是一个复杂的多用户系统,需要一套完整的进程管理机制来控制整个系统的正常运行。例行公事是甲骨文流程管理机制的核心。无论Oracle运行在何种硬件平台或操作系统上,每个运行的Oracle数据库都有一个与之相关的例程。Oracle启动后,它将在内存中分配一个区域,称为系统全局区(SGA)。同时,当Oracle启动时,会产生一组后台进程,这些进程被称为Oracle例程。Oracle通过例程有效地管理数据库的数据,并为访问数据库的所有用户提供服务。在多进程Oracle系统中,进程可以分为两类:Oracle使用的用户进程和服务进程、共享服务进程、调度进程和后台进程。

用户进程、服务器进程和程序全局区构成了用户环境,用户进程在其中发布和执行SQL语句。当用户连接到Oracle服务器时,Oracle会创建一个服务器进程与之交互,并代表用户完成与Oracle数据库的交互。程序全局区是一个特定于用户的内存结构,用于存储用户连续执行SQL语句的相关信息。

Oracle关系系统的组成

Oracle数据库由多个关系组成,包括表、视图、索引、序列、存储过程、触发器等。其中,表是数据库的核心,存储数据记录的视图是表数据的逻辑呈现,索引提高了数据检索的效率,序列用于生成唯一标识,存储过程是一组SQL语句的封装,触发器是对数据库操作的响应机制。这些关系相互作用形成一个完整的数据库系统。Oracle数据库的关键是如何理解数据之间的关系,以数据为中心,然后构建反映这些关系的信息库。

存储结构

Oracle数据类型

Oracle数据库的关键是如何理解数据之间的关系,以数据为中心,然后构建反映这些关系的信息库。在Oracle数据库中,数据按行存储在表中,每行包含几列,每列可以指定一种数据类型。在存储表中每列的值时,存储一个字节的长度参数和一个字节的列标志。基本数据类型有:字符、数字、日期、长整型、原始数据和长原始数据、ROWID等。

基本数据类型

CHAR数据是字符数据,可以存储为可变长度的ASCII或EBCDIC字符串,并可用于存储字母数字字符。中文甲骨文可用于存储中文字符,在构建表时,定义为char类型的列中最多可存储240个字符。数字数据类型是数字数据,可以存储精度为38位的这么大的数字。您可以指定精度和比例。当指定的精度小于实际值长度时,将根据实际数据长度自动存储。数字数据以可变长度格式存储,从幂和符号字节开始,后面是数据字节。

LONG数据类型的列可以保存长度为65,536个字符的可变长度字符串。长数据是一个非结构化的数据字节组,长数据类型的列主要用于存放字符数组或短文档。定义为LONG的列可用于选择列表、SET语句和INSERT语句中。

RAW和LONG RAW数据类型用于表示ORACLE不解释的面向字节的数据,主要用于存储二进制数据或字符串。RAW类似于CHAR数据,LONG RAW类似于LONG。不同之处在于,RAW对存储的字节的含义不做任何假设,当它由SQL.NET传输时,它不会进行任何转换。这也是长生和长的区别。

ROWID是由ORACLE RDBMS系统定义和更新的逻辑列名,只能由用户查询。返回的内容是该行的地址。ROWID具有访问特定行、检查表需要多少存储空间以及获取行级锁的功能。ROWID不存储在数据库中,它不是一列数据。您不能添加、删除、更改和查询ROWID。

Oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构。对于这两种存储结构,Oracle分别进行管理。逻辑存储结构是Oracle内部组织和管理数据的方式,而物理存储结构是Oracle外部组织和管理数据的方式。

逻辑存储结构

Oracle在逻辑上将保存的数据分成小单元进行存储和维护,更高级别的逻辑存储结构由这些基本的小单元组成。逻辑结构的类型可以分为:块)-》区)-》段)-》表空间。其中,块是Oracle用来管理存储的最小单位,也是最小的逻辑存储结构。Oracle数据库在输入和输出时是以块为单位进行读写的,块的大小是在创建数据库时确定的,并且以后不能修改。区域是比块高一级的逻辑存储结构,由连续的块组成,是Oracle分配和回收存储空间的最小单位。一个片段由多个连续或不连续的区域组成。当用户在数据库中创建具有实际存储结构的各种对象(具有数据的对象)时,例如表和索引,Oracle将为这些对象创建段。表空间:最高的逻辑存储结构,数据库由多个表空间组成。常见的表空间有:数据表空间、系统表空间、回滚表空间和临时表空间。

物理存储结构

Oracle数据库在逻辑上由一个或多个表空间组成,每个表空间在物理上由一个或多个数据文件组成,每个数据文件由数据块组成。因此,在逻辑上,数据存储在表空间中,但在物理上存储在与表空间对应的数据文件中。构成数据库的物理文件主要包括:数据文件,存储数据库数据;用于存储数据库基本信息的控制文件;重做日志文件并归档对数据的更改。

支援工具

SQL*Plus

SQL*Plus是一个关于ORACLE RDBMS的即兴交互式终端接口程序。在SQL*Plus环境下,有两种命令可以使用:一种是SQL语言,另一种是SQL*Plus的特殊命令。使用SQL语言可以完成数据定义、存储控制、数据操纵、数据查询等功能;使用SQL*Plus特殊命令可以完成编辑、存储和调用命令以及格式化报告的功能。

SQL*Forms

SQL*Form是属于第四代语言的应用软件开发支持工具。它通过允许用户快速开发基于屏幕格式的应用程序,提供了一种直观、方便和交互式的数据库操作方法。使用SQL*Forms,用户可以运行已建立的Forms应用程序,并通过操作一些功能键来完成对数据库的查询、更新、删除、插入和统计操作。SQL*Forms面向应用软件开发人员,窗口技术是ORACLE RDBMS采用的技术之一。窗口是屏幕中一组逻辑相关的填充项目、可用操作和选择项目。SQL*Forms提供了多级窗口。进入窗口意味着系统打开该窗口显示在屏幕上并可以在该窗口中工作。

SQL*Report

SQL*Report是一个报告生成工具,它包括两个实用程序:报告生成器程序(RPT)和报告文本格式化程序(RPF)。它们必须结合使用才能从数据库中提取数据并生成包含所需数量的数据库信息的报告。报告生成器RPT通过SQL语句提取数据库信息,报告文本格式化程序RPT根据文本中包含的命令格式化信息。一个报表程序一般由选择宏、正文宏、头宏和脚宏组成。报表程序的编写是解释报表中使用的变量,编译SELECT宏、body宏、header宏和一些有特殊用途的宏,最后用REPORY语句链接起来。

SQL*Calc

SQL*Calc是第四代语言应用程序开发支持工具,用于用户快速生成报表,为操作ORACLE数据库、进行统计计算和快速制表数据提供了有效手段。SQL*Calc的工作屏幕格式是一个表格工作页面,允许用户直接控制光标在屏幕上绘制表格线,可以直接填写计算公式、SQL语句和特定的文本内容。使用SQL*Calc,您可以从数据库中查询所需的数据,在屏幕上进行修改,形成最终报告,并以多种方式输出。SQL*Calc制表命令是一个树形结构。

SQL*Net

SQL*NET是Oracle公司的远程数据库访问包,实现了网络环境下客户端与服务器的连接和通信。SQL*NET使用TNS(透明网络底层)和符合工业标准的网络协议连接客户端和服务器,并建立ORACLE会话,接收来自TNS监控进程的与数据库连接的请求,并将控制权交给数据库服务器,以建立和维护它们之间的信息转换。SQL*NET由V1和V2版本组成。早期的SQL*NET V1由两部分组成:与ORACLE RDBMS和所有工具连接的SQL*NET组件,以及SQL*NET协议驱动程序。在SQL*NET V2中,SQL*NET驱动程序已经过重新设计以提供常规网络操作,所有常规网络操作和协议制定支持都已被TNS和ORACLE协议适配器取代。

PRO*C

PRO*C、PRO*COBOL、PRO*FORTRAN等PRO*系列是ORACLE公司提供的可编程接口产品。您可以使用C语言等编程语言来操作ORACLE数据库中的数据。操作方法之一是在C语言程序中嵌入SQL语句。编写的程序称为PRO*C程序,通过PRO*C程序可以方便地实现特定表格的输出。

实际应用

应用医学信息:随着计算机技术、数据库和网络技术的快速发展,数字化信息已经渗透到社会的各个领域,医院也加快了数字化建设的步伐,特别是以数据库为核心的医院信息系统不断发展。Oracle数据库的真正应用,集群技术RAC为医院庞大的数据量和复杂的业务流程提供了强有力的支持。它由两台或多台同构计算机和共享存储设备组成,提供强大的数据库处理能力和容错能力,并确保连续的数据访问。同时,Oracle RAC可以根据医院业务需求的变化进行扩展以满足任何性能要求,并且可以最大限度地降低医院的采购成本和运营复杂性。水平和垂直伸缩特性为其向任何方向扩展提供了平台,并支持医院业务的增长。因此,应用系统的开发、管理和变更管理变得更加简单,从而降低了成本。

向国家统计局申请:国家统计局(NBS)是国家重要信息收集和信息处理的中央机构,它希望与国务院各主要部委和各省市的信息系统交换信息。然而,其信息系统包含许多模型,如DEC、HP、CDC和美国电话电报公司的模型,Oracle数据库系统几乎可以使用任何计算机来建立基于SQL的可移植应用系统,并连接不同计算机上的许多应用程序以形成功能强大的分布式数据库环境。因此,NBS采用Oracle数据库产品。

应用于农业信息化:大数据时代,农业信息化发展遇到瓶颈。与传统农业相比,信息全球化极大地改变了农业的发展。Oracle数据库以分布式数据处理为中心,可以提供一个集中、开放和全面的信息管理系统。将Oracle数据库应用于农业信息技术的发展,可以提高农业资源的管理和决策指挥能力。利用信息技术,快速、自动、高效地采集和存储农业资源环境中的重要数据,然后通过发现、整理和分析问题,高效地解决问题。通过与Oracle数据库的结合,开发了信息采集技术、模拟种植技术和资源处理技术。