深入学习关系理论

本文探讨了关系理论与SQL的区别,强调关系模型的集合特性与SQL的差异。关系理论包括结构、完整性、操作三部分,强调模型与实现的分离,提供数据独立性。关系变量作为新的概念,是关系模型中的重要元素。理论学习的重要性在于它能为实践提供坚实的理论基础。
摘要由CSDN通过智能技术生成

周末阴雨连绵,在家闲来无事,抽空读了《Database In Depth: Relational Theory for Practitioners》这本评价不错的关系理论书的开篇。作者C.J.Date是关系理论之父Codd的好友,所以对关系理论的理解是足够深入的。甚至在开篇不久,作者就提到了与Codd理念不合的地方,比如关于NULL的合理性,关于Domain与Type的等价性等。


1.SQL不等于关系模型!

在关系理论中,一般常用的术语是关系(Relation)、元组(Tuple)、属性(Attribute)。在SQL中为了方便用户理解,术语常用表(Table)、行(Row)、列(Column)。然而真相却是关系不是表,元组不是行,属性也不是列。如果你真的理解关系理论,这种术语互换可能没什么坏处。可是如果你只是通过SQL学到了关系理论的皮毛,这种类比会让你对真正的关系模型产生误解。

另一个例子就是关系模型中的关系是基于集合的,可SQL却允许重复的行出现在表中。而且投影(Project)操作也不会产生集合,而是保留重复的值,需要显示声明SELECT DISTINCT ...才能得到真正的集合。此外,属性在关系中也是无序,同样因为关系是基于集合的,然而在SQL中列却是有顺序的。种种细节都能看出,SQL定义的规范确实与正统的关系理论有很大出入。


2.真正的关系理论

1968年,Codd这位受过专业训练的数学家发现,数学可以为数据库管理领域注入严谨。他建立的关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值