Oracle的数据字典技术简析

2014-12-11  来源:本站原创  分类:oracle  人气:0 

正在看的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”的对象类型和其状态的信息,可以执行下面命令:

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

  user_tab_privs视图

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

  了解了当前用户对该表的权限之后就可以清楚的知道,哪些操作可以执行,哪些操作不能执行。

  前面的视图均为user_开头的,其实all_开头的也完全是一样的,只是列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。对于dba_开头的需要管理员权限,其他用法也完全一样,这里就不再赘述了。

[NextPage] 2. 动态数据字典

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

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

  v$access

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

  运行如下命令:

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

  v$session

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

  v$active_instance

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

  v$context

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

  3.小结

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

上一页

相关文章
  • Oracle的数据字典技术简析 2014-12-11

    正在看的ORACLE教程是:Oracle的数据字典技术简析. 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息. Oracle中的数据字典有静态和动态之分.静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的.以

  • jsp读取数据库实现分页技术简析 2013-10-08

    这篇文章介绍的是用javabean和jsp页面来实现数据的分页显示,例子中所使用的数据库是Mysql,需要的朋友可以了解下 这篇文章介绍的是用javabean和jsp页面来实现数据的分页显示,例子中所使用的数据库是Mysql. 1.先看javabean 类名: databaseBean.java: 以下为databaseBean.java的代码: package database_basic; import java.sql.*; import java.util.*; public class

  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle 2014-08-14

    正在看的ORACLE教程是:基于Oracle的面向对象技术入门基础简析开发者网络Oracle. 一.概述 对象是Oracle8i以上版本中的一个新的特性,对象实际是对一组数据和操作的封装,对象的抽象就是类.在面向对象技术中,对象涉及到以下几个重要的特性: 封装性 通过对数据和操作的封装,将用户关心的数据和操作暴露出来作为接口,其他数据和操作则隐藏到对象内部,这样便于用户使用和维护. 继承性 对象具有继承性,通过这一特性可以增强程序的可扩展性,适合大型项目的开发. 多态性 同一操作在运行时刻有不同

  • shp2sqlserver 用法简析 2014-07-11

    shp2sqlserver is a command line tool for loading shapefiles into Microsoft SQL Server 2008 shp2sqlserver用法简析 官方说明: shp2sqlserver is a command line tool for loading shapefiles into Microsoft SQL Server 2008. It is modeled after PostGIS's shp2pgsql, ex

  • Oracle 8i字符集乱码问题析及其解决办法 2015-03-14

    正在看的ORACLE教程是:Oracle 8i字符集乱码问题析及其解决办法.一.问题描述 SQL Plus WorkSheet是一个窗口图形界面的SQL语句编辑器,对于那些喜欢窗口界面而不喜欢字符界面的用户,该工具相对SQL/PLUS受到了很大的欢迎.但从Oracle 8i以后,如果安装Oracle 8i时选取的是别于英语的字符集,对于我们中国,通常会选取简体中文字符集(ZHS16GBK),安装成功后,运行SQL Plus WorkSheet程序,会出现所有的中文显示以及查询结果均为乱码的情况.

  • 简析 Swift 和 C 的交互,第二部分 2014-10-12

    本文和上一篇基本已经说明了所有和 C 相互调用之间的问题.本系列不会再有文章. 本文的发现基于个人研究,目测是官方外的首创.请尊重原创. 本文是讲述 Swift 与 C 交互操作系列文章的第二部分.解决之前的所有遗留问题. 第一部分请参考Swift and C Interop 简析Swift和C的交互 本文将介绍实际应用过程中会遇到的各类情况. 再看类型对应 标准类型这里就不提了,上面的文章讲的很明白了. 7 种指针类型 从代码看,我认为 Swift 对应 C 的指针时候,存在一个最原始的类型R

  • Android开发之道(10)Handler本质简析与使用实例 2012-03-20

    Android 开发之道(10)Handler本质简析与使用实例 作者:柳大·Poechant 邮箱:[email protected] 博客:blog.csnd.net/poechang 日期:March 19th, 2012 1 Overview 先浅析本质太过抽象,还是先上 Handler 的最简实例吧. 功能:Android.os.Handler负责接收,并按计划发送和处理消息: 特点:处理消息是阻塞式的: 本质:关于Handler的内部机制,及其与Looper的关系,请看

  • cscope可以简析JAVA文件 2012-08-21

    cscope可以简析JAVA文件,具体建库步骤为(以Android目录为例): #find ./ -name *.cpp > cscope.files #fine ./ -name *.java >> cscope.files # cscope -bkq

  • Android Camera 架构简析1 2012-09-03

    1. 前言 最近整体看了一下Android Camera 部分代码,从Framework的Camera 应用框架到 Hardware的Camera HAL 再到 Kernel的 Camera Driver.把对Camera部分的学习整理成笔记,方便理解. 2. 概述 要了解Android Camera架构,还是得先从Android本身的架构说起. 图1. Android 架构图 从Android框架看,分为四层:应用层.应用框架层.库层.内核层. 应用层主要工作在Android SDK之上,利用

  • Java Android 注解(Annotation) 及几个常用开源项目注解原理简析 2014-10-17

    不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义.解析,并对几个 Android 开源库 Annotation 原理进行简析. PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 完整版原文见:Java Android 注解(An

  • ONOS的架构简析 2014-12-18

    ONOS是首款专门面向服务提供商和企业骨干网的开源SDN网络操作系统,是由一家名为开放网络实验室(ON.Lab)的非盈利性组织打造的一款商用控制器.ONOS旨在为服务提供商和企业骨干网提供高可用性(HA).可横向扩展及高性能的网络需求.由于该项目得到了业界各知名大佬包括服务提供商AT&T.NTT,网络供应商Ciena.Ericsson.Fujitsu.Huawei.Intel.NEC,网络运营商Internet2.CNIT.CREATE-NET的资助和开发,并获得了ONF的鼎力支持,使得ONOS

  • Oracle数据完整性和锁机制简析 2013-10-23

    事务不是程序,事务和程序分属两个概念,事务控制语句称为TCL,一般包括Commit和Rollback,需要了解的朋友可以参考下 本课内容属于Oracle高级课程范畴,内容略微偏向理论性,但是与数据库程序开发和管理.优化密切相关:另外本课的部分内容在前面章节已经涉及,请注意理论联系实际. 事务 事务(Transaction)从 通讯的角度看:是用户定义的数据库操作序列,这些操作要么全做.要么全不做,是不可分割的一个工作单元.事务控制语句称为TCL,一般包括Commit和Rollback. 事务不是

  • Oracle行级锁的特殊用法简析 2014-11-17

    Oracle有许多的锁,各种锁的效用是不一样的.下面重点介绍Oracle行级锁,Oracle行级锁只对用户正在访问的行进行锁定.可以更好的保证数据的安全性,需要的朋友可以了解下 Oracle有许多的锁,各种锁的效用是不一样的.下面重点介绍Oracle行级锁,Oracle行级锁只对用户正在访问的行进行锁定.可以更好的保证数据的安全性. 如果该用户正在修改某行,那么其他用户就可以更新同一表中该行之外的数据. Oracle行级锁是一种排他锁,防止其他事务修改此行,但是不会阻止读取此行的操作. 在使用I

  • 简析Windows Vista内置防火墙图文教程 2013-11-26

    早在Windows 2000系统的扩展工具包中就出现了ICF(Internet Connection Firewall)工具,通过它可以配置网络数据包的传入规则,但是在Windows 2000中这个ICF工具没有内置到系统中.因此说起Windows系统自带的防火墙要追溯到XP系统,在XP和XP SP1系统中内置了一个名为Internet Connection Firewall的组件,它提供了基本的包过滤功能,这就是系统防火墙的前身. 到了XP SP2发布后这个ICF就名正言顺地成为了Window

  • Oracle常用数据字典表 2013-11-04

    1. 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 2. 查看当前用户的角色 SQL>select * from user_role_privs; 3. 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 4. 查看用户下所有的表 SQL>select * from u

  • 推荐三种简洁的Tab导航(网页选项卡)简析 2013-12-28

    在网页中应用选项卡可以使网页显得更紧凑,结合AJAX技术可以使页面在有限的空间内展现更多的内容.本文主要介绍几种简洁的选项卡效果的实现(不涉及滑动门和AJAX),附有实例,无图片,兼容性较好,方便大家直接使用. 第一种形式: 通过更换显示样式实现,这种很常见,就不多说了. <div id="tabs0"> <ul class="menu0" id="menu0"> <li onclick="setTab(0

  • JavaScript mapreduce工作原理简析 2014-04-22

    MapReduce是一个编程模型,用于作业调度,也是一个处理和生成超大数据集的算法模型的相关实现,本文将详细介绍JavaScript mapreduce工作原理,需要的朋友可以参考下 谷歌在2003到2006年间连续发表了三篇非常有影响力的文章,分别是2003年在SOSP上发布的GFS,2004年在OSDI上发布的MapReduce,以及2006年在OSDI上发布的BigTable.GFS是文件系统相关的,其对后来的分布式文件系统设计具有指导意义:MapReduce是一种并行计算的编程模型,用于

  • android上的一个网络接口和图片缓存框架enif简析 2014-05-29

    android上的一个网络接口和图片缓存框架enif详细介绍:底层网络接口采用apache的httpclient连接池框架.图片缓存采用基于LRU的算法等等,需要了解的朋友可以详细参考下 1.底层网络接口采用apache的httpclient连接池框架: 2.图片缓存采用基于LRU的算法: 3.网络接口采用监听者模式: 4.包含图片的OOM处理(及时回收处理技术的应用): 图片核心处理类:CacheView.java package xiaogang.enif.image; import jav

  • WinForm 自动完成控件实例代码简析 2014-06-11

    在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了,接下来参考一下这个实例,看看有没有以外收获,感兴趣的朋友可以了解下啊,希望本文对你有帮助啊 在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了. TextBox控件本身是提供了一个自动提示功能,只要用上这三个属性: AutoCompleteCustomSource:AutoCompleteSource 属性设置为CustomSourc

  • 非常不错的三种简洁的Tab导航(网页选项卡)简析 2015-01-18

    在网页中应用选项卡可以使网页显得更紧凑,结合AJAX技术可以使页面在有限的空间内展现更多的内容.本文主要介绍几种简洁的选项卡效果的实现(不涉及滑动门和AJAX),附有实例,无图片,兼容性较好,方便大家直接使用. 第一种形式: 通过更换显示样式实现,这种很常见,就不多说了. <div id="tabs0"> <ul class="menu0" id="menu0"> <li onclick="setTab(0