3.1关系数据模型和关系数据库
关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束三部分组成,也称为关系模型道德三要素。
3.1.2数据操作
传统的关系运算:并、交、差、广义笛卡尔乘积
专门的关系运算:选择、投影、连接、除
有关的数据操作:查询、插入、删除和更改
关系模型的操作对象是集合(或表)而不是单个的数据行,也就是说,关系模型中操作的数据以及操作的结果(查询操作的结果)都是完整的集合(或表)这些集合可以是只包含一行数据的集合,也可以是不包含任何数据的空集合。
数据库数据的操作主要包括四种:查询、插入、删除、和更改数据
3.1.3数据完整性约束
在数据库中数据的完整性是指保证数据正确性的特征。
3.2关系模型的基本术语与形式化定义
3.2.1基本术语
1、关系:
关系就是二维表,二维表的名字就是关系的名字。
2、属性:属性名不可以重复,列=属性=字段
二维表中的每一个列称为一个属性,每个属性(或叫字段)有一个名字,称为属性名。二维表中对应某一列的值称为属性值,二维表中列的个数称为关系的元帅。如果一个二维表有n个例,则称其为n元关系。例:学生关系有学号、姓名、性别、年龄4个属性,则这是一个四元关系。
3、值域:
二维表中属性的取值范围称为值域,例:性别列的取值为‘男’和‘女’两个值,这都是列的值域。
4、元组:行=元组=记录值
二维表的一行数据称为一个元组。
5、分量:
元组中的每一个属性值称为元组的一个分量,每个分量不可再分。例:一个元组有(‘9’,‘李勇’,‘男’)则一共有3个分量。
6、关系模式:
二维表的结构称为关系模式,关系模式就是二维表的表框架或表头结构,例:设有关系名为学生,属性分别为学号、姓名、性别、年龄,则关系模式可以表示为学生(学号、姓名、性别、年龄)。
7、关系数据库:
对应于一个关系模型的所有关系的集合称为关系数据库。
8、候选键:
如果一个属性或属性集的值能够唯一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。例:学生(学号,姓名,性别,年龄)的候选键为学号。
9、主键:
主键也称主码或主关键字,当一个关系中有多个候选键时,可以从中选择一个作为主键,每个关系只能有一个主键。主键可以由一个或多个属性组成。
10、主属性和非主属性:
包含在任一候选键中的属性称为主属性,不包含在任一候选键中的属性称为非主属性
3.2.2形式化定义
每一个元素(d1,d2,…,dn)称为一个n元组,简称元组,元组中每一个di称为一个分量
例:D1={计算机系,信息管理系统}
D2={张三,李四,王麻子}
D3={男,女}
则笛卡尔积为:D1XD2XD3,如图:
D1 D2 D3
计算机系 张三 男
计算机系 张三 女
计算机系 李四 男
计算机系 李四 女
计算机系 王麻子 男
计算机系 王麻子 女
信息管理系 张三 男
信息管理系 张三 女
信息管理系 李四 男
信息管理系 李四 女
信息管理系 王麻子 男
信息管理系 王麻子 女
笛卡尔积的任意一行数据就是一个元组。一个关系中的属性的名字必须是唯一的,属性的Di的取值范围称为该属性的值域。
集合的三要素:无序性,互异性,确定性
3.3关系代数
关系是由元组构成的集合,是一种纯理论的语言,一个操作的输出可以是另一个操作的输入,关系代数同算术运算一样。
关系代数的运算可以分为两大类:
传统的集合运算:集合的广义笛卡积运算、并运算、交运算和差运算。
专门的关系运算:选择、投影、连接、除运算。
3.3.1传统的集合运算
传统的集合运算是二目运算,定义三种运算:并运算()、交运算()和差运算(-)。
顾客号 姓名 性别 年龄 顾客号 姓名 性别 年龄
S01 张红 男 45 S02 李丽 女 34
S02 李丽 女 34 S04 钱静 男 50
S01 王敏 女 28 S02 王平 女 24
并运算:
设关系R与关系S均是n目关系,关系R与关系S的并记为:
RS={t|tR tS}
如图:
顾客号 姓名 性别 年龄
s01 张红 男 45
s02 李丽 女 34
s03 王敏 女 28
s04 钱静 男 50
s06 王平 女 24
交运算:
设关系R与关系S均是n目关系,则关系R与关系S的交记为:
RS={t|tR tS}
如图:
顾客号 姓名 性别 年龄
S02 李丽 女 34
差运算:
设关系R与关系S均是n目关系,则关系R与关系S的差记为:
R-S={t|tR tS}
如图:
顾客号 姓名 性别 年龄
S01 张红 男 45
S03 王敏 女 28
3.3.2 专门的关系运算
1、选择:
选择运算是从指定的关系中选出满足给定条件(用逻辑表达式表达)的元组而组成的一个新的关系,选择运算表示为:
F(R)={t| tR F(t)=true}
是选择运算符,R是关系名,t是元组,F是逻辑表达式
例:查计算机系的男生:ssex=‘男’sdept=‘计算机系’(student_cyf)
2、投影
投影运算是从关系R中选取若干属性,并用这些属性组成一个新的关系。
投影运算表示为:
A(R)={t.A | tR}
是投影运算符,R是关系名,A是被投影的属性或属性组
例:投影03系,年龄大于19的学号,姓名字段
xh,xm(D='03'sage>19(R))
3、连接
(1)连接
(2)等值连接
(3)自然连接
(4)外部连接
(5)半连接
外连接有三种形式:左外连接、右外连接、全外连接
左外连接:R*S右为空
右外连接:R*S 左为空
全外连接:R**S
4、除
.除法运算经常用于求解查询…全部的/所有的…问题
次关系的属性是由属于R但不属于S 的所有属性的组成,RS的任一元组都是R中某元组的一部分。
例:
R S k
9512 c01 c02 c01
9521 c01 c03
9531 c02 c04
9532 c02
9532 c03
9533 c03
9532 c04
R/S: 9532
R/K: 9512 9521
查询选了全部课程的学生可用除法运算得到:
sno,cno(sc)cno(course)