为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库开发规范

2011-06-10 8页 pdf 182KB 31阅读

用户头像

is_007688

暂无简介

举报
数据库开发规范 内部公开▲ 数据库开发规范 内部公开▲ 第 1 页 共 8 页 一.数据表和字段的设计 表设计原则 1、标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,我们在这里采用 Third Normal Form(3NF),因为 3NF在性能、扩展性和数据完整性方面达到了最好平衡。 ...
数据库开发规范
内部公开▲ 数据库开发 内部公开▲ 第 1 页 共 8 页 一.数据表和字段的 表设计原则 1、标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,我们在这里采用 Third Normal Form(3NF),因为 3NF在性能、扩展性和数据完整性方面达到了最好平衡。 遵守 3NF 标准的数据库某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分 解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。 2、考虑各种变化 在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。 字段设计原则: 1) 每个表中都应该添加的 3 个有用的字段,即要求每张数据表中字段不得少于 3个; 2) 选择数字类型和文本类型尽量充足。在字段类型为数字或文本时,其长度最好比实际所需的大一些。 3) 增加自动增长的操作 ID字段 5) 增加记录创建的日期字段 4) 增加删除标记字段 在表中包含一个"删除标记"字段,这样就可以把行标记为删除。在关系数据库里不单独删除某一行; 一般采用清除数据程序而且要仔细维护索引整体性。 二.键和索引的设计 1、键选择原则: 1)为关联字段创建外键。 2)所有的键都必须唯一。 3)避免使用复合键。 4)外键总是关联唯一的键字段。 内部公开▲ 第 2 页 共 8 页 使用系统生成的主键 设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据库的索引完整性。这样,数据库 和非人工机制就有效地控制了对存储数据中每一行的访问。采用系统生成键作为主键还有一个优点:当拥 有一致的键结构时,找到逻辑缺陷很容易。不要用用户的键(不让主键具有可更新性)在确定采用什么字段 作为表的键的时候,小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。 可选键有时可做主键 把可选键进一步用做主键,可以拥有建立强大索引的能力。 2、索引使用原则: 索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问都可以采用索引技术得到解 决。 索引外键 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运 行查询显示主表和所有关联表的某条记录就用得上。 不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。 不要索引常用的小型表 不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除 操作的索引维护可能比扫描表空间消耗更多的时间。 三. 数据完整性设计 完整性实现机制:实体完整性:主键 参照完整性: 父表中删除数据:级联删除;受限删除;置空值 父表中插入数据:受限插入;递归插入 父表中更新数据:级联更新;受限更新;置空值 DBMS对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制 用户定义完整性:NOT NULL;CHECK;触发器 用约束而非商务规则强制数据完整性 采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。 在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证 表之间(外键)的完整性所以不能强加于其他完整性规则之上。 内部公开▲ 第 3 页 共 8 页 强制指示完整性 在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁 而能迫使开发人员投入更多的时间处理错误条件。 使用查找控制数据完整性 控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表 供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。 采用视图 为了在数据库和应用程序代码之间提供另一层抽象,可以为应用程序建立专门的视图而不必非要应用 程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。 四. 其他设计 1、避免使用触发器 触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如确实需要采用触发 器, 2、要集中对它文档化。 使用常用英语(或者其他任何语言)而不要使用编码。 在创建下拉菜单、列表、报表时最好按照英语名排序。假如需要编码,可以在编码旁附上用户知道的 英语。 3、包含版本机制 在数据库中引入版本控制机制来确定使用中的数据库的版本。时间一长,用户的需求总是会改变的。 最终可能会要求修改数据库结构。把版本信息直接存放到数据库中更为方便。 4、编制文档 对所有的快捷方式、命名规范、限制和都要编制文档。 采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪修改非常有用。 5、反复测试 建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并 且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。 6、检查设计 在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对 每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。 内部公开▲ 第 4 页 共 8 页 五、数据库命名规范 1、表的命名 表以英文或汉语拼音缩写命名。即以表示此表信息的名称的英文或汉语拼音缩写命名,表命名中多用_ 以使表名更易懂。表的别名定义采用表名的前四个字母。 表以 T_作为前缀,命名应尽量体现各视图的功能。 所有的冗余类的命名(主要是累计表)前面加上前缀 X。冗余类是为了提高数据库效率,非规范化数据 库的时候加入的字段或者表关联类通过用下划线连接两个基本类之后,再加前缀 R的方式命名,后面按照 字母顺序罗列两个表名或者表名的缩写。 2、列的命名 采用有意义的列名,表内的列要针对键采用一整套设计规则。 每一个表都将有一个自动 ID作为主健,逻辑上的主健作为第一组候选主健来定义,如果是数据库自 动生成的编码,统一命名为:CZID;如果是自定义的逻辑上的编码则用缩写加"ID"的方法命名。 如果键是数字类型,你可以用_NO 作为后缀;如果是字符类型则可以采用_CODE 后缀。对列名应 该采用标准的前缀和后缀。 所有的列名加上有关类型的后缀,如果还需要其它的后缀,都放在类型后缀之前。 注: 数据类型是文本的字段,类型后缀 TX可以不写。有些类型比较明显的字段,可以不写类型后缀。 采用前缀命名 给每个表的列名都采用统一的前缀,那么在编写 SQL表达式的时候会得到大大的简化。这样做也确实 有缺点,比如破坏了自动表连接工具的作用,后者把公共列名同某些数据库联系起来。 3、视图的命名 视图以 V_作为前缀,其他命名规则和表的命名类似;命名应尽量体现各视图的功能。 4、触发器的命名 触发器以 TR_作为前缀,触发器名为相应的表名加上后缀,Insert触发器加'_Ins',Delete触发器 加'_Del',Update触发器加'_Up' 5、存储过程名 存储过程应以'P_'开头,后续部分主要以动宾形式构成,并用下划线分割各个组成部分。 查询加“_Qry”,更新加“_Up”。 6、变量名 变量名采用小写,若属于词组形式,用下划线分隔每个单词; 7、命名中其他注意事项 1) 以上命名都不得超过 30个字符的系统限制。变量名的长度限制为 29(不包括标识字符@)。 内部公开▲ 第 5 页 共 8 页 2) 数据对象、变量的命名都采用拼音字符,禁止使用中文命名。绝对不要在对象名的字符之间留空格。 3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突 4) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据 类型在一个表里是整数,那在另一个表里可就别变成字符型了。 四、写规范 1、存储过程 /----------------------------------------------------------------------------------- 存储过程名称: dbo.p_shop_SysLog_QrySyslog 概要说明: 中文名称: 查询系统日志 用 途: 查看管理员在后台进行的所有操作记录 数 据 库: shop_hisadmin 调用举例: -- 添加操作记录 declare @opercont as varchar(200) declare @ipaddr as varchar(20) declare @returnvalue as int set @opercont = "操作记录" EXEC @returnvalue = [dbo].[up_shop_SysLog_QrySyslog] 10 , @ipaddr, @opercont return @returnvalue 外部联系: 上级调用: 下级调用: 输 入 表: 输 出 表: 原作者: 原作日期: 功能修订: 简要说明: 修订记录: 修改功能描述:添加分页显示功能 修改者: 修改日期: 内部公开▲ 第 6 页 共 8 页 备注: -----------------------------------------------------------------------------------/ CREATE PROCEDURE dbo.p_shop_SysLog_QrySyslog @czid int, -- 操作 ID @ipaddr varchar(20),-- 操作 IP @opercont varchar(200)-- 操作内容 AS DECLARE @returnvalue INT -- 返回值(10 - 成功; 11 - 其他失败) BEGIN SET NOCOUNT ON << 添加操作记录语句 >> return 0 SET NOCOUNT OFF END 2、视图 /----------------------------------------------------------------------------------- 视图名称: dbo.v_shop_SysLog 概要说明: 中文名称: 查询系统日志 用 途: 查看管理员在后台进行的所有操作记录 数 据 库: shop_hisadmin 原作者: 原作日期: 功能修订: 简要说明: 修订记录: 修改功能描述: 修改者: 修改日期: 备注: -----------------------------------------------------------------------------------/ CREATE View dbo.v_shop_SysLog AS DECLARE @returnvalue INT -- 返回值(10 - 成功; 11 - 其他失败) BEGIN 内部公开▲ 第 7 页 共 8 页 SET NOCOUNT ON << 添加操作记录语句 >> return 0 SET NOCOUNT OFF END
/
本文档为【数据库开发规范】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索