数据库关系模型与关系运算---2022.2.13

关于外模式,模式,内模式的理解

可以看到用不同的语句进行表示:
在这里插入图片描述

关系的性质

在这里插入图片描述概念模式/内模式映射是物理独立性的关键;
外模式/概念模式映射就是逻辑独立性的关键

候选键 (最小组成的超键)

  • 关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选键
    如DEPT中的D#,DN都可作为候选键
    如SC中的属性组(S#,C#)可作为候选键
    任何一个候选键中的属性称作主属性
    如SC中的S#,C#
    仅包含唯一标识记录所必需的最小数量列的超键。表的候选键有三个属性:
    唯一性:在每条记录中,候选键的值唯一标识该记录。
    最小性:具有唯一性属性的超键的最小子集。
    非空性:候选键的值不允许为空。

主键

进行数据库设计时,从一个关系的多个候选键中选定一个作为主键
如可选定D#作为DEPT的主键

外部键(外键)

关系R中的一个属性组,它不是R的键,但它与另一个关系S的键相对应,则称这个属性组为R的外部键
如S关系中的D#属性
在这里插入图片描述

超键

1)超键:
一个列或者列集,唯一标识表中的一条记录。超键可能包含用于唯一标识记录所不必要的额外的列,我们通常只对仅包含能够唯一标识记录的最小数量的列感兴趣。
一张student表 假设姓名没有重复的 学号(student_id) ,姓名都可以确定唯一一条记录,
学号+姓名的组合也可以确定一条记录,这三种都叫超键

关系模型

数据模型三要素

1.数据结构

                单一的数据结构——关系  实体集、联系都表示成关系

2.数据操作(关系模式)

关系模式
  • 关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等,记作R(U, D, dom, F), 简记为R(U) 或 R(A1 , A2 ,…, An )
  • 属性向域的映象一般直接说明为属性的类型、长度等
  • 某一时刻对应某个关系模式的内容(元组的集合)称作关系
    关系模式是型,是稳定的。关系是某一时刻的值,是随时间不断变化的
关系操作

关系操作是集合操作,操作的对象及结果都是集合,是一次一集合的方式
而非关系型的数据操作方式是一次一记录
关系操作可以用关系代数和关系演算两种方式来表示,它们是相互等价的
如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并等

3.完整性约束

在这里插入图片描述在这里插入图片描述

并运算

在这里插入图片描述在这里插入图片描述

选择运算

在这里插入图片描述
2=5 表示的是选择第二列为数值5的行

在这里插入图片描述

投影

在这里插入图片描述

广义笛卡尔积

两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组

RXS的度为R与S的度之和, RXS的元组个数为R和S的元组个数的乘积

在这里插入图片描述

在这里插入图片描述

连接

在这里插入图片描述

1 . theta 连接:

A,B为R和S上度数相等且可比的属性列
theta 为算术比较符,为等号时称为等值连接
在这里插入图片描述

这个就是先做笛卡尔积,然后再按条件选择

在这里插入图片描述

2.自然连接

这里简单理解就是, (也可以先不做笛卡尔积) 找到两个表中相同的列,比较相同列的值,如果相等,则取出。

在这里插入图片描述

连接用于连接多个表的应用

示例
查询选修数据库原理课程且成绩在90分以上的学生姓名及成绩。
在这里插入图片描述

关系代数案例——差运算的应用

在这里插入图片描述

在这里插入图片描述

连接两个表使用的是连接符号,但是其实也可以用笛卡尔积来实现

笛卡尔积实现的时候,需要加条件。选择两个表中值相等的数值(这样不会出现 01和02的放到一起,这个数据对我们来说是无用的)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1、设有如下所示的关系:学生表S(S#,SNAME,AGE,SEX)、课程表C(C#,CNAME,TEACHER)和学生选课表SC(S#,C#,GRADE),其中:S#为学号,SNAME为姓名,AGE为年龄,SEX为性别,C#为课程号,CNAME为课程名,GRADE为成绩, TEACHER为教师。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、设有如下所示的关系:学生表S(S#,SNAME,AGE,SEX)、课程表C(C#,CNAME,TEACHER)和学生选课表SC(S#,C#,GRADE),其中:S#为学号,SNAME为姓名,AGE为年龄,SEX为性别,C#为课程号,CNAME为课程名,GRADE为成绩, TEACHER为教师。
在这里插入图片描述

试用关系代数表达式表示下列查询语句:
(1)检索LIU老师所授课程的课程号和课程名;

   πC#,CNAME(σTEACHER=‘LIU’(C)) 

(2)检索年龄大于23岁的男学生的学号和姓名;

  πS#,SNAME(σAGE>23∧SEX=‘男’(S)) 

(3)检索学号为S3学生所学课程的课程名与任课教师名;

  πCNAME,TEACHER(σS#=‘S3’(SC⋈C)) 

(4)检索至少选修LIU老师所授课程中一门课的女学生姓名;

  πSNAME(σSEX=’女’∧TEACHER=‘LIU’(S⋈SC⋈C)) 

(5)检索WANG同学不学的课程的课程号;

  πC#(C)-πC#(σSNAME=‘WANG’(S⋈SC))

(6)检索既选修了LIU老师的课程、又选修了LI老师课程的学生学号;

 π1(σ1=4∧2≠5(SC×SC)) 

(7)全部学生都选修的课程的课程号与课程名;

πC#,CNAME(C⋈(πS#,C#(SC)÷πS#(S)))   

(8)检索选修课程包含LIU老师所授全部课程的学生学号。

  πS#,C#(SC)÷πC#(σTEACHER=‘LIU’(C))

聚集运算

max()
sum()
Group by

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值