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

article/2025/9/24 19:43:57

 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 database1 row selected.sys@cdb$root:orclcdb> select count(*) from dict;COUNT(*)
----------46901 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 sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 3 17:46:57 2023
Version 19.3.0.0.0Copyright (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.0sys@cdb$root:orclcdb> 
sys@cdb$root:orclcdb> show user;
USER is "SYS"
sys@cdb$root:orclcdb> select count(*) from v$fixed_table;COUNT(*)
----------28981 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_$对象权限


http://chatgpt.dhexx.cn/article/RjoasNnC.shtml

相关文章

List中remove()的用法

List remove的三种正确方法 1、倒序循环,因为list删除只会导致当前元素之后的元素位置发生改变,所以采用倒序可以保证前面的元素没有变化; for(int ilist.size()-1;i>0;i--){ list.remove(i); }2、顺序循环时,删除当前位置的…

JSP内置对象Session——setAttribute/getAttibute/removeAttribute

本文章代码使用了request内置对象,可先查看之前的文章学习。 前言 一、Session使用环境 二、常用方法 三.使用示例 1. 设计某系统登陆模块,该模块需满足以下条件: 2.login.jsp登录页面 2.check.jsp校验页面 3. success.jsp成功登录页面…

Iterator remove()详解

转自:http://blog.51cto.com/tianxingzhe/1693218 一、Iterator的API 关于Iterator主要有三个方法:hasNext()、next()、remove() hasNext:没有指针下移操作,只是判断是否存在下一个元素 next:指针下移&#xff…

VLAN命令行配置

VLNA配置任务概览 各配置任务间的逻辑关系: VLAN配置任务概览: 配置任务描述划分VLAN创建并划分VLAN,将没有二层互通需求的用户进行隔离,可增强网络的安全性、减少广播流量,同时也减少了广播风暴的产生。配置通过VLA…

VLAN配置命令

VLAN作用 分割广播域 VLAN分类 静态VLAN 基于端口划分 动态VLAN 基于MAC地址划分 VLAN范围 0-4095 共4096个vlanID 0与4095系统保留 1-4094可用 VLAN配置命令 VLAN基础配置代码 添加vlan(2-4094) vlan 10 删除vlan undo vlan 10 批量增加 vlan batch …

华为 -VLAN配置

按照实验拓扑图接线。 配置PC1:IP(192.168.1.1/24),PC2:IP(192.168.2.1/24)。测试PC1和PC2的连通性:用PC1去PingPC2,查看Ping的结果,并解释原因。 PC1和PC2在不同的网段,不能ping通 配置PC1&…

华为交换机vlan配置

拓扑图: 配置命令: sw1: sys sys sw1 vlan 10 vlan 20 int e0/0/1 port link-type access port default vlan 10 int e0/0/2 port link-type access port default vlan 20 int e0/0/3 port link-type trunk port trunk allow vlan 10 20sw2: sys sy…

ensp交换机vlan配置

交换机 一、VLAN1、VLAN的概念2、优势3、VLAN的种类4、VLAN的范围5、VLAN标识6、IEEE802.1q工作原理帧格式 二、交换机命令配置1、华为交换机链路类型2、添加VLAN 一、VLAN 1、VLAN的概念 VLAN(Virtual Local Area Network)即虚拟局域网,是…

eNSP VLAN配置

按如上拓扑图进行配置: 1、按拓扑图标记,划分VLAN,分配固定IP 2、开启两个路由器的DHCP服务,分配所有客户机IP地址 3、实现全网互通 一、划分VLAN,分配固定IP 因为两个路由器连接不同的交换机,所以左右两…

华三vlan配置

基于MAC地址划分vlan 配置思路: 创建VLAN 100、VLAN 200。 配置Device A和Device C的上行端口为Trunk端口,并允许VLAN 100和VLAN 200的报文通过。 配置 Device B 的下行端口为Trunk端口,并允许VLAN 100和VLAN 200的报文通过;上行…

计算机网络配置——VLAN的配置

一、实验目的 了解VLAN的作用和用途;掌握单一交换机与跨交换机划分VLAN的配置方法; 理解VLAN标签添加和删除的过程。 二、实验任务 在思科模拟器中实现下图所示的VLAN的配置: 使用ping命令验证配置结果,并完成实验报告。 二、…

H3C_交换机_Vlan配置

奶奶说,没事不要和小学生比爹。 一、实验环境 HCL v2.1.2win7操作系统 二、拓扑结构 三、模拟环境 一般用于企业网络或者需要对局域网进行逻辑区域划分的网络。不同vlan间一般情况是不能相互访问的,这样就可以减少广播和提高网络安全性。 四、介绍 …

华为交换配置之VLAN配置。

每天进步一点点! 08 vlan 配置与原理 vlan 虚拟局域网 作用:实现同一vlan的设备才可以进行通信,不同vlan不能通信。 vlan tag:接口配置vlan后发生数据会携带相应的vlan tag(vlan 标签) VLAN ID&#…

VLAN,简单配置vlan

VLAN 在交换机中工作 分割广播域 物理分割--------子网掩码划分 逻辑分割---------VLAN划分 VLAN的优势 控制广播 增强网络安全性 简化网络管理 VLAN的种类 静态VLAN:基于端口划分静态VLAN 动态VLAN:基于MAC地址划分动态VLAN VLAN的ID范围 0~4095共4096…

VLAN基本配置

目录 一、VLAN概述 1、VLAN概念 1)分隔广播域的两种方法 2、VLAN优势 1)控制广播 2)增强网络安全性 3)简化网络管理 3、VLAN的种类 二、静态VLAN的配置 1、VLAN的范围 2、VLAN基本配置 1)创建VLAN 2&#…

交换机VLAN基本配置

一、实验目的 (1)掌握交换机路由器基本配置。 (2)掌握VLAN基本配置。 二、实验环境 (1)4人1组,每组运行Windows 2008 Server/Windows XP/Windows 7/ Windows 10 操作系统的PC机4台&#xff0c…

华为ENSP的VLAN配置

华为ENSP vlan配置实验 实验一 实现同一个vlan下面的不同网段的ping通 网络拓扑图如下: ①配置两个pc端的ip地址和子网掩码、网关 ②对交换机进行vlan的配置 1)创建vlan2 [SA]vlan 2 [SA-vlan2]quit2)将两个网段的网关都加入vlan2 中&am…

VLAN简单配置详细过程

实验拓扑图 一、PC的 ip配置 PC1 Ip&#xff1a;192.168.1.1/24 PC2 Ip&#xff1a;192.168.1.2/24 PC3&#xff1a; Ip:192.168.1.3/24 PC4&#xff1a; Ip&#xff1a;192.168.1.4/24 二、路由器中命令 AR1中指令 <Huawei>undo t m …

VLAN配置

实验效果&#xff1a;相同VLAN能通讯&#xff0c;不同VLAN不能通讯 1.配置拓扑图如下&#xff1a;&#xff08;两台交换机和四台主机终端设备&#xff09; 2.四台终端设备设置IP地址和网关 PC0 IP地址&#xff1a;192.168.2.11 网关 192.168.2.1 PC1 IP地址&#xff1a;192.…

VLAN(含配置命令行)

一、VLAN的概念及优势 虚拟局域网&#xff08;VLAN&#xff09;是一组逻辑上的设备和用户&#xff0c;这些设备和用户并不受物理位置的限制&#xff0c;可以根据功能、部门及应用等因素将它们组织起来&#xff0c;相互之间的通信就好像它们在同一个网段中一样&#xff0c;由此得…