Oracle数据库开发.docx

上传人:b****6 文档编号:8469749 上传时间:2023-01-31 格式:DOCX 页数:91 大小:89.21KB
下载 相关 举报
Oracle数据库开发.docx_第1页
第1页 / 共91页
Oracle数据库开发.docx_第2页
第2页 / 共91页
Oracle数据库开发.docx_第3页
第3页 / 共91页
Oracle数据库开发.docx_第4页
第4页 / 共91页
Oracle数据库开发.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

Oracle数据库开发.docx

《Oracle数据库开发.docx》由会员分享,可在线阅读,更多相关《Oracle数据库开发.docx(91页珍藏版)》请在冰豆网上搜索。

Oracle数据库开发.docx

Oracle数据库开发

第1章Oracle数据库概述

本章要点

介绍数据库管理系统的基本概念

介绍Oracle公司和Oracle的主要产品

了解Oracle数据库的主要开发工具和管理工具

Oracle数据库基本常用术语

1.1数据库管理系统概述

数据库是用户存放数据、访问数据、操作数据的存储仓库,用户的各种数据被有组织地存放在数据库中,在需要的时候可以随时被有权限的用户查询、统计,新的数据可以被添加进去,不需要的数据可以被清除,一些旧的数据可以被修改,所以数据库就是被有效组织在一起的数据集合。

数据库管理系统(DatabaseManagementSystem,DBMS)就是管理数据库的一个软件,它充当所有数据的知识库,并对它的存储、安全、一致性、并发操作、恢复和访问负责。

DBMS中包含一个数据词典(有时被称为系统目录),里面贮存着它拥有的每个事物的数据,例如名字、结构、位置和类型,这种关于数据的数据也被称为元数据(metadata)。

在一条数据的生存周期中(从它的创建到删除),关于这条数据的逻辑和物理信息都被记录在数据词典中,可以被数据库和数据库管理员使用。

而作为数据库系统管理员(DatabaseAdministrator,DBA),应该非常熟悉DBMS的数据词典。

数据从人类的发展初期就一直存在着,人类使用各种方法来管理所熟知的数据。

在管理数据的整个过程中,主要经历了下面的几个过程:

1.手工管理阶段

数据不被保存,这时候基本上没有文件的概念,也没有专门的软件系统对文件进行管理,这时,通常一组数据与一个程序直接对应。

2.文件管理阶段

数据以文件形式存在,有大量数据需要保存,此时已使用了文件系统,由操作系统存储数据并负责逻辑与物理存储结构的转化。

此时的典型特点是,数据量大,数据和程序缺乏独立性,数据还是直接面向应用的,也就是说一个应用对应于一组数据,应用之间不能共享数据。

3.数据管理阶段

数据量增大,同时有大量的用户需要共享数据,此时为了解决这种多用户、多应用共享数据的需求,需要专门的数据管理系统。

特点如下:

(1)面向全体的复杂数据结构;

(2)数据冗余度小,易扩充;

(3)较高的数据和程序的独立性;

(4)统一的数据控制功能。

数据模型是数据库系统的核心和基础,通常由数据结构、数据操作和完整性约束3部分组成。

各种DBMS软件都是基于某种数据模型的,所以通常也按照数据模型的特点将传统数据库系统分成网状型数据库、层次型数据库和关系型数据库3类数据库。

1.网状型数据库

最早出现的是网状数据库。

网状模型中以记录为数据的存储单位。

记录包含若干数据项。

网状数据库的数据项可以是多值的和复合的数据。

每个记录有一个能够惟一标识它的内部标识符,称为码(DatabaseKey,DBK)。

它在一个记录存入数据库时由DBMS自动赋予。

DBK可以看作记录的逻辑地址,可用于寻找记录。

网状数据库是导航式(Navigation)数据库,用户在操作数据库时不但说明要做什么,还要说明怎么做。

例如在查找语句中不但要说明查找的对象,而且要规定存取路径。

2.层次型数据库

