数据字典是什么?

数据字典是什么

在我们做的系统中,一般都会有这么个模块——数据字典。今天,我们要学习下这个模块是干啥用的,为啥要用数据字典,以及怎么去使用数据字典。

那么数据字典是什么呢?它是一个存放有数据库所用的有关信息,在数据库设计的初期将数据库中的各类数据的描述集合在一起,用于在开发,维护或者其他需要的时候使用,可以类比成我们现实中的字典。

数据字典通常包括:(l)数据项;(2)数据结构;(3)数据流;(4)数据存储;(5)处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。

而我们有的系统中,为系统的后台提供的数据字典。以同样的原则为用户提供了一系列的标准。(具体用法见下文。)用于一些特定的数据的规范化处理。这些数据除了通过专门的维护入口对它进行维护以外其他用户是不允许对数据字典中的数据进行操作的。

数据字典做什么

img

数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完盖。这是数据库设计中数据库的主要作用。开发和维护人员在遇到不了解的条目的时候,可以通过数据字典得到相应条目的解释,比如数据的类型,可能预先定义的值,及相关的文字性描述。这些解释可以减少数据之间的不兼容现象。

在开发的程序(系统)中的数据字典。可以帮助开发人员理解各个数据项目的类型、数值和它们与现实世界中的对象的关系。

而在已经投入使用的系统中的数据字典,更多的是用于规范化用户的数据输入。如,我们在使用12306进行网上订票的时候,我们输入的车站名称,是需要通过用户的输入,匹配到相应的车站,然后进行选择,得到精确的数据项进行输入,避免脏数据的产生。

img

如图所示,我在输入框中输入了北京,通过数据字典匹配到了红色框中的这些数据,通过选择其中的一个数据进行输入,然后得出一个精确的输入数据。规范了用户的输入,避免了用户输入错误数据对系统造成的不良影响。

数据字典的功能总结概括的话,就是使系统中的各项数据变的更加的严格。这样有利于降低因为数据问题而导致的系统出现bug的问题。

————————————————

版权声明:本文为CSDN博主「李亚松-」的原创文章



数据字典是指对数据的数据项数据结构数据流数据存储、处理逻辑等进行定义和描述,其目的是对数据流图中的各个元素作出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。

数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工进行更新内容的数据字典。

  • 中文名

    数据字典

  • 外文名

    Data dictionary

  • 相关学科

    数据库设计

  • 使用目的

    对数据流程图中各个元素做出说明

目录

  1. 1 简介
  2. 2 作用
  3. 3 分类
  4. 4 组成
  5. 5 描述

简介

数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。这个过程称为数据建模,结果产生一个对象关系图。当每个数据对象和项目都给出了一个描述性的名字之后,它的关系再进行描述(或者是成为潜在描述关系的结构中的一部分),然后再描述数据的类型(例如文本还是图像,或者是二进制数值),列出所有可能预先定义的数值,以及提供简单的文字性描述。这个集合被组织成书的形式用来参考,就叫做数据字典。

当开发用到数据模型的程序时,数据字典可以帮助你理解数据项适合结构中的哪个地方,它可能包含什么数值,以及数据项基本上表示现实世界中的什么意思。例如,一家银行或者是一个银行组织可能对客户银行业涉及的数据对象进行建模。他们需要给银行程序员提供数据字典。这个数据字典就描述了客户银行业中的数据模型每一个数据项(例如,“账户持有人”和“可用信用”)。 [1]

作用

数据字典最重要的作用是作为分析阶段的工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义,很有助于改进分析员和用户的通信。

数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。

分类

数据字典在需求分析阶段被建立。

数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。

数据字典可能包含的信息,例如:

数据库设计资料

数据内部储存的SQL程序

用户权限

用户统计

数据库的过程中的信息

数据库增长统计

数据库性能统计

数据字典则是系统中各类数据描述的集合,是进行详细的数据收集数据分析所获得的主要成果。

数据字典通常包括数据项\数据结构[数据流](https://baike.baidu.com/item/数据流)[数据存储](https://baike.baidu.com/item/数据存储)和处理过程五个部分。

其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义,来描述数据流、数据存储的逻辑内容。

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据字典还有另一种含义,是在数据库设计时用到的一种工具,用来描述数据库中基本表的设计,主要包括字段名数据类型主键外键等描述表的属性的内容。

Oracle数据库字典为例:数据字典分为数据字典表和数据字典视图

Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

数据字典表里的数据是Oracle系统存放的系统数据,而普通表存放的是用户的数据。为了方便的区别这些表,这些表的名字都是用"$"结尾,这些表属于SYS用户。

数据字典表由$ORACLE_HOME/rdbms/admin/sql.bsq 脚本创建, 这个脚本里又调用了其他的脚本来创建这些数据字典表。 在那些创建脚本里有基表的创建SQL。

Oracle 对数据字典表的说明:

These underlying tables store information about the database. Only Oracle Database should write to and read these tables. Users rarely access the base tables directly because they are normalized and most data is stored in a cryptic format.

这些数据字典表,只有Oracle 能够进行读写。

SYS用户下的这些数据字典表,存放在system 表空间下面,表名都用"$"结尾,为了便于用户对数据字典表的查询, Oracle对这些数据字典都分别建立了用户视图,这样即容易记住,还隐藏了数据字典表表之间的关系,Oracle针对这些对象的范围,分别把视图命名为DBA_XXXX, ALL_XXXX和USER_XXXX。

数据字典视图分2类:静态数据字典(静态性能视图) 和 动态数据字典(动态性能视图)。

静态数据字典中的视图分为三类,它们分别由三个前缀构成:user_、 all_、 dba_*。

user_*:该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)

