数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
数据字典的主要作用:数据字典和数据流图共同构成系统的逻辑模型。没有流图数据字典难以发挥作用。没有数据字典,数据流图就不严格。
数据字典(Data dictionary):是一种用户可以访问的记录数据库和应用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。
通俗理解数据字典:
在软件工程之项目管理中的数据字典的重要意义:
http://blog.csdn.net/goldou/article/details/2110944
https://blog.csdn.net/u012881904/article/details/51469366
有幸听过郎咸平的演讲。尽管这个人很有争议。但他说的话,不无道理。他说,在美国,全美的商学院都用到的是统一的教材。用统一的教材有什么好处呢,那就是它建立一个交流的平台。他说,美国商业运转得以如此顺畅,和标准统一有很大的关系。试想一想,美国的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; } }
数据字典定义 (百度百科)
数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。
分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。这个过程称为数据建模,结果产生一个对象关系图。
当每个数据对象和项目都给出了一个描述性的名字之后,它的关系再进行描述(或者是成为潜在描述关系的结构中的一部分),然后再描述数据的类型(例如文本还是图像,或者是二进制数值),列出所有可能预先定义的数值,以及提供简单的文字性描述。这个集合被组织成书的形式用来参考,就叫做数据字典。
简单数据字典定义
以学生为实例:学生个人信息表,学生所属院系表,学生成绩表
数据字典常用字段:
- 字段
- 描述
- 数据类型
- 约束
创建数据字典:
参考:https://blog.csdn.net/u012881904/article/details/51469366
https://blog.csdn.net/baidu_37107022/article/details/73497916