关系数据模型

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分析: 学生×成绩
学生.学号 95001 95001 95001 95001 95001 姓名 李永 李永 李永 李永 李永 性别 男 男 男 男 男 年龄 20 20 20 20 20 所在系 计算机 计算机 计算机 计算机 计算机 成绩.学号 95001 95001 95001 95002 95002 课程号 1 2 3 2 3 成绩 92 85 88 90 80
例如:
学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 则根据参照完整性,学生关系中的“专业号”属性,只能取下面两类 值:
空值,表示尚未给该学生分配专业
非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示 该
2.2 关系模型的数据完整性
试分析课本图2.1
2.2 关系模型的数据完整性
95002
…… 95004 95004
刘晨

19
信息
……
95001
…… 95002 95002
1
92
张力 张力
男 男
19 19
信息 信息
2 3
90 80
20 运输结果产生了一个包含 ____ 个元祖的关系
2.3
筛选后的关系: S
学生.学号 95001 95001 95001 姓名 李永 李永 李永 性别 男 男 男
第二章
关系数据模型
20世纪60年代末是数据库技术的萌芽时期,这期间研究
者提出了很多种数据模型。比较流行的数据模型有四种:
层次模型 网状模型 关系模型 面向对象模型
第二章
层次模型
关系数据模型
网状模型
用有向图结构表示实体类型及 数据库系统中最早出现的数据模型。 实体之间联系的数据模型。记 用树形结构来表示各类实体以及实 录之间M:N联系容易实现,查 体间的1:N联系。 现实世界中 询效率较高,但编写应用程序 事务之间的 较复杂,用户不容易使用。 根结点 R1
注:由于投影操作去掉了一些属性,可能使原本不包含重复元组的关系在筛 见课本15页例子 选后变成包含重复元组。这些重复的元组在最后的结果中要去掉。
投影运算的作用是从一个关系中筛选出指定的属性。 投影运算用字母 表示,要筛选出的列作为 下标。
见课本16页例子
2.3
3. 广义笛卡尔积(
关系代数
)
2.2 关系模型的数据完整性
关系的完整性规则是对关系的某种约束条件。
关系模型中可以有三类完整性约束:实体完整性、参照完整性 和用户定义的完整性。
1. 实体完整性 要求对于任何一个关系,构成主键的属性值惟一并且不能为空。
2.2 关系模型的数据完整性
2. 参照完整性
若一个关系含有外键,则构成外键的属性值要么指向被引用表的 某一主键的值,要么全部为空。
解:若研究生的姓名、导师和专业域分别使用name、mentor和speciality来表示, 其域的取值及表示方法为: name={张力,李强,钱三} mentor={张平,陈忠} speciality={计算机应用,软件工程}
2.1 关系模型的数据结构
2. 笛卡尔积:
给定一组域D1,D2,…,Dn,这些域中可以有相同的。则D1,D2,…Dn的笛卡尔积为:
95002
95003 95004
刘晨
王敏 张力

女 男
19
18 19
信息
数学 信息
95002
95002
2
3
90
80
课程
课程号
课程名
先行课
学分
1
2 3 4 5 6 7
源自文库
数据库
高数 信息系统 操作系统 数据结构 数据处理 C语言
5
4
2
1 6 7
4 3 4 2
6
4
2.3
关系代数
例1:查询刘晨的课程号为2的课程的成绩
b1 b1 b2 b2
E e1
e2 e3 e1 e2
H h1
h2 h3 h1 h2
P p1
p2 p3 p1 p2
a2
b2
c2
e3
h3
p3
Flash演示
2.3
学生
学号 95001 姓名 李永 性别 男 年龄 20
关系代数
成绩
所在系 计算机 学号 95001 95001 95001 课程号 1 2 3 成绩 92 85 88
D1 D2 Dn d1 , d2 ,, dn | di Di , i 1,2,, n
笛卡尔积可形象地用一个二维表来表示。 其中,每个元素 叫做一个分量。
d1 , d2 ,, dn 称为一个元组。元素中的每一个值 d
见课本10页例子
i
2.1 关系模型的数据结构
关系代数
年龄 20 20 20
所在系 计算机 计算机 计算机
成绩.学号 95001 95001 95001
课程号 1 2 3
成绩 92 85 88
95002
95002
刘晨
刘晨


