T-SQL基础教程:集合理论

  次阅读 来源:互联网(转载协议) 2016-02-17 13:45 我要评论(0)

集合理论是由数学家Georg Cantor创建的,这是一个基于关系模型的数学分支。Cantor的集定义如下:

集合,我们的意思是:任意集合体M是我们感知或想到的,能够确定的、互异对象m(称之为M的元素)的整体。

──Joseph W. Dauben和Georg Cantor(普林斯顿大学出版社,1990年)

定义中的每个字都有着深刻和重要意义。集合定义和集合从属关系是无需证明的公理,宇宙中的每个元素要么是集合成员,要么不是集合成员。

让我们从Cantor定义中的每个词开始。一个“集合”应将其视为单个实体,你的焦点应该放在对象的集合上,而不是组成集合的单个对象上。然后,当你对数据库中的表(如雇员表)编写T-SQL查询时,你应该将雇员的集合看作是一个整体,而不是单个的雇员。这听起来可能并不重要并且很简单,但显然很多程序员很难采用这种思维方式。

“互异”这个词的含义是指集合中的每个元素必须是唯一的。跳跃到数据库中的表,你可以通过定义键约束来强制表中行的唯一性。没有键的话,你就不能唯一地标识行,因此表也就不能取得“集合”资格。相反,该表将是一个多重集合或是一个无序的单位组。

“我们感知或想到的”这句话意味着集合的定义是主观的。思考一下教室:一个人可以被认为是“人”的集合,也有可能被认为是“学生”或“教师”的集合。因此,在定义集合方面你具有很大的自由度。当你为数据库设计数据模型时,设计过程应仔细考虑应用程序的主观需求,从而为相关实体确定恰当的定义。

至于“对象”,集合的定义不是限制为像汽车或雇员这样的物理对象,而是相关的抽象对象,如质数或线条。

Cantor的集合定义省略掉的内容很可能像所包含的内容一样重要。请注意,定义中没有提到集合元素间的任何顺序,集合元素的列出顺序并不重要。列出集合元素的正式标记符号是使用大括号:{a、b、c}。因为与顺序无关,你可以使用{b,a, c}或{b, c,a}表示同一集合。跳跃到属性(SQL中称之为列)集合,它们组成了关系(SQL中称之为表)的表头,元素应该是按名称标识──而不是按顺序位置标识。

同样,思考一下元组(SQL中称之为行)的设置,它们构成了关系的主体,元素由其键值进行标识,而不是按位置标识。许多程序员很难适应这种观念,对于查询表而言,行之间没有顺序。换句话说,对表的查询可以按任意顺序返回表中的行,除非你基于特定展现目的,明确要求数据以特定方式的进行排序。

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...