SQL数据库数据字典怎么生成的?

SQL数据库数据字典怎么生成的?,第1张

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

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

数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。

生成数据库参考代码如下:

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author:<Carbe>

-- Create date: <2014-09-19>

-- Description:<生成数据库字典>

-- =============================================

CREATE PROCEDURE [dbo].[CreateDatabaseDictionarie]

AS

BEGIN

DECLARE @TableName nvarchar(35),@htmls varchar(8000)

DECLARE @字段名称 VARCHAR(200)

DECLARE @类型 VARCHAR(200)

DECLARE @长度 VARCHAR(200)

DECLARE @数值精度 VARCHAR(200)

DECLARE @小数位数 VARCHAR(200)

DECLARE @默认值 VARCHAR(200)

DECLARE @允许为空 VARCHAR(200)

DECLARE @外键 VARCHAR(200)

DECLARE @主键 VARCHAR(200)

DECLARE @描述 VARCHAR(200)

SET NOCOUNT ON

DECLARE Tbls CURSOR

FOR

Select distinct Table_name

FROM INFORMATION_SCHEMA.COLUMNS

order by Table_name

OPEN Tbls

PRINT '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'

PRINT '<html xmlns="http://www.w3.org/1999/xhtml">'

PRINT '<head>'

PRINT '<title>KC管理系统-数据库字典</title>'

PRINT '<style type="text/css">'

PRINT 'body{margin:0font:11pt "arial", "微软雅黑"cursor:default}'

PRINT '.tableBox{margin:10px autopadding:0pxwidth:1000pxheight:autobackground:#FBF5E3border:1px solid #45360A}'

PRINT '.tableBox h3 {font-size:12ptheight:30pxline-height:30pxbackground:#45360Apadding:0px 0px 0px 15pxcolor:#FFFmargin:0pxtext-align:left }'

PRINT '.tableBox table {width:1000pxpadding:0px }'

PRINT '.tableBox th {height:25pxborder-top:1px solid #FFFborder-left:1px solid #FFFbackground:#F7EBC8border-right:1px solid #E0C889border-bottom:1px solid #E0C889 }'

PRINT '.tableBox td {height:25pxpadding-left:10pxborder-top:1px solid #FFFborder-left:1px solid #FFFborder-right:1px solid #E0C889border-bottom:1px solid #E0C889 }'

PRINT '</style>'

PRINT '</head>'

PRINT '<body>'

FETCH NEXT FROM Tbls INTO @TableName

WHILE @@FETCH_STATUS = 0

BEGIN

Select @htmls = '<h3>' + @TableName + ' : '+ CAST(Value as varchar(1000)) + '</h3>'

FROM sys.extended_properties AS A

WHERE A.major_id = OBJECT_ID(@TableName)

and name = 'MS_Description' and minor_id = 0

PRINT '<div class="tableBox">'

PRINT @htmls

PRINT '<table cellspacing="0">'

PRINT '<tr>'

PRINT '<th>字段名称</th>'

PRINT '<th>类型</th>'

PRINT '<th>长度</th>'

PRINT '<th>数值精度</th>'

PRINT '<th>小数位数</th>'

PRINT '<th>默认值</th>'

PRINT '<th>允许为空</th>'

PRINT '<th>外键</th>'

PRINT '<th>主键</th>'

PRINT '<th>描述</th>'

PRINT '</tr>'

DECLARE TRows CURSOR

FOR

SELECT

'<td>' + CAST(clmns.name AS VARCHAR(35)) + '</td>',

'<td>' + CAST(udt.name AS CHAR(15)) + '</td>' ,

'<td>' + CAST(CAST(CASE WHEN typ.name IN (N'nchar', N'nvarchar') AND clmns.max_length <>-1 THEN clmns.max_length/2 ELSE clmns.max_length END AS INT) AS VARCHAR(20)) + '</td>',

'<td>' + CAST(CAST(clmns.precision AS INT) AS VARCHAR(20)) + '</td>',

