数据库第三章

3.1 关系和关系数据库

3.1.1 关系的概念:

1、域:域是一组具有相同数据类型的值的集合。例如,整数、正整数、{0,1,2}都可以是域。

2、笛卡尔积:设定一组域“D1,D2,D3,.......,Dn”这组域中可以存在相同的域。定义“D1,D2,.......,Dn”的笛卡尔积为:D1×D2×D3×.......×Dn={(d1,d2,...,dn)| di∈Di,i=1,2,...,n}

其中,每一个元素(d1,d2,...,dn)叫作一个n元组或简称元组。元素中的每个值di(i=1,2,...,n)叫作一个分量。

例如D1={张三、李四、王五},D2={C语言,数据结构,计算机原理},他们的笛卡尔积就是

D1×D2={(张三,C语言),(张三,数据结构),(张三,计算机原理),(李四,C语言),(李四,数据结构),(李四,计算机原理),(王五,C语言),(王五,数据结构),(王五,计算机原理)}

3、关系:笛卡尔积D1×D2×D3×.......×Dn的任意一个子集称为“D1,D2,...,Dn”上的一个n元关系,表示为:R(D1,D2,......,Dn)

4、关系的性质:关系是用集合代数的笛卡尔积定义的,关系式元组的集合,因此关系具有以下性质。

列的同质性:每一列中的分量是同一类型的数据,来自同一个域。

列名唯一性:每一列具有不同的属性名,但不同列的值可以来自同一个域。

元组相异性:关系中的任意两个元组不能完全相同,至少主码值不同。

行序的无关性:行的次序可以互换。

列序的无关性:列的次序可以互换。

分量原子性:分量值是原子的,即每一个分量都必须是不可分的数据项。

3.1.2 关系数据库的概念:在关系模型中,实体以及实体间的联系采用二维关系表来表示。关系实际上就是一个二维表,关系模式就是这个表的结构,也就是它由哪些属性构成。

关系模式与关系数据库的要点如下:

一个关系只能对应一个关系模式。

关系模式是关系的型,按其型装入数据后即形成关系。

一个具体的关系数据库是若干关系的集合。

3.1.3 关系操作语言

关系操作语言是数据库管理系统提供的用户接口,是用户用来操作数据库的工具,关系操作语言大致可以分为三类:

1、关系代数语言:查询操作是以集合操作作为基础,用对关系的运算来表达查询要求的语言。

2、关系演算语言:用谓词来表达查询要求的语言,又分为元组关系演算语言和域关系演算语言。

3、结构化查询语言:具有关系代数和关系演算双重特点。(重点内容)

3.2 关系代数

3.2.1 传统的集合运算:

1.关系的并:关系的并和高中数学时的"并"的概念是一样的:都是两个关系的元组放在一起,删除重复的元组,最终组成一个新的关系,记为∪。

2.关系的差:关系R和关系S的差是由属于R但不属于S的所有元组组成的集合,即关系R中删除与S关系中相同的元组,组成一个新关系,记为R-S。

3.关系的交:关系的交是指由既属于R又属于S的元组组成的集合,即在两个关系R与S中取相同的元组,组成一个新关系,记为∩。

4.笛卡尔积:笛卡尔积的定义可以参考3.1节。

3.2.2 专门的关系运算

1.选择:从一个关系中选出满足给定条件的记录的操作称为选择或筛选,它是从行的角度来进行运算,例如抽取学号为1的元组组成,那就是(1,C1,java)这条记录

 

 

2.投影:从关系中挑选若干属性组成新的关系称为投影,投影是从列的角度进行运算,例如:选取学号和课程号的元组组成,那就是{(1,C1),(2,C2),(3,C3)}这一关系。

注意:当做出选择操作时,不会产生新的关系,选择操作的结果都是该关系中的元组,而投影操作会产生新的关系,且新关系中包含重复元组的话要删除重复元组。

3.连接:连接是将两个关系的属性名拼接成一个更宽的关系,生产的新关系中包含满足连接条件的元组,运算过程是通过连接条件来控制,连接是对两个关系的集合。可以分为等值连接、非等值连接、自然连接和外连接,这里只需知道等值连接和自然连接即可。

例如:关系R是

 

关系S是

那么关系R和关系S第二列的元素等于第三列的元素的等值连接 就是

自然连接就是去掉重复属性的等值连接,是连接运算的特例,例如R和S的等值连接就是

 

4.除运算: 给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除法运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影,元组在X上的分量值x的象集Yx包含S在Y上的投影。

事实上,关系中的除运算类似于集合中关系的差,简单来说就是被除数是你的总范围,除数是你搜索的条件,R除S就是从R中找出满足S的元组。下面说一下做除法的思路,分四步进行

1、将被除关系的属性分为象集属性和结果属性,与除关系相同的属性属于象集属性,不相同的属性属于结果属性。

2、在除关系中,对与被除关系相同的属性进行投影,得到除目标数据集

3、将被除关系分组,原则是结果属性值一样的元组分为一组

4、逐一考察每个组,如果它的象集属性值中包括目标数据集,则对应得结果属性值应属于该除法运算结果集。

3.3 关系的演算

关系的演算实际上是学习SQL语句的一个序幕,以后另辟章节来说这个。

3.4 SQL概述

SQL用于存取数据以及查询、更新和管理关系数据库系统,它是⾼级的非过程化编程语⾔,允许用户在⾼层数据结构上⼯作。它不需要用户指定对数据的存放⽅法,也不需要用户了解具体的数据存放⽅式,只需要告诉数据库需要什么数据,怎么显示就可以了,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语⾔作为数据输⼊与管理的接⼝。结构化查询语⾔语句可以嵌套,这使它具有极⼤的灵活性和强⼤的功能。

SQL语⾔主要分为4类:
1.DDL:用于建立和删除数据库对象等。
2.DML:用于添加、修改和删除数据库中的数据
3.DQL:用于查询数据库中的数据
4.DCL:用于数据库对象的权限管理和事务管理

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值