数据库 第2章 关系模型

上传人:jiups****uk12 文档编号:56664599 上传时间:2018-10-14 格式:PPT 页数:76 大小:5.39MB
返回 下载 相关 举报
数据库 第2章 关系模型_第1页
第1页 / 共76页
数据库 第2章 关系模型_第2页
第2页 / 共76页
数据库 第2章 关系模型_第3页
第3页 / 共76页
数据库 第2章 关系模型_第4页
第4页 / 共76页
数据库 第2章 关系模型_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《数据库 第2章 关系模型》由会员分享,可在线阅读,更多相关《数据库 第2章 关系模型(76页珍藏版)》请在金锄头文库上搜索。

1、第二章 关系模型,学习关系模型的理论基础理解关系与非关系表区别学习基本的关系术语了解主键、外键、代理键以及参照完整性理解主键、外键如何表示关系参照约束学习关系的操作运算学习函数依赖的含义理解规范化关系的过程,【学习目标】,1970年,IBM的研究员E.F.Codd博士在刊物Communication of the ACM上发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的论文,提出了关系模型的概念,建立了关系模型的理论基础。后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,进一步奠定了关系数据

2、库的数学理论基础。关系模型以关系代数理论为数学基础,将数据操作抽象为关系处理,原理简单清晰,便于理解和使用。关系模型在当今几乎所有商业数据库中得到应用。,2.1 关系概念,一、关系模型提出,实体(entity)事物数据对象在概念模型世界中的抽象表示形式。,实体名称,实体属性,雇员(EMPLOYEE),企业信息系统中“雇员(EMPLOYEE)”实体表示如下。,二、实体、关系的概念,1. 实体,在关系模型中,使用“关系”来存储“实体”中的数据。,关系(relation)是指存放实体数据的二维表。,“EMPLOYEE”关系表,2. 关系,3. 关系特征,行存储实体的个体数据列存储所有实体个体属性的数

3、据表中单元格存储单个值每列的所有实体个体数据类型一致每列具有唯一名称列顺序可任意行顺序可任意任意两行互不重复,行或元组,列或属性,问题: 关系是存放实体数据的二维表,二维表是关系吗?,4. 关系与非关系示例,表单元有多个条目值,下表是关系吗?,非关系表,Email列中的条目类型不一致,下表是关系吗?,非关系表,下表是关系吗?,列值长度变化的关系,三、关系的数学定义,1. 关系,定义: 在集合域 D1、Dn 上的关系 R 是指该集合域笛卡儿积的有意义子集,写成 R D1 Dn。,例 给定两个域:D1 = 1,2,3和D2 = 一,二,三,这两个域的笛卡尔积是一个由9个二元组组成的集合:D1 D2

4、 = (1,一),(1,二),(1,三),(2,一),(2,二),(2,三),(3,一),(3,二),(3,三),DIGIT,如果定义一个阿拉伯数字与其对应的汉字数字在一起才有意义,那么上面9个二元组中只有3个是有意义的,将这种关系取名为“DIGIT”,则可得,2. 关系表的语句表示,RELATION_NAME (Colunm01, Colunm02, ,LastColunm),关系名称,属性名,EMPLOYEE (EmployeeNumber,FirstNmae,LastName,Department,Email,Phone),关系表的语句表示为:,EMPLOYEE关系,问题: 若给出关系的

5、语句表示,是否可得到二维表?,STUDENT (StuNumber,Name,Age,Department,Phone),例 某关系的语句表示为:,STUDENT,结论: 关系可以采用语句表示二维表,表术语,行,列,四、术语说明,关系术语,元组,属性,文件术语,记录,字段,几组等价术语,问题:什么是关系数据库?,采用关系数据模型组织、存储和管理数据的数据库。,一、键概念,2.2 键的类型,键(key)是指关系中用来唯一标识元组的单个列或多列。,键,非键,二、复合键,复合键(key)是指关系中用来唯一标识元组的多列。,(学号,课程编号)复合键,三、候选键与主键,候选键关系中可能有多个键,每个都是

6、候选键。,候选键,候选键,候选键,主键与候选键关系: 主键(Primary key)也是候选键之一,关系表可以有多个候选键,但只能定义一个主键。,四、定义主键方法,EMPLOYEE (EmployeeNumber,FirstNmae,LastName,Department,Email,Phone),在关系语句中的定义:,主键作用:唯一标识关系的每行作为关联表的外键,链接两个表使用主键值来组织关系的存储使用主键索引快速检索数据,实例操作:在Microsoft SQL Server中定义主键,五、代理键,代理键采用DBMS自动生成的数字序列作为关系表的主键。,PROPERTY (Street,Ci

7、ty,State,ZIP,OwnerID) 该主键涉及属性字段较多,并且不是数字,不是理想的主键。,例,PROPERTY (PropertyID,Street,City,State,ZIP,OwnerID) 使用代理键可以方便地标识记录行,其键值为数字序列值,并且不会改变。,说明: 代理键的值对用户没有任何意义,通常需要在表单或报表中隐藏它们。,代理键有什么用途?,由DBMS自动生成的数字序列作为主键,可替代复合主键。,实例操作:在Microsoft SQL Server中定义代理键,六、外键与参照完整性约束,外键在关联的两个关系中,它们具有一个或多个相同属性。若它在第一个关系中作为主键,则在

8、第二个关系中作为外键(Foreign key)。,主键,外键,参照完整性是指外键取值必须与现有主键值对应。,这两个关系的语句描述如下:,EMPLOYEE(EmployeeNumber,FirstName,LastName,Department,Email,Phone),DEPARTMENT(DepartmentName,BudgeCode,OfficeNumber,DepartmentPhone),参照完整性约束:EMPLOYEE表的Department列值必须与DEPARTMENT表中的DepartmentName值匹配。,例,参照完整性约束表示,外键,主键,课程培训数据库结构如下:,CUS

