
第1章 Oracle简介和安装
1.1 Oracle数据库简介
1.1.1 什么是Oracle数据库
Oracle数据库是由美国Oracle(甲骨文)公司开发的一款关系数据库管理系统,自从1979年发布第一版以来,至今已有30多年,目前在数据库市场上占据主要份额,是当前世界上使用最为广泛的数据库管理系统。Oracle数据库是以分布式数据库为核心的一组软件产品,是目前最流行的C/S或B/S体系结构的数据库之一。
Oracle数据库是世界上第一个支持SQL语言的商业数据库,主要在高端工作站、小型机和高端服务器上使用。Oracle数据库支持在UNIX、Linux和Windows等多种系统平台上进行安装和部署。相比较其他数据库而言,Oracle数据库在稳定性、安全性、兼容性、高性能、处理速度、大数据管理方面更加优秀。
1.1.2 Oracle数据库发展历程
1977年,拉里·埃里森(Larry Ellison)、鲍勃·迈纳(Bob Miner)和奥德斯(Ed Oates)在美国加州成立了软件开发实验室咨询公司(Software Development Laboratories,SDL)。1978年公司迁往硅谷,并改名为关系式软件公司(Relational Software Inc,RSI)。1982年公司再次改名为甲骨文(Oracle)。
Oracle 1数据库发布于1979年,是使用汇编语言在DEC计算机PDP-11上开发出来的,是第一个基于SQL标准的关系型数据库。
Oracle 2数据库发布于1979年,该数据库作为第一款商用的基于SQL的关系型数据库,是关系数据库历史上的一个里程碑。
Oracle 3数据库发布于1983年,它是一个便携式版本的Oracle数据库,是第一个在大型机、小型机和PC上运行的关系型数据库。该版本数据库是用C语言编写的,使得数据库可以被移植到多种平台。
Oracle 4数据库发布于1984年,推出多版本读一致性,增强了并发控制、数据分布和可扩展性。
Oracle 5数据库发布于1985年,支持客户端/服务器计算和分布式数据库系统。
Oracle 6数据库发布于1988年,带来了增强的磁盘I/O、行锁、可扩展性,以及备份和恢复,此外还推出了PL/SQL语言的第一个版本。
Oracle 7数据库发布于1992年,该版本推出了PL/SQL存储过程和触发器功能,此外还推出了基于UNIX系统的Oracle版本。
Oracle 8数据库发布于1997年,作为对象—关系数据库,支持许多新的数据类型,此外还支持大型表分区。
Oracle 8i数据库发布于1999年,提供互联网协议和Java服务器端支持的原生支持,被设计用于网络计算,从而使数据库能够被部署在一个多层环境中。Oracle 8i可以看作是Oracle 8数据库的功能扩展版。
Oracle 9i数据库发布于2001年,推出了RAC(Real Application Cluster)功能,这是Oracle数据库中的高可用性技术,使多个实例可以同时访问一个数据库。
此外,Oracle XML数据库引入存储和查询XML的能力。
Oracle 10g数据库发布于2003年,引入了网格计算概念,一个关键的目标是使数据库能够自我管理和自我调整。Oracle自动存储管理(ASM)通过虚拟化和简化数据库存储管理来实现这一目标。
Oracle 11g数据库发布于2007年,推出了许多新的功能,增强了可管理性、可诊断性和可用性,使管理员和开发人员能够快速适应不断变化的业务需求。
1.1.3 数据库管理员工作任务
在一个中小型数据库环境中,执行数据库管理任务的可能只有一个人。而在大型数据库环境中,工作往往是由几个数据库管理员来完成的,每个人都有不同的工作任务,比如有些人进行数据库的日常管理,有些人进行数据库的性能调优。
作为一个Oracle数据库管理员,平时将参与以下工作任务。
➢ 安装Oracle软件。
➢ 创建Oracle数据库。
➢ 执行数据库和软件升级到最新版本。
➢ 启动和关闭数据库实例。
➢ 管理数据库的存储结构。
➢ 管理用户和安全性。
➢ 管理数据库对象,如表、索引和视图等。
➢ 备份数据库并在需要时执行恢复操作。
➢ 监视数据库的状态,并要求采取预防或纠正措施。
➢ 监控和调优数据库性能。
➢ 为Oracle支持服务诊断和报告严重错误。
1.1.4 管理Oracle数据库的工具
数据库管理员可以使用以下工具和实用程序来对数据库进行管理。
1. OUI
Oracle通用安装程序(Oracle Universal Installer,OUI)是安装Oracle软件的工具,它可以自动启动Oracle数据库配置助手来安装数据库。
2. DBCA
数据库配置助手(Database Configuration Assistant,DBCA)是由Oracle提供的,通过模板创建数据库的实用程序。它能够复制一个预配置的种子数据库,从而节省了生成和定制一个新数据库的时间和精力。
3. DBUA
数据库升级助手(Database Upgrade Assistant,DBUA)是指导通过现有的数据库升级到一个新的Oracle数据库版本的工具。
4. NETCA
网络配置助手(Net Configuration Assistant,NETCA)是一种可以配置侦听器和命名方法的实用工具,这是Oracle数据库网络的重要组成部分。
5. OEM
Oracle企业管理器(Oracle Enterprise Manager Database Control,简称Oracle Enterprise Manager,OEM)是一个基于Web界面的管理数据库的工具。OEM还提供了性能顾问和Oracle实用程序,比如SQL*Loader和恢复管理器(Recovery Manager,RMAN)的接口。
1.1.5 Oracle方案对象
方案(Schema)是数据结构的逻辑容器,是方案对象的一个集合,每一个数据库用户都对应着一个方案。方案对象是直接引用数据库数据的逻辑结构。
1. 表
表(Table)是数据库中存储数据的基本单位,数据按行和列进行存储,是关系数据库中最重要的方案对象。用户可以基于表创建视图、索引等对象,为表中的列指定一系列的属性,比如列名、数据类型、长度或精度等。当创建表时,Oracle会自动地在相应的表空间中为表分配数据段以容纳其数据。
2. 视图
视图(View)也称为虚拟表,是基于一个或多个表/视图的逻辑表,本身不包含数据,只是在数据字典里存储查询语句。它不占用物理空间,通过视图可以对表中的数据进行查询和修改。
对视图的操作同表一样,当通过视图修改数据时,实际上是在改变基础表中的数据。由于逻辑上的原因,有些视图可以修改对应的基础表,有些则不能修改,只能进行查询。基础表数据的改变也会自动反映在由基础表产生的视图中。
3. 索引
索引(Index)是为了提高数据查询的性能而创建的,利用它可以快速地查询指定的数据。索引为表数据提供快速存取路径,适用于一定范围的行查询或指定行的查询。索引可建立在一个表的一列或多列上,一旦创建则由Oracle自动维护和使用,对用户是完全透明的。
4. 序列
序列(Sequence)是用来生成唯一、连续整数的数据库对象,通常用来自动生成主键或唯一键的值。Oracle 将序列的定义存储在数据字典中。序列可以为表中的行自动生成序列号,产生一组等间隔的数值。序列可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
5. 同义词
同义词(Synonym)是一个方案对象的别名,用来简化对象的访问,以及提高对象访问的安全性。可以为表、视图、序列、过程、存储函数、包、物化视图、Java类方案对象或用户自定义对象类型创建同义词。同义词并不占用实际的存储空间,只是在数据字典中保存了同义词的定义。在使用同义词时,Oracle数据库将它转换成对应的方案对象的名称。
6. 簇
簇(Cluster)是一种存储机制,为了加快数据查询,允许将多个表中的若干记录物理存储在一起,这几个表在存储时会共享一部分数据块。
7. 过程
过程(Procedure)是执行指定任务的多个SQL和PL/SQL语句的集合,用于执行特定的操作或功能。
8. 函数
函数(Function)是必须返回值的过程,用于计算和返回特定的数据。
9. 触发器
触发器(Trigger)是一种特殊的过程,不能被人工调用,只能在表上执行某个动作时被自动调用。触发器与表、动作(INSERT、UPDATE、DELETE)和系统事件(如数据库启动)相关联。