数据库的设计原则
数据库设计的基本原则是

数据库设计的基本原则是数据库设计的基本原则是确保数据的完整性、一致性、可靠性和可扩展性。
一个好的数据库设计应该能够满足用户需求,并且能够有效地存储和检索数据。
以下是数据库设计的一些基本原则:1. 数据库范式化- 第一范式(1NF):确保每个属性都是原子的,不可再分。
- 第二范式(2NF):确保非主键属性完全依赖于主键。
- 第三范式(3NF):确保非主键属性不依赖于其他非主键属性。
2. 数据库冗余最小化- 避免在多个表中存储相同的数据,通过建立关联来实现数据共享和一致性。
- 使用外键来建立表之间的关系,避免重复数据。
3. 数据库安全性- 设置适当的访问权限和角色,限制用户对敏感数据的访问。
- 使用加密算法对敏感信息进行加密存储,确保数据在传输和存储过程中的安全。
4. 数据库备份与恢复- 定期备份数据库以防止意外数据丢失。
- 建立有效的恢复机制,以便在需要时能够快速恢复数据库。
5. 数据库索引优化- 根据查询需求创建适当的索引,以提高查询性能。
- 避免创建过多的索引,因为过多的索引会增加写操作的开销。
6. 数据库性能优化- 使用合适的数据类型和字段长度来减少存储空间和提高查询效率。
- 优化查询语句,避免全表扫描和不必要的连接操作。
- 定期进行数据库性能监控和调优,以保持数据库的高性能。
7. 数据库一致性与完整性- 使用约束来确保数据的一致性和完整性,如主键、外键、唯一约束等。
- 设置触发器来处理复杂的业务规则和数据验证。
8. 数据库可扩展性- 设计合理的表结构以支持未来业务需求的扩展。
- 考虑使用分区表或分布式数据库来提高系统的可扩展性。
9. 数据库文档化- 记录数据库设计和架构,包括表结构、关系图、索引等信息。
- 编写清晰详细的数据库文档,方便后续维护和开发人员理解数据库结构。
10. 数据库规范化与反规范化- 根据实际需求进行规范化或反规范化处理,平衡数据存储和查询性能的需求。
总结:数据库设计的基本原则包括范式化、冗余最小化、安全性、备份与恢复、索引优化、性能优化、一致性与完整性、可扩展性和文档化。
数据库设计原则

数据库设计原则随着信息时代的到来,数据的应用变得越来越广泛。
数据库作为管理和组织数据的重要工具,在各个领域都扮演着重要的角色。
一个合理有效的数据库设计,对于数据的存储和管理至关重要。
本文将介绍一些常见的数据库设计原则,以帮助你更好地设计和优化数据库。
一、数据完整性原则数据完整性是指数据库中的数据的准确性和一致性。
为了确保数据的完整性,需要遵循以下几个原则:1. 实体完整性:每个表必须有一个唯一的主键来识别记录。
主键不允许为空,并且必须唯一标识每一行数据。
2. 属性完整性:字段的取值必须满足事先定义的约束条件,例如数据类型、长度等。
3. 参照完整性:在多个表之间建立关联关系时,必须保证外键的参照完整性。
即外键值必须存在于被参照表的主键中。
二、范式化原则范式化是数据库设计的基本原则,主要用于规范化数据模型。
常用的范式有第一范式、第二范式和第三范式,具体原则如下:1. 第一范式(1NF):对于一个关系模式R,如果R中的每一个属性的取值都是不可再分的,那么R就满足第一范式。
2. 第二范式(2NF):在满足第一范式的基础上,如果R中的非主属性完全依赖于主键,那么R就满足第二范式。
3. 第三范式(3NF):在满足第二范式的基础上,如果R中的非主属性不传递依赖于主键,那么R就满足第三范式。
范式化的设计可以避免数据冗余和更新异常,提高数据的存储效率和查询性能。
三、性能优化原则优化数据库性能是设计过程中需要考虑的重要因素之一。
以下是一些优化原则:1. 合理选择数据类型:选择适合的数据类型可以减少存储空间的占用,提高查询速度。
2. 创建索引:合理创建索引可以加快数据的检索速度。
主要对经常被查询的字段进行索引创建。
3. 分区设计:对于大型数据库,可以根据数据的特点进行分区设计,以减少查询的范围,提高查询效率。
4. 缓存数据:对于经常查询的数据,可以缓存到内存中,以减少磁盘IO的次数,提高查询速度。
四、安全性原则数据库的安全性是保护数据免受未经授权访问和恶意攻击的重要因素。
数据库设计原则范文

