好的,我可以在互联网上找到数百个关于自上而下的数据库设计与自下而上的数据库设计方法之间的区别的参考资料,但是,我似乎找不到任何现实世界的例子,或者任何关于哪种设计真正更多的信息适合什么情况。
谁能帮我吗?
好的,我可以在互联网上找到数百个关于自上而下的数据库设计与自下而上的数据库设计方法之间的区别的参考资料,但是,我似乎找不到任何现实世界的例子,或者任何关于哪种设计真正更多的信息适合什么情况。
谁能帮我吗?
我将此答案基于此Data Modeling Wikipedia 文章。
在维基百科页面的大约一半处,有一个名为“建模方法”的部分。
自上而下的方法用于创建新数据库。您在逻辑级别对对象进行建模,然后将对象应用于物理数据库设计。例如,关系数据库需要将对象映射到表。
举一个现实世界的例子,工资系统必须有人员对象,以及其他持有工资规则的对象(每周加班超过 40 小时,每天加班超过 10 小时,等等)。将有一个支付周期对象,其中包含支付周期和支付日的日期。这个描述不是一个完整的设计。当您更多地考虑应用程序时,您会想出需要存在的其他对象,以及需要成为现有对象一部分的其他实体。
自下而上的方法用于将数据库从一个物理数据库迁移到另一个。从 Oracle 迁移到 IBM 的 DB2 通常需要一些更改,因为列数据类型不完全兼容。您将根据现有表创建表。有时,您会尝试制作近乎精确的副本,以尽量减少应用程序编码更改。其他时候,您更改表结构,通常是为了进一步规范化或以更合乎逻辑的方式将列组合在一起。是的,应用程序代码必须更改以适应新的数据库模式。但有时,痛苦是值得的。
我见过很多数据库迁移。他们很难在帖子中描述。他们工作起来很痛苦。
为了理解这些方法之间的区别,让我们考虑一些本质上是自下而上的工作。在统计分析中,分析师被教导从一小部分人群中抽取样本,然后将结果推断到整体人群中。医生也接受了自下而上方法的培训。医生检查特定症状,然后推断导致症状的一般疾病。
需要自上而下方法的工作示例包括项目管理和工程任务,其中必须先指定总体要求,然后才能理解细节。例如,汽车制造商必须遵循自上而下的方法来满足汽车的整体规格。如果一辆汽车的要求是它的成本低于 15,000 美元,每加仑行驶 25 英里,并能坐 5 人。为了满足这些要求,设计人员必须从创建规范文档开始,然后深入研究以满足这些要求。