数据库期末总结笔记( 零基础 )-第二章 关系数据库

第二章 关系数据库

一、关系代数的五个基本操作

  • 1.选择(δ):把满足条件的基本元组找出来(元组对应行)

分析:题目中出现找条件一般就用选择(学号在一定范围,性别男还是女,年龄在什么范围…)
例:①查询信息系(IS系)全体学生
δ sdept=‘IS’(Student)

②查询年龄小于20的学生
δ Sage<20(Student)

  • 2.投影(Π):把不需要的列去掉(属性对应列,对某一列或几列属性进行查询)

例:①查询学生的姓名和所在的系

分析:姓名,所在系是两个属性
Π Sname,Sdept(Student)

②查询学生关系Student中都有哪些系
分析:所在系的属性
Π Sdept(Student)

③查询选修了2号课程的学生的学号
分析:选择-2号课程(条件);投影-学号(属性) 注意:要先做条件,再做属性
ΠSno(δCno=‘2’(SC))={201215121,201215122}

  • 3.笛卡尔乘积(X):把两个关系拼接(把两个表每一个元组两两拼接在一起)
    数据库期末总结笔记( 零基础 )-第二章 关系数据库

  • 4.集合差(-):集合中减法

  • 5.集合并(∪):将2个关系中模式相同的元组并起来

二、常用操作

  • 1.集合交(∩):取两者的公共部分
  • 2.连接(▷◁):

(1)条件连接:表1▷◁表2=δ条件(表1X表2)(先按条件完成笛卡尔乘积,再连接)
数据库期末总结笔记( 零基础 )-第二章 关系数据库

(2)等值连接:若(1)中条件都是想等判断,则是等值连接(对两个表做笛卡尔乘积之后,按照相等的条件筛选出来)

(3)▲自然连接:2张表在它们所有的公共属性上做等值连接,并把结果中重复的列去掉

(4)外连接
①左外连接:把连接运算符左边的所有元组都保留下来,不匹配的元组在右边补空值
②右外连接:把连接运算符右边的所有元组都保留下来,不匹配的元组在左边补空值
③外连接:把所有元组都保留下来

连接的作用:所查询信息需要多个表

例:查至少选修一门其直接先行课为5号课程的学生姓名

分析:
看到一个学生表里面的信息不全,没有公共属性;没有课程相关的,所以要先将学生表与课程表Course还有连接在一起,还有SC表这三个表连接起来

选修一门直接先行课为5号课 δcpno=5,查学生姓名但这个课程表并没有学生姓名,所以先对SC表做连接找到5号课对应的课程号,根据课程号能找到对应的学号(属性)

条件:选修一门直接先行课为5号课 δcpno=5(course)
投影:5号课对应的课程号 Πsno
学号对应的学生姓名 Πsno,sname(Student)

Πsname( Πsno(δcpno=‘5’(course)▷◁Πsno,sname(Student))

或者 Πsname(δcpno=‘5’(course)▷◁SC▷◁Πsno,sname(Student))

  • 3.除运算(÷)

同时从行和列的角度运算
条件:查找所有、全部、至少…
除运算一般在一个表中是查不出来的(要是能查出来就用不到除运算)

举例:
除运算:要有公共的属性才能做除法 a:被除数,b:除数(全部覆盖)

首先两表相除要有公共属性,除法的作用是找出被除数中是否有一个或几个元组(除公共属性之外的元组),与除数中所有相关属性,(a和b的公共属性)都有关联,往往全部…作为除数,而所查的信息(属性)作为被除数

例:查询选修了全部课程的学生号码和姓名
分析:
投影:号码和姓名(属性)
除法:全部课程(覆盖)
连接:需要两个表连接在一起
Πsno,cno(SC)÷Πcno(Course)▷◁ Πsno,Sname(Student)