【数据库管理】⑩数据字典

这篇具有很好参考价值的文章主要介绍了【数据库管理】⑩数据字典。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据字典管理,Oracle Administration,数据库,oracle,sql

 1. 数据字典的概述

数据字典(Data Dictionary)是数据库管理系统中的一个重要组成部分,它是一个存储数据库元数据的集合,包含了数据库中所有对象的定义和描述信息。数据字典可以帮助用户了解数据库中的各种对象和数据结构,以及它们之间的关系和依赖关系。

数据字典通常包含以下信息:

  1. 数据库对象的定义和描述信息,包括表、视图、索引、存储过程、触发器等。

  2. 数据库对象的属性信息,包括对象的名称、类型、大小、创建时间、修改时间等。

  3. 数据库对象之间的关系和依赖关系,包括表之间的关系、视图和表之间的关系、索引和表之间的关系等。

  4. 数据库用户和权限信息,包括用户的名称、角色、权限等。

  5. 数据库参数和配置信息,包括数据库的名称、版本、字符集、时间区域等。

数据字典可以通过SQL查询来访问和管理,也可以通过数据库管理工具来查看和修改。在实际应用中,数据字典可以帮助用户了解数据库的结构和内容,以及进行数据库的管理和维护。同时,还可以通过数据字典来进行数据库的安全审计和性能优化。

如RDBMS架构图所示,Oracle架构主要包括=

​ User Process、Server Process等的Client端+Instance实例+Databases+一些参数文件+密码文件+归档日志文件.

在Oracle数据库中,用户并不能直接访问到数据库文件,而是需要先创建一个数据库实例.数据库实例指的就是操作系统中一系列的进程以及为这些进程所分配的内存块,就是访问Oracle数据库文件的通道.

一个数据库实例包括Shared Pool(共享池),Data Buffer Cache(数据库缓冲区缓存),Redo Log Buffer(重做日志缓冲区)等部分,其中Shared Pool(共享池)又包括Library Cache(库缓存),Data Dictionary Cache(数据字典缓存).

当用户访问数据库文件时,需要先启动一个数据库实例,然后将数据库文件加载到Data Buffer Cache,将数据字典加载到Data Dictionary Cache,之后Server Process会首先访问Data Dictionary Cache,获取到有关数据库表的字段,关键字等元数据信息,然后再访问Data Buffer Cache,读取相关数据.从上述过程中,可以看到在Oracle数据库中,数据字典不仅是管理和查询元数据的工具,还是用户访问数据库文件的基础.

数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据(Metadata)的目录.

元数据是指对数据对象(如表、视图、存储过程等)的描述,包括数据容器的名称、创建时间、创建者或属者、物理存放位置等基础元信息,还包括外部实体、参照完整性等与其他对象的关联信息

数据字典的内容:

1).数据库的逻辑和物理架构

2).用户和对象的定义和存储信息

3).权限、角色、审计等

4).Database**的状态

2. 数据字典的作用

数据字典(Data Dictionary)在数据库管理系统中扮演着重要的角色,它的作用包括以下几个方面:

  1. 数据库对象的描述和定义:数据字典包含了数据库中所有对象的定义和描述信息,包括表、视图、索引、存储过程、触发器等。这些信息可以帮助用户了解数据库中的各种对象和数据结构,以及它们之间的关系和依赖关系

  2. 数据库对象的属性信息:数据字典还包含了数据库对象的属性信息,包括对象的名称、类型、大小、创建时间、修改时间等。这些信息可以帮助用户了解数据库对象的特性和属性,以及进行数据库对象的管理和维护。

  3. 数据库对象之间的关系和依赖关系:数据字典还包含了数据库对象之间的关系和依赖关系,包括表之间的关系、视图和表之间的关系、索引和表之间的关系等。这些信息可以帮助用户了解数据库对象之间的关系和依赖关系,以及进行数据库对象的设计和优化。

  4. 数据库用户和权限信息:数据字典还包含了数据库用户和权限信息,包括用户的名称、角色、权限等。这些信息可以帮助用户了解数据库用户和权限的分配情况,以及进行数据库用户和权限的管理和维护。

  5. 数据库参数和配置信息:数据字典还包含了数据库参数和配置信息,包括数据库的名称、版本、字符集、时间区域等。这些信息可以帮助用户了解数据库的配置和参数设置情况,以及进行数据库的配置和优化。

综上所述,数据字典在数据库管理系统中扮演着重要的角色,它可以帮助用户了解数据库的结构和内容,以及进行数据库的管理和维护。同时,还可以通过数据字典来进行数据库的安全审计和性能优化。