19
19
信息
信息
95002
95002
2
3
90
80
学生.学号成绩.学号 (学生 成绩)
2.3
关系代数
学生.学号成绩.学号 (学生 成绩)
D1×D2×D3={(数据结构,张三,9-117), (数据结构,张三,9-201), (数据结构,
张三,9-135), (数据结构,李四,9-117), ……, (算法,李四,9-135)}
每个元素称为一个元组。元素中的每一个值叫做一个分量 笛卡尔积可以表示为一个二维表。表中的每行对应一个元组,表中 的每列对应一个域。表中的每个单元格对应一个分量。如表2.1
分量
2.1 关系模型的数据结构
关系:是笛卡尔积的子集,即域 D1 , D2 ,, Dn 上的关系为笛卡尔积
D1 D2 Dn的子集。
表示为 R( D1, D2 ,, Dn ) R表示关系的名字。
由于关系是笛卡尔积的子集,因此也是一个二维表。由于域可以相同,为 了便于区别,需要为关系中的每个列指定一个名字,称为属性。如,表2.2
在面向对象的数据模型中,最基 本的概念为对象和类。
数据结构简单,容易被初学者接 受,已得到广泛应用
第二章
一、单一的数据结构----关系
关系数据模型
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成
关系模型的数据结构非常单一。在关系模型中,现实世界的实体 以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据 的逻辑结构是一张二维表。 二、关系操作 关系模型中常用的关系操作包括:选择、投影、连接、查询、修 改等。
学生.学号成绩.学号姓名'刘晨'课程号2 (学生 成绩)
姓名,课程号,成绩 ( 学生.学号成绩.学号姓名'刘晨'课程号2 (学生 成绩))
姓名 刘晨 课程号 2 成绩 90
2.3
例2:查询刘晨的高数成绩 分析:
学生×成绩
学生.学号 姓名
关系代数
性别
年龄
所在系
成绩.学号
第二章 关系数据模型
第一章
复 习
• 掌握数据库、DBMS、DBS等概念
• 了解数据管理的三个阶段:人工管理、文件系统、数据库技
术。
• 掌握数据库的5个主要特征:数据的结构化;高共享、低冗
余和大容量;可靠性高;安全性;数据独立性。 • 掌握数据模型的三个组成要素:数据结构、数据操作和数据 的约束条件。
课程号
成绩
95001
95001 95001 95001 95001 95002 …… 95004 95004
三、关系的三类完整性约束
实体完整性、参照完整性和用户定义的完整性。
2.1 关系模型的数据结构
如整数域是所有整数的集合,
2.1.1 关系的数学定义
1. 域:是一组具有相同数据类型的值的集合。
实数域是所有实数的集合,
性别的域是{男,女}等。
例:若有三名研究生,分别是张力、李强和钱三。其中张力和李强的导师是张平, 专业方向是计算机应用;钱三的导师是陈忠,专业方向是软件工程。写出研究生 的姓名、导师和专业的域。
R2 R3 叶结点 联系更多的 是非层次关 系的。 R1 R2 R3 R4 叶结点 R5 叶结点 R4 R5
第二章
关系模型
目前最重要的一种数据模型。 用表格形式结构表示实体类型及 实体之间的联系。
关系数据模型
面向对象模型
现实世界中存在着许多含有更复 杂数据结构的实际应用领域,从
而导致了面向对象的数据模型。
例,试定义研究生关系。
解:若用graduate表示研究生关系名,包含姓名、导师和专业属性,则研究生 关系可以记为:graduate(姓名,导师,专业)
使用二维表表示为:
2.1 关系模型的数据结构
姓名 导师 专业
张力
李强 钱三
张平
张平 陈忠
计算机应用
计算机应用 软件工程
研究生graduate关系是name×mentor×speciality笛卡尔积中取出的一个子集,对 于graduate关系来说,笛卡尔积中许多元组是无意义的,因此graduate关系仅从
C c1 c2
将两个关系的元组以任意组合的方式连接起来,产生一个新的关 系。
关系R
A a1 a2
B b1 b2
关系S
E e1 e2 e3
H h1 h2 h3
P p1 p2 p3
则关系R和S的广义笛卡尔积R S为:

