欢迎来到天天文库
浏览记录
ID:50047205
大小:361.50 KB
页数:30页
时间:2020-03-08
《数据库原理与SQL Server教程 教学课件 作者 王路群 第2章 关系数据库.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数据库原理及SQLServer第二章关系数据库第二章关系数据库2.1关系模型及其定义2.2关系的三类完整性约束2.3关系代数2.4SQL概述2021/8/4C++面向对象程序设计2.1关系模型及其定义2.1.1关系中的基本术语2.1.2关系的数学定义2.1.3关系模式的定义2.1.4关系操作2021/8/4C++面向对象程序设计2.1.1关系中的基本术语关系数据库应用数学方法来处理数据库中的数据,所以关系数据库与其他数据库相比具有突出的优点。关系数据库是目前应用最广泛的数据库。到目前,关系数据库系统的研究取得了辉煌的成就,涌现出许多性能良好的商品化关系数据库管理系统,
2、如著名的DB2、Oracle、Ingres、Sybase、Inforrnix等。关系数据库被广泛地应用于各个领域。2021/8/4C++面向对象程序设计2.1.1关系中的基本术语1.元组(Tuple)关系中除含有属性名所在行以外的其他行称做元组。2.属性(Attribute)关系中的每一列称为一个属性。3.候选键(CandidateKey)和主键(PrimaryKey)4.全键(All-Key)5.主属性(PrimeAttribute)和非主属性(Non-KeyAttribute)2021/8/4C++面向对象程序设计2.1.2关系的数学定义1.域(Domain)的定
3、义域是一组具有相同数据类型的值的集合。2.笛卡尔积(CartesianProduct)的定义给定一组域D1,D2,…,Dn,这些域中可以有相同的部分,则D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)∣di∈Di,i=1,2,…,n}2021/8/4C++面向对象程序设计2.1.2关系的数学定义笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。例如给出三个域:D1=姓名={张三,李四,王五}D2=性别={男,女}D3=年龄{18,19}则D1,D2,D3的笛卡尔积为:姓名性别年龄张三男18张三男19张三女18张
4、三女19李四男18李四男19李四女18李四女19王五男18王五男19王五女18王五女192021/8/4C++面向对象程序设计2.1.2关系的数学定义3.关系(Relation)的定义D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度(Degree)。当n=1时,称关系为单元关系(Unaryrelation)当n=2时,称关系为二元关系(Binaryrelation)关系是笛卡尔积的有限子集,所以关系也是一个二维表。2021/8/4C++面向对象程序设计2.1.3关系模式的定义关系模式
5、是对关系的描述,关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。2021/8/4C++面向对象程序设计2.1.3关系模式的定义关系的描述称为关系模式(RelationSchema)。它可以形式化地表示为:R(U,D,dom,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。关系模式通常可以简单记作:R(U)或R(A1,A2,…,An)其中R为关
6、系名,A1,A2,…,An为属性名。2021/8/4C++面向对象程序设计2.1.4关系操作关系的操作是用关系的操作语言DML来实现的,关系操作语言灵活、方便、表达能力强、功能也非常强大。关系操作分为数据查询、数据维护、数据控制。1.数据操作的特点(1)关系操作语言操作一体化。(2)关系操作的方式是一次一集合方式。(3)关系操作语言是高度非过程化的语言。2.关系操作语言的种类关系代数语言、关系演算语言、基于映像的语言2021/8/4C++面向对象程序设计2.2关系的三类完整性约束2.2.1实体完整性2.2.2参照完整性2.2.3用户自定义的完整性2021/8/4C++
7、面向对象程序设计2.2.1实体完整性关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,由关系系统自动支持。2021/8/4C++面向对象程序设计2.2.1实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。对于实体完整性规则,有几点说明如下:(1)实体完整性能够保证实体的唯一性(2)实体完整性能够保证实体的可区分性。2021/8/4C++面向对象程序设计2.2.2参照完整性外键和参照关系:设F是基本
此文档下载收益归作者所有