数据库设计原则范文1.数据库的规范化:数据库的规范化是指将数据按照一定的规则进行分解,以消除冗余和更新异常,并提高数据的一致性。
数据库规范化的目的是减少数据冗余,降低数据重复存储的风险,并保持数据一致性。
2.表与字段的命名规范:为了提高数据库的可读性和可维护性,需要对表和字段进行规范的命名。
命名应尽量简洁明了,避免使用过长的名称,同时要具备一定的描述性,以便于理解其含义。
3.设计合适的数据类型:在数据库设计中,选择合适的数据类型是非常重要的。
不同的数据类型有不同的存储方式和存储空间,选用合适的数据类型能够提高数据库的性能和存储效率。
同时,应该避免使用不必要的数据类型,以减少存储空间的浪费。
4.设计适当的索引:索引是加速数据库查询的有效方法,它能够提高查询效率和数据检索的性能。
在设计数据库时,需要根据查询需求和数据访问模式来设计适当的索引。
索引的设计原则是:将最频繁查询的字段作为索引字段,并在表的字段上避免重复索引。
5.数据库完整性约束:数据库完整性约束是指保证数据库数据的有效性和一致性的规则。
在数据库设计中,应该根据业务需求定义适当的完整性约束,以避免插入、更新和删除操作引起的数据不一致性和错误。
6.关联和连接的设计原则:在数据库设计中,应该合理使用关联和连接来处理表与表之间的关系。
关联和连接是数据库设计中非常重要的概念,能够提高数据的查询效率和数据的可用性。
在设计关系型数据库时,应该合理设计表之间的关系,以便提高数据的查询性能和操作效率。
7.安全性和权限控制:在数据库设计中,安全性和权限控制是非常重要的考虑因素。
应该根据用户的角色和权限来设计数据库的访问控制策略,以保证数据库的安全性和数据的机密性。
数据库的访问控制策略应该包括用户认证和授权、数据加密和审计等措施。
总结起来,数据库设计的原则包括规范化、命名规范、合适的数据类型、适当的索引、数据库完整性约束、关联和连接的设计原则以及安全性和权限控制等方面。
数据库设计原则

数据库设计原则数据库设计是构建稳健可靠的数据库系统的关键步骤。
一个好的数据库设计可以提高数据管理和操作的效率,保证数据的完整性和安全性。
本文将介绍一些常用的数据库设计原则,帮助您设计出高质量的数据库。
1. 规范化规范化是数据库设计过程中最基本的原则之一。
它是指将数据库中的数据组织成不同的表,通过消除冗余数据、确保数据依赖正确等方式,提高数据库的完整性和一致性。
规范化的具体步骤包括将数据分解为多个表,建立主键和外键关系等。
2. 适当的数据类型选择在数据库设计中,选择适当的数据类型可以提高数据库的性能和存储效率。
例如,对于存储整数的字段,选择较小的整数类型(如TINYINT)可以减少存储空间的占用。
而对于存储大型文本数据的字段,选择合适的文本类型(如VARCHAR或TEXT)可以避免数据截断问题。
3. 建立正确的索引索引是数据库中用于提高查询效率的重要手段。
正确选择和建立索引可以显著提高数据库的查询性能。
在设计数据库时,需要根据数据表的访问模式和查询需求,选择适当的字段作为索引并为其创建索引。
同时,需要注意索引的维护成本,合理使用组合索引和覆盖索引等技术。
4. 数据库安全性保护数据库中的数据免受非法访问和损坏是数据库设计的重要考虑因素。
为了保证数据库的安全性,需要采取一系列措施,如设置合适的用户权限和角色、使用强密码、定期备份数据等。
此外,对于包含敏感信息的数据,可以采用加密技术进行数据保护。
5. 异常处理在数据库设计过程中,需要考虑各种异常情况的处理。
例如,数据插入或更新时出现异常、连接中断或数据库崩溃等情况。
为了保证数据库的稳定性和可恢复性,可以设置事务机制、使用存储过程和触发器等技术,对异常情况进行处理和恢复。
6. 性能调优数据库的性能也是一个重要的设计考虑因素。
通过合理的索引设计、优化查询语句、分区等技术,可以提高数据库的查询响应速度和并发处理能力。
同时,需要对数据库进行性能监控和调优,及时发现和解决潜在的性能问题。
数据库设计的原则

