数据库设计

来源:互联网 发布:linux mv 覆盖目录 编辑:程序博客网 时间:2024/06/07 13:35
  • 数据库的设计应该与应用系统设计相结合,分为数据(结构)设计,行为(处理)设计。
  • 数据库设计的基本步骤分为六个阶段
  • 1.需求分析阶段:准确的了解与分析用户需求(包含数据与处理)是整个设计过程的基础,是最困难,最耗时的一步
  • 2.概念结构设计阶段:是整个数据库设计的关键,通过对用户需求进行综合的分析、归纳与抽象,形成一个独立于具体DBMS的概念
  • 3.逻辑结构设计阶段:将概念结构转换为某i个DBMS所支持的数据模型
  • 4.数据库物理设计阶段:为逻辑数据模型选取一个最合适应用环境的物理结构,包括存储结构和存储方法
  • 5.数据库实施阶段:运用DBMS提供的数据语言、工具和宿主语言,根据逻辑结构和物理设计建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
  • 6.数据库运行和维护阶段:数据库应用系统经过试运行后即可进行正式投入运行,在数据库系统运行阶段进行不断的评价、调整和修正
  • 数据库设计技巧:
  • 1.设计数据库之前(需求分析阶段)
  • 1.1理解客户需求,询问用户如何看待未来需求变化。让客户解释其需求,而且随着开发的继续,还要经常询问客户以保证其需求仍然在开发目的中
  • 1.2了解企业业务可以在以后的开发中节约大量的时间
  • 1.3重视输入输出。在定义数据库表和字段需求(输入)时,首先应该检查现有的或已经设计出的报表、查询和视图(输出)以决定为了支持这些输出那些是必要的表和字段
  • 1.4创建数据字典和ER图。ER图和数据字典可以让任何了解数据库的人都i明确如何从数据库中获取数据。ER图对表明表之间的关系很有用,而数据字典则说明了每个字段的用途以任何可能存在的别名。对SQL表达式的文档化来说这是完全必要的
  • 1.5定义标准的对象命名规范,数据库各种对象的明明必须规范
  • 2.表和字段的设计
  • 2.1标准化和规范化:数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好的平衡。简单来说,遵守3NF标准的数据库的表设计原则是“One Fact in One Place”即某个表只包括其本身基础的属性,当不是它们本身所具有的属性时需要进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表存放通过键连接的关联数据。例如:摸个存放客户以及有关定单的3NF数据看就肯能有两个表:Customer和Order。Order表不包括关联客户的任何信息,但表内会存放一个键值,该键指向Customer表内包含该用户信息的那一行。
  • 2.2数据驱动。采用数据驱动而非硬编码的方式,许多策略变更和维护都会很方便,大大增强系统的灵活性和拓展性。
  • 2.3考虑各种变化,在设计数据库的时候要考虑到哪些数据字段将来可能会发生变化。
  • 2.4字段设计原则,每个表中都应该添加3个有用的字段
  • 2.4.1dRecordCreationDate 记录当前时间
  • 2.4.2sRecordCreator 缺省
  • 2.4.3nRecordVersion 记录的版本标记
  • 2.5对地址和电话采用多个字段。描述街道地址短短一行记录是不够的,电话号码和邮件地址应该各自拥有数据表,其间具有自身的类型和标记类型
  • 2.6使用角色实体定义属于某类别的列。在需要对属于特定类别或者具有特定角色的事务做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化。
  • 2.7选择数据类型和文本类型尽量充足
  • 2.8增加删除标记字段,在表中包含一个删除标记 字段,这样就可以把行标记为删除,在关系数据库中就不要单独删除某一行,最好采用清除数据程序而且要仔细维护索引整体性
  • 3选择键和索引(数据库逻辑设计)
  • 键选择原则:
  • 1.键设计四原则:为关联字段创建外键;所有键都必须唯一;避免使用复合键;外键总是管理唯一的键字段
  • 2.使用系统生成的主键。设计数据库时采用系统生成的键作为主键,那么实际控制了数据库的索引完整性。
  • 3.不要用用户的键(不让主键具有可更新性),在确定采用什么字段作为表的键时,一定小心不要使用用户编辑的字段。
  • 4.可选键有时可以作为主键,把可选键进一步用作主键,可以拥有建立强大索引的能力
  • 索引使用规则:索引是从数据库中获取数据的最高效的方式之一
  • 1.逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何访问,还有这些访问是否主要用作读写
  • 2.大多数数据库都索引自动创建的主键字段
  • 3.不要索引memo/note字段,不要索引大型字段,这样容易造成占用太多的存储空间
  • 4.不要索引常用的小型表
  • 4.数据完整性设计(数据库逻辑设计)
  • 4.1完整性实现机制
  • 4.1.1实体完整性:主键
  • 4.1.2参照完整性:父表中删除数据,插入数据,更新数据
  • DBMS对参照完整性可以有两种实现的方法:外键实现机制和触发器实现机制
  • 4.2用约束而非商务规则强制数据完整性
  • 4.3强制指示完整性,在有害数据进入数据库之前将其删除
  • 4.4使用查找控制数据完整性
  • 4.5采用视图
  • 5.其他设计技巧
  • 5.1避免使用触发器
  • 5.2使用常用英语或其他任何语言但不要使用编码
  • 5.3保存常用的信息
  • 5.4包含版本机制
  • 5.5编制文档
  • 5.6测试、测试还是测试
  • 5.7检查设计
0 0