当前位置:网站首页>关于数据字典的一些解惑
关于数据字典的一些解惑
2022-07-17 18:34:00 【51CTO】
这里面有3个问题一直困扰着我,简单阐述一下:
1、什么是数据字典?
2、数据字典是什么时候的产物,主要是从信息化项目建设的阶段来说的,就是在什么时候会编写这个东西?
3、先有数据字典还是现有数据库表,如果现有数据字典,按照数据字典的格式怎么转换为数据库的表?
先看一个常见问题:
有的说,数据字典就是一组只读的、加密的表和视图,是用db系统自动生成
有的说,数据字典是一个说明文档,是对数据库的描述,里面包含的内容有数据项、数据结构、数据流、数据存储和处理过程五个部分
看得有点头晕了,到底数据字典是一个系统自动生成的表,还是数据库设计者自己写的一个说明文档?求解答~~
希望能有所得明白一点的答案~~重点是,数据字典到底是开发者自己写还是不用写?
然后有这样的一些解答:
数据字典是一个概念,它一般包含对数据库的描述,里面包含的内容有数据项、数据结构、数据流、数据存储和处理过程等几个部分。可以自己编写。有的数据库管理系统有自动生成数据字典的功能。写数据字典对于后人读懂开发者的数据库是很有帮助的。
数据字典的定义网上讲的都是一样的,说数据库可以自动生成数据字典也是可以的,不过严格来讲通过数据库再生成数据字典,对于系统开发过程是不对的,因为数据字典往往在需求阶段就出来了,如果通过数据库功能导出来数据字典,那就是纯粹为了写文档(补文档)方便了。
下面这句话各位觉得对吗?
ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下所有的一些表和视图.
数据字典是什么时候的产物,数据字典是需求分析产物。概念设计的产物是E-R图,逻辑设计的产物是关系模式,物理设计是设计物理存储方法及存储结构,实施阶段就是具体代码实现。那么按照正常流程,需求分析阶段先出来数据字典,那就会出来上一段反过来的问题,就不能通过数据库导出数据字典,那数据字典怎么转换为数据库呢?百思不得其解,然后从网上找到了自己想要的答案,确实还是有人按照正规流程来做的。下面看看怎么转换吧
按部就班来看看:数据字典生成SQL建表语句
这个例子从知乎拿过来,原文地址: https://zhuanlan.zhihu.com/p/361522225
先看一个常见问题
在工作中,每次用EXCEL做完数仓建模,生成数据字典以后,还要一个个编写hive的建表语句,如果表比较少还行,但是如果是成百上千张表,手动建表就比较繁琐了。
网上哥们这么说的
之前有学过python,很久没用了,所以顺便就捡起来,写了一个自动化通过EXCEL生成sql建表语句的python脚本,请教了一个项目上以前做爬虫的同事,所以比较快的完成了。这里做一个记录分享。
给定数据字典Excel格式如下,说明:每个表单里,第一列第二行是表名,第二列第二行是表的中文备注,第三列是字段名,第四列是字段备注,第五列是数据类型,字段的最后一行如果有分区字段,则说明是分区表。

Python代码来了
执行脚本如下

生成的SQL语句如下

后补或维护的方式:从数据库表导出数据字典/维护数据字典
使用PHPmyAdmin是可以导出数据字典的,phpmyAdmin是一个用php语言写的B/S架构,其配置文件在其应用的根目录config.inc.php;在该文件中可以设置数据库链接的一些信息。
打开phpmyadmin,选中需要导出数据字典的数据库

在表列下面有数据字典选项,点击

进入数据字典的预览页

在页面右键,点击存储为

取名保存,既可以看见