数据库设计的原则数据库设计是一个关键的步骤,它会直接影响到后续的数据管理和应用使用。
一个良好的数据库设计能够提高数据的可靠性、安全性和性能。
在进行数据库设计时,需要考虑一些重要的原则,本文将介绍一些数据库设计的原则和注意事项。
一、需求分析和规范化在开始数据库设计之前,首先需要进行需求分析。
仔细了解用户的需求,明确数据库的功能和数据要求。
在需求分析的基础上,进行数据的规范化。
数据规范化是指将数据库中的表设计为满足特定的范式要求,以提高数据的一致性、减少冗余和避免更新异常。
常见的范式有第一范式、第二范式和第三范式。
二、适当的数据类型选择在数据库设计中,选择适当的数据类型是非常重要的。
不同的数据类型适用于不同的数据存储需求。
例如,对于整数型数据可以选择INT,对于字符串型数据可以选择VARCHAR。
选择合适的数据类型可以有效地节省存储空间,并提高查询和更新操作的效率。
三、合理的表结构设计数据库的表结构设计是整个数据库设计的核心。
在设计表结构时,应该遵循以下原则:1. 根据数据的关系划分表:将具有相同属性的数据划分为一个表,避免在一张表中存储过多的信息。
2. 定义主键:每个表必须有一个主键,用于唯一标识表中的每条记录。
3. 建立关系:在关系型数据库中,可以通过外键建立表与表之间的关系,保证数据的一致性和完整性。
四、索引的创建和优化索引是提高数据库性能的关键因素之一。
在数据库设计中,需要合理地创建索引,并优化已有的索引。
创建索引可以加快数据检索的速度,但是过多或不必要的索引会增加数据的插入和更新的成本。
在创建索引时,需要根据实际需求进行权衡。
五、数据完整性、安全性和备份保持数据的完整性和安全性是数据库设计的重要原则之一。
通过合理的约束条件和权限控制,可以保证数据的一致性和安全性。
此外,及时进行数据备份和恢复,以防止数据丢失和系统故障。
六、性能优化和扩展性考虑在设计数据库时,需要考虑系统的性能和扩展性。
通过合理的表结构设计、索引优化和查询优化,可以提高数据库的查询和更新效率。
数据库的设计原则

数据库的设计原则数据库的设计是软件开发领域中非常重要的一部分,它需要遵循一些原则以确保数据库的可靠性、易用性、灵活性和安全性。
以下是一些关于数据库设计的原则:1.需求分析在数据库设计的开始阶段,需要对使用数据库的用户和应用进行仔细的需求分析。
这包括确定每个用户的数据使用需求以及用户如何与数据库进行交互。
需求分析有助于确定数据库的实际使用情况和功能要求。
2. 数据的一致性和完整性在设计数据库时,需要确保数据保持一致和完整性。
数据一致性是指数据在不同的位置和应用程序之间的保持一致。
而数据完整性是指保持数据的正确性和一致性,以确保数据库中不会出现任何无效或重复的数据。
3. 使用合适的数据类型选择正确的数据类型是保持数据库设计的一致性和完整性的重要方面。
选择不合适的数据类型会导致数据存在问题以及数据库性能受到影响。
4. 数据库的结构化按照某种结构去设计数据可以确保数据库保持一致和易于维护。
遵循结构化设计的原则,可以使更多的数据存放到单个表中,并且可以轻松地通过索引进行访问。
在数据库的具体实现过程中,设计必须包括具体的表结构,每个表中包含哪些字段数据以及数据之间的关联等。
5. 数据库的安全性数据库的安全性是非常重要的。
敏感信息有安全威胁无疑。
这些包括账户信息、密码等等。
数据库的设计者应当使用安全保存的方式来储存密码。
过多的人存储密码可能导致泄密事件的发生。
最好的安全策略之一是对所有敏感数据进行加密存储,另一种是对全局权限进行访问控制。
数据库管理员可以为每个用户或应用程序单独授权。
6. 数据库的性能优化数据库的设计是应考虑到性能方面的。
通过使用合适的数据缓存技术,功能强大的索引,存储空间优化等设计方式,可以如提高数据库的性能和响应时间,这些设计方法能让数据库处于一个高效的运行状态。
总之,数据库设计的原则包括需求分析、数据的一致性和完整性、使用合适的数据类型、数据库的结构化、数据库的安全性以及数据库的性能优化。
数据库设计的基本原则与方法

