截图
简介
这是数据库关系数据库ppt,包括了关系数据库简介,关系数据模型的特征,关系数据结构,例子,关系的形式化定义,关系的基本性质,关系操作,关系数据语言的特点,关系完整性,实体完整性,参照完整性,用户定义完整性,关系代数,关系代数总结,元组关系演算,域关系演算,原子公式等内容,欢迎点击下载。
数据库关系数据库ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.
第二章、关系数据库
关系数据库简介
系统而严格地提出关系模型的是美国IBM公司的E.F.Codd
1970年提出关系数据模型
E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, 《Communication of the ACM》,1970
之后,提出了关系代数和关系演算的概念
1972年提出了关系的第一、第二、第三范式
1974年提出了关系的BCNF范式
关系数据模型的特征
关系数据结构
例子
关系的形式化定义
关系的基本性质
关系操作
关系数据语言的特点
关系语言是一种高度非过程化的语言
存取路径的选择由DBMS的优化机制来完成
用户不必用循环结构就可以完成数据操作
能够嵌入高级语言中使用
关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价
关系完整性
关系完整性(Integrity):指关系数据的正确性和相容性。是对数据库数据的语义约束条件。如学生的学号必须唯一;性别只能上男或女等。
数据库是否具备完整性影响到数据库系统能否真实地反映显示世界。
这些加在数据库数据之上的语义约束条件称为完整性约束条件,它们作为模式的一部分存入数据库中。而DBMS中检查是否满足完整性条件的机制称为完整性检查。
关系模型中有三类完整性约束:
◇实体完整性
◇参照完整性
◇用户定义的完整性
其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应由系统自动支持(DBMS来实现)。
实体完整性
实体完整性:关系中主关键字的值不能为空。或:
若属性A是基本关系R的主属性,则属性A不能取空值。
说明:
1、针对基本关系,对应一个实体集,其实体是可区分的,故应有某中唯一性标识,我们用主码(主关键字)的值来标识每一实体。
2、主码中的属性称为主属性,主属性不能为空值。空值一般用NULL来表示,空值是“不知道”或“无意义”的值。如果主属性取空值就说明存在某个不可表示的实体,即存在不可区分的实体。
例如:
选修(学号,课程号,成绩)中,(学号,课程号)为主码,则“学号”和“课程号”都不能取空值。
参照完整性
实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用。
外关键字(Foreign Key):
如果一个关系中的属性或属性组并非该关系的关键字,但它是另外一 个关系的关键字,则称其为该关系的外关键字。
定义:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
参照完整性:
若X是关系R1的外关键字(即X与某关系R2的主关键字相同),则X 的每个值必须在关系R2的主关键字中能找到,或者为空值。
定义:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(R和S不一定是不同的关系),则对于R中每个元组在F上的值 必须为:或者取空值;或者等于S中某个元组的主码值。
例如: Student sno SC cno Course
关系模式: Student SC Course
主关键字: sno (sno,cno) cno
外关键字: sno和cno各是一个
实体完整性: sno不能取空值 sno和cno都不能为空 cno不能取空值
参照完整性: sno必须是Student关系中已经有的值;
cno必须是Course关系中已经有的值。
用户定义完整性
实体和参照完整性是任何关系数据库系统都应该支持的,而用户定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
如某个属性必须取唯一值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在0-100之间等。
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
后面章节将专门讲数据库完整性相关内容。
关系代数
“Core” Relational Algebra
Extra Example Relations
传统的集合运算(详细见书p.56-57)
Selection
Projection
Product
Theta-Join
Example
Natural Join
除(Division)
给定关系R(X, Y) 和S(Y, Z), 其中X, Y, Z为属性组。定义:
P(X)= RS={ tr[X] | trR ∧ Y(S) Yx }
其中Yx 为x (=tr[X]) 在R中(关于属性组Y上)的象集。
除操作是同时从行和列角度进行运算。
Example
查询例子
关系代数总结
关系演算
关系演算语言ALPHA
元组关系演算(详细定义见书)
元组演算用表达式
{ t |φ(t)} /*表示了所有使φ为真的元组集合*/
表示。其中t为元组变元, φ(t)是由原子公式和算符组成的元组关系演算公式.
原子公式有三类:
R(t) 表示 t是R中的元组
R是 关系名, t是元组变量
t[i] u[j] 表示断言“元组t的第i个分量与元组u的第j个分量满足比较关系”
t[i] c或c t[i] 表示“t的第I个分量与常数c满足比较关系”
公式可以递归定义如下:
(1) 每个原子公式是公式。
(2) 如果l和 2是公式,则 1 2,l 2 , l也是公式。
(3) 若是公式,则t()也是公式。其中符号是存在量词符号, t()表示:
若有一个t使为真,则t()为真,否则t()为假。
(4) 若是公式,则 t()也是公式。其中符号是全称量词符号, t()表示:
如果对所有t,都使为真,则 t()为真,否则 t()为假。
(5)在元组演算公式中,各种运算符的优先次序为:
①算术比较运算符最高;
②量词次之,且的优先级高于的优先级;
③逻辑运算符最低,且的优先级高于的优先级, 的优先级高于的优先级;
④加括号时,括号中运算符优先,同一括号内的运算符之优先级遵循①,②, ③各项。
(6)有限次地使用上述五条规则得到的公式是元组关系演算公式,其他公式不是元组关系演算公式。
关系代数的运算均可以用关系演算表达式来表示(反之亦然)。下面用关系演算表达式来表示五种基本运算:
例子:
则:
(1){t | R(t)^t[2]=a}为:
(2){t | u ( R(t) ^S(u) ^t[1]<u[3] ^t[2]≠b )}为:
域关系演算语言QBE
QBE是Query By Example(即通过例子进行查询)的简称,其最突出的特点是它的操作方式。它是一种高度非过程化的基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,而查询结果也是以表格形式显示,因此非常直观,易学易用。
QBE中用示例元素来表示查询结果可能的情况,示例元素实质上就是域变量。QBE操作框架如图2.9所示。
QBE(详细见书) 例子:求信息系全体学生的姓名?
这里T是示例元素,它是这个域中可能的一个值,但不必真是查询结果中的元素。QBE要求示例元素下面一定要加下划线。IS是查询条件,不用加下划线。P.是操作符,表示打印(Print),实际上是显示输出。
域关系演算
域关系演算的表达式形式为:
{ x1x2┄xk | (x1,x2, ┄,xk) }
表示所有使得为真的那些x1,x2,…,xk组成的元组集合。其中x1,x2,…,xk为元组变量x的各个域(分量)变量, 是由原子公式和各种运算符组成的域演算公式。
原子公式
(1) R(x1,x2, ┄,xk)
表示由分量x1,x2, ┄,xk组成的元组属于
关系R。
(2) xiyj
表示域变量xi、yj 满足比较关系 。
(3) xic或cxi
表示域变量xi 与常量c满足比较关系 。
※ 公式构成同元组演算
例子
结果
展开