数据库基础—关系数据库简介和关系代数8种运算方法及例题

数据库基础—关系数据库简介和关系代数8种运算方法及例题关系数据库关系数据模型关系是一个数学概念 当把关系的概念引入到数据库系统作为数据模型的数据结构时 既有所限定和也有所扩充 关系的数学定义例 课程 离散 C 语言 学生 张三 李四 笛卡儿积 cartesianpro 设 D1 Dn 是 n 个域 D1 Dn 上的笛卡尔乘积定义为集合 D1 Dn d1 dn di Di 1 i n

关系数据

关系数据模型

关系的数学定义

例:

课程={离散,C语言…..},学生={张三,李四…..} 

解:

D1={离散,C语言…},D2={张三,李四…} D1×D2={(离散,张三),(离散,李四),…… (C语言,张三),(C语言,李四),…… …….} 

关系(relation):笛卡尔乘积D1×…×Dn的任意一个子集合称为一个定义在域D1、…、Dn上的关系。

对数学定义的限定和扩充

限定:无限关系在数据库系统中是无意义的。因此限定关系数据模型中的关系必须是有限集合。

基本关系具有以下六条性质:

  • 列是同质的,即每一列中的分量是同一类型的数据;
  • 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性必须给不同的属性名;
  • 列的顺序可任意交换;
  • 任意两个元组不能完全相同;
  • 行的顺序可任意交换;
  • 分量必须取原子值,即每一个分量都必须是不可分的数据项。

完整性约束规则

几个基本概念
  • 候选键:给定关系模式R(U),K属于U,如果
    (1) R(U)的任何关系实例中的任意两个元组在属性集合K上的值都不相同----唯一性
    (2) K的任何真子集都不满足条件(1)----极小性
    称K是候选键。
    例:Student(姓名, 学生编号, 年级, 专业, 系)
    显然,学生编号是候选键。
    如果姓名不重复,姓名也是候选键。












  • 主键:一个关系模式可能具有多个候选键。
    当一个关系中具有多个候选键时,我们选择一个作为该关系模式的主键。
    候选键中的属性称为键(主)属性,其他属性称为非键(主)属性




  • 外部键:设X是关系模式R(U)的一个属性集合。如果X是另一个关系模式R’(U’)的主键,则称X是R(U)关于R’(U’)的外部键。
    例:外部键
    这里写图片描述




关联完整性约束说明,任何关系的一个元组只能通过外部键与另一个关系中存在的元组相关联.


关系运算

  • 基于代数的定义:关系代数
    这里写图片描述

  • 基于逻辑的定义:关系演算
    由于使用变量的不同,关系演算又分为元组关系演算和域关系演算。

关系代数

(1.) 并运算

这里写图片描述

(2.) 差操作

这里写图片描述

(3.) 笛卡尔乘积

这里写图片描述

(4. ) 投影操作

这里写图片描述

(5. ) 选择操作

这里写图片描述

(6. ) 交操作

这里写图片描述

(7. ) 连接操作

这里写图片描述

(7. 1) 几个特殊的连接操作

①自然连接 设Att(R)和Att(S)分别是R和S的属性集合。连接条件为R.B=S.B,连接的结果关系的属性集合为Att(R)∪(Att(S)-{B}),即B在结果关系中只出现一次。称这样的连接操作为自然连接操作,

白话: 找相同的然后拼在一起, 例如B属性, 看看下面的例子;

这里写图片描述

②复合连接 类似于自然连接,只是连接结果不包含连接属性。

这里写图片描述

③半连接

这里写图片描述

白话: 下面的例子由于是R半链接S, 则因此拿R去和S所比较

这里写图片描述

(8. ) 商操作

设R和S是两个关系,Z是R的属性集合,X是S的属性集合,XZ,Y=Z-X。R除以S的商定义为R÷S={t|t∏Y(R)且sS, tsR},其中,ts表示由t和s的各属性值构成的一个R关系元组。

白话: 看下面的例子, 因为C, D是关系S中的两个属性, 因此在R集合对除了C, D的属性, 即A, B两属性进行投影, 得到a, b; b, c; e, d;这三组, 然后用这个结果与关系S进行笛卡尔积运算, 发现b c c d这组在关系R中没有, 其余a, b; e, d; 做的运算在R中存在. 因此最后结果为a, b; e, d;

