数据库第二章

关系

  • :是一组具有相同数据类型的值的集合。
    例如:整数、实数、介于某个范围内的整数、{‘男’ ,‘女’ }…
  • 笛卡尔积:给定一组域D1 ,D2 ,…,Dn, 允许其中某些域是相同的。
    D1 ,D2 ,…,Dn的笛卡尔积为:D1 x D2 x Dn ={ (d1, d2, …, dn) | di ∈Di, i=1, 2,…, n}
    ???? 笛卡尔积是所有域的所有取值的一个组合,不能重复
    例如:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积:A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
    元祖(Tuple)
    ◾️笛卡尔积中每一个元素(d1 ,d2 ,…,dn )叫作一个n元组(n-tuple)或简称元组
    例如:在A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}中,(a, 0), (a, 1) 等 都是2元组
    分量(Component)
    ◾️笛卡尔积元素(d1 ,d2 ,…,dn )中的每一个值di 叫作一个分量
    例如:a,b,0,1等都是分量
  • 关系
    1)关系
    D1 x D2 x … x Dn子集 叫作在域D1 ,D2 ,…,Dn 上的关系,表示为:
    R(D1 ,D2 ,…,Dn R 是关系名,n 是关系的
    2)关系的表示
    关系是一个二维表,表的每行对应一个元祖,表的每列队应一个属性。
    3)码
    ????候选码
    若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
    简单的情况:候选码只包含一个属性。
    最极端的情况:所有属性组是候选码,称为全码
    ????主码
    若一个关系有多个候选码,则选定其中一个为主码
    ????主属性
    候选码的诸属性称为主属性。
    不包含在任何侯选码中的属性称为非主属性或非码属性。
    ????D1 ,D2 ,…,Dn 的笛卡尔积的某个子集才有实际含义,笛卡尔积(全集)没有实际意义。
  • 三级关系
    基本关系(基本表或基表)
    实际存在的表,是实际存储数据的逻辑表示
    查询表
    查询结果对应的表(暂存在内存)
    视图表
    由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
  • 基本关系的性质
    ① 列是同质的
    ② 不同的列可出自同一个域
    ????其中的每一列称为一个属性
    ????不同的属性要给予不同的属性名
    ③ 列的顺序无所谓,,列的次序可以任意交换
    ④ 任意两个元组的候选码不能相同
    ⑤ 行的顺序无所谓,行的次序可以任意交换
    ⑥ 分量必须取原子值

关系模式

关系模式------------型
????是对关系的描述
????是静态、稳定的

  • 关系模式是对关系的描述,可以形式化地表示为:
    R(U,D,DOM,F)
    R 关系名
    U 组成该关系的属性名集合
    D U中属性所来自的域
    DOM 属性向域的映象的集合
    F 属性间数据的依赖关系的集合
    (数据依赖将在第六章详细叙述)

关系------------------值
????关系模式在某一时刻的状态或内容、
????动态的、不断变化的
????关系模式和关系往往笼统称为关系,通过上下文加以区别

关系数据库

  • 在一个给定的应用领域中,所有关系的集合构成一个关系数据库

关系数据库的型与值
关系数据库的型:关系数据库模式,是对关系数据库的描述
关系数据库的值: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库

关系的完整性

  1. 实体完整性
    ▫️若属性A是基本关系R的主属性,则属性A不能取空值(空值即“不知道”或“不存在”或“无意义”的值)
    例:选修(学号,课程号,成绩)
    “学号、课程号”为主码
    “学号”和“课程号”两个属性都不能取空值
    ????可以简单记忆为:主属性不能为空
  2. 参照完整性

1)关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的。
例: 学生实体、专业实体
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
????学生关系引用了专业关系的主码“专业号”。
????学生关系中的“专业号”值必须是确实存在的专业的专业号
2)外码
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks 相对应,则称F是R的外码
基本关系R称为参照关系(Referencing Relation)
基本关系S称为被参照关系(Referenced Relation)
学生实体、专业实体
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
????“专业号”属性F是学生关系的外码
????专业关系S是被参照关系,学生关系R为参照关系

3)参照完整性规则
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks 相对应,则对于R中每个元组在F上的值必须为:
????或者取空值(F的每个属性值均为空值)
????或者等于S中某个元组的主码值
????简单记忆为:外码要么为空,要么源自于被参照关系的主码
3. 用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需应用程序承担这一功能。
例:
课程(课程号,课程名,学分)
▫️“课程号”属性必须取唯一值
▫️非主属性“课程名”不能取空值
▫️“学分”属性只能取值{1,2,3,4}

习题6.
数据库第二章
1)πSNOJNO =‘J1’ (SPJ))
2) πSNOJNO =‘P1’PNO =‘J1’ (SPJ))
3) πSNOSNO,PNOJNO=‘J1’ (SPJ))⋈ πPNOCOLOR=‘红’§))
4) πJNO(SPJ)- πJNOPNOCOLOR=‘红’§)⋈πSNOCITY=‘天津’(S))⋈ πSNO,PNO,JNO(SPJ))
5) π JNO,PNO(SPJ)÷πPNOSNO=‘S1’(SPJ))

关系代数基本运算
基本运算有并、差、笛卡尔积、投影和选择,其他运算有交、连接和除
数据库第二章