学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> Oracle >> Oracle中的数据字典技术初级入门


Oracle中的数据字典技术初级入门


数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。

Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。

1. 静态数据字典

这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。

user_*该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)

all_*该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)。

dba_*该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。没有DBA权限的用户只能看到user_*和all_*视。如果没有被授予相关的SELECT权限的话,他们是不能看到 dba_*视图的。

由于三者具有相似性,下面以user_为例介绍几个常用的静态视图:user_users视图。主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。例如执行下列命令即可返回这些信息。

  select * from user_users
  

user_tables视图,主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。执行命令为:select * from user_tables

user_objects视图,主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。该视图比user_tables视图更加全面。例如, 需要获取一个名为“package1”的对象类型和其状态的信息,可以执行下面命令:

  
  select object_type,status
  from user_objects
  where object_name=upper(‘package1’);
  

这里需注意upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里不是大小写敏感的,所以在实际操作中一定要注意大小写匹配。

user_tab_privs视图,该视图主要是存储当前用户下对所有表的权限信息。比如,为了了解当前用户对table1的权限信息,可以执行如下命令:

  
  select * from user_tab_privs where table_name=upper('table1')
  

了解了当前用户对该表的权限之后就可以清楚的知道,哪些操作可以执行,哪些操作不能执行。前面的视图均为user_开头的,其实all_开头的也完全是一样的,只是列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。对于dba_开头的需要管理员权限,其他用法也完全一样,这里就不再赘述了。

2. 动态数据字典

Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。

Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。下面就几个主要的动态性能视图进行介绍。

v$access,该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。

运行如下命令:

  
  select * from v$access
  

结果如下:(因记录较多,故这里只是节选了部分记录)

  
  SID  OWNER   OBJECT          TYPE
  27   DKH    V$ACCESS         CURSOR
  27   PUBLIC  V$ACCESS         SYNONYM
  27   SYS   DBMS_APPLICATION_INFO  PACKAGE
  27   SYS   GV$ACCESS        VIEW
  

v$session,该视图列出当前会话的详细信息。由于该视图字段较多,这里就不列详细字段,为了解详细信息,可以直接在sql*plus命令行下键入:desc v$session即可。

v$active_instance,该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。

v$context,该视图列出当前会话的属性信息。比如命名空间、属性值等。

3.小结

以上是Oracle的数据字典方面的基本内容,还有很多有用视图因为篇幅原因这里不能一一讲解,希望大家在平时使用中多留心。总之,运用好数据字典技术,可以让数据库开发人员能够更好的了解数据库的全貌,这样对于数据库优化、管理等有极大的帮助。

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"Oracle中的数据字典技术初级入门"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 Oracle中的数据字典技术初级入门 相关内容
Google搜索中 Oracle中的数据字典技术初级入门 相关内容
雅虎中 Oracle中的数据字典技术初级入门 相关内容
Sogou搜索中 Oracle中的数据字典技术初级入门 相关内容

相关软件 最新回复帖子:

·Windows Vista 中卸载软件的不同方式
·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效


  相关软件 Oracle中的数据字典技术初级入门相关文章
针对Oracle数据库的优化器详细介绍 关于Oracle数据库的性能优化心得
Oracle Spatial时态空间数据库设计 使用Oracle9i全索引扫描快速访问数据
Oracle存储过程中去掉重复字符串函数 Oracle与SQL Server之间的数据迁移
提高Oracle数据库系统Import的性能 Delphi中BDE直连方式访问Oracle的问题
Oracle互联网文件系统达到信息共享 Oracle数据库磁盘输入输出性能和优化
用Oracle数据库的WEB服务制作网页 Java开发使用Oracle数据库的注意事项
Oracle 9i在AIX上的性能调整--内存篇 Oracle许可执行安全模式更好实现控制
Oracle Spatial临时表具体设计及功能 可预见的Oracle应用程序的性能调优
Oracle数据库设计开发阶段性能优化 浅谈Oracle数据库的建模与具体设计
Oracle大文本在ASP中存取问题的解决 用.NET调用oracle存储过程返回记录集