数据库设计 Relational Language

news2024/10/6 18:25:30

除了最为常用的SQL语句之外,还存在着几种不常用的数据库语言,这里简单介绍,了解即可。

Relational Algebra(RA)

一种程序性语言,可以与SQL对应着转换,语法即转换规则如下:

  1. σ:与WHERE对应,表示查询条件
  2. Λ:与AND对应,在查询条件中做与
  3. ν:与OR对应,在查询条件中做或
  4. ¬:与NOT对应,在查询条件中做非
  5. Π:与SELECT对应,表示查询列
  6. x:笛卡尔积,用于连接多个数据表,没有明确的关键字对应,相当于FROM之后写多个数据表,通常与WHERE一起使用
  7. ⋈:与JOIN对应,用于横向连接多个数据表,下标的条件即为JOIN条件,相当于JOIN ON之后的条件,默认为INNER JOIN
    ⟕,⟖,⟗:分别对应LEFT JOIN,RIGHT JOIN和OUTTER JOIN,下标同样对应ON
  8. U:与UNION对应,用于纵向连接两个结构一样的数据表或查询结果,也就是取并集
  9. ∩:与INTERSECT对应,用于取两个结构相同的数据表或查询结果的交集
  10. -:与EXCEPT对应,从 - 之前的数据表中删除 - 之后的数据表中的数据
  11. ←:与WITH AS对应,设计预订的查询语句,并为其起一个名字,结构为 name ← sql
  12. ρ:与AS部分对应,用于重命名获取的列
  13. ():与FROM对应,表示查询的数据表
    具体条件以下标的形式写在符号的右下角。

例如:
在这里插入图片描述
对应 SELECT * FROM instructor JOIN teaches ON instructor.ID = teaches.ID WHERE dept_name = ‘Physics’;

与SQL语句的不同

  1. SQL语句是支持内部进行算数运算的,但RA不支持
  2. 不能排序,即没有与ORDER BY对应的符号
  3. 无法聚合,即没有与COUNT,AVG,MIN,MAX等函数对应的关键字

Tuple Relational Calculus(TRC)

RA是从行为上描述我们需要咋样将数据从数据库中取出,而RC包括TRC和DRC都是从逻辑上描述我们需要从数据库中取出什么样的数据,因此RC语言不能直接与SQL语句进行转换,这里只简单介绍两种RC语言的语法。
TRC就是用一个集合表示要查询的数据,左边为要查询的列,右边为数据所有满足的条件。
例如:
{ S.name | Student(S) Λ S.grade > 90 } 表示查询所有分数大于90的学生的名字。
在这里插入图片描述
需要注意的是,TRC与逻辑运算一致,都有所有(ALL)和存在(EXIST)的区别。
在这里插入图片描述

Domain Relational Calculus(DRC)

DRC与TRC类似,只是在写法上有一些不同,这里只举几个例子,即可领会其中的区别:
DRC在右侧必须是与数据表结构严格对应,如果一个列不需要返回,那么只要在左侧不写就好。
{<i, n, a> | <i, n, a> ε STUDENT} :去所有学生的所有数据
{ <i, n, a> | <i, n, a> ε STUDENT} Λ i =123 } : 取所有学号为123的学生的数据
{ | <i, n, a> ε STUDENT} Λ i =456 }:取学号为456的学生的名字
{ |<i, n, d, s> ε instructor Λ s > 80000}:取薪水大于80000的讲师的id
在这里插入图片描述
:Find the names of all instructors in the Physics department together with the course id of all courses they teach
在这里插入图片描述
: Find the names of all instructors whose department is in the Watson building

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一篇文章让你搞懂各种压缩,gzip压缩,nginx的gzip压缩,Minification压缩

前言 同学们可能听过这些压缩&#xff0c;但是可能不是了解&#xff0c;这篇文章让你弄清他们 webpack的gzip压缩和nginx的gzip压缩有什么区别&#xff1f;怎样开启gzip压缩&#xff1f;Minfication压缩又是什么鬼&#xff1f;怎样使项目优化的更好&#xff1f;本篇文章讲的是…

DBCO点击试剂1629057-08-4,DBCO-C3-Maleimide,DBCO-C3-Mal

一、基础产品数据&#xff08;Basic Product Data&#xff09;&#xff1a; CAS号&#xff1a;1629057-08-4 中文名&#xff1a;二苯基环辛炔-C3-马来酰亚胺、二苯并环辛炔-C3-马来酰亚胺 英文名&#xff1a;DBCO-C3-Maleimide&#xff0c;DBCO-C3-Mal 结构式&#xff08;Struc…

MAC 通过IDEA启动tomcat,显示80端口被占用解决办法

mac系统下使用IntelliJ IDEA中的Tomcat报错问题&#xff1a;Address localhost:80 is already in use 一、状况描述 本人在跑一个tomcat的项目时&#xff0c;由于项目限制了用域名访问&#xff0c;为了方便本地开发调试&#xff0c;需在tomcat在IDEA中将端口设置为80&#xff…

three.js问题记录---MeshLambertMaterial材质颜色失效

初学three.js&#xff0c;跟着教程走都比较顺利&#xff0c;自己尝试写个demo的时候发现创建一个物体&#xff0c;在给材质颜色的时候出现了一个问题。 在three.js官网文档&#xff08;https://www.techbrood.com/threejs/docs/&#xff09;中&#xff0c;我们可以看到材料&am…

