数据库技术
oracle数据库基本的结构是表
表的类型
为了访问表,可用视图。视图能够处理连接(join)和聚集(aggregation)、限制返回的数据行数或更该显示的列。视图可以是只读的,也可以是可更新的,可以引用本地表或远程表。远程表可以通过数据库链接来访问。可用同义词隐藏表的物理位置
关系表(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)。这种查询将返回表以前某个版本中的数据。
索引类型
B*树索引(B* tree index)
标准索引,对于等式条件或范围条件的数据非常有用。create index
位图索引(bitmap index)
只有几个值的列,位图索引也许能提高查询性能。
反键索引(reverse key index)
如果在插入连续数据时牵涉I/O操作,Oracle会在存储数据之前动态地反转已经按索引排序好的数据。
基于函数的索引(function-based index)
如 UPPER(name)
分区索引(partitioned index)
对索引分区,支持分区表或简化索引管理。可以只作用于分区表或表中的所有行。
文本索引(text index)
存储数据
表空间
对于需要自己的物理空间来存储的对象,Oracle会在一个表空间(tablespace)中为其分配空间。表空间由一个或多个数据文件组成:数据文件是表空间的一部分。
删除的数据
purge命令可以删除回收站内原来的内容