数据字典的主要作用是什么?

您所在的位置:网站首页 数据库系统组成部分的作用 数据字典的主要作用是什么?

数据字典的主要作用是什么?

2024-07-12 05:38| 来源: 网络整理| 查看: 265

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。数据字典的主要作用:数据字典和数据流图共同构成系统的逻辑模型。没有流图数据字典难以发挥作用。没有数据字典,数据流图就不严格。

下面是个高手写的感觉还不错

软件工程之项目管理中的数据字典的重要意义 http://blog.csdn.net/goldou/article/details/2110944 有幸听过郎咸平的演讲。尽管这个人很有争议。但他说的话,不无道理。他说,在美国,全美的商学院都用到的是统一的教材。用统一的教材有什么好处呢,那就是它建立一个交流的平台。他说,美国商业运转得以如此顺畅,和标准统一有很大的关系。试想一想,美国的MBA和中国的MBA由于教材的不同,交流肯定会有些困难。

以上和我们软件工程项目开发有什么关系呢?当然有,那就是软件开发也需要有一个统一的标准,用什么来统一呢,数据字典。在这里,数据字典的含义更宽泛一些,非只为数据库中的字典。

在我所在的项目开发小组中,我们工作的依据是一个设计好的UML图,通过版本控制数据库来共享。它包含了项目原型的类图、序列图等。在开发过程中,我发现这十分有用,但我同时发现我们项目中还少了一个类似数据字典的东西。

我们用到的一些数据结构杂乱的位于UML类图中,一些事件、命令类型则无法放入这个中心文档。在项目往前推进的时候,一些新的数据结构出现,其中的一些自定义的类型的设计者对其注释又往往过于简单。也就是说,只有设计者知晓意义。这样的话,很显然,其它项目成员要用到这个数据结构,必须和设计者交流。这时,设计者开会去了,你的代码必须今天完成。那怎么办?

所以,在你所写的程序的开头列出一个数据字典十分的重要.数据字典列举了你在本程序中用到的所有变量的定义,还包括一些自定义的事件、命令的说明。它的定义应包括本条目的所要描述的内容和它在执行时所在的单元。当编写程序时,编定数据字典看似没有必要。但是设想一下,在过了一段时间后,你或其他人要对此程序修改,这时数据字典就显得十分的有用。

数据字典的一些定义:

一、数据字典的用途   数据字典是各类数据描述的集合   数据字典是进行详细的数据收集和数据分析所获得的主要结果   数据字典在数据库设计中占有很重要的地位 二、数据字典的内容   数据字典的内容:数据项;数据结构;数据流;数据存储;处理过程。数据项是数据的   最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结   构的定义来描述数据流、数据存储的逻辑内容。

我的想法是:在项目的初期,就开始设计一个数据字典,其中包含和项目密切相关的各种结构、类型定义。在开发过程中,由项目成员共同维护。它像一个字典,你可以查询任何在项目中你无法理解的各种结构、类型定义,从而最大程度的消除歧义和交流不畅问题。一个word文档就好,通过代码版本控制来共享。

我想这个问题在大项目中执行的很好,但小项目通常被忽略掉了。

为啥这么说呢? 其实也是有原因的,这个发现的问题也是特别多的!比如车辆的类型,刚刚开始的时候只用两种,之后又增加了,写死的东西怎么办,到处都要更改!使用字典的话,直接遍历数据库,通过你需要的type直接的,不用管你有多少,之后又要增加多少,扩展性很强! 这里写图片描述

这样非常的方便,我们只需要写个操作的类实现三层结构,直接注入依赖就好了!

package com.hikvision.cms.pms.modules.config.entity; import java.io.Serializable; import java.util.Date; public class Dictionary implements Serializable { private static final long serialVersionUID = 5870500754198757136L; private Integer id; private String type; private String code; private String name; private Integer status; private Integer isDefault;//这里是通过这个bool类型进行树节点的区分,非常的棒! private Date createTime; private Date updateTime; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public Integer getIsDefault() { return isDefault; } public void setIsDefault(Integer isDefault) { this.isDefault = isDefault; } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3