什么是数据模型?
术语数据模型用于描述任何组织和标记信息的模式。人们通常会用“数据模型”作为通用术语来指代模式、派生表(视图)或ERD等概念。
一个好的数据模型可以帮助人们更快地找到信息。例如,商场目录就是一个数据模型,它组织了商场内店铺的信息。它按类别或位置对店铺进行分组和标记,并通过在地图上显示它们来解释店铺之间的关系。与独自在商场里闲逛或浏览随机的店铺列表相比,这个模型让人们更容易找到目的地。
数据建模示例
在数据建模过程中做出决策时,最好先弄清楚人们想要寻找什么以及为什么寻找。假设我们想创建一个数据模型来存储电影信息,以帮助人们寻找新的观看内容。
您可以将此数据模型视为一个可用于任何电影的模板。该模板应完成两件事:
-
表示电影中对查找特定电影有用的部分。例如,人们可能会按片名、导演、类型或演员搜索他们想看的电影。
-
描述各部分之间的关系,以便根据一组信息轻松查找另一组信息。例如,模板应确保任何电影片名都至少与一位导演相关联。
最简单的数据模型将相关部分分组到一个模板中,并包含一些关于如何填写的信息。例如,下面的模板可以作为任何电影的数据模型。
电影
- 片名:任意文本(必填)。
- 导演:姓名列表(必填)。
- 类型:任意文本(可选)。
- 演员:姓名列表(可选)。
通过添加更多与电影相关的部分,如发行年份或片长,可以扩展此模型。如果现有部分对查找信息有用,我们也可以扩展它们。例如,人们可能希望根据演员的特定信息(如他们获得的表演奖项)来搜索电影。由于演员只记录演员姓名,我们可以将奖项信息拆分到一个新的数据模型中。
表演奖项
- 奖项:表演奖项名称(必填)。
- 获奖年份:年份(必填)。
- 演员:名和姓(可选)。
由于演员姓名出现在这两个模型中(在演员或角色下),因此存在一个连接电影模型和表演奖项模型的关系。当这两个模板都填写了真实的电影和奖项信息后,人们将能够根据特定奖项查找电影。
上述书面模板是思考如何分解数据模型信息的简单方法,但根据用例,您可以遵循许多最佳实践。您可以在下一节中找到常见数据模型格式的示例。
常见数据模型
Schema
模式是一种概念数据模型。它们被数据库工作人员使用。
ERD
ERD是一种可视化数据模型。ERD 被需要讨论信息管理和架构的人员使用。
- 信息由不同的形状表示,例如矩形或菱形。
- 关系由不同的线条描述,例如箭头或虚线。
Metabase 模型
Metabase 模型是一个数据模型,您可以从问题或 SQL 查询创建并保存它。
- 信息由命名的列和任何关联的元数据表示。
- 关系由问题或 SQL 查询中使用的逻辑描述。
人们实际如何使用“数据模型”一词
您可能会发现不同的团队非正式地使用“数据模型”一词来表示不同的含义
- 编写 SQL 的人可能会用它来指派生表或视图。
- 程序员可能会用它来指模式或 ERD。
Metabase 中的数据模型
如果您是 Metabase 管理员,您将可以在 Metabase 中访问数据模型页面。您在此处所做的更改将影响数据在 Metabase 中所有地方的显示方式。
数据模型页面和 Metabase 模型有什么区别?
-
数据模型位于连接到 Metabase 的原始数据仓库表之上。它是您可以用来清理组织可见表的建模层。您可以将其视为通过分配人类可读的名称和保存细分或指标的常见定义来“翻译”数据世界和业务世界之间信息的一种方式。
-
Metabase 模型位于数据模型之上。任何具有使用底层数据库表权限的人都可以创建它们。