第2章关系数据库
(第二讲)数据库(第二章:关系数据库的基本概念)

类型 char(10) char(10) char(2) Int char(4) 学号,主码 姓名:字符类型
说明
性别:只能为男或女 年龄:整形 所在专业编号,外码,参照专业表
4. 选课表(XK_Tab):记录学生的选课结果,对于任意一门课,每 个学生一年最多只能选一次,因此用课程编号、学号和年份联合作为 选课表的主码。选课表通过学号参照学生表,通过课程编号参照课程 表。
2. 课程表(KC_Tab):存放多门课程,主码为课程编号。
表2-4 课程表(KC_Tab)
列名 KC_Id KC_Name KC_KC_Id KC_Point
类型 char(4) char(50) char(4) Float
说明 课程编号,主码 课程名称 先修课课程编号 课程的学分
3. 学生表(XS_Tab):记录学生的基本信息,主码为学号,通过专业 编号参照专业表。
2.3 关系模型规范化
关系模型规范化的目的是为了消除存储异常,减少数据冗余, 保证数据的完整性和存储效率。 关系数据库中的关系是要满足一定的规范化要求的。对于不 同规范化程度,可以使用“范式”来衡量。满足最低要求的为I范 式。。在I范式的基础上,进一步满足一些要求的为II范式,以次 类推。一般情况下,在实践中关系模式满足3范式就基本可以。
元素的每一个值 di 叫作一个分量。关系模型中要求每一 个分量必须属于某种基本数据类型,如整形或字符串型。
关系:笛卡尔积的子集就是一个关系。
R( D1 , D2 ,, Dn )
这里R表示关系的名字,n是关系的目或度。
例: 我们给出如下三个域: D1 =导师集合。导师={王新,赵阳} D2=专业集合。专业={计算机,通信} D3=学生集合。学生={(张三,101),(李四,201)} 则笛卡尔积为: D1XD2XD3={(王新,计算机,张三,101), (王新,计算机,李四,201),
第2章关系数据库习题参考答案

第2章关系数据库习题参考答案1、试述关系模型的三个组成部分。
(46页)答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2、试述关系数据语言的特点和分类。
(47页)答:关系数据语言可以分为三类:A、关系代数语言。
B、关系演算语言:元组关系演算语言和域关系演算语言。
C、SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
2、定义并理解下列术语,说明它们联系与区别:(P46---50页)(1)域,笛卡尔积,关系,元组,属性(2)主码,候选码,外部码(3)关系模式,关系,关系数据库3、试述关系模型的完整性规则(53页),在参照完整性中,为什么外部码属性也可以为空?什么情况下才可以为空?(55页)答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
(P55页)若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:●或者取空值(F的每个属性值均为空值);●或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))(见P62页例6)6.试述等值连接与自然连接的区别和联系。
第2章 关系数据库数学模型