'<td>' + CAST(CAST(clmns.scale AS INT) AS VARCHAR(20)) + '</td>',

'<td>' + isnull(CAST(cnstr.definition AS VARCHAR(20)),'') + '</td>',

'<td>' + CAST(clmns.is_nullable AS VARCHAR(20)) + '</td>' ,

'<td>' + CAST(clmns.is_computed AS VARCHAR(20)) + '</td>' ,

'<td>' + CAST(clmns.is_identity AS VARCHAR(20)) + '</td>' ,

'<td>' + ISNULL(CAST(exprop.value AS VARCHAR(500)),'') + '</td>'

FROM sys.tables AS tbl

INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id

LEFT OUTER JOIN sys.indexes AS idx ON idx.object_id = clmns.object_id AND 1 =idx.is_primary_key

LEFT OUTER JOIN sys.index_columns AS idxcol ON idxcol.index_id = idx.index_id AND idxcol.column_id = clmns.column_id AND idxcol.object_id = clmns.object_id AND 0 = idxcol.is_included_column

LEFT OUTER JOIN sys.types AS udt ON udt.user_type_id = clmns.user_type_id

LEFT OUTER JOIN sys.types AS typ ON typ.user_type_id = clmns.system_type_id AND typ.user_type_id = typ.system_type_id

LEFT JOIN sys.default_constraints AS cnstr ON cnstr.object_id=clmns.default_object_id

LEFT OUTER JOIN sys.extended_properties exprop ON exprop.major_id = clmns.object_id AND exprop.minor_id = clmns.column_id AND exprop.name = 'MS_Description'

WHERE (tbl.name = @TableName and exprop.class = 1) --I don't wand to include comments on indexes

ORDER BY clmns.column_id ASC

OPEN TRows

FETCH NEXT FROM TRows INTO @字段名称,@类型,@长度,@数值精度,@小数位数,@默认值,@允许为空,@外键,@主键,@描述

WHILE @@FETCH_STATUS = 0

BEGIN

PRINT '<tr>'

PRINT @字段名称

PRINT @类型

PRINT @长度

PRINT @数值精度

PRINT @小数位数

PRINT @默认值

PRINT @允许为空

PRINT @外键

PRINT @主键

PRINT @描述

PRINT '</tr>'

FETCH NEXT FROM TRows INTO @字段名称,@类型,@长度,@数值精度,@小数位数,@默认值,@允许为空,@外键,@主键,@描述

END

CLOSE TRows

DEALLOCATE TRows

PRINT '</table>'

PRINT '</div>'

FETCH NEXT FROM Tbls INTO @TableName

END

PRINT '</body>'

PRINT '</html>'

CLOSE Tbls

DEALLOCATE Tbls

END

生成和打印包含数字字典, *** 作如下:

数据字典生成:

1.打开PowerDesigner打开一个数据模型CDM或PDM

2.选择Report→Reports

3.点击NewReport新建一个报告

4.填入字典名称,选择数据字典模板

5.选择数据字典,生成文档或html

6.保存文档或html文件

注意事项:可在网上搜到了一个简单的数据字典模板项目如下:+Title-Tables+--+Table-表格%ITEM%+--+---TableCard-表格%ITEM%的卡片。

打印数据字典的详细步骤:

打开phpmyadmin,选中需要导出数据字典的数据库

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

进入数据字典的预览页,

在页面右键,点击存储为

取名保存,就可以看见了。

数据字典(datadictionary)是一个自动或手动存储数据源定义和属性的文档,对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据字典对用户来说是一组只读的表,其内容包括数据库中所有模式对象的信息,如表、视图、簇及索引等。

数据字典是整个数据库环境的重要组成部分,是数据库环境管理的有力工具,在数据库的生命周期内起着重要作用。数据字典的用途是多方面的,它是一个管理有关数据库设计、实现、运行和扩充阶段的各种信息的工具。

