当前位置:网站首页>关于数据字典的一些解惑
关于数据字典的一些解惑
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),如图:

边栏推荐
- 这些年我开源的几个小项目
- onvif协议相关:2.1.3 none方式获取流地址
- How to upgrade Flink job gracefully?
- codeforce:G. Good Key, Bad Key【贪心】
- [understanding of opportunity-46]: Guiguzi - Chapter 10 - schemer, meaning of wisdom
- S32K148_ Can drive (bare metal development)
- onvif协议相关:4.1.3 WS-Username token方式获取截图url
- Array simulation queue
- Framework construction of business card management
- 【码蹄集新手村 600 题】科学计数法的实现方式,输出指数形式
猜你喜欢

【刷题记录】13. 罗马数字转整数
![[micro Service ~ advanced] configuration center practice](/img/6f/e365a93be7ed9cceafecf7c506965a.png)
[micro Service ~ advanced] configuration center practice

【考研词汇训练营】Day 5 —— alarmist,cooperate,point,benefit,industrial,revolution,mechanize
![Codeforce:a. difference operations [mathematical thinking]](/img/be/28bcb5dd8b9a36f2955f1912f289a3.png)
Codeforce:a. difference operations [mathematical thinking]

【考研词汇训练营】Day 7 —— second,attract,current,collect,simple,communicate,vocation

Principle of voice communication network

Computer dial-up Internet access

Panasonic A6 servo driver external absolute value grating ruler full closed loop parameter setting

【考研词汇训练营】Day 6 —— eventually,state,create,productivity,stimulate
![[code hoof set novice village question 600] format specifier of float and double](/img/19/433f794617f3c3c72732f1a4efe252.png)
[code hoof set novice village question 600] format specifier of float and double
随机推荐
SSH keyless login
OpenSSL operation
[机缘参悟-46]:鬼谷子-第十谋篇-谋者,智慧之意也
名片管理的框架搭建
Onvif protocol related: 3.1.4 get the stream address in digest mode
Li Kou's 302 weekly match
【7.14】代码源 -【拆方块】【XOR Inverse】【连续子序列】【三角果计数】
【码蹄集新手村 600 题】float 与 double 的格式说明符
How to upgrade Flink job gracefully?
565.数组嵌套
统计直播间的榜一信息,从这里起步
Solutions to the failure of dedecms dream weaving to save the current column changes
【7.9】代码源 -【选数】【序列操作】【Minimum Or Spanning Tree】
【js逆向爬虫】-有道翻译js逆向实战
响应式织梦模板酒窖类网站
Elastic load balancing automatically distributes the access traffic to multiple cloud servers, expands the external service capacity of the application system, and improves the security of the applica
Onvif protocol related: 4.1.2 WS username token method to obtain token
Deep learning from getting started to giving up the 100 day challenge
[pyGame learning notes] 7 event
The cloud audit service CTS is a paid service. The paid items include the opening of tracker, event tracking, storage and retrieval of events within 7 days and other related fees