数据字典功能

2023-11-04

1. 什么是数据字典


数据字典存储有关数据的来源、说明、与其他数据的关系、用途和格式等信息,它本身就
是一个数据库,存储“关于数据项的数据”。数据字典是个指南,它为数据库提供了“路线图”,
而不是“原始数据”。换句话说,数据字典通常是指数据库中数据定义的一种记录,类似一个
数据库的数据结构,但其内容要比数据库的数据结构描述丰富得多(Malamud, 1989)。
在收集有关数据信息,建立数据库的初始阶段,必须建立数据项的命名约定,必须统一不同部
门、不同个人之间对共同关心的数据的内涵、来源和命名的观念。这个过程要涉及数据监管人、
用户和数据库开发人员,是一个需要反复多次的过程。这个统一的命名约定,及其附带的说明,
就是数据字典。

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

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


2. 建立数据字典的目的


建立数据字典有以下几个目的:
1)提高开发效率,降低研制成本。数据字典是数据库开发者、数据监管人和用户之间的共同
约定,是系统说明书的一个重要组成部分。一个统一的数据字典有助于开发者建立数据模型
以及程序和数据库之间的数据转换接口,为规范化设计和实施数据管理系统铺平了道路。
2)促进数据共享,提高数据的使用效率。通过数据字典,用户可以方便地知道每项数据的意
义,了解数据的来源和使用方法,从而帮助用户迅速地找到所需的信息,并按照正确的方法
使用数据。
3)控制数据的使用。在某些特定的场合,可以通过对数据字典的控制达到控制数据使用的目的。


3. 数据字典的内容(了解)


一个完整的数据字典至少应当包括以下内容:
数据集(系统)名称 数据集(系统)的正式名称
数据库名称 数据库文件的名称
数据名称 数据项的名称
数据存储名称 数据字段的名称
数据类型 数据的类型,如数字类型等
数据说明 关于数据含义的说明
数据存储长度 在计算机中数据存储的空间,用字节(BYTE)表示
单位 数据的测量单位
代码说明 使用的代码体系及编码规则
精密度 有效数字最低位数的位置
准确度 有效数字位数
数据的下限 数据合理的下限
数据的上限 数据合理的上限
获得数据的手段 数据测量的方法或引用的来源
时间和/或环境 获得数据的时间和/或环境
数据的例子 一个数据的实例
备注 其他要补充的说明


4. 数据字典的建立过程(了解)


建立数据库管理系统的第一步是用户需求分析。通过系统开发人员和未来用户的相互交
流,用户需求分析的结果被反映在《系统功能说明书》里。《系统功能说明书》详细地列
出原始数据的内容、格式和来源,并且对数据处理的过程给出详细的描述。数据处理后产
出的信息应当满足最终用户的信息需求。这个说明书只说明拟建立的系统的功能和处理能
力,而不讨论怎样用硬件、软件、网络以及设备之间的连接等具体手段实现这些功能。
在这个过程中,开发人员要和不同的用户部门进行多次的讨论,可能还要征求有关的
同行业专家的意见,找到不同部门之间对数据的用途、相互关系和意义的不同理解,辨认
出数据元的同义词。对于输出数据,一方面要考虑现有数据的状况、测量手段和数据处理
手段,另一方面还应当考虑用户对产出信息的要求,如有必要,需要对数据获取和处理的
手段进行调整。
在用户需求分析阶段,对原始数据和产出数据进行描述时,不必注意数据在计算机中的
具体的存储方式和数据处理的系统。但随着设计过程的进展,必须将数据的概念和逻辑与
数据模型和实际的实现方式联系起来。这时,数据在系统中的标识符(数据项或字段名称)
、存储类型(数据项或字段类型)和存储空间(数据项或字段长度)就必须确定下来,
以达到数据输入、存储、显示、交换和处理等功能模块的需要。 
在设计阶段结束时,把系统输入和输出数据的说明和存储信息集中起来,使有关人员
在进行涉及这些数据的工作时,有一个统一的概念和理解,这样就形成了数据字典。
在系统完成之前,数据字典帮助系统开发人员理解真实世界,规范数据系统内数据处理
的过程,使系统分析员、系统程序员、应用程序员和数据监管人员之间有共同的语言;在
系统完成以后,数据字典帮助用户理解数据系统的功能,各项输入输出数据的意义,使用
户、数据监管人和审计人员有共同语言,促进数据的使用和流通,达到数据共享的目的。

 

