数据字典

数据字典是由Oracle服务器创建和维护的一组只读的系统表,它存放了有关数据库和数据库对象的信息,Oracle服务器依赖这些信息来管理和维护Oracle数据库。

数据字典分为两大类:一种是基表,另一种是数据字典视图。

Oracle服务器在数据库创建时自动生成基表,在任何数据库中,基表都是被最先创建的对象。由于基表中所存的数据过于复杂,因此这些基表很少直接被访问。数据字典视图则是把

数据字典基表中的信息转换为人们较为容易理解的形式,它们包含了用户名、用户的权限、对象名、约束和审计等方面的信息。

数据字典中的信息

数据字典中存储了如下的数据库信息:

  • 数据库的逻辑结构和物理结构。如表空间和数据文件的信息
  • 所有数据库对象定义的信息。这些对象包括表、索引、视图、序列号、同义词、过程、函数、软件包和触发器等。
  • 所有数据库对象的磁盘空间分配信息。如对象所分配的磁盘空间和当前正在使用的磁盘空间。
  • Oracle用户名。
  • 每个用户所授予的权限和角色。
  • 完整性约束的信息。
  • 列的默认值。
  • 审计信息。

数据字典的操作和使用

数据字典主要是由Oracle服务器来使用的,包括从数据字典中获取信息和及时修改相应数据字典信息。

可以修改Oracle服务器数据字典的SQL语句:

  • DDL语句。如增加或减少表空间,增加或减少用户。
  • DCL语句。如授予用户权限、回收用户权限等。
  • 某些DML语句也可能间接地引起Oracle服务器修改数据字典。如引起表的磁盘空间的扩展的插入(INSERT)或修改(UPDATE)语句。

当数据管理员或用户使用DDL或DCL语句时,Oracle服务器都要将相关的信息记录到数据字典中。

但是,任何用户包括数据库管理员(DBA)都不能直接使用DML语句修改数据字典中的内容,只能通过访问数据字典(视图)来得到数据库相关信息。

数据字典视图

数据字典视图主要包括三大类,它们分别用前缀来区别,其前缀分别为USER、ALL和DBA。

  • USER_* :有关用户所拥有的对象的信息。即用户自己创建的对象的信息。
  • ALL_* :有关用户可以访问的对象的信息。即用户自己创建的对象的信息及授权给PUBLIC的帐户用户所拥有的对象的信息。
  • DBA_* :有关整个数据库中对象的信息。

这里的*可以为TABLES、INDEXES、VIEWS、OBJECTS等。

查看这类数据字典视图的结构:

desc user_tables;

desc all_tables;

desc dba_tables;

可以看出,这三类数据字典视图的列几乎是相同的,只是以前缀为ALL和DBA开始的数据字典视图中比USER中多了一列OWNER。

其他的字典视图中主要的是V$视图,之所以这样叫是因为他们都是以V$或GV$开头的。由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。

V$视图是基于X$虚拟视图的。V$视图是SYS用户所拥有的,在缺省状况下,只有SYS用户和拥有DBA系统权限的用户可以看到所有的视图,没有DBA权限的用户可以看

到USER_*和ALL_*,但不能看到DBA_*。

<Oracle Database>数据字典的更多相关文章

  1. 《Oracle Database 12c DBA指南》第一章 - 基本技能简介

    当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 1 基本技能简介 作为一个数据库管理 ...

  2. oracle 之数据字典屣履造门。

     oracle 之数据字典屣履造门.(更新中)       今天是2013-06-20,哎,写这篇笔记的时候,我发现我是一个非常懒惰的人,这篇文章本该昨天就完成的,想起了钱鹤滩的<明日歌> ...

  3. Oracle Database 11g : SQL 基础

    简介 1:课程目标 2:课程 目标 3:Oracle Database 11g 以及相关产品概览 1:Oracle Database 11g :重点领域 2:Oracle Fusion Middlew ...

  4. Opatching PSU in Oracle Database 11g Release 2 RAC on RHEL6

    Opatching PSU in Oracle Database 11g Release 2(11.2.0.4) RAC on RHEL6 1) 升级opatch工具 1.1) For GI home ...

  5. oracle数据库数据字典应用

    oracle数据字典 数据字典是由oracle服务器创建和维护的一组只读的系统表.数据字典分为两类:一是基表,二是数据字典视图. 数据字典视图包括用户名.用户权限.对象名.约束和审计等信息,是通过运行 ...

  6. CHAPTER 1 Architectural Overview of Oracle Database 11g

    Which SGA structures are required, and which are optional? The database buffer cache, log buffer, an ...

  7. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  8. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

  9. Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

    ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

随机推荐

  1. tesseract3.01的训练和使用

    相关源码.资源下载:http://code.google.com/p/tesseract-ocr/downloads/list 训练步骤: 1.  Generate Training Images:生 ...

  2. quartz学习

    quartz是一个作业调度框架,用于指定工作(作业)在指定时间执行——定时工作. quartz的核心接口有: Scheduler接口:Scheduler是job的执行对象,用于工作的执行. Job接口 ...

  3. sql server中自连接的使用

    一.用SQL自连接查询处理列之间的关系 SQL自身连接,可以解决很多问题.下面举的一个例子,就是使用了SQL自身连接,它解决了列与列之间的逻辑关系问题,准确的讲是列与列之间的层次关系.SQL代码如下: ...

  4. 小记:Bmob云端代码测试APNS推送功能 #代码片段

    function onRequest(request, response, modules) { var push = modules.oPush; push.send({ "data&qu ...

  5. Java泛型 E、T、K、V、N

    中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ...

  6. SpringMVC框架搭建 基于注解

    本文将以一个很简单的案例实现 Springmvc框架的基于注解搭建,一下全为个人总结 ,如有错请大家指教!!!!!!!!! 第一步:创建一个动态web工程(在创建时 记得选上自动生成 web.xml ...

  7. asp.net应用程序生命周期和asp.net网页的生命周期

    一.asp.net应用程序生命周期 asp.net应用程序生命周期以浏览器向web服务器(比如IIS服务器)发送请求为起点,先后经历web服务器下的ISAPI(Internet Server Appl ...

  8. JavaScript事件——冒泡、捕获

    本节要点:1.干预系统的事件处理机制 (一)DOM事件流 (二)停止事件冒泡 (三)阻止事件的默认行为 1.干预系统的事件处理机制 (一)DOM事件流 DOM模型是一个树形结构,在DOM模型中,HTM ...

  9. Python Decorator分析

    decorator本身是一个函数,这个函数的功能是接受被修饰的函数(decorated)作为参数,返回包装函数(wrapper)替换被修饰函数(decorated). @decorator func ...

  10. POJ 3057 Evacuation 二分图匹配

    每个门每个时间只能出一个人,那就把每个门拆成多个,对应每个时间. 不断增加时间,然后增广,直到最大匹配. //#pragma comment(linker, "/STACK:10240000 ...