oracle数据字典视图
数据字典的概念
还记得我们在手工建库的时候,运行的两个脚本文件。一个是catalog.sql,另一个是catproc.sql。catalog.sql是用来创建数据库的内部字典表的。catproc.sql是用来创建数据库的内建的存储过程。
数据字典是Oracle数据库中的一系列只读的参考表和视图。它与数据库内的其他数据相同,也是以标及视图的形式组织的。一个数据库的全部数据字典表与数据字典视图都物理地存储在该数据库的SYSTEM表空间内。它由两个部分组成:数据字典基本表(也叫基表base table)、数据字典视图(也叫用户访问视图)。
当创建数据库时数据字典也被创建。为了实时、准确地反映数据库的状态,用户对Oracle数据库进行操作时,数据字典将会被实时的自动更新。数据库依赖数据字典来记录、验证、管理正在进行的工作。
数据字典的重要性
数据字典是整个Oracle数据库的核心之一,描述了数据库自身的信息,以及数据库里记录对象的信息。比如说我们要对一个数据库中的一个表进行一个添加记录的操作。则需要定位到这个表位于哪个数据文件里,这个表的结构是什么等等才能够完成我们操作。数据字典就是记录着这样的信息(是以表的形式记录的)。
数据字典基本表与数据字典视图的区别
Structure of the Data Dictionary
The data dictionary consists of the following:
Base Tables(基本/数据字典基本表)
The underlying tables that store information about the associated database. Only Oracle should write to and read these tables. Users rarely access them directly because they are normalized, and most of the data is stored in a cryptic format.
基表存储的是一些与数据库相关的信息。只有Oracle才可以读写这些表。用户很少直接访问它们 。因为它们都是规范化的,而且大部分数据都是用一种保护的格式存储的。(只有Oracle才看得 懂,用户是无法看懂里面的信息的)
User-Accessible Views(用户访问视图/数据字典视图)
The views that summarize and display the information stored in the base tables of the data dictionary. These views decode the base table data into useful information, such as user or table names, using joins and WHERE clauses to simplify the information. Most users are given access to the views rather than the base tables.
这个视图是对存储在数据字典的基表中的数据的总结与展示。通过用连接和where字句去简化信息 的方法,把这些视图将基表中的数据编码成有用的信息(所谓有用,就是用户可以看懂,理解的 形式),比如用户,表名等,而这种将数据编码是通过用连接和where字句与简化信息。很多用 户都被赋予了访问视图的权限,而没有访问基表的权限。
这是Oracle Conceptes中对数据字典组成的介绍。简单地说:数据字典基本表就是给Oracle看的,而数据字典视图是为了方便用户而将基本表简化出来的(内容应该是一样的)。
所有这些数据字典基本表与数据字典视图的所有者都是sys(oracle数据库的超级用户)。其他Oracle用户只可以查看,而不能用DML语句(update,delete,insert)去修改这些数据字典表(可能会带来不可恢复的损害)。
为了方便其他用户访问这些视图,Oracle为所有的数据字典视图创建了公共的同名词(public synonym)。所谓的同名词就是别名。这样数据库里的任何用户都通过别名来访问有权查看的视图了。这些视图与同名词就是通过catalog.sql脚本创建的。
数据字典视图分为三个层面:DBA视图(所有用户schema内的对象)、ALL视图(用户可访问的对象)、USER视图(用户schema内的对象)。
DBA视图表示以DBA_开头的视图,包括了整个数据库范围的数据。dba_table表示整个数据库里所有表的信息。用户需要一定的授权才能访问DBA层面的视图。
ALL视图表示以ALL_开头的视图,包含了当前登录用户有权限看到的数据。all_tables记录了当前登录用户有权限访问的所有表的信息。
USER视图表示以USER_开头的视图,包含了当前登录用户所拥有的所有表的信息。
三个视图的关系是DBA包含了ALL包含了USER
dictionary视图记录了所有数据字典视图的名称。它的别名是dict。可以通过它来查看数据库中的视图。
动态性能视图(动态性能表/Dynamic Performance Tables)
除了用具体表存放数据字典外,还有一个数据字典,叫做动态性能视图。用于记录数据库的当前状态,是将内存里的数据或控制文件的数据以表的形式展现出来,是一种虚拟表(virtual table)。所有动态性能视图的名称都存放在v$fixed_table里。而这些动态性能视图都是以v_$开头,属主是用户sys。Oracle为每个动态性能视图都创建了同名词,同名词是将中间的“_”去掉了,都是以v$开头。
动态性能表并不是真正的表,大多数用户不应访问其中的信息。但是数据库管理员可以对其进行查询,或在其上创建视图并将访问权限授予其他用户。这些视图有时被称为固定视图(fixed view),因为数据库管理员不能将其修改或移除。
oracle数据字典视图的更多相关文章
- Oracle 数据字典视图(V$,GV$,X$)
常用的几个数据字典: user_objects : 记录了用户的所有对象,包含表.索引.过程.视图等信息,以及创建时间,状态是否有效等信息,是非DBA用户的大本营.想知道自己有哪些对象,往这里查. u ...
- 十三、oracle 数据字典和动态性能视图
一.概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.动态性能视图记载了例程启动后的相关信息. 二.数据字典1).数据字典记录了数据库的系统信息,它是只读表和视图的集合 ...
- oracle 数据字典和动态性能视图
一.概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.动态性能视图记载了例程启动后的相关信息. 二.数据字典1).数据字典记录了数据库的系统信息,它是只读表和视图的集合 ...
- Oracle数据字典
数据字典-简介 Oracle数据字典的名称由前缀和后缀组成,使用下划线"_"连接,其代表的含义如下: ● DBA_:包含数据库实例的所有对象信息. ● V$_:当前实例的动态视图, ...
- oracle数据字典-权限-角色
每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是在sys这个系统sch ...
- Oracle数据字典详解
学习笔记:oracle数据字典详解 --- 本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图.然后列出一些附例. 数据字典系统表,保存在system表空间中. ...
- 详解Oracle数据字典
Oracle通过数据字典来管理和展现数据库信息,数据字典通常储存数据库的元数据,是数据库的“数据库”.通常说的数据字典由4部分组成:内部RDBMS(X$)表.数据字典表.动态性能视图(V$)和(静态) ...
- oracle数据字典-权限-角色-参数
每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是在sys这个系统sch ...
- Oracle_高级功能(7) 数据字典视图和动态性能视图
oracle数据字典 1.概念数据字典是oracle数据库用来存储数据库结构信息的地方.数据字典是用来描述数据库数据的组织方式的,由表和视图组成.数据字典基表是在任何 Oracle 数据库中创建的第一 ...
随机推荐
- Windows10永久激活的工具
最近发现一个很好用的Windows10 永久激活的工具,比KMS什么的管用,而且无毒无公害.几乎支持所有的win10版本.感兴趣的朋友可以试试.之前win10没洗白的同学,也试试吧,说不定就洗白了呢. ...
- 第五章 动画 44:动画-使用第三方animate.css类库实现动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- C语言结构体初始化的四种方法
定义 struct InitMember{ int first: double second: char* third: float four;}; 方法一:定义时赋值 str ...
- Linux下Mongodb的安装
[root@localhost usr]# cd /usr //创建Mongodb目录 用于存放Mongodb的程序 [root@localhost usr]# mkdir mongodb [root ...
- Gym - 102082G What Goes Up Must Come Down (树状数组+贪心)
题意:有一个长度为n的序列,你每次可以选择两个相邻的元素交换,求把这个序列排成单峰序列的最少交换次数. 方法一:将元素按数值从大到小排序(保存原来的位置),把最大的插在中间,剩下的依次往两边放,依次考 ...
- linux的逻辑运算符
1:expression :用于计算括号中的组合表达式,如果整个表达式的计算按结果为真,则测试结果也为真. 2:!exp:客队表达式进行逻辑非运算,即对测试结果求反 3:符合 -a 或者 && ...
- Acwing-280-陪审团(背包dp?)
链接: https://www.acwing.com/problem/content/282/ 题意: 在一个遥远的国家,一名嫌疑犯是否有罪需要由陪审团来决定. 陪审团是由法官从公民中挑选的. 法官先 ...
- 设置centos7界面语言为中文
1.在终端中输入命令 vim ~/.bashrc 来编辑“.bashrc”文件 2.在最后添加“ export LANG="zh_CN.UTF-8" ” 3.执行 sudo sh ...
- hdu 4763 看毛片(单纯next数组的应用--纯正O(n))
因为需要负责队内的字符串题,开始刷,做到这道,开始想不出来,上网找题解, 然后就惊了,为什么你们这么暴力都可以过的啊,1e6啊,后来又想了下会做了 贴下代码 #include <iostream ...
- SQLite索引
索引(Index)是一种特殊的查找表,数据库搜索引擎用来加快数据检索.简单地说,索引是一个指向表中数据的指针.一个数据库中的索引与一本书后边的索引是非常相似的. 例如,如果您想在一本讨论某个话题的书中 ...