数据库设计的过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分,数据库设计的成败往往直接关系到整个应用系统的成败。以数据库为基础的数据库应用系统与其他计算机应用系统相比往往具有数据量庞大、数据保存时间长、数据关联复杂、用户要求多样化等特点。
数据库设计过程一般包括:需求分析、概念设计、逻辑设计、物理设计、应用开发(系统实施)、系统维护。
数据库设计中面临的主要困难和问题有:
(1)同时具备数据库知识与应用业务知识的人很少。懂得计算机与数据库的人一般都缺乏应用业务知识和实际经验,而熟悉应用业务的人又往往不懂计算机和数据库。
(2)项目初期往往不能确定应用业务的数据库系统的目标。
(3)缺乏完善的设计工具和设计方法。
(4)需求的不确定性。用户总是在系统开发过程中不断提出新要求,甚至在数据库建立之后还要求修改数据库结构或增加新的应用。
(5)应用业务系统千差万别,很难找到一种适合所有业务的工具和方法,这就增加了研究数据库自动生成工具的难度。因此,研制适合一切应用业务的全自动数据库生成工具是不可能的。
数据库设计的关键是确保数据效率、可用性和安全性。
因此,规范化数据库对简化开发和始终如一的高性能至关重要。规范化存在很多层次,设计过程中另一个极端是极容易造成过度规范化的数据库设计。良好的规范化平衡了记录插入、更新、查询和删除的需求。采用最广泛的最佳实践是,数据库必须至少规范化到第三范式(Third Normal Form,简称 3NF)。
冗余表和字段对数据库设计人员和管理员来说是一个噩梦。它们需要占用系统资源才能保持安全、更新和备份。当我们讨论十多个记录时