`
yangzb
  • 浏览: 3507318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 数据库 10g 特别版:并非只适合初学者

阅读更多

作者:Lewis Cunningham

Oracle 数据库 XE 并不一定只对新手、学生、业余爱好者或小型企业具有重要价值 - 它在许多其他情况下同样很有吸引力。

2006 年 3 月发布

除非您根本不看新闻,否则很可能听说过 Oracle 数据库 10g 特别版 (XE) 的生产版本 - 一个适合 DBA 和开发人员使用的免费入门级数据库。该版本是 Oracle 的一个真正具有历史意义的版本。

但 Oracle 数据库 XE 并不一定只对新手、学生、业余爱好者或小型企业具有重要价值;它在许多其他情况下同样很有吸引力。它将为 DBA、开发人员以及分析人员处理其日常工作提供很大的帮助,无论其企业规模如何。

具体而言,如果您是一位 DBA,并且用户想要在您的数据库中演示“假定分析”方案,则可以通过 Oracle 数据库 XE 创建一个用于向用户提供数据的策略,这种情况下 Oracle 数据库 XE 的作用将发挥到及至(并且对服务器的影响最小)。部署该产品还可以解决下载和安装开放源代码数据库的用户或开发人员所遇到的常见问题(该问题为您带来了很 多维护、支持和安全性难题)。

如果您是一位渴望学习“DBA”任务或只需要 R&D 数据库来试用一些新功能的开发人员,或者如果您只是苦于应用程序需要伸缩时所遇到的开放源代码不兼容和移植问题,那么 Oracle 数据库 XE 将是您最佳的替代产品。

最后,如果您是一位需要进行“假设分析”但在您所选择的数据仓库或应用程序中无法执行所需操作的业务分析人员,那么 Oracle 数据库 XE 可以使用电子表格和模型,使您可以安全、可靠地访问所需数据。

本文将概述 Oracle 数据库 XE 为以上三个角色提供帮助的某些明显和不太明显的方法。但在开始前,必须先了解一下 Oracle 数据库 XE 的固有限制。

限制条件

为了使该版本易于安装(例如,通过标准 Windows 安装程序进行安装)、配置和维护,Oracle 对该产品进行了某些限制。

第一个限制是内存 - Oracle 数据库 XE 仅支持 1GB RAM。但由于提供 1GB 内存的计算机相对较少(尤其是在小型企业中),因此该限制将主要影响可以同时访问数据库的用户数量,并在达到这些限制时在多大程度上影响数据库的性能。大 多数情况下,由于 Oracle 数据库 XE 将部署在一个用户桌面或一个小型工作组服务器,因此 1GB 内存绰绰有余。

第二个限制是 XE 将只使用一个 CPU。这并 意味着它不会执行多个任务,也不意味着它一次只执行一项功能。相反,XE 可在具有多个 CPU 的计算机上运行,只不过不使用这些 CPU 而已。要使用多个 CPU,您需要购买 Oracle 数据库标准版或企业版。对于本文介绍的使用场合而言,一个 CPU 绰绰有余。

第三个限制是,任何给定计算机上只能运行一个 XE 数据库。此处有一点很重要,即您不必像某些其他数据库那样为每个创建的应用程序分配一个数据库。相反,Oracle 使用模式这个概念来分隔应用程序。

最后一个限制是,磁盘空间最大为 4GB - 表面看来这似乎是一个比较苛刻的限制。但对于大多数应用程序而言,4GB 已经是一个比较大的存储大小了。与多 TB 数据仓库相比,4GB 确实显得有些小,但在实际情况下却并非如此。

以附带的 HR 示例模式为例。EMPLOYEES 表的最大行大小为 144 字节。4GB = 4,294,967,296 字节,4GB/144 = 29,826,162。这意味着您可以存储几乎 3 千万个雇员记录。这是一个相当大的员工数量。即使将 JOBS、DEPARTMENTS 以及其他示例表考虑在内,您也不希望在本地存储如此多的数据。(这就是您为什么要购买企业许可的原因了。)Oracle 数据库 XE 用于只存储该数据有用的子集。

您将在下个部分了解到,这些限制实际上不会为您执行日常的 DBA 任务设置任何障碍。

聚合角度

以数据仓库环境为例。通过在这样的环境中实施 4GB 磁盘限制,您将不必担心数据溢出。可以为客户制定清除和刷新(推或拉)计划。数据库位于用户的桌面上并不意味着它已经“离开建筑物”。

因此,可以使用 Oracle 数据库 XE 发送聚合的数据,以便用户可以完全控制他们的数据,由此可以减少企业硬件的负载。如果可以将 EE 许可成本减少一个 CPU,则这样的努力就值得。(聚合的数据还意味着您不必担心隐私或合规性问题。)

Oracle 数据库 XE 支持物化视图复制,但如果运行 XE 的用户数量很大,则使用该复制可能会适得其反。一个更好的解决方案是在客户端创建一组存储过程(在 XE 中)。这些过程将清理旧数据并重新填充最新、最重要的数据。以下是一个示例脚本:

/* Turn on spooling and write output to the file
test_links.lst for later review */
spool test_links

/* Connect to the LOCAL XE database as SYSTEM (DBA)  
This user, SYSTEM, has the permissions to execute the 
following grant */
connect system/&local_system_pwd.@local_xe

/* Grant CREATE TABLE directly to HR 
We need to grant explicitly so that the 
create table command can be used in a 
stored procedure */
grant create table to hr;

/* Connect to the REMOTE XE Database as HR 
HR is a sample account that comes pre-loaded 
with Oracle Database XE */
connect hr/&remote_hr_pwd.@remote_xe

/* This select tells us how many records are actually in
the HR.EMPLOYEES table */
select count(*) from hr.employees;

/* Create a view to restrict data in the remote HR schema
The where clause will reduce the number of records that
a user sees */
create or replace view hr_employees_vw as
select * from hr.employees
where salary < 5000;
	
/* Re-execute the select from above against the new view
and note that there are fewer records in the view 
than there are in the table */
select count(*) from hr_employees_vw;

/* Connect to the local HR account */
connect hr/&local_hr_pwd.@local_xe

/* Create a database link from the local XE database
to the remote XE database HR account */
create database link remote_db
connect to hr
identified by hr
using 'remote_xe';

/* Create a procedure to populate a local table
The procedure drops the local HR_LOCAL_EMPLOYEES
table and then recreates it by selecting from
the newly created HR_EMPLOYEES_VW in the remote
XE database using the database link created above */
create or replace procedure pop_hr_data as
begin

begin
-- Drop the local table
execute immediate 'drop table hr_local_employees cascade constraints';
exception
when others then
	  null; 
end;
    
-- Create the table by selecting across the database link
execute immediate 'create table hr_local_employees as ' ||
'select * from hr_employees_vw@remote_db';
					
end;
/

/* Run the procedure to execute the new procedure */
exec pop_hr_data

/* Verify that the procedure, link and view are working
by executing a select that counts the number of records
in the HR_LOCAL_EMPLOYEES table.This number should be
the same number as the count from
the remote XE restricted view above */
select count(*) from hr_local_employees;

/* Turn off the spooled output.This will save the file 
so that the script and results can be reviewed */
spool off

该方法的部分好处在于可以制定刷新计划;您可以决定每个用户的最佳加载时间。

通过在 EE 端使用视图,您可以通过在数据仓库或 SE/EE 数据库中为每个用户提供一个 ID 控制任何特定用户可以访问的数据。当您为用户提供用于填充的存储过程时,使用他们的 ID 创建一个专用数据库链接。将来,当他们使用该链接访问数据库时,该链接将具有他们的权限和角色。这意味着不会为 DBA 带来额外的安全性开销。要删除用户对数据的访问权限(当用户换了一个新工作或离开公司时),可以锁定或删除该用户帐户,而您的数据库仍是安全的。

另一种用于向用户提供数据的选择不久将以 Oracle Warehouse Builder 的下一代版本(代号为“Paris”)形式推出。Paris 将使映射能够通过普通连接 (ODBC) 从摘要表中提取数据,这意味着它可以为 Oracle 数据库 XE 或其他数据库提供同样好的性能。其应用对象可以是客户的 PC 或工作组服务器。

Oracle 数据库 XE 还支持外部表。如果系统已经将平面文件导入到数据仓库中,或生成了其他用途的平面文件,则您现在可以为用户提供一个脚本来创建外部表。更改他们的数据就像 复制平面文件一样简单。最终用户可以将计算所得的值以及其他用户数据保存在他们自己的表中。上面提到的 4GB 限制适用于数据库中的用户存储,而不适用于外部表。

许多较小的应用程序(如源代码控制、配置管理、错误跟踪和项目管理)使用 ODBC 或 JDBC 连接性以及 ANSI SQL 将数据存储到开放源代码数据库中。Oracle 数据库 XE 支持 ANSI 标准 SQL 以及以上两种类型的连接性。在某些情况下,只需运行一些 DDL 脚本(创建数据库对象)并更改连接字符串便可以将这些应用程序移植到 Oracle 数据库 XE。随着该版本越来越受欢迎,很有可能将 XE 支持构建到许多更新的项目中。

对于开发人员:是自由的

如果您是开发人员,您是否曾经希望立即投入到项目中但却必须等待创建开发实例?您是否曾想要测试某个想法但却没有必要的权限?您是否想要摆弄数据库 参数以了解其作用但却被告知“这是 DBA 的工作”?如果您曾遇到这些情况,则 Oracle 数据库 XE 就可以解决您的这些问题。

一种新类型的支持:社区

Oracle 将以安装形式通过 MS 安装程序或 Linux RPM 执行升级。由于将不发布补丁,因此将显著简化升级过程。用户可以自行运行一个简单的命令执行升级,而不必让您(即 DBA)升级所有本地计算机。

您和您的用户还可以从同一个地方(OTN 上的 Oracle 数据库 XE 论坛 )获得支持。该论坛是一个互助平台,任何人均可以注册 ID。如果您有一个有效的支持合同,Metalink 还可以就您遇到的任何问题或提出的疑问提供大量信息。但请注意,无论您拥有的是什么样的支持合同,您都无法针对 XE 问题创建技术协助请求 (TAR)。

经验告诉您,使用开放源代码数据库执行以上操作会产生问题。两个完全相同的数据库是不存在的;大多数开放源代码数据库的参数与 Oracle 参数完全不同。数据库之间的管理任务也不同 - 如果在开放源代码数据库上测试某个想法,则无法保证 Oracle 将有相同的反应。而最糟糕的是,如果在开放源代码数据库上开始编程,则在某个时刻您将需要连接到 Oracle 并且必须解决移植问题。

而 Oracle 数据库 XE 则不存在这些问题。如果需要的话,您完全可以“扮演 DBA 的角色”。安装和配置的工作量很小,以便您可以专注于开发,但如果您要试用配置,则拥有完全的控制权限。

使用 Oracle Application Expres(先前的 HTML DB),您可以使用不同的权限级别创建多个用户。或者,可以使用 SQL*Plus 创建用户、角色和配置文件。花费在配置以及其他 DBA 任务的时间完全取决于您。Oracle 数据库 XE 马上就可以用于应用程序开发。

当然,大小的减小以及管理开销的降低意味着某些内容将被忽略。数据库的内部不再有 Java 支持。您可以通过 JDBC 连接到外部 JVM,但在编写本文期间,尚没有内部 JVM。

然而却包含了 .Net CLR 外部进程监听器。该监听器类似于 Oracle 8.0 之后推出的 C 外部监听器。该外部进程支持在数据库中注册 .NET 程序,以便可以像任何其他 PL/SQL 过程那样从 PL/SQL 存储过程中调用这些程序。

.Net 支持仅在 Windows 平台上提供,并且此时只能用于 Visual Studio 2003。(对 VS2005 的支持将于 2006 年年初推出。)但您会因为 Microsoft 在 VS Express 工具集中加入了限制而无法使用 VS Express 工具。

您的所有其他开发工具(包括 TOAD、JDeveloper、Forms、PHP 和 Oracle 的新 Project Raptor 图形数据库开发工具)将按照预期的方式在 XE 中工作。您可以根据任何应用程序的需要随意进行研究、测试和开发。

与其他版本一样,Oracle 数据库 XE 包含 Application Express 基于 Web 的开发和部署工具以及 XML DB。使用后者,您可以立即开始使用 XML、WebDAV 以及内置的 HTTP 和 FTP 服务器。

(注意:作为 Oracle 开发人员,您的 PC 上可能有多个 Oracle Home。如果可能的话,请在安装任何其他 Oracle 工具之前安装 XE。否则,请确保在安装前将任何 ORACLE_HOME 和 TNS_ADMIN 变量注释掉。如果设置 TNS_ADMIN 环境变量,则可以为所有 Oracle Home 目录维护一个 TNSNAMES.ORA 文件。)

在某些情况下,Oracle 个人版 (PE) 可能是一个更适用于数据库开发的解决方案。尽管 PE 需要许可,但却为您提供了完整的 EE 功能集以及 Oracle Metalink 支持服务。如果要对表进行分区、通过 VPD 保护应用程序或将表扩大到 4GB 以上,则 PE 将是一个比 XE 更好的选择。

全天侯假定分析?

大多数分析人员使用 Excel 和 Access 代替 Oracle,这是因为该软件在企业 PC 中比较普及。而这些 PC 应用程序有一些比较明显的缺点,例如可靠性、安全性以及 Excel 苛刻的 64k 行限制等。

但如果分析人员无法创建他们自己的表、混合和匹配数据或修改该数据以查看“假定分析”情景,那么他们应该怎么办?由于提供了合理的磁盘和内存大小、 简单的安装过程以及完整的权限集,Oracle 数据库 XE 可以实现以上所有操作。如果您的生产数据库中包含用户 ID,则将其数据置入 Oracle 数据库 XE 中只需创建一个数据库链接。


Application Express 创建数据库链接

此处最重要的特性是 Application Express,一个考虑到非编程人员的基于 Web 的 GUI 屏幕和报表构建器。除了构建屏幕和报表以外,您还可以使用 Application Express 向导查看磁盘使用率或创建表、索引以及其他数据库对象。

Application Express 提供了一个图形查询构建器(适用于不了解 SQL 或对其了解有限的用户)和一个图形数据库浏览器。数据库浏览器使您可以导航数据库中的对象以及查看或修改这些对象。


Application Express 查询构建器 - 条件
Application Express 查询构建器 - 视图 SQL
Application Express 查询构建器 - 结果
Application Express 对象浏览器

分析人员可以使用 Application Express“Create From Spreadsheet”向导从现有电子表格中创建表和应用程序。单击一个菜单选项并选择上载电子表格(或剪切并粘贴它)后您便可以进行创建。该向导甚至 向您提供了基于电子表格构建的摘要报表。它确实就这么简单。


Application Express 从电子表格创建应用程序

可以将 Application Express 的输出另存为一个可以由 Excel 打开的 CSV 文件。

与转换 Excel 电子表格相比,替换 Access 应用程序对技术知识的需要略高一些。有关将 Access 应用程序移植到 Application Express 的提示,请参阅本演示文稿

Oracle 数据库 XE 还提供了许多内置的分析函数:LAG、LEAD、PERCENTILE_RANK、STDDEV 等。所有这些分析函数均可以在 Application Express 应用程序中使用。XE 并不适用于复杂的智能应用程序,因此不支持 OLAP 和 SELECT MODEL 子句。

并不仅仅是一个入门级数据库

尽管具有本文所述的各个优点,但 Oracle 数据库 XE 并不是一个万能的数据库。如果您有重要的隐私或合规性要求,则应将数据保存到数据中心,在那里可以保护数据并对数据进行审计。如果您需要为大量用户提供支 持,并且如果 XE 的可用磁盘空间不足,则 DBA 应在受控制的环境中管理和维护数据库。

但对于许多其他情况(而不仅仅对于培训或测试)而言,XE 是一个很优秀的新工具。从小型企业一直到全球 500 强企业,您都可能发现 XE 是一个适用于桌面的数据库。

分享到:
评论

相关推荐

    安装 oracle 数据库 10g 的基础知识

    这些是 Oracle 数据库 10g 认证的 Linux 发行版,确保了兼容性和稳定性。 - 对于初学者,RHEL 2.1 和 RHEL 3 是不错的选择,因为它们提供了稳定的平台,而 SLES 8 适用于更高级的用户,因为配置可能会更复杂。 2. ...

    oracle数据库11G初学者指南 英文pdf格式电子书

    ### Oracle数据库11G初学者指南 #### 一、书籍简介 《Oracle数据库11G:初学者指南》是一本由Ian Abramson、Michael Abbey、Michael J. Corey和Michelle Malcher共同编著的专业教程,旨在为新手提供Oracle数据库11G...

    最新Oracle(10g)数据库学习必备(PPT)

    通过这个Oracle 10g的学习资料,你可以建立起对Oracle数据库系统的全面理解,并具备实际操作的能力。无论你是初学者还是希望提升技能的专业人士,这都将是一份宝贵的参考资料。记得理论与实践相结合,多动手操作,...

    Oracle数据库系统应用与开发

    Oracle数据库系统是全球广泛使用的...通过深入学习“Oracle数据库系统应用与开发”,无论是初学者还是经验丰富的开发者,都能增强对Oracle数据库的理解,提升开发和管理能力,为实际项目中的高效数据处理打下坚实基础。

    在 Linux x86 上安装 Oracle 数据库 10g

    在Linux x86平台上安装Oracle数据库10g是一项技术性的任务,尤其对于初学者来说,可能需要详尽的指导。本教程将引导你逐步完成这一过程,从安装Linux操作系统到配置Oracle环境,再到最终安装Oracle数据库。 首先,...

    Linux x86 上安装 Oracle 数据库

    在本篇指南中,我们将详细介绍如何在 Linux x86 架构上安装 Oracle 数据库 10g,并针对三种不同的 Linux 发行版进行具体讲解:Red Hat Enterprise Linux (RHEL) 2.1 和 RHEL 3 以及 SUSE Linux Enterprise Server ...

    Oracle数据库安装配置完全实战手册

    无论你是初学者还是经验丰富的数据库管理员,这份手册都能提供有价值的信息,帮助你更好地理解和掌握Oracle数据库的使用技巧。通过遵循手册中的步骤,你可以快速建立起一个稳定、高效的数据库环境,满足企业级应用的...

    Oracle数据库实用教程(第二版)

    本书旨在帮助读者深入理解和掌握Oracle数据库系统的核心概念、管理和开发技术,特别适合初学者和有一定经验的数据库管理员以及开发人员学习。 在Oracle数据库的基础部分,书中详细介绍了关系型数据库的基本原理,...

    Navicat连接Oracle数据库

    ### Navicat 连接 Oracle 数据库详解 ...无论是初学者还是经验丰富的开发人员,都能够通过Navicat轻松地进行Oracle数据库的各种操作。希望本文能够帮助您更好地理解和使用Navicat这一强大的数据库管理工具。

    plsql 连接oracle数据库工具

    1. SQL Developer:Oracle官方提供的免费开源工具,功能全面,适合初学者和专业开发者。 2. Toad:Quest Software的产品,专业且强大,特别适合数据库管理员和高级开发人员。 3. DBeaver:一个跨平台的通用数据库...

    ORACLE数据库

    本笔记涵盖了从Oracle数据库的基础概念到高级特性的全面知识,特别适合想要深入理解和学习Oracle数据库的初学者和进阶者。在接下来的内容中,我们将详细探讨Oracle数据库的关键知识点。 1. **Oracle数据库基础**: ...

    oracle v-11.2.0.4.0 Oracle 11.2.0.4 For Windows 64bit+32bit 数据库

    Oracle 11g Release 2 (11.2.0.4) 是Oracle数据库的一个重要版本,特别适合Windows 64位和32位操作系统。这个版本提供了多种组件和服务,以满足不同用户的需求,包括数据库服务器、Grid Infrastructure、客户端、...

    Oracle数据库只有数据文件的恢复方式,只适合初学者,里边有VM的相关操作。请谨慎下载!

    本文主要探讨了只使用数据文件进行Oracle数据库恢复的方法,特别适合对数据库恢复不熟悉的新手。这种方法涉及到在虚拟机环境中进行操作,包括VMware的安装、虚拟机配置、操作系统的安装,以及最后的数据文件连接和...

    Oracle 9i&amp;amp;10g编程艺术:深入数据库体系结构

    《Oracle 9i&10g编程艺术:深入数据库体系结构》是一本全面、深入的Oracle数据库技术指南,不仅适合于初学者入门,也适用于有经验的数据库管理员和开发者进一步深化对Oracle数据库内部运作机制的理解。通过学习本书...

    简洁版的Oracle10g.rar

    Oracle 10g是一款历史悠久但仍然受到许多用户青睐的关系型数据库管理系统。...尽管现在有更新的版本,Oracle 10g仍然是许多企业和开发者的首选,特别是对于学习数据库管理基础和理解Oracle体系结构的初学者。

    Oracle Database 10g: 管理功能研習營I

    根据提供的文档信息,我们可以归纳出一系列关于Oracle Database 10g管理功能的重要知识点。下面将对这些知识点进行详细的阐述。...这些知识点对于初学者和有一定经验的Oracle数据库管理员都非常有用。

    Oracle Concepts(10g)【Oracle入门第一步】

    《Oracle Concepts(10g)》是Oracle数据库学习的基础教程,尤其适合初学者入门。这本书深入浅出地介绍了Oracle数据库的核心概念,为后续的Oracle学习打下坚实的基础。Oracle数据库作为世界上最广泛使用的数据库管理...

    【王炸】Oracle DSI-适用于10g,11g,12c,18c,19c-DBA必备.zip

    Oracle数据库是全球最广泛使用的商业关系数据库管理系统之一,尤其在企业级应用中占据了主导地位。...无论是初学者还是经验丰富的专业人士,都可以从中找到适合自己的学习内容,掌握Oracle数据库的核心技术和最佳实践。

Global site tag (gtag.js) - Google Analytics