来自的12条规则 (重点雷):
对于任何被宣传为或声称是关系数据库管理系统的系统,该系统必须能够完全通过其关系功能来管理数据库。
“关系功能”在这里意味着什么?这是否意味着您可以仅使用像SQL这样的语言来管理数据库?这还意味着什么吗?
发布于 2023-05-18 23:29:40
我认为维基网页提供了一个合理的解释:
20世纪80年代初,数据库供应商争先恐后地用关系贴面重新包装现有产品。
规则12扩展了规则0,以排除那些会使数据库内容(暂时)违反完整性约束的单时间记录更新。
“现有产品”包括索引-顺序访问和层次模型 --程序员需要知道每个文件是如何构造的,并且遵循这些‘访问路径’,而不是发出SELECT ... FROM ... JOIN ... WHERE ...请求,其中DBMS确定了访问路径,并在同一时间返回多条记录。
这是否意味着您可以仅使用像SQL这样的语言来管理数据库?
嗯。Codd和SQL有着某种爱恨的关系。在他1970年开创性的论文中,访问语言(/algebra)不是SQL。SQL是由IBM工程师发明的,他们(IMO)不理解Codd的提议。他们产生的早期SQL格式的目的是为了便于工程师实现,而不是优雅或有表现力。
20世纪70年代初,当业界意识到Codd的想法时,其他几家制造商生产了各种访问语言的实现,其中一些更接近于Codd 1970年的形式。但IBM (甲骨文)/SQL赢得了这场比赛。所以我们被困住了。
因此,没有任何规则0并不意味着通过特定的SQL。它的目标是排除坚持按特定顺序访问行/记录的机制,特别是查询返回混合格式的记录的想法,这些记录需要程序逻辑按照“记录类型”字段进行区分。
https://dba.stackexchange.com/questions/327184
复制相似问题