Oracle编程入门经典

Oracle 9i产品协理文档:

http://docs.oracle.com/cd/B10501_01/index.htm

可依据自己索要开展询问,包括了无数的文档。

 

Sample Schemas的目录:

http://docs.oracle.com/cd/B10501_01/server.920/a96539/toc.htm

 

Sample Schemas的文档(示例方式的表及介绍):

http://docs.oracle.com/cd/B10501_01/server.920/a96539.pdf

 

有的是年来,Oracle教授、管理员、程序员、以及用户为了学习、测试或调整他们的数据库,都一贯在采取这些值得依靠的SCOTT情势举办着简单地询问、更新、以及去除操作。那么些方式就是大家所说的言传身教格局。示例形式是表、视图、索引那样的数据库对象的集纳,并且随着预先供了象征小圈圈仍旧中等规模公司的数码。

乘势最新版本的Oracle数据库Oracle
9i的出现,又推荐了全新的一组示例方式,它们的靶子是增加S(英文名:Barbie Hsu)COTT形式向用户提供的成效。所有那些情势一起形成了一如既往的虚拟公司的一局地,它们分别都有谈得来的政工重点。例如,人力资源部、订单输入部门以及发货部门都有离其他情势。

注意:

眼前hr已经锁定了(即lock)。要求举办以下脚本:

SQL> connect system/zyf;

已连接。

SQL> alter user hr account unlock;

用户已更改。

SQL> alter user hr identified by hr;

用户已更改。

SQL> connect hr/hr;

已连接。

SQL> select table_name from user_tables;

TABLE_NAME

------------------------------

COUNTRIES

DEPARTMENTS

EMPLOYEES

JOBS

JOB_HISTORY

LOCATIONS

REGIONS

已选择7行。

4.1 SCOTT模式

所提供的SCOTT情势可以提供一些示例表以及数据,来显示数据库的部分风味。它是一个一定不难的格局,如图4-1数据结构图所示(通过PowerDesign逆向工程转换为数据库模型)。

图4-1 SCOTT方式数据结构图

 海洋世界 1

为何要将那一个模式命名为SCOTT呢?SCOTT/TIGER是Oracle版本1、2和3时代的Oracle数据库的早期用户名/密码组合。SCOTT是指Oracle公司的泰斗程序员BruceScott。当然,TIGER是Bruce养的猫的名字。

SCOTT形式中所显示的数据库特性经常被认为是多数关周详据库产品中的主要特征。如若想要真实地展现Oracle数据库的效率,就要强化那一个示例!

4.2 Oracle 9i示例方式

Oracle技术可以利用于各样不相同的条件中。技术解决方案的四个利用极端景况是,高速在线事务处理和数据库仓库。就算用户可以行使一个形式,浮现什么在平等的表中已毕在线事务处理和数据仓库。不过用户毫无可能选拔那种措施落成实用的解决方案。大家在近来的业界中时时能够发现,为了缓解具体世界中的分裂总计须求,平常在单独的数据库实例中会存在不一样的情势,或者在网络上会有大气分布式数据库。新的Oracle
9i示例形式模型极好地对这一个场合建模。

Oracle
9i示例形式试图模型化一个现实世界中兼有一多重典型业务部门的销售团队。这一个差其余部门有着差别的音讯技术须求,每一个示范格局都施用了分化的Oracle技术来缓解它们各自的题材。另外,每个情势设计方案都针对一定的技艺用户。那一个方式如下:

  • HR——人力资源。
  • OE——订单输入。
  • PM——产品媒体。产品媒体在数据库中储存了商店种类产品的相干多媒体内容,可以用来在Web上发布以及打印。PM利用了Oracle
    Intermedia,它越发规划用来拍卖发表音频、摄像以及可视数据的多媒体领域。别的,PM也频繁地应用了LOB列类型。
  • QS——队列运送。运送部门各负其责记录公司向客户拓展的成品运载景况,并且选取6个情势来达成那项工作。QS、QS_ES、QS_WS、QS_OS、QS_CB和QS_CS构成了队列运送情势的成团。
  • SH——销售历史。

4.2.1 深刻座谈种种形式

1. 人力资源

人力资源情势,或者HR方式,负责管理部门、雇员、工作以及薪水音讯。图4-2体现了HR情势的事无巨细数据结构图示。

海洋世界 2

2. 订单输入

