`
pengwei.daily
  • 浏览: 23524 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle Database 11g体系结构 系列一

阅读更多

数据库:

每一个Oracle数据库都是一个数据的集合,这些数据包含在一个或多个文件中。

数据库有物理逻辑 结构。

 

Oracle实例:

Oracle instance由命名为系统全局区(System Global Area, SGA)的内存区域和相应的后台进行组成。

这些后台进程负责SGA和数据库磁盘文件之间的交互。

 

在Oracle实时应用群集(Oracle Real Application Cluster,RAC)中,会有多个实例同时使用同一个数据库。

这些实例通常位于不同的服务器上,这些服务器保持高速互连(interconnect)。

 

关系表relational table:

使用Oracle提供的数据类型,可以创建存储行数据的表。

这些行是由应用程序插入和操作的。

表中包含列定义,可以根据应用程序的需求变化添加或删除列。

创建表使用命令:

create table
 

对象关系表object-relational table:

为了充分利用诸如类型继承等功能,可以使用Oracle的对象关系功能。

可以定义自己的数据类型,并在列定义,对象表,嵌套表,可变数组等其他的地方使用这些数据类型。

 

索引组织表index-organized table:

可以创建一个表,这个表把数据存储在一个索引结构中,使得表中数据根据索引的值排列。

 

外部表external table:

可以把存储在平面文件中的数据看作是一个表,用户可以对其直接进行查询,并在查询中把它和其他表关联起来。

可以使用外部表,在不需要把大量数据导入到数据库中的情况下就可以对这些数据进行访问。

 

注意:Oracle另外还支持BFILE数据类型,它是一个指向外部二进制文件的指针。

 

在创建BFILE或外部表之前,必须在Oracle中(通过create directory)创建一个目录别名;

使这个目录指向外部文件的物理位置。

 

分区表partitioned table:

可以把一个表分成多个部分,并单独管理表的每一个部分。

可以向表添加新的分区、拆分已经存在的分区并在独立于其他分区的情况下管理某个分区。

 

对表进行分区,能够简化维护操作,或者提高用户查询的效率。

可以按照一个的数据范围,数据列表,列数据的哈希值或者这个条件的某种组合来对表进行分区。

 

物化视图materialized view:

物化视图是由查询检索到的数据的一个副本。

用户查询可能会被重定向到物化视图,以避免在查询执行期间访问大型表 - Oracle优化程序会自动重写查询。

 

可以创建并管理刷新时间表以便让物化视图中的数据对业务需求保持必要的更新。

 

临时表temporary table:

使用命令:

create global temporary table

该表允许多个用户在其中插入数据;

每个用户只能看到他自己在表中插入的数据。

 

群集表clustered table:

如果两个表通常会被一起查询,就可以通过群集(cluster)结构把它们存储到物理相邻的位置上。

 

删除的表dropped table:

可以通过命令

flashback table to before drop

迅速恢复已删除的表。

 

可以一次把多个表和整个数据库恢复到某个时间点之前的状态。

Oracle支持闪回查询(flashback query),这个查询将返回以前某个版本中的数据。

 

视图:

为了访问表,可以使用视图。

视图能够处理连接(join)和聚集(aggregation),限制返回的数据行数;

或者更改显示的列。

 

视图可以是只读的,也可以是可更新的;而且它们可以引用本地表或远程表。

 

远程表可以通过数据库链接来访问,可以用同义词隐藏表的物理位置

 

Oracle支持索引的类型:

  1. B*树索引(B* tree index) - B*树索引是Oracle中的标准索引类型,它对于选择符合某个等式条件的数据非常有用,这种索引由 create index 命令创建
  2. 位图索引(bitmap index) - 对于只有极少几个值的列,位图索引也许能够提高查询性能;位图索引只应该在数据被批量加载(对于很多数据仓库或报表应用程序)时使用
  3. 反转建索引(reverse index) - 如果在插入连续数据时会牵涉到I/O操作,Oracle会在存储数据之前动态地反转已经按索引排序好的数据
  4. 基于函数的索引(function-based index) - 除了以一列作为索引,如Name,还可以把基于函数的列作为索引,如UPPER(Name)。这个基于函数的索引可以为Oracle优化器在选择执行路径时提供更多的选择
  5. 分区索引(partitioned index) - 可以对索引分区,以支持分区表或者简化索引管理。索引分区可以只作用于表分区,也可以作用于表中的所有行
  6. 文本索引(text index) - 可以以文本数据位索引,以支持高级的搜索功能。如扩展单词词干或搜索短语。文本索引时由Oracle维护的一系列列表和索引值。这些表和索引值只能够满足复杂的文本搜索需要。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics