数据库开发规范.pdf_第1页
数据库开发规范.pdf_第2页
数据库开发规范.pdf_第3页
数据库开发规范.pdf_第4页
数据库开发规范.pdf_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内部公开 内部公开 数据库开发规范数据库开发规范 内部公开 内部公开 第 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 概要说明 中文名称 查询系统日志 用 途 查看管理员在后台进行的所有操作记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论