35+ 个最常问的数据建模面试题和答案

2025年3月17日 | 阅读16分钟

1) 你如何理解数据模型?

数据模型是一组不同的数据元素的集合。它规定了它们之间以及与现实世界实体属性之间的关系。数据模型由实体组成。在这里,实体是我们想要跟踪其数据的对象和概念。这些实体存储在数据库中的表中。例如,如果一个表包含客户、产品、制造商、买家和卖家,它们就被称为潜在实体。每个实体都有属性——用户想要跟踪的详细信息。例如,客户姓名是一个属性。


2) 什么是数据建模?

数据建模是创建将存储在数据库中的数据模型。它是数据对象、不同数据对象之间的关联以及规则的概念表示。它还表示数据的流动方式。换句话说,数据建模就是创建一个包含文本和符号形式数据元素的简化图。


3) 数据模型有哪些不同类型?

数据模型主要有三种类型:

  • 物理数据模型:物理数据模型描述了如何使用特定的 DBMS 系统来实现系统。通常,此模型由 DBA 和开发人员创建,并用于演示数据库的实际实现。此框架或模式指定了数据在数据库中的物理存储方式。
  • 逻辑数据模型:逻辑数据模型定义了系统应该如何实现,而不考虑 DBMS。数据架构师和业务分析师通常会创建此模型来开发规则和数据结构的技术地图。它指定了逻辑数据表示,独立于物理存储而存在。
  • 概念数据模型:概念数据模型主要侧重于数据的高级用户视图。通常,此模型由业务利益相关者和数据架构师创建,用于组织、范围界定和定义业务概念和规则。换句话说,此模型定义了系统应包含的内容。

4) 在数据建模中,你如何理解事实和事实表?

在数据建模中,事实用于表示定量数据。例如,应付净额是一个事实。另一方面,事实表包含数值数据以及来自维度表的外部键。


5) 什么是表?

表是一种用于以行和列形式存储数据的结构。列也称为字段,用于垂直对齐显示数据。行也称为记录或元组,表示数据的水平对齐。


6) 数据建模中使用了哪些设计模式?

数据建模主要使用两种不同的数据建模模式:

  • 星型模式:星型模式是数据立方体模式最简单的样式。这种方法最广泛地用于开发数据仓库和维度数据立方体。此模式包含一个或多个事实表,这些事实表引用任意数量的维度表。
  • 雪花模式:在计算中,雪花模式是多维数据库中表的逻辑排列,使得实体-关系图类似于雪花的形状。雪花模式由连接到多个维度中的中央事实表表示。雪花化用于规范化星型模式中的维度表。

注意:星型模式是雪花模式的一个重要特例,更有效地用于处理更简单的查询。


7) 你如何理解数据库规范化?

数据库规范化是结构化和设计数据库以减少数据冗余而不丢失完整性的过程。它通常根据所谓的范式在关系数据库上工作。数据库规范化的主要目的是减少数据冗余和提高数据完整性。Edgar F. Codd 最初在他的关系模型中提出了数据库规范化过程。


8) 数据库规范化的主要用途是什么?

以下是数据库规范化的主要目的:

  • 数据库规范化用于删除无用或冗余的数据。
  • 它还能够降低数据复杂度。
  • 它确保了表之间的关系以及表中存在的数据。
  • 它确保了数据依赖性,并确保数据是逻辑存储的。

9) 什么是数据库中的反规范化?/ 你如何理解数据反规范化?它的优缺点是什么?

数据反规范化是一种用于提高性能的先前规范化数据库的技术。在此技术中,将冗余数据添加到已规范化的数据库中,这会牺牲写入性能来提高读取性能。

在反规范化数据库优化技术中,我们将冗余数据添加到一张或多张表中。这可以帮助我们避免关系数据库中的昂贵连接。换句话说,我们可以说反规范化是通过添加数据的冗余副本或对其进行分组来提高数据库读取性能,同时牺牲一些写入性能的过程。

反规范化的优点

  • 反规范化的最大优点是数据检索速度更快,因为需要进行的连接次数更少。
  • 用于检索数据的数据查询通常很简单,因此发生错误的几率更小。
  • 易于处理,因为只需要查看更少的表。

反规范化的缺点

  • 反规范化的最大缺点是其更新和插入成本更高。
  • 其更新和插入代码难以编写。
  • 数据可能不一致,需要更多存储空间。

注意:我们必须记住,反规范化并不意味着不进行规范化。它是在规范化之后应用的优化技术。


