数据库中的表
7页1、第10章 数据库表在这一章中,我们将讨论各种类型的数据库表,并介绍什么情况下想用哪种类型的数据库表(也就是说,在哪些情况下某种类型的表比其他类型更适用)。我们会强调表的物理存储特征:即数据如何组织和存储。从前只有一种类型的表,这千真万确,原先确实只有一种“普通” 表。管理这种表就像管理“ 一个堆”一样(下一节会给出有关的定义)。后来,几类更复杂的表。如今,除了堆组织表外,还有聚簇表(共有3种类型的聚簇表)、索引组织表、嵌套表、临时表和对象表。每种类型的表都有不同的特征,因此 分别适用于不同的应用领域。们先对各种类型的表给出定义。q 堆 组织表( 这些就是“普通” 的标准数据库表。数据以堆的方式管理。增加数据时,会使用段中找到的第一个能放下此数据的自由空间。从表中删除数据时,则 允许以后的就是这种表类型中的“堆” 这个名词的由来。堆(一组空间,以一种有些随机的方式使 用。528 / 976q 索引组织表(这些表按索引结构存储。这就强制要求行本身有某种物理顺序。在堆中,只要放得下,数据可以放在任何位置;而索引组织表(所不同,在据要根据主键有序地存储。q 索 引聚簇表(聚簇(指一个或多个表组
2、成的组,这些表物理地存储在相同的数据库块上,有相同聚簇键值的所有行会相邻地物理存储。这种结 构可以实现两个目标。首先,多个表可以物理地存储在一起。一般而言,你可能认为一个表的数据就在一个数据库块上,但是对于聚簇表,可能把多个表的数据存储 在同一个块上。其次,包含相同聚簇键值(如0)的所有数据会物理地存储在一起。这些数据按聚簇键值“聚簇”在一起。聚簇键使用B*树索引 建立。q 散 列聚簇表(这些表类似于聚簇表,但是不使用B* 树索引聚簇键来定位数据,散列聚簇将键散列到聚簇上,从而找到数据应该在哪个数据库块上。在散列聚簇中,数据就是索引(这是隐喻的说法)。如果需要频繁地通过键的相等性比较来读取数据,散列聚簇表就很适用。q 有 序散列聚簇表(这种表类型是0结合了散列聚簇表的某些方面,同时兼有概念如下:你的行按某个键值(如列,而与该键相 关的一系列记录以某种有序顺序到达(因此这些记录是基于时间戳的记录),并按这种有序顺序处理。例如,客户在你的订单输入系统中下订单,这些订单会按先进 先出(方式获取和处理。在这样一个系统中,有序散列聚簇就是适用的数据结构。q 嵌 套表( 嵌套表是 们实际上就是系统
3、生成和维护的父/子关系中的子表。嵌套表的工作类似于式中的 以认为为有一个指向外键套表与子表的主要区别是:嵌套表不像子表 (如样是“独立”表。q 临时表(这些表存储的是事务期间或会话期间的“ 草稿”数据。临时表要根据需要从当前用户的临时表空间分配临时区段。每个会话只能看到这个会话分配的区段;它从不会看到其他任何会话中创建的任何数据。q 对象表(对象表基于某种对象类型创建。它们拥有非对象表所没有的特殊属性,如系统会为对象表的每一行生成象标识符)。对象表实际上是堆组织表、索引组织表和临时表的特例,还可以_包含嵌套表作为其结构的一部分。q 外 部表( 这些表并不存储在数据库本身中,而是放在数据库之外,即放在平常的操作系统文件中。在以上版本中,利用外部表可以查询数 据库之外的一个文件,就好像这个文件也是数据库中平常的表一样。外部表对于向数据库加载数据最有用(外部表是非常强大的数据加载工具)。0引入了一个外部表卸载功能,在不使用数据库链接的情况下,这为在们将在第 15章更详细地讨论外部表。q 不论哪种类型的表,都有以下一般信息:q 一 个表最多可以有1000列,不过我不鼓励设计中真的包含这么多列,
《数据库中的表》由会员晴***分享,可在线阅读,更多相关《数据库中的表》请在金锄头文库上搜索。
2024-05-17 1页
2024-05-17 7页
2024-05-17 4页
2024-05-09 2页
2024-05-09 5页
2024-05-09 1页
2024-05-09 3页
2024-05-09 1页
2024-04-28 2页
2024-04-28 2页