- 浏览: 832909 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
数据库技术是信息资源管理最有效的手段。数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据,满足用户的各种应用需求。
1、设计数据库之前
1)理解客户需求,询问用户如何看待未来需求变化。让客户解释其需求,而且随着开发的继续,还要经常询问客户以保证其需求仍然在开发的目的之中;
2)了解企业业务,在以后的开发阶段节约大量时间;
3)重视输入输出。在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经设计出的报表、查询和视图(输出),以决定为了支持这些输出哪些是必要的表和字段;
4)创建数据字典和E-R 图,对SQL 表达式的文档化来说这是完全必要的;
5)定义标准的对象命名规范。
2、表与字段的设计
1)表设计原则
(1)标准化和规范化;
数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。事实上,为了效率的缘故,对表不进行标准化有时也是必要的。
(2)采用数据驱动,增强系统的灵活性与扩展性;
(3)在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。
2)字段设计原则
(1)每个表中都应该添加的3 个有用的字段;
①dRecordCreationDate,在SQL Server 下默认为GETDATE();
②sRecordCreator,在SQL Server 下默认为NOT NULL DEFAULT USER;
③nRecordVersion,记录的版本标记,有助于准确说明记录中出现null 数据或者丢失数据的原因。
(2)对地址和电话采用多个字段,电话号码和邮件地址最好拥有自己的数据表,其间具有自身的类型和标记类别;
(3)使用角色实体定义属于某类别的列,创建特定的时间关联关系,从而可以实现自我文档化;
(4)选择数字类型和文本类型要尽量充足,否则无法进行计算操作;
(5)增加删除标记字段。在关系数据库里不要单独删除某一行,而在表中包含一个“删除标记”字段,这样就可以把行标记为删除。
3、键和索引
1)键选择原则
(1)键设计4 原则
①所有的键都必须唯一;
②为关联字段创建外键;
③避免使用复合键;
④外键总是关联唯一的键字段。
(2)使用系统生成的主键,控制数据库的索引完整性,并且当拥有一致的键结构时,找到逻辑缺陷很容易;
(3)不要用用户的键,通常情况下不要选择用户可编辑的字段作为键;
(4)可选键有时可作主键,能拥有建立强大索引的能力。
2)索引使用原则
索引是从数据库中获取数据的最高效方式之一,绝大多数的数据库性能问题都可以采用索引技术得到解决。
(1)逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用于读写;
(2)大多数数据库都索引自动创建的主键字段,但是不能忘了索引外键,它们也是经常使用的键;
(3)不要索引memo/note 字段,不要索引大型字段,这样会让索引占用太多的存储空间;
(4)不要索引常用的小型表,不要为小型数据表设置任何键,尤其当它们经常有插入和删除操作时。
4、数据完整性设计
1)完整性实现机制
(1)实体完整性:主键
(2)参照完整性
①父表中删除数据:级联删除,受限删除,置空值;
②父表中插入数据:受限插入,递归插入;
③父表中更新数据:级联更新,受限更新,置空值。
DBMS 对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制。
(3)用户定义完整性:NOT NULL,CHECK,触发器。
2)用约束而非商务规则强制数据完整性;
3)强制指示完整性。在有害数据进入数据库之前将其剔除,激活数据库系统的指示完整性特性;
4)使用查找控制数据完整性,控制数据完整性的最佳方式就是限制用户的选择;
5)采用视图。可以为应用程序建立专门的视图而不必非要应用程序直接访问数据表,这样做还等于在处理数据库变更时给你提供了更多的自由。
5、其他设计
1)避免使用触发器,确实需要的话最好集中对它文档化;
2)使用常用英语(或者其他任何语言)而不要使用编码,确实需要的话可以在编码旁附上用户知道的英语;
3)保存常用信息。让一个表专门存放一般数据库信息,可以实现一种简单机制跟踪数据库,这样做对非客户机/服务器环境特别有用;
4)包含版本机制,在修改数据库结构时更为方便;
5)编制文档,对所有的快捷方式、命名规范、限制和函数都要编制文档;
6)反复测试,保证选择的数据类型满足商业要求;
7)检查设计,在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。
6、数据库命名规范
1)实体(表)的命名
(1)表以名词或名词短语命名,给表的别名定义简单规则;
(2)如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词;
(3)所有的存储值列表的表前面加上前缀Z,目的是将这些值列表类排序在数据库最后;
(4)所有的冗余类的命名(主要是累计表)前面加上前缀X。冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表;
(5)关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。关联表用于保存多对多关系。
2)属性(列)的命名
(1)采用有意义的列名,表内的列要针对键采用一整套设计规则;
每一个表都将有一个自动ID作为主健,逻辑上的主健作为第一组候选主健来定义。如果是自定义的逻辑上的编码则用缩写加“ID”的方法命名。如果键是数字类型,你可以用_NO 作为后缀。如果是字符类型则可以采用_CODE 后缀。对列名应该采用标准的前缀和后缀。
(2)所有的属性加上有关类型的后缀,如果还需要其它的后缀,都放在类型后缀之前。数据类型是文本的字段,类型后缀TX可以不写,有些类型比较明显的字段也可以不写类型后缀;
(3)采用前缀命名。给每个表的列名都采用统一的前缀,那么在编写SQL表达式的时候会得到大大的简化,但这样做也有缺点,比如会破坏自动表连接工具的作用。
3)视图的命名
(1)视图以V作为前缀,其他命名规则和表的命名类似;
(2)命名应尽量体现各视图的功能。
4)触发器的命名
触发器以TR作为前缀,触发器名为相应的表名加上后缀,Insert触发器加 _I,Delete触发器加 _D ,Update触发器加 _U 。如:TR_User_I,TR_User_D,TR_User_U。
5)存储过程名
存储过程应以 UP_ 开头,和系统的存储过程区分,后续部分主要以动宾形式构成,并用下划线分割各个组成部分。
6)变量名
变量名采用小写,若属于词组形式,用下划线分隔每个单词。
7)命名中其他注意事项
(1)以上命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@);
(2)数据对象、变量的命名都采用英文字符,禁止使用中文命名,绝对不要在对象名的字符之间留空格;
(3)小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突;
(4)保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。
发表评论
-
Jackson2.x通用工具类
2014-11-03 11:38 4904import java.io.IOException; i ... -
面试题
2013-02-27 09:04 1707从1加到100(考虑减少循环次数)使用数学公式 首先要知道 ... -
单例延迟实例化
2013-01-23 08:55 13271.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双 ... -
java中重载与重写的区别
2013-01-21 10:03 925首先我们来讲讲:重载(Overloading) ( ... -
自定义标签
2012-12-15 12:58 997package com.fsti.tag; import ... -
JAXB格式化beanToXml
2012-12-14 15:03 1274context = JAXBContext.n ... -
面向对象的特征有哪些方面?
2012-12-13 09:36 1007计算机软件系统是现实 ... -
java nio缓冲器
2012-12-05 17:03 3604缓冲器仅仅是一个" 多功能 " 的数组。可 ... -
面向对象三大特性一句话概括
2012-12-04 15:58 1553封装可以隐藏实现细节,使得代码模块化; 继承可以扩 ... -
Java序列化高级认识
2012-12-04 09:13 1065将 Java 对象序列化为二进制文件的 Java 序列化技术是 ... -
面向接口编程——提升系统多态性和可扩展性
2012-12-03 14:10 1284接口的本质 接口,在表面上是由几个没有主体代码的方 ... -
面向对象之多态
2012-11-23 19:22 874多态性(polymorphisn)是允许你将父对象设置成为和一 ... -
我对"秒杀"在技术性上的一些看法
2012-11-22 11:31 1011秒杀,是指电子商务 ... -
项目编码
2012-11-16 13:59 1157看两个项目所用的编码是否一样 Java的乱码问题: ... -
SVN错误:Attempted to lock an already-locked dir
2012-11-07 09:08 1027出现这个问题后使用“ ... -
面向对象的三个基本特征
2012-11-04 08:31 1088面向对象的三个基本特征是:封装、继承、多态。 封装 封装最 ... -
预编译防sql注入
2012-11-03 20:23 1972prepareStatement会先初始化SQL,先把这个SQ ... -
Java类与对象的初始化
2012-10-19 09:33 896Java类与对象的初始化 面试的时候,经常会遇到这样的笔试题 ... -
commons bean
2012-10-19 09:15 889这是两个javabean对象 package com.bea ... -
java工具DateUtil
2012-10-12 14:42 1052//一年内的周一 public final class Da ...
相关推荐
#### 数据库设计原则 **2.1 设计数据库之前** 在设计数据库之前,需要明确数据库的目的、目标以及预期的负载情况。这一步骤对于后续的设计工作至关重要。 **2.2 表与字段的设计** - 确保表与字段的设计满足业务...
此外,数据库设计包括概念设计(ER图)、逻辑设计(关系模式)和物理设计(索引、存储优化),这些都是确保数据有效存储和高效访问的关键步骤。同时,了解数据库安全性、备份恢复策略以及事务处理也是必不可少的知识...
《软件数据库设计方案报告》 本报告旨在详细阐述一个软件项目的数据库...通过深入理解和执行这些设计原则,可以确保软件项目的数据管理能力达到预期标准,满足业务需求,同时为未来可能出现的变化留出足够的灵活性。
"软件设计方案(整理篇)" 软件设计方案是指在软件开发过程中,对软件的整体设计和规划,以确保软件的可靠性、可维护性、可扩展性和可重用性。软件设计方案是软件开发的重要组成部分,涉及到软件的各个方面,如用户...
《供应商系统软件设计方案说明书》是一份详尽的文档,旨在为软件开发团队提供明确的指导,确保软件设计的高效性和可实施性。该文档由拟制人、评审人和批准人在特定日期完成,并包含了修订历史,以跟踪文档的更新和...
《Xxx系统数据库设计说明书》是XX公司xx事业部的一个重要技术文档,主要目的是明确和规范Xxx系统的数据库设计,确保系统的稳定性和数据的安全性。以下是该文档的主要内容概述: 1.1 编写目的 这份文档的编写是为了...
总结来说,软件设计师需要对数据库有深入理解,包括数据库设计、事务处理、索引、SQL、优化、高可用性等方面的知识。通过不断学习和实践,才能在实际项目中有效地应用数据库技术,创造出高效、稳定的软件系统。
软件数据库设计方案报告是软件开发过程中不可或缺的一环,它详尽地描述了数据库的结构、设计原则和实现策略,为项目的顺利进行提供了清晰的蓝图。以下将深入探讨文档中提到的关键知识点。 1. 引言 引言部分通常包括...
数据库设计方案是数据库建设的基础和核心部分,该方案涵盖了数据库设计的各个方面,包括数据库设计原则、数据库逻辑设计、数据库内容设计等。以下是数据库设计方案的详细内容: 一、数据库设计原则 数据库设计原则...
《软件设计方案模板》是指导软件开发过程的重要文档,旨在详细阐述软件系统的设计思路、方法、目标和具体实现细节。这份文档通常由项目团队的核心成员,如软件架构师或设计师拟制,经过评审和批准后,作为开发人员...
在软件开发过程中,一个全面的软件设计方案是至关重要的,它为项目的成功提供了蓝图。这份111页的设计方案涵盖了从项目启动到后期维护的各个环节,确保了系统的稳定性和可扩展性。以下将详细阐述其中的关键知识点。 ...
文档的编写目的主要是为了规范数据库设计过程,明确设计目标,使开发人员能够理解并遵循设计原则,确保数据库系统满足软件系统的功能需求和性能指标。 1.2 背景 背景部分介绍了项目的基本情况,如项目的目标、预期...
这份文档是软件工程流程中的关键环节,旨在确保数据库设计符合项目需求,能够有效地存储、管理和检索数据。 1. 引言 - 编写目的:明确文档的主要目标,是为了指导数据库的设计与实现,为项目的成功提供坚实的基础...
软件设计方案 软件设计方案是软件开发过程中的一个重要步骤,它涵盖了软件设计的各个方面,包括用户界面设计、数据库设计、编程规范等。本文将对软件设计方案的各个方面进行详细的解释和分析。 一、用户界面设计...
软件数据库设计报告是软件开发过程中至关重要的一环,旨在详细阐述数据库的结构、设计原则和实施策略。编写本报告的目的是为项目团队、管理层和未来维护人员提供清晰的数据库设计方案,确保数据存储的有效性和高效...
《{项目名称}数据库设计报告》是一份详细阐述软件项目中数据库设计的文档,旨在确保项目的数据库架构合理、高效且安全。这份报告分为多个部分,涵盖了数据库设计的各个方面。 0.1 文档目的: 该报告的主要目的是...
本资源是关于软件详细设计方案的样本文件,包含了软件设计的各个方面,包括软件总体架构、界面设计、输出报表设计、数据库设计、xxxx 模块设计方案等。 软件总体架构是指软件的总体架构设计,描述了软件的整体结构...
本文档“软件设计方案[整理]”深入探讨了三个核心领域:用户界面设计规范、数据库设计原则以及编程规范总则,旨在为IT专业人士提供一套全面的指导原则。 **第一章:用户界面设计规范** 用户界面(UI)设计是软件与...