对于关系代数袋语义,R⋈(S∪T)=(R⋈S)∪(R⋈T)成立吗?
我不知道这是否适用于连接和联合的包语义。
对于关系代数袋语义,R⋈(S∪T)=(R⋈S)∪(R⋈T)成立吗?
我不知道这是否适用于连接和联合的包语义。
图 3.a 和 3.b,1.4 节,Edgar Codd 1970 年具有里程碑意义的论文“大型共享数据库的数据关系模型”的第 381 页展示了一组关系模式(图 3.a 和图中的 1NF 未归一化) 3.b)。
规范化的关系模式children′
有一个 key dependency KEY(man#, childname)
,所以它允许像下面的关系这样的实例:
男人# | 子名 | 出生日期 |
---|---|---|
1 | “托马斯” | 2016-03-12 |
2 | “保罗” | 2011-08-02 |
2 | “朱莉娅” | 2012-01-25 |
3 | “托马斯” | 2016-03-12 |
元组(1, "Thomas", 2016-03-12)
and(3, "Thomas", 2016-03-12)
可以指代现实世界中名为“Thomas”的两个不同孩子,也可以指代现实世界中名为“Thomas”的同一个孩子(暗示他的两个父母受雇于同一家公司)。所以现实世界中元组和孩子之间的关系是多对一的,即一个元组只能引用一个孩子,但一个孩子可以是多个元组的所指对象。
关系模型是否要求关系的元组与其所指对象之间的关系是一对一的(从而使 Codd 的示例不正确,因为它是多对一的)?
换句话说:关系模型中是否禁止使用别名?我们必须始终在我们的关系中使用全局唯一引用,即 UUID 键吗?
我有实体“学生”和“课程”,它们与称为“考试”的多对多关系相关联。关系“Exam”有一个属性“Grade”。对于这个 ER 模型,我制作了一个关系模式:
Student(StudentID, StudentName, DoB)
Course(CourseID, CourseName)
Exam(StudentID, CourseID, Grade)
有人可以解释一下您如何将学生无法为一门课程获得多个成绩的事实放入关系模式中吗?例如,我们不能有 和 之类的(Student1, Course1, Grade1)
记录(Student1, Course1, Grade2)
。
我正在设计一个实体关系图,我需要按年龄对实体进行分组。
我所拥有的是它的一个实体Person
和一些关于它的个人属性。但我想根据年龄了解人们的信息。例如,我想为 1-10、11-20、21-30 等年龄段的人设置群组。
是否可以在实体关系图中设计这样的东西,如果可以,如何设计,或者这是一种不好的技术,我应该在开发的后期实施它?
Codd为关系数据库管理系统制定的 12 条规则之一是规则 1,其中规定了以下内容:
规则 1:信息规则
所有信息(包括元数据)都将表示为表格单元格中的存储数据。行和列必须严格无序。
为什么将元数据存储在表中很重要?
我需要为一家制药公司解决一个练习,他们要求我根据一些信息从头开始创建一个数据库结构。
因为我希望它具有可扩展性且“面向未来”,所以我决定遵循该star/snowflake
结构。现在它看起来比雪花更像明星,但想法就在那里。我有一个关于主事实表(研究)以及如何表示维度表状态的特定问题。
我想出了2个选项:
所以我们通过两个维度表来表示事实表上的状态。我将通过 a JOIN
in aview
或其他方式做到这一点...
这样,我们将事实表(研究)直接链接到维度表状态。
我应该选择选项 1还是选项 2?
我害怕将太多维度表链接到事实表。这是我第一次尝试创建数据库结构。
欢迎任何建议,欢迎任何建议,尤其是来自经验丰富的数据库架构师和业余爱好者的建议。
谢谢
编辑:添加更多信息
谢谢@AntC 的提问。事实上,这根本不是一个数据仓库场景,而是一家制药公司需要一个新软件来跟踪他们的临床试验的场景。
但当然,最著名的模式是 Star/Snowflake,我不想使用任何分层模式。同时我想避免三角形、菱形、圆形之类的形状,因为即使现在只有 100 个用户知道这个数据库在 10 年后会是什么样子。这个想法是长期塑造一些东西,据我所知,我认为星形/雪花形状也适合正常应用。
有没有办法在 Postgres 记录中创建不可变字段/单元格?AKA,只允许该字段被写入一次,也许只是在插入时?
用例:我有一个记录的“uuid”字段,它永远不应该被更改(与 PK 相同)。
阅读此答案
关系数据库基于关系模型,这是一种在表中表示数据的直观、直接的方式。在关系数据库中,表中的每一行都是具有唯一 ID 的记录,称为键。表的列保存数据的属性,每条记录通常都有每个属性的值,便于建立数据点之间的关系。
Cassandra 有桌子。
CREATE TABLE movies (
movie_id UUID,
title TEXT,
release_year INT,
PRIMARY KEY (( movie_id ))
);
关系数据与 ACID 属性的支持无关。
关系数据与规范化数据无关
为什么 Cassandra 不被视为关系数据库?
为什么 Cassandra 被认为是 NoSQL 数据库?尽管它有桌子