数据库原理教案3-1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设关系R和S具有相同的关系模式,R和S的差是 由属于R但不属于S的元组构成的集合,记为R -S。 形式定义如下: R-S≡{ t | t∈R ∧ t∈S},R和S的元数相同。
注: R-S不同于S-R
例子
传统的集合运算
差(Difference)
关系R A a1 a1 a2 B C b1 c1 b1 c2 b2 c1 A a1 a2 a2
关系模型的优点
概念单一、清晰,无论是实体,还是实体 间的联系,都用关系来表示,用户易懂易 用。 直接表示实体多对多的联系。 具有更好的数据独立性。 关系模型有严格的数学基础及在此基础上 发展起来的关系数据理论。
一、关系数据模型的定义
在关系模型中,无论是实体还是实 体之间的联系均有单一的结构类型即关 系(表)来表示。 在关系模型中,数据的逻辑结构就 是二维表。
每个元组的前r个分量来自关系R的一个元组,后s个分 量来自关系S的一个元组。 若关系R有m个元组,关系S有n个元组,则RS共有 m· n个元组。
传统的集合运算
笛卡尔积(Cartesian Product)
RS
关系R A a1 a1 a2 B C b1 c1 b1 c2 b2 c1 关系S A a1 a2 a2 B C b1 c2 笛卡 b2 c1 尔积 b1 c2 A a1 a1 a1 a1 a1 a1 a2 a2 a2 B b1 b1 b1 b1 b1 b1 b2 b2 b2 C c1 c1 c1 c2 c2 c2 c1 c1 c1 D a1 a2 a2 a1 a2 a2 a1 a2 a2 E b1 b2 b1 b1 b2 b1 b1 b2 b1 F c2 c1 c2 c2 c1 c2 c2 c1 c2
3. 2 关系代数
关系代数是关系数据库的数学基础。关系 代数的运算可分为两类:
传统的集合运算
并、交、差、笛卡尔积
特殊的集合运算
投影、选择、连接和自然连接、除法
一、关系查询语言和关系运算
关系数据库的数据操纵语言(DML)的语句分成 查询语句和更新语句两大类。 查询语句用于描述用户的各种检索要求; 更新语句用于描述用户进行插入、删除、修改等操作。 关于查询的理论称为“关系运算理论”。 关系查询语言根据其理论基础的不同分成三类: (1)关系代数语言。 (2)关系演算语言。 (3)关系逻辑语言。
关系模型的完整性规则 (4)
② 设工厂数据库中有两个关系模式: DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D# ) 车间模式DEPT的属性为车间编号、车间名。 职工模式EMP的属性为工号、姓名、工资、所在车间的 编号。每个模式的主键与外键已标出。在EMP中,由
于D# 不在主键中,因此D# 值允许空。
刘备,刘夫人,关平 刘备,刘夫人,张苞 关羽,刘夫人,张苞 刘备,关夫人,刘禅 关羽,关夫人,刘禅 刘备,关夫人,关平 关羽,关夫人,关平 刘备,关夫人,张苞 关羽,关夫人,张苞 刘备,张夫人,刘禅 关羽,张夫人,刘禅 刘备,张夫人,关平 关羽,张夫人,关平 刘备,张夫人,张苞 关羽,张夫人,张苞 关羽,刘夫人,刘禅 张飞,刘夫人,刘禅 关羽,刘夫人,关平
关系S B C b1 c2 b2 c1 b1 c2 A
R-S B C c1
差
a1 b1
二、关系代数的五个基本操作 (3)
笛卡尔积(Cartesian Product)
设关系R的元数为i元,关系S的元数为j元,定义R和S 的笛卡尔积RS是个(i+j)分量的元组的集合。
R×S≡{ t | t=<tr,ts> ∧ tr ∈R ∧ ts ∈S},
第3章
关系运算
3.1 关系数据模型
关系模型有关系数据结构、关系操作 集合和完整性约束三部分组成。
关系操作的特点是操作对象和操作结果 都是集合。
用二维表格表示实体集,用关键码进行数据 导航的数据模型称为关系模型(relational Model)。这里数据导航(data navigation)是指 从已知数据查找未知数据的过程和方法。
关系模型的完整性规则 (3)
例: 下面各种情况说明了参照完整性规则在关系中如 何实现的。 ① 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) 这里带下划线者为主键,带波浪线者为外键。据规 则要求关系SC中的S# 值应该在关系S中出现。如果关系 SC中有一个元组(S7,C4,80),而学号S7却在关系S中 找不到,那么我们就认为在关系SC中引用了一个不存在 的学生实体,这就违反了参照完整性规则。 另外,在关系SC中S# 不仅是外键,也是主键的一 部分,因此这里S# 值不允许空。
SC S S# S1 S2 S3 SNAME Wang Liu Chen AGE 20 21 22 SEX M F M PTR · · · PTR · · · · · S# S1 S3 S1 S3 S3 C# C1 C1 C2 C2 C3 GRADE 80 90 70 85 95
关系S和SC的环结构
四、关系模型的完整性规则(1)
实体完整性规则(entity integrity rule)
要求关系中元组在组成主键的属性上不能有空 值。如果出现空值,那么主键值就起不了惟一 标识元组的作用。 即:关系中元组的主键值不能为空。
关系模型的完整性规则 (2)
参照完整性规则(reference integrity rule) 参照完整性规则的形式定义如下:
图3.1 职工登记表
性别 M F M M
工资 2000 1500 2000 1000
三、关系模式、关系子模式
R(A1,A2,A3,……,An) 模式名,各属性名,值域名,模式的主键 举例:图书借阅管理,提供如下服务: (1)查询(种类、数量等); (2)查询借阅情况; (3)向出版社订购书籍。 分析:画出ER图,给出关系模式。
关系模型的完整性规则 (6)
用户定义的完整性规则 在建立关系模式时,对属性定义了数据类 型,即使这样可能还满足不了用户的需求。此 时,用户可以针对具体的数据约束,设置完整 性规则,由系统来检验实施,以使用统一的方 法处理它们,不再由应用程序承担这项工作。 例如学生的年龄定义为两位整数,范围还太大, 我们可以写如下规则把年龄限制在15~30岁之 间: CHECK(AGE BETWEEN 15 AND 30)
二、关系代数的五个基本操作 (4)
投影(Projection) 这个操作是对一个关系进行垂直分割,消去某些列,并重 新安排列的顺序。 设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k,i1,…, im 为1到k间的整数)上的投影用π i1,…,im (R)表示,它 是一个m元元组集合,形式定义如下:
关系模型的三级体系结构 --子模 式
子模式是用户所用到的那部分数据的描述。除 此之外,还应指出数据与关系模式中相应数据 的联系。例如,用户需要用到子模式G(图 3.3)。
成绩子模式 G(S#, SNAME, C#, GRADE)
关系模型的三级体系结构 --存储 模式
• 在有些DBMS中,关系存储是作为文件看待的,每个 元组就是一个记录。由于关系模式有键,因此存储一个 关系可用散列方法或索引方法实现。如果关系的元组数 目较少(100个以内),那么也可以用“堆文件”方式实 现(即没有特定的次序)。此外,还可对任意的属性集 建立辅助索引。
一个关系的例子
D1={刘备,关羽,张飞} D2={刘夫人,关夫人,张夫人} Family(D1,D2,D3) D3={刘禅,关平,张苞}
张飞,刘夫人,关平 刘备,刘夫人,刘禅
张飞,刘夫人,张苞 张飞,关夫人,刘禅 张飞,关夫人,关平 张飞,关夫人,张苞 张飞,张夫人,刘禅 张飞,张夫人,关平 张飞,张夫人,张苞
关系的数学定义
定义三
D1×D2×…×Dn 的子集叫做在域 D1,D2,…, Dn上的关系(Relation),用R(D1, D2 …, Dn)表 示,R是关系名,n为关系的目。
关系是在一组域(D1,D2,…,Dn)上的笛卡 尔积的一个子集。
关系是一个属性数目相同的元组的集合。
关系是建立在集合论上,可以进行集合操作。
关 系 的 几 个 性 质
属性值是原子的,不可分解 没有重复的元组。 元组上下无序(无行序)。 理论上没有列序,为方便, 使用时有列序
二、关键码与表之间的联系
关键码(key,简称键)由一个或多个属性
组成。在实际使用中,有下列几种键。 (1)超建(super Key) (2)候选键(candidate Key) (3)主键(primary Key) (4)外键(foreign Key)
关系模型的完整性规则 (5)
③ 设课程之间有先修、后继联系。模式如下:
R(C# ,CNAME,PC# )
其属性表示课程号、课程名、先修课的课 程号。如果规定,每门课程的直接先修课只有 一门,那么模式R的主键是C#,外键是PC#。这 里参照完整性在一个模式中实现。即每门课程 的直接先修课必须在关系中出现。
π i1,…,im(R)≡{ t | t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R }
例如,π 3,1(R)表示关系R中取第1、3列,组成新的关系, 新关系中第1列为R的第3列,新关系的第2列为R的第1列。 如果R的每列标上属性名,那么操作符π 的下标处也可以用 属性名表示。例如,关系R(A,B,C),那么π C,A (R) 与π 3,1(R)是等价的。
关系模型的表达
校名 地址 电话
学校
联系上的属性可 放在任一端。
1 任职 1 校长 任职年月
姓名
性别
年龄
职称
一对一联系
ER模型向关系模型的转换
系号 系名 电话
系
联系上的属性放 在N端。
1 聘用 N 教师 聘期
工号
姓名
性别
年龄
一对多联系
ER模型向关系模型的转换
学号 姓名 学生 年龄 性别
M
选课 N 课程 成绩
传统的集合运算
并(Union)
关系R
A a1 a1 a2
B b1 b1 b2
C c1 c2 c1
关系S A B a1 a2 a2 b1 b2 b1
Fra Baidu bibliotek
RS
C c2 c1 c2 A B b1 b1 b2 b1 C c1 c2 c1 c2
并
a1 a1 a2 a2
二、关系代数的五个基本操作 (2)
差(Difference)
关系查询语言属于非过程性语言。
二、关系代数的五个基本操作 (1)
并(Union) 设关系R和S具有相同的关系模式,R和S的并是 由属于R或属于S的元组构成的集合,记为 R∪S。 形式定义如下: R∪S≡{t | t∈R ∨ t∈S},t是元组变量。 说明:(1)R和S的属性的性质一致; (2)结果中要消除重复元组。 例子
如果属性集K是关系模式R1的主键,K也是关系模 式R2的外键,那么在R2的关系中,K的取值只允许两种 可能,或者为空值,或者等于R1关系中某个主键值。 这条规则的实质是“不允许引用不存在的实体”。
在上述形式定义中,关系模式R1的关系称为“参照关系”,
关系模式R2的关系称为“依赖关系”。“主表”和“副 表”,“父表”和“子表”。
课程号
课程名 多对多联系
教师名
关系模型的三级体系结构 -- 关系 模式
在关系模型中,记录类型称为关系模 式,而关系模式的集合就是数据库的概念 模式。在系统实现时,关系模式和属性的 命名一般都用英文单词。
学生关系模式 S(S#,SNAME, AGE,SEX) 选 课 关 系 模 式 SC(S# , C# , GRADE) 课程关系模式 C(C#,CNAME, TEACHER)
关系的数学定义
关系模型是建立在集合论的基础上,用集合 代数来定义一个关系。
定义一
域(Domain)是值的集合。
定义二
设 D1, D2, …, Dn 为一组域(可以有相同的域), D1, D2, …Dn 上的笛卡尔积 定义为: D1×D2×…×Dn = {(d1, d2, …,dn)|diDi, i=1, 2, …, n} 其中每一个元素(d1, d2, …dn)称为一个n元组, 简称元组。元组中每一个值 di 叫做一个分量。
二、关键码与表之间的联系
在图3.1中,(工号,姓名)是模式的一个超键, 但不是候选键,而(工号)是候选键。在实际 使用中,如果选择(工号)作为删除或查找元 组的标志,那么称(工号)是主键。
工号 4001 4002 4124 5018 姓名 zhang li liu wang 年龄 50 40 35 25