数据字典最重要的作用是作为分析阶段的工具,具体如下:

1.管理系统数据资源

数据字典提供了管理和收集数据的方法;

2.实现数据标准化

数据库中的名称、格式和涵义等在不同的场合下容易混淆,数据字典提供标准化的工具可以赋予其统一的名称、格式和涵义;

3.使系统的描述文体化

所有和系统有关的描述,都可以对数据字典中的信息进行查询、插入、删除和修改;

4.作为设计的工具

由于数据字典中存放着与数据库有关的各种信息和原始资料,就为数据库设计提供了有力的工具;

5.为数据库提供存取控制和管理

数据库在接受存取请求时,都要检查用户标识、口令、子模式、模式和物理模式等.某种意义上讲,数据字典控制了数据库的运行;

6.供数据库管理员(DBA)进行各种查询

以便了解系统性能、空间使用状况和各种统计信息,及时掌握数据库的动态.所以数据字典是 DBA 观察数据库的眼晴和窗口.

3. 数据字典的特点

sys@cdb$root:orclcdb> col table_name format a20
sys@cdb$root:orclcdb> col comments format a30
sys@cdb$root:orclcdb> select * from dict where table_name='DBA_OBJECTS';

TABLE_NAME           COMMENTS
-------------------- ------------------------------
DBA_OBJECTS          All objects in the database

1 row selected.

sys@cdb$root:orclcdb> select count(*) from dict;

  COUNT(*)
----------
      4690

1 row selected.

sys@cdb$root:orclcdb> 

1).central of database(*X$*内部表)

2).read_only table and views

3).owner:sys

4).oracle server维护,DDL操作会更新

5).通过select 访问

6).记录数据库的物理、逻辑结构(tbs)和模式信息及对象信息(用户、约束、权限、审计等)

7).存放在system tablespace (v$来自内存或控制文件)

数据字典(Data Dictionary)是数据库管理系统中的一个重要组成部分,具有以下几个特点:

  1. 统一性:数据字典是一个集中存储数据库元数据的地方,它包含了数据库中所有对象的定义和描述信息。因此,数据字典具有统一性,可以帮助用户了解数据库中各种对象和数据结构的定义和描述信息。

  2. 实时性数据字典中的信息是实时更新的,它可以反映数据库中对象的最新状态和属性信息。因此,用户可以通过数据字典来了解数据库对象的最新状态和属性信息

  3. 可扩展性数据字典可以根据需要进行扩展和修改,以适应不同的应用场景和需求用户可以通过数据字典来进行数据库对象的设计和优化,以及进行数据库的管理和维护

  4. 可访问性数据字典可以通过SQL查询来访问和管理,也可以通过数据库管理工具来查看和修改。因此,用户可以方便地访问和管理数据字典中的信息。

  5. 安全性:数据字典中包含了数据库对象的定义和描述信息,以及数据库用户和权限信息等敏感信息。因此,数据字典具有较高的安全性,需要进行严格的权限控制和访问控制。

综上所述,数据字典具有统一性、实时性、可扩展性、可访问性和安全性等特点,它是数据库管理系统中不可或缺的组成部分,可以帮助用户了解数据库的结构和内容,以及进行数据库的管理和维护。

4. 数据字典的结构

数据字典(Data Dictionary)是数据库管理系统中的一个重要组成部分,它包含了数据库中所有对象的定义和描述信息。数据字典的结构通常包括以下几个方面:

  1. 对象定义信息:数据字典中包含了数据库中所有对象的定义信息,包括表、视图、索引、存储过程、触发器等。这些对象的定义信息包括对象的名称、类型、大小、创建时间、修改时间等。

  2. 对象属性信息:数据字典中还包含了数据库对象的属性信息,包括对象的名称、类型、大小、创建时间、修改时间等。这些信息可以帮助用户了解数据库对象的特性和属性,以及进行数据库对象的管理和维护。

  3. 对象关系信息:数据字典中还包含了数据库对象之间的关系和依赖关系,包括表之间的关系、视图和表之间的关系、索引和表之间的关系等。这些信息可以帮助用户了解数据库对象之间的关系和依赖关系,以及进行数据库对象的设计和优化。

  4. 用户和权限信息:数据字典中还包含了数据库用户和权限信息,包括用户的名称、角色、权限等。这些信息可以帮助用户了解数据库用户和权限的分配情况,以及进行数据库用户和权限的管理和维护。

  5. 参数和配置信息:数据字典中还包含了数据库参数和配置信息,包括数据库的名称、版本、字符集、时间区域等。这些信息可以帮助用户了解数据库的配置和参数设置情况,以及进行数据库的配置和优化。

