日期:2014-05-16 浏览次数:20515 次
数据库:
每一个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支持索引的类型: