精华内容
下载资源
问答
  • 文章目录1.关系代数2....关系代数也是一门代数,关系代数包括一个运算集合,这些运算以一或者两关系作为运算数,产生一关系作为结果 关系代数运算的分类如下: 2.基本关系代数运算:选择 选...

    1.关系代数

    • 可以用代数、逻辑等方法描述关系操作,最基本最常用的是代数方法,即:关系代数
    • 关系代数也是一门代数,关系代数包括一个运算集合,这些运算以一个或者两个关系作为运算数,产生一个新的关系作为结果
    • 关系代数运算的分类如下:
      在这里插入图片描述

    2.基本关系代数运算:选择

    • 选择
      选择运算是选出满足给定谓词(条件)的元组 ,结果关系和原关系有着相同的模式。
      选择运算用希腊字母δ表示
    • eg:选择出examinee表中,eesex=“男”的元组
      在这里插入图片描述

    3.基本关系代数运算:投影

    • 投影
      投影运算用来从给定关系产生一个只有其部分列的新关系;
      所有希望在结果关系中出现的属性作为Π的右下标,作为参数的关系名紧紧跟在Π后的括号中,结果关系的模式是:Π的下标中所有列出的列出的所有属性并按照Π下标中列出的顺序出现
      投影运算用希腊字母Π表示

    • eg:
      对examinee做投影,结果关系包括:eeid,eename两个属性,并且会去掉结果关系中重复的元组
      在这里插入图片描述

    • 注意:
      关系代数把表看作,作为元组集合的关系,既然是集合,就不包括重复元组,也就是说,关系代数每个运算都是去重的

    4.基本关系代数运算:并运算

    • 关系是相容的
      (1)两个关系必须是同元的,即:他们所包含的属性个数必须相同
      (2)两个关系对应属性的域必须相同或相容
    • eg:
      找出所有肯定有组卷考官或者所有有考生报考的eid
      对erexam的eid属性做投影,查询有组卷考官的试卷eid;
      对eeexam的eid属性做投影,查询有考生报考的试卷eid;
      最后这俩求个并

    在这里插入图片描述

    5.基本关系代数运算:集合差运算

    • 集合差运算是用来查询,载一个关系中,而不在另一个关系中的那些元组, 和并运算一样,集合差运算只能在相容的关系间进行

    • eg:找出所有有考生报考但是还没有安排组卷考官的eid
      对eeexam的eid属性做投影-对erexam的eid属性做投影
      在这里插入图片描述

    6.笛卡尔积运算

    • 结果关系的模式是参与运算的两个关系的模式的串接
    • 运算符左侧关系中的每一个元组与右侧关系的每一个元组拼接,形成结果关系中的一个元组
    • eg:examinee的每个元组和department的每个元组进行拼接,3*3=9个
      在这里插入图片描述

    7.更名

    • 可对关系更名,或者赋予关系代数运算结果的一个名字:
      对给定关系代数表达式E,表达式ρxρ_x(E)返回表达式E的结果,饼吧名字赋给了他

    • 假设关系代数表达式E是n元的,则表达式:
      在这里插入图片描述
      返回表达式E的结果,并赋给它名字x,同时将E的各属性更名为ρ1ρ_1A2A_2AnA_n

    • eg:查询所有历史学院的考生姓名
      在examinee表中,对历史学院做出选择,然后对eename进行投影
      在这里插入图片描述

    展开全文
  • 1。选择运算,那些符号相当难打...由于关系是一集合,所以所有重复行均被剔除。取列操作 3。并运算(union)。 4。集合差运算(set-difference) 5。地卡尔积运算 Union ,unionall 相当于交 intersect,i
    1。选择运算,那些符号相当难打出来,还是算了。选择(select)运算选出满足给定谓词的元组。取行操作
    2。投影运算(project)。返回作为参数的关系的某些属性。由于关系是一个集合,所以所有重复的行均被剔除。取列操作
    3。并运算(union)。
    4。集合差运算(set-difference)
    5。地卡尔积运算

    Union ,unionall   相当于交
    intersect,intersectall      相当于并
    except,except all    相当于减
    加了all之后能保留重复相当于交
    当然这些可以用 嵌套查询也可解决,in ,not in。

    关键词 some,至少比某一个要大,>some
    select branch_name from branch whereassets>some(select assets from branch wherebranch_city='Brooklyn')找出那些至少比branch中位于brooklyn的assets其中一个要大的branch_name.

    exists,not exists

    unique,not unique.测试是否有重复元素

    foreign key(branch_name) references branch one deletecascade,    
    意为这张表的banch_name依赖于branch这张表,如果branch删除了某个banch_name,则现在这张表也会做联级删除。


    连接池的概念。
    php一般没有连接池这个概念。借助apache的进程池,所以一般就不实现连接池。不过sqlrealy

    myisam
    说明当数据表有一个读锁时,其它进程的查询操作可以马上执行,但更新操作需等待读锁释放后才会执行。

    说明当数据表有一个写锁时,其它进程的读写操作都需等待读锁释放后才会执行。

    "
    在以下情况下,表锁定优先于页级或行级锁定:

    · 表的大部分语句用于读取。

    · 对严格的关键字进行读取和更新,你可以更新或删除可以用单一的读取的关键字来提取的一行:

    · UPDATE tbl_name SET column=value WHEREunique_key_col=key_value;
    · DELETE FROM tbl_name WHERE unique_key_col=key_value;
    · SELECT 结合并行的INSERT语句,并且只有很少的UPDATE或DELETE语句。
    · 在整个表上有许多扫描或GROUP BY操作,没有任何写操作。
    "


    竟然发现,运行update book set name='abc' wherenum=11; 后,有结果出现了,说明没有被锁住,
    这是为什么呢,难道 2 行数据和 5 行数据, MySQL 来说,会产生锁行和锁表两种情况吗。经过跟网友讨论和翻阅资料,仔细分析后发现:

    在以上实验数据作为测试数据的情况下,由于num 字段重复率太高,只有 2 个值,分别是 11 12. 而数据量相对于这两个值来说却是比较大的,是10 条, 5 倍的关系。
    那么 mysql 在解释 sql 的时候,会忽略索引,因为它的优化器发现:即使使用了索引,还是要做全表扫描,故而放弃了索引,也就没有使用行锁,却使用了表锁。简单的讲,就是 MYSQL 无视了你的索引,它觉得与其行锁,还不如直接表锁,毕竟它觉得表锁所花的代价比行锁来的小。以上问题即便你使用了force index 强制索引,结果还是一样,永远都是表锁。




    "InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!"
    而且这里的索引无论是何种索引都可以,唯一索引,主键索引,普通索引都行。
    展开全文
  • 本文来自北京润乾软件技术有限公司董事长蒋步星在清华大数据产业联合会讲座。...最后一块研究得还不够深,但也涉及到关系代数,就放进来一起谈谈。 先从编程序谈起。 编程到现在仍然不是一件轻松活。这...

    本文来自北京润乾软件技术有限公司董事长蒋步星在清华大数据产业联合会的讲座。

     

    整个内容分五个部分:(1)数据处理与代数;(2)关联运算及描述;(3)序运算与离散化;(4)层次数据与交互;(5)云数据组织

    本文介绍基本概念和背景;中间三部分都是数据分析的内容,是重点;最后一块研究得还不够深,但也涉及到关系代数,就放进来一起谈谈。

     

    先从编程序谈起。

    编程到现在仍然不是一件轻松的活。这里我们不去谈那些由于需求不清或变动而导致的困难,那是软件工程的目标。有一些问题,完全没有歧义,你明确知道解法,使用你最熟悉的程序设计语言,但这个程序仍然不好写。

    比如计算一支股票连续上涨了多少天,计算利率变动时房贷还剩余多少本金。想完成这样的运算,都还是要写很多代码才可以。

    最近股市不错,今天有不少例子是和股票相关的。

     

    本质上讲,编写程序的过程就是把解决问题的思路翻译成计算机可识别的精确的形式语言的过程。举例来说,就象小学生解应用题,想清楚每分钟进水多少出水多少,鸡多少兔多少等,最后列出四则运算的表达式,也就是精确的形式语言,就可以解决问题。用计算机解决问题的过程是类似的,拿到一个问题,想出解法,然后还要把解法翻译成计算机能理解能执行的动作才能完成。

     

    那么代码为什么难写呢?

    其中很大一部分原因是用来记录解法的形式语言和人的自然思维相差很远,它不能直接描述我们的思路。你必须按形式语言规定的思路来完成,这样经常会导致你告诉计算机该怎么做比做本身还要难。也就是说,翻译问题解法到形式语言的过程,这个难度经常远远超过解决问题本身。经常需要受过专业训练的人员,也就是程序员才会做,而我们的精力应当更多地放在解决问题而不是翻译解法上。

     

    进一步,这里面主要的原因,我认为是形式语言采用的代数体系不好。

    什么是代数体系呢,通俗一点说,就是定义了一些数据类型,并在这些数据类型上规定一些运算,并且保证这个运算是封闭的,也就是不能算出新类型的数据,逻辑要自洽,也就是不能算出矛盾来。

     

    这里的数据类型有些象面向对象的类,但又不同。面向对象更强调的是类的继承和重载能力,而这里更强调的是运算。

    广义地说,我们做数据处理都是在相应的代数体系下做运算。就像我们平时基于数做四则运算。如果我们在这些数上定义的运算不方便,就会造成很多麻烦,比如,如果只有加减法,没有乘法,人们上街买菜都会成问题了。

     

    形式语言中采用的代数体系将非常严重地影响数据处理的效率和能力。我们举两例不够好的代数:罗马数字和汇编语言。用罗马数字做通用的加减法都很困难,只适合做加1减1这类过于简单的运算。

    mov ax,3

    mov bx,5

    mul bx,7

    add ax,bx

    这是用汇编语言写出来3+5*7这样的运算,你必须把这样一个算式翻译成寄存器的运算,因为汇编语言只有类似字节这样的数据类型及运算。这显然非常麻烦,如果是浮点数运算则完全不知道该怎么办了。而使用高级语言就方便得多,因为高级语言中直接有了整数、实数这些数据类型及四则运算。从这个意义上讲,FORTRAN是个伟大的发明。

     

    我们用计算机分析数据的目的是找出事物之间的关联,而事物是由其属性决定的,这在技术上表现为结构化数据。数据分析处理的需求绝大多数都是已经或即将被结构化的数据。

    非结构化的数据,在存储上可能是大头,但关联运算并不是很多。有一些很专业算法,比如说图象识别,很难把它归到数据分析的类别中。其他日志、地理信息等的分析都是要做结构化之后才能做。

    大数据来了,很多人都说结构化数据的时代已经过去了,我不这么认为,结构化数据仍然是数据分析处理的重点。

     

    提到结构化的数据就要说关系代数了,关系代数是专门为结构化数据发明的一种代数体系,是现代关系数据库的理论基础。关系数据库是应用最广的一种数据库。虽然近年来,尤其大数据概念出来后,关系数据库有各种各样的问题,但仍然很强势。

    结构化数据是计算机广泛应用之后才大量出现的数据类型,传统数学中很少涉及这种数据类型,关系代数是少有的几项专门为计算机科学发明的数学。计算机应用中有大量的数学,但大多数都是几十年甚至几百年前被数学家发明的。现在热门的数据挖掘,用到的概率论、图论、线性代数基本上都是这种,没有计算机学术界什么事。

     

    关系代数是在结构化数据的集合上定义的一些运算,集合交并差,以及过滤、分组、连接等运算。关系代数中对关系的定义比较抽象,属性构成的集合称为关系,然后再研究关系的集合上的运算,这个不好懂。我们这里就用通俗地说法,简单地理解成有属性的对象集合,或者用程序员常说的术语,有字段的记录集合。

     

    提到关系代数就要说SQL,SQL是关系代数的形式语言。我们说,这个形式语言没有达到它的设计初衷。

    SQL的设计初衷是什么呢?它希望让普通的业务人员、不需要太懂技术的人员也能用起来。为什么这么说,因为它长得像英语,在它之前的程序设计语言都是形式化较强的,其中的单词只是符号。而SQL很象英语,甚至有些句子可以作为英语来读,希望懂英语的人就可以使用。但是,这个目的没有达到,稍微复杂一点的查询用SQL都很难写,需要很专业的人才能做出来的。数据库中大量存在着并非由于性能因素导致的难以计算出来的信息。

     

    稍扯远一点,许多SQL教科书都会声称,用SQL写代码,你只要说明要做什么,而不用关心怎么做,说的很高大上,但其实都是胡扯。前两天我看SAS的书也这么说,不过这些胡扯倒不影响这些产品的伟大性。

    事实上,任何一种程序设计语言都在某个层面满足这个说法,用汇编语言你也不用关心电子流是怎么流转的,而用SQL你仍然要关心表中的数据是如何组织的。

     

    SQL的不足,我总结是这样几条:

    分步这个比较容易理解,一个问题一步做出来总比分几步做出来要难,SQL不是不支持分步,是不提倡。

    其它问题会在下面的讨论中涉及。

     

    从这个意义上讲,关系代数还有很大的发展空间。它到现在也就四十年时间,与传统数学领域相比还很年轻,远远不像业界所说的那样,已经把结构化数据搞完了,其实差得很远。一个类比,现在的关系代数有点像三百年前搞微积分一样,可以搞的东西很多,门槛也不高。三百年前的微积分,现在大学低年级的学生都能够理解,而当前数学前沿的东西,你不读二十年书,根本就没有办法和人对话。计算机科学理论还处于可以有很多事可做的阶段。

    转载于:https://www.cnblogs.com/raqsoft/p/4560203.html

    展开全文
  • MATLAB矩阵运算与应用 基本知识 什么是矩阵 矩阵向量以及数组的关系 先来看一个5*5的矩阵 17241815 行向量 23571416 46132022 101219213 11182529 矩阵由行向量和列向量组成,实际上, 它是一张数据表,每行列数相等,...
  • 关系代数导图

    2018-03-19 17:46:24
    运算:同时从行与列角度进行运算投影:从关系R中选择出若干属性列组成新的关系选择:从关系R中选取是悬着出条件为真元组进行运算,是从行角度进行运算基本的运算有:1.并;2.差;3.选择;4.投影;5.笛卡尔...









    连接:从两个关系的笛卡尔积中悬着属性键瞒住一定条件的元组,而连接有分等值连接与自然连接。而外连接中又分左外连接与右外连接。

    除运算:同时从行与列的角度进行运算

    投影:从关系R中选择出若干属性列组成新的关系

    选择:从关系R中选取是悬着出条件为真的元组进行运算,是从行的角度进行运算

    最基本的运算有:1.并;2.差;3.选择;4.投影;5.笛卡尔积。

    展开全文
  • 数据库关系代数练习题

    千次阅读 2020-03-22 19:57:19
    5.(1)完整性规则是指若一属性是基本关系R主属性,则这属性不能取空值。 (2)一属性是基本关系R外码,它与基本关系S主码相对应。如果这属性本身不是主属 性,就可以取空值。 8.(1)基本运算:并、...
  • 运算:同时从行与列角度进行运算投影:从关系R中选择出若干属性列组成新的关系选择:从关系R中选取是悬着出条件为真元组进行运算,是从行角度进行运算基本的运算有:1.并;2.差;3.选择;4.投影;5.笛卡尔...
  •  《代数体函数值分布》主要介绍代数体函数值分布,系统地阐述这一领域的基本理论和半多世纪以来国内外发展状况和最新研究成果。其内容包括代数体函数Riemann曲面?Nevanlinna理论?Ahlfors覆盖曲面几何...
  • 、集合论的基本概念1、几简单名词解释1.1全集1.2补集和幂集1.3集合基数1.4集合之间的关系1.5空集是惟一二、集合代数运算1、并2、交3、差4、定律三、集合关系1、笛卡尔积2、关系、逆关系、合成关系3、关系...
  • ch5.代数与逻辑查询语句 包(Bag)关系运算 包与集合区别:包允许重复,比较高效(省掉了去重过程) ...扩展的关系代数运算 去除重复元组 符号表示:δ(R)\delta(R)δ(R) 使得包R内不存在两
  • 试题一 一填空题 ( 每小题 4 分共 20 分) 1数据库管理技术经历了 三阶段 2数据库三级...2 分共 20 分 1数据库中存储基本对象是数据 2数据库系统核心是 DBMS 3关系操作特点是集合操作 4关系代数中五种基本运算是
  • 试题一 一填空题 ( 每小题 4 分共 20 分) 1数据库管理技术经历了 三阶段 2数据库三级...2 分共 20 分 1数据库中存储基本对象是数据 2数据库系统核心是 DBMS 3关系操作特点是集合操作 4关系代数中五种基本运算
  • 关系代数的运算5.数据库设计阶段6. E-R 图7.设计 E-R 图8. E-R 图向关系模型的转换 第一部分 数据库简介 概括: (1)数据库由若干张相互关联的表格组成。 (2)数据库管理系统是一管理数据库的软件。 (3)...
  • database

    2020-07-20 09:36:30
    6关系代数的基本运算:并、差、笛卡尔积、选择、投影(加减乘,横竖) 7.不同列可以取自同一域,同一列不能取自不同域√ 8.R-S:只出现在R中不出现在S中的集合 9.投影符号:π。投影可以去重复的行。 选择符号:σ。...
  • 零散知识点总结

    2015-05-11 21:20:00
    数据库: 1.概念设计阶段,最常用数据模型是(E-R模型)。 2.(事务)是DBMS的基本单位,它是构建单一逻辑工作单元操作集合。 3.(模式)用来描述数据库全体数据...6.关系代数运算中,专门关系运算有(选择...
  • 2. 关系代数中专门关系运算包括:选择、投影、连接和____除 _____。 3. 设有学生表S(学号,姓名,班级)和学生选课表SC(学号,课程号,成绩),为维护数据一致性,表S与SC之间应满足 参照 完整性约束。 4. 当...
  • 2.4 逻辑判断及流程控制 2.5 基本绘图方法 2.6 M文件及程序调试第3章 MATLAB组成、安装和使用 3.1 MATLAB4.2c教学版安装 3.2 MATLAB搜索路径和搜索顺序 3.3 MATLAB与其它软件接口关系第4章 MATLAB其他函数...
  • 36、关系代数表达式等价变换规则:(看书)(1)连接、笛卡尔积交换律(2)连接、笛卡尔积结合律(3)投影串接定律(4)选择串接定律(5)选择与投影操作交换律(6)选择与笛卡尔积交换律(7)选择与并...
  • 算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 (3)算法3种基本控制结构 算法3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本设计方法:列举法、...
  • 5·6 集合包含关系与不等式 6.分式方程,分式不等式 第三章 函数与图形 1.函数 1·1 定义 1·2 隐函数·显函数 1·3 单调函数 1·4 偶函数·奇函数 1·5 反函数 2.函数图象 2·1 图象定义 2·2 图象移动 3....
  • 5·6 集合包含关系与不等式 6.分式方程,分式不等式 第三章 函数与图形 1.函数 1·1 定义 1·2 隐函数·显函数 1·3 单调函数 1·4 偶函数·奇函数 1·5 反函数 2.函数图象 2·1 图象定义 2·2 图象移动 3....
  • 若属性(或属性组)F是基本关系R外码,它与基本关系S主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每元组在F上值必须为:或者取空值(F属性值均为空值);或者等于S中某个元组主码值。即...
  • LINGO软件学习

    2009-08-08 22:36:50
    学完本节后,你对基于建模技术集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言基础,是程序设计最强有力基本构件。借助于集,能够用一个单一、长、简明复合公式表示一系列相似...
  •  《中外物理学精品系列·前沿系列:四元数物理学》是一本与通行物理学教科书籍略有不同书,叙述了相对论物理学的基本原理,不多涉及具体应用方面内容,主要不同之处有以下几方面:1.所用数学方法不同。...
  • (5)主要应用:将二项式定理等价公式应用到算术、代数、三角函数、反三角函数、双曲函数、反双曲函数等方面,不仅能导出数以百计(远多于一百)数学公式;特别应用到组合计数问题上,彻底地将历史遗留下来解...
  • 算法执行过程中所需要的基本运算次数 D. 算法程序中指令条数 (12) 算法空间复杂度是指(D) A. 算法程序长度 B. 算法程序中指令条数 C. 算法程序所占存储空间 D. 算法执行过程中所需要存储空间 (13) 设一...
  • (10) 数据字典是各类数据描述集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 答:数据存储 (11) 设一棵完全二*树共有500个结点,则在该二*树中有______个叶子结点。 答:250 (12) 在...
  • Linux C 编程一站式学习.pdf

    千次下载 热门讨论 2010-11-24 01:27:27
    本书尽最大努力理清概念之间依赖关系,力求一站式学习,读者不需要为了找一概念定义去翻其它书,也不需要为了搞清楚一概念在本书中前后一通乱翻,只需从前到后按顺序学习即可。但一站式学习并不等于傻瓜式...
  • 50 给定型变为另一所有可能同型变换之间的关系 第162目 51 歧型 第163目 52 与同时既是正常地又是反常地包含在另一型中型有关定理 第164目 53 由型表示数一般性研究以及这些表示与变换联系 ...
  • 5章微分运算的回顾、广义weil恒等式、moser技巧和  darboux型定理  5.1超代数  5.2微分形式  5.3d算子  5.4导子  5.5拉回  5.6lie导数  5.7weil公式  5.8广义weil公式  5.9链同伦  5.10moser技巧 第6章...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

关系代数的5个基本运算是