数据库设计标准

数据库设计标准

1.数据表字段说明

(1)每个表都必须有一个关键字,如果表中没有可以设置成关键字的字段,可以添加一个ID 字段作为关键字。需要特别注意的是,一些数据库系统如果没有关键字,那么允许所有字段有相同的值,此时如果对其进行操作时,数据库系统将整条记录作为一个关键字来操作,从而出现多个关键字的问题,导致操作出错。对于数字类型的关键字,如果不需要程序或者人为来维护的,就将其设置成为标示种子为1,标示递增量为1的标示字段。尽量不要使用由手工输入的数据作为关键字,这是由于手工输入的不可靠性容易导致不可预见的后果。设置关键字时尽量避免设置多个字段的联合关键字。

(2)对于非关键字、不允许空值以下数据类型的字段:日期型、布尔型、数字型等字段,无论是否有程序自动维护,必须在数据库设计的时候设定其默认值。

(3)在设定字段长度时,对于系统固定长度的字段,不需要更改,对于需要设计者指定长度的字段,设计者可以根据实际情况指定,如果对已经有数据的数据表的字段长度缩小的时候,必须注意超过新数据长度的数据截断问题。对现有数据类型的转换也需要注意是否可以转换,数据长度的问题。

2.表字段定义说明

语言--一般来说定义数据库时不要使用中文或其他类型文字的字段名,尽量使用英文或者英文加数字来作为字段名,尽管使用中文或其他类型文字作为字段名在直接操作数据库时很容易,但是在数据库以及依赖于数据库的前台程序的不同语言操作系统的兼容性完全丧失,当然中文或其他类型文字可以放在字段的描述或者说明里面起辅助作用。

明确--原则上字段名的定义只要符合数据库系统的字段定义要求就可以,如:1、2、……;A、B、C、……,ABC、A12BC、……,等都是合法字段,但是一定的数据库往往是和一定的前台程序联系起来的,如果字段名定义不明确,造成程序在编写过程中的混乱,程序的可读性、可维护性极差。

准确--字段名尽量使用准确的英文名字,如果相同名字的字段有几个,可以用字母或者数字后缀区别。不要使用系统的保留字作为字段名,尽量避免使用开发语言的保留字作为字段名。字段名可以按照大小写敏感的方式来命名。

简洁--避免使用不必要的前缀,如有一个Contact的'联系人'表,其中有一个联系人名字的字段,不要使用ContactName作为其字段名,使用Name就可以了。

顺序--按照描述事物或者常规思维模式来安排顺序,不要随意安排顺序,虽然任意顺序的字段都可以,但是对于数据库的维护来说却非常麻烦,特别是字段多的表。

3.数据类型的选择

(1)ID字段不要作为表的主键与其它表关联,这将会影响到该表的数据迁移。

(2)Text 和Image字段属指针型数据,主要用来存放二进制大型对象(BLOB)。这类数据的操作相比其它数据类型较慢,因此要避开使用。

(3)各种类型字段的均有众多的相关函数支持,例如日期型函数,在日期的大小比较、加减操作上非常简单。但是,在按照日期作为相等条件的查询操作也要用函数,而使用函数作为查询的条件时,服务器无法用先进的性能策略来优化查询而只能进行表扫描遍历每行,因此,在选择大数据表的关键字段数据类型时应根据在选择查询策略尽可能避开使用函数的原则加以考虑。(4)注意数值型数据的取值范围问题,文本型的数据要保留一定的冗余长度。

4.数据库命名规范

不同的数据库产品对对象的命名有不同的要求,因此,数据库中的各种对象的命名、后台程序的代码编写应采用大小写敏感的形式,各种对象命名长度不要超过30个字符,这样便于应用系统适应不同的数据库平台。

5.索引的建立

为加快访问的速度,对表建立索引是加快速度的一个理想做法,但是索引应该避免用大数据的字段来建立,如Text,Image以及长数据的字符串型等。

6.视图的建立

对于需要访问相关联的表,如果在应用程序中去处理,可能会使应用程序的代码编写出现不必要的繁复,而且也会忽视数据库的潜力开发,这种情况的解决方法是利用数据库的视图。

7.导入/导出操作注意事项

不同的数据库系统或者相同的数据库系统之间允许以导入/导出的方法来在另一个不同的数据库中形成新的数据库或者数据库中的表,这是一个十分简洁的方法,但是需要注意的是,这样的操作会将源表中的一些信息丢失,如关键字、默认值等,所以在执行完导入/导出的操作之后,一定要在目的数据库中重新检查设置相关属性。

8.合法性检验

尽量在数据进入数据库之前对数据进行合法性检验,避免不合法数据进入数据库,否则数据库的维护将非常困难。注意:以下附件仅供参考,附件中如有规范与我们的规范矛盾则以我们的规范为准。

摘录附件:

数据库设计方法、规范与技巧

一、数据库设计过程

数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。

数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。

1. 需求分析阶段

需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。

需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。

需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。

常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。

分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。

数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。

数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。

数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,

取值范围,取值含义,与其他数据项的逻辑关系}

相关文档
最新文档