10) 何时应使用反规范化?

以下是一些需要使用反规范化的场景:

  • 当需要维护历史记录,并且在检索数据时涉及大量表时,使用反规范化。它也用于构建数据仓库。
  • 它用于提高查询性能。有时我们需要使用可能需要访问多个表才能获取我们经常需要的数据的查询。
  • 它用于预先计算常用值。有时我们需要一些预先计算好的值,这样我们就不必实时生成它们了。

11) 你如何理解维度和属性?

维度用于表示定性数据。例如,产品、类别、计划等都是维度。另一方面,属性是维度包含的值。维度表具有文本或描述性属性。例如,产品类别和产品名称是产品维度表的两个属性。


12) 你如何理解数据稀疏性?

数据稀疏性是一个术语,用于指定数据集中未观察到足够数据的现象。它指定了模型实体/维度有多少数据。


13) 什么是主键?/什么是主键约束?

主键或主键约束是唯一标识表中每一行的列或组。主键约束施加在列数据上,以避免空值和重复值。主键值不得为空。每个表都必须包含一个主键。

例如:社会安全号码、银行账号、银行路由号码、电话号码、Aadhar 号码等。


14) 什么是外部键?/什么是外部键约束?

外部键是用于链接父表和子表的属性组。父表有一个主键,外部键约束施加在子表的列上。子表中的外部键列值将始终引用父表中的主键值。

这意味着子表中存在的外部键列的值引用了父表中主键的值。


15) 什么是复合主键?/什么是复合主键约束?

复合主键或复合主键约束指定了一个列集是主键一部分的情况。这称为复合主键约束。


16) 什么是复合外部键?/什么是复合外部键约束?

复合外部键或复合外部键约束指定了一个列组存在于外部键中的情况。这称为复合外部键约束。


17) 你如何理解数据立方体?

数据立方体是数据仓库的精简版本。它是为组织中的特定部门、单元或用户集设计的。例如,市场营销、销售、人力资源、财务等。


18) 你如何理解代理键?使用代理键的好处是什么?

代理键是数据库中用于客户端业务中的实体或数据库内对象的唯一键。当无法使用自然键创建唯一主表键时,使用它。在这种情况下,数据建模师或架构师决定在 LDM 中为表使用代理键或辅助键。这就是为什么代理键也称为辅助键。代理键是自然键的替代品。

使用代理键的一些好处如下:

  • 代理键对于创建 SQL 查询、唯一标识记录和获得良好性能很有用。
  • 代理键包含数值数据类型,在数据处理和业务查询期间可提供出色的性能。
  • 只要行存在,代理键就不会改变。
  • 自然键可以在源中更改。例如,迁移到新系统,使其在数据仓库中无用。这就是为什么使用代理键。
  • 如果我们使用代理键并在表之间共享它们,我们可以自动化代码,使 ETL 过程更简单。

19) 数据建模中使用了哪些不同类型的规范化?

在数据建模中,通常使用以下五种规范化类型:

  • 第一范式
  • 第二范式
  • 第三范式
  • Boyce-Codd 第四范式
  • 第五范式

20) 数据模型中重要的关系类型有哪些?

数据模型中有三种关系类型:

  • 标识关系
  • 非标识关系
  • 自递归关系

21) 什么是正向数据工程?

正向数据工程或正向工程用于自动生成或将逻辑模型转换为物理模型。


22) 你如何理解离散数据和连续数据?

离散数据是一种有限或定义明确的数据。它不会改变。例如,性别、电话号码、身份号码。另一方面,连续数据是一种以连续有序的方式变化的数据。例如,年龄、时间等。


23) 在 DBMS 中,你如何理解标识关系?

在 DBMS 中,标识关系是两个实体之间的关系,其中子实体的实例通过与父实体的关联来识别。标识关系指定子实体依赖于父实体来识别自身,并且没有父实体就无法存在。通常,父表和子表存在于数据模型中,并通过关系线连接。


24) PDaP 的全称是什么?

在 DBMS 中,PDaP 代表 Praedico Data Platform。它是一个数据立方体,用于将数据存储为摘要。PDaP 中的数据存储方式使用户能够轻松地对其进行报告。PDaP 的最大优点是它充当用于存储数据的摘要的数据立方体,并帮助用户快速分析数据。


25) 你如何理解非标识关系?

非标识关系是两个实体之间的关系,其中子实体的实例不通过与父实体的关联来识别。在这种情况下,子实体不依赖于父实体,并且没有父实体也可以存在。这种关系通过虚线连接这两个表来绘制。


