数据库设计中的6个最佳实践步骤

如果设计得当,数据库是记录、存储、检索和比较数据的强大工具。然而,一个没有经过精心设计和目的的数据库不仅仅是无效的,它对那些使用它最多的人(开发人员)来说是一个噩梦。在构建数据库时——无论其最终目的如何——遵循以下最佳实践将确保最终数据库既有用又易于使用。

1. 明确数据表结构和用途

现在有许多技术可用,例如Scrum和RAD(快速应用程序开发),它们帮助IT团队快速开发数据库。当机构利用速度和效率来强制快速构建数据库时,人们很容易一头扎进构建数据库的过程中,而对结果需要什么只有模糊的概念。

尽管人们常常觉得自己在强调效率,但实际上这只是一种错觉。工作可能会更快地从起跑线开始,但是,快速前进将大大增加在数据库问题上进一步出错的机会。当这种情况发生时,开发人员将不得不花费大量的时间来分解和重塑已经完成的工作。

数据库的目的不仅仅是存储信息。例如,考虑部署数据库的位置。它是否支持POS系统,以便收集客户行为的数据?还是帮助管理客户关系?您的团队越清楚地定义数据库的用途,设计过程就越顺利。

2. 选择合适的数据建模软件

无论构建应用程序还是数据库,最好使用适合工作的工具。就数据库设计而言,现在有许多在线工具可用。选择如Lucidchart、Draw等。io和Microsoft Visio,它们都支持数据库实体设计。利用数据建模的全部意义在于将复杂性可视化,并能够发现可以进行改进的不足之处。

系统设计的可视化使得与同事交流计划变得更加容易。如此广泛的交流确保了参与数据库构建的每个人从一开始就在同一起点上,这将有助于简化整个开发过程。

3. 大纲的要求

清晰地勾勒出软件项目和相应数据库的可预见的未来。在允许灵活性的同时,尽可能多地使用图形,特别是在刚刚开始的阶段。

重要的是要超越简单的技术需求。因此,需求应该包含更多的硬件和软件。尽管这些东西很重要,但它们并不是产生良好数据库设计的关键。在软件和数据库开发过程中,制定一个计划来支持变更和偏差。许多公司只在涉及到调整设计时才支持非破坏性的更改,而更改则只由自动化迁移机制支持。

与数据库最终将支持的团队、部门或组织合作,并征求他们的意见。一定要和各个层次的人交谈,从第一线的员工到经理。只有在这个反馈提供了完整的情况下,你才能对需求有一个确切的了解。

不可避免地,您会遇到来自相同业务、团队或部门的不同人员的冲突需求。当这种情况发生时,根据过去的经验,使用您最好的判断来尝试并引入某种形式的妥协,以满足所有各方——而不破坏数据库的最终目的。

4. 以谨慎的方式对数据进行建模

数据建模的全面指南是值得撰写几篇文章的主题。然而,有几个关键点,如果遵循这些要点,将允许您以最合适的方式建模数据。

根据数据库的用途,您需要决定使用事务建模还是维度建模技术更合适。如果数据库是联机事务处理(OLTP)数据库,则使用事务建模。另一方面,如果数据库是关系数据库,则转向维度建模。

所有数据库数据建模都应该归因于概念(CDM)、逻辑(LDM)和物理(PDM)数据模型。CDM是关于语义的;正是这个定义了最终数据库的范围。CDM没有讨论数据库如何工作的详细细节,而是描述了它将包括的实体和数据类型,以及它们之间的关系。

LDM可以被认为是CDM的实现,它将反过来帮助生产PDM。LDM帮助设计物理数据库的路线图;它通过定义业务数据实体以及管理它们之间关系的规则来实现这一点。这包括数据类型、关键状态和属性集详细信息等标准。

最后,PDM定义了数据物理存储的方式。它是通过将LDM映射到所选的数据库管理系统(DBMS)平台而产生的。

5. 使用适当的数据类型

对于任何给定的属性使用错误的数据类型可能会对完成的数据库造成许多负面影响。它可能导致文件膨胀、数据不准确、难以将数据表连接在一起以及难以与应用层同步属性。