订单输入(Order
Entry)形式,或者OE方式,能够用来保管集团从事商务活动的次第渠道中的客户、销售订单以及产品库存。

图4-3详实描写了OE格局的数据结构。就好像我们原先领悟的,与人力资源情势相比较,订单输入方式尤其复杂。

海洋世界 3

图4-3 OE形式数据结构

OE方式会记录产品库存。我们将会储存任意指定仓库中指定产品的数目。在店堂中会有八个仓库,所以要利用地方标识符提议其地理区域。在WAREHOUSES表中还有一个Oracle
Spatial列,它为大家提供了动用Oracle Spatial空间技术的钥匙。

Oracle Spatial是在数据库中匡助地点数据和地理数据的技艺。

在OE情势中,要求顺便提供提及多个数据库对象模型:

  • CUST_ADDRESS_TYP。那是一个在CUSTOMERS表中行使的靶子类型。它富含了众多与客户地址有关的品质。

SQL> desc cust_address_typ;

名称 是否为空? 类型

----------------------------------------- -------- 

STREET_ADDRESS VARCHAR2(40)

POSTAL_CODE VARCHAR2(10)

CITY VARCHAR2(30)

STATE_PROVINCE VARCHAR2(10)

COUNTRY_ID CHAR(2)
  • PHONE_LIST_TYP。那是一个VARCHAR2(25)的VARRAY。那个VARRAY在CUSTOMERS表中作为单身的列存储,可以用于存储最多5个电话号码。

SQL> desc phone_list_typ;

phone_list_typ VARRAY(5) OF VARCHAR2(25)

OE格局是一个很好的言传身教,它呈现了正式的供应社团或者电脑零售商店能够运用什么艺术去管理它们完整订单处理进度。通过行使订单输入表中的多少,销售团队就足以向地下的客户提供精确的制品信息,接受销售订单,量化订单收入,存储客户音讯,为分化地理地点订购产品的客户提供可信的库存新闻,以及任何服务。

3. 成品媒体

产品媒体(Product
Media)方式,或者PM格局,用于管理描述公司出品的多媒体数据。摄像、音频和图像那样的在线媒体都可以随输出的传媒数据类型存储在数据库中。那是大家要越发切磋的方式之一,它器重于多媒体内容,以及Oracle
Intermedia所提供的出力。

注意:

Oracle Intermedia是Oracle数据库辅助多媒体内容类型的零部件。

除却Intermedia数据存储以外,PM形式还专门着重LOB列类型的选用来囤积数据。

海洋世界,出品媒体情势是Oracle 9i使用名为Oracle
Intermedia的Oracle技术解决实际世界商务要求的名特优示例。例如,大家虚构的集团就可以储存多媒体数据或者输出多媒体数据。因此,产品媒体形式中的示例可以完毕如下工作:

  • 为Oracle中采取Web公布的情节存储缩略图和完全尺寸的图像。
  • 在Oracle中存储音频剪辑。
  • 在Oracle中储存视频剪辑。
  • 对图像类型进行拍卖,以便转换成与Web包容的图像类型

动用Oracle
Intermedia,一些已经很难完成的天职就变得相对简便易行。图4-4意味着为产品媒体形式,以及它对订单输入表PRODUCT_INFORMATION的引用。

海洋世界 4

图4-4 PM情势数据结构

PRINT_MEDIA表拥有一个目的类型(ADHEADER_TYP),以及在表的逐条记录中储存的目的嵌套表(TEXTDOC_TAB)。

ORDSYS.ORD__列都是一个Intermedia对象类型。这个Intermedia对象类型不仅可以储存图像、音频、视频这样的二进制数据;还能储存种种与多媒体类型有关的元数据。

SQL> desc ordsys.ordimage;

4. 行列运送

我们的虚拟集团想要使用音讯系统,以便于在线客户拓展自助订货。当客户开端化订货的时候,系统就要求树立订单,向客户提供账单,并且要保管可以依照客户的地点,通过适当的地区发送订货。

QS_CS格局有一个名为ORDER_STATUS_TABLE的表,可以储存订单状态。那是在整整队列运送方式安装进度中唯一建立表(除了通过高档队列API建立的队列表以外)。大家不会突显与表有关的数据结构图,而是要商量为队列运送格局所树立的队列系统中的新闻流程。

图4-5所示流程图示中得以见见,为了提供一个清晰、直观的预约——发货——结算循环,要在机构之间如何传递音信。