数据库设计的基本原则与方法数据库设计是一项复杂的工作,需要遵循一定的原则和方法来确保数据库的有效性和可靠性。
本文将介绍一些基本的数据库设计原则和方法,并探讨如何应用这些原则和方法来制定可靠的数据库设计。
1. 数据库设计的基本原则(1)合理性原则数据库设计的主要目的是满足用户的需求。
在设计过程中,必须考虑到数据库的规模、复杂度、数据处理效率、安全性、可维护性等多方面因素,以确保数据库的合理性。
(2)一致性原则数据库中的数据必须保持一致性。
在设计过程中,应该避免出现重复、模糊或冲突的数据,避免不完整或不正确的数据输入,避免数据冗余等问题。
(3)可扩展性原则随着数据库的使用不断增加,应该具备相应的扩展性。
设计时可以考虑设计数据表的扩张性、设计数据类型的扩展性等。
(4)安全性原则数据库中存储了大量的敏感数据,如用户的姓名、身份证号码、住址、银行卡号等。
因此,数据库设计时必须确保数据的安全性,采取相应的安全措施,如加密、权限控制等。
2. 数据库设计的方法(1)需求分析数据库设计的第一步是进行需求分析。
需求分析的目的是明确数据库的使用需求,包括数据存储、查询、更新、删除等操作,以及统计分析和报表输出等。
(2)概念设计概念设计是数据库设计的第二步。
在概念设计阶段,应该建立实体-关系模型(ER模型),明确数据库中需要存储的实体、实体之间的关系以及属性。
(3)逻辑设计逻辑设计是对概念设计的进一步细化和规范化。
在逻辑设计阶段,应该将实体-关系模型转换为关系模型,确定关系的范式和主外键的关系。
(4)物理设计物理设计是将逻辑设计转换为关系数据库的实际物理结构。
在物理设计阶段,应该考虑数据的存储方式、查询效率、数据安全等问题。
3. 数据库设计的注意事项(1)避免数据冗余数据冗余会导致数据不一致、浪费存储空间等问题,在设计过程中应该避免数据冗余。
(2)合理设置主键和外键主键和外键是关系数据库中的重要概念,应该合理设置主键和外键,保证数据的完整性和一致性。
数据库的设计原则

