实现数据库时需要做出的前 5 个设计决策是什么?

6 oracle

我正在实施一个 Oracle 系统来存储来自应用程序的事件警报,所以我猜所有模式、数据库设计都将由应用程序通过 sript 处理。

我是数据库设计的新手,在实现数据库时需要做出的前 5 个设计决策是什么?

DCo*_*kie 6

正如@SQLChicken 所说,一个好的数据模型是稳定、一致、可扩展和可扩展的数据库的一个非常重要的开始。

有了逻辑模型后,下一步是在目标 RDBMS 中实现逻辑模型。要做到这一点,需要考虑许多重要的考虑因素和行动。例如,根据数据库的预期大小,您可能会出于性能原因决定对某些结构进行非规范化,但应谨慎做出此决定,并充分考虑其影响。其他注意事项:

  • 如果您还没有这样做,请决定命名标准/约定。以一致的方式命名您的对象。花时间通过向每个对象添加注释来定义每个对象,例如数据库中的表和列。
  • 定义表主键、外键、数据约束和索引。索引可以在以后添加,所以不要担心预先获取它们。随着时间的推移,对它们的需求往往会变得明显;-)
  • 定义可能对报告、即席查询等有用的数据视图。
  • 尽量减少触发器的使用 - 这些可能是权宜之计,但有很多陷阱。

这份清单绝不是详尽无遗的。熟悉(大量的)Oracle 文档。


SQL*_*ken 5

通用数据库设计和特定平台上的数据库设计非常相似,但存在重要且明显的区别。在设计数据库时,您需要熟悉规范化和反规范化的概念。规范化数据库(通常是第三范式)更适用于将处理事务类型应用程序的数据库。这些被称为 OLTP,或在线事务处理系统。我自己是一个 SQL Server 人员,所以我有一些特定于我的平台并且更可取的实践。您可能想查看http://www.infoadvisors.com,因为他们专门研究数据建模。它们是所有数据建模的好资源,这是您需要研究的其他内容。

如果您使用 Twitter,我建议关注 Karen Lopez ( @datachick ),因为她在 InfoAdvisors 工作并且是数据建模领域的领先专家之一。如果您有需要回答的快速问题,也可以使用 #sqlhelp 主题标签