数据库原理二

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.
三类完整性约束
2.2 关系数据结构及形式化定义
“关系”——“规范二维表”(非形式化) “关系”的理论建立在集合代数理论的基 础之上
2.2.1 域
定义2.1:域(Domain)是值的集合。(值域) – 在关系中用域来表示属性的取值范围 – 域中所包含的值的个数称域的基数(用m表示) 例:D1={李平,张红,王钢} D2={男,女} D3={17,18,19} m1=3 m2=2 m3=3
2.2.3 关系的形式化定义
其中: – 关系头 是关系的数据结构的描述(关系框架) 关系头相对固定 – 关系体 是指关系结构中的内容(数据值) 关系体随时间变化(随元组的插入、修改或删除 而变化)
2.2.4 关系的性质
(1)任意两个元组的候选码不能相同。 (2)元组的顺序无关紧要,即它的次序可以任意交换。 (3)属性的顺序无关紧要,即它的次序可以任意交换。 (4)不同的属性可来自同一个域,但必须具有不同的属性名。 (5)同一属性名下的诸属性值(同列)是同类型数据,且来自同 一个域。 (6)所有的属性值都是原子的。 注意:在许多实际的关系数据库产品中,基本表并不完 全具备这六条性质。
2.2.2 笛卡儿积
定义2.2 给定一组任意集合D1,D2,…Dn(它们可以包括相同 的元素), 这n个集合的笛卡儿积为: D1×D2×…×Dn={(d1,d2,…dn)| di∈ Di,i=1,2…,n} 笛卡儿积也是一个集合,其中: – Di称为域 – 每一个元素(d1,d2,…dn) 叫做一个n元组(简称元组) – 元素中每一个值di叫做一个分量 – Di的基数用mi(i=1,2,…,n)表示,则笛卡儿积的基数为 所有域的基数的累乘乘积
关系代数的运算符有:
– 集合运算符:∪(并) ∩(交) —(差) ×(笛卡儿 积) ) – 专门的关系运算符:σ(选择) π(投影) ÷(除) ∞ (连接) – 逻辑运算符:∧(AND) ∨(OR) ┐(NOT) – 算术比较符θ={>,<,≥,≤,=,≠}
2.5.1 传统的集合运算
1. 关系并运算:关系R和关系S的所有元组的合并,再删 去重复的元组,组成一个新关系,记作:R∪S 2. 关系差运算:在关系R中删去与关系S中相同的元组, 组成一个新关系,记作:R-S 3. 关系交运算:在两个关系R与S中取相同的元组,组成 一个新关系,记作:R∩S 4. 笛卡儿积:两个分别为n、m目关系R和S的笛卡儿积是 一个(n+m)列元组的集合,元组前n列是R的一个元 组,后m列是S的一个元组,记作:R×S
2.5.2 专门的关系运算
等值连接:当比较运算符为等号时的连接 运算。
2.5.2 专门的关系运算
自然连接:对于关系R、S,在等值连接的情况 下,当连接属性组A与B相同时,则关系R与S 的连接称为自然连接 – 在自然连接构成的结果关系中,相同的属性 名不必重复,即要取消重复列 – 自然连接是组装关系的有效方法 – 自然连接同时从行和列的角度进行运算 – 外连接、左外连接、右外连接:教材P58
2.2.3 关系的形式化定义
由该例可知,关系是笛卡儿乘积的任意子集,但从实际应 用中,只有取某个子集才有实际意义。 一般说来,关系是从笛卡儿积中选取的有意义的子集。 定义2.4 定义在域D1,D2,…Dn(不要求完全相异)上的关 系由关系头(Heading)和关系体(Body)组成。关系头由 属性名的A1,A2,…An的集合组成,每个属性Ai正好对应 一个域Di(i=1,2,…n);关系体由随时间变化的n个元组 的集合构成,每个元组依次由一组属性值构成。
2.5 关系代数
关系代数包含两类运算:
传统的集合运算,如并、交、差、广义笛卡 儿积,这类运算将关系看成元组的集合,其 运算是从关系的“水平”方向即行的角度来 进行的 专门的关系运算,如选择、投影、连接、除, 这类运算不仅涉及行,而且涉及列 关系运算的运算对象是关系,结果也是关系 运算符包含四大类
2.5 关系代数
第二章 关系数据库
1970年,IBM公司的E.F.Codd第一次提 出了以数学关系理论为基础的关系数据 模型,奠定了关系数据库的理论基础 90年代,关系模型数据库系统已成为商 用主流数据库系统,广泛应用于各个领 域
2.1 关系模型概述
1. 2.
o o o o o
单一的数据结构——关系 关系操作
常用的查询操作:选择、投影、连接、除、并、交、 差等 特点:一次一集合 关系操作能力的代数方式 :关系代数;逻辑方式:关 系演算 结构化查询语言SQL:介于关系代数和关系演算之间 关系数据语言的特点:教材P48
据库
关系数据库模式 定义:一组关系模式的集合构成关系数据库模式
– 它是对关系数据库结构的描述 – 对应与关系数据库模式的当前值就是关系数据库的内
容(关系数据库实例),通常就称为关系数据库
关系数据库 – 关系数据库是由一组关系头的集合及其关系 体的集合组成的 – 关系头的集合就是关系数据库模式 – 关系体的集合代表关系数据库的内容 – 关系数据库有型和值的概念,其型就是关系 数据库模式,它相对固定;其值就是关系数 据库的内容,它是随时间而变化的
2.2.5 关系模式
定义2.5:关系的描述称为关系模式。 表示:5元组R(U, D, dom, F) 可简化为R(A1,A2,…An)
– 关系模式就是关系的框架(表框架) 关系模式就是关系的框架(表框架) – 它是对关系结构的描述 – 注意关系模式和关系的区别和联系
2.2.6 关系数据库模式与关系数
2.3 关系的完整性
2. 参照完整性 外码:如果关系R的一个或一组属性F不是R的码,但 与另一关系S的主码K相对应,则该属性或属性组称为 关系R的外码。R为参照关系,S为被参照关系或目标关 系。R和S可以是同一关系,F和K定义在同一个域上。 如果关系R的外码F与关系S的主码K相对应,那么外码F 的每个值必须在关系S的主码的值中找到,或者取空值, 称为参照完整性
– 外码与主码的对应提供了一种实现两个关系联系的方法 – 空值不是在任何情况下都可以取
2.3 关系的完整性
3. 用户定义完整性 针对某个具体数据库的约束条件,由应用环境 决定,它反映某一具体应用所涉及的数据必须 满足的语义要求
– 关系模型应提供定义和检验这类完整性的机制,以
便用统一的系统的方法处理它们,而不要由应用程 序来承担这一功能
2.2.3 关系的形式化定义
例:设 D1=男人集合(MAN)={王兵、李平、张英}
D2 =女人集合(WOMAN)={丁红、肖芳} D3=儿童集合(CHILD)={王峰、李刚、李卓} (1)求上面三个集合的笛卡儿积 (2)构造一个家庭关系,可表示为: FAMILY(MAN,WOMAN,CHILD) Family MAN WOMAN CHILD 王兵 丁红 王峰 李平 肖芳 李刚 李平 肖芳 李卓
2.3 关系的完整性
关系模型的三类完整性: 三类完整性是实体完整性、 三类完整性是实体完整性、参照完整性和用户 定义的完整性(其中前两类完整性是所有关系 定义的完整性( 模型必须满足的约束条件) 模型必须满足的约束条件) 1. 实体完整性 在关系中,要求主码的值不能为空值或部分为 空值的约束条件(即主属性不能取空值)称为 实体的完整性。
2.5.1 传统的集合运算
它们是二目运算,其中R和S要求是同类关系 (除笛卡儿积运算) 它们能实现关系数据库的许多基本操作
并运算实现数据记录的添加和插入 差运算实现数据记录的删除 数据记录的修改则是通过先删除,后插入这两步完 成的
2.5.2 专门的关系运算
1. 选择(限制):是在指定的关系中,按给定的条件选 取其中的若干个元组,组成一个新的关系, 记作:σF(R) – F为选择条件,可由运算对象(属性名、常数、简单 函数)、算术比较符和逻辑运算符连接起来的表达式 组成,结果为逻辑值 – 选择是单目运算 – 选择是从关系的水平方向(行)的角度进行运算
M = ∏mi
i=1 n
2.2.2 笛卡儿积
例:设有两个域, D1 ={0,1}和D2 ={a,b,c} 则D1×D2={(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}
笛卡儿积也可以用二维表表示,其中表的框架由域构成, 表的任意一行就是一个元组,每一列数据来则同一域。
2.2.3 关系的形式化定义
2.5.2 专门的关系运算
4. 除法:它使用除数关系S(Y,Z)在被除数关系 R(X,Y)中取商关系,记作:R÷S – R中的Y和S中的Y可以有不同的属性名,但 出自相同的域
– 同时从行和列的角度进行运算
关系代数例题:
1. 考虑下列一个公司的订货处理数据库: Customer(Cno, Cname, City) Order(Ono, Odate, Cno) Order_Item(Ono, Ino, Qty) Item(Ino, Unit_price) Shipment(Ono, Wno, Ship_date) Warehouse(Wno, City) 用关系代数指定下列查询: a. 列出从仓库号‘W2’的仓库中装船的所有订单的 Cno和Ship_date。 b. 列出为客户’Jose Lopez’的订单供货的仓库信息 。生成一个列表:Ono,Wno。 c. 列出订货当天就被装船的订单的Ono 。
定义2.3:笛卡儿积 D1×D2×… ×Dn 的一个子集称为 定义在域D1,D2,…,Dn上的n元关系(Relation),可用 R(D1,D2,…,Dn )表示。 其中R为关系名,n称为关系的目或度(Degree) – 该子集元素是关系中的元组 – 关系中的元组个数是关系的基数 – 同样可以把关系看作是一个二维表,表的框架由 Di(i=1,2…,n)构成,每一行对应一个元组,表的每 一列对应一个域,给每个域起一个名字,称为属性 – 具有相同关系框架的关系称为同类关系
பைடு நூலகம்
关系中的几个概念
1. 码:在给定的关系中,唯一标识元组的一个或一组属 性,称为关系的码 码的性质:唯一性、最小性 2. 候选码:如果在关系中,具有码特性的属性或属性组 有多个,则把它们都称为关系的候选码 3. 主码:当一个关系中有多个候选码时,我们从候选码 中选择一个作为关系的主码 – 每个关系都必定有且只有一个主码 – 对于一个关系,主码一经选定,通常是不能随意改 变的 – 候选码的诸属性称为主属性,不包含在任何候选码 中的属性称为非码属性或非主属性 – 关系模式的所有属性是这个关系模式的候选码,称 为全码 4. 关系的三种类型:基本表、查询表、视图表
2.4 关系数据库语言概述
数据库操纵语言包括查询和增、删、改功能, 查询是语言中最主要的部分 关系的数据操作语言按照表达查询的方式分为 两大类: 1 用对关系的运算来表达查询的方式,称为关 系代数 2 用谓词来表达查询要求的方式,称为关系演 算
2.4 关系数据库语言概述
它们均是抽象的查询语言 它们是设计各种高级关系数据语言的基础和指 导思想 它们用来作为评估实际系统中查询语言能力的 标准和基础
2.5.2 专门的关系运算
2. 投影:是在指定的关系R中,根据从左到 右的次序,按照指定的若干属性及它们的 顺序取出各列,再删去结果中重复元组,组 成一个关系,记作: πA(R) – A为选取的属性集合 – 投影是单目运算 – 投影是从关系的垂直方向(列)取子集
2.5.2 专门的关系运算
3. 连接:是从两个关系R、S的笛卡儿积中 选取属性间满足连接条件的那些元组 – 连接运算是二目运算 – 设R为n目关系,S为m目关系,则连接 结果是一个(n+m)目关系 – 一般的连接是从关系的水平方向(行)的 角度进行运算
2. 现有关系数据库模式如下: 学生表(学号,姓名,性别,年龄、专业) 课程表(课程号,课程名,任课教师姓名) 选修表(学号,课程号,分数) 请用关系代数实现下列各小题: 1、检索至少选修了李明老师所教授全部课程的学生的学号、 姓名、专业。 2、检索没有任何一门课程成绩在90分以下的学生的学号、 姓名、专业。 3、检索至少选修课程包含学号为5的学生所选课程的学生 学号。 4、检索全部学生都选修的课程的课程号和课程名。 5、检索至少选修了2门课程的学生的学号、姓名、专业。 注意第5题可扩展! 题可扩展!
相关文档
最新文档