论文解读-Early Detection of Cybersecurity Threats Using Collaborative Cognition

1 概述与介绍 作者描述了一种新颖的协作框架&#xff0c;该框架通过利用语义丰富的知识表示和与不同机器学习技术集成的推理功能来协助安全分析人员。文中介绍的认知网络安全系统从各种文本源中提取信息&#xff0c;并使用一种扩展的UCO安全本体的将其存储在知识图谱中。该系统…

[附源码]Python计算机毕业设计SSM家庭安防系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

一个ubuntu系统搭建redis集群

下载redis(如果要搭建redis集群不建议使用命令下载&#xff0c;因为后面启动集群时redis5.0一下的会有问题&#xff0c;依赖ruby) 更新apt sudo apt update使用apt下载 sudo apt install redis-server打开redis配置文件 sudo vim /etc/redis/redis.conf设置远程连接&#x…

2023年tiktok自动化运营软件新排名看这里!

【导读】2022年即将结束啦&#xff0c;你的tiktok运营效果怎么样呢&#xff1f;这里我们小编告诉您&#xff0c;用tiktok自动化运营软件可以取得事半功倍的效果哦&#xff01;这里就带大家看看2023年tiktok自动化运营软件排名哦&#xff01; 2023年tiktok自动化运营软件新排名看…

FPGA学习笔记(九)SPI学习总结及stm32的HAL库下SPI配置

系列文章目录 一、FPGA学习笔记&#xff08;一&#xff09;入门背景、软件及时钟约束 二、FPGA学习笔记&#xff08;二&#xff09;Verilog语法初步学习(语法篇1) 三、FPGA学习笔记&#xff08;三&#xff09; 流水灯入门FPGA设计流程 四、FPGA学习笔记&#xff08;四&…

上海亚商投顾:沪指继续震荡向上 零售等消费股表现活跃

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪三大指数今日低开高走&#xff0c;深成指盘中涨超1%&#xff0c;创业板指一度涨逾1.5%&#xff0c;随后均上演冲高回…

【C++进阶】引用 函数提高

文章目录一 、引用1.1 引用的基本使用1.2 引用的注意事项1.3 引用做函数参数1.4 引用的本质 &#xff1a;指针的常量1.5 常量引用二、函数提高1 函数默认参数2 函数占位参数3 函数重载一 、引用 1.1 引用的基本使用 作用&#xff1a;给变量起别名 语法&#xff1a;数据类型 &a…

Python计算目标检测中的IoU

Python计算目标检测中的IoU前言前提条件相关介绍实验环境IoU概念代码实现前言 本文是个人使用PythonPython处理文件的电子笔记&#xff0c;由于水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入我的个人主页查看 前提条件 熟悉P…

​寒武纪思元370系列与飞桨完成II级兼容性测试,联合赋能AI落地实践

2022年12月2日&#xff0c;寒武纪思元370系列与飞桨已完成II级兼容性测试&#xff0c;兼容性表现良好。 本次II级兼容性测试基于寒武纪MLU370系列&#xff0c;测试了包含PP-YOLO、YOLOv3、ResNet50、DeepLabv3、BERT、OCR-DB等共计15个模型的验证&#xff0c;覆盖了计算机视觉…

01-go基础-07-map(声明map、初始化map、map赋值、遍历map、判断key是否在map中、删除map成员)

文章目录1. 声明 map2. 初始化 map3. map赋值3.1 直接声明并赋值3.2 分别定义每一组键值对4. 遍历map5. 判断key是否在map中6. 删除成员&#xff08;delete()&#xff09;1. 声明 map 语法 var MapName map[keyType]valueType语法示例 var warlords map[string]string仅声明…

Eureka 服务端搭建入门与集群搭建

前言 Eureka在2022年已经确定的是&#xff0c;2.x版本开源计划已经停止了&#xff0c;1.x版本陆陆续续还是有人在维护的。还有很多最早使用微服务的公司还在继续用着eureka作为注册中心&#xff0c;也是很多同学学习微服务的敲门砖。 搭建Eureka服务端 创建一个平平无奇的ma…

2203 CSDN课程-python入门课

Python入门课&#xff0c;较为基础。 1 简介 1.1 前言 事实上&#xff0c;Python已经走过很多年的发展历程了&#xff0c;笔者最一开始学习的时候还是2.x版本&#xff0c;现在早就3.xx版本了。在当提笔&#xff0c;不是青春年少。确实是这样&#xff0c;我记得是2018年开始接…

【Linux从入门到放弃】Linux权限详解

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《Linux从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; L…

m基于遗传优化的复杂工序调度matlab仿真,输出甘特图和优化收敛图

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 遗传算法 (Genetic Algorithm&#xff0c;GA) 是一种基于规律进化的随机优化搜索算法&#xff0c;该算法最早是由Holland在1975年提出的。遗传算法的主要优势是通过对目标对象进行优化操作&#…

力扣-234-回文链表

回文链表 CategoryDifficultyLikesDislikesalgorithmsEasy (52.70%)1576- TagsCompanies给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff…

FTP文件传输服务

FTP 服务概述2-1 FTP连接及连接模式 控制连接&#xff1a;TCP 21&#xff0c;用于发送FTP命令信息 数据连接&#xff1a;TCP 20&#xff0c;用于上传、下载数据 数据连接的建立类型 主动模式&#xff1a;服务端从 20 端口主动向客户端发起连接 被动模式&#xff1a;服务端在指…