设为首页 收藏本站
查看: 995|回复: 0

[经验分享] Oracle自学笔记--数据字典

[复制链接]

尚未签到

发表于 2018-9-24 11:24:58 | 显示全部楼层 |阅读模式
  数据字典的概念
  还记得我们在手工建库的时候,运行的两个脚本文件。一个是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),因为数据库管理员不能将其修改或移除。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-600555-1-1.html 上篇帖子: 把sqlserver中存储过程改写到oracle中 下篇帖子: Oracle RMAN 设置和配置(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表