数据库的设计原则随着信息技术的发展和数据量的不断增长,数据库设计成为了现代信息系统中至关重要的一环。
数据库设计的质量直接影响着系统的性能、可靠性和可维护性。
在进行数据库设计时,遵循一些设计原则可以帮助开发人员创建出高效、稳定和易于管理的数据库系统。
本文将探讨数据库设计的一些重要原则,希望能给读者提供一些有益的指导。
1. 数据一致性数据一致性是数据库设计的基础原则之一。
在设计过程中,要确保数据的完整性和正确性。
合理地定义实体、属性和关系,遵循数据库的范式,可以帮助减少数据冗余和不一致性。
同时,使用约束和触发器来保证数据的有效性,例如使用主键、外键、唯一约束和检查约束等。
2. 数据库的可扩展性数据库在面对不断增长的数据量时,应该具备良好的可扩展性。
这就要求在数据库设计过程中考虑到系统未来的发展需求,合理地选择表结构、数据类型和索引等。
避免创建不必要的冗余数据和不必要的索引,以提高数据库的性能和可维护性。
此外,一些先进的数据库管理系统提供了分布式数据库和分区表等功能,可以进一步提高数据库的扩展性。
3. 数据库的性能数据库的性能对于系统整体性能具有重要的影响。
在设计数据库时,应该合理规划表之间的关系、索引的建立和查询语句的优化等。
合理地选择查询策略、优化SQL语句和使用缓存等方法,可以提高数据库的查询效率和响应速度。
此外,定期对数据库进行维护和优化,例如索引重建、表分区和数据压缩等,也是提高数据库性能的重要手段。
4. 数据库的安全性数据库中存储了重要的商业数据和用户信息,因此数据库安全性非常重要。
在设计数据库时,要考虑到数据库的访问权限管理和用户认证的需求,合理地设置用户角色和权限。
同时,采取加密、备份和恢复等措施,确保数据库的安全性和可靠性。
为了防止数据库被未授权人员访问和攻击,要定期更新数据库系统和软件补丁,以及监控数据库的访问情况。
5. 数据库的易维护性数据库的易维护性是数据库设计的重要考虑因素之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库的设计原则1. 原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。
在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。
在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。
这里的实体可以理解为基本表。
明确这种对应关系后,对我们设计录入界面大有好处。
〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。
这就是“一张原始单证对应多个实体”的典型例子。
2. 主键与外键一般而言,一个实体不能既无主键又无外键。
在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。
主键与外键的设计,在全局数据库的设计中,占有重要地位。
当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。
因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。
3. 基本表的性质基本表与中间表、临时表不同,因为它具有如下四个特性:(1) 原子性。
基本表中的字段是不可再分解的。
(2) 原始性。
基本表中的记录是原始数据(基础数据)的记录。
(3) 演绎性。
由基本表与代码表中的数据,可以派生出所有的输出数据。
(4) 稳定性。
基本表的结构是相对稳定的,表中的记录是要长期保存的。
理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。
4. 范式标准基本表及其字段之间的关系, 应尽量满足第三范式。
但是,满足第三范式的数据库设计,往往不是最好的设计。
为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。
〖例2〗:有一张存放商品的基本表,如表1所示。
“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。
但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。
在Rose 2002中,规定列有两种类型:数据列和计算列。
“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。
表1 商品表的表结构商品名称商品型号单价数量金额电视机29吋2,500 40 100,0005. 通俗地理解三个范式通俗地理解三个范式,对于数据库设计大有好处。
在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
没有冗余的数据库设计可以做到。
但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。
具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。
降低范式就是增加字段,允许冗余。
6. 要善于识别与正确处理多对多的关系若两个实体之间存在多对多的关系,则应消除这种关系。
消除的办法是,在两者之间增加第三个实体。
这样,原来一个多对多的关系,现在变为两个一对多的关系。
要将原来两个实体的属性合理地分配到三个实体中去。
这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。
一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。
〖例3〗:在“图书馆信息系统”中,“图书”是一个实体,“读者”也是一个实体。
这两个实体之间的关系,是一个典型的多对多关系:一本图书在不同时间可以被多个读者借阅,一个读者又可以借多本图书。
为此,要在二者之间增加第三个实体,该实体取名为“借还书”,它的属性为:借还时间、借还标志(0表示借书,1表示还书),另外,它还应该有两个外键(“图书”的主键,“读者”的主键),使它能与“图书”和“读者”连接。
7. 主键PK的取值方法PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串, 由程序自动加1来实现。
也可以是有物理意义的字段名或字段名的组合。
不过前者比后者好。
当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。
8. 正确认识数据冗余主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。
非键字段的重复出现, 才是数据冗余!而且是一种低级冗余,即重复性的冗余。
高级冗余不是字段的重复出现,而是字段的派生出现。
〖例4〗:商品中的“单价、数量、金额”三个字段,“金额”就是由“单价”乘以“数量”派生出来的,它就是冗余,而且是一种高级冗余。
冗余的目的是为了提高处理速度。
只有低级冗余才会增加数据的不一致性,因为同一数据,可能从不同时间、地点、角色上多次录入。
因此,我们提倡高级冗余(派生性冗余),反对低级冗余(重复性冗余)。
9. E--R图没有标准答案信息系统的E--R图没有标准答案,因为它的设计与画法不是惟一的,只要它覆盖了系统需求的业务范围和功能内容,就是可行的。
反之要修改E--R图。
尽管它没有惟一的标准答案,并不意味着可以随意设计。
好的E—R图的标准是:结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。
10 . 视图技术在数据库设计中很有用与基本表、代码表、中间表不同,视图是一种虚表,它依赖数据源的实表而存在。
视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式, 是数据处理的一种方法,是用户数据保密的一种手段。
为了进行复杂处理、提高运算速度和节省存储空间, 视图的定义深度一般不得超过三层。
若三层视图仍不够用, 则应在视图上定义临时表,在临时表上再定义视图。
这样反复交迭定义, 视图的深度就不受限制了。
对于某些与国家政治、经济、技术、军事和安全利益有关的信息系统,视图的作用更加重要。
这些系统的基本表完成物理设计之后,立即在基本表上建立第一层视图,这层视图的个数和结构,与基本表的个数和结构是完全相同。
并且规定,所有的程序员,一律只准在视图上操作。
只有数据库管理员,带着多个人员共同掌握的“安全钥匙”,才能直接在基本表上操作。
请读者想想:这是为什么?11. 中间表、报表和临时表中间表是存放统计数据的表,它是为数据仓库、输出报表或查询结果而设计的,有时它没有主键与外键(数据仓库除外)。
临时表是程序员个人设计的,存放临时记录,为个人所用。
基表和中间表由DBA维护,临时表由程序员自己用程序自动维护。
12. 完整性约束表现在三个方面域的完整性:用Check来实现约束,在数据库设计工具中,对字段的取值范围进行定义时,有一个Check按钮,通过它定义字段的值城。
参照完整性:用PK、FK、表级触发器来实现。
用户定义完整性:它是一些业务规则,用存储过程和触发器来实现。
13. 防止数据库设计打补丁的方法是“三少原则”(1) 一个数据库中表的个数越少越好。
只有表的个数少了,才能说明系统的E--R图少而精,去掉了重复的多余的实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计;(2) 一个表中组合主键的字段个数越少越好。
因为主键的作用,一是建主键索引,二是做为子表的外键,所以组合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间;(3) 一个表中的字段个数越少越好。
只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗余,更重要的是督促读者学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许多空余的字段。
所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。
这个方法很简单,有的人就是不习惯、不采纳、不执行。
数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。
“三少”是一个整体概念,综合观点,不能孤立某一个原则。
该原则是相对的,不是绝对的。
“三多”原则肯定是错误的。
试想:若覆盖系统同样的功能,一百个实体(共一千个属性) 的E--R图,肯定比二百个实体(共二千个属性) 的E--R 图,要好得多。
提倡“三少”原则,是叫读者学会利用数据库设计技术进行系统的数据集成。
数据集成的步骤是将文件系统集成为应用数据库,将应用数据库集成为主题数据库,将主题数据库集成为全局综合数据库。
集成的程度越高,数据共享性就越强,信息孤岛现象就越少,整个企业信息系统的全局E—R图中实体的个数、主键的个数、属性的个数就会越少。
提倡“三少”原则的目的,是防止读者利用打补丁技术,不断地对数据库进行增删改,使企业数据库变成了随意设计数据库表的“垃圾堆”,或数据库表的“大杂院”,最后造成数据库中的基本表、代码表、中间表、临时表杂乱无章,不计其数,导致企事业单位的信息系统无法维护而瘫痪。
“三多”原则任何人都可以做到,该原则是“打补丁方法”设计数据库的歪理学说。
“三少”原则是少而精的原则,它要求有较高的数据库设计技巧与艺术,不是任何人都能做到的,因为该原则是杜绝用“打补丁方法”设计数据库的理论依据。
14. 提高数据库运行效率的办法在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的办法是:(1) 在数据库物理设计时,降低范式,增加冗余, 少用触发器, 多用存储过程。
(2) 当计算非常复杂、而且记录条数非常巨大时(例如一千万条),复杂计算要先在数据库外面,以文件系统方式用C++语言计算处理完成之后,最后才入库追加到表中去。
这是电信计费系统设计的经验。
(3) 发现某个表的记录太多,例如超过一千万条,则要对该表进行水平分割。
水平分割的做法是,以该表主键PK的某个值为界线,将该表的记录水平分割为两个表。
若发现某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。
(4) 对数据库管理系统DBMS进行系统优化,即优化各种系统参数,如缓冲区个数。
(5) 在使用面向数据的SQL语言进行程序设计时,尽量采取优化算法。
总之,要提高数据库的运行效率,必须从数据库系统级优化、数据库设计级优化、程序实现级优化,这三个层次上同时下功夫。
上述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。
对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。
并逐步做到:在应用中发展,在发展中应用。