数据字典的用例:(理解: 数据字典中的数据是管理员设计好,填写的,一般不会更改的数据,根据类型归类,并同一类型的typeCode相同,同一类型有包含不同的valueId,即对应不同的valeName,可以理解为归类typeCode和valueId的对应表,可以根据需要查出对应type的对应value)

 

1      数据字典 

 1.1     什么是数据字典

        将如下这些具有相同类型的配置项,配置到系统的数据字典表中,方便系统维护,由超级管理员统一在后台进行数据字典维护,如果用户需求要增加变更配置项,只需要修改数据字典表记录即可,不需要修改代码。

1.2     数据字典需求

相同类型的配置项:(例如:医院类型、药品类型)

在系统中创建一个张记录数据字典名称类型  数据字典类型表记录数据类型(例如用户状态)

创建一张表记录数据字典明细:(例如用户状态为正常  暂停)

数据字典明细表

将上边变化灵活的配置项叫做:“普通配置项”

将上边固定的配置项(每个配置顶都有一个代码):“业务代码”

1.3     数据字典表结构

字典类型表DICTTYPE:

记录数据字典类型

字典明细表DICTINFO:

记录数据字典明细    

字典明表中如何存储普通配置项和业务代码。

普通配置项存储:

普通配置项名称存储在DICTINFO表中info字段

普通配置项对应的类型id存储在DICTINFO表中TYPECODE

查询普通配置顶:

æ°æ®å­å¸åå¶ä½¿ç¨

业务代码存储:

业务代码对应的名称存储在DICTINFO表中info字段

业务代码对应的类型id存储在DICTINFO表中TYPECODE

业务代码存储在DICTINFO表中DICTCODE(是和普通配置顶的区别)

业务代码查询:

æ°æ®å­å¸åå¶ä½¿ç¨

1.4     数据字典使用

1、在页面上的下拉框中显示业务代码或普通配置

比如:在系统用户查询页面,查询条件就是用户类型,用户类型不能在jsp上硬编码,需要在action方法中取出用户类型所有配置项,在jsp页面动态遍历。

2、在查询业务表需要关联查询出业务代码对应的名称

在查询业务表时,根据业务代码,关联查询出代码对应的名称。

关联查询字典明细时指定业务代码和类型id

æ°æ®å­å¸åå¶ä½¿ç¨

3、在查询业务表需要关联查询出普通配置项所对应的名称

关联查询字典明细时指定明细表的主键

æ°æ®å­å¸åå¶ä½¿ç¨

1.5     小结

普通配置项:对业务数据进行简单的归类,这些归类受用户要求变化较灵活,将这些配置项作普通配置项配置数据字典表。

业务代码:系统运行所必须的,在系统设计时定义的固定代码,这些代码可能需要在程序代码进行硬编码。

1.6     数据字典在系统中应用

1.6.1          用户查询页面用户类型下拉框

用户类型:属于业务代码

获取用户类型下所有明细:

从数据字典明细表查询,根据typecode查询

æ°æ®å­å¸åå¶ä½¿ç¨

Action:

修改用户查询页面方法,调用systemConfigService查询用户类型信息,将用户类型列表信息传入页面。  

 // 用户查询页面

   @RequestMapping("/queryuser")

   public String queryuser(Modelmodel) throwsException {

      // 将页面所需的数据取出传入页面

      List<Dictinfo>groupList =systemConfigService.findDictinfoByType("s01");

     

      model.addAttribute("groupList",groupList);

      return "/base/user/queryuser";

   }

 

页面:

将用户类型下拉框值,改成遍历groupList列表。

<TD class="left">用户类型:</TD>

                <td><select name="sysuserCustom.groupid">

                      <option value="">请选择</option>

                      <!-- <option value="1">卫生局</option>

                      <optionvalue="2">卫生院</option>

                      <optionvalue="3">卫生室</option>

                      <optionvalue="4">供货商</option>

                      <optionvalue="0">系统管理员</option> -->

                      <c:forEach items='${groupList}' var="dictinfo">

                      <option value="${dictinfo.dictcode}">${dictinfo.info}</option>

                      </c:forEach>                  

                </select>

                </TD>