关系——二维表(行列),实体及其联系 都用关系表示。在用户看来关系数据的逻辑模 型就是一张二维表。
关系数据模型概述(续I)
关系操作 查询: 1)选择Select; 4)除Divide; Intersection; 编辑: 1)增加Insert; Update;
2)投影Project; 3)连接Join; 5)并Union; 6)交 7)差Difference;
三元关系的转换 一般要引入分离关系 如公司、产品和国家之间的m:n:p的三元关系及销 售联系。
关系代数
关系代数概述 关系代数的运算符 集合运算符
并U 交∩ 差 专门的关系运算符
笛卡尔积 × 选择σ 投影π 连接 除 算术比较符
> ≥ < ≤ = ≠ 逻辑运算符
EER模型到关系模式的转换(续IV)
为此,本例中引入一个分离关系On_Load(借 出的书),可以避免空值的出现。 这样,存在以下三个关系模式: Borrower(B#,Name,Address,……) Book(ISBN,Title,……) On_Load(ISBN,B#,Date1,Date2) 只有借出的书才会出现在关系On_Load中, 避免空值 的出现,并把属性Date1和Date2加到 关系On_Load中。
D1 x D2 x…x Dn={(d1,d2,…,dn) | di∈Di, i=1,2,…,n} (d1,d2,…,dn) --------n元组(n-tuple) di--------元组的每一分量(Component) Di为有限集时,其基数为mi,则卡积的基 数为M=m1*m2*…*mn
关系数据库
第二章 关系数据库

事物
实体
元组
行
记录
性质 现实世界
属性 信息世界
属性/域 关系
列 表
数据项 计算机世界
图2-2 不同领域不同属于对应关系
16
§2.1.2 关系的性质
可以通过二维表理解关系的性质。
1.不允许“表中套表”,即表中元组分量必须是原子的。 2.表中各列取自同一个域,即一列中的各个分量具有相同性质。 3.列的次序可以任意交换,不改变关系的实际意义。 4.表中不允许出现相同的两行,即同一实体不能重复出现(表 中的行叫元组,代表一个实体)。 5.行的次序无关紧要,可任意交换。
1、候选键
能唯一标识关系中元组的属性或属性集,则称该属性 或属性集为候选码(Candidate Key),也称候选键。 如 “学生关系”
“选课关系”
20
2、主键
如果一个关系中有多个候选键,可以从中选择一个作为 主键(Primary Key),或称为关键字。 例如:假设在学生关系中没有重名的学生,则“学号” 和“姓名”都可作为学生关系的候选键;
25
在每个关系中,又有其相应的数据库的实例
例如:与学生关系模式对应的数据库中的实例有 如下6个元组
S1 赵亦 女 17 计算机
S2
S3 S4
钱尔
孙珊 李思
男
女 男
18
20 21
信息
信息 自动化
S5
S6
周武
吴丽
男
女
19
20
计算机
自动化
26
§ 2.1.5 关系完整性约束
完整性约束保证授权用户对数据库的修改不 会导致数据一致性的破坏,关系模型的三类完 整性: 实体完整性 参照完整性 用户定义的完整性
数据库原理2 关系数据库

三、用户定义的完整性(User-defined integrity)
实体完整性和参照性适用于任何关系数据 库系统。除此之外,不同的关系数据库 系统根据其应用环境的不同,往往还需 要一些特殊的约束条件。用户定义的完 整性就是针对某一具体关系数据库的约 束条件,它反映某一具体应用所涉及的 数据必须满足的语义要求。关系模型应 提供定义和检验这类完整性的机制,以 便用统一的系统的方法处理它们,而不 要由应用程序承担这一功能。
体和实体间的联系的关系的集合构成一 个关系数据库。同样,关系数据库也有 型和值之分。
型:关系数据库模式 是对关系数据库的描 述。
值:一般就称为关系数据库。
2.3 关系的完整性
关系模型的完整性规则是对关系的某种约 束条件。
关系模型的三类完整性:
1. 实体完整性 2. 参照完整性 3. 用户定义的完整性
2.4 关系代数
本节要求
给定关系和关系代数表达式,要会算。
给定关系模式和查询(语义)要求,要会写 关系代数表达式。
关系代数是一种抽象的查询语言,用对
关系的运算来表达查询,作为研究关系 数据语言的数学工具。
关系代数的运算对象是关系,运算结果
亦为关系。关系代数用到的运算符包括 四类:集合运算符、专门的关系运算符、 算术比较符和逻辑运算符。
第二章 关系数据库
2-5章为本课程重点与难点 关系数据库的理论基础 1970, E.F.Codd “A Relational Model of Data for Shared Data Banks” 现代主流数据库几乎全部支持关系模型 Oracle(甲骨文),Sybase, IBM DB2, MS SQL Server, Ingres
引用的时候,必须取基本表中已经存在的 值。由此引出参照的引用规则。
02 关系数据库的基本理论

2.2.4 关系系统
2.关系系统的分类 按照E.F.Codd的思想,可以把关系系统分 类如下: (1)最小关系系统 (2)关系上完备的系统 (3)全关系系统
2.2.4 关系系统
3.全关系系统的12条基本准则 【准则2-0】一个关系型的DBMS必须能完全通过 它的关系能力来管理数据库。 【准则2-1】信息准则。 【准则2-2】保证访问准则。 【准则2-3】空值的系统化处理。 【准则2-4】基于关系模型的动态的联机数据字典。 【准则2-5】统一的数据子语言准则。
第2章 关系数据库的基本理论
关系数据库系统具有独特的风格,概括起 来有以下五个特点。
(1)简单明了的数据模型。 (2)具有严谨的理论基础。 (3)实体表示方法和实体之间联系的表示 方法一致。 (4)处理多对多的联系方便。 (5)使用的关系数据语言功能强大。
2.1 关系模型概述
关系模型是关系数据库的基础。关系模型由数据 结构、关系操作集合和完整性约束三部分组成。 2.1.1 关系数据结构
其中,姓名、职称、X称为域名,姓名域和职称域各有4个值, X域有2个值,一般称它们的基数分别为4、4、2。
2.2.1 数学定义
【 定 义 2-2】 给 定 一 组 域 D1,D2,…,Dn , 则 D1×D2×…×Dn = { (d1,d2,…,dn) | d1∈Di , i = 1,2,…,n } 称 为 D1,D2,…,Dn 的 笛卡尔积。其中每个(d1,d2,…,dn)叫做一个n元组,元组中的 每个di是Di域中的一个值,称为一个分量。
表达(或描述)关系操作的关系数据语言 可以分为三类,具体分类情况如下:
2.1.2 关系操作
(1)关系代数 关系代数是用对关系的运算来表达查询要
求的方式。 (2)关系演算
《数据库整理》第2章 关系数据库

关系体
随数据更新不断变化
15
.
• 例如,在第1章的图1-22所示的教学数据库中,共有五个关 系,其关系模式可分别表示为:
– 学生(学号,姓名,性别,年龄,系别) – 教师(教师号,姓名,性别,年龄,职称,工资,岗位津贴,系
别)
– 课程(课程号,课程名,课时) – 选课(学号,课程号,成绩) – 授课(教师号,课程号)
• 给定一组域D1,D2,…,Dn(它们可以包含相同的元素, 即可以完全不同,也可以部分或全部相同)。D1,D2,… ,Dn的笛卡尔积为
D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
每一个元素(d1,d2,…,dn)中的每一个值di叫做一个 分量(Component) ,di∈Di 每一个元素(d1,d2,…,dn)叫做一个n元组(n-Tuple ),简称元组(Tuple) (注意:元组是按序排列的)
5
.
笛卡尔积D1×D2×…×Dn的基数M(即元素(d1,d2, …,dn)的个数)为所有域的基数的累乘之
n
积,即M= m i 。 i1
例如,上述表示教师关系中姓名、性别两个域的笛卡尔 积为:
D1×D2={(李力,男),(李力,女),(王平,男),(王平 ,女),(刘伟,男),(刘伟,女)}
分量:李力、王平、刘伟、男、女 元组 :(李力,男),(李力,女) ,M=m1×m2=3×2=6
第2章 关系数据库
.
• 本章主要按数据模型的三个要素讲述关系数据库的一
些基本理论(关系模型的数据结构、关系的定义和性 质、关系的完整性、关系代数、关系数据库等 )
• 掌握关系的定义及性质、关系键、外部键等基本概念
以及关系演算语言的使用方法
第2章-关系数据库

计算机科学与工程系
列:属性对应字段
学号 050101
关系对应二维表
姓名 张三秋
性别 男
出生年月 1986-6-9
籍贯 广东
050102
050103 050104
主键
王五
李玉 黄国度
男
女 男
1986-8-8
1985-9-12 1986-8-13
江苏
湖南 广东
行:元组对应记录
分量对应数据项
关系模型与关系数据库的对应关系
院长 张兴杰 杨波 张三 李四 王二 林木
电话 85283291 85285393 85285313 85285329 85285333 85285343
地址 17号楼 信息大楼 1号楼 2号楼 3号楼 4号楼
null
教学进度
计算机科学与工程系
② 参照完整性 是对外键的约束,关系中的外键必 须是另一个关系的主键(或候选键)有效值 或空值(Null)。
A. B. C. D. 层次模型 网状模型 关系模型 以上3个都是
一公司
计算机科学与工程系
二公司
省代理 三公司 四公司
教学进度
复习:选择题
A. B. C. D. 关系型 层次型 网状型 以上皆非
计算机科学与工程系
如图所示的数据模型属于( )。
总裁
副总裁
部门A
员工甲
员工乙
教学进度
复习:选择题
计算机科学与工程系
计算机科学与工程系
Access是一种( )。
A. B. C. D. 数据库管理系统软件 操作系统软件 文字处理软件 CAD软件
教学进度
复习:选择题
计算机科学与工程系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在上述形式定义中,关系模式R称为“参照关系”模 式,关系模式S称为“依赖关系”模式。
2.2 关系模型的完整性
例2-2:学生实体和专业实体可以用下面的关系表示,其 中主码用下划线标识。 学生(学号, 姓名, 性别, 专业号, 年龄) 专业(专业号, 专业名)
候选关键字的各个属性称为主属性。不包含在任何候选关键字 中的属性称为非主属性(非码属性)。最简单的情况是,主码只 有一个属性。在最极端的情况下,由关系模式中的所有属性构 成主码,称为全码(All-Key)。例如,学生关系: student(stuno, stuname, birthday, sex, class),其中的 stuno(学号)就是主码。再比如,导师指导学生的关系 sap(thno, stuno)的主码就是一个全码。
2.2 关系模型的完整性
为了维护数据库中数据与现实世界的一致性,在关系 模型中加入完整性规则,其中可以有4类完整性约束: 域完整性约束、 实体完整性约束、 参照完整性约束 用户定义完整性约束。
其中域完整性、实体完整性和参照完整性是关系模型 必须满足的约束条件,由关系系统自动支持。
2.2 关系模型的完整性
1.域完整性(Domain Integrity)约束 域完整性是指给定列的输入有效性。 控制域有效性的方法有:限制数据类型(通过数据类型定
义)、格式(通过 CHECK 约束和规则)、可能值的范围。 2.实体完整性(Entity Integrity)约束 若属性A是关系R的主属性,则属性A不能取空值。 实体完整性规则规定基本关系的所有主属性都不能取空值,
不同的属性要给予不同的属性名。 列与列之间可以互换位置。 任意两个元组不能完全相同。 行的次序可以任意交换。 分量必需取原子值,即每一个分量都必需是不可分的数据
项。
2.1 关系模型
2.域 域(Domain)指一组具有相同数据类型的值的集合。 如: D1 = {1, 2, 3, 4, 5, 6, …}表示自然数集合; D2 = {男, 女}表示性别集合。 域中数据的个数称为域的基数。所以,D2的 基数为2,D1的基数为无穷。
2.1 关系模型
2.1.2 关系模式 定义2.1 关系的描述称为关系模式,形式化表示: R(U, D, dom, F ) 其中R为关系名,U是组成该关系的属性名集合, D是属性组U中属性所来自的域,dom为属性到域的 映像集合,F为属性间数据的依赖关系集 系名,A1,A2,…,AK为属性名,并指出主关键码。
每一张表称为该关系框架上的一个具体关系:关系框架R 上的一个关系r[R]是它的属性Ai (j=1,2,…,k)对应的域d(Aj)构
成的笛卡儿空间d(A1)× d(A2)×… d(Ak)中的一个子集。 表中的每一行称为关系的一个元组;每一列称为属性,它
在某个值域上的取值,不同的属性可以在相同的值域上取值。 关系中的属性个数称为“元数”(Arity),元组个数称为“基 数”(Cardinality)。
2.1 关系模型
例2-1:在学校教学模型中,如果学生的属性S#、SNAME、 AGE、SEX分别表示学生的学号、姓名、年龄和性别;课程 的属性C#、CNAME、TEACHER分别表示课程号、课程名和 任课教师姓名。给出它们的关系模式。
学生关系模式S(S#, SNAME, AGE, SEX) 课程关系模式C(C#, CNAME, TEACHER) 关系模式中带有下划线的属性集为主关键字。
2.1 关系模型
3.关键字(码)
超关键字(Super Key):在关系中能唯一标识元组的属性集合 称为超关键字,显然,一个关系所有属性的集合为该关系本身 的超关键字。
候选关键字(Candidate Key):如某一属性集合是超关键字, 但去掉其中任一属性后就不再是超关键字了,这样的属性称为 候选关键字。
主关键字(primary key):如果关系中存在多个候选关 键字,用户选作元组标识的一个候选关键字为主关键字。 通常在关系操作时,选用一个主关键字作为插入、删除、 检索元组的操作变量。
合成关键字(composite key):当某个候选关键字包含多 个属性时,则称该候选关键字为合成关键字。
外部关键字(foreign key):如果关系R的某一(些)属 性K不是R的候选关键字,而是另一关系S的候选关键字, 则称K为R的外部关键字。它是两个关系联系的一种非常 重要的方法。
且主属性整体不能取空值。例如,在关系“学生成绩关系 SC(学号, 课程号, 成绩)”中,“学号”和“课程号”为主属 性,则都不能取空值。
2.2 关系模型的完整性
3.参照完整性(Referential Integrity)约束 这条规则要求“不引用不存在的实体”,考虑的是
不同关系之间或同一关系的不同元组之间的制约。参照 完整性的形式定义如下:
本章内容
1
2.1 关系模型
2
2.2 关系模型完整性
3
2.3 关系代数
4
2.4 关系数据库规范化理论
45
2.5 小结
2.1 关系模型
2.1.1 关系模型的基本概念
1.关系及基本术语 在关系模型中,将表格的头一行称为关系框架:是属性
A1,A2,…,AK的有限集合。每个属性Ai对应一个值
Di=d(i=1,2,…,k), 值域可以是任意的非空有限集合或无限 集合。
2.1 关系模型
关系包含以下类型。 (1) 基本表:它是实际存在的表,是实际存
储数据的逻辑表示。 (2) 查询表:它是查询结果对应的表,是一
个虚表,是数据库管理系统执行了查询语 句之后得到的虚关系。 (3) 视图表:它是由基本表或其它视图表导 出的表,是一个虚表。
基本关系的性质 列是同质的,即每一列中的分量是同一类型的数据。 不同的列可出自同一个域,称其中的每一列为一个属性,