oracle数据库对象的创建与使用.ppt_第1页
oracle数据库对象的创建与使用.ppt_第2页
oracle数据库对象的创建与使用.ppt_第3页
oracle数据库对象的创建与使用.ppt_第4页
oracle数据库对象的创建与使用.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 数据库对象的创建与使用,5.1 数据库对象概述,Oracle数据库的基本对象,Oracle10g对象及模式组织方式,表 table,视图 view,函数 function,过程 procedure,触发器 trigger,包 package,对象类型 object type,索引 index,同义词 synonyms,序列 sequence,用create table命令创建表,SQLcreate table dept(deptno number(2) not null, dname varchar2(14 byte), loc varchar2(13 byte), constraint pk_dept_1 primary key(deptno) using index tablespace rensh_app storage ( initial 64k next 5k minextents 1 maxextents 2147483645 pctincrease 1 freelists 1 freelist groups 1) pctfree 10 initrans 2 maxtrans 255) tablespace rensh_app pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64k next 0k minextents 1 Maxextents 2147483645 pctincrease 0 freelists 1 freelist groups 1) logging;,注意: 两个非常重要的伪列:rowid和rownum。 rowid是伪列(pseudo-column)。是行数据在一个特定数据文件中的物理位置。在任何数据库中行的rowid是不相同的。由于rowid直接指向行数据的物理位置,所以,通过使用rowid来删除或更新行会比通过全表扫描来确定行从而删除或更新行要快得多。 rownum只是从表中选择出的行的序号,与每个具体的行无关。,在原来已有表的基础上建立一个新表,命令格式: SQLCreate table as select from old_table where condition;,常见的表管理命令,将一个列设置成不可用(将该列设置成unused后,使用户感觉到该列是不存在的,即使查询也看不到),SQLalter table employee set unused column job;,删除表中不可用的列,SQLalter table test drop unused columns;,5.3 表的类型,根据表的存储结构可分为以下几类: 常规表,即通常使用的表,也称为堆表(Heap Table). 全局临时表(Global Temporary Table),简称为GTT,也称为临时表. 组织索引表Index Organized Table,简称IOT. 外部表(External Table) 分区表(Partitions Table) 蔟表(Clustered Table) 嵌套表(Nested Table) 对象表(Object Table) XML表,5.3.2 全局临时表(Global Temporary Table),它总是在用户的临时表空间中创建。全局临时表或者是包含特定的会话数据,或者是包含特定的事务数据。,临时表与常规表之间的区别,(1)临时表在创建后并不象其他常规表一样分配段(segment)。 (2)不同的会话使用相同的GTT会得到不同的临时表空间。 (3)当会话或事务结束时,临时段自动被清除。临时表也会随着数据库的关闭从临时段中消失。 (4)包含特定事务数据的临时表仅在事务打开或活动时可用。一旦事务被提交或回滚关闭,那么,在事务表中的数据则被自动清除。,5.3.3 索引组织表(Index Organized Table),简称IOT,所谓索引组织表就是以B树结构共同存储行的主键和数据的一种存储方式。数据是存储在B树的叶子节点上。,何时使用IOT最合适呢?,避免冗余数据存储。当表中若干个列组成主关键字且在一行中占较大部分时,建议使用IOT。 开发大型数据库(VLDB)和联机事务处理OLTP应用时使用IOT。 开发时间系列的应用。 使用IOT能有效地存储嵌套表。 使用可扩展的索引数据。 电子商务,互联网及数据仓库。,5.3.4 外部表(External Table),定义: 外部表就是以数据库内部表的形式定义,且其数据并不在数据库内部存储的一种表。该表与数据库外部某个扁平文件相对应。 扁平文件的格式可有许多种,如文本格式、Microsoft Excel格式等。它是获取外部数据的一种手段,与SQL*Loader等同属于析取-转换-装载ETL(Extract,Transform,Load)操作。 在使用外部表时,需要使用目录对象。,5.3.5 分区表(Partitioning Table),分区包括分区表和分区索引。 所谓分区表是按照条件把数据分成若干个较小的且更易于管理的片。 分区表中的每个行被明确地指定给一个分区,分区关键字就决定每个行所在的分区。分区关键字可以是从1到16个列的集合。,单独存储会带来许多好处:,多个分区可减少数据丢失或损坏的可能性。 可独立地备份和恢复每个分区。 控制每个分区的映射到磁盘驱动器,这对平衡I/O负载是非常重要的。 可改善可管理性,易用性和性能。 对应用程序来说,分区是透明的,而标准的DML语句只与分区的表有关。,5.3.6 簇表(Clustered Table),簇(cluster)是管理表中数据的一种方法。簇是由共享相同数据块的一组表组成。这些表可以是一个或多个,有可共享的公共列并一起使用。这些表公共列称为簇关键字。 但选择关键字列时也有一些原则: 一个好的聚簇关键字应有足够多的唯一值,即对应于同一个关键字值的行有很多。这样,与之相对应的行才能填充满一个数据块。,何时使用簇表呢?,(1)在创建簇表之前,必须先创建簇。簇表的使用依赖于簇。但是,在向簇表插入和更新数据之前,必须在该表上手工创建聚簇索引。使用聚簇并不影响在簇表上创建其他的索引。 (2)表与表之间有主/从参照关系,主要用于经常性的连接查询操作。 (3)这些表以只读查询为主,很少或不做插入更新操作。,5.3.7 嵌套表(Nested Table),如果表中列被定义的数据类型是一个表类型,则该表类型就可称为嵌套表,即表中之表。包含嵌套表的表称为主表。嵌套表可被用于数据库表列的数据类型或者是对象表类型的一个属性。 创建嵌套表的具体步骤为: (1)定义表类型 (2)创建主表,格式与常规表相同。,5.4 完整性约束,数据完整性的基本约束: 检查(Check)-在数据字典和系统中用C表示; 主键(Primary key)-用P表示; 外键(Foreign Key)-用R表示; 唯一性(Unique)-用U表示; 视图上的只读(Read Only)-用O表示; 视图上选择(Check Option On a View)-用V表示。,5.5 索 引,在Oracle中,有以下几种类型的索引: B树索引(B*Tree Indexes):大多数创建的常规索引都属B树索引。簇索引和唯一性索引都以B树作为基本结构。 基于函数的索引(Function-Based Indexes) 位图索引(Bitmap Indexes) 反向键索引(Reverse Key Indexes) 降序索引(Descending) 压缩索引(Compressed Indexes) 本地和全局索引(Local And Global Indexes),5.5.1 B树索引,B树索引是最为常见的索引结构,也是多数索引采用的默认结构。这种结构特别适合于检索高基数数据列,即该列的唯一索引值个数与其数据行数之比接近1的情况。换言之,被索引的列值很少有相同的值。,5.5.2 位图索引,位图索引也同样采用B树结构,只是索引值全部集中在叶子节点。位图中的每个位对应于一个rowid。如果位值为1,则意味着对应于rowid的行包含该索引键值。所以,位图的映射功能是将数据位的位置转化成实际的r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论