海洋世界 5

图4-5 为队列运送(QS)方式在队列系统中制造的信息流程

方方面面都要从图示顶部的订单输入先导。Oracle
Input(订单输入)进度所生成的订单会放入New Order
Queue(新订单队列)中。那几个行列要Oracle
Entry应用处理,然后会将订单放到Booked Orders
Queue(登记订单队列)中。再将Booked Orders
Queue中的订单发往适中的运载中央(East(北部)、韦斯特(西边)或者Overseas(国外)),以及客户服务单位。

在此刻,运送大旨就会收到要落成的订单,并且向客户发送订货,而且客户服务部门也会发现到订单的情形。在方便的运载大旨,Shipping
Center(运送宗旨)应用就会负担发送订货,或者将预约调整回订单状态。一旦获得了成品,就会发送退回为订单状态的产品,并且将订单放到shipped
orders(已运送订单)队列中。

当订单发送之后,就会由此shipped orders
gueue公告客户服务和客户结算部门,并且向客户发送账单。经过结算的订单会放在Billed
Orders(已结算订单)队列中,它会通报客户服务单位,然后就足以做到订单处理进程。

5. 销售历史

明日商务环境中的集团一度意识,除非人们可以采纳一种有意义并且即时的章程,根据音信变化精确的表决报告,否则世界上的装有销售信息都是毫无价值的。决策接济(decision
support)就是用来叙述在拓展裁决的长河中信息技术应用的术语。

销售历史方式是一个价值观数据仓库的示范。表会根据星型情势(star
schema)设计开展集体,在那种艺术下,会有一个大的SALES表位于中央,SALES表的外场还会有部分小的查询表,或者维数(dimension)表。SALES表平时会有大批量的多寡(所有的行销实时),而维数表相对于SALES表来讲会非常小。

图4-6的数据结构图浮现了销售历史方式:

海洋世界 6

图4-6 销售历史格局数据结构

4.2.2 渐进学习情势

循规蹈矩不一致的受众协会方式的点子可以鼓励新的Oracle用户通过结构化的主意学习技能。例如,初学者可以从人力资源初叶。那可以让他深谙关系概念、查询数据、数据库操作语言、数据库定义语言、以及部分别样基本概念。

当新Oracle用户熟谙了人力资源形式之后,可以持续分析订单输入形式。在那些新方式中,他将会遇到对象类型、XML援救、Oracle
Spatial、以及别的部分相比较高档的数据库特性。

接下去,用户可以分析任何情势所提供的一定领域。多媒体专家可以深切学习产品媒体方式。设计公布-订阅型基于音讯的连串的用户可以发现,队列运送形式在他们开头读书Oracle高级队列的时候将会丰盛有帮扶。数据仓库的热衷者最好去分析和明白销售历史情势。

4.2.3 发现更加多关于示例情势的情节

1. 数据库对象描述

在这一部分中,大家将会浏览数据库,找到属于示例方式下的对象,然后利用SQL查询直接从数据库中收获那么些目标的定义。

注意:

以下试验部分所需的上上下下脚本都足以从http://www.wrox.com/的本书可下载代码中获取。

试验:获取数据库列表

将以下脚本保存到用户本地硬盘上名为dbls.sql的文件中(C:\oracle\ora92\bin,即sql*plus工作目录)

column object_name format a30

column tablespace_name format a30

column object_type format a12

column status format a1

break on object_type skip 1

select object_type,object_name,

decode(status,'INVALID','*','') status,

tablespace_name

from user_objects a,user_segments b

where a.object_name=b.segment_name(+)

and a.object_type=b.segment_type(+)

order by object_type,object_name

/

column status format a10

运行以下代码可取得数据库对象列表:

SQL> connect hr/hr;

已连接。

SQL> @dbls

2. 自解释情势

Oracle提供了一种可以让表的所有者在数据库中存储表或者列的纯文本注释的法门。在示范方式安装时期,每个模式都富有一个本子,可以为它们各自的表和列建立那些注释。那可以利用SQL命令CREATE
COMMENT完毕。其中注释样本如下:

COMMENT ON TABLE jobs

IS ‘jobs table with job titles and salary ranges.Contains 19 rows.

References with employees and job_history table.’;

4.3 小结

小说根据自己明白浓缩,仅供参考。

摘自:《Oracle编程入门经典》 北大大学出版社 http://www.tup.com.cn/