zoukankan      html  css  js  c++  java
  • 计算机科学丛书:数据库系统概念 读书笔记(六)--形式化关系查询语言

    形式化语言:关系代数、元组关系演算和域关系演算

    1. 关系代数

    基本:选择,投影,并,集合差,笛卡尔积和更名

    其他:集合交,自然连接和赋值

    1.1 基本运算

    一元运算:选择、投影、更名

    二元运算:并、集合差、笛卡尔积

    1.1.1 选择运算(select)

    σdept_name="Physics" ∩ salary>90000(instructor)  在instructor关系中找出dept_name属性为"Physics"且salary属性大于90000的所有元组

    σdept_name=building(instructor)  在instructor关系中找出dept_name属性和building属性相同的所有元组

    注:关系代数中的选择与SQL中的select具有不一样的含义,应对应于SQL中的where

    1.1.2 投影运算(project)

    返回作为参数的关系,但把某些属性排除在外。

    πID, name, salary(instructor)  显示查询了instructor关系中的ID,name,和salary三个属性的关系。

    1.1.3 关系运算的组合

    πnamedept_name="Physics"(instructor))  找出物理系中所有教师的名字

    1.1.4 并运算

    找出开设在2009年秋季或者2010年春季学期或者这两者皆开的所有课程的集合

    1.1.5 集合差

    找出所有开设在2009年秋季学期但是在2010年春季学期不开的课程

    1.1.6 笛卡尔积运算

    将任意的两个关系的信息组合在一起

    1.1.7 更名运算

    ρx(E)  将名字x赋给E

    已知instructor关系中存在salary属性,找出salary的最大值:

    1. 找出不是salary属性不是最大值的所有元组构成的关系

    πinstructor.salaryinstructor.salary<d.salary(instructor×ρd(instructor)))

    2. 求集合差来获得salary的最大值

    πsalary(instructor) - πinstructor.salaryinstructor.salary<d.salary(instructor×ρd(instructor)))

    1.2 关系代数的形式化定义

    1.3 附加的关系代数运算

    1.3.1 集合交运算

    找出在2009年秋季和2010年春季都开设的课程

    1.3.2 自然连接运算

     1.3.3 赋值运算

    1.3.4 外连接运算

    左外连接:取出左侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填充所有来自右侧关系的属性

    右外连接:用空值填充来自右侧关系的所有与左侧关系的任一元组都不匹配的元组,将结果加到自然连接的结果中

    全外连接:即做左外连接又做右外连接

  • 相关阅读:
    JS实现日期选择
    php获取ip地址
    CentOS下将php和mysql命令加入到环境变量中简单
    java第二次作业
    新学期新计划
    java第三次作业
    java第四次作业
    申请到博客的第一时间
    Java基础之JDK
    Java中的数据类型
  • 原文地址:https://www.cnblogs.com/PaulingZhou/p/6611299.html
Copyright © 2011-2022 走看看