关系模型是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(数据库管理系统)将采取措施来帮助我们实现参照完整性。
更多数据库教程:
- MongoDB基础教程
- MongoDB与SQL数据库有何不同
- 信息系统,数据和信息
- 资料模型
- ER数据模型简介
- 关系模型
- 关系代数
- 关系数据库
- 什么是数据库?还有一个DBMS?
- SQL简介
- 如何在macOS上安装PostgreSQL
- 您是否始终需要为应用程序提供数据库?
- 如何在macOS上安装SQLite
- PostgreSQL简介
- PostgreSQL用户权限
- 如何列出PostgreSQL中的所有用户
- 如何使用PostgreSQL切换数据库
- 如何使用PostgreSQL列出所有数据库
- 如何使用PostgreSQL列出当前数据库中的表
- 如何在macOS上安装MySQL
- 在MySQL上创建用户
- PostgreSQL vs MySQL,比较
- SQLite用户权限
- MySQL用户权限
- SQL,创建表
- SQL,将数据添加到表
- SQL,如何使用SELECT
- SQL,处理空单元格
- SQL,唯一键和主键
- SQL,如何更新数据
- SQL,如何更新表结构
- SQL,如何删除数据和表
- SQL联接
- SQL视图
- 如何在MongoDB集合中一次插入多个项目
- 如何从MongoDB集合中删除所有项目