层次型数据库管理系统是紧随网络型数据库而出现的。

因为在现实世界中,很多事物都是按层次组织起来的,所以最初为了模拟这种按层次组织起来的事物,提出了层次数据模型。

层次型数据库也是按记录来存取数据的。

层次数据模型中最基本的数据关系是基本层次关系,它代表两个记录之间一对多的关系,电叫做父子关系(PCR)。

数据库中有且仅有一个记录无父记录,称为根节点。

其他记录有且仅有一个父记录。

在层次模型中从一个记录到其父记录的映射是惟一的,所以对每一个记录(除根节点外)只需要指出它的父记录,就可以表示出层次模型的整体结构。

层次模型可以被描绘成树状的。

3.关系型数据库

网状型数据库和层次型数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。

用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。

而后来出现的关系型数据库较好地解决了这些问题。

关系数据库理论出现于60年代末到70年代初。

1970年,IBM的研究员E.F.Codd博士发表《大型共享数据银行的关系模型》一文提出了关系模型的概念。

后来Codd又陆续发表多篇文章,奠定了关系型数据库的基础。

关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。

关系数据模型提供了关系操作的特点和功能要求,但不对DBMS的语言给出具体的语法要求。

对关系型数据库的操作是高度非过程化的,用户不需要指出特殊的存取路径,路径的选择由DBMS的优化机制来完成。

Codd在70年代初期的论文论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系型数据库的基础。

Codd博士也以其对关系型数据库的卓越贡献获得了1983年ACM图灵奖。

关系型数据库中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。

在实际的关系型数据库中的关系也称表。

一个关系型数据库就是由若干个表组成。

什么是关系?

这是一个描述两个集合的元素如何相互联系或如何一一对应的数学概念。

因此,关系模型是建立在数学基础上的。

然而,对我们来说,关系只是一个带有一些特殊属性的表,关系模型把数据组织到表中。

数据库设计者、数据库系统管理员和用户都以同样的方式——即从表中查看数据。

表就是关系模型的近义词。

一个关系型表有一组命名的属性或列,以及一组行构成。

有时列被称为字段,行被称为记录,列和行的交集通常被叫做项。

列标示数据位置,有数据类型,例如字符或整数。

行就是数据。

一个关系表必须符合某些特定的条件,才能成为关系模型的一部分:

(1)贮存在单元中的数据必须是原子的。

每个单元只能存贮一条数据,这也叫信息原则(InformationPrinciple)。

尽管存在着按某些违反这一条的方式建立的系统,但是违反这一条原则将可能造成设计上的低效。

当一个单元包含多于一条的信息时,被称为信息编码,一个例子是一个车辆识别号码。

如果它被存贮成一列,这将违犯信息原则,因为它包含了多条信息,例如产地、型号、出厂等等。

这样,是否采用违背理论的方案就是一个设计的选择问题了,尽管在多数情况下,最终证明这种方式对于数据的完整性是不利的。

(2)贮存在列中的数据必须具有相同数据类型。

(3)每行是惟一的(没有完全相同的行)。

(4)列没有顺序。

(5)行没有顺序。

(6)列有一个惟一性的名称。

除了表和它们的属性,关系模型有它自己特殊的操作。

允许数据操作或数据处理的主要语句是SELECT、INSERT、UPDATE和DELETE,这些数据处理操作中任何一个都是事务。

允许数据定义或结构化处理的基本语句是CREATE、ALTER和DROP。

因此,SQL既是一种数据定义语言(DataDefinitionLanguage,DDL),也是一种数据操作语言(DataManipulationLanguage,DML)。

关系模型同样要求两个基础的完整性原则。

它们是实体完整性原则和引用完整性原则。

首先,看看下面这两个定义:

1.主键(primarykey)是能惟一标识行的一列或一组列的集合。

单个列或多列组合都可以被当作主键。

由多个列构成的主键被称为组合键或者常称为复合键。