1.6.2          用户查询列表中用户类型列

Dao:

修改用户查询列表mapper,添加一列需要关联用户类型的代码查询代码对应的名称。

æ°æ®å­å¸åå¶ä½¿ç¨

页面:

修改datagrid的列定义,

{

      field : 'groupname',//对应json中的key

      title : '用户类型',

      width : 120,

      /* formatter : function(value, row,index) {//通过此方法格式化显示内容,value表示从json中取出该单元格的值,row表示这一行的数据,是一个对象,index:行的序号

         if(value =='1'){

            return "卫生局";

         }else if(value =='2'){

            return "卫生院";

         }else if(value =='3'){

            return "卫生室";

         }else if(value =='4'){

            return "供货商";

         }else if(value =='0'){

            return "系统管理员";

         }

      } */

   }

普通配置项下拉框

查询出普通配置项列表,

页面中下拉框遍历list(option的value是${dictinfo.id})

<c:forEach items="${list}" var="dictinfo">

                      <option value="${dictinfo.id }">${dictinfo.info}</option>

</c:forEach>

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据字典功能 的相关文章

  • Paxos与2PC

    Paxos与2PC Paxos协议和2PC协议在分布式系统中所起的作用并不相同 Paxos协议用于保证同一个数据分片的多个副本之间的数据一致性 当这些副本分布到不同的数据中心时 这个需求尤其强烈 2PC协议用于保证属于多个数据分片上的操作的
  • Winclone Pro for Mac(Windows分区备份还原工具)

    Winclone Pro for Mac一款Windows分区备份还原工具 winclone pro mac版保护您的Boot Camp Windows系统免受数据丢失以及将Boot Camp分区移动到新Mac的完整解决方案 Winclon
  • java返回值float_Java Float类的compare()方法与示例

    Float类compare 方法compare 方法在java lang包中可用 compare 方法用于检查给定两个浮点值的相等或不相等 换句话说 可以说此方法用于比较两个浮点值 compare 方法是一个静态方法 也可以使用类名进行访问
  • 爬虫手册05 异步爬虫

    异步爬虫 目标 例举asyncio和aiohttp模块的常规用法代码 关于协程概念参考 https blog csdn net weixin 40743639 article details 122394616 spm 1001 2014
  • 线程安全同步问题

    需求 模拟3个窗口同时在售50张 票 问题1 为什么50张票被卖出了150次 出现 的原因 因为num是非静态的 非静态的成员变量数据是在每个对象中都会维护一份数据的 三个线程对象就会有三份 解决方案 把num票数共享出来给三个线程对象使用
  • Unity3D打包发生错误 "The type or namespace name `UnityEditor' could not be found"(小心使用)

    这句话是说明UnityEditor未发现 主要是某个脚本里写了关于Editor相关的函数 首先我们需要知道 使用UnityEditor的时候 一般是在自己项目调试运行的时候使用 而打包出来生成文件的时候 这个命令是没法在文件中使用的 所以就
  • 陷波器的离散化及仿真验证

    一 陷波器在连续域的传递函数 1 最基本的陷波器传函 1 其中 wo 是所谓 中心频率 也就是你想要 陷掉 的频率 而 则是 陷阱 的宽度 根据公式可以发现 当输入信号频率很小 s 0 或者很大 s 的时候 上面式子的值是1 当输入信号频率
  • IT项目管理大作业个人报告

    承担角色 1 学习资源共享平台项目分析与设计 整合前期研究文档 编写学习资源共享平台的项目分析与设计报告 给出了我们大作业项目的项目背景 需求概述 功能设计以及与国内相似产品的对比 整合队员们的文档 成果可见 https github co
  • Numpy&Pandas 数据处理与挖掘

    笔记来源B站 https www bilibili com video BV1xt411v7z9 p 21 python学习笔记 1 Numpy 1 1 Numpy优势 1 1 1 Numpy介绍 1 1 2 ndarray介绍 1 1 3
  • ​LeetCode刷题实战88:合并两个有序数组

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 合并两个有序数组 我们先来看题
  • 1002 A+B for Polynomials (25分) PAT_A

    1002 A B for Polynomials 25分 This time you are supposed to find A B where A and B are two polynomials Input Specificatio
  • AD20(Altium designer) PCB图元件位号不显示

    别人发来了一份PCB图 元件位号不显示记录下原因 1 单击红框中黄色的方块 2 弹出的窗口中点击Texts的小眼睛就可以啦
  • 四、vim高级用法配置

    四 vim高级用法配置 4 1 vim的三种模式 vim是全球两大流行文本编辑器之一 vim file 直接编辑文件内容 vim wq 文件存在 wq file 文件不存在 vim模式 1 命令模式 浏览模式 此模式下只能对文件内容浏览 对
  • v-for里面再嵌套一个v-for的写法

    v for里面再嵌套一个v for的写法 list id goods images product desc div class listContent span item create time i formatDate span div
  • 什么是深度学习?怎么学好深度学习?

    深度学习 是一种强大的多层架构 可以用于模式识别 信号检测以及分类或预测等多个领域 深度学习在过去十年获得了极高的关注 这归功于计算能力的不断发展和训练模型不断涌现出更有效的新方法 也源于可使用的数据量不断增加 什么是深度学习 为了理解深度
  • HBase启动RegionServer时报UnknownHostException错误的解决方法

    HBase启动RegionServer时报错 ERROR main regionserver HRegionServer Failed construction RegionServer java lang IllegalArgumentE
  • C++ string 类中方法 size() 和 length() 的区别

    首先说明 在C string类中 size 和length 方法是没有任何区别的 我们可以看 Microsoft Visual Studio 10 0 VC include xstring 文件 转到此两个方法的定义 size type l
  • Python3——matplotlib条形图的绘制

    实验环境 python 3 6 matplotlib 2 2 3 条形图的绘制 matplotlib pyplot bar left height alpha 1 width 0 8 color edgecolor label lw 3 1
  • 比df更好用的命令!

    大家好 我是良许 对于分析磁盘使用情况 有两个非常好用的命令 du 和 df 简单来说 这两个命令的作用是这样的 du 命令 它是英文单词 disk usage 的简写 主要用于查看文件与目录占用多少磁盘空间 df 命令 它是英文单词 di
  • 【SSH框架】慎用hibernate中的saveOrUpdate()方法,解决方案!

    今天写的项目中遇到一个异常 org springframework orm hibernate5 HibernateOptimisticLockingFailureException Batch update returned unexpe

