
本文共 1080 字,大约阅读时间需要 3 分钟。
数据库设计是信息系统的核心技术之一,本文将从多个维度探讨数据库设计的关键原则与实践。
1. 原始单据与实体关系
原始单据与实体之间的关系可以是 一对一、一对多或多对多。一般情况下,它们是一对一的关系,即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系。理解这种对应关系对设计录入界面至关重要。
例1:员工履历资料在人力资源信息系统中对应三个基本表:员工基本情况表、社会关系表、工作简历表。这体现了"一张原始单证对应多个实体"的关系。
2. 主键与外键
主键与外键是数据库设计的重要原则。一个实体不能既无主键又无外键。主键是实体的高度抽象,主键与外键的配对表示实体之间的连接。主键可以是物理意义上的数字串,也可以是字段名的组合,但后者不建议使用。
3. 基本表性质
基本表具有以下四个特性:
4. 范式标准
基本表设计应尽量满足第三范式,但为了提高效率,适当降低范式标准,通过冗余优化处理。例2:商品表中的"金额"字段虽可以由"单价"和"数量"计算,但增加冗余字段以提升查询效率。
5. 多对多关系处理
多对多关系应通过第三个实体消除。例3:图书馆信息系统中图书与读者之间的多对多关系可通过借还书实体解决。
6. 主键取值方法
主键可是程序自增数字串,或有物理意义的字段名组合。建议使用数字串,避免字段组合带来的性能问题。
7. 数据冗余认识
主键和外键的重复不算冗余。非键字段重复才是低级冗余。例4:商品表中的"金额"字段是高级冗余,通过派生实现。
8. E-R图标准
E-R图没有标准答案,但需结构清晰、关联简洁。视图技术可用于复杂处理和数据保密,视图深度一般不超过三层。
9. 中间表、报表与临时表
中间表用于统计和报表,临时表用于临时存储。基本表和中间表由DBA维护,临时表由程序员维护。
10. 完整性约束
完整性约束包括域完整性、参照完整性和用户定义完整性。需通过Check、PK/FK和触发器等手段实现。
11. "三少"原则
一个数据库中表的个数越少越好。主键字段个数和字段个数也应尽可能少。通过"列变行"优化字段分布,杜绝数据冗余。
12. 数据库效率优化
在硬件和软件条件下,提高效率需从以下方面入手:
数据库设计需灵活掌握"三少"原则,避免打补丁式设计,确保系统长期稳定高效运行。