2.一个外键(foreignkey)是一个表中的一列或一组列,它们在其他表中作为主键而存在。

一个表中的外键被认为是对另外一个表中主键的引用。

实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引用完整性原则简洁地表明一个外键必须为空或者与它所引用的主键当前存在的值相一致。

DBMS应该遵循Codd提出的十二条法则,才能被分类到完全关系型:

(1)信息法则。

数据必须是原子的,每个单元只能存贮一条数据,这也叫信息原则。

(2)授权存取法则。

每一个数据项必须通过一个“表名+行主键+列名”的组合形式访问。

(3)必须以一致的方式使用空值。

如果因为缺少数字值,空值(Null)人为的被当作0来处理,或者由于缺少字符值而被当作一个空格处理,那么它就违反了这条规则。

空值仅仅是指缺少数据而且没有任何数值。

如果缺少的数据需要值,软件提供商通常提供使用缺省值的能力满足这一目的。

(4)一个活跃的、在线数据字典应作为关系型表被存储,并且该字典应该可以通过常规的数据存取语言访问。

如果数据字典的任何部分储存在操作系统文件里,就违反了这条规则。

(5)除了可能的低级存取例程外,数据存取语言必须提供所有的存取方式,并且是存取的仅有方式。

如果你能通过一个实用程序而不是一个SQL接口来存取支持一个表的文件,就有可能违反了本规则。

参见规则1,2。

(6)所有能被更新的视图应当是可更新的。

例如,如果你能将三个表连结起来,作为一个视图的基础,但却不能更新这个视图,则违反本规则。

(7)必须有集合级的插入、更新和删除。

目前,大多数RDBMS提供商都在某种程度上提供了这种能力。

(8)物理数据的独立性。

应用不能依赖于物理结构,如果一个支持某表的文件从一张盘移动到其他盘上或重新命名,不应该对应用产生影响。

(9)逻辑数据的独立性。

应用不应依赖于逻辑结构。

如果一个表必须被分成两个部分,那么应该提供一个视图,以把两段连接在一起,以便不会对应用产生影响。

(10)完整性的独立性。

完整性规则应该储存在数据字典中。

主键约束、外键约束、检查约束、触发器等等都应该储存在数据字典中。

(11)分布独立性。

一个数据库即使被分布,也应该能继续工作。

这是规则8的一个扩展,一个数据库不仅能在一个系统(本地)分布,也能在通过系统的网络(远程)分布。

(12)非破坏性法则。

如果允许低级存取,一定不能绕过安全性或完整性规则,这些规则是常规的数据存取语言所遵守的,例如,一个备份或载入工具不能绕过验证、约束和锁来备份或载入数据。

然而,软件供应商出于速度的原因,通常提供这些功能。

那么,数据库系统管理员就有责任确保数据的安全性和完整性,如果瞬间出现问题,应该立即恢复。

如果一个DBMS能满足本章中讨论的所有基本原则(两个定义、六个属性、关系型操作以及两个完整性规则)和这十二条法则,那么它就可以被当作一个RDBMS。

Codd用他的法则总结了这一切:

“对于一个有资格成为RDBMS的系统来说,该系统必须排他地使用它的关系型工具来管理数据库。

1.2Oracle公司和Oracle的产品

1.2.1Oracle公司简介

Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。

目前Oracle关系数据库产品的市场占有率名列前茅。

Oracle公司成立于1979年,最先推出基于SQL标准的关系数据库产品,可在100多种硬件平台上运行(所括微机、工作站、小型机、中型机和大型机),支持很多种操作系统。

用户的Oracle应用可方便地从一种计算机配置移至另一种计算机配置上。

Oracle的分布式结构可将数据和应用驻留在多台计算机上,而相互间的通信是透明的。

1992年6月Oracle公司推出的Oracle7协同服务器数据库,使关系数据库技术迈上了新台阶。

根据IDG(国际数据集团)1999年全球UNIX数据库市场报告,Oracle超过了市场销售量的50%。

