数据字典与系统表

数据字典与系统表

地址:http://weibo.com/p/1001603822234199319043

数据字典描述了数据库系统的基本信息,如表结构的定义。它描述了数据库的元信息,任何数据库对象都需要相应的数据字典对象来描述。数据字典的表现形式为一组系统表,

在达梦7中以SYS开头的表都是系统表,它的拥有者是系统内建的SYS用户。

使用系统表存放数据字典并不是唯一的数据字典表示形式。有些系统,比如MySQL对每个表有一个对应的FRM文件来描述表结构,这种方式实现容易,但是需要特殊的语法来查询,比如show语句

使用系统表的优势在于可以方便使用标准的SQL语言来查询(例如sqlserver select * from sys.dm_exec_xxxx)。达梦7的系统表,包括系统性能动态视图(V$)都可以使用复杂的SQL标准语法来访问,

这也是关系数据库的关系准则之一。

达梦7的核心系统表大概只有几十个,尽量保持简单。对于一些扩展功能,如:自动工作负载AWR, 定时任务系统等,也用一些系统表来管理,但是这些相应功能模块需要额外的创建工作。

系统表记录的信息主要包括:
?用户、角色
?模式及模式对象, 包括表、视图、索引、约束、序列、存储过程、触发器、包等
?权限, 授权信息
?安全、审计信息
?系统的一些静态信息,如: 错误码、关键字清单
?系统的动态性能信息(V$)

系统表的信息反应了系统的管理对象和当前运行状态,授权用户可以查询,但不能直接修改系统表。系统表由达梦7自动维护,用户只能通过DDL来间接修改系统表

为了使用方便, 系统定义了一些系统视图,如all_tables, user_tables等反应系统的一些特定对象信息。很多视图具有和Oracle对应视图基本一致的字段和信息。

SYSOBJECTS是最重要的系统表之一,它的每一行表示了一个数据库对象,比如每创建一个表、视图,系统都会在SYSOBJECTS插入一条记录。

大部分对象,还需要其他的系统表来存放额外信息,比如:表的列信息存放在SYSCOLUMNS里,获取一个表的完整对象信息需要访问多个系统表,

这就需要做关联操作

达梦7提供了一个工具DMINIT来创建数据库的物理文件。这个工具的主要工作就是创建这些系统表。类似SYSOBJECTS/SYSCOLUMNS这样的系统表,一开始就包含了不少数据,因为它们需要描述自身

这些数据需要DMINIT硬编码来创建(就像install_db脚本 安装数据库的时候自动安装系统数据库),而普通的用户表创建,则可以通过对系统表的insert语句来实现。

时间: 2024-11-15 20:11:03

数据字典与系统表的相关文章

InnoDB数据字典详解-系统表

1.简介 InnoDB中,实际上看不到系统表.有4个最基本的系统表来存储表的元数据:表.列.索引.索引列等信息.这4个表分别是SYS_TABLES.SYS_COLUMNS.SYS_INDEXES.SYS_FIELDS.下面分别介绍 2.SYS_TABLES 存储所有以InnoDB为存储引擎的表,每条记录对应一个表.该表的列分别是: NAME:表名 ID:表的ID号 N_COLS:表的列数 TYPE:表的存储类型,包括记录的格式.压缩等信息 MIX_ID.MIX_LEN.CLUSTER_NAME:

ORACLE主要的系统表和系统视图

ORACLE主要的系统表和系统视图 1.系统表 ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYS进行查询.几个重要的表或者视图如下: v$controlfile:控制文件的信息: v$datafile:数据文件的信息: v$log:日志文件的信息: v$process:处理器的信息: v$session:会话信息: v$transaction:事务信息: v$resource:资源信息: v$sga:系统全局区的信息. 上面的视图名中的‘v$’,只是视图名字中的

oracle常用系统表

Oracle查询用户下的所有表 select * from all_tab_comments – 查询所有用户的表,视图等 select * from user_tab_comments – 查询本用户的表,视图等 select * from all_col_comments –查询所有用户的表的列名和注释. select * from user_col_comments – 查询本用户的表的列名和注释 select * from all_tab_columns –查询所有用户的表的列名等信息(

ORACLE系统表和视图

1.系统表 ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYSYTEM进行查询.几个重要的表或者视图如下: v$controlfile:控制文件的信息: v$datafile:数据文件的信息: v$log:日志文件的信息: v$process:处理器的信息: v$session:会话信息: v$transaction:事务信息: v$resource:资源信息: v$sga:系统全局区的信息. 上面的视图名中的'v$',只是视图名字中的字符.类似于上面的视图或表还

oracle 常用的系统表查询

(转自:http://blog.csdn.net/marshalchen/article/details/6552103) select * from user_tab_cols where column_name=upper('xxxxx');查询哪些表中有某一列 select status from user_objects where object_name=upper('f_get_multicountry_from_code')  查询过程或函数是否编译完成 alter procedu

Greenplum 调优--VACUUM系统表

1.VACUUM系统表原因 Greenplum是基于MVCC版本控制的,所有的delete并没有删除数据,而是将这一行数据标记为删除, 而且update其实就是delete加insert.所以,随着操作越来越多,表的大小也会越来越大.对于OLAP 应用来说,大部分表都是一次导入后不再修改,所以不会出现这个问题. 但是对于数据字典来说,就会随着时间表越来越大,其中的数据垃圾越来越多. 2.Greenplum的VACUUM工具 Greenplum的VACUUM工具,可以回收已经删除行占据的存储空间.

Greenplum数据库中系统表pg_class详解

Greenplum数据库中系统表pg_class详解 pg_ class 可以说是数据字典最重要的-一个表了,它保存着所有表.视图.序列.索引的原数据信息,每一个DDL/DML操作都必须跟这个表发生联系, 其表结构详情,如下图: 原文地址:https://www.cnblogs.com/lizm166/p/12102500.html

oracle/ms sql 系统表

sql server系统表详细说明 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 syscurconfigs主数据库当前配置选项 sysdatabases主数据库服务器中的数据库 syslanguages主数据库语言 syslogins主数据库 登陆帐号信息 sysoledbusers主数据库 链接服务器登陆信息 sysprocesses主数据库进程 sysremotelogins主数据库 远程

FAQ系列 | ibdata1系统表空间文件都包含什么内容

InnoDB系统表空间文件ibdata1中存储了以下几部分信息: Data dictionary Double write buffer Insert buffer Rollback segments UNDO space Foreign key constraint system tables 因此,我们在初始化ibdata1时,最好设置大一些,比如至少1GB以上. 此外,从MySQL 5.6版本开始,支持将UNDO Space放在独立的undo表空间里,强烈建议使用. 这样就可以避免因为在高