Oracle怎么导出数据字典呢,看一个栗子
原文描述是这样的问题
系统快要开发完了,甲方要求验收项目的时候提供数据字典文件,但是我们开发的时候注释直接写在实体的字段上了。我们要求提供的数据字典是word文档。要是一个一个的复制那太麻烦了,于是怎么做呢?
解决办法:
(1) 写个小工具类,把所有实体中的注释提取出来生成一个给表中字段添加注释的sql文件;
(2) 执行sql文件将注释添加到数据库表中;
(3) 采用datagrip或者navicat工具查询出你需要的数据字典项,然后导出为excel文件;
(4) 复制到word;也就是后补贴到文档里面。
前两步开发小工具提取实体注释然后生成一个给表添加注释的sql文件,执行sql文件将注释添加到表中,省略......讲第(3)步:
我们需要生成数据字典需要用到的信息一般有:字段名、字段类型、字段长度、是否非空、备注等。于是乎,我们可以用获取字段的基表和获取字段注释的基表进行关联,然后查询出你想要的信息,由于我们自己能够确定自己要生成数据字典的表是位于哪个用户,所以可以使用user_tab_columns和user_col_comments组合获取,而且使用这两个表的数据量相对小一些,效率高一些。
执行sql2,查询出你需要的信息。
navicat工具:选择导出结果,然后将查询结果导出为excel文件,然后从excel复制到word;或者直接复制查询的结果,然后粘贴到excel表格,然后从excel复制到word;
datagrid工具:修改查询结果的data extractors(数据提取器)的格式为HTML(groovy),如图:

边栏推荐
- Security measures for tcp/ip protocol vulnerabilities
- Onvif protocol related: 4.1.1 WS username token method to obtain wsusernametokenbean
- 关于XML文件(七)- XML DTD
- Programming examples of stm32f1 and stm32subeide -mpu-6050 six axis (gyroscope + accelerometer) drive
- Perl command batch replaces some contents in the file
- 「津津乐道播客」#392 原汤话原食:仲夏夜,马砂、肉串儿、趿拉板儿
- 【南瓜书ML】(task2)线性模型的数学推导(最小二乘估计、广义瑞利商、极大似然估计等)
- 这些年我开源的几个小项目
- STL string复制比较
- 【码蹄集新手村 600 题】输出时的左对齐,右对齐
猜你喜欢

Design and Simulation of anti reverse connection circuit based on MOS transistor

这些年我开源的几个小项目
![[postgraduate entrance examination vocabulary training camp] day 7 - second, attract, current, collect, simple, communicate, vocation](/img/4e/79da9868930994fe6389b717efc4e9.png)
[postgraduate entrance examination vocabulary training camp] day 7 - second, attract, current, collect, simple, communicate, vocation

565.数组嵌套

命令行的一些常用操作命令及常见错误的解决办法

Security measures for tcp/ip protocol vulnerabilities

Onvif protocol related: 3.1.1 digest access authorization

onvif协议相关:4.1.2 WS-Username token方式获取token

模块7(王者荣耀商城异地多活架构设计)

【南瓜书ML】(task2)线性模型的数学推导(最小二乘估计、广义瑞利商、极大似然估计等)
随机推荐
About XML file (VII) - XML DTD
Codeforces Round #808 (Div. 2)ABCD
Attachment handling of SAP Fiori
MySQL sort index failure?
【7.12】Codeforces Round #806 (Div. 4)
onvif协议相关:4.1.1 WS-Username token方式获取WSUsernameTokenBean
命令行的一些常用操作命令及常见错误的解决办法
[code hoof set novice village question 600] how to reverse the order of integers
onvif协议相关:3.1.3 Digest方式获取截图url
Realize automatic logging
【码蹄集新手村 600 题】运算符 / 在不同的运算顺序中的类型转换
S32K148_CAN驱动(裸机开发)
Flutter uses animatedswitcher to switch scenes
torch.utils.data.DataLoader说明
(pc+wap) dream weaving template clothing dress website
[micro Service ~ advanced] configuration center practice
perl 命令批量替换文件中的一些内容
【南瓜书ML】(task2)线性模型的数学推导(最小二乘估计、广义瑞利商、极大似然估计等)
响应式织梦模板酒窖类网站
【码蹄集新手村 600 题】float 与 double 的格式说明符