关系模型ppt课件_第1页
关系模型ppt课件_第2页
关系模型ppt课件_第3页
关系模型ppt课件_第4页
关系模型ppt课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第三章 关系模型,3.1 关系模型的数据结构 关系模型 关系模型是目前数据库技术的主流数据模型。关系模型有着坚实的理论基础,可以保证关系模型的合理设计和有效实现。 关系数据库,如DB2、Oracle、Sybase、SQL Server、Access等都是关系模型的数据库管理系统。 关系数据库的数据由一系列关系组成,而关系是以人们熟悉的表格的形式组织和呈现数据的,使用简单易懂的语言实现复杂查询。 关系模型适合处理规则的、结构化的数据。为适应传统数据处理领域以外的应用,如多媒体、网络大文本,大多数关系数据库管理系统对关系模型也进行了许多扩展,2,关系模型的数据结构,关系的概念 关系模型的基本组

2、成单元是关系(relation)。通俗地讲,关系就是一张二维表。 第一行是其余各行对应列的标题,称作属性或字段、列;而其余的行称为元组或记录。 例,描述产品的关系Product,3,关系模型的数据结构,描述产品的关系Product,4,关系模型的数据结构,关系的数学定义 域:具有相同数据类型的值的集合。 笛卡尔积:域 D1,D2,.,Dn 的笛卡尔积为: D1D2.Dn =(d1,d2,.,dn)diDi,i=1,2,.,n 。 其中每一个元素(d1,d2,.,dn)叫做一个n元组(n-tuple),元素中第i个值di叫做第i个分量。 例:设D1 =1,2,3, D2 =a,b,则 D1D2

