




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 关系数据库 F本章内容: 2.1 关系模型概述 2.2 关系的形式化定义 2.3 关系的完整性约束 2.4 关系代数 2.5 关系演算 1 第二章 关系数据库 F关系数据库系统大事记 1970年 6月,E.F.Codd在 Communication of the ACM 上发表题为 “A Relational Model of Data for Large Shared Data Banks”一文,首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。随后他又连续发表了 多篇论文,奠定了关系数据库的理论基础。 1973年 IBM 研究中心启动关系数据库实验系统System R 项目,并于70年代末在 IBM370系列机上获得成功。 1977 年,美国加州大学柏克利分校开始研制INGRES关系数据库实验系统,于1985获得成功。 三十多年来涌现出许多关系数据库管理系统(RDBMS), 著名的有:DB2, Oracle, Informix, Sybase, SQL Server, PostgreSQL等。 2 2.1 关系模型概述 F关系模型的数据结构关系(二维表) 关系(Relation) 元组(Tuple) 属性(Atribute)分量 主码(Key) 域(Domain):属性的取值范围。 关系模式:对关系结构的描述,定义如下: 关系名(属性1,属性1,属性n ) 例:学生(学号,姓名,年龄,性别,系,年级) 属性名 3 2.1 关系模型概述 F关系模型的数据结构关系(二维表) 关系数据结构的特点:实体和联系都用关系(集合) 这种单一的数据结构来实现 4 2.1 关系模型概述 并 (Union) 交 (Intersection) 差 (Difference) 广义笛卡尔积 选择(Select) 投影(Project) 连接(Join) 除 (Divide) 插入(Insert) 删除(Delete) 修改(Update) F关系的操纵: 查询、插入、删除、修改 是集合操作,操作对象和操作结果都是关系,即若干元组的集合 关系操作的特点: 操作对象和操作结果都是集合(关系) 存取路径对用户隐蔽,用户只要指出“干什么”, 不必详细说明“怎么干” 5 2.1 关系模型概述 F关系语言 关系语言特点: 关系语言是高度非过程化的语言 关系语言是完备的 关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价 SQL已成为关系数据库(RDBMS)的标准语言 关系代数 关系演算 SQL 元组演算 域演算 形式化 形式化 实际、标准 6 2.1 关系模型概述 F关系的完整性约束条件 实体完整性 参照完整性 用户定义的完整性 7 2.1 关系模型概述 F优点 建立在严格的数学概念的基础上 概念单一。数据结构简单、清晰,用户易懂易用 实体和各类联系都用关系来表示。 对数据的检索结果也是关系。 关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作 F缺点 存取路径对用户透明导致查询效率往往不如非关系数据 模型 为提高性能,必须对用户的查询请求进行优化,增加了 开发数据库管理系统的难度 8 2.2 关系的形式化定义 F关系的定义 域 (Domain):一组具有相同数据类型的值的集合。如整数、字符串等。 笛卡尔积 (Cartesian Product):给定一组域D1, D2, , Dn (可相同) , D1, D2, , Dn 上的笛卡尔积为: D1D2Dn (d1, d2, , dn) | di Di, i=1,2,n (d1, d2, , dn) 称为一个 元组 (Tuple)。 di叫作元组 (d1, d2, , dn) 的第i 个 分量(Component)。 9 2.2 关系的形式化定义 F关系的定义 关系(Relation): 笛卡尔积D1D2Dn的一个子集叫作域D1, D2, , Dn 上 的一个关系,记为R(D1, D2, , Dn), 其中R是 关系名, n是关系的目或度(Degree)。定 义在n 个域上的关系称为n 元关系。 理论定义存在的问题 笛卡尔积存在无意义的元组 无限关系没有实际意义 理论上,笛卡尔积的分量之间是有序的(元组是向量) 解决办法 去掉无意义的元组 限制实际的关系是有限集合 为每列起一个名字,称为属性(Attribute),把元组由向量变为集合,取消有序性 10 2.2 关系的形式化定义 例 给定域 name = 王小明, 李莉,sex = 男, 女,则 namesex = (王小明, 男), (王小明, 女), (李莉, 男), (李莉, 女)。 笛卡尔积的结果中有许多元组是无意义的,可以认 为其中有意义的元组构成关系,为实际的二维表。 namesex 王小明男 李莉女 属性名、字段名、列名 记录、元组 字段值、属性值 11 2.2 关系的形式化定义 F几个概念: 超码(Super Key):能唯一标识元组的属性(组) 包含超码的任意属性组都是超码 候选码(Candidate Key):能唯一标识元组的最小属性组 候选码是超码 候选码的任意真子集都不是超码 若候选码包含全部属性,则称其为全码(All-key) 主码(Primary Key):多个候选码中选定一个作主码 主属性(Prime Attribute):候选码中的所有属性 非主属性(Non- Prime Attribute):不出现在任何候选码 中的属性,也称非码属性(Non-key attribute) 12 2.2 关系的形式化定义 F几点注意 教材中没有超码的概念,候选码的定义不严谨 候选码主要用于理论研究,主码主要用于实际应用 在实际应用中,一般都要求为表建立主码,对候选码并不做特殊要求。如果一组属性的值在现实中总 是 无重复的,理论上就可作为候选码;但如果在实际中并没有被选为主码,那么这组属性对应用系统 来说就是普通属性(若需要,可建唯一索引,仅此而已) 在理论研究中,术语码多指候选码,主属性多指候选 码中的属性 在实际应用中,术语码多指主码,主属性多指主码中 的属性 13 2.2 关系的形式化定义 假定无重名存在 超码:学号、姓名、(学号,年龄)、 (学号,年龄,性别) 候选码:学号、姓名 主属性:学号、姓名 非主属性:年龄、性别、系名、年级 例 学生登记表 14 2.2 关系的形式化定义 F三类关系 基本关系(基本表或基表) 实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据 15 2.2 关系的形式化定义 F基本关系的性质 列是同质的,同一列的值出自同一个域 不同的列可出自同一个域 其中的每一列称为一个属性 不同的属性要给予不同的属性名 列的顺序无所谓,列的次序可以任意交换 任意两个元组的候选码的值不能相同(否则不是候选码) 行的顺序无所谓,行的次序可以任意交换 分量必须取原子值 这是规范条件中最基本的一条,1NF 不规 范的 表 16 2.2 关系的形式化定义 F关系(或表)的型与值 型:关系的结构(字段名、字段个数、域等) 静态的、稳定的 值:关系中具体的元组,也称关系的实例(Instance) 动态的、随时间不断变化的 F关系模式(Relation Schema,即型)的表示 数据依赖 属性到域上的映射关系 关系的域 属性集 R(U,D,DOM,F) 关系名 关系模式通常简记为:R(U) 或 R(A1, A2, , An) 17 2.3 关系的完整性约束 F含义 关系的完整性约束是对关系的正确性和 相容性的限定,通常是与关系所表达的现实信息的约束相对应 F分类 实体完整性 参照完整性 用户定义完整性 18 2.3 关系的完整性约束 F实体完整性(Entity Integrity) 实体完整性规则 若属性A是基本关系R的主属性,则属性A不能取空值。 这里的主属性指主码的属性 空值就是“不知道”或“不存在”或“无意义”的值 实体完整性规则要求主码中的每个属性都不能为空值 基本关系的每个元组对应现实世界的一个事物;主码用来区分元组,对应现实事物的标识信息 某个元组的(部分)主码值为空,意味着此元组不可区分,即现实世界存在不可标识的事物,这是错误的 例 关系模式 SC(Sno, Cno, Grade) 主码: (Sno, Cno)主属性:Sno、 Cno 则 Sno, Cno都不能为空 三个属性分别为空,哪种情况有意义? 19 2.3 关系的完整性约束 F参照完整性(Referential Integrity) 外码:设 F是基本关系R的一个或一组属性但不是关系R的码,Ks是基本关系S的主码。如果F与 Ks相对应,则称F是 R的 外码(Foreign Key)。基本关系R称为参照关系 (Referencing Relation), 基本关系S称为 被参照关系(Referenced Relation)或 目标关系(Target Relation)。 例 S(Sno, Sname, Ssex, Sage, Sdep) 主码:Sno C(Cno, Cname, Ccredit, Cpno) 主码:Cno SC(Sno, Cno, grade) 主码:(Sno, Cno) Sno不是关系SC的主码,与关系S的 Sno相对应,故Sno是 SC的外码,SC为参照关系, S为被参照关系。同理,Cno是关系SC的外码,C为被参照关系。 Cpno是关系C的外码,C既是参照关系,又是被参照关系。 20 2.3 关系的完整性约束 关于外码的说明 参照关系R和被参照关系S不一定是不同的关系(如C关系) 被参照关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上 外码并不一定要与相应的主码同名。但当外码与相应的主码属于不同关系时,往往取相同的名字,以便 于识别 21 2.3 关系的完整性约束 参照完整性规则 若属性(组 )F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上 的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值 不是必须等于主码值,因前一条说可以为空 CnoCnameCcreditCpno c1数据库4c5 c2高等数学2 c3信息系统4c1 c5数据结构4c7 c6数据处理2 c7Pascal语言4c6 外码Cpno只能取: (1)空值(NULL),表示该课程没有先 修课 (2)非空值,这时该值必须是课程表中已有 的课程号,而不能是一个不存在的课程号 22 2.3 关系的完整性约束 因为Sno和Cno都是主属性。外码中的属性如果不是主 属性,则可以取空值,此时外码中的每一个属性均为空值。 SnoSname Ssex SageSdept 95001李勇男20CS 95002刘晨女19IS 95003王敏女18MA 95004张立男19IS CnoCnameCcreditCpno c1数据库4c5 c2高等数学2 c3信息系统4c1 c4操作系统3c6 c5数据结构4c7 c6编译原理2 c7Pascal语言4c6 SnoCnoGrade 95001c192 95001c265 95001c488 95002c290 95002c573 在 CS表中,Sno只能取S表中存在的学号, Cno也只能取已存在的课程号,但两者都不能取空值 。为什么? 23 2.3 关系的完整性约束 F用户定义完整性(User-defined Integrity) 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语 义要求。如性别只能取“男 ”、 “女 ”值,成绩必须在0100分之间。又如,最低工资在一个公司是 800,另一个公司是3000。 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业硫酸回收装置危废再生利用项目经济效益分析报告
- 常州市生活垃圾焚烧发电项目初步评价报告(200902)d1
- 中国环保净味涂料行业市场前景预测及投资价值评估分析报告
- 剪叉式液压升降台参数化设计及结构分析的开题报告
- 消防安全体系试题及答案
- 2025至2030年中国扣眼带行业投资前景及策略咨询研究报告
- DF54节流阀项目投资可行性研究分析报告(2024-2030版)
- 文明银行面试题目及答案
- 温州消防考试试题及答案
- 毕节智能家居项目商业计划书
- 2025年中考数学模拟考试卷(附答案)
- 汽车合伙合同协议书
- 四川省九师联盟2025届高三仿真模拟卷物理试卷及答案(HG)
- 2025年保密法基础知识考试题库带答案(预热题)参考答案详解
- 乙状结肠癌试题及答案
- 2025夏季安徽蚌埠市东方人力资源有限劳务派遣人员招聘30人笔试参考题库附带答案详解
- 2024年贵州铜仁公开招聘社区工作者考试试题答案解析
- 2025年中央民族大学辅导员招聘考试笔试试题(含答案)
- 江苏苏州国家历史文化名城保护区、苏州市姑苏区区属国资集团招聘笔试题库2025
- 2025届山东济南市下学期高三数学试题5月(第三次)模拟考试试卷
- 健康风险评估知识试题及答案
评论
0/150
提交评论