数据字典与动态视图.ppt_第1页
数据字典与动态视图.ppt_第2页
数据字典与动态视图.ppt_第3页
数据字典与动态视图.ppt_第4页
数据字典与动态视图.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、数据字典与动态视图,数据字典,数据字典是Oracle 数据库重要的组成部分,是元数据(metadata)的存储地点,它用于提供数据库的相关系统信息。数据字典的维护和修改是由系统自动完成的,而用户只能执行SELECT语句查询系统信息。,模式(Schema),模式是用户所拥有对象的集合,在Oracle数据库中,用户与模式是一一对应的关系,并且二者名称相同。,模式SYSTEM,模式stu_00,用户SYSTEM,用户stu_00,数据字典,Oracle RDBMS使用数据字典记录和管理对象信息和安全信息等,用户和数据库系统管理员可以通过数据字典来获取数据库相关信息。 数据字典是数据库的核心,通过数据

2、字典,oracle数据库基本上可以实现自解释。 数据字典是只读的,通常不建议对任何数据字典表中的任何信息进行手工更新或改动,对于数据字典的修改很容易就会导致数据库紊乱,造成无法恢复的后果,而且oracle公司不对此类操作带来的后果负责。,数据字典包括以下内容,所有数据库Schema对象的定义(表、视图、索引、聚簇、同义词、序列、过程、函数、包、触发器等); 数据库的空间分配和使用情况; 字段的缺省值; 完整性约束信息; Oracle用户名称、角色、权限等信息; 审计信息; 其他数据库信息。,数据字典,所有数据字典都属于SYS模式,并且存放在SYSTEM表空间中。 数据字典由基表(内部RDBMS

3、(X$)表和数据字典表)和视图(动态性能(V$)视图和数据字典视图)两部分构成。 其中基表存放数据库的基本信息,普通用户无法读写。 数据字典视图存放基表解码后的信息,用户可以通过它查询系统信息。,内部RDBMS(X$)表,X$表是oracle数据库的核心部分,这些表用于跟踪内部数据库信息,维持数据库的正常运行。X$表是加密命名的,而且oracle不作文档说明,这部分知识是oracle公司的技术机密,oracle通过这些X$表建立起其他大量视图,提供用户查询管理数据库之用。但是由于X$表记录了大量的有用信息,所以也不停地被全球的DBA不懈地探索着,最为人所熟知的有X$BH、 X$KSMKP等。

4、X$表是oracle数据库的运行基础,在数据库启动时由oracle应用程序动态创建。这部分表对数据库来说至关重要,所以oracle不允许SYSDBA之外的用户直接访问,显示授权不被允许。,数据字典表,数据字典表(Data Dictionary Table)用以存储表、索引、约束以及其他数据库结构的信息。这些对象通常以“$”结尾(如tab$、obj$、ts$等),在创建数据库的时候通过运行sql.bsq脚本来创建。 sql.bsq是非常重要的一个文件,其中包含了数据字典表的定义及注释说明。 该文件位于.rdbmsadmin目录下。,建立数据字典视图,建立数据字典基表,运行脚本: SQL%orac

5、le_home%rdbmsadminsql.bsq; 建立数据字典视图,运行脚本: SQL%oracle_home%rdbmsadmincatalog.bsq;,数据字典视图分类,以ALL_开头的数据字典视图 以USER_开头的数据字典视图 以DBA_开头的数据字典视图,在Oracle中,用户与模式一一对应,用户可以访问其模式的所有对象,如果用户要访问其他模式的对象,必须要有相应的对象特权。,模式SYSTEM,模式stu_00,用户stu_00,各类数据视图比较,USER_数据字典视图:显示当前模式的所有对象信息。 (user_objects) ALL_数据字典视图:显示用户可访问的所有对象信

6、息。(all_objects) DBA_数据字典视图:显示整个数据库范围内的系统信息。(dba_objects),以USER_开头的数据字典视图,USER_数据字典只显示当前模式的详细信息。 SELECT object_name FROM user_objects WHERE object_type = TABLE;,以ALL_开头的数据字典视图,ALL_数据字典视图可用于查询用户可访问的所有对象信息。 SELECT owner, object_name FROM all_objects WHERE object_type = TABLE;,以DBA_开头的数据字典视图,DBA_数据字典视图用

7、于显示整个数据库范围内的系统信息。(要求用户有DBA角色或SELECT ANY TABLE系统权限) SELECT owner, object_name FROM dba_objects where object_type = TABLE;,数据字典内容,通过查询数据字典,可以取得以下数据信息: 数据库对象定义 数据对象所占用空间及已使用空间 列信息 约束信息 用户名以及用户所具有的特权和角色,动态性能视图,动态性能视图用于记录当前数据库的活动信息,他们是由Oracle Server自动维护和修改的。当启动Oracle Server时,系统会自动建立动态性能视图,而当停止Oracle Serv