3、=(1,a),(1,b),(2,a),(2,b),(3,a),(3,b) 关系:集合D1,D2,.,Dn的笛卡尔积的任一个子集称该集合上的一个关系(Relation)。 集合 D1,D2,.,Dn 是关系中元组的取值范围,称为关系的域(domain);n叫做关系的度(degree,5,关系模型的数据结构,关系术语 关系(Relation) 二维表,关系用关系名标识,如关系 r。 元组(Tuple) 表中的行,一般用变量 tr表示t是关系r的一个元组。 属性(Attribute) 表中的一列,如列Ai, domAi表示属性Ai的域 。 分量(item) 每个属性对应某一行的值。如t(pCode)

4、表示t元组在pCode取值。 键(Key,码) 可以唯一地确定一个元组的属性组,6,关系模型的数据结构,关系的性质 (关系数据库中对关系的限定) 列同质:每一列中的值是同类型的数据,来自同一个域。 列无序:列的顺序是无关紧要的。 行相异:任意二个元组不能完全相同。 行无序:行的顺序是无关紧要的。 原子性:关系中的每个分量都是原子值,是不可分的数据项。 关于分量的取值 分量取值来自于列规定的域。可以为空值(null)。 空值有两种可能: 未知:目前尚不知它的取值。如某产品403的成本。 不存在:如描述客户的关系里,属性tcusTelNo是描述客户的手机号码的,某客户可能根本就没有手机,该属性值就

5、不存在。 Null的含义与字符串类属性如t(pType)=“”含义是不同的,7,关系模型的数据结构,关系模式 一个关系的内容是随时间的变化而变化的,关系实际上是关系的实例的简称。而关系模式是关于关系的型的描述。 关系模式一般表示为:关系名(属性1:域,属性n:域)。如关系Product 的关系模式为: Product(pCode:char(3),pType:char(10),pName:char(50),cost:real,price:real) ; 或省略属性域的描述:Product(pCode,pType,pName,cost,real) 数据库模式 关系数据库是由若干互不相同的关系组成的

6、; 关系数据库模式则是由若干关系模式构成的。 例:与某公司销售系统相关的另外两个关系,8,关系模型的数据结构,关系模式Order(orderNo,custNo,orderDate,delivDate) Orderdetail(orderNo,pCode,qty,dicount) 关系的一个实例: Order,9,关系模型的数据结构,Orderdetail,10,关系模型的数据结构,键 设关系模式R(U),K U,r是R上的任一关系,若对r中的任意二个不同的元组t1、t2满足: (1) t1K t2K; (2) 若 K K 而t1K t2K 不成立。 称K是R的键或候选键。若仅条件(1)成立,称

7、K是R的超键。 通俗地讲,键是那些能够唯一标识关系里每一行的属性或属性组。如果是属性组,该属性组的任一真子集不具此特性。 为了方便存储和检索关系里的元组,需要为每个关系定义主键,任一候选键都可以定义为主键,选择的原则是: 优先选择单一属性候选键。 选择数量少的复合键,11,关系模型的数据结构,外键 外键是一个关系模式中的一个属性或属性组,它不是本关系的候选键,但它的值引用的是其它关系的键,或本关系的键。 外键是表之间联系的体现方法。 例1:某销售公司的两个关系模式:Orderdetail(orderNo,pCode,qty,discount)和 Product(pCode,pType,pNam

8、e,cost,price) Orderdetail的pCode,它本身不是Orderdetai的键,但它是模式Product的键。因此,它是Orderdetail的外键。 例2:某大学教务系统的一个有关课程的关系模式如下: Course(courseNo,courseName,credit,hour,preCourseNo) preCourseNo不是本关系的键,但其值取自本关系的键courseNo,它是该关系的外键,12,第四章 关系模型,3.2 关系模型的约束 约束是施加在关系模式上的一些限制,规范数据库设计或DBMS可利用约束检查数据库中取值的正确性,最大限度地符合数据的语义。 域完整性

9、约束 一个关系中某列的取值必须来自该属性的域。 例:定义pCode的域为number(3),即包含3个数字的字符串,如果某元组分量取值t(pCode)=“all”,则违反域完整性约束。 实体完整性约束 是对主键属性的约束:每个关系模式都要定义一个主键;每个关系主键的取值不能为空。不同行主键不能相同。 如果主键是属性组,则组内任何属性均不能为空,13,关系模型的约束,参照完整性约束 又称外键约束,约束的是两个关系之间属性的取值。 一个关系的外键取值只允许两种情况: 空。如果该属性的域定义允许其取值为空。 所参照的关系的主键值。 一般性约束 这类约束不是所有关系模式都有的,与应用背景有关。 例:P

10、roduct(pCode,pType,pName,cost,price),要求pricecost。 DBMS提供方法来定义和实施这些约束。(约束是一种数据库对象,Order,OrderDetail,14,第四章 关系模型,3.3 关系代数 关系运算理论 关系数据库的数据操纵语言(DML)分成查询和更新两大类。关于查询的理论称为关系运算理论,分为两类: 关系代数:以集合运算为基础的查询操作。非过程性弱。 关系演算:以谓词演算为基础的查询操作。非过程性强。 过程性语言与非过程性语言 C、Java等语言属于过程性语言,编程时必须给出获得结果的操作步骤,即给出“干什么”和“怎么干”。 非过程性语言编程

11、时只需指出需要什么信息,不必给出具体的操作步骤。即只要“干什么”即可。 关系代数和关系演算均属于非过程性语言。以此为基础分别产生了关系数据库的SQL和QBE数据操纵语言,15,关系代数,布尔运算 关系可以看做元组的集合,那么集合的并、交、差等布尔运算都可以用到关系中。 关系的布尔运算包括:并、交、差、广义笛卡尔积、除等。 同类关系:若R和S是同类关系,则满足如下条件: (1)R和S具有相同的度; (2)R和S的对应属性定义在同一个域上。 同类关系也称相容运算,布尔运算大多是在同类关系中进行的,16,关系代数,并(Union) 关系R和S的并其结果由属于R或属于S的所有元组组成,其结果为一个新关

12、系。记为: Q = RS = t | t R 或 t S 例: RS,R,S,17,关系代数,差( Difference) 关系R和S的差由属于R但不属于S的所有元组组成。 记为: Q = RS = t | t R 但 t S 例:R-S,18,关系代数,交(Intersection) 关系R和S的交其结果由既属于R又属于S的所有元组组成。 记为: Q = RS = t | t R 且 t S 例:R S,19,关系代数,笛卡尔积 关系R和S的笛卡尔积为R中所有元组和S中所有元组的串接。 结果关系的属性个数:k1+k2 ,其中k1和k2分别为R和S的属性数。 结果关系的元组数:mn ,其中m、

13、n分别为R和S的元组数。 R和S的笛卡尔积记为: Q = R S = t |t =trts,trR 且 tsS 例,R,S,20,关系代数,R S,21,关系代数,选择 选择是一个一元操作,它作用于一个关系上,根据给定的选择条件,从关系集合中选出复合条件的元组。 语法:选择条件();选择的结果是一个与输入同模式的关系。 选择条件是由算数比较表达式构成的布尔表达式。 算数比较表达式:属性名常数或属性名或表达式 是、 、100(Product),查询价格大于100元的产品。 例2: pType “足球类”price100(Product),查找价格大于100的非足球类产品。查询结果,22,关系代数

14、,投影 投影完成从一个关系中抽取其中的某些列的值,作为一个新关系输出。关系代数输出结果要去掉重复行。 语法:属性表() 例1: pType(Product),查询所有的产品种类。 例2: pType,pName(price100(Product),先选择再投影。 例3: price100(pType,price( Product),先投影再选择,23,关系代数,复合运算例子 例1:选择、投影后并操作,查询价格大于100元或属于游泳类的产品名称和价格。 pName,price(price100(Product) pName,price( pType=“游泳类” (Product) 例2:选择、投

15、影后交运算,查找那些被购买过的且价格大于100的产品编号。 pCode(price100(Product) pCode(Orderdetail,24,关系代数,例3:选择结果作笛卡尔积 pCode,pName(price120(Product) qty200(Orderdetail,25,关系代数,连接 连接从两个关系中抽取数据,等价于笛卡儿积和选择、投影组合起来的结果。是使用最频繁的运算之一。 连接 语法:r cs ,c= AiBj是连接条件,Ai和Bj是分别来自两个关系的属性,或属性和常数组成的表达式;是、 、 、=、 等算术比较运算符。 等连接:为=时。 自然连接:等连接且=两边的属性名

16、相同。此时,连接条件可省略,记为r s 。 自然连接是使用最普遍的一种运算。 多数情况下进行连接的两个是通过主、外键属性连接的。 利用投影、选择和自然连接可以任意分解和构造关系,26,关系代数,例1:查找曾经以低于成本价销售过的产品。 pCode,pName,cost,price,discount(Product (price*(1-discount)cost) (product.pCode=orderdetail.pCode)Orderdetail) 例2:多表连接查询,这是自然连接,连接属性pCode和orderNo。 pCode,pName(pType=“足球类”(Product) Or

17、derdetail orderNo,orderDate(Order,27,关系代数,外连接 在连接操作中,两个关系中只有符合连接条件的元组被输出。外连接保留不满足条件的某些元组也输出。 左外连接:r cs :除满足条件c的元组外,r中的行全部输出。 例:查找所有羽毛球类产品信息,如果被购买过,显示其销售信息。 (pType=“羽毛球类”(Product) Orderdetai 右外连接: r cs :除满足条件c的元组外,s中的行全部输出。 全外连接:r cs:保留r,s的所有元组。(但与笛卡尔积不同,28,第四章 关系模型,3.4 关系演算 把数理逻辑的谓词演算应用到关系运算中,就是关系演算

18、运算。 元组关系演算:以元组为变量。 域关系演算:以域为变量。 元组关系演算: 表达式:t|P(t),P(t)是公式。原子公式有3种情况: tr,即t是r的一个元组。 txuy,t元组在x上的属性与u元组在y上的属性运算。 txc,c是属性x的域中的一个常量。 由原子公式经存在谓词和全程量词施加约束、由布尔变量连接成公式P(t,29,关系演算,例1:查看价格大于100元的产品的名称和价格。 t|uProduct (u(price100tpName=upName tprice=uprice) 例2:查找那些没有被购买过的产品的编号。 t|uProduct (tpCode=upCodewOrdedetail (tpCode =wpCode) 域关系演算 表达式:|P(x1,x2,xn),xi是域变量,P是公式。 原子公式也有3种情况: r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论