数据库设计:从简单到复杂的实践指南
在数据库设计领域,规范化的关系数据库具有诸多优势。乍一看,规范化的设计可能比将所有列简单地放入单个表的初始设计更复杂,但随着深入了解,会发现规范化的数据库更易于编程和维护,也更能适应变化。在设计关系时投入的精力,将在数据库的整个生命周期中带来巨大回报。
数据库设计的最后一步:编写域完整性规则
作为数据库设计的最后一步,需要编写数据库的域完整性规则。这些规则用于检查写入数据库的数据是否与数据库所建模的域的性质一致。
例如,设计一个存储地址的表时,可以编写一条域完整性规则,规定任何地址都不能有邮政编码 00000,因为不存在这样的邮政编码。
域完整性规则本身并非数据库的一部分,而是在软件中实现。这些规则很有用,能帮助防止无意义的数据写入数据库。这一阶段是数据库设计过程的最后一步,也是一个持续的阶段。在使用数据库的过程中,会不断发现更多管理域完整性的规则,并将其中一些或全部融入管理数据库的软件中。数据库项目永远不会真正结束,改进数据库的方法会不断涌现。
数据库设计的艺术
数据库设计是一门艺术,需要在简单性和直接性之间取得平衡。就像 Frederick Brooks 所说:“那个系统是最好的,在其中人们能够以最简洁和直接的方式指定事物。做到简单或直接并不难,难的是同时做到两者。”
可以将数据库视为一个用于存储和操作数据的机器。一个设计良好的机器运行高效,没有多余的部分,每个部分都尽可能简单,并且各个部分之间配合良好。但与机器不同的是,数据库通常需要在日常运行中进行修改,这就像在飞机飞行时对其进行重建,会面临诸多问题。
数据库设计的艺术很大程度上在于平