随机推荐

  • 【马克思主义基本原理】--第二章--实践与认识及其发展规律

    实践与认识及其发展规律 文章目录 实践与认识及其发展规律 科学实践观 实践的本质与基本结构 真理和价值的辩证 科学实践观 马克思科学阐明了人类实践的本质和作用 创立了科学的实践观 科学的实践观是不断丰富发展的 总之 科学实践观从主观和客观
  • VS2017评估期已过的处理方法

    Visual Studio 2017 VS2017 企业版 Enterprise 注册码 NJVYC BMHX2 G77MM 4XJMR 6Q8QF Visual Studio 2017 VS2017 专业版Professional 激活码
  • r730xd服务器文档,r730xd配置服务器远程

    r730xd配置服务器远程 内容精选 换一换 如果默认的yum apt zypper源不可用 工具安装过程中会从华为开源镜像站匹配对应的镜像文件 并给出下载地址 如果没有匹配到 请自行获取对应操作系统版本的镜像文件 镜像文件名称请参见鲲鹏开
  • request.getRequestDispatcher(url) /error 404

    二 使用语法 request getRequestDispatcher 资源URI forward request response response sendRedirect web应用 资源URI 在进行web开发时 跳转是最常见的 包
  • Next 主题配置

    当前用得最多的是next主题 那为什么用得多呢 当然是符合大多数人的审美 我使用的是next v7 8 0 下载地址 theme next hexo theme next 1 基本设置 1 1 主题设置 打开博客根目录 Blog 文件夹 右
  • proteus仿真STM32串口的各种问题和解决办法

    最近在学习STM32串口通信 想试试能不能用proteus仿真 发现还是有挺多问题的 刚一开始在原理图放个STM32就报错 通过查阅资料才知道 选择 Design gt Configure Power Rails 添加到VCC VDD里头既
  • 测试开发必备10大技能,你达标了吗?

    一个人到底要走多少弯路 才能成为一名合格的测试开发工程师 近年来 随着敏捷开发 微服务架构 DevOps逐渐深入人心 软件行业发生了翻天覆地的变化 相应地 软件测试行业也洗牌加剧 软件测试的准入门槛 也从以前的是个人就行 逐渐变成了 科班出
  • JAVA————一门强大的面向对象编程语言

    JAVA 一门强大的面向对象编程语言 Java是一门面向对象编程语言 不仅吸收了C 语言的各种优点 还摒弃了C 里难以理解的多继承 指针等概念 因此Java语言具有功能强大和简单易用两个特征 Java语言作为静态面向对象编程语言的代表 极好
  • 卷积神经网络实现人脸表情识别

    文章目录 一 实现过程 1 1 下载数据集 1 2 根据猫狗数据集训练的方法来训练笑脸数据集 1 2 图片分类 1 3 作为健全性检查 计算一下在每个训练分割中我们有多少图片 训练 验证 测试 1 4 卷积网络模型搭建 1 5 图像生成器读
  • ClassCastException: java.math.BigInteter cannot be cast to java.math.BigDecimal

    原文链接 https blog csdn net huxiaochao 6053 java article details 84750905 java Math BigInteger转 int类型 使用spring data jpa 查询数
  • kmeans总结

    1 关于分类和聚类 kmeans属于聚类算法中的一种 分类和聚类是不同的概念 虽然两者的目的都是对数据进行分类 但是却有一定的区别 分类是按照某种标准给对象贴标签 再根据标签来区分归类 聚类是事先没有给出标签 刚开始并不知道如何对数据分类
  • 06功能之读取文件统计数字的次数(hash_map存储)

    06功能之读取文件统计数字的次数 hash map存储 1 思路分析 1 每次将读取到的数字存在字符数组 2 从字符数组截取实际长度保存成string对象 3 建立hans map
  • 【0304】密码分类

    密码学基本概念 密码学的主要任务 为存储和传输中的信息提供信息安全保护 解决 1 机密性 如何使信息让授权的人能看懂 别人看不懂 2 可鉴别性 3 完整性 包括不可修改 4 抗抵赖性 密码学 密码编码学 寻求有效密码算法和协议 密码分析学
  • GB28181-2022注册注销基本要求、注册重定向解读和技术实现

    规范解读 GB28181 2022注册 注销基本要求相对GB28181 2016版本 做了一定的调整 新调整的部分如下 更改了注册和注销基本要求 见 9 1 1 2016 年版的 9 1 1 1 增加对NAT模式网络传输要求 宜增加TCP传
  • openEuler22.03启动提示错误:Failed to execute /sbin/init、Failed to execute /bin/sh,无法进入系统

    现象描述 openEuler服务器重启后 提示如下错误 定位思路 首先查看提示到的sh和init是否存在 如果存在 他们的权限是否跟正常机器一致 处理步骤 挂载光盘 进入救援模式 点击rescue的 选1 之后提示报错 救援模式无法进入 换
  • ES6字符串的扩展

    1 模板字符串 2 打印输出结果
  • java web 字体颜色循环变化 js实现

    setInterval 函数 设定颜色刷新的时间间隔 div h2 class title 天黑 h2 h4 请睁眼 h4 div js部分
  • rv1126-A/B升级方案报错

    一 修改配置 打开device rockchip RV1126 RV1109 BoardConfig mk 将RK Uboot DEFCONFIG配置成rv1126 ab 二 修改分区参数 根据mkfirmware sh文件中的参数PARA
  • JAVA机试题图书管理系统----三层架构模式

    通过Java程序实现图书管理系统 一 功能如下 使用一维数组 1 实现新增图书功能 2 实现查询图书功能 3 删除图书功能 二 具体实现 图书类包括 图书名称 价格 借出状态 int类型0表示己借出1表示未借出 借出日期 4个数组 管理类包
  • 数据字典功能

    1 什么是数据字典 数据字典存储有关数据的来源 说明 与其他数据的关系 用途和格式等信息 它本身就 是一个数据库 存储 关于数据项的数据 数据字典是个指南 它为数据库提供了 路线图 而不是 原始数据 换句话说 数据字典通常是指数据库中数据定