数据库数据字典是一组表和视图结构。它们存放在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 观察数据库的眼晴和窗口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)