all_*:该视图存储了当前用户能够访问的对象的信息, 而不是当前用户拥有的对象。(与user_相比,all_ 并不需要拥有该对象,只需要具有访问该对象的权限即可)

dba_*:该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

这些视图由SYS用户创建的,所以使用需要加上SYS,为了方便, Oracle为每个数据字典表的视图头建立了同名字的公共同义词(public synonyms). 这样简单的处理就省去了写sys.的麻烦。

除了静态数据字典中三类视图,其他的字典视图中主要的是V 视图,之所以这样叫是因为他们都是以 V 视图,之所以这样叫是因为他们都是以V 视图,之所以这样叫是因为他们都是以V或GV$开头的。这些视图会不断的进行更新,从而提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。

Throughout its operation, Oracle Database maintains a set of virtual tables that record current database activity. These views are calleddynamic performance views because they are continuously updated while a database is open and in use. The views, also sometimes calledV$ views。

V 视图是基于 X 视图是基于X 视图是基于X虚拟视图的。V$视图是SYS用户所拥有的,在缺省状况下,只有SYS用户和拥有DBA系统权限的用户可以看到所有的视图,没有DBA权限的用户可以看到USER_和ALL_视图,但不能看到DBA_视图。与DBA_,ALL,和USER_视图中面向数据库信息相反,这些视图可视的给出了面向实例的信息。

动态性能表用于记录当前数据库的活动,只存于数据库运行期间,实际的信息都取自内存和控制文件。 DBA可以使用动态视图来监视和调节数据。

组成

数据字典的组成:

1、数据项

2、数据结构

3、数据流

4、数据存储

5、处理过程

6、外部实体

数据字典

数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:

1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。

2、分配多少空间,当前使用多少空间等。

3、列的缺省值

4、约束信息的完整性。

5、用户的名字。

6、用户及角色被授予的权限

7、用户访问或使用的审计信息

8、其它产生的数据库信息。

数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。

数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。

关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明。

描述

数据字典各部分的描述

数据项:数据流图中数据块的数据结构中的数据项说明

数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:

数据项描述=数据项名,数据项含义说明,别名,数据类型,长度,

取值范围,取值含义,与其他数据项的逻辑关系

其中“取值范围”、“与其他数据项的逻辑关系”定义了数据的完整性约束条件,是设计数据检验功能的依据。

若干个数据项可以组成一个数据结构。

数据结构:数据流图中数据块的数据结构说明

数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:

数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}

数据流:数据流图中流线的说明

数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:

数据流描述=数据流名,说明,数据流来源,数据流去向,

组成:{数据结构},平均流量高峰期流量

其中“数据流来源”是说明该数据流来自哪个过程,即数据的来源。“数据流去向”是说明该数据流将到哪个过程去,即数据的去向。“平均流量”是指在单位时间(每天、每周、每月等)里的传输次数。“高峰期流量”则是指在高峰时期的数据流量。

数据存储:数据流图中数据块的存储特性说明

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:

数据存储描述=数据存储名,说明,编号,流入的数据流,流出的数据流,

组成:{数据结构},数据量,存取方式

其中“数据量”是指每次存取多少数据,每天(或每小时、每周等)存取几次等信息。“存取方法”包括是批处理,还是联机处理;是检索还是更新;是顺序检索还是随机检索等。

另外“流入的数据流”要指出其来源,“流出的数据流”要指出其去向。

处理过程:数据流图中功能块的说明

数据字典中只需要描述处理过程的说明性信息,通常包括以下内容:

处理过程描述={处理过程名,说明,输入数据流,输出数据流},

处理:{简要说明}

其中“简要说明”中主要说明该处理过程的功能及处理要求。功能是指该处理过程用来做什么(并不是怎么样做);处理要求包括处理频度要求,如单位时间里处理多少事务,多少数据量,响应时间要求等,这些处理要求是后面物理设计的输入及性能评价的标准。

猜你喜欢

转载自blog.csdn.net/qq_41854911/article/details/131366604