




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章关系模型 学习关系模型的理论基础理解关系与非关系表区别学习基本的关系术语了解主键 外键 代理键以及参照完整性理解主键 外键如何表示关系参照约束学习关系的操作运算学习函数依赖的含义理解规范化关系的过程 学习目标 1970年 IBM的研究员E F Codd博士在刊物 CommunicationoftheACM 上发表了一篇名为 ARelationalModelofDataforLargeSharedDataBanks 的论文 提出了关系模型的概念 建立了关系模型的理论基础 后来Codd又陆续发表多篇文章 论述了范式理论和衡量关系系统的12条标准 进一步奠定了关系数据库的数学理论基础 关系模型以关系代数理论为数学基础 将数据操作抽象为关系处理 原理简单清晰 便于理解和使用 关系模型在当今几乎所有商业数据库中得到应用 2 1关系概念 一 关系模型提出 实体 entity 事物数据对象在概念模型世界中的抽象表示形式 实体名称 实体属性 雇员 EMPLOYEE 企业信息系统中 雇员 EMPLOYEE 实体表示如下 二 实体 关系的概念 1 实体 在关系模型中 使用 关系 来存储 实体 中的数据 关系 relation 是指存放实体数据的二维表 EMPLOYEE 关系表 2 关系 3 关系特征 行存储实体的个体数据列存储所有实体个体属性的数据表中单元格存储单个值每列的所有实体个体数据类型一致每列具有唯一名称列顺序可任意行顺序可任意任意两行互不重复 行或元组 列或属性 问题 关系是存放实体数据的二维表 二维表是关系吗 4 关系与非关系示例 表单元有多个条目值 下表是关系吗 非关系表 Email列中的条目类型不一致 下表是关系吗 非关系表 下表是关系吗 列值长度变化的关系 三 关系的数学定义 1 关系 定义 在集合域D1 Dn上的关系R是指该集合域笛卡儿积的有意义子集 写成R D1 Dn 例给定两个域 D1 1 2 3 和D2 一 二 三 这两个域的笛卡尔积是一个由9个二元组组成的集合 D1 D2 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关系 问题 若给出关系的语句表示 是否可得到二维表 STUDENT StuNumber Name Age Department Phone 例某关系的语句表示为 STUDENT 结论 关系可以采用语句表示二维表 表 术语 行 列 四 术语说明 关系 术语 元组 属性 文件 术语 记录 字段 几组等价术语 问题 什么是关系数据库 采用关系数据模型组织 存储和管理数据的数据库 一 键概念 2 2键的类型 键 key 是指关系中用来唯一标识元组的单个列或多列 键 非键 二 复合键 复合键 key 是指关系中用来唯一标识元组的多列 学号 课程编号 复合键 三 候选键与主键 候选键 关系中可能有多个键 每个都是候选键 候选键 候选键 候选键 主键与候选键关系 主键 Primarykey 也是候选键之一 关系表可以有多个候选键 但只能定义一个主键 四 定义主键方法 EMPLOYEE EmployeeNumber FirstNmae LastName Department Email Phone 在关系语句中的定义 主键作用 唯一标识关系的每行作为关联表的外键 链接两个表使用主键值来组织关系的存储使用主键索引快速检索数据 实例操作 在MicrosoftSQLServer中定义主键 五 代理键 代理键 采用DBMS自动生成的数字序列作为关系表的主键 PROPERTY Street City State ZIP OwnerID 该主键涉及属性字段较多 并且不是数字 不是理想的主键 例 PROPERTY PropertyID Street City State ZIP OwnerID 使用代理键可以方便地标识记录行 其键值为数字序列值 并且不会改变 说明 代理键的值对用户没有任何意义 通常需要在表单或报表中隐藏它们 代理键有什么用途 由DBMS自动生成的数字序列作为主键 可替代复合主键 实例操作 在MicrosoftSQLServer中定义代理键 六 外键与参照完整性约束 外键 在关联的两个关系中 它们具有一个或多个相同属性 若它在第一个关系中作为主键 则在第二个关系中作为外键 Foreignkey 主键 外键 参照完整性是指外键取值必须与现有主键值对应 这两个关系的语句描述如下 EMPLOYEE EmployeeNumber FirstName LastName Department Email Phone DEPARTMENT DepartmentName BudgeCode OfficeNumber DepartmentPhone 参照完整性约束 EMPLOYEE表的Department列值必须与DEPARTMENT表中的DepartmentName值匹配 例 参照完整性约束表示 外键 主键 课程培训数据库结构如下 CUSTOMER CustomerNumber CustomerName Phone 参照完整性约束 1 ENROLLMENT表中的CustomerNumber的列值必须与CUSTOMER表中的CustomerNumber值匹配 2 ENROLLMENT表中的CourseNumber的列值必须与COURSE表中的CourseNumber值匹配 例 外键 主键 COURSE CourseNumber Course CourseDate Fee ENROLLMENT CustomerNumber CourseNumber AmountPaid 主键 外键 实例操作 在MicrosoftAccess中定义参照完整性 在关系表定义中 主键属性不允许空值 Null 即必须有具体值 其它属性可以允许空值 七 空值 Teacher关系表定义 NULL值 衣帽商品信息 说明 NULL值只是代表该属性可以没有具体值 它与零值 空格字符 Tab字符是不同的 问题 1 主键与候选键区别 2 代理键如何获得值 3 如何理解参照完整性 4 主键与外键的列名是否必须相同 5 外键属性允许空值吗 一 关系模型组成 关系模型 RelationModel 是一种基于二维表格结构表达数据实体及实体间联系的数据模型 2 3关系模型描述 1 数据结构 采用具有关系特征的二维表描述数据关系 基于关系代数的数据集合操作 如选择 投影 交 并 差 连接等 2 数据操作 具体在关系数据库表中的操作 查询 Select 插入 Insert 修改 Update 删除 Delete 关系表中数据完整性 表之间数据一致性等要求 具体是由业务需求来确定 3 数据关系约束 具体在关系数据库表中的约束 属性列取值类型属性列取值范围属性列取值是否唯一属性列是否允许空值关联表的参照完整性约束 二 关系操作 R关系 S关系的数据定义 1 关系 并运算 操作 R S t t R t S 2 关系 差运算 操作 R S t t R t S 3 关系 交运算 操作 R S t t R t S 问题 1 如何理解关系数据的选择操作 2 如何理解关系数据的投影操作 一 函数依赖 2 4函数依赖与规范化 例1购买多盒曲奇饼干的价格计算 CookieCost NumberofBoxes 5 购买多盒曲奇饼干的价格CookieCost依赖于购买数量NumberofBoxes 函数依赖表示为 NumberofBoxes CookieCost 也可以称为购买数量NumberofBoxes决定价格CookieCost 例2商品订单价格计算 ExtendedPrice Quantity UnitPrice 订单价格ExtendedPrice函数依赖于Quantity和UnitPrice 函数依赖表达式为 Quantity UnitPrice ExtendedPrice 也可以称为 Quantity UnitPrice 复合决定价格ExtendedPrice 例3物品袋关系 一个袋子装有红 黄 蓝三种物品 其中红色物品重5磅 黄色物品重7磅 蓝色物品重3磅 函数依赖表达式为 ObjectColor Weight 若还知道红色物品是圆的 蓝色物品是方的 黄色物品也是方的 就可以得到如下依赖关系 ObjectColor Shape 将上述两个关系合并在一起 可表示为 ObjectColor Weight Shape 将上述函数定义为关系OBJECT 可表示为 OBJECT ObiectColor Weight Shape 结论 在OBJECT关系中 属性 Weight Shape 依赖于主键ObjectColor 练习 针对下面的CUSTOMER关系中 请给出函数依赖表达式 关系 CUSTOMER CustomerNumber CustomerName Phone 函数依赖表达式 CustomerNumber CustomerName Phone 二 主键与候选键其它定义 主键 Primarykey 是指关系中一个或多个可以通过函数决定其他所有属性的属性 EmployeeNumber FirstName LastName Department Email Phone 候选键 EMPLOYEE关系 Email EmployeeNumber FirstName LastName Department Phone FirstName LastName Department EmployeeNumber Email Phone 同样 有候选键 从上述三个候选键中 可以选出一个最有代表性的候选键作为主键 EmployeeNumber FirstName LastName Department Email Phone 三 关系规范化 在数据库设计中 一个关系 表 是否规范决定了该关系的数据访问操作是否存在问题 学生活动信息表 3 记录插入异常 如希望插入一条记录 学号 20060110 姓名 张权 住址 04 305 性别 男 1 删除异常 由于某种原因 表中需要删除 陈文 活动信息 2 修改复杂 由于某种原因 需要修改活动号003的 羽毛球 改为 体操 该数据库表访操作存在如下异常 由于该生没有参加娱乐活动 不能将该记录插入信息表 将删除活动号为6的乒乓球信息 这需要修改数据表中的多条记录 这存在修改的复杂性 数据库表具有多个主题 学生信息 体育活动 即有多个函数依赖关系在同一表内 造成数据库表访问异常原因 学号 姓名 住址 性别 活动号 活动名称 结论 在数据库表 关系 中 若属性之间存在多个函数依赖关系 则该关系表不规范 四 关系设计原则 良好结构关系的设计原则 在关系中 每个函数依赖关系的决定因子都必须是候选键对于任何违反上述原则的关系 应当将其分解为两个或多个符合该原则的关系 规范化 将一个具有多个主题的表或关系分割为一组表 使得每个表只有一个主题 规范化程度 第一范式 第二范式 第三范式 Boycc Codd范式 第四范式 第五范式 五 规范化过程 在数据库设计中 按照关系设计原则 规范化关系 确认关系的所有候选键确认关系中的所有函数依赖关系检查函数依赖关系的决定因子 如果有某个决定因子不是候选键 则关系就存在规范化问题 按下列方法处理 在它们自己的新关系中放置具有函数依赖关系的列让函数依赖关系的决定因子成为新关系的候选键将决定因子的副本作为原始关系中的外键在新关系和原始关系中创建参照完整性约束根据需要 多次重复步骤3 直到每个关系的决定因子都是候选键 例1 学生公寓STU DORM StudentNumber StudentName DormName DormCost 步骤1 确定关系的所有候选键 StudentNumber 学号 为唯一候选键 步骤2 确定关系的所有函数依赖 StudentNumber为其它属性的决定因子 即关系存在函数依赖StudentNumber StudentName DormName DormCost DormName 宿舍名 作为决定因子 确定DormCost 住宿价格 即关系也存在函数依赖DormName DormCost 步骤3 检查是否存在一些非候选键的决定因子 DormName为非候选键决定因子 关系存在非规范化问题 规范化处理 将关系按决定因子主题进行撤分处理 STU DORM StudentNumber StudentName DormName DORM DormName DormCost 主键 主键 外键 参照完整性约束 STU DORM中的DormName的值必须在DORM的DormName有对应项 STU DORM关系 DORM关系 步骤4 检查是否每个关系的决定因子都是候选键 若是 则达到规范 练习1 EMPLOYEE EmployeeNumber LastName Email Depratment DeptPhone 步骤1 确定关系的所有候选键 EmployeeNumber和Email都为候选键 步骤2 确定关系的所有函数依赖 EmployeeNumber作为决定因子 确定所有属性 即存在函数依赖EmployeeNumber LastName Email Department DeptPhone Department作为决定因子 确定DepartPhone 也存在函数依赖Department DepartPhone 步骤3 检查是否存在一些非候选键的决定因子 Department为非候选键决定因子 关系存在非规范化问题 规范化处理 将关系按决定因子主题进行撤分处理 DEPARTMENT Depratment DeptPhone 主键 主键 外键 参照完整性约束 EMPLOYEE中的Departm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级质量工程师综合知识精益企业模拟试题(附答案)
- 伦理委员会考核试题(附答案)
- 三级营销员模拟题库与答案
- 中外服装史知到智慧树答案
- 特殊药品培训试卷及答案
- 冷藏药品培训考试题及答案
- 2025年度房地产抵押贷款经纪服务协议
- 2025版土石方运输合同绿色运输能力评估合同
- 2025电梯保养服务与智能监控系统集成合同
- 2025版尿素原料采购及仓储物流服务合同
- 《液压与气动控制》课件
- 语言学概论-第三章-语义
- 2024-2025学年广东省深圳实验学校初中部九年级上学期开学考英语试题及答案
- 邮政快递员技能大赛理论考试题库(含答案)
- 《电动航空器电推进系统技术规范》
- 结肠造瘘还纳术手术配合
- 2024年山东省建筑施工企业主要负责人A类考试题库及答案(典型题)
- 特种设备目录新旧对照表
- 2024年初一英语阅读理解专项练习及答案
- 陪诊师与公司签订协议书范文
- 喀什德力克油田科技有限公司30万立方米-日油田伴生放空天然气回收利用项目
评论
0/150
提交评论