zoukankan      html  css  js  c++  java
  • 数据字典的含义及主要作用是什么?

    数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
    数据字典(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;
        }
    
    }
    ————————————————
    
    原文链接:https://blog.csdn.net/u012881904/article/details/51469366
  • 相关阅读:
    在Xbox和Hololens 上部署、调试UWP App
    淘宝UWP中的100个为什么
    小娜追踪快递
    页面与ViewModel(下)
    页面与ViewModel(上)
    wxpython缩放图片
    java中Swing的GridBagLayout使用简介
    java中Swing组件设置容器随着窗体变化而自适应
    java中swing组件设置icon自适应按钮大小
    nginx开启网站目录浏览功能
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/12024832.html
Copyright © 2011-2022 走看看