8、er时,系统会自动释放动态性能视图。,动态性能视图,动态性能(V$)视图(Dynamic Performance View)记录了数据库运行时信息和统计数据,大部分动态性能视图被实时更新以反映数据库当前状态。 Oracle通过动态性能视图将oracle数据库的状态展示出来,提供给用户和数据库管理员,oracle对V$视图给出了详细的文档说明供开发管理人员参考,是研究和管理数据库的主要依据。,GV$和V$视图,在数据库启动时,oracle动态创建X$表,在此基础之上,oracle创建了GV$和V$视图。从oralce 8开始, GV$视图开始被引入,其含义为Global V$。除了一些特例以外,

9、每个V$视图都有一个对应的GV$视图存在。 GV$视图的产生是为了满足OPS环境的需要,在OPS环境中,查询GV$视图返回所有实例信息,而每个V$视图是基于GV$视图,增加了INST_ID列的where条件限制建立,只包含当前连接实例信息。 注意,每个V$视图都包含类似语句: Where inst_id=USERENV(Instance)用于限制返回当前实例信息。,动态性能视图其他视图,Oracle提供了一些特殊视图用以记录其他视图的创建方式。V$fixed_view_definition就是其中之一。例如查看GV$FIXED_TABLE和V$FIXED_TABLE,了解一下GV$和V$视图的

10、结构及创建方式: SQLselect view_definition from V$fixed_view_definition where view_name=V$FIXED_TABLE; SQLselect view_definition from V$fixed_view_definition where view_name=GV$FIXED_TABLE;,GV$和V$视图,通过上面的命令执行结果,得出如下结论: GV$视图基于X$表创建,然后V$视图基于GV$视图创建。 GV$视图和V$视图是在数据库创建过程中建立起来的,内置于数据库中,oracle通过V$fixed_view_defi

11、nition视图为我们展现这些定义。,GV_$视图和V_$视图,在GV$视图和V$视图之后,oracle建立了GV_$视图和V_$视图,随后为这些视图建立了公用同义词。这些工作都是通过catalog.sql脚本(该脚本位于./rdbms/admin/目录下)实现的。 第一个视图V_$和GV_$视图基于V$和GV$视图首先被创建,然后基于V_$和GV_$视图的同义词被创建。,GV_$视图和V_$视图,通过V_$视图,oracle把V$视图和普通用户隔离,V_$视图的权限可以授予其他用户,而oracle不允许任何对于V$视图的直接授权。 对于内部X$表及V$视图的限制,oracle是通过软件机制实

12、现的,而并非通过数据库权限控制的。 所以,实际上通常大部分用户访问的V$对象,并不是视图,而是指向V_$视图的同义词;而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)创建的。 在进行数据访问时,oracle访问VIEW优先,然后是同义词。,说明,数据字典视图是在X$表和数据字典表之上创建的视图。 Oracle的X$表信息可以从v$fixed_table查找。 X$表建立之后,基于X$表的GV$和V$视图得以创建。这部分视图也可以通过查询V$FIXED_TABLE得到。,最后的验证,最后通过V$parameter视图来追踪一下数据库的架构。 同样V$parameter视图是由GV$

13、parameter视图创建的,GV$parameter视图则是由X$创建的。 GV$parameter视图来源于x$ksppi和x$ksppcv两个x$表。 x$ksppi和x$ksppcv基本上包含所有数据库参数,V$parameter展现的是不包含“_”开头的参数。以“_”开头的参数通常称为隐含参数,一般不为大家所知,不建议修改。,总结一下SQL语句中oracle对于对象名的解析顺序,Oracle首先查看在发出命令的用户模式中是否存在表或视图。 如果表或视图不存在,oracle检查私有同义词是否存在。 如果私有同义词存在,将使用这个同义词所引用的对象。 如果私有同义词不存在,检查同名的公共

14、同义词是否存在。 如果公共同义词存在,将使用这个同义词所引用的对象。 如果公共同义词不存在,oracle返回消息”ORA-00942 table or view does not exist”。,比较,数据字典信息是从数据文件中获得的。 动态性能视图信息是从SGA和控制文件中获得的。,动态性能视图,所有动态性能视图以V_$开头,并且相当于以V$开头。 每个动态性能视图不是随时都可以查询的,它和数据库当前的状态有关,例如有些动态性能视图是数据库在NOMOUNT状态下就可以使用的,有些则必须数据库在OPEN状态下才可用。,1.显示SGA尺寸,Select * from v$sga;,2.显示当前正在运行的后台进程,Select name from v$bgprocess where paddr!=00; name:后台进程名称。 paddr:后台进程在内存中的开始地址,值为00表示该后台进程未运行。,3.显示Oracle Server所有进程,select program,background

温馨提示

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

最新文档

评论

0/150

提交评论