数据字典(Data dictionary,缩写为 DD) 是存放数据库各级模式结构的描述,也是访问数据库的接口。

归纳起来,数据字典的功能包括以下几方面:

①描述数据库系统的所有对象,如属性、实体、记录类型、数据项、 用户标识、口令、物理文件名及其位置、文件组织方法等;

②描述数据库系统各种对象之间的交叉联系,如哪个用户使用哪个子模式,哪个记录分配在哪个区域,存贮在哪个物理设备上;

③登记所有对象在不同场合、不同视图中的名称对照表;

④描述模式、子模式和物理模式的改动情况。

代码是代表客观存在的实体或属性的符号(如数字、字母或它们的组合)。在信息系统中,代码是人和机器的共同语言,是便于进行信息分类、校对、统计和检索的关键,是数据库规范化、标准化的依据。代码设计是实现一个信息系统的前提条件,其目的是要设计出一套为系统各部分所公用的优化代码系统。代码设计

代码设计是编制数据字典开始的,编码对象为数据存储中所包含的数据元素与数据结构。代码设计的结果是形成代码字典,作为系统设计与编程的标准。

现行系统中,已经存在着一套代码系统,但是,这种代码不一定适合计算机处理,而且往往不科学、不统一,为此应对本系统使用的代码进行调查研究和统一规划,以便进行重新设计或修订,其中对重要代码的设计应依据国家有关编码标准。

代码设计是一项重要的工作。如果代码设计不合适,小修改将会引起程序的变化,大修改则会引起文件的重新建立。故一定要进行全面的考虑和仔细的推敲、修改,逐步优化,最后确定,切忌草率行事。

是代码的基本分类,在实际设计中,可以根据需要进行选择,或将不同的类型组合起来使用。

词语代码的分类一般以结构为准,所谓的代码结构是指代码内部各个符号或符号组之间的关系。就目前情况看,词语的代码结构类型有十种以上,但在地质上常用的有五种,即特征组合结构、顺序结构、助记结构、分类结构和混合结构。其代码的种类也相应地分为特征组合码、顺序码、助记码、分类码和混合码五种。

按照这种设计思路设计你的数据字典,就是很标准的数据点啦!

注意事项

数据库系统是一个复杂的系统,其中所包含的信息除了用户数据外,还有很多非用户数据信息。例如,模式和子模式的内容、文件间的联系、数据项的长度、类型、用户标识符、口令、索引等等。这些非用户数据是整个数据库系统的情报系统,如果没有它们或它们遭到了破坏,则整个系统将陷入瘫痪状态,即使数据库本身完好无损,也将无济于事。为了使数据库的设计、实现、运行、维护、扩充有一个共同遵循的标准和依据,并且也为了保证数据库的共享性、安全性、完整性、一致性、有效性、可恢复性以及可扩充性,人们在数据库中设置了数据字典,来集中保存这些信息。由于数据字典是描述数据库中各数据属性与组成的数据集合,因此有人把它看做是关于数据库的数据库。

数据字典的作用是:

①管理系统数据资源——数据字典提供了管理和收集数据的方法;

②实现数据标准化——在数据库中,数据的名称、格式和涵义等在不同的场合下容易混淆,数据字典提供使之标准化的工具,它可以给这些内容予以统一的名称、格式和涵义;

③使系统的描述文体化——所有和系统有关的描述,都可以对数据字典中的信息进行查询、插入、删除和修改;

④作为设计的工具——由于数据字典中存放着与数据库有关的各种信息和原始资料,就为数据库设计提供了有力的工具;

⑤为数据库提供存取控制和管理——数据库在接受每一个对数据库的存取请求时,都要检查用户标识、口令、子模式、模式和物理模式等。所以从某种意义上讲,数据字典控制了数据库的运行;

⑥供数据库管理员(DBA)进行各种查询,以便了解系统性能、空间使用状况和各种统计信息,及时掌握数据库的动态。所以数据字典是 DBA 观察数据库的眼晴和窗口。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9951813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存