今天,座落在加利福尼亚RedwoodShores的Oracle公司为电子信息管理提供软件产品和服务。

Oracle公司是一个世界范围的软件服务提供商,1999年的收入将超过80亿美元。

Oracle公司的业务遍及世界90多个国家,其软件在100多种不同的计算机上运行,在信息高速公路中扮演着一个重要的角色。

Oracle公司的很多显著特征使得它总是走在大多数信息技术公司的前列,我们可以看一下其中一些典型的特性。

1.决策支持系统

决策支持系统即DSS,在数据信息的充分发掘利用中扮演着一个重要角色。

目前存在着大量以OracleServer为基础数据库的数据仓库。

随着OracleExpress以及OracleDiscoverer等决策支持工具的开发,Oracle已经不管在现在,还是在将来都确立了其在该领域的地位。

2.海量数据管理

数据库系统操作的硬件技术日新月异,新的处理器和高速磁盘不断升级换代,技术更新升级非常的快,而Oracle一直对海量数据的管理非常重视,从版本7.3开始就专门提出了数据分区的办法。

采用数据分区后,海量数据分成很多可管理的块,当系统操作或用户会话处理查询时又能透明地将分块的数据组织起来。

3.保密机制

Oracle的高级保密机制通过各种各样的特权,控制对敏感数据的存取。

用户根据连接到数被赋予各种特权,如查看、修改和创建数据库等等。

用这些机制来保证某些用户能查看敏感数据,而有的用户被禁止。

4.备份与恢复

Oracle提供了高级备份和恢复的子例程。

备份创建Oracle数据的一个副本,恢复把备份的数据恢复出来。

Oracle的备份和恢复把数据丢失的可能性降到最小,并使出现故障时的排错时间最少。

Oracle的服务器也提供了备份和恢复的机制,允许每天、每周、每年不间断地访问数据。

5.空间管理

Oracle提供了灵活的空间管理。

用户可以为存放数据分配所需磁盘空间,也可以通过指示Oracle为以后的需求留下多少空间。

还有一系列为大型的数据库考虑而设计的特殊功能。

6.开放式联接

Oracle提供和其他软件联接的开放式接口。

使用OracleAccessManager,用户很容易就能将别的软件商开发的软件所运行的系统集成起来。

7.开发工具

OracleServer通常指数据库引擎,支持一系列开发工具、终端用户查询工具、流行的应用以及办公范围内的信息管理工具。

OracleForm和OracleReport是Oracle提供开发工具的核心,与Web相连进行发布并利用Internet计算的三层体系结构。

Oracle企业开发套件中捆绑了一些组件,使得发布灵活、操作性强、易于维护,很容易开发出不同层次的应用。

套件中有如下四个主要组件:

(1)OracleDesigner用于定义系统元素(也就是数据源及其之间的关系),生成应用和定义数据库。

(2)OracleDeveloper是一个快速应用开发环境,用于建立交互应用、事务处理或联机事务处理为基础的系统。

(3)OracleDeveloperServer是一个强壮的为多层次提供的开发环境。

(4)OracleApplicationServer是应用服务器,它是为分布式事务应用处理而设计的。

Oracle在国内是最大的数据库厂商,目前Oracle数据库以及其他的相关产品在国内的各个行业应用广泛,主要的用户几乎包括了所有的大中小行业、企事业、政府机关。

Oracle公司以其著名的Oracle数据库作为核心,在此基础上为客户的业务需求提供了完整的解决方案,包括了:

(1)基于Oracle数据库的电子商务应用套件,为企业的ERP、CRM的实施提供了相应的软件系统支持。

(2)为用户提供构建三层架构应用,部署基于互联网络的分布式计算平台提供的应用服务器平台,使用户可以实施浏览器一中间应用服务器一数据库的三层构架。

(3)提供了一整套的开发工具,为用户在应用电子商务产品的基础上开发更具个性化的功能模块提供了快速、简便的开发工具。