综上所述,数据字典的结构包括对象定义信息、对象属性信息、对象关系信息、用户和权限信息以及参数和配置信息等方面,它可以帮助用户了解数据库的结构和内容,以及进行数据库的管理和维护。

数据字典(Data Dictionary)是关系型数据库的核心组件之一,在不同的关系型数据库中,数据字典的结构和存储方式有所不同,介绍Oracle数据库数据字典的结构和使用.

Oracle提供了大量的内部表,它们记录了数据库对象的更改和修正.可以将这些内部表划分为两种主要类型: 静态的数据字典表和动态的性能表.这些内部表是由oracle维护的,包括sys都不能修改,只能查看.

Oracle数据字典包括四个层次:X$内部表+动态性能视图+基础数据字典表+静态数据字典视图

动态性能视图 静态数据字典视图
l 记录数据库运行时信息和统计数据 l 提供给普通用户访问
l 实时更新 l 创建数据库时由$ORACLE_HOME/rdbms/admin/catalog.sql创建
l 数据库启动时,基于X$表创建 l 根据基础数据字典表创建
l 包括GV$、V$视图 l 包括user_、all_、dba_三类
X$部表 基础数据字典表
l Oracle数据库的核心部分和运行基础 l 存储表、索引、约束以及其他数据库结构信息
l 只有sysdba可以直接访问 l 普通用户不能直接访问
l 数据库启动时由Oracle应用程序动态创建X$表 l 创建数据库时由$ORACLE_HOME/rdbms/admin/sql.bsq脚本创建
l 包括X$BH、X$KSMSP等 l 包括TAB$、OBJ$、TS$等

普通用户不能直接访问X$内部表和基础数据字典表,那么用户如何查看这些表中的信息?

Oracle为用户提供了两个视图:动态性能视图和静态数据字典视图,它们分别是基于X$内部表和基础数据字典表创建的,其中静态数据字典视图包括user_xxx、all_xxx、dba_xxx三类,在创建数据库时由$ORACLE_HOME/rdbms/admin/catagory.sql脚本创建.

5. 结构之--静态数据字典视图

 

user_xxx :存储了关于当前用户所拥有的对象的信息,即所有在该用户模式下的对象;

all_xxx :存储了当前用户能够访问的对象的信息(包括用户所拥有的对象和别的用户授权访问的对象)

dba_xxx :存储了数据库中所有对象的信息, 默认只能有sys/system 用户访问

 NOTE: 实例参数O7_DICTIONARY_ACCESSIBILITY在缺省时为FALSE,这将限制具有select any table权限的非DBA用户访问sys用户下的对象,否则这些非DBA用户也能查看dba_.

让普通用户访问dba_xxx的三种授权方法

-- 第一种	: 将对象权限授予scott
SQL> grant select on dba_objects to scott;
	-- : 收回对象权限
SQL> revoke select on dba_users from scott; 
-- 第二种	: 将系统权限授权给scott
SQL>	grant select any dictionary to scott;
-- 第三种
SQL> grant select any table to scott;	-- 此时,scott除了不能访问dba_xxx,其余均可访问
SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;	-- o7的布尔值变为ture,即可达到scott访问任意表,需要重启生效

6. 结构之--动态性能视图

动态视图在数据库mount状态下访问(如控制文件的 v$)

是维护当前实例信息的,由于不断的更新,所以也叫动态视图.其底层是一组虚拟的动态表称为X$表,oracle不允许直接访问X$表,而是在这些表上创建视图,然后再创建这些视图的同义词.

 基表(x$)-------------视图(v_$)--------------同义词v$-------User access

可以通过v$fixed_table 视图查到所有的动态视图的名称;用于调优和数据库监控.

从 Oracle8开始引入GV$视图,含义为Global V$,GV$的产生是为了满足OPS环境的需要,除一些特例,每个V$视图都有一个GV$视图存在.

