sql - SQL 表上说明的关系示例(在数学意义上/关系代数中)
问题描述
我有一个带有标题“ID”(整数)、“名称”(字符串)、“地址”(字符串)的表。
+---------------------+
| ID | Name | City |
+---------------------+
| 1 | John | London |
| 2 | Mary | Paris |
| 3 | Cris | Tokio |
+---------------------+
你能帮我看看那张桌子是怎样的关系吗?
二元关系是一组有序对,每一对都是从集合 A 到集合 B 的映射(如 A={1,2,3} B={A,B} => {1A, 2A, 2B, 3A} 是二元关系)
我猜表头(属性名称集)形成第一组对(如上例中的 A),但在我的情况下,第二组是什么?如果我需要配对(并且元组不是配对),什么是 3 元组(“1 | John | London”) - 该配对的第二部分(A 集)总是隐含的?
我认为在我的情况下它是三元关系,我有三组(IS 集、名称集、城市集)并且表头不应被视为谈论关系的集合(使用表头是因为所有 3 元组都会根据标题订购)。所以二进制关系与我的表完全无关。我对吗?
解决方案
不要将数学中的二元关系与数据库中的二元关系混为一谈。在 DB 概念中,二元关系指向两个不同实体之间的关系,其中数学中的二元关系与集合论有关。看到这个
尽管它们不同,但它们之间却有着密切的关系。您可以检查数据库专业人员的应用数学
推荐阅读
- php - PHP 电子邮件:尽管发送了电子邮件,但没有显示任何数据
- javascript - HTML 中的字符串 (es6_string_html) -> 错误:语法错误 jQuery(1.9.1)
- r - 有没有一种快速的方法来比较 R 中的两个向量列表?
- reactjs - Reactjs、Nextjs、Nestjs、GraphQL、PostgreSQL、RabbitMQ 和 Kafka 如何协同工作?
- node.js - 从 api 中提取数据并存储在 mongo
- r - 基于 r 中的两组随机抽样
- findbugs - 如果 MapStruct 中的源值为 null,则抛出 NPE
- javascript - 如何使用 CSS、HTML、JavaScript 和 jQuery 将输入单元格添加到转置表中?
- c++ - 如何在 C++ 中检查位?
- c++ - 访问向量中相同父结构的成员时出现问题