26) 什么是商业智能,它的用途是什么?

商业智能(BI)是一组由技术驱动的流程、架构和技术,它们将原始数据转换为有意义的信息,这些信息可以为企业带来效益和利润。它是一套软件和服务,可将数据转化为可操作的智能和知识。商业智能的最大优点是它通过知情的业务决策,帮助高管、经理和员工做出明智的业务决策。


27) 什么是元数据?它的不同类型是什么?

元数据是提供有关其他数据的信息的数据。它提供有关其他数据的信息,但不是数据的实际内容,例如消息的文本或图像本身。

它描述了关于数据的数据,并显示了数据库系统中存储的数据类型。

描述性元数据:描述性元数据提供有关资源的描述性信息。它主要用于发现和识别。描述性元数据的主要元素是标题、摘要、作者、关键字等。以下是多种不同类型元数据的列表:

管理性元数据:管理性元数据用于提供管理资源的信息,例如资源类型、权限以及创建时间和方式。

结构性元数据:结构性元数据指定数据容器,并指示复合对象如何组合在一起。它还描述了数字材料的类型、版本、关系和其他特征。例如,页面如何排序以形成章节。

参考元数据:参考元数据提供有关统计数据的内容和质量的信息。

统计元数据:统计元数据描述了收集、处理或生成统计数据的过程。它也称为过程数据。

法律元数据:法律元数据提供有关创建者、版权所有者和公共许可的信息。


28) 什么是 Microsoft Sequence Clustering 算法?

Microsoft Sequence Clustering 算法是一种独特的算法,用于将序列分析与聚类相结合。该算法收集相似的路径或相互关联的路径以及具有事件的数据序列。在收集最常见的序列后,该算法执行聚类以找到相似的序列。


29) 数据建模中的分析服务是什么?

分析服务是 Microsoft Azure 的产品,用于数据建模。它是一个完全托管的平台即服务(PaaS),可在云中提供企业级数据模型。它提供了用于数据挖掘或 OLAP 的数据的组合视图。分析服务使用高级的混搭和建模功能,将来自多个数据源的数据合并,定义指标,并将数据安全地存储在单个、可信的表格语义数据模型中。使用分析服务的最大优点是它为用户提供了使用 Power BI 和 Excel 工具进行即席数据分析的更简单、更快的方法。


30) 什么是数据立方体?数据立方体的关键特征是什么?

数据立方体是数据仓库的子集。它主要关注业务的特定部分、部门或主题领域。它为组织内定义的特定用户组提供特定数据。它是特定业务领域的最佳解决方案,因为它使用户无需花费时间搜索整个数据仓库即可快速访问重要数据。每个大型组织都为业务中的特定部门(如财务、销售、市场营销等)拥有一个数据立方体。

数据立方体的关键特征

  • 数据立方体主要关注业务单元的特定主题或领域。
  • 它是数据仓库的子集,就像一个迷你数据仓库,存储了聚合数据。
  • 在数据立方体中,数据的范围有限。
  • 它通常使用星型模式或类似结构来存储数据。这就是为什么从中检索数据速度更快。

31) 你如何理解时间序列算法?

时间序列算法是 Microsoft 的一个工具,它提供了一组优化的算法,用于预测连续值,例如随时间推移的产品销售量。时间序列算法优于其他 Microsoft 算法(如决策树),因为其他 Microsoft 算法(如决策树)需要额外的新的信息列作为输入来预测趋势。相比之下,时间序列模型不需要这些输入类型。时间序列模型可以仅基于用于创建模型的原始数据集来预测趋势。它还使我们在进行预测时能够向模型添加新数据,并自动将新数据添加到趋势分析中。


32) 什么是数据仓库,什么是数据仓储?

数据仓库是组织中电子存储的数据存储库,这些数据从操作系统中提取,可用于即席查询和计划报告。它是一个数据管理系统,旨在启用和支持商业智能活动,如分析。

数据仓库的主要目的是执行查询和分析数据。它包含大量历史数据,通常来自各种来源,如应用程序日志文件和事务应用程序。它集中并整合了来自多个来源的大量数据。其分析能力使组织能够从其数据中获得有价值的业务洞察,并帮助进行决策。它包含数据科学家和业务分析师可以用来改进和增强业务的有价值数据。由于这些能力,数据仓库被称为组织的“单一真相来源”。