(4)Oracle公司在国内以及全球广泛的支持服务中心,为用户提供全面的业务咨询、技术培训以及技术服务支持。

1.2.2Oracle的主要产品介绍

Oracle公司是以数据库产品出名的,数据库软件也是他们的核心软件,所以大多数人提起Oracle公司就想起了Oracle的数据库软件,实际上除了Oracle数据库之外,Oracle公司也开发了一系列软件产品,作为一个全球第二大的软件公司,Oracle公司提供了一个企业生产管理系统所需要的几乎全线产品,主要包括了下面几类:

数据库:

Oracle10g。

应用服务器:

类似于IBM的Websphere,BEA的Weblogic,作为中间应用服务器,部署企业应用,目前主要版本为ias10i。

开发工具包:

一套开发工具,包括了Form、Report、Designer、Jdeveloper的开发工具,提供了开发、设计整套的工具。

Oracle数据库为企业存放重要数据提供了管理和存储平台。

Oracle应用服务器为目前流行的三层架构的应用系统提供了基础运行平台。

Oracle开发工具包为快速开发基于Oracle数据库的应用系统提供了必要和紧密结合的一系列开发工具。

除了前面提到的最常见的一些软件产品之外,Oracle也有一些应用功能更加专业的功能软件,例如:

ERP软件:

也就是电子商务应用套件,包括核心财务模块、物流管理、人力资源、供应链、生产管理等企业资源管理所需的所有模块。

eLearning:

Oracle在应用服务器和数据库的基础上开发的网络教学软件。

数据仓库:

包括了discover、OWB、express等数据仓库构建、数据挖掘与分析软件包,是Oracle提供的一系列功能强大的数据仓库建模、数据抽取和挖掘、数据分析工具集。

1.2.3Oracle数据库的特点

Oracle数据库作为目前主流的数据库,理所应当地具有下面的典型特点,这也是它能够成为三大数据库的头把交椅的原因:

1.支持大数据库、多用户的高性能的事务处理。

Oracle支持最大数据库,其大小可到几百千兆,可充分利用硬件设备。

支持大量并发用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。

Oracle在7*24小时的系统要求下仍然可以保持很高的可维护性,正常的系统操作(后备或个别计算机系统故障)不会中断数据库的使用。

2.Oracle遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。

所以它是一个开放系统,保护了用户的投资。

美国标准化和技术研究所(NIST)对Oracle10G进行检验,它100%与ANSI/ISOSQL99标准的二级相兼容。

3.实施安全性控制和完整性控制。

Oracle为限制各监控数据存取提供系统可靠的安全性。

0racle实施数据完整性,为可接受的数据指定标准。

4.支持分布式数据库和分布处理。

Oracle为了充分利用计算机系统和网络,允许将处理分为数据库服务器和客户应用程序,所有共享的数据管理由数据库管理系统的计算机处理,而运行数据库应用的工作站集中于解释和显示数据。

通过网络连接的计算机环境,Oracle将存放在多台计算机上的数据组合成一个逻辑数据库,可被全部网络用户存取。

分布式系统像集中式数据库一样具有透明性和数据一致性。

5.具有可移植性、可兼容性和可连接性。

由于Oracle软件可在许多不同的操作系统上运行,以致Oracle上所开发的应用可移植到任何操作系统,只需很少修改或不需修改。

Oracle软件同工业标准相兼容,包括许多工业标准的操作系统,所开发应用系统可在绝大多数操作系统上运行。

可连接性是指Oracle允许不同类型的计算机和操作系统通过网络可共享信息。

1.3Oracle数据库的主要开发工具和管理工具

作为目前用的最为广泛的数据库,Oracle提供了很多简单好用的数据库开发和管理工具,下面列出了一些常见、常用的,对于一个开发人员,不要求都掌握,但是为了全面地了解Oracle数据库,还是要知道各个工具的特点和基本功能。

主要的开发工具如表1—1所示,管理工具如表1-2所示。

