zoukankan      html  css  js  c++  java
  • 关系数据库元组关系演算语言ALPHA

    关系演算 :以数理逻辑中的谓词演算为基础

    按谓词变元不同分类

    1.元组关系演算:
    以元组变量作为谓词变元的基本对象
    元组关系演算语言ALPHA
    2.域关系演算:
    以域变量作为谓词变元的基本对象
    域关系演算语言QBE

    元组关系演算语言ALPHA

    (1) 简单检索(即不带条件的检索)

    格式: GET 工作空间名 (表达式1)
    查询所有被选修的课程号码。
    GET W (SC.Cno)

    (2) 限定的检索(即带条件的检索)

    格式: GET 工作空间名(表达式1) : 操作条件
    查询信息系(IS)中年龄小于20岁的学生的学号和年龄。
    GET W (Student.Sno, Student.Sage):Student.Sdept='IS'∧Student.Sage<20 

    (3) 带排序的检索

    格式: GET 工作空间名(表达式1) [:操作条件] DOWN/UP 表达式2 
    查询计算机科学系(CS)学生的学号、 年龄, 结果按年龄降序排序。 
    GET W (Student.Sno, Student.Sage): Student.Sdept=‘CS’DOWN Student.Sage

    (4) 带定额的检索

    格式 : GET 工作空间名(定额) (表达式1) [:操作条件] [DOWN/UP 表达式2] 
    取出一个信息系学生的学号。
    GET W (1) (Student.Sno): Student.Sdept='IS’

    (5) 用元组变量的检索

    1元组变量的含义
    表示可以在某一关系范围内变化(也称为范围变量Range Variable)
    2元组变量的用途
    简化关系名:设一个较短名字的元组变量来代替较长的关系名。
    操作条件中使用量词时必须用元组变量。
    3定义元组变量
    格式: RANGE 关系名 变量名
    一个关系可以设多个元组变量
    查询信息系学生的名字
    RANGE Student X  GET W (X.Sname):X.Sdept=‘IS’

    (6) 用存在量词的检索

    查询选修2号课程的学生名字。

    RANGE SC X  GET W (Student.Sname): ΕX(X.Sno=Student.Sno∧X.Cno='2')

    查询至少选修一门其先行课为6号课程的学生名字
    RANGE Course CX SC SCX
    GET W (Student.Sname):
    E SCX (SCX.Sno=Student.Sno∧
    E CX (CX.Cno=SCX.Cno∧CX.Pcno='6'))

    (7) 带有多个关系的表达式的检索

    查询成绩为90分以上的学生名字与课程名字

    RANGE SC SCX GET W (Student.Sname, Course.Cname): SCX (SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno) 

    (8) 用全称量词的检索

    查询不选1号课程的学生名字。
    RANGE SC SCX
    GET W (Student.Sname): v(任意)SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')

    (9) 用两种量词的检索

    查询选修了全部课程的学生姓名。

    (10) 用蕴函(Implication) 的检索

    (11) 集函数

    查询学生所在系的数目。

    GET W (COUNT(Student.Sdept))
    COUNT函数在计数时会自动排除重复值。

    更新操作

    (1) 修改操作

    用HOLD语句将要修改的元组从数据库中读到工作空间中 HOLD 工作空间名(表达式1) [:操作条件 ]
    用宿主语言修改工作空间中元组的属性
    用UPDATE语句将修改后的元组送回数据库中

    把95007学生从计算机科学系转到信息系
    HOLD W (Student.Sno, Student.Sdetp): Student.Sno='95007   (从Student关系中读出95007学生的数据)
    MOVE ‘IS’ TO W.Sdept (用宿主语言进行修改)
    UPDATE W (把修改后的元组送回Student关系)

    (2) 插入操作

    用宿主语言在工作空间中建立新元组
    用PUT语句把该元组存入指定关系中  PUT 工作空间名 (关系名)

    学校新开设了一门2学分的课程‚计算机组织与结构‛ , 其课程号为8, 直接先行课为6号课程。 插入该课程元组 
    MOVE '8' TO W.Cno
    MOVE '计算机组织与结构' TO W.Cname
    MOVE '6' TO W.Cpno
    MOVE '2' TO W.Ccredit
    PUT W (Course)

    (3) 删除操作

    用HOLD语句把要删除的元组从数据库中读到工作空间中
    用DELETE语句删除该元组  DELETE 工作空间名

    95110学生因故退学, 删除该学生元组。
    HOLD W (Student):Student.Sno='95110'
    DELETE W 

  • 相关阅读:
    uniapp版本迭代
    上传图像裁剪功能
    uniapp 复制到剪切板
    uniapp吸顶功能
    地图导航到目的地
    uniapp视频图片上传
    获取昨天今天明天的时间
    【VUE】 前端面试题小结
    vue获取当前时间 实时刷新
    CSS linear-gradient() 函数
  • 原文地址:https://www.cnblogs.com/vincentqliu/p/6925956.html
Copyright © 2011-2022 走看看