[oracle@MaxwellDBA ~]$ 
[oracle@MaxwellDBA ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 3 17:46:57 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

sys@cdb$root:orclcdb> 
sys@cdb$root:orclcdb> show user;
USER is "SYS"
sys@cdb$root:orclcdb> select count(*) from v$fixed_table;

  COUNT(*)
----------
      2898

1 row selected.

sys@cdb$root:orclcdb> 


广义概述中:v$也属于数据字典范畴.因为v$的结构也是在创建数据库的时候通过执行脚本完成的.与数据字典视图不同的是:v$数据源不是来自system TBS,而是来自内存或控制文件,它在实例启动后被填充,在实例关闭后被清除.

NOTE

动态性能视图填充了来自实例和控制文件的信息

 前缀为DBA_、ALL_、USER_的视图则填充了来自数据字典的信息,此差异决定了可以在不同的启动阶段查询哪些视图.

(比如在mount阶段, 读完控制文件后, 可以查询大部分视图;但是在 TBS上的静态视图无法查询,因为数据库open时候才可以访问数据字典)

让普通用户访问v$xxx

SQL> grant select on v_$log to scott;  -- 授予scott 用户v_$对象权限文章来源地址https://www.toymoban.com/news/detail-525571.html

到了这里,关于【数据库管理】⑩数据字典的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Oracle】收集Oracle数据库内存相关的信息

    【声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) Oracle数据库包含多个内存区域,每个区域都包含多个子组件。 Oracle Database Memory Structures 根据具体问题的需要,可以通过如下命令收集Oracle数据库内存相关的信息。 例: 注:SET

    2024年01月21日
    浏览(67)
  • 【Oracle】使用 SQL Developer 连接 Oracle 数据库

    SQL Developer 是 Oracle 官方推出的一款免费的数据库开发工具,它提供了丰富的数据库开发功能,其中包括连接 Oracle 数据库的功能。 在本文中,我们将从多个方面详细阐述如何使用 SQL Developer 连接 Oracle 数据库。 在连接 Oracle 数据库前,需要需要做一些准备工作,包括安装 SQ

    2024年02月06日
    浏览(66)
  • Oracle数据库

    ①层次型数据库 ②网状型数据库 ③关系型数据库(主要介绍) E-R图:属性(椭圆形),实体(矩形),联系(菱形-一对一、一对多、多对多) 注:有的联系也有属性 关系型数据库的设计范式: 第一范式(1NF):属性不可再分,字段保证原子性 第二范式(2NF):在满足1

    2024年02月08日
    浏览(56)
  • Oracle 开发篇+Java通过HiKariCP访问Oracle数据库

    标签:HikariCP、数据库连接池、JDBC连接池、 释义:HikariCP 是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。 ★ Java代码 ※ 如果您觉得文章写的还不错, 别忘了在文末给作者点个赞哦 ~

    2024年02月13日
    浏览(53)
  • Oracle数据库完整卸载

    进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止。 快捷键:ctrl+shift+esc打开任务管理器 点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击Universal Installer。 点击之后稍等一会然后会进入进入下图界面,点击卸载产品。 单击“卸载产品”,选中除“Or

    2024年01月16日
    浏览(62)
  • 快速监控 Oracle 数据库

    Oracle 数据库在行业内应用广泛,通常存放的非常重要的数据,监控是必不可少的,本文使用 Cprobe 采集 Oracle 监控数据,极致简单,分享给大家。 安装配置 Oracle 简单起见,我使用 Docker 启动 Oracle,命令如下: 如上命令启动之后,Oracle 的监听端口是 1521,用户名/密码是 syst

    2024年01月20日
    浏览(49)
  • Oracle大型数据库技术

    sqlplus 记录实验过程的方法: 开启相关服务 oracleserviceORCL 控制面板–管理–服务–找到后开启 命令行方法: cmd–net start|stop oracleserviceorcl 常用操作 显示当前用户名 常用的用户名和口令 :dba用户,默认口令:change_on_install,Oraclell,必须以sysdba或者sysoper身份登录 system: 普通管

    2024年02月19日
    浏览(47)
  • Oracle数据库概念简介

    一般意义上的数据库包含两个部分 库:就是一个存储一堆文件的文件目录 数据库管理系统:管理库的系统 数据库管理系统(Database Management System),是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称 DBMS ; 它对数据库进行统一的管理和控制,以保证数

    2024年02月09日
    浏览(48)
  • ORACLE数据库 开窗函数

    开窗函数 2.1开窗函数的定义及语法 开窗函数(又名:分析函数,窗口函数,OLAP函数) 聚合函数:将数据按照一定的规则分组,统一分析各组的某项情况,每个分组返回一行结果 开窗函数:将数据按照一定的规则分组,统一分析各组的某项情况,每行数据返回一行结果 (

    2024年02月11日
    浏览(46)
  • 数据库(二) Oracle篇

    概述 SQL函数有单行函数和多行函数,其区别为: 单行:输入一行,返回一行,如字符、数字、转换、通用函数等 多行:输入多行,返回一行,也称为分组函数、组函数、聚合函数, 且多行函数会自动滤空 字符函数 CONCAT( X,Y): 连接字符串X和Y INSTR(X,STR) : 后面STR在前面字符串X第一次

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包