第1章 Oracle数据库简介
根据第0章引入的城市公交行车安全管理系统的事故信息管理系统的需求,本书将介绍该系统采用的数据库管理系统——Oracle数据库管理系统,该数据库管理系统是Oracle公司(即甲骨文公司)的一款关系数据库管理系统,本书以Oracle 11g为例讲述如何分析和设计事故信息管理系统。本章对Oracle数据库系统进行概要介绍,讨论究竟Oracle数据库系统有何特色。
本章学习要点:了解Oracle数据库产品的历史;了解Oracle 11g的新特性。
1.1 Oracle数据库产品发展史
随着计算机技术的不断发展,人类社会已经进入了信息化时代,而信息化的核心是信息的有效存储,为了更好地保存信息,就需要使用数据库技术,当前应用最广泛的是关系型数据库,其中最优秀的代表之一是Oracle数据库管理系统,其提供了业界领先的存储性能、安全性与可靠性。Oracle数据库的发展历史如下。
1970年6月,IBM公司研究员埃德加●考特在《Communications of ACM》上发表了著名的“大型共享数据库数据的关系模型”(A Relational Model of Data for Large Shared Data Banks)论文,拉开了关系型数据库软件革命的序幕。
1973年IBM公司启动了System R项目研究关系型数据库的实际可行性。
1977年,Larry Ellison、Bob Miner和Ed Oates在硅谷共同创办了SDL,后更名为RSI(1983年为了突出公司的核心产品,RSI再次更名为Oracle)。
1979年,发布可用于DEC公司的PDP-11计算机上的商用Oracle产品,整合了比较完整的SQL实现。
1983年,发布第3版。由Miner和Scott历尽艰辛用C语言编写而成,是第一款在PC、小型机及大型机上运行的便携式数据库。
1984年,发布第4版。产品的稳定性得到一定的增强。
1985年,发布第5版。首批可以在客户端/服务器模式下运行的RDBMS产品。
1988年,发布第6版。引入了行级锁、联机热备份等功能。
1992年,发布第7版。增加了许多新的特性,如分布式事务处理功能、用于应用程序开发的新工具以及安全性方法。
1996年,Oracle公司成功推出了专门面向中国市场的数据库产品,即Oracle 7。
1997年,Oracle公司推出Oracle 8,这个版本支持面向对象的开发及新的多媒体应用,为支持网络、网格奠定了基础。
1998年,针对Internet技术的发展,Oracle公司推出了第一个基于Internet的数据库,即Oracle 8i(i代表Internet),该版本添加了大量为支持Internet而设计的特性,并为数据库用户提供了全方位的Java支持。
2001年,Oracle公司又推出了新一代Internet电子商务基础架构,即Oracle 9i,其中最重要的特性就是Real Application Clusters(RAC)。
2003年,Oracle公司发布了其基于网格计算的数据库产品,即Oracle 10g(g代表grid,网格),这一版本最大的特点是加入了网格计算的功能。
2007年11月,Oracle 11g正式发布,根据用户的需求实现了信息生命周期管理等多项创新,提高系统安全性,降低数据存储的支出,缩短了应用程序测试花费的时间,增加了重要数据类型的支持。
2009年9月,Oracle公司发布了Oracle 11g R2,更好地提供了对提交更多信息服务的支持,减少了信息技术变化风险,并且更加高效。
1.2 Oracle 11g新特性
Oracle 11g是Oracle公司在2007年推出的关系数据库管理系统,新增了大型对象存储、透明加密、内存自动管理等400多项新功能和特性,其中先后发布了两个版本。Oracle 11g相对于前代产品提高了用户服务水平,减少了停机时间,更有效地利用资源,并增强了处理业务的能力及安全性。
1.应用开发方面
1)应用日期格式:在整个应用开发期间可以定义一个日期格式,这个日期格式可以用来改变NLS_DATE_FORMAT数据库对话,使得可以优先显示和提交任何页面。同时,这种格式也被所有报告作为显示日期的统一标准,在表单元素中只要使用“Date Picker”就可以自动使用该标准格式,这种指定一种日期格式的能力可以保证整个应用开发期间的一致性。
2)定制主题:除了原有的Oracle应用简化版的默认主题,你可以创建自己的主题,当然也可以从20个标准主题中进行修改。
3)声明BLOB的支持:使得在表单中可以支持文件,以及在报表中显示或者下载文件。同时可以通过PL/SQL来控制BLOB的显示与下载。
4)文档化的JavaScript库:加强了对开发Web 2.0应用的支持,通过一个加强的框架使开发者具有更好地开发Web 2.0的能力,包括标准的JavaScript和CSS文件的支持。
5)增强的报告打印能力:包括对下载版本XML格式的支持以及通过SQL语句执行结果的支持,数据的显示格式包括PDF、RTF、XLF和XML。
6)表单转化:使得现有的Oracle表单可以自动转化为一些组件,主要是一些接口,另外也有一些复杂的触发器。
7)PL/SQL的增强:包括游标定义中保持选项的支持、时区补丁中JDBC的支持、8位整型数的绑定和定义的OCI支持等。另外在PL/SQL中加入了Continue语句。
8)复合触发器(compound trigger):可以在一个触发器中同时具有声明部分、Before过程部分、After each row过程部分和After过程部分。
提示:关于Continue命令的用法请参看第13章的内容。关于触发器的定义和用法请参看第14章的内容。
2.易用性改进
1)备份和恢复:包括自动块的修复能力,通过OSB云计算把内容备份到Amazon S3(一个基于网络的存储服务),在没有连接到目标数据库时可以通过复制功能对辅助数据库或一些视图进行访问,加强的基于时间点的表空间恢复(TSPITR)能力,新增了一些格式化选项,以及复制过程的表空间检查。
2)在线应用的维护和升级:在更新过程中基于版本的控制保证其改变不会影响到应用程序的功能,在CREATE或REPLACE上可以增加FORCE选项保证创建或替代命令可以不论当前对象的情况而强制执行,对于触发器建立了更加强大的依赖关系,INSERT语句执行增加了IGNORE_ROW_ON_DUPKEY_INDEX的提示来保证插入的记录不会与现有的记录冲突。
3)Oracle数据监控:支持压缩表,实时查询申请延迟的限制保证重做申请必须在Oracle Active Data Guard选项有效的时候进行,支持应用程序失效备援,支持30个独立的数据库。
3.非结构数据管理
1)支持加强的Oracle多媒体数据和DICOM。
2)支持加强的Oracle 3D:包括3D可视框架、网络数据模型、GeoRaster Java API、光栅投影和GCP坐标定位。
3)Oracle安全文件:DBFS(DataBase File System)支持在Linux下POSIX-compatible文件系统中的使用。
4)Oracle XML大小和性能提高:包括二进制XML类型表和相关的包括二进制XML列的表的支持,Oracle XML DB存放性能的提高,支持通过二进制XML存储的非结构化、半结构化、高度结构化XML文档的索引,支持对嵌套表的XML类型的分割。
另外,商业智能和数据仓库、集群、诊断性和信息化集成等方面也进行了相应的增强。
1.3 相关术语
1)数据库名:安装Oracle数据库管理系统以后,在系统中创建的数据库的名称。例如,在Oracle数据库管理系统中创建了一个叫myDB的数据库。
2)数据库域名:是数据库在网络环境中所处的区域的名称,或者说是此数据库的网络位置,如uuu.edu.cn。
3)全局数据库名:全局数据库名=数据库名+数据库域名。例如,myDB.uuu.edu.cn。
4)数据库实例名(SID):数据库和操作系统进行联系的标识,操作系统要跟数据库进行交互,必须使用数据库实例名,而知道数据库名是没有用的。一般情况下,一个数据库名对应一个实例名。
5)数据库服务名:如果数据库有域名,则数据库服务名就是全局数据库名;如果数据库中没有定义域名,则数据库服务名与数据库名相同。