2.3
R
关系代数
C c1
c1 c1 c2 c2
S
A a1
a1 a1 a2 a2
B b1
name×mentor×speciality中取出有意义的元组构成了graduate关系。
超键:若关系中某些属性的值组合起来能够惟一确定关系中的一个元组,则
称该属性集合为关系的一个超键。
一个关系至少拥有一个超键,即 关系中所有属性的集合。
2.1 关系模型的数据结构
候选键:有一类特殊的超键,它的所有真子集都不构成一个超键,称之 为候选键。
3. 用户定义的完整性
允许用户指定关系中数据需要满足的其他约束条件。 如成绩属性的取值范围在0~100之间,年龄的取值范围在0 ~150之间,
性别的取值范围在男、女之间等。
2.3
关系代数
关系代数,是一种抽象的查询语言,是关系数据操纵语言的一
种传统表达方式,它是用对关系的运算来表达查询的。
关系模式的数据操作主要由关系代数完成。关系代数包含一系
陈忠,计算机应用),(张力,陈忠,软件工程),(李强,张平,计算机应用),(李强,张平,软件工 程),(李强,陈忠,计算机应用),(李强,陈忠,软件工程),(钱三,张平,计算机应用),(钱三,张 平,软件工程),(钱三,陈忠,计算机应用) ,(钱三,陈忠,软件工程)}
name×mentor×speciality中包含3×2×2=12个元组,这12个元组用二维表表示为:
2.1 关系模型的数据结构
name mentor 张平 张平 seciality 计算机应用 软件工程
每个域对应 一列
张力 张力
元组
张力 张力 李强
李强 李强 李强 钱三 钱三 钱三 钱三
陈忠 陈忠 张平
张平 陈忠 陈忠 张平 张平 陈忠 陈忠
计算机应用 软件工程 计算机应用
软件工程 计算机应用 软件工程 计算机应用 软件工程 计算机应用 软件工程
主键:从候选键中选择一个作为关系的主键。主键包含的属性称为主属性。
其它属性称为非主属性。
2.1 关系模型的数据结构
在关系定义中,主属性用下划线表示,如标识了主属性的关系R 表示为:R(学号,课程,成绩) 外键:在存在多个关系时,可以要求其中一个关系(设为R)的某些属性 的值能在另一关系(设为S)的主键中找到对应的值,这时R中的 这些属性称为R的一个外键。 如,有如下两个关系。
专业号是学生 关系的外键
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
2.1 关系模型的数据结构
思考:
试分析这两个关系中,超键、候选键、主键和外键分别是什么? 假设除编号属性外,其余属性都有可能不惟一。
2.1 关系模型的数据结构
2.1.2 关系的性质
1. 列是同质的
对于关系中的每一列,其所有值都来自于同一个域。 2. 列只能取原子值 3. 不能有相同的元组 4. 行的顺序无关 练习1
2.1 关系模型的数据结构
例,若name={张力,李强,钱三},mentor={张平,陈忠},speciality={计
算机应用,软件工程},求name、mentor和speciality的笛卡尔积 name×mentor×speciality。 name×mentor×speciality={(张力,张平,计算机应用),(张力,张平,软件工程),(张力,
列基本的关系运算。关系代数中所有运算的操作数和运算结果都是
关系,运算的结果又可作为进一步运算的操作数,形成更复杂的关 系代数表达式。 熟悉“网上书店数据库”例子,见表2.3 2.4 2.5
2.3
2.3.1 基本的关系运算
1.选择( )
关系代数
选择运算的作用是从一个关系中找出满足指定条件的元组。 选择运算用字母 表示,选择条件作为 下标。 2.投影( )
相关文档
最新文档