2014数据库中的表.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 数据库表 在这一章中,我们将讨论各种类型的数据库表,并介绍什么情况下想用哪种类型的数据库表(也就是 说,在哪些情况下某种类型的表比其他类型更适用)。我们会强调表的物理存储特征:即数据如何组织和存 储。 从前只有一种类型的表,这千真万确,原先确实只有一种“普通”表。管理这种表就像管理“一个堆” 一样(下一节会给出有关的定义)。后来,Oracle又增加 了几类更复杂的表。如今,除了堆组织表外,还 有聚簇表(共有3种类型的聚簇表)、索引组织表、嵌套表、临时表和对象表。每种类型的表都有不同的特 征,因此 分别适用于不同的应用领域。 10.1 在深入讨论细节之前,我们先对各种类型的表给出定义。Oracle中主要有9种表类型: q 堆 组织表(heap organized table):这些就是“普通”的标准数据库表。数据以堆的方式 管理。增加数据时,会使用段中找到的第一个能放下此数据的自由空间。从表中删除数据时, 则 允许以后的INSERT和UPDATE重用这部分空间。这就是这种表类型中的“堆”这个名词的 由来。堆(heap)是一组空间,以一种有些随机的方式使 用。 528 / 976 q 索引组织表(index organized table):这些表按索引结构存储。这就强制要求行本身有某 种物理顺序。在堆中,只要放得下,数据可以放在任何位置;而索引组织表(IOT)有所不同, 在IOT中,数据要根据主键有序地存储。 q 索 引聚簇表(index clustered table):聚簇(cluster)是指一个或多个表组成的组,这些 表物理地存储在相同的数据库块上,有相同聚簇键值的所有行会相邻地物理存储。这种结 构可 以实现两个目标。首先,多个表可以物理地存储在一起。一般而言,你可能认为一个表的数据 就在一个数据库块上,但是对于聚簇表,可能把多个表的数据存储 在同一个块上。其次,包含 相同聚簇键值(如DEPTNO=10)的所有数据会物理地存储在一起。这些数据按聚簇键值“聚 簇”在一起。聚簇键使用B*树索引 建立。 q 散 列聚簇表(hash clustered table):这些表类似于聚簇表,但是不使用B*树索引聚簇键 来定位数据,散列聚簇将键散列到聚簇上,从而找到数据应该在哪个数据库块上。在散列聚簇 中,数据就是索引(这是隐喻的说法)。如果需要频繁地通过键的相等性比较来读取数据,散 列聚簇表就很适用。 q 有 序散列聚簇表(sorted hash clustered table):这种表类型是Oracle 10g中新增的, 它结合了散列聚簇表的某些方面,同时兼有IOT的一些方面。其概念如下:你的行按某个键值 (如CUSTOMER_ID)散列,而与该键相 关的一系列记录以某种有序顺序到达(因此这些记录 是基于时间戳的记录),并按这种有序顺序处理。例如,客户在你的订单输入系统中下订单, 这些订单会按先进 先出(first in, first out, FIFO)的方式获取和处理。在这样一个系统中,有 序散列聚簇就是适用的数据结构。 q 嵌 套表(nested table):嵌套表是Oracle对象关系扩展的一部分。它们实际上就是系统 生成和维护的父/子关系中的子表。嵌套表的工作类似于SCOTT 模式中的 EMP和DEPT。可以 认为EMP是DEPT表的子表,因为EMP 表有一个指向DEPT的外键DEPTNO。嵌套表与子表 的主要区别是:嵌套表不像子表 (如EMP)那样是“独立”表。 q 临时表(temporary table):这些表存储的是事务期间或会话期间的“草稿”数据。临时表 要根据需要从当前用户的临时表空间分配临时区段。每个会话只能看到这个会话分配的区段; 它从不会看到其他任何会话中创建的任何数据。 q 对象表(object table):对象表基于某种对象类型创建。它们拥有非对象表所没有的特殊属 性,如系统会为对象表的每一行生成REF(对象标识符)。对象表实际上是堆组织表、索引组 织表和临时表的特例,还可以__________含嵌套表作为其结构的一部分。 q 外 部表(external table):这些表并不存储在数据库本身中,而是放在数据库之外,即放 在平常的操作系统文件中。在Oracle9i 及以上版本中,利用外部表可以查询数 据库之外的一个 文件,就好像这个文件也是数据库中平常的表一样。外部表对于向数据库加载数据最有用(外 部表是非常强大的数据加载工具)。Oracle 10g则更进一步,还引入了一个外部表卸载功能, 在不使用数据库链接的情况下,这为在Oracle数据库之间移动数据提供了一种简单的方法。我 们将在第 15章更详细地讨论外部表。 q 不论哪种类型的表,都有以下一般信息: q 一 个表最多可以有10

文档评论(0)

UGvSesardh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档