一、成立数据小组
大型数据库数据元素多,在设计上有必要成立专门的数据小组。由于数据库设计者不一定是使用者,对系统设计中的数据元素不可能考虑周全,数据库设计出来后,往往难以找到所需的库表,因此数据小组最好由熟悉业务的项目骨干组成。
数据小组的职能并非是设计数据库,而是通过需求分析,在参考其他相似系统的基础上,提取系统的基本数据元素,担负对数据库的审核。审核内容包括审核新的数据库元素是否完全、能否实现全部业务需求;对旧数据库(如果存在旧系统)的分析及数据转换;数据库设计的审核、控制及必要调整。
二、设计原则
1.规范命名。所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。
2.控制字段的引用。在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。
3.库表重复控制。在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。
4.并发控制。设计中应进行并发控制,即对于同一个库表,在同一时间只有一个人有控制权,其他人只能进行查询。
5.必要的讨论。数据库设计完成后,数据小组应与相关人员进行讨论,通过讨论来熟悉数据库,从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息。
6.数据小组的审核。库表的定版、修改最终都要通过数据小组的审核,以保证符合必要的要求。
7.头文件处理。每次数据修改后,数据小组要对相应的头文件进行修改(可由管理软件自动完成),并通知相关的开发人员,以便进行相应的程序修改。
三、设计技巧
1.分类拆分数据量大的表。对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。
2.索引设计。对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。
3.数据操作的优化。在大型数据库中,如何提高数据操作效率值得关注。例如,每在数据库流水表中增加一笔业务,就必须从流水控制表中取出流水号,并将其流水号的数值加一。正常情况下,单笔操作的反应速度尚属正常,但当用它进行批量业务处理时,速度会明显减慢。经过分析发现,每次对流水控制表中的流水号数值加一时都要锁定该表,而该表却是整个系统操作的核心,有可能在操作时被其他进程锁定,因而使整个事务操作速度变慢。对这一问题的解决的办法是,根据批量业务的总笔数批量申请流水号,并对流水控制表进行一次更新,即可提高批量业务处理的速度。另一个例子是对插表的优化。对于大批量的业务处理,如果在插入数据库表时用普通的Insert语句,速度会很慢。其原因在于,每次插表都要进行一次I/O操作,花费较长的时间。改进后,可以用Put语句等缓冲区形式等满页后再进行I/O操作,从而提高效率。对大的数据库表进行删除时,一般会直接用Delete语句,这个语句虽然可以进行小表操作,但对大表却会因带来大事务而导致删除速度很慢甚至失败。解决的方法是去掉事务,但更有效的办法是先进行Drop操作再进行重建。
4.数据库参数的调整。数据库参数的调整是一个经验不断积累的过程,应由有经验的系统管理员完成。以Informix数据库为例,记录锁的数目太少会造成锁表的失败;逻辑日志的文件数目太少会造成插入大表失败等,这些问题都应根据实际情况进行必要的调整。
5.必要的工具。在整个数据库的开发与设计过程中,可以先开发一些小的应用工具,如自动生成库表的头文件、插入数据的初始化、数据插入的函数封装、错误跟踪或自动显示等,以此提高数据库的设计与开发效率。
6.避免长事务。对单个大表的删除或插入操作会带来大事务,解决的办法是对参数进行调整,也可以在插入时对文件进行分割。对于一个由一系列小事务顺序操作共同构成的长事务(如银行交易系统的日终交易),可以由一系列操作完成整个事务,但其缺点是有可能因整个事务太大而使不能完成,或者,由于偶然的意外而使事务重做所需的时间太长。较好的解决方法是,把整个事务分解成几个较小的事务,再由应用程序控制整个系统的流程。这样,如果其中某个事务不成功,则只需重做该事务,因而既可节约时间,又可避免长事务。
7.适当超前。计算机技术发展日新月异,数据库的设计必须具有一定前瞻性,不但要满足当前的应用要求,还要考虑未来的业务发展,同时必须有利于扩展或增加应用系统的处理功能。
与小型数据库相比,大型数据库的设计与开发要复杂得多,因此在设计、开发过程中,除了要遵循数据库范式理论、增加系统的一致性和完整性外,还要在总体上根据具体情况进行分布式设计,紧紧把握集中控制、统一审核的基本原则,保证数据库设计结构紧凑、分布平衡、定位迅速。在数据库操作上,要采用一定的技巧提高整个应用系统的执行效率,并注意适当超前,以适应不断变化的应用及系统发展的要求。
分享到:
相关推荐
数据库设计原则总结 本文总结了数据库设计的重要原则,包括原始单据与实体之间的关系、主键与外键的设计、基本表的性质、范式标准、通俗地理解三个范式、要善于识别与正确处理多对多的关系、主键PK的取值方法等七个...
### 数据库设计原则与技巧详解 #### 一、数据库设计原则概述 数据库设计是构建高效、稳定、可扩展数据存储系统的关键步骤。优秀的数据库设计不仅能提高数据管理的效率,还能确保数据的一致性和完整性,降低后期...
以下是一些核心的数据库设计原则和技巧,特别针对Oracle数据库: 1. **第三范式(3NF)**:3NF是数据库设计中常见的规范化程度,旨在减少数据冗余和提高数据一致性。它要求表中的每个非主键字段都完全依赖于主键,...
本压缩包文件提供了关于数据库设计的一些关键知识点,包括三大模式、数据库设计原则以及一系列SQL语句。 首先,我们要理解数据库设计的三大模式:概念数据模型、逻辑数据模型和物理数据模型。概念数据模型,通常用...
以下是关于“数据库设计原则14法则”的详细解析: 1. 原始单据与实体之间的关系:数据库设计时,需要考虑原始数据源(如业务表格)与实体表之间的映射。通常,一张原始单据对应一个实体,但也有特殊情况,如一对一...
数据库设计原则 数据库设计原则是数据库设计的核心要素,它们决定了数据库的架构和性能。本文将从八个方面详细讲解数据库设计原则,包括原始单据与实体之间的关系、主键与外键、基本表的性质、范式标准、通俗地理解...
大型数据库设计原则大型数据库设计原则
Web数据库设计原则 Web数据库设计原则是指在设计Web数据库时需要遵循的一些基本原则和规则,这些原则和规则的遵循可以确保Web数据库的安全、可靠、灵活和高效。Web数据库设计原则主要包括Web数据库概述、Web数据库...
【规范化数据库设计原则详解】 关系型数据库是现代信息系统的基础,其设计的核心在于关系模型的构建。随着项目规模的扩大,数据库的复杂性也随之增加,此时,数据库设计的规范化显得尤为重要。规范化是解决数据库中...
以下是对4.3.1数据库设计原则的详细解释: 1. 层次分明,布局合理:这一原则强调数据库应有清晰的逻辑结构,使得数据之间的关系直观明了。层次分明的数据库便于理解、维护和扩展。数据库应根据业务需求,将数据分为...
本文将探讨一些核心的设计原则,旨在优化数据库的设计,提高系统的整体性能。 首先,简洁明了的命名规范至关重要。数据库、表和字段的命名应当清晰反映其用途,如使用公司简称加系统名称来命名数据库,如"BxxCRM"。...
【Web数据库设计原则】主要涉及Web数据库的基本概念、选择、连接方法以及在实际应用中的实现。以下是关于这些知识点的详细说明: 7.1 Web数据库概述: Web数据库是通过Web技术来访问和操作数据库的一种方式。它允许...
以下是对标题和描述中提到的数据库设计原则的详细说明: 1. 原始单据与实体之间的关系:在数据库设计中,原始单据通常对应于业务过程中的基本数据单元,而实体则是这些数据在数据库中的抽象表现。一对一、一对多和...
### 软件工程中的数据库设计原则 #### 第一章:软件工程中的数据库设计原则 **1.1 数据库设计原则概述** - **重要性**:数据库设计在软件工程中至关重要,良好的数据库设计能显著提升应用程序的性能和用户体验。 ...
规范化-数据库设计原则 数据库设计的核心问题是关系模型的设计。关系数据库设计是对数据进行组织化和结构化的过程。核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构...
以下是一些主要的数据库设计原则及其详细解释: 1. 字符串类型选择:在定义字符串字段时,应根据实际需求决定使用`char`还是`varchar`类型。`char`类型具有固定的存储长度,查询速度快,但可能造成存储空间的浪费。...