9、TOMER(CustomerNumber,CustomerName,Phone),参照完整性约束: 1)ENROLLMENT表中的CustomerNumber的列值必须与CUSTOMER表中的CustomerNumber值匹配。 2)ENROLLMENT表中的CourseNumber的列值必须与COURSE表中的CourseNumber值匹配。,例,外键,主键,COURSE(CourseNumber,Course,CourseDate,Fee),ENROLLMENT(CustomerNumber, CourseNumber,AmountPaid),主键,外键,实例操作:在Microsoft A

10、ccess中定义参照完整性,在关系表定义中,主键属性不允许空值(Null),即必须有具体值。其它属性可以允许空值。,七、空值,Teacher关系表定义,NULL值,衣帽商品信息,说明:NULL值只是代表该属性可以没有具体值,它与零值、空格字符、Tab字符是不同的。,问题:,1. 主键与候选键区别,2. 代理键如何获得值,3. 如何理解参照完整性,4. 主键与外键的列名是否必须相同,5. 外键属性允许空值吗?,一、关系模型组成,关系模型(Relation Model)是一种基于二维表格结构表达数据实体及实体间联系的数据模型。,2.3 关系模型描述,1. 数据结构,采用具有关系特征的二维表描述数据

11、关系。,基于关系代数的数据集合操作,如选择、投影、交、并、差、连接等。,2. 数据操作,具体在关系数据库表中的操作:查询(Select)插入(Insert)修改(Update)删除(Delete),关系表中数据完整性、表之间数据一致性等要求。具体是由业务需求来确定。,3. 数据关系约束,具体在关系数据库表中的约束:属性列取值类型属性列取值范围属性列取值是否唯一属性列是否允许空值关联表的参照完整性约束,二、关系操作,R关系、S关系的数据定义,1.关系“并运算”操作,RS=t|tRtS,2.关系“差运算-”操作,RS=t|tRtS,3.关系“交运算”操作,RS=t|tRtS,问题:,1. 如何理解

12、关系数据的选择操作?,2. 如何理解关系数据的投影操作?,一、函数依赖,2.4 函数依赖与规范化,例1 购买多盒曲奇饼干的价格计算:,CookieCost = NumberofBoxes $5,购买多盒曲奇饼干的价格CookieCost依赖于购买数量NumberofBoxes,函数依赖表示为: NumberofBoxes CookieCost,也可以称为购买数量NumberofBoxes决定价格CookieCost,例2 商品订单价格计算:,ExtendedPrice= Quantity UnitPrice,订单价格ExtendedPrice函数依赖于Quantity 和 UnitPrice,

13、函数依赖表达式为: (Quantity, UnitPrice) ExtendedPrice,也可以称为(Quantity, UnitPrice)复合决定价格ExtendedPrice,例3 物品袋关系:,一个袋子装有红、黄、蓝三种物品,其中红色物品重5磅、黄色物品重7磅、蓝色物品重3磅。,函数依赖表达式为: ObjectColor Weight,若还知道红色物品是圆的,蓝色物品是方的,黄色物品也是方的,就可以得到如下依赖关系。,ObjectColor Shape,将上述两个关系合并在一起,可表示为,ObjectColor ( Weight,Shape),将上述函数定义为关系OBJECT,可表示

14、为: OBJECT(ObiectColor, Weight, Shape),结论: 在OBJECT关系中,属性(Weight,Shape)依赖于主键ObjectColor,练习:针对下面的CUSTOMER关系中,请给出函数依赖表达式,关系:CUSTOMER(CustomerNumber, CustomerName, Phone),函数依赖表达式: CustomerNumber (CustomerName, Phone),二、主键与候选键其它定义,主键(Primary key)是指关系中一个或多个可以通过函数决定其他所有属性的属性。,EmployeeNumber (FirstName, Last

15、Name,Department,Email,Phone),候选键:,EMPLOYEE关系,Email (EmployeeNumber,FirstName, LastName,Department,Phone),(FirstName, LastName,Department) (EmployeeNumber,Email,Phone),同样,有候选键,从上述三个候选键中,可以选出一个最有代表性的候选键作为主键,EmployeeNumber (FirstName, LastName,Department,Email,Phone),三、关系规范化,在数据库设计中,一个关系(表)是否规范决定了该关系的数

16、据访问操作是否存在问题。,学生活动信息表,3)记录插入异常,如希望插入一条记录:(学号:20060110,姓名:张权,住址:04-305,性别:男),1)删除异常,由于某种原因,表中需要删除“陈文”活动信息,2)修改复杂,由于某种原因,需要修改活动号003的“羽毛球”改为“体操”。,该数据库表访操作存在如下异常:,由于该生没有参加娱乐活动,不能将该记录插入信息表。,将删除活动号为6的乒乓球信息。,这需要修改数据表中的多条记录。这存在修改的复杂性。,数据库表具有多个主题(学生信息、体育活动),即有多个函数依赖关系在同一表内。,造成数据库表访问异常原因:,学号 (姓名,住址,性别),活动号 (活动名称),结论: 在数据库表(关系)中,若属性之间存在多个函数依赖关系,则该关系表不规范。,四、关系设计原则,良好结构关系的设计原则: 在关系中,每个函数依赖关系的决定因子都必须是候选键 对于任何违反上述原则的关系,应当将其分解为两个或多个符合该原则的关系。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号