《数据库原理与应用》02.关系数据库_第1页
《数据库原理与应用》02.关系数据库_第2页
《数据库原理与应用》02.关系数据库_第3页
《数据库原理与应用》02.关系数据库_第4页
《数据库原理与应用》02.关系数据库_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

孙发勤yzu sun 扬州大学新闻与传媒学院 第2章关系数据库 数据库原理与应用SQLServer2005 SQLServer2005 第2章关系数据库 学习目标 了解关系数据库和关系数据模型的基本概念和相互关系掌握关系数据模型的数据结构了解关系的集合运算 并 交 差 笛卡尔积 熟练掌握关系的专门运算 投影 选择 连接 掌握关系模型完整性规则 实体完整性 用户定义完整性 参照完整性 掌握概念模型到关系模型转换的基本方法和原则了解关系规范化的基本概念和关系的规范化方法和要求目标 SQLServer2005 2 1关系数据库与关系模型概述 1 SQLServer2005 2 1 1关系数据库概述 关系数据库是目前应用最广泛的数据库用关系数据模型来组织数据以关系代数为基础处理数据库中的数据拥有许多性能良好的关系数据库管理系统 RDBMS SQLServer2005 2 1 2关系模型概述 关系数据模型 RelationalDataModel 简称关系模型 是数据库产品的主导数据模型关系模型的组成要素关系数据结构关系操作集合关系完整性约束 SQLServer2005 2 1 3关系模型的特点 数据结构单一或模型概念单一化实体和实体之间的联系用关系表示关系的定义也是关系 元关系 关系的运算对象和运算结果还是关系采用集合运算关系是元组的集合 所以对关系的运算就是集合运算运算对象和结果都是集合 可采用数学上的集合运算数据完全独立只需告诉系统 做什么 不需要给出 怎么做 程序和数据各自独立数学理论支持有集合论 数理逻辑做基础以数学理论为依据对数据进行严格定义 运算和规范化 SQLServer2005 2 2关系模型 关系数据结构 1 关系运算 传统的集合运算 2 关系运算 专门的集合运算 3 关系完整性 4 SQLServer2005 2 2 1关系模型的数据结构 关系的基本定义关系是满足一定条件的二维表 称为关系 relation 在关系模型中 无论概念世界中的实体还是实体之间的联系均由关系 表 来表示 例如 学生情况表Student 表2 1 SQLServer2005 2 2 1关系模型的数据结构 关系术语关系 每个二维表称为一个关系例如 学生情况表Student关系名 二维表的名字例如 Student关系型 表的所有列标题 描述实体或联系的型例如 SID Sname Sex Birthday Specialty 关系值 表的列对应的数据 描述实体或联系的值例如 2005216003 郭洪亮 男 1986年4月 电子商务2005216004 吕珊珊 女 1987年10月 计算机网络 SQLServer2005 2 2 1关系模型的数据结构 关系术语元组 表中的一行 描述一个实体或联系例如 2005216004 吕珊珊 女 1987年10月 计算机网络属性 表中的一列的标题例如 SID Sname属性值 表中的一列对应的数据 描述实体或联系的特征例如 2005216003 郭洪亮主码 表中的某个属性或属性组 能惟一确定一个元组 即确定一个实体例如 SID关系模式 对关系的描述 表示为关系名 属性1 属性2 属性n 例如 Student SID Sname Sex Birthday Specialty Course CID Cname Credit SC SID CID Grade SQLServer2005 2 2 1关系模型的数据结构 关系术语与其他术语的对照表2 2 SQLServer2005 2 2 1关系模型的数据结构 关系的特点关系 表 的每一元组 行 定义实体集的一个实体 每一列定义实体的一个属性 每一列表示一个属性 且列名不能重复 关系必须有一个主码 唯一标识一个元组 实体 列的每个值必须与对应属性的类型相同 列有取值范围 称为域 列是不可分割的最小数据项 行 列的顺序对用户无关紧要 SQLServer2005 2 2 2关系运算 传统的集合运算 设 有两个关系R和S 具有相同的结构 t是元组变量 关系R为喜欢跳舞的学生 S为喜欢唱歌的学生 SQLServer2005 2 2 2关系运算 传统的集合运算 并 Union 公式 R S t t R t S 语义 t元组属于R或者属于S 例2 1 喜欢跳舞或喜欢唱歌的学生 R S的关系如表2 5所示 SQLServer2005 2 2 2关系运算 传统的集合运算 差 Difference 公式 R S t t R tS 语义 t元组属于R 但不属于S 例2 2 喜欢跳舞但是不喜欢唱歌的学生 R S的关系如表2 6所示 SQLServer2005 2 2 2关系运算 传统的集合运算 交 Intersection 公式 R S t t R t S 语义 t元组属于R并且属于S 例2 3 既喜欢跳舞也喜欢唱歌的学生 R S的关系如表2 7所示 SQLServer2005 2 2 2关系运算 传统的集合运算 笛卡尔积 CartesianProduct 设 关系R为n列 n个属性 k1行 k1个元组 关系S为m列 m个属性 k2行 k2个元组 公式 R S tRtS tR R tS S 语义 笛卡尔积仍是一个关系 该关系的结构是R和S结构之连接 即前n个属性来自R 后m个属性来自S 该关系的值是由R中的每个元组连接S中的每个元组所构成元组的集合 注意 新关系的属性个数等于n m 元组个数等于k1 k2 SQLServer2005 2 2 2关系运算 传统的集合运算 例2 4 设关系R和S如表2 8和表2 9所示 R S如表2 10所示 SQLServer2005 2 2 2关系运算 专门的集合运算 投影 Projection 设 t是关系R中的一个元组 A是要从R中投影出的属性子集 公式 A R t A t R 语义 从关系R中按所需顺序选取若干个属性构成新关系 注意 新关系的元组数小于等于原关系的元组数 新关系的属性数不多于原关系中的 SQLServer2005 2 2 2关系运算 专门的集合运算 例2 5 列出学生情况表R 表2 11 的学生姓名和性别的情况 投影运算结果如表2 12所示 SQLServer2005 2 2 2关系运算 专门的集合运算 选择 Selection 设 t是关系R中的一个元组 F t 为元组逻辑表达式 公式 F t R t t R F t true 语义 从关系中找出满足条件的那些元组称为选择 注意 运算结果的元组数不多于原关系中的元组数 例2 6 在学生情况表2 10R中选择出男生 如表2 13所示 SQLServer2005 连接 Join 设 A B分别是关系R和S中的属性 t是连接关系中的一个元组 公式 RS R A S B R S A S语义 两个关系R和S按相应属性值的比较条件连接起来 生成一个新关系 也称为 连接 等值连接R S 选择 为 按照两关系中对应属性值相等的条件所进行的连接自然连接等值连接 去重复属性记作 RS 2 2 2关系运算 专门的集合运算 SQLServer2005 2 2 2关系运算 专门的集合运算 例2 7 设学生 选课和课程表如表2 14 表2 15 表2 16所示 学生选课的情况为SSCC的结果 如表2 17所示 SQLServer2005 2 2 2关系运算 专门的集合运算 自然连接结果如下 SQLServer2005 2 2 3关系完整性 实体完整性 EntityIntegrity 规则 若属性A是基本关系R的主码 则属性A不能取空值 例如 建立一个课程情况表 Course 属性学号CID为主码 惟一且不能为空值 CREATETABLECourse CIDchar 8 NOTNULLPRIMARYKEY 实体完整性控制Cnamenchar 30 NULL Creditdecimal 3 1 NULL SQLServer2005 2 2 3关系完整性 参照完整性 ReferenceIntegrity 规则 参照关系 子表 的外码取值不能超出被参照关系 父表 的主码取值 例如 建立一个学生选课表 SC SC是参照关系 Student是被参照关系 SC中外码SID的值或者为空或者等于Student中主码SID的值 CREATETABLESC SIDchar 10 NOTNULL CIDchar 8 NOTNULL Gradenumeric 5 1 NULL PRIMARYKEY SID CID FOREIGNKEY SID REFERENCESStudent SID 参照完整性控制 SQLServer2005 2 2 3关系完整性 域 用户 定义完整性约束 属性取值满足某种条件或函数要求例如 建立一个学生情况表 Student 属性性别Sex的取值必须满足为 男 或 女 CREATETABLEStudent SIDchar 10 PRIMARYKEY 实体完整性控制Snamechar 8 NOTNULL Sexchar 2 NULLCHECK Sex 男 ORSex 女 域完整性控制BirthdaydatetimeNULL Specialtyvarchar 26 NULL SQLServer2005 2 2 3关系完整性 完整性规则检查为了维护数据库中数据的完整性 在对关系数据库执行插入 删除和修改操作时 要检查是否满足完整性规则 实体完整性规则 检查主码属性上的值是否已经存在 若不存在 可以执行插入操作 否则不能执行插入操作 参照完整性规则 向参照关系插入 检查外码属性上的值是否在被参照关系的主码属性值中存在 若存在 可以执行插入操作 否则不能执行插入操作 户定义完整性规则 检查输入数据是否符合用户定义的完整性规则 若符合 可以执行插入操作 否则不能执行插入操作 插入 SQLServer2005 2 2 3关系完整性 删除参照完整性规则 删除被参照关系中的行 检查其主码是否被参照关系的外码引用 若没被引用 删除若被引用 拒绝删除 空值删除 外码改为空值 级联删除 参照关系中的相应行一起删除 修改等价 先删除 后插入 以上两种情况的综合 SQLServer2005 2 3E R模型到关系模型的转换 实体 E 转换为关系模式 1 2 联系 R 转换为关系模式 SQLServer2005 2 3 1实体 E 转换为关系模式的方法 一个实体转换为一个关系模式 实体的属性就是关系的属性 实体的码就是关系的码 例如 学生实体转换为关系模式 SQLServer2005 2 3 2联系 R 转换为关系模式的方法 一对一将联系与任意端实体所对应的关系模式合并 加入另一端实体的码和联系的属性 例如 实体学校 学校编号 名称 与校长 编号 姓名 之间的任职联系是1 1的联系 SQLServer2005 2 3 2联系 R 转换为关系模式的方法 学校 学校编号 名称 校长 编号 姓名 学校编号 任职日期 SQLServer2005 2 3 2联系 R 转换为关系模式的方法 一对多将联系与n端实体所对应的关系模式合并 加入1端实体的码和联系的属性 例如 图书实体和读者类型实体的联系是1 n的 SQLServer2005 2 3 2联系 R 转换为关系模式的方法 属于类型 R 借阅数量n 1 Reader RID Rname TypeID Lendnum ReaderType TypeID Typename LimitNum LimitDays SQLServer2005 2 3 2联系 R 转换为关系模式的方法 多对多将联系转换成一个关系模式 该联系相连的各实体的码和联系本身的属性转换为关系的属性 例如 教务管理中选课的E R模型如图所示 学生和课程的联系是多对多的 SQLServer2005 2 3 2联系 R 转换为关系模式的方法 选课 R 成绩n m Student SID Sname Sex Birthday Specialty Course CID Cname Credit SC SID CID Grade SQLServer2005 2 4关系规范化基础 不规范 产生数据冗余 带来很多问题 规范 提高数据的结构化 共享性 一致性和可操作性 范式 规范化的程度 级别 规范化 在关系数据库中的每个关系都需要进行规范化 使之达到一定的规范化程度 SQLServer2005 2 4 2第一范式1NF FirstNormalForm 定义 所有属性不可再分 即原子属性 记作 R 1NF例如 设一个通信录 电话属性需要再分 达不到1NF SQLServer2005 2 4 2第一范式1NF FirstNormalForm 问题 不是二维表 不够1NF解决方法1 在属性上展开 SQLServer2005 2 4 2第一范式1NF FirstNormalForm 解决方法2 分解为二个关系 SQLServer2005 2 4 2第二范式2NF SecondNormalForm 定义所有非主属性完全依赖每个候选关键字 记作R 2NF或 取消部分依赖 假设 有一个教师授课的关系模式 TC TNO Tname Title ADDR CNO Cname CCredit CDesc PK TNO CNO SQLServer2005 2 4 2第二范式2NF SecondNormalForm 问题数据冗余 不同课程同一任教的教师名等 更新异常 冗余带来的不一致 插入异常 没课的教师关键字无值不允许插入 删除异常 没课的教师要删除 致使删除有关记录 SQLServer2005 2 4 2第二范式2NF SecondNormalForm 原因关系属性之间存在部分函数依赖 不够2NF 主码 TNO CNO 决定Cname CCredit CDesc 但是存在主码的一部分CNO就可以决定Cname CDesc TNO CNO Cname CDesc CNO Cname CDesc SQLServer2005 2 4 2第二范式2NF SecondNormalForm 解决办法拆分 原则是概念单一 完整 无损 上述达不到2NF的关系分解如下 多T TNO Tname Title ADDR 对TC TNO CNO CCredit 多C CNO Cname CDesc SQLServer2005 2 4 3第三范式3NF ThirdNormalForm 定义所有非主属性都不传递函数依赖每个候选关键字 记作 R 3NF或 取消传递依赖假设 为图书管理系统的数据模式Book增加一个属性ISBN Books BID ISBN Bname Author PubComp PubDate Price State PK BID SQLServer2005 2 4 3第三范式3NF ThirdNormalForm 问题数据冗余 图书馆多本书副本 更新异常 冗余带来的不一致 插入异常 图书馆没有购进的书的出版情况不允许插入 删除异常 图书馆丢失删除的书 致使删除该书的有关出版情况 SQLServer2005 2 4 3第三范式3NF ThirdNormalForm 原因关系属性之间存在传递函数依赖 不够3FN 存在 BID ISBN ISBN Bname Author PubComp PubDate PriceX Y Y Z Y XX传递决定Z或Z函数依赖于X SQLServer2005 2 4 3第三范式3NF ThirdNormalForm 解决办法拆分 原则是概念单一 完整 无损 上述达不到3NF的关系分解如下 mBooks BID State 对BooksType BID ISBN FK ISBN BIDType ISBN Bname Author PubComp PubDate Price SQLServer2005 2 5关系数据库的标准语言SQL简介 SQL StructuredQueryLanguage 被称为结构化查询语言 是目前最为广泛使用的关系数据库查询语言 IBM公司 SQL DS 71 81 Sybase与Microsoft公司 Transact SQLOracle公司 PL SQLANSI Institute ISO 1986 1999 SQL 92 SQL 99标准 SQLServer2005 2 5 1SQL语言概述 SQL语言的功能DDL定义DML操纵 查询DCL控制SQL语言的

温馨提示

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

评论

0/150

提交评论