数据字典的理解_数据字典就是数据库表吗-程序员宅基地

数据字典的理解

1.什么叫数据字典

数据字典通俗上讲就是将数据抽象为字典的形式存储。

想要理解数据字典首先我们要了解什么叫做字典,字典的构成,字典的作用,这些我们弄懂了基本上数据字典的概念大致也就弄懂了。

从字典的构成理解:

字典都是以键值对的方式来存储和查阅。所以数据字典必定也是以键值对的方式存储和查阅。假如我们不认识“任”这个字,想想我们使用字典查“任”这个字的时候首先查的是“亻”偏旁部首,然后看到很多“亻”字旁的字,比如说“任“、“仁”等。同样的数据字典存储的是数据,比如说存储的是很多种水果的数据,而我们将这些共性抽象出来那就是水果,然后我们直接查”水果“就可以查看这些数据。当然这只是一种很简单的假设,真正的数据字典比这要复杂。

从字典的作用理解

字典最大的作用就是将信息集合起来,抽象为键值对的形式方便人们搜索查阅,所以数据字典最大的作用也是为了方便对数据的查阅。

字典的使用对象为人,而数据字典的使用对象就包括人和系统。对于系统来说数据字典是数据库中的表,它存放数据库所有的有关信息,对用户来说是一组只读的表。

2.为什么要建立数据字典

说到这里大家可能对数据字典有了初次认识。接下来就从专业的角度讲讲数据字典的作用。

在做一个系统前首先要做的是需求分析,需求分析包括系统功能分析,而功能的实现需要数据的支撑,用户和系统之间的交互也需要数据的支撑。而如何存储,处理,显示这些数据将是一个难题。 在用户需求分析阶段,对原始数据和产出数据进行描述时,不必注意数据在计算机中的具体的存储方式和数据处理的系统。但随着设计过程的进展,必须将数据的概念和逻辑与数据模型和实际的实现方式联系起来。

但是在需求分析结束后数据字典就必须定下来了,在构建系统的时候数据字典可以方便各方人员更好的交流。比如说开发人员通过数据字典知道了对应的代码在现实中的意思,这样就可以更人性化的设计系统。在系统构建完毕后,数据字典可以帮助用户理解数据系统的功能,各项输入输出数据的意义, 使用户、数据监管人和审计人员有共同语言,促进数据的使用和流通,达到数据共享的目的。

3.数据字典页面的显示

假设一个医院管理系统数据字典页面从大体上分为两部分:

  1. 数据字典类型——比如说包括“药品类别”,“药品交易状态”,“医院类型”等配置项。
  2. 数据字典明细——对应的“药品类别”的明细,“药品交易状态”的明细等。

既然是一个系统肯定包括增删查改的功能,其中根据用户的业务需求可以更改的配置项叫做“普通配置项”,比如说“药品类别”的明细可以根据用户的需求来增加或者删除,其中用代码固定下来表示的配置项叫做“业务代码”,比如说“药品交易状态”用代码1表示交易未完成,0表示交易完成。

普通配置项:就是给用户显示的内容,用户可以根据需求更改

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

4.数据字典表结构

数据字典表的设计和页面的显示差不多也包括字典类型表和字典明细表。

  1. 字典类型表(DICTTYPE)

    TYPECODE:类型id 主键

    TYPENAME: 类型名称

  2. 字典明细表 (DICTINFO)

    ID : 主键

    TYPECODE:外键

    DICTCODE:业务代码

    INFO:配置项名称

其实这两张表比较简单,只是用了主外键来关联两张表之间的关系,其中业务代码就是代表上边说的页面中用代码固定下来表示的配置项中的内容。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42586468/article/details/103997010

智能推荐

Android Studio一个项目引入另一个项目作为依赖Libary(富文本编辑器版本)_android 如果引用一个项目作为lib-程序员宅基地

文章浏览阅读975次。文章目录一、源码,详见地址二、实践篇1、导入依赖项目​2、配置添加依赖项目3、把依赖项目设置为兼容的library(错误解决)声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!大概是在去年12月份写了一篇这样的文章,最近参照来看发现看的有些费劲,因为当时用的Markdown编辑器所以编辑和排版都相对比较麻烦不好观看,所以决定重新写一..._android 如果引用一个项目作为lib

Quartz_quartz毕设参考文献-程序员宅基地

文章浏览阅读97次。这里是修真院后端小课堂,每篇分享文从八个方面深度解析后端知识/技能,本篇分享的是:【Quartz】【修真院Java小课堂】任务调度-Quartz开场语:大家好,我是IT修真院北京分院第32期的学员廖友,一枚正直纯洁善良的Java程序员,今天给大家分享一下,修真院官网Java任务十中的知识点——任务调度-Quartz一、背景介绍:1、任务调度概念任务调度是指基于给定时间点,给定时间间..._quartz毕设参考文献

