关系型数据库理论可能是20 世纪60 年代和70 年代存储系统先锋的救星,但是从那是开始它就成了许多数据开发人员的毒药,就是因为现代数据库系统发展得如此之好,以至于它将其关系型支柱对开发人员隐藏了
设计良好的关系型数据库很容易使用、很灵活,并且能够保护数据的有效性
而设计不良的数据相反仍然能够发挥相当的作用,但是最终可能会导致数据的无效、错误或者丢失
开发人员有一些专用的规则,叫做范式(normal forms),他们根据这些规则来创建设计良好的数据库
在这里,我将通过创建一个用于保存书籍信息的简单数据库来探讨一下范式
确定实体和元素 设计数据库的第一步是做你的家庭作业并确定你所需要的实体
实体是数据一种类型的概念集
通常只从一两个实体开始,再随着你数据的规范化而增加列表
对于我们的示例数据库,它看上去就好像我们只需要一个实体——书
在确定了所需要实体的清单之后,你下一步就需要为每个实体创建数据元素(也就是说,你需要保存的信息)的清单
收集这样的信息有多种途径,但是最有效的可能就是依赖你的用户了
向你的用户询问他们日常工作的情况,要求查看当前完成他们工作所需要的各种表格和报告
例如,订单上可能会列出你创建销售应用程序所需要的许多数据元素
我们的书籍实体没有书面表格和报告可用,但是下列元素清单将有助于我们开始设计这个数据库: {Title, Author, ISBN, Price, Publisher, Category} 很重要的一点是,要注意,把我们这里要用的实体移动到元素的过程并不能适用于所有状况
你所需要的实体不会总是像我们书籍示例那样清楚,所以你可能要从数据元素的一长串清单开始,在后面你会根据实体来划分元素
正规化的头几步 一旦有了实体清单(表格)和数据元素(字段),你就准备好让关系型数据库理论运作了
这个理论的主要推动力是规范化——删除任何重复的组和冗余