在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的办法是: (1) 在数据库物理设计时,降低范式,增加冗余, 少用触发器, 多用存储过程。 (2) 当计算非常复杂、而且记录条数非常巨大时(例如一千万条),复杂计算要先在数据库外面,以文件系统方式用C++语言计算处理完成之后,最后才入库追加到表中去。这是电信计费系统设计的经验。 【数据库设计技巧14项】 在数据库设计过程中,有14个重要的技巧值得我们关注和遵循,这些技巧来源于大量的实践经验和专业人士的智慧结晶。在设计数据库时,我们应该灵活运用,结合实际情况,避免盲目套用。 1. **原始单据与实体关系**: 原始单据与实体的关系通常表现为一对一、一对多或多对一。通常情况下,一个原始单据对应一个实体,但在特定场景下,可能会有一张单据对应多个实体,或者多个单据对应一个实体。例如,员工履历资料可能分布在员工基本情况表、社会关系表和工作简历表等多个基本表中。 2. **主键与外键**: 主键和外键在数据库设计中起到关键作用。主键用于标识实体,外键则用于关联不同的实体。在ER图中,叶节点实体可有主键也可无,但必须有外键。良好的键设计是数据库设计的核心,主键与外键的搭配能够清晰表示实体间的联系。 3. **基本表的性质**: 基本表与其他类型的表(如中间表、临时表)不同,其特点包括原子性(字段不可再分)、原始性(存储原始数据)、演绎性(数据可派生出所有输出)和稳定性(结构稳定,长期保存数据)。理解这些特性有助于区分不同类型的表。 4. **范式标准**: 虽然理论上,数据库设计应尽量满足第三范式,以减少数据冗余和更新异常。但在实际操作中,为了提升效率,我们可能需要牺牲部分范式,适当增加冗余。例如,商品表中添加“金额”字段,虽然违反了第三范式,但能加快查询速度,实现空间换取时间。 5. **理解范式**: 三个范式(第一范式、第二范式、第三范式)分别对原子性、唯一性和冗余性做了规定。设计时,我们要理解并灵活运用这三个范式,确保概念数据模型符合第三范式,而在物理数据模型阶段考虑降范式优化。 6. **处理多对多关系**: 遇到多对多关系时,需要引入第三个实体来消除它。例如,图书与读者之间的多对多关系,可以通过创建“借还书”实体来转换成两个一对多关系。新增实体需合理分配原有实体的属性。 此外,数据库设计还需考虑以下几点: 7. **存储过程与触发器**: 在物理设计时,少用触发器,多用存储过程,以降低范式,增加效率。 8. **复杂计算处理**: 当数据量庞大且计算复杂时,可先用文件系统和编程语言(如C++)进行预处理,再将结果存入数据库,以减轻数据库负担,如电信计费系统的经验所示。 9. **优化查询性能**: 使用索引、分区等技术提升查询速度,根据业务需求进行适当的表结构优化。 10. **安全性**: 设计访问控制机制,确保数据安全,防止未授权访问和数据泄露。 11. **扩展性**: 考虑系统未来的扩展性,设计时留有余地,以便适应业务增长。 12. **备份与恢复**: 实施定期备份策略,并确保有快速有效的数据恢复方案。 13. **性能监控**: 实时监控数据库性能,及时调整参数设置,优化运行效率。 14. **文档记录**: 编写详细的设计文档,便于团队协作和后期维护。 数据库设计是一项涉及多方面因素的综合工作,需要结合理论知识、实践经验以及对业务需求的深入理解,才能构建出高效、稳定、易维护的数据库系统。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助