数据仓储是一个收集和管理来自各种来源(如应用程序日志文件和事务应用程序)的数据的过程。

数据仓储主要用于为数据分析和报告构建的 BI 系统。在此过程中,数据仓储从多个来源收集和分析数据,使组织能够从其数据中获得有价值的业务洞察,并帮助进行决策。这对于数据科学家和业务分析师改进和增强业务非常有益。


33) 数据仓库的关键特征是什么?

以下是数据仓库的关键特征:

  • 数据仓库是通过收集和合并来自多个异构源(如平面文件和关系数据库)的数据而开发的,这使其成为数据分析的最佳选择。
  • 数据仓库是面向主题的。它提供特定主题的数据,而不是组织的所有持续运营。例如,它提供有关产品信息、销售数据、客户和供应商详细信息等数据。
  • 它是时变的。它提供来自特定历史时间点的信息,以便根据特定的时间框架对数据进行分类。
  • 数据仓库独立于操作数据库。它是非易失性的。每当我们向其中添加新数据时,之前的数据就不会被删除。如果您对操作数据库进行任何常规更改,它都不会在数据仓库中显示。

34) 什么是位图索引?位图索引的必要性是什么?举例说明。

位图索引是一种特殊的数据库索引,它使用位图(位数组)。这用于通过执行按位操作来回答查询。此技术主要用于大型数据库,其中列基数较低,并且这些列在查询中最常使用。

位图索引的必要性

让我们看一个例子来清楚地理解位图索引的必要性。假设有一家公司有一个员工表,其中包含 EmpNo、EmpName、Job、New_Emp 和 salary 等条目。在这家公司,员工每年只雇佣一次,所以很明显表更新的次数非常少,大部分时间会保持静态,但这些列会经常用于查询以检索数据,例如,公司中有多少女性员工等。在这种情况下,我们需要一种文件组织方法,它必须非常快才能给出快速的结果。但是,任何传统的文件组织方法都不能如此之快。我们采用一种称为位图索引的更好的数据存储和检索方法。


35) 数据立方体和数据仓库之间的关键区别是什么?

正如我们所知,数据立方体和数据仓库都用于存储数据。数据立方体和数据仓库之间的主要区别在于,数据仓库是面向数据的数据库类型。另一方面,数据立方体是面向项目的数据库类型。让我们在下表中看看数据立方体和数据仓库之间的关键区别:

数据市场数据仓库
数据立方体是数据仓库的子集。它尺寸较小。数据仓库是数据立方体的超集。它尺寸巨大。
数据立方体用于向用户提供特定的数据访问。因此,用户可以轻松快速地获取数据。数据仓库的尺寸非常大,因此从那里检索特定数据可能很复杂且耗时。
通常,数据立方体小于 100 GB。数据仓库通常大于 100 GB,通常为 TB 甚至更大。
它主要关注业务的单个主题领域。数据仓库分布非常广泛,涵盖了多个领域和多个业务领域。
数据立方体遵循自下而上的模型。数据仓库遵循自上而下的模型。
在数据立方体中,数据来自一个数据源。在数据仓库中,数据来自多个异构数据源。
数据立方体用于制定战术性决策以促进业务增长。数据仓库帮助企业所有者做出战略性决策。
数据立方体的范围有限。数据仓库的范围很大。
数据立方体是去中心化的系统。数据仓库是中心化的系统。
在数据立方体中,反规范化发生在非常高的水平。在数据仓库中,反规范化发生得很轻微。
组织可以轻松构建数据立方体。构建数据仓库并不容易。
数据立方体主要使用星型模式和雪花模式。事实星座模式通常用于数据仓库。
数据立方体是面向项目的。数据仓库是面向数据的。
数据立方体不灵活。数据仓库灵活。
数据立方体的生命周期比数据仓库短。数据仓库的生命周期很长。
在数据立方体中,数据以汇总形式存储,因此比数据仓库占用的空间少。在数据仓库中,数据以详细形式存储。因此,它需要巨大的空间。

36) 数据仓库中的垃圾维度是什么?

在数据仓库中,垃圾维度是一个维度表,其中包含不属于事实表或任何现有维度表的属性。它将两个或多个相关的基数合并到一个维度中。这些属性通常是文本或各种标志,例如非通用注释或简单的是/否或真/假指示符。它要么是布尔值,要么是标志值。通过将这些指示字段合并到一个维度中,我们只需要构建一个维度表,从而减少事实表中的字段数量。它还减小了事实表的大小。