这里写图片描述


关系代数运算例题

一个COMPANY数据库

这里写图片描述

下面介绍了一些需要用到的属性解释

NAME--员工名字 SSN--员工编号 SUPERSSN--上司编号 DNO--部门编号 DNUMBER--部门编号 MGRSSN--负责人编号 PNAME--项目名称 PNUMBER--项目编号 ESSN--员工编号 PNO--项目编号 

问1: 参加了p2项目的员工号(由于符号不太好打, 我手写的)

这里写图片描述

语言解释: 在WORKS_ON表中选择PNO=P2的元组, 再对员工号即ESSN进行投影.

问2. 在“研发部”工作的所有工作人员名字

这里写图片描述

问3. 没有参加项目p1的工作人员名字

这里写图片描述

语言解释: 在WORKS_ON中选择P1项目, 与EMPLOYEE进行连接, 然后对NAME进行投影得到参加p1工作人员的名字, 最后用所有的名字减去它.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224923.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:50
下一篇 2026年3月17日 上午10:50


相关推荐

  • 安卓ExpandableListView的详细使用教程(附代码解析过程)

    安卓ExpandableListView的详细使用教程(附代码解析过程)ExpandableListView又称可扩展的ListView,它可以实现点击父项展开子项的效果,本文实现了一个比较精美的ExpandableListView。

    2022年6月30日
    21
  • 硬中断和软中断_软中断和硬中断的优先级

    硬中断和软中断_软中断和硬中断的优先级本文主要内容:硬中断/软中断的原理和实现内核版本:2.6.37Author:zhangskd@csdnblog 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行

    2025年8月16日
    3
  • 门面模式Facade

    门面模式Facade完整设计模式目录见 https blog csdn net u0 article details 门面模式 将一个固化的流程进行封装 使对外提供的方法更简单将一个流程化的东西进行整合例 将写信的流程封装到 postLetter 对外提供这个方法更简便 packagecom zhaowd test designPatter facadePatter 门面模

    2026年3月19日
    1
  • 【转载】热电偶和热电阻的区别

    一、热电阻和热电偶的测量原理1、热电偶的测量原理热电偶工作原理是基于赛贝克(seeback)效应,即两种不同成分的导体两端连接成回路,如两连接端温度不同,则在回路内产生热电流的物理现象。热电偶由两根不同导线(热电极)组成,它们的一端是互相焊接的,形成热电偶的测量端(也称工作端)。将它插入待测温度的介质中;而热电偶的另一端(参比端或自由端)则与显示仪表相连。如果热电偶的测量端与参比端存在…

    2022年4月7日
    46
  • Visual Studio 2022无法打开源文件[通俗易懂]

    Visual Studio 2022无法打开源文件[通俗易懂]今天遇到个很糟心的问题,安装好的VisualStudio2022无法打开多个源文件,以至于连默认的HelloWorld程序都跑不起来(如下图所示,四百多个错误)。网上找了很多办法,有修改附加包含目录的(按道理这个是对每个项目进行定制化处理的,通过将第三方库的路径插入至查找路径中以方便载入第三方库)、有修改SDK版本的(其实方向对了,但是本地没有需要的SDK再怎么修改都是枉然)、有重新安装VisualStudio的(默认添加的SDK版本是不对的,所以还是无法解决问题),但是这些方法都没用。.

    2022年6月16日
    75
  • 手把手教你用 c++ 做 图书管理系统「建议收藏」

    手把手教你用 c++ 做 图书管理系统「建议收藏」图书管理系统设计题目要求思路分析各个模块的实现“书”类的创建管理模块的创建及实现管理权限添加图书查找图书修改图书删除图书销售模块的创建与实现统计模块的创建与实现创建简易登录界面文件的读取与存储题目要求1、问题描述:定义图书类,属性有:书名、出版社、ISBN号、作者、库存量、价格等信息和相关的对属性做操作的行为。主要完成对图书的销售、统计和图书的简单管理。2、功能要求(1)销售功能:购买书籍时,输入相应的ISBN号,并在书库中查找该书的相关信息。如果有库存量,输入购买的册数,进行相应

    2022年6月3日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号