美文网首页
关系数据模型

关系数据模型

作者: 西红柿炒番茄007 | 来源:发表于2020-03-05 15:39 被阅读0次

    声明:最近在准备考试,故整理数据库笔记。

    关系数据模型

    关系

    域:

    在这里插入图片描述
    笛卡尔积
    在这里插入图片描述

    关系

    域D1, D2, …, Dn上的关系r是笛卡尔积D1x D2…xDn的任意子集。n个域上的关系称为n-元关系,“元”又称目或度
    关系的性质
    1.关系是笛卡尔积的子集,即元组的集合,所以,关系中行的次序不重要,且关系(表)中不能包含两个相同的元组(行)
    2.用二维表表示关系使得我们可以以任意列次序显示关系,或者说列的顺序不重要
    3.在关系数据库中,任何有意义的关系都要满足一定的约束条件,这些约束都是语义约束
    4.除了语义约束外,对关系的限制主要有两点:
    第一,在关系数据库中,只考虑有限关系
    第二,关系的每个属性都必须是原子的

    关系的码

    :设K是关系R的属性集,如果K能唯一地标识一个元组,而其真子集不能,则K是R的码
    超码:设K是R的码,K  X,则X是关系R的超
    主码:通常,当一个关系具有多个码时,应当选择其中的一个作为惟一识别关系元组的码,称为主码
    候选码:主码用于表示由多个码中选出的作为惟一识别关系元组的码,而所有的码又称候选码
    码中的属性称为主属性,而不在任何码中出现的属性称为非主属性

    关系模式

    关系有型和值之分
    关系的值
     关系就是具有特定类型的“变量”
     关系的值即关系在某一时刻的快照,又称关系实例
    关系的型
     关系模式看作“类型”
     关系的型用关系模式刻画

    在这里插入图片描述
    在实际的关系数据库中进行某个关系的定义时给出各个属性的数据类型、取值范围和完整性约束
    在这里插入图片描述
    注意:D和DOM是定义表时才考虑的,目前还不用考虑属性之间的数据依赖F ,因此关系模式简记为R(A1
    , A2, …,An),或者简写为R(U)

    从E-R模型到关系模型

    ER图向关系模式转换
    包括:属性处理、实体集处理、联系集处理
    派生属性的处理:转换时我们忽略派生属性
    复合属性的处理:忽略复合属性本身,而直接考虑它的成分属性
    多值属性的处理:为每个多值属性M创建一个关系RM
    ①如果多值属性M是实体集E的属性,K是E的主码,则关系RM的属性由M和K组成。
    ②如果多值属性M是联系集R的属性,并且R涉及实体集E1, …, En,它们的主码分别是K1, …, Kn,则关系RM的属性由M和K1, …, Kn组成

    在这里插入图片描述
    实体集处理
    在这里插入图片描述
    在这里插入图片描述
    联系集的处理
    包括:联系是一对一的,则可以和任意一端
    实体集转换得到的关系模式合并
    联系是一对多的,则和多端实体集转换得到的关系模式合并
    联系是多对多的,则该联系集转换成独立的关系模式
    例子:将某高校教学管理系统的E-R图换成关系模式。图中的有向边表示该实体处于一端,无向边表示该实体集处于多端。假设该E-R图中的多值复合属性Phones已经转换成如下关系模式: Phones (Phone#, Dno, Office)
    在这里插入图片描述
    强实体集得到如下关系模式:
    Departments(Dno, Dname)
    Teachers(Tno, Tname, Sex, Birthday, Title)
    Students(Sno, Sname, Sex, Birthday, Enrollyear, Speciality)
    Courses(Cno, Cname, Period, Credit)
    一对一和一对多联系的转换
    Departments(Dno, Dname, Dheadno)
    Teachers(Tno, Tname, Sex, Birthday, Title, Dno)
    Students(Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno)
    多对多联系得到的关系模式
    3个多对多联系集得到如下关系模式:
    Teaches (Tno, Cno)
    SC(Sno, Cno, Grade)
    Evalues (Sno, Tno, Cno, Escore)
    合并后得到的关系模式
    Departments(Dno, Dname, Dheadno)
    Teachers(Tno, Tname, Sex, Birthday, Title, Dno)
    Students(Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno)
    Courses(Cno, Cname, Period, Credit)
    Teaches (Tno, Cno)
    SC(Sno, Cno, Grade)
    Evalues (Sno, Tno, Cno, Escore)
    Phones (Phone#, Dno, Office)

    关系的完整性约束

    完整性分析
    包括:实体完整性、参照完整性、用户自定义的完整性
    空值: 空值意指“缺失的值”
     允许元组在某些属性上取空值非常方便,商品化DBMS也都支持空值。例如,关系Departments表中,一个元组在Dheadno上可能取空值,表示该院系目前没有院长,它可能是新成立的院系,或者因为人事调动目前还没有院长
     需要注意的是,空值是未知的值,它不能参与运算,即便两个空值比较, 其结果只能是“不知道”。 例如,两个人在“性别”属性上都取空值。不能说这两个人性别一样
     对于空值,可以问 “元组t在属性A上值是空值吗?”
    实体完整性规则:关系R的所有元组在主码上的值必须惟一,并且在主码的任何属性上都不能取空值
    参照完整性规则
    例子
    Students
    (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno)
    Courses (Cno, Cname, Period, Credit)
    SC (Sno, Cno, Grade)
     这三个关系之间也存在引用,关系SC中“Sno”必须是Students中一个已有的学生,关系SC中的“Cno”必须是Courses中一个已有的课程
    外码:如果FK是关系R的属性集,并且不是R的码,但是FK与关系R’的主码K’对应,则称FK是关系R的外码。其中R是参照关系,R’是被参照关系(R与R’不一定是不同的关系),并称FK参照R’的主码K’
    参照完整性规则
    参照完整性规则:如果属性集FK是关系R的外码,它参照关系S的主码Ks,则R的任何元组在FK上的值等于S的某个元组在主码Ks上的值,或者为空值
    用户自定义的完整性规则
    用户定义的完整性反映特定的数据库所涉及的数据必须满足的语义约束条件。由于不存在一般性规则,这些约束条件必须由用户根据实际问题的语义指定

    关系代数的五种基本运算

    关系代数的运算

    在这里插入图片描述 在这里插入图片描述
    选择运算
    在这里插入图片描述
    注意:选择的结果形成一个新的关系,它与R具有相同的属性
    投影运算
    在这里插入图片描述
    并运算
    在这里插入图片描述
    差运算
    在这里插入图片描述
    笛卡儿积
    在这里插入图片描述
    在这里插入图片描述

    附加的关系运算

    交运算

    在这里插入图片描述
    在这里插入图片描述
    除运算
    在这里插入图片描述
    连接运算
    在这里插入图片描述
    自然连接运算
    在这里插入图片描述
    注意:① 自然连接是唯一依赖于关系属性名的运算
    ②当R和S不含共同属性时,自然连接就退化为笛卡尔积
    ③尽管自然连接和等值连接都是根据属性值相等进行连接,但它们有明显区别,自然连接在同名属性上进行相等比较,并投影去掉重复属性
    欢迎关注微信公众号:蛋炒番茄
    同步更新技术、资源等!!!

    相关文章

      网友评论

          本文标题:关系数据模型

          本文链接:https://www.haomeiwen.com/subject/amjfrhtx.html