数据库之代数表达式

数据库之代数表达式

基础知识介绍

关系模型简述:形象的说,一个关系(relation)就是一张表(table),关系模型就是处理table的,它由三个部分组成:

描述DB各种数据的基本结构形式(table/relation)
描述table与table之间所可能发生的的各种操作(关系运算)
描述这些操作所应遵循的约束条件(完整性约束)

关系模型三要素

基本结构:relation/table
基本操作:relation operator
        基本的:并(union)、差(difference)、广义积(product)、选择(selection)、投影(projection)
        拓展的:交(intersection)、连接(join)、除(division)
完整性约束:实体完整性、参照完整性、用户自定义完整性

表的严格定义:首先定义“列”的取值范围“域(domain)”域(domain)

一组值的集合,这组值具有相同的数据类型
如整数的集合、字符串的集合、全体学生的集合
集合中元素的个数称为域的基数(cardinality)

再定义元组及所有可能组合成的元组:笛卡尔积(Cartesion Product)关系(relation)一组域D1、D2、D3……Dn的笛卡尔积的子集笛卡尔积中具有某一方面意义的那些元组被称为一个关系(Relation)由于关系的不同列可能来自同一域,为区分,需要为每一列起一个名字,该名字即为属性名

关系的特性:列是同质:即每一列中的分量来自同一域,是同一类型的数据列位置互换性:区分那一列是靠列名行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字)关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分

属性不可再分特性:又被称为关系第一范式

候选码(Candidate key)/候选键关系中一个属性组,其值能唯一标识一个元组,若将该属性组中去掉任何一个属性,它就不具备这一性质了,这些的属性组称为候选码

主码(primary key)/主键当有多个候选码时,可以选一个作为主码DBMS以主码为主要线索管理关系中的各个元组

外键(foreign key)关系R中的一个属性组,它不是R的候选键,但它与另一个关系s的候选键相对应,则称这个属性组为R的外码或外键两个关系通常是靠外键连接起来的

实体完整性关系的主键中的属性值不能为空值参照完整性如果关系R1的外码FK与关系R2的主键PK相对应,则R1中的每一个元组的FK值或者等于R2中某个元组的PK值或者为空值用户自定义完整性用户针对具体的应用环境定义的完整性约束条件

关系代数

关系代数基本操作:并、差、积、选择、投影、(更名)关系代数扩展操作:交、θ连接、自然连接关系代数复杂扩展操作:除、外连接

关系代数的约束某些关系代数操作,如并、差、交等需满足“并相容性”:参与运算的两个关系及其相关属性之间有一点的对应性,可比性或意义关联性定义:关系R与关系S存在相容性,当且仅当:(1)关系R和关系S的属性数目必须相同(2)对于任意i,关系R的第i个属性的域必须和关系S的第i个属性的域相同

选择(select)定义:给定一个关系R。同时给定一个选择的条件condition。选择运算结果也是一个关系。它从关系R中选择出满足给定条件的元组构成。

差操作,在R中去除S中包含的元组

投影(project)定义:给定一个关系R,投影运算结果也是一个关系,记作πa(R),它从关系R中选出属性含在a中的列构成投影操作从给定关系中选出某些列组成新的关系,而选择操作是从给定关系中选出某些行组成新的关系

关系代数的基本书写思路了1、选出将要用到的关系/表2、做“积”运算3、做选择运算保留所需的行/元组4、做投影运算保留所需的列/属性

关系代数的扩展操作(能有基本操作组合成):交、连接、等值连接、自然连接如交运算可以通过差运算来实现:R∩S = R - (R-S) = S - (S-R)不能展开

θ连接定义:给定关系R和关系S,关系R与S的θ连接运算结果也是一个关系,它由关系R和关系S的笛卡尔积中,选取属性A与S中属性B之间满足θ条件的元组构成。

等值连接(Equi-Join)定义:给定关系R和关系S,R与S的等值连接运算结果也是一个关系,它由关系R和关系S的笛卡尔积中选取R中属性A与S中属性B上值相等的元组所构成

自然连接(Natural-join)定义:给定关系R和关系S,R与S的自然连接运算结果也是一个关系,它由关系R和关系S的笛卡尔积中选取相同属性组B上值相等的元组所构成

书写关系代数表达式的基本思路检索是否涉及多个表,如不涉及,则可直接采用并、差、交、选择与投影,只要注意条件书写正确与否即可如涉及多个表,则检查能否使用自然连接,将多个表连接起来(多数情况是这样的)如不能,能否使用等值连接或不等值连接(θ-连接)还不能,则使用广义笛卡尔积,注意相关条件的书写连接完后,可以继续使用条件,投影等运算,即所谓数据库的“选投联”操作

关系代数复杂扩展(1)“除”操作除法运算经常用于求解“查询……全部的/所有的……”问题

外连接(Outer-Join)定义:两个关系R与S进行连接时,如果关系R(或S)中的元组在S(或R)中找不到相匹配的元组,则为了避免该元组信息丢失,从而将该元组与S(或R)中假定存在的全为空值的元组形成连接,放置在结果关系宗,这种连接称为外连接(Outer Join)

还有左外连接、右外连接、全外连接

猜你喜欢

转载自blog.csdn.net/qq_38180223/article/details/81276810
今日推荐