表1-1Oracle主要的开发工具

开发工具

功能

Sql*plus

执行数据查询、数据操作等操作,也可以用来创建、执行PL/sql程序

Pro*C

嵌入式C语言,可以在C语言中直接嵌入Sql,通过专门的Pro*C编译器编译程序

SqlJ

嵌入式Java语言,可以在Java语言中直接嵌入Sql,通过SqlJ编译生成可以调用的Javaclass

Form

专用的应用开发工具,通常用于OracleERP软件的二次开发

Report

专用的报表开发工具,通常用于OracleERP软件的二次开发

Jdeveloper

开发Java程序的工具,类似于Jbuilder

表1-2Oracle常用的开发工具

管理工具

功能

Sql*plus

执行正常的数据操作,也被用来执行大多数管理任务,命令行工具

OEM企业

管理器

图形化管理工具,完成Sql*plus的大多数管理任务,非常简单实用的管理工具,对于数据库的基本管理任务和图形化监视非常方便

Sql*loader

数据装载工具,将包含数据的文本文件中的数据装载到数据库的表中

exp/imp

数据传递工具,可以将一个Oracle数据库中的数据传递到另一个数据库

orapwd

口令文件创建工具,通常不用,创建用于身份验证的口令文件

Oracle的开发工具中,最常用的是Sql*plus,其他的工具适用于开发不同语言、不同功能的应用程序,所以在本书中将主要只涉及Sql*plus的使用。

管理工具中,最常使用的是Sql*plus以及图形化管理工具—OEM。

1.3.1图形化的管理工具——Oracle的企业管理器

企业管理器作为Oracle自带的图形化管理软件,具有下面的这些特点:

1.使用统一的控制台管理企业网中分布的多个数据库及其他服务,为DBA提供了集中的系统管理控制台:

2.提供了多个用于管理、诊断以及调优数据库的工具包,也可以图形化地调用一些命令行管理工具;

3.可以从一个客户端同时管理多个网络节点和服务;

4.可以创建多个OEM管理员,分别管理、共享管理任务;

5.提供了管理并行服务器、复制数据库等多种管理工具。

企业管理器可以以两种模式运行:

1.独立运行(Standalone):

独立运行方式类似于Sql*plus,采取的是C/S方式的连接,控制台直接连接被管理的数据库。

这种运行方式可以执行数据库的基本管理任务。

2.基于OMS(OracleManagermentServer):

这种运行方式采取的是三层架构的连接,控制台并不是直接连接在数据库上,而是连接在中间层的OMS上,OMS接受用户的管理任务,交给数据库服务器上的特定代理服务执行。

一些高级的管理任务需要OMS的支持。

1.3.2朴素但强大的工具——SQL*PLUS

Sql*plus的基本功能:

1.提供了运行Sql语句的环境,可以操作各种数据库对象,包括创建和执行PL/sql程序;

2.可以用于查询、操作数据库的数据;

3.可以用于管理数据库,例如启动或者关闭数据库。

Sql*plus的基本特点:

1.Sql*plus是Oracle独有的运行环境;

2.除了支持Sql语句外,Sql*plus也有自己的一套Sqlplus命令;

3.基于Oracle的跨平台特性,Sql*plus在各个平台都可以运行;

4.Sql*plus命令与sql语句不一样,不要搞混;

5.提供了标准SQL扩充命令的支持。

1.4Oracle数据库的一些基本概念

在开始学习如何开发数据库应用之前,需要先了解一些基本的数据库知识,最基本的就是数据库的一些基本概念和术语。

下面列出了一些常见的术语,为了便于理解,将术语进行了分类:

表1-3中列出了与数据库对象相关的术语;表1-4中列出了与数据库安全相关的术语;表1-5中列出了与文件、存储相关的术语;表1—6中列出了与数据库网络访问相关的术语。

表1-3数据库对象

术语

描述

一种数据存储对象,也就后面提到的数据实体。

表是用来存放用户数据的对象,由

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1