定义来自《数据库系统概论》:
应该承认,每个人对数据字典的理解有不同的地方,因为并没有这方面的标准,下面是三个大同小异的定义:
1)数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其内容作详细说明的数据集。
2)数据字典中存放着系统中所有数据的定义,即对所有数据库结构的描述。数据字典提供了对数据库数据描述的集中管理手段。
3_数据字典是一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、格式、度量单位、精度以及允许取值范围的共享仓库。
2、数据字典的作用是什么?
确保开发人员使用统一的数据定义;
数据字典中有关系统的详细信息是系统设计、系统实施与维护的重要依据。
我印象最深的是,数据字典作为最终文档的一部分提交给用户,用在系统维护中。
3、数据字典用在信息系统分析与设计的哪个阶段?
不仅在系统的分析与设计过程中有用,而且在实现阶段经常被用来建立数据库。
数据字典之定义
数据库的重要部分是数据字典。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:
数据库中所有模式对象的信息,如表、视图、簇、及索引等。
分配多少空间,当前使用了多少空间等。
列的缺省值。
约束信息的完整性。
用户的名字。
用户及角色被授予的权限。
用户访问或使用的审计信息。
其它产生的数据库信息。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
数据字典定义以及组成
数据字典定义
数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。
数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。
数据字典可能包含的信息,
例如:
数据库设计资料
储存的SQL程序
用户权限
用户统计
数据库的过程中的信息
数据库增长统计
数据库性能统计
数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果.
数据字典通常包括数据项\数据结构\数据流\数据存储和处理过程五个部分.
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.
数据字段还有另一种含义,是在数据库设计时用到的一种工具,用来描述数据库中基本表的设计,主要包括字段名、数据类型、主键、外键等描述表的属性的内容。
编辑本段
数据字典的组成
数据字典的组成:
1、数据项
2、数据结构
3、数据流
4、数据存储
5、处理过程
数据字典
数据库的重要部分是数据字典。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:
1、数据库中所有模式对象的信息,
如表、视图、簇、及索引等。
2、分配多少空间,当前使用了多少空间等。
3、列的缺省值。
4、约束信息的完整性。
5、用户的名字。
6、用户及角色被授予的权限。
7、用户访问或使用的审计信息。
8、其它产生的数据库信息。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明
编辑本段
数据字典-数据库数据字典
是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.
组成:
1、数据项
2、数据结构
3、数据流
4、数据存储
5、处理过程
8.1.3 数据字典()
数据字典的作用是对数据流图中的各种成分进行详细说明,作为数据流图的细节补充,和数据流图一起构成完整的系统需求模型。数据字典一般应包括对数据项,数据结构、数据存储和数据处理的说明。以下列出本系统的主要数据字典条目。
1. 数据项条目
数据项编号:D01-001
数据项名称:凭证编号
别 名:凭证流水号
符 号 名:PZBH
数 据类 型:数值型
长 度:4
取 值范 围:1~9999
其余略。
2. 数据结构条目
数据结构编号:DS01-003
数据结构名称:会计分录
别 名:分录
简 述:记帐凭证的基本组成成分
组 成:科目代码+借贷方向+金额
其余略。
3. 数据存储条目
数据存储编号:F01
数据存储名称:记账凭证
来 源:由凭证处理产生
组 成:凭证日期+凭证类别+凭证编号+附件张数+
{会计分录}+制证+主管+审核
4.数据处理条目
加工编号 | P2.1 | 加工名称 | 记现金日记账 |
流入数据流:记账凭证 | |||
流出数据流:现金日记账 | |||
处理周期:每日一次 | |||
处理逻辑: 如果 记账凭证已经通过审核 则 对记账凭证中的所有收付凭证执行以下操作: 从记帐凭证中取收付凭证,判断会计分录的科目,若为现金科目,则登记现金日记账。登帐方法如下: 将凭证的日期,凭证类别,摘要分别记入日记账簿相应的栏内,根据发生方向,将金额记入帐簿的借方或贷方栏内,结出余额记入帐簿的余额栏内。将记帐凭证的相应分录作上已经记帐的标记。 否则 停止记账 |
理解什么是数据字典
每个Oracle数据库包括一个被称为“元数据”的集合,或者说包含用来描述数据库有关数据结构的数据。包含这些元数据的表和视图称为Oracle数据字典。
数据字典中有前缀V$或GV$的表是动态表,它们会不断更新以反映出Oracle数据库当前的状态。静态数据字典表都有一个形如DBA_、ALL_或USER_的前缀,表示该视图中列出的对象范围。
数据库组件 数据库字典中的表和视图
数据库 V$DATABASE
表空间 DBA_TABLESPACE,DBA_DATA_FILES,
DBA_FREE_SPACE
控制文件 V$CONTROLFILE,V$PARAMETER,
V$CONTROLFILE_RECORD_SECTION
数据文件 V$DATAFILE,V$DATAFILE_HEADER,V$FILESTAT,
DBA_DATA_FILES
段 DBA_SEGMENTS
数据范围 DBA_EXTENTS
日志线程、日志组和 V$THREAD,V$LOG,V$LOGFILE
日志序列号
归档状态 V$DATABASE,V$LOG,V$ARCHIVED_LOG,
V$ARCHIVE_DEST
数据库实例 V$INSTANCE,V$PARAMETER,
V$SYSTEM_PARAMETER
内存结构 V$SGA,V$SGASTAT,V$DB_OBJECT_CACHE,V$SQL,
V$SQLTEXT,V$SQLAREA
后台进程 V$BGPROCESS,V$SESSION
-----------------------------------------------------------------------------
数据字典就是一个用描述数据库中表的字段名,字段长度,字段说明等信息的文挡;
--------------------------
数据词典是对数据库里字段的一种描述,说明
--------------------------
数据字典就是存储数据库中基本元素的一个集合!它可以存储基本表的数据结构,存储过程,等等...
-------------------------
数据字典是一张表,记录某些数据库的信息
-------------------------
每个编程环境都有两个基本成分:程序逻辑—— 程序需要进行的工作说明—— 及数据。可以在程序内部,或者持久稳固地在外部以变量的方式临时保存数据,如文件或者数据库中。传统的文件结构需要开发员进行理解,然后描述文件结构,以使程序可以适当地访问,并且处理文件的字段或者记录。但是,在Oracle关系型数据库内部,整个数据库结构(包括它的表、视图、索引、用户、安全规则等)存储在一组特殊的表及视图中,称其为数据字典。
Oracle数据字典由特殊的用户账户所拥有,称其为SYS。SYS账户与Unix系统的根超级用户是一样的。通常开发员将永远不需要与共享数据库进行连接,作为特权账户。甚至不鼓励数据库管理员使用SYS账户进行任何工作,但是仅有很少的操作需要该等级的能力。如果您既是开发人员,又是DBA,或许在Oracle数据库的个人复制上,需要理解当作为SYS进行连接的时候,进行交互式的工作的潜在危机。
另外一个关于Oracle数据字典的普通条目将它的表存储在一些特殊的表空间(如SYSTEM以及SYSAUX)中。在这些特殊的表空间中,永远不创建其他的应用程序数据库对象。
Oracle数据字典的关键在于可以使用相同的SQL语言,在数据库内部访问应用程序的数据结构,对其进行访问。通常,直接地访问字典限于SELECT语句(永远不针对字典对象发布INSERT、UPDATE或者DELETE语句)。通过特殊的SQL语句间接地修改数据字典,通常称其为数据处理语言(DML)命令。DML语句,如CREATE TABLE、DROP INDEX、GRANT等,需要特殊的许可。它们通常由开发机构中的DBA来执行,该机构在DBA及开发人员之间进行责任分配。为了建立并且维护自己的数据库环境,独立地进行工作的学生或者开发人员将必须学习SLQ DML命令。
Oracle数据字典
数据字典是Oracle数据库安装之后,自动创建的一系列数据库对象。数据字典是Oracle数据库对象结构的元数据信息。熟悉和深入研究数据字典对象,可以很大程度的帮助我们了解Oracle内部机制。
Oracle字典视图包括四个层次,分别为X$内部表、基础数据字典表、数据字典视图和动态性能视图。
X$内部表
X$内部数据表的特征为以X$作为前缀,属于Oracle运行核心基础信息。X$数据表用于监控管理Oracle正常工作,维护核心功能。X$数据表含义、资源属于Oracle非公开保密信息。目前关于X$数据表的知识,都是诸多Oracle技术研究人员不懈努力探索的结果。X$数据表只能为SYS用户访问到,并且权限不能赋给其他用户。
SQL> show user;
User is "SYS" //当前用户为sys用户
SQL> desc x$bh;
Object x$bh does not exist.//使用desc描述x$bh
SQL> select count(*) from x$bh;//但是直接查询数据表x$bh,是有结果的
COUNT(*)
----------
9967
SQL> grant select on x$bh to scott;
grant select on x$bh to scott //不支持赋值
ORA-02030: 只能从固定的表/视图查询
SQL>
由于x$数据表的特殊性,给我们研究带来一些困难。比较常用的方法,是通过autotrace工具进行x$数据表作用的研究。
数据字典表
x$内部数据表的内容更倾向于维护Oracle实例正常工作,主要涉及到共享内存的管理和各个实例进程的工作。数据字典表($表)的内容用来记录数据表、索引、视图和数据文件等对象的内容。这部分字典表特征是以$结尾,如tab$、COL$和ts$等。
数据字典表是在数据库创建的时候,通过调用脚本创建。脚本在安装数据库之后,还保存在数据库服务器目录上。一般路径为$oracle_home/rdbms/admin,文件名为sql.bsq。sql.bsp是一个很重要的学习资源,其中定义了所有数据字典表的结构。
数据字典表是数据字典的基础,但是注意数据字典表的可读性较差。Oracle在设计数据字典表结构的时候,相对严格的遵守了范式规则,消除冗余。示例如下:
//以数据表空间tablespace数据字典为例
SQL> descts$;
Name Type Nullable Default Comments
------------- -------------- -------- ------- --------
TS# NUMBER
NAME VARCHAR2(30)
OWNER# NUMBER
ONLINE$ NUMBER
CONTENTS$ NUMBER
UNDOFILE# NUMBER Y
UNDOBLOCK# NUMBER Y
SQL> select ts#, name,owner#, undofile# from ts$;
TS# NAME OWNER# UNDOFILE#
---------- ------------------------------ ---------- ----------
0 SYSTEM 0 0
1 UNDOTBS1 0 0
2 SYSAUX 0 0
3 TEMP 0 0
4 USERS 0 0
5 UNDOTBS2 0 0
6 EXAMPLE 0 0
7 rows selected
//上面的结果中,owner#为一个数字类型的,不能直接使用,需要使用user$数据表进行解析;
SQL> select user#,name from user$ where user#=0;
USER# NAME
---------- ------------------------------
0 SYS
$数据字典是保存数据库结构的基础数据表。一般的DBA管理和信息获取,可以从后面的数据字典视图入手。
V$动态性能视图
v$动态视图是描述Oracle当前运行状态的一系列视图集合。这部分视图的特点是以v$开头,描述系统当前状态信息。常见常用的如v$session、v$session_wait(10g后,其中内容融入到v$session中)、v$lock和v$sysstat等。
v$视图传统上是代表系统当前状态的描述,也就是即时性视图。虽然可以描述当前系统中发生的瓶颈或者性能问题,但是当瓶颈接触之后,很难发现和分析过去一个事件点的系统状态和问题SQL。同时,如果需要对运行时间段的情况进行分析,采用时间段镜像snap技术也存在一些偶然性。
从oracle10g开始,v$动态视图进入了一个新的时代,可以保存v$session的历史信息。ASH(Active Session History)技术就是每个一个间隔的时间段,保存当前动态视图的镜像进行保存,这些信息保存7天。借助ASH技术,Oracle提出了基于历史进行分析的AWR(Automatic Workload Report)报表。最后,从性能主动优化的出发点,提出了ADDM(Automatic Database Diagnostic Monitor)报告,提供智能化的数据库优化提示。这些方便的功能特性,全都是基于动态视图。
v$动态视图主要是针对SGA和数据库实例进程的显示。在这个过程中,Oracle使用了DMA(Direct Memory Access)技术,可以高效的获取这些分析数据。
数据字典视图
数据字典视图是建立在X$数据表和数据字典表之上的一个视图层。这个视图层还v$视图层一样,是在数据库创建的时候自动执行的脚本。这个脚本名为catalog.sql,位于$oracle_home/rdbms/admin里。
数据字典视图解决了数据字典表可读性差等一系列缺点,是适合方便使用的视图层。字典视图最大的一个特点就是清晰的前缀结构,分为dba、all、user三种。对于一个对象信息,如数据表,有dba_tables,all_tables和user_tables三个版本。
ü user_对象视图:描述了当前用户schema下的对象;
ü all_对象视图:描述了当前用户有权限访问到的所有对象的信息;
ü dba_对象视图:包括了所有数据库对象的信息;
三层对象视图的视角在于owner的差异。通过不同的owner划分为不同的层次。user_视图中,是不包括owner列的。其他两类视图中,都有owner列表是对象的所属schema信息。
数据字典视图在Oracle角度上是公开的资源信息,所有的数据字典视图都可以在官方文档中找到对应的说明和解释。同时,这些视图都包括准确的comment信息。善于使用数据字典视图,可以帮助我们解决很多日常问题。
SQL> desc dba_tablespaces;
Name Type Nullable Default Comments
------------------------ ------------ -------- ------- --------------------------------------------------------------------
TABLESPACE_NAME VARCHAR2(30) Tablespace name
BLOCK_SIZE NUMBER Tablespace block size
INITIAL_EXTENT NUMBER Y Default initial extent size
NEXT_EXTENT NUMBER Y Default incremental extent size
MIN_EXTENTS NUMBER Default minimum number of extents
MAX_EXTENTS NUMBER Y Default maximum number of extents
PCT_INCREASE NUMBER Y Default percent increase for extent size
MIN_EXTLEN NUMBER Y Minimum extent size for the tablespace
STATUS VARCHAR2(9) Y Tablespace status: "ONLINE", "OFFLINE", or "READ ONLY"
CONTENTS VARCHAR2(9) Y Tablespace contents: "PERMANENT", or "TEMPORARY"
LOGGING VARCHAR2(9) Y Default logging attribute
FORCE_LOGGING VARCHAR2(3) Y Tablespace force logging mode
EXTENT_MANAGEMENT VARCHAR2(10) Y Extent management tracking: "DICTIONARY" or "LOCAL"
ALLOCATION_TYPE VARCHAR2(9) Y Type of extent allocation in effect for this tablespace
PLUGGED_IN VARCHAR2(3) Y
SEGMENT_SPACE_MANAGEMENT VARCHAR2(6) Y Segment space management tracking: "AUTO" or "MANUAL"
DEF_TAB_COMPRESSION VARCHAR2(8) Y Default compression enabled or not: "ENABLED" or "DISABLED"
RETENTION VARCHAR2(11) Y Undo tablespace retention: "GUARANTEE", "NOGUARANTEE" or "NOT APPLY"
BIGFILE VARCHAR2(3) Y Bigfile tablespace indicator: "YES" or "NO"
SQL>
这里要说明一下,并不是所有的对象都是有三层对象视图,有时候all_层视图是被省略掉的。比如我们之前在闪回中介绍的dba_recyclebin,就没有对应的all_层视图。
SQL> desc all_recyclebin;
Object all_recyclebin does not exist.
SQL> desc all_tablespaces;
Object all_tablespaces does not exist.
这个问题的解释也是可以接受的,一些对象是不存在授权的关系的。而且站在管理上看,一些对象可能还是有管理员dba或者对象创建者owner进行管理比较合适。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22492385/viewspace-718298/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22492385/viewspace-718298/