360 likes | 550 Views
第二章 关系数据库. 2.1 关系数据库概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算* 2.6 关系数据库管理系统. 2.1 关系数据库概述. 关系数据库系统是支持关系模型的数据库系统 关系模型是建立在集合代数的理论基础上的,关 系的定义和各种操作运算可以用集合代数给出 关系模型三要素 关系数据结构:二维表 关系操作:查询,插入,删除,修改 完整性约束:实体,参照,自定义. 关系数据语言分类:.
E N D
第二章 关系数据库 2.1 关系数据库概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算* 2.6 关系数据库管理系统
2.1 关系数据库概述 • 关系数据库系统是支持关系模型的数据库系统 • 关系模型是建立在集合代数的理论基础上的,关 系的定义和各种操作运算可以用集合代数给出 • 关系模型三要素 关系数据结构:二维表 关系操作:查询,插入,删除,修改 完整性约束:实体,参照,自定义
关系数据语言分类: • 关系代数语言:ISBL • 关系演算语言 • 元组关系演算语言:ALPHA,QUEL • 域关系演算语言:QBE • 结构化查询语言SQL
(n)元组 分量 基数 二维表:元组->行 域->列 2.2 关系数据结构 1. 关系 1)域:一组具有相同数据类型的值的集合。 基数 2)笛卡尔积
D1=姓名集合={张清玫,刘逸}D2=性别={男,女}D1=姓名集合={张清玫,刘逸}D2=性别={男,女}
3)关系 的子集称为定义在域 上的关系,表示成 • 关系的目或度:列的个数 • 属性:列,对每列起个名字 • 候选码:唯一标识元组的最小属性组 • 主属性 :候选码的诸属性 • 非码属性:不包含在任何侯选码中的属性 • 主码:一个关系中选定的一个候选码 • 全码:关系模式的所有属性组是这个关系模式的候选码
实际应用中关系往往是由笛卡儿积中有意义的 子集构成 如关系: 人员(姓名,性别)
关系的分类: 基本关系(表) 查询表 视图 • 基本关系的性质: ①列是同质的 ②同一表中列名不同 ③列序无关 ④表中两行的候选码不能相同 ⑤行序无关 ⑥分量是原子的
属性名 域 映像 依赖关系 2. 关系模式 • 关系的描述称为关系模式 • 关系模式 R ( U, D, DOM, F ) • 简记为 R ( U )或 R (A1, A2, … , An),D及DOM通常直接表示为属性的类型、长度 • “型”和“值”
3. 关系数据库 • 一个给定应用领域中,相应于所有实体和实体间 联系的关系的集合构成一个关系数据库 • “型”和“值”:关系数据库(模式) • 在一个关系数据库中,关系不能重名
2.3 关系的完整性 1. 实体完整性:若属性A是基本关系R的主属性,则 A不能取空值 2. 参照完整性 外码定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,称F是基本关系R的外码,R为参照关系,S为被参照关系或目标关系。
例: 学生(学号,姓名,性别,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 学生(学号,姓名,性别,年龄,班长)
若属性(或属性组)F是基本关系R的外码,它与基若属性(或属性组)F是基本关系R的外码,它与基 本关系S的主码Ks相对应(关系R、S 不一定是不 同的关系),则对于R中每个元组在F上的值必须 为: • 或者取空值(F的每个属性值均为空值) • 或者等于S中某个元组的主码值
3. 用户定义的完整性 针对具体关系数据库的约束条件 如学生关系中: 学号的格式形如“PB06210022” 姓名要求不能取空值 年龄小于30岁 性别只能是“男”或“女”
2.4 关系代数 • 关系代数由一组关系运算组成,是对于关系的操作集。关系运算以一个或多个关系作为操作的对象,运算结果是一个新的关系。用关系运算实现查询。 • 关系代数运算符 • 集合运算符:∪(并),-(差),∩(交),×(笛卡儿积) • 关系运算符:σ(选择),П(投影),∞(连接),÷(除) • 比较运算符: >,≥,<,≤,=,≠ • 逻辑运算符:¬(非),∧(与),∨(或) • 关系代数运算可分为传统集合运算和专业的关系运算
记号: • R(A1, A2, … , An),R,tR,t[Ai] • A={Ai1, Ai2, … , Aik}, , t[A] • trR,tsS, • R(X, Z),当t[X]=x时,x在R中的象集: Zx={t[Z]| t R,t[X]=x}
1. 并 2.4.1 传统的集合运算 • 关系R与S的并由属于R或属于S的元组组成, • 记为R∪S • R、S应是同类关系 • 结果关系中要去掉重复元组
2. 差 • 关系R与S的差由属于R不属于S的元组组成 • 记为R-S • R、S应是同类关系
3. 交 • 关系R与S的交由属于R且属于S的元组组成, • 记为R∩S • R、S应是同类关系
R S R×S R ∩S R ∪S R -S
1. 选择 2.4.2 专门的关系运算 • 单目运算 • 从一个给定的关系中,抽出满足给定条件的那些元组,组成一个新的关系,记为 • 对行操作
2. 投影 • 单目运算 • 关系R在一组属性A上投影,得到新关系,新关系中只包括属性组A,记为 • 新关系中要去掉重复元组 • 对列操作
3. 连接 • 双目运算 • 从两个关系 R、S 的笛卡尔乘积中选取满足属性间给定条件的那些元组,组成新关系,记为 • A、B应是度数相等且可比的属性组
等值连接,即条件为A = B 的连接 • 对行操作 • 自然连接,即条件为R.A =S.A的连接 • R、S具有相同的属性组 • 新关系中要去掉重复的属性 • 同时对行和列操作
外连接 如果R和S在做自然连接时,把该舍弃的元组也保存在新关系中,在新增加的属性上填空值(null),这种操作称为“外连接”。如果把R中该舍弃的元组保留在新关系中称左连接;把S中该舍弃的元组保留在新关系中称右连接。
右外连接 左外连接 外连接
4. 除 • 双目运算 • 关系R(X,Y)在属性组X上各分量的象集包含有关系S(Y,Z)在属性组Y上投影的那些元组,在X上的投影,组成新关系,记为 • R.Y、S.Y应出自相同的域集 • 同时对行和列操作
R S R÷S 象集 Ya1 Ya2 Ya3 Ya4 Y={B,C}
例:S (Sno, Sname, Ssex, Sage),C (Cno, Cname, Cpno) SC (Sno, Cno, Grade) 1. 查询选修了2号课程的学生学号 2. 查询选修了2号课程的学生学号和姓名 3. 查询至少选修了一门先行课为1号课程的学生姓名 4. 查询至少选修1号课程和3号课程的学生学号
5. 查询选修了全部课程的学生学号和姓名 6. 查询所学课程包含学生95001所学课程的学生学号
2.6 关系数据库管理系统 • 支持关系模型的系统,简称为关系系统 • 一个关系数据库管理系统至少应支持: • 关系数据库(即关系数据结构) • 支持选择、投影和连接操作 • 按支持关系模型程度的不同分类: • 表式系统:仅支持关系数据结构,不支持集合级操作 • 最小关系系统:支持关系结构和选择、投影、连接集合 操作 • 关系完备系统:支持关系结构和所有关系代数操作 • 全关系系统:支持关系模型的所有特征