




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章关系模型,3.1关系模型的数据结构关系模型关系模型是目前数据库技术的主流数据模型。关系模型有着坚实的理论基础,可以保证关系模型的合理设计和有效实现。关系数据库,如DB2、Oracle、Sybase、SQLServer、Access等都是关系模型的数据库管理系统。关系数据库的数据由一系列关系组成,而关系是以人们熟悉的表格的形式组织和呈现数据的,使用简单易懂的语言实现复杂查询。关系模型适合处理规则的、结构化的数据。为适应传统数据处理领域以外的应用,如多媒体、网络大文本,大多数关系数据库管理系统对关系模型也进行了许多扩展。,1,关系模型的数据结构,关系的概念关系模型的基本组成单元是关系(relation)。通俗地讲,关系就是一张二维表。第一行是其余各行对应列的标题,称作属性或字段、列;而其余的行称为元组或记录。例,描述产品的关系Product,2,关系模型的数据结构,描述产品的关系Product,3,关系模型的数据结构,关系的数学定义域:具有相同数据类型的值的集合。笛卡尔积:域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=(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)关系:集合D1,D2,.,Dn的笛卡尔积的任一个子集称该集合上的一个关系(Relation)。集合D1,D2,.,Dn是关系中元组的取值范围,称为关系的域(domain);n叫做关系的度(degree)。,4,关系模型的数据结构,关系术语关系(Relation)二维表,关系用关系名标识,如关系r。元组(Tuple)表中的行,一般用变量tr表示t是关系r的一个元组。属性(Attribute)表中的一列,如列Ai,domAi表示属性Ai的域。分量(item)每个属性对应某一行的值。如t(pCode)表示t元组在pCode取值。键(Key,码)可以唯一地确定一个元组的属性组。,5,关系模型的数据结构,关系的性质(关系数据库中对关系的限定)列同质:每一列中的值是同类型的数据,来自同一个域。列无序:列的顺序是无关紧要的。行相异:任意二个元组不能完全相同。行无序:行的顺序是无关紧要的。原子性:关系中的每个分量都是原子值,是不可分的数据项。关于分量的取值分量取值来自于列规定的域。可以为空值(null)。空值有两种可能:未知:目前尚不知它的取值。如某产品403的成本。不存在:如描述客户的关系里,属性tcusTelNo是描述客户的手机号码的,某客户可能根本就没有手机,该属性值就不存在。Null的含义与字符串类属性如t(pType)=“”含义是不同的。,6,关系模型的数据结构,关系模式一个关系的内容是随时间的变化而变化的,关系实际上是关系的实例的简称。而关系模式是关于关系的型的描述。关系模式一般表示为:关系名(属性1:域,属性n:域)。如关系Product的关系模式为:Product(pCode:char(3),pType:char(10),pName:char(50),cost:real,price:real);或省略属性域的描述:Product(pCode,pType,pName,cost,real)数据库模式关系数据库是由若干互不相同的关系组成的;关系数据库模式则是由若干关系模式构成的。例:与某公司销售系统相关的另外两个关系:,7,关系模型的数据结构,关系模式Order(orderNo,custNo,orderDate,delivDate)Orderdetail(orderNo,pCode,qty,dicount)关系的一个实例:Order,8,关系模型的数据结构,Orderdetail,9,关系模型的数据结构,键设关系模式R(U),KU,r是R上的任一关系,若对r中的任意二个不同的元组t1、t2满足:(1)t1Kt2K;(2)若KK而t1Kt2K不成立。称K是R的键或候选键。若仅条件(1)成立,称K是R的超键。通俗地讲,键是那些能够唯一标识关系里每一行的属性或属性组。如果是属性组,该属性组的任一真子集不具此特性。为了方便存储和检索关系里的元组,需要为每个关系定义主键,任一候选键都可以定义为主键,选择的原则是:优先选择单一属性候选键。选择数量少的复合键。,10,关系模型的数据结构,外键外键是一个关系模式中的一个属性或属性组,它不是本关系的候选键,但它的值引用的是其它关系的键,或本关系的键。外键是表之间联系的体现方法。例1:某销售公司的两个关系模式:Orderdetail(orderNo,pCode,qty,discount)和Product(pCode,pType,pName,cost,price)Orderdetail的pCode,它本身不是Orderdetai的键,但它是模式Product的键。因此,它是Orderdetail的外键。例2:某大学教务系统的一个有关课程的关系模式如下:Course(courseNo,courseName,credit,hour,preCourseNo)preCourseNo不是本关系的键,但其值取自本关系的键courseNo,它是该关系的外键。,11,第四章关系模型,3.2关系模型的约束约束是施加在关系模式上的一些限制,规范数据库设计或DBMS可利用约束检查数据库中取值的正确性,最大限度地符合数据的语义。域完整性约束一个关系中某列的取值必须来自该属性的域。例:定义pCode的域为number(3),即包含3个数字的字符串,如果某元组分量取值t(pCode)=“all”,则违反域完整性约束。实体完整性约束是对主键属性的约束:每个关系模式都要定义一个主键;每个关系主键的取值不能为空。不同行主键不能相同。如果主键是属性组,则组内任何属性均不能为空。,12,关系模型的约束,参照完整性约束又称外键约束,约束的是两个关系之间属性的取值。一个关系的外键取值只允许两种情况:空。如果该属性的域定义允许其取值为空。所参照的关系的主键值。一般性约束这类约束不是所有关系模式都有的,与应用背景有关。例:Product(pCode,pType,pName,cost,price),要求pricecost。DBMS提供方法来定义和实施这些约束。(约束是一种数据库对象),Order,OrderDetail,13,第四章关系模型,3.3关系代数关系运算理论关系数据库的数据操纵语言(DML)分成查询和更新两大类。关于查询的理论称为关系运算理论,分为两类:关系代数:以集合运算为基础的查询操作。非过程性弱。关系演算:以谓词演算为基础的查询操作。非过程性强。过程性语言与非过程性语言C、Java等语言属于过程性语言,编程时必须给出获得结果的操作步骤,即给出“干什么”和“怎么干”。非过程性语言编程时只需指出需要什么信息,不必给出具体的操作步骤。即只要“干什么”即可。关系代数和关系演算均属于非过程性语言。以此为基础分别产生了关系数据库的SQL和QBE数据操纵语言。,14,关系代数,布尔运算关系可以看做元组的集合,那么集合的并、交、差等布尔运算都可以用到关系中。关系的布尔运算包括:并、交、差、广义笛卡尔积、除等。同类关系:若R和S是同类关系,则满足如下条件:(1)R和S具有相同的度;(2)R和S的对应属性定义在同一个域上。同类关系也称相容运算,布尔运算大多是在同类关系中进行的。,15,关系代数,并(Union)关系R和S的并其结果由属于R或属于S的所有元组组成,其结果为一个新关系。记为:Q=RS=t|tR或tS例:RS,R,S,16,关系代数,差(Difference)关系R和S的差由属于R但不属于S的所有元组组成。记为:Q=RS=t|tR但tS例:R-S,17,关系代数,交(Intersection)关系R和S的交其结果由既属于R又属于S的所有元组组成。记为:Q=RS=t|tR且tS例:RS,18,关系代数,笛卡尔积关系R和S的笛卡尔积为R中所有元组和S中所有元组的串接。结果关系的属性个数:k1+k2,其中k1和k2分别为R和S的属性数。结果关系的元组数:mn,其中m、n分别为R和S的元组数。R和S的笛卡尔积记为:Q=RS=t|t=trts,trR且tsS例:,R,S,19,关系代数,RS=,20,关系代数,选择选择是一个一元操作,它作用于一个关系上,根据给定的选择条件,从关系集合中选出复合条件的元组。语法:选择条件();选择的结果是一个与输入同模式的关系。选择条件是由算数比较表达式构成的布尔表达式。算数比较表达式:属性名常数或属性名或表达式是、100(Product),查询价格大于100元的产品。例2:pType“足球类”price100(Product),查找价格大于100的非足球类产品。查询结果:,21,关系代数,投影投影完成从一个关系中抽取其中的某些列的值,作为一个新关系输出。关系代数输出结果要去掉重复行。语法:属性表()例1:pType(Product),查询所有的产品种类。例2:pType,pName(price100(Product),先选择再投影。例3:price100(pType,price(Product),先投影再选择。,22,关系代数,复合运算例子例1:选择、投影后并操作,查询价格大于100元或属于游泳类的产品名称和价格。pName,price(price100(Product)pName,price(pType=“游泳类”(Product)例2:选择、投影后交运算,查找那些被购买过的且价格大于100的产品编号。pCode(price100(Product)pCode(Orderdetail),23,关系代数,例3:选择结果作笛卡尔积pCode,pName
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轻巧夺冠高二数学试卷
- 烟囱道施工方案(3篇)
- 活动策划方案100字开头(3篇)
- 水泵销售促销活动方案策划(3篇)
- 餐饮开学季活动策划方案(3篇)
- 北京市朝阳区2023-2024学年七年级上学期期末质量监测历史试卷及答案
- 安徽省芜湖市繁昌区2023-2024学年高一下学期第一次月考语文试题含参考答案
- 2025年7月安恒信息网络安全月报(精简版)
- 小学学霸作业题目及答案
- 在线教育课程制作指南
- 跨境监管合作模式-洞察及研究
- GB/T 2423.21-2025环境试验第2部分:试验方法试验M:低气压
- (2025)工会知识竞赛题库含参考答案
- 支气管哮喘临床课件
- 七夕餐厅营销活动方案策划
- 急诊课件胸痛
- 2025-2026学年北师大版(2024)小学数学三年级上册教学计划及进度表
- 企业员工激励奖励制度完整方案
- 2025医学基础知识试题(附答案)
- 电磁频谱管控策略-洞察及研究
- 2025年江苏省高考政治试题与参考答案
评论
0/150
提交评论