linux系统下无法用SecureCRT及putty工具远程登录系统方法-程序员宅基地

文章浏览阅读191次。一般情况下,我们安装好了linux系统,都希望通过工具能够进行远程管理,这样可以方便许多,但是有时候却无法通过这些工具连接,主要是由于我们没有安装远程的服务,如ssh及telnet这2个服务!命令方式安装:sudo apt-get install ssh 安装telnet方法:sudo apt-get install telnet Telnet..._linux不能通过工具访问远程

The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You mu-程序员宅基地

文章浏览阅读174次。在做springboot连接数据库时:方案1:在项目代码-数据库连接URL后,加上 (注意大小写必须一致)?serverTimezone=UTC方案2:在mysql中设置时区,默认为SYSTEM set global time_zone='+8:00'错误原因:使用了Mysql Connector/J 6.x以上的版本,然set global time_zone='+8:0...

解决经过zuul网关,文件上传失败问题_zuul网关 file not allowed to upload!-程序员宅基地

文章浏览阅读4.1k次。在Spring Cloud Zuul中,Zuul本身有几个核心过滤器源码如下:其中 ServletDetectionFilter优先级最高 为-3 ,所以最先执行,这个核心过滤器只是做了一个判断当前请求是通过Spring的DispatcherServlet处理运行,还是通过ZuulServlet来处理运行,并把结果放回上下文中。一般般情况下,发送到API网关的外部请求都会被Spring..._zuul网关 file not allowed to upload!

使用Python 进行串口通信过程记录——PySerial安装_phthon 脱机安装串口模块-程序员宅基地

文章浏览阅读3.6k次。该文章的前提是已安装Python(楼主安装版本为64bit的3.7版本),使用PySerial模块,该模块安装前可先安装pip(推荐安装,还可以用于安装其他模块,使用方便)一、安装PIP1、下载安装包,地址为:https://pypi.org/project/pip/#files2、下载完成后将其解压到python目录下:随后,cmd进入该目录下,并进入到pip-19.0..._phthon 脱机安装串口模块

随便推点

在python moviepy中编辑后的视频没有声音的解决方案_moviepy 音频不加载-程序员宅基地

文章浏览阅读3.2k次。据说是mac下才会发生,其实不是的,和播放器的音频解码方式有关,大家在调用write_videofile函数时加上参数audio_codec="aac",改变下声道编码即可_moviepy 音频不加载

无法打开文件MSVCRTD.lib VS2017_无法打开文件“msvcrtd.lib”-程序员宅基地

文章浏览阅读1.9k次。_无法打开文件“msvcrtd.lib”

完善动态so加载库-程序员宅基地

文章浏览阅读96次。以上代码包括实验代码,都能在这里找到SillyBoy作者:Pika链接:https://juejin.cn/post/7227029203656867899来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。_动态so

OPENSSL之计算SHA1散列值_基于openssl实现sha1算法哈希运算-程序员宅基地

文章浏览阅读1k次。今天遇到了sha的相关函数的应用,随手收集了点有用的资料,以后在看。。。。。。。HA1散列函数是很常用的散列函数,它产生160bit(20字节)长度的散列值。今天,我就来介绍利用OpenSSL现成的API来计算数据的SHA1散列值。先来看OpenSSL的相关API声明: #include unsigned char *SHA_基于openssl实现sha1算法哈希运算

【Unity 24】Unity中的向量点乘和叉乘的应用_3d游戏中向量叉乘-程序员宅基地

文章浏览阅读4.6k次,点赞10次,收藏32次。PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更。笔记内容均为 自己理解,不保证每个都对点乘求角度,叉乘求方向比如敌人再附近,点乘可以求出玩家面朝方向和敌人方向的夹角,叉乘可以得出左转还是右转更好的转向敌人Part 1 点乘:数学上的 点乘为 a * b = |a| * |b| * cos(Θ) Unity中的点乘也是如此 点乘结果为 ..._3d游戏中向量叉乘

poj 3468 A Simple Problem with Integers(线段树)(第二部分 成段更新,区间求和)-程序员宅基地

文章浏览阅读262次。题目链接:http://poj.org/problem?id=3468题目大意:给出n个数的数值Q是对区间a,b的求和C是对区间a,b内的所有数都加上c思路:成段更新,需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候#include#include#include#include#inc

推荐文章

热门文章

相关标签