Oracle Concepts 11gr2是介绍oracle数据库的基础概念的入门書籍学习这些概念方便于学习其他更深层次的知识。
第一章 Oracle数据库简介 DBMS:内核代码、数据字典、查询语言
Atomicity 原子性:整个事务中的所有操莋要么全部完成,要么全部不完成不会出现中间态
Consistency 一致性:锁机制,锁有助确保数据完整同时允许对数据的最大并发访问
Isolation 隔离性:隔離状态执行事务使它们好像是系统在给定时间内执行的唯一操作
Durability 持久性:在事务完成以后,该事务对数据库所作的更改便持久的保存在數据库之中并不会被回滚
数据库物理存储结构:数据文件、控制文件、联机重命名数据库的重做日志文件文件、归档日志文件、参数文件等
数据库逻辑存储结构:数据块、扩展区、段、表空间
数据库实例结构:内存和进程
数据库进程:客户端进程、后台进程、服务端进程
監听:专用模式、共享模式
第一部分 Oracle关系数据结构 第二章 表和表簇
Schema Object:表、索引、分区、视图、序列、维度、同义词、PL/SQL子程序和包
SYS模式存储數据字典基表和视图,其中的表只由数据库操作绝不能被任何用户修改,sys:拥有dba、sysdba、sysoper(系统操作员 )角色或权限是Oracle权限最高的用户,只能以sysdba或sysoper登录不能以normal形式登录
SYSTEM模式存储其它一些用于显示管理信息的表和视图,以及用于各种数据库选项和工具的内部表和视图 永远不偠使用SYSTEM模式来存储非管理性用户的表,System:拥有dba、sysdba权限或角色可以以普通用户的身份登录
关系表 对象表 索引组织表 外部表
表定义:表名称和列属性,表可以包含虚拟列不占用磁盘空间
yy日期和rr日期的不同处:rr日期考虑世纪
与永久表类似,临时表被定义在数据字典中临时表和怹们的索引不会在创建时自动分配段。相反临时段是在第一次插入数据时分配的
外部表 访问外部数据源中的数据如同此数据是在数据库Φ的表中一样 外部表对于在数据仓库环境中执行常见的ETL任务也是很有价值的,外部表的元数据描述了外部表层必须如何提供数据给数据库
表压缩:基本/OLTP表压缩 可以在表空间、 表、 分区或子分区等级别声明压缩
表簇:表簇是一组表它们共享公共的列,并将相关的数据存储在楿同的数据块中当表被聚簇时,单个数据块可以包含多个表中的行
簇键是所有被聚簇的表的共有列或列集
簇键值是一组特定行的簇键列嘚值包含相同簇键值的所有数据,物理上存储在一起每个簇键值在簇或簇索引中只存储一次,而无论在这些不同表中有多少行包含这個值
如果多个表主要是被查询 (而不是修改) 且各表中的记录是经常被一起查询或联接,在这些情况下可以考虑将他们聚簇化
索引化表簇:簇索引是一个簇键上的 B 树索引簇索引必须先被创建,然后才能将行插入到簇表中
哈希簇:对一个哈希簇来说数据本身就是索引
哈唏簇变体:单表哈希簇 排序哈希簇
哈希冲突 :希簇检索效率会降低
第三章 索引和索引组织表
将索引变为不可用时候,数据库将删除其索引段
复匼索引:前导列最常被访问的列放在前面,顺序重要若前导列基数低可能走索引跳跃扫描
索引类型:B树索引、位图索引和位图连接索引、基于函数的索引、应用程序域索引
平衡树简称B-树,用于查找的分支块和用于存储值的叶块
B-树索引之所以是平衡的是因为所有叶块都洎动处于相同的深度。因此在索引中从任意位置检索任意记录需要的时间基本上是相同
在索引扫描中,数据库使用语句指定的索引列通过遍历索引来检索行。数据库扫描索引将使用n个I/O就能找到其要查找的值,其中 n 即是B-树索引的高度这是数据库索引背后的基本原理
如果 SQL 语句仅访问被索引的列,那么数据库只需直接从索引中读取值而不用读取表
快速完全索引扫描Fast Full Index Scan:当索引包含了查询所需的所有列,且索引键中至少一列具有 NOT NULL 约束时快速完全索引扫描可以替代全表扫描。
索引范围扫描Index Range Scan:是对索引的有序扫描来访问选择性的数据
索引聚簇因子Index Clustering Factor 用于测量相对于某个索引值(如雇员姓氏)的行顺序。被索引值的行存储得越有序则聚簇因子越低。粗略测量通过索引读取整个表所需的I/O数
聚簇因子与索引扫描关系密切因为它可以显示:数据库是否会在大范围扫描中使用索引,相对于索引键的表组织程度如果荇必须按索引键顺序排列,是否应考虑使用索引组织表、 分区、或表簇ALL_INDEXES
反向键索引:是一种B-树索引解决了在 B-树索引右侧的的叶块争用问題,反向键格式丧失了执行索引范围扫描查询的能力
位图索引Bitmap Indexes:数据库为每个索引键存储一个位图
位图索引并不适合许多 OLTP 应用程序
与B-树索引不同位图索引可以包括完全由空值组成的键
位图存储结构:Oracle 数据库使用一个 B-树索引结构来为每个索引键存储位图
基于函数的索引:可以是┅个 B-树索引或位图索引 应用程序域索引 索引组织表:索引即是数据,数据也是索引 非键列存在于索引叶块中
索引组织表将所有数据都存储在相哃的结构中,且不需要存储 rowid
索引组织表的行溢出区:索引条目 溢出部分
索引组织表的辅助索引:是一个建立在索引组织表上的索引在某种意义上它是一个索引的索引。辅助索引是一个独立的模式对象并与索引组织表分开存储
由于插入操作,索引叶块中的行可以在块内或塊之间移动索引组织表中的行像堆组织表那样迁移行,因为索引组织表中的行并没有永久的物理地址数据库使用基于主键的逻辑 rowids
逻辑Rowids囷物理猜想:物理猜测,是索引条目第一次被创建时的物理 rowid
索引组织表上的位图索引 索引组织表中的行移动不会使建立在该索引组织表仩的位图索引变得不可用
第四章 分区、视图和其他模式对象
范围分区、 列表分区、和哈希分区
局部分区索引:局部前缀索引 局部非前缀索引
物化视图:用于计算、汇总、分发、复制数据 查询重写提高sql性能
刷新方法:快速刷新 完全刷新 物化视图日志
第六章 数据字典和动态性能視图
数据字典,它是一组提供有关数据库管理元数据的只读表
数据字典视图按集合分组,在许多的情况下一个集合由三个包含相似信息的视图,并且彼此之间通过不同的前缀来区分
具有DBA_前缀的视图:显示在整个数据库中的所有相关信息
具有ALL_前缀的视图是站在用户角度
具有USER _前缀的视图
数据字典表和视图都存储在SYSTEM表空间中
动态性能视图v$视图:系统和会话参数、 内存使用和分配、 文件状态(包括RMAN备份文件)、 工作和任务的进度、 SQL运行、 统计和度量
SYS拥有其名称以 V_$ 开头的动态性能表
动态性能视图基于这些表创建,然后在视图上创建以V$作为前缀的公共同义词
对几乎所有的 V$ 视图都存在一个相应的GV$ 视图
归档日志(ARCH/ARCn)进程简介
在Oracle可选的後台进程中最重要的就是归档日志进程。
如果Oracle发生数据文件丢失或者损坏需要进行完全恢复时,都应该运行在归档模式下
在Oracle中,重命名数据库的重做日志文件文件被分为很多组当一组重命名数据库的重做日志文件文件被写满后,就开始写下一组称为日志切换。
日誌切换以循环方式进行当最后一组写满后,又开始写第一组
如果Oracle运行在非归档模式下,就会发生重命名数据库的重做日志文件文件覆蓋的问题
在归档模式下,ARCn进行将把切换后的重命名数据库的重做日志文件文件复制到归档日志文件
Oracle保证在一组重命名数据库的重做日誌文件的归档完成之前不会覆盖此组重命名数据库的重做日志文件文件。