关系模型

关系模型是Data Models帖子中列出的最流行的逻辑数据模型,它是SQL数据库的基础。

关系模型是最流行的逻辑数据模型,它是SQL数据库的基础。

关系模型基于两个简单的概念:

  • 桌子
  • 关系

关系模型的历史可以追溯到1969年,埃德加·科德(Edgar F.Codd),一位英国计算机科学家。尽管作为计算机程序员,我们习惯于好奇地研究新事物,但50年来,在计算机的所有方面都处于核心地位的技术绝对值得研究。

该模型基于表的事实使其使用起来非常直观,因为我们习惯于使用表来组织事物。例如,考虑一个Excel电子表格。

对于基于SQL的数据库(例如PostgreSQL,Oracle,MySQL,SQLite和MS SQL Server等),可以使用关系模型对使用ER模型分析的数据进行建模,并几乎立即将其转换为SQL数据库格式,从而可以被认为是关系模型的实际实现,但我们将在其他文章中讨论这一点。

在这篇文章中,我想谈谈关系模型所基于的理论和概念,它们不是用数学术语表达的,而是在实践中的含义。

如果您是学生,您可能会发现我在这里写的不是您教科书上写的,但也许您可以更轻松地阅读它,以掌握学习材料中表达的更正式的概念。

桌子

在关系模型中,桌子是项目的集合。

它按行和列进行组织:

姓名 年龄
弗拉维奥 36
罗杰 7
赛德 6

元组

表中的每个条目称为元组。您也可以使用以下术语记录或者

元组代表表的一行,如下所示:

弗拉维奥 36

属性

属性是元组中的一项。

在此示例中:

弗拉维奥 36

“ Flavio”是一个属性。图36是另一个属性。

元组是唯一的

表格中的每个元组都是唯一的。

在关系模型中,我们不能有重复的数据,这意味着表中的每一行在至少一个属性上必须不同。

关系键

确保元组唯一的是关系键

关键是必须具备的一种属性唯一识别一个元组。

如果关系键是一组属性,则必须为非冗余。这意味着,如果我们删除键的属性之一,则键不能保证其唯一性。

如果可以确定一个以上的键,则这些键之一将被标识为首要的关键

密钥完整性约束

他们必须在表中的任何元组的关键属性永远不会为空,并且必须永不重复

给定一个键,我们必须能够毫无歧义地指向一个特定的元组/行。

域约束

每个属性都有关于它可以拥有什么价值的规则

例如,如果我们决定存储数字,则不能存储字符串。并且我们可能决定不存储长度超过10个字符的字符串作为名称。

我们也可以称之为类型

参照完整性约束

如果一个表包含对辅助表或同一表中其他元组的引用,则我们必须遵守防止引用中断的规则。

特别是,我们必须避免通过以下方式破坏引用:

  • 避免在另一个表中删除或编辑指向的记录的主键。
  • 避免插入一个不存在的键指向另一个表中的新记录。
  • 避免更改我们指向的记录的键,而不必确保新键在另一个表中存在。

DBMS(数据库管理系统)将采取措施来帮助我们实现参照完整性。


更多数据库教程: