假如在某个给定关系中,现在只想要某个或者某几个属性,而不关心其他属性时,投影运算可以满足这样的要求。关系R上的投影是从R中选择若干列属性列组成新的关系记作∏A(R)={t[A] | t },其中A为R中的属性列。由于关系是一个集合,所以结果中所有的重复行均需被去掉。
疑问:
重复行怎样被去掉了?
对关系R进行投影运算后,得到关系S,关系R的元组数等于关系S的元组数。
那么重复行是指什么?
能否示例说明 ?
附:
集合中元素的特性
(1)确定性:给定一个集合,任何对象是不是这个集合的元素是确定的了.
(2)互异性:集合中的元素一定是不同的.
(3)无序性:集合中的元素没有固定的顺序.投影运算集合
疑问:
重复行怎样被去掉了?
对关系R进行投影运算后,得到关系S,关系R的元组数等于关系S的元组数。
那么重复行是指什么?
能否示例说明 ?
附:
集合中元素的特性
(1)确定性:给定一个集合,任何对象是不是这个集合的元素是确定的了.
(2)互异性:集合中的元素一定是不同的.
(3)无序性:集合中的元素没有固定的顺序.投影运算集合
但是关于关系或者是外键的约束是主键或者具有unique约束。
对于你关联的外键,必须是唯一的,不能存在重复。
From sc;
----------------
Select sno
From sc;
-----------------
1
2
3
1
2
3
1从数学角度,集合{1,2,3}、{1,2,3,1,2,3,1}是相等的,T-SQl支持重复集合,因此没有去掉重复行,
除非指定Dinstinct关键字。楼主可以去了解一下多重集合理论。
嗯嗯,你的示例数据的确说明:T-SQl支持重复集合,因此没有去掉重复行,但“去掉重复行”的说法是引自一书--(大专院校数据库考证参考教材):精通SQL语言与数据库管理(杨章伟) - 下载频道 - CSDN.NET
http://download.csdn.net/detail/sansong2005/4208186
呵呵,谢谢版主大人的详细讲解,关系理论这些东西在实际中应用得多不多呢?还是多用于理论考试或学术研究方面呢?
这外帖子讨论的重点是话题是:投影。看一看这个题目:
对关系R进行投影运算后,得到关系S,则( )。
(A) 关系R的元组数等于关系S的元组数
(B) 关系R的元组数小于关系S的元组数
(C) 关系R的元组数大于关系S的元组数
(D) 关系R的元组数大于或等于关系S的元组数这题目应该选哪个呢?根据上面的说法:在某个给定关系中,现在只想要某个或者某几个属性,而不关心其他属性时,投影运算可以满足这样的要求。关系R上的投影是从R中选择若干列属性列组成新的关系记作∏A(R)={t[A] | t },其中A为R中的属性列那么,以下这样解释对吗?
投影运算后,只影响关系S中的属性列数,不影响元组数,所以选A。
嗯嗯,多谢你的条理性提醒!
是我搞错答案了。。你说得对,正确答案应该是D.
补充:
元组:关系中的元组即二维表中的记录,也即行
属性:关系中的字段即二维表中的字段,也即列,有N列,即该关系有N组属性
嗯嗯,多谢你的条理性提醒!
是我搞错答案了。。你说得对,正确答案应该是D.
补充:
元组:关系中的元组即二维表中的记录,也即行
属性:关系中的字段即二维表中的字段,也即列,有N列,即该关系有N组属性
那就行,身边没书,也不是很确定元组是指什么。