为属性使用最适当的数据类型是域完整性的一部分。执行域完整性规则将确保属性只能包含对该属性有效的数据类型。例如,如果数据库记录了人们的年龄,那么确保3位数的整数是最大值。

大多数数据建模软件允许您创建和定义单独的数据域。它们不仅可以用于确保使用了正确的数据类型,还可以用于确保必须给定值并拒绝空值。

6. 定义或采用一个样式指南

本节讨论建立数据库元数据命名约定。当涉及到表、索引、外键、触发器、函数等时,为所有存储的信息设置清晰一致的指导方针将在长期内为您节省时间、精力和金钱。

虽然在互联网上有很多关于你应该和不应该遵守特定的命名规则的信息,但是坚持遵循这四个规则,你就不会出错:

  • 任何形式的命名约定都比没有好。
  • 没有所谓的“真正的”标准,每个人都有自己的喜好。
  • 如果已经有了现成的规则,那就坚持执行这些规则,而不是去白费力气。
  • 在进行数据库维护时,最佳实践总是持久性。

通过遵循数据库设计中最佳实践的这6个步骤,您将确保构建的每个数据库都适合使用。一旦这些规则成为第二天性,优秀的数据库性能也将成为第二天性。虽然这听起来似乎要实现很多,但是如果您从构建的第一天就建立了这些指导方针,那么您将在将来避免一大堆麻烦。

原文发布于微信公众号 - 程序你好(codinghello)

原文发表时间:2018-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

对象存储的演进之路

4185
来自专栏云计算

为您的组织选择正确的企业云解决方案

目前,云计算已被广泛使用,并且成为多数企业为之努力的目标。然而,入云所带来的现实问题也令人担忧。耗时费力的部署,安全风险,噩梦般的应用程序迁移场景以及不成熟的私...

2206
来自专栏SDNLAB

什么是开放网络?

网络行业的发展如果非要归纳出一个明确的发展趋势的话,那这个趋势无疑是“开放”。业界有一个奇怪的现象,但凡涉及到“开源、开放”的技术或者社区,好像都比较受到追捧,...

2825
来自专栏EAWorld

DevOps之软件产品管理最佳实践

? 大家好,我是王召,现在负责新一代数字化企业云平台 “The Platform” 的SPM、MKT领域系统。很荣幸这次有机会和大家分享“DevOps领域系统...

3085
来自专栏IT大咖说

经历了研发困局、运维之痛,同程微服务从1到1w的旅程

内容来源:2017 年 9 月 9 日,前同程艺龙架构师谢康在“ArchData技术大会上海站”进行《同程微服务从1到1w的旅程》演讲分享。IT 大咖说(微信i...

1623
来自专栏华章科技

还不知道这 11 个超酷的编程新工具你就 out 了!

在这篇文章中,我们将列出你在日常工作中能够使用的新的开发工具。很多对在线流媒体感兴趣的开发人员已经开始在他们的开发环境中使用这些新工具,因为相比他们的旧的设施来...

992
来自专栏solarest的专栏

为您的组织机构选择正确的企业云解决方案

云计算作为一种强大的新技术,正在被越来越多的组织迁移和使用。然而向云的迁移也着实让人担心。开发复杂度、时间损耗、安全风险、噩梦般的应用迁移方案还有不成熟的私有云...

2126
来自专栏犀利豆的技术空间

我的写作工具链

写作是技术输出的重要手段。自己也写了一年多的文章,累计也超过五万多字。今天就想谈谈自己对于写作的一些看法以及写作时使用到的工具。工欲善其事必先利其器。

1792
来自专栏编程

深度解析用例设计方法

许多测试类书籍中都有大幅的篇章介绍用例的设计方法,如等价类划分,边界值,错误推断,因果图等。 ? 但实际应用中这些理论却不能给我们很明确的行为指导,尤其是业务复...

2045
来自专栏技术杂文

微服务:真正的架构模式

微服务的相关知识和它的神秘令我着迷。概念上的微服务就像是现代最有趣的流行架构之一。它足够功能强大,有着广泛的使用方法;也足够模糊,难以统一而论。

2733

扫码关注云+社区

领取腾讯云代金券