zoukankan      html  css  js  c++  java
  • 《数据库系统概念》8-选择、投影等关系运算

    关系代数 Relational Algebra中,一元运算符有选择select、投影project、重命名remane,其余的包括并运算union、集合差set diffetence、笛卡尔积cartesian  product等为二元运算符。下面学习它们的基本使用。
    一、一元运算符
    a)选择
    选择的操作符为小写sigma(σ),比如选择物理系的教师,可以写为:
    σdept_name=”Physics”(instructor)(标准的写法中dept_name=”Physics”属于σ的下标)。
    还可以使用比较运算、与∧、或∨、非¬等,薪水大于90000的物理系教师:
    σdept_name=”Physics”∧salary>90000(instructor)
    查询部门名称与所在办公楼同名的部分:
    σdept_name=building(department)
    需要注意的是关系代数中的select并不与SQL中的select对应,与之对应的是SQL的where子句
    b)投影
    投影的操作符为大写pi(Π),可以选择性的显示关系的某些属性,SQL的select ID, name, salary from instructor 可以表示为:
    ΠID, name, salary (instructor )
    c)关系运算的组合
    关系运算的结果还是关系,基于这一点,可以将关系运算组合使用,比如查找表达物理系老师的姓名,可以表示为:
    Πname (σdept name = “Physics” (instructor))
    这儿将选择运算的结果作为了投影运算的参数
    d)重命名
    重命名的符号为小写rho(ρ):
    ρx(E)表示将关系E重命名为x
    ρx(a1,a2...)(E)则将E对应的属性也重命名为a1,a2...
    二、二元运算符
    a)并运算Union
    并运算为二元运算符,用于合并两个相同结构的集合,之前查询过2009年秋季和2010年春季都开课的课程ID,可以表示为:
    Πcourse id (semester = “Fall”∧ year=2009 (section))

    Πcourse id (semester = “Spring”∧ year=2010 (section))
    union运算的符号为∪,参加union运算的关系必须有相同数目的属性,而且对于合并位的属性类型必须相同。
    b)集合差运算Set-Difference
    集合差运算的符号位减号-,r-s的结果为存在于r中但不存在于s中的元组。集合差运算对集合的要求与union相同。
    c)笛卡尔积Cartesian Product
    笛卡尔积的符号为×,instructor×teaches的结果为教师与课程间所有可能的的组合情况,但这样往往没什么实用意义,除了教师与课程能对应起来的元组,这些元组可以筛选为:
    σinstructor .ID = teaches.instcuctor_ID (dept name =”Physics”(instructor × teaches))


    学习资料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan


  • 相关阅读:
    Photoshop 怎样用Ps替换颜色?
    Qt QTranslator 实现多语言转换
    Qt 翻译文件QTranslator不能使用问题总结
    Qt 怎样生成带图标的exe
    Qt QTranslator的使用
    Qt comboBox的简单应用
    Qt 界面翻译linguist
    Qt 常见错误:“Project ERROR: Cannot run compiler 'xxx', Maybe you forgot to setup the environment”
    Qt 关于在Visual studio 2013中用Qt5插件打开.pro文件出现错误:Project ERROR: Cannot run compiler 'cl'
    Excel 如何在Excel表格中的方框内打勾?
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/7912572.html
Copyright © 2011-2022 走看看