尽管问得简略,可是触及的知识点可不是一般的多。为了便利各位的阅览我就不打开逐个说明晰,下面我将总结一下我的看法。
首先,数据库模型建模的初衷是为了有效地存储和办理数据。经过抽象化的方法处理数据在办理、查询、更新等方面的复杂问题,以满意不同运用场景对数据高效利用的需求。
站在开发的视点,在规划时我会优先考虑以下 5 点:
- 运用简略的数据结构: 尽可能运用简略的数据结构将全体事务需求表现出来,这使得其他开发者或许保护者能快速了解和把握其规划目的,便利后期的开发和保护作业;
- 尽可能避免数据冗余: 避免数据冗余能够提高数据的一致性和效率,但某些场景下适当的冗余能够提升程序功用;
- 运用规范的命名约好: 遵从数据库规划范式的一起运用规范的命名约好,以便于了解和保护数据库模型,我一般都是项目缩写最初作为前缀之后经过下划线进行功用层级区分的;
- 进行充沛的测验: 在运用数据库模型之前,进行充沛的测验,以保证其满意运用程序的需求。一般来说我会运用 Sysbench 对数据库进行基准测验。至于数据结构的评价将会经过人工走查的方法进行全面评定;当然了,现在也有很多数据质量剖析东西能过快速进行评价,如:DataKitchen、IBM InfoSphere Information Analyzer 等等,不过对于穷逼的我来说仍是走查实践一点;
- 安全性与权限控制: 合理的模型还应考虑到数据的安全性,包括设置适当的权限控制机制,保护敏感信息不被不合法访问或修正;
再者,站在数据办理的视点还需求做好以下 2 点:
- 以事务为中心: 技术的一切都是要为了实现事务方针服务,脱离事务的技术将没有任何含义(至少在中国是这样的)。因此数据模型的规划也应该以事务需求为中心;
- 元数据办理: 应该对数据库模型进行元数据办理,以便于追寻数据来源、变化和运用情况;
详细能够体现在:
-
在规划数据库模型之前,需求进行详细的事务需求剖析,清晰数据库模型需求满意哪些事务需求。除了约请需求方参加评定之外,还能够利用人工智能大模型帮我们进一步打磨事务需求;
-
树立元数据办理体系,对数据库模型的元数据进行统一办理。Github 上不乏优异的元数据办理东西,现在我运用的是OpenMetadata 还挺好用的。因为 OpenMetadata 是 SaaS 模式的,如果您的数据比较敏感的话就不要用这个了。除此之外, 还有其他好用的元数据办理东西有机会会跟我们讲讲的;
除此之外,作为技术办理者能够树立数据库模型评定机制,定期对数据库模型进行评定,保证其满意事务需求。进程办理方面能够树立数据库模型变更办理机制,对数据库模型的变更进行严格控制也是一个不错的选择。