gpt4 book ai didi

database - 为什么关系数据库中不允许重复行?

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:41 24 4
gpt4 key购买 nike

this introductory tutorial在 JDBC 和关系数据库上,声明,

Integrity Rules

Relational tables follow certain integrity rules to ensure that the data they contain stay accurate and are always accessible. First, the rows in a relational table should all be distinct. If there are duplicate rows, there can be problems resolving which of two possible selections is the correct one.

但是如果行是重复的,则意味着两行中的所有字段都具有相同的值;当它们完全相同(重复)时,如何出现一个正确另一个错误的问题? 行的重复如何损害数据完整性?

最佳答案

这是一个哲学问题。但我认为你可能投入了太多。我会说问题真的是“数据库如何知道哪一行是正确的获取”。在我设置的第一个系统中,我弄乱了键并设法在表中获得重复的行。然后问题是如何告诉数据库要删除哪些行(20 年前,我认为使用 postgres 5.x)。它本身不会损害数据完整性,但会损害“准确且始终可访问”,因为不可能只获取您需要的一行。

举个例子:如果有人把一张人表弄成这样

create table person(
name varchar not null,
dateofbirth date not null,
town varchar not null);

很明显,您迟早会得到重复的记录。我知道第一个 John Smith 31.08.67 出生在奥斯陆是我的老同学,而第二个 John Smith 31.08.67 出生在奥斯陆是我一周前第一次见到的同事。但我无法在数据库中将它们彼此区分,也无法单独处理它们。所以如果我以后做一个

alter table person add connection;

那么我就不可能将正确的数据放入数据库系统。

关于database - 为什么关系数据库中不允许重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35094238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com