文档详情

数据库系统-基础教程(第3章).ppt

发布:2018-11-04约2.16万字共135页下载文档
文本预览下载声明
第3章 关系数据模型 本章介绍的内容 ⒈ 关系数据模型是什么? 以二维表的形式排列数据的模型称之为关系数据模型。 ⒉ 如何将E/R模型转变为关系数据模型? ⒊ 如何使关系模型满足一定规范形式(范式)? 3.1 关系模型的基本概念 关系模型的基本概念 关系模型是以集合论中的关系来表示数据以及数据之间的联系的。 关系relation是什么? 由若干列和行组成的一个二维表,称为一个关系,即一个表table。 表示数据结构和数据集合的一种简单方式。 一个关系有一个名称。 属性 属性attribute是什么? 一个关系中某一列的名称,描述一列数据的含义。如Movies中的length。 一个属性有一个名称。 一个关系中的多个属性不能重名。 模式 关系模式relational schema是什么? 一个关系的名称及其一组属性的集合,称为一个“关系模式”。 表示为: 关系名(属性1、属性2、…、属性n) 例如:movies(title, year, length, filmtype) 一个数据库包含一个或几个关系模式。 一个关系数据库中所包含的关系模式的全体,称为一个“关系数据库模式”,或“数据库模式”。 一个关系模式中的各属性排列有次序吗? 没有。 但为方便起见,一个关系通常设有一个“缺省次序”。 元组 一个元组tuple是什么? 某个关系中除了属性标题之外的一行数据。 一个关系中可能没有元组。 一个元组(行)在每个属性(列)上有一个交叉,即一个分量(component)。 如何表示一个元组? 按照关系模式,用逗号分割每个分量。 例如:(Star Wars, 1977, 124, color ) 注意:不表示属性名称,按照关系模式的属性次序表示各分量。 元组 元组和对象之间有何对应关系? 一个关系可粗略对应一个类。 一个元组可粗略对应一个对象。 一个元组的一个分量对应一个对象在某属性上的一个值。 元组和对象之间有何区别? 对象具有自身固有的标识(OID);无需人为定义键。 一个关系中的元组在关系中不能出现多次;而类中的一组对象的属性值可以相同。 域 域domain是什么概念? 一个域是一种基本数据类型,如integer, char(n), datetime等。 一个关系中每个属性都属于某个域,即某种基本数据类型。 关系模型要求每个元组的每个分量必须具有原子性。 原子性atomic是什么含义? 没有内部结构,不能再分解的基本数据类型。 关系的等价表示法 一个关系为什么有多种等价表示? 改变关系中属性的排列次序,即改变列次序,不改变关系的含义。注意,各分量对应各列。 改变关系中元组的排列次序,即改变行次序,不改变关系的含义。 关系的实例 一个关系的模式和元组之间有何关系? 关系模式相对静态;而关系中的元组是动态变化的。 元组的增、删、改必须按关系模式进行。 关系的实例是什么? 一个关系的一组元组即为该关系的一个实例。 关系的实例随时间变化,“当前实例”指的是在当前时刻,某关系中的元组。 3.2 从E/R图到关系设计 实体集到关系的转换 建立与实体集相同名称的关系,且具有与实体集相同属性集。 实体集到关系的转换 Movies(title,year,length,filmtype) Stars(name,address) Studio(name,address) E/R图二元联系到关系的转换 根据二元联系的多重性分别处理: 1. E1到E2的多对多联系R: R表示为一个关系,其属性是E1和E2的键属性,加上自身属性。 例如: Movies和Stars之间的StarsIn(title, year, starName) 例如: 学生与课程间的选修关系: 选修(学号,课号,成绩) E/R图二元联系到关系的转换 2. E1到E2的多对1联系R: R可表示为一个关系,但不是必须表示为关系。 例如:Movies到Studios之间的 Owns(title, year, studioName) 在E1关系中增加E2的键属性,E2作为被参照关系。 例如:Movies(title, year, length, filmType, studioName) 例如:系与职工间的从属关系。 职工(职工号,姓名,…,系号) E/R图二元联系到关系的转换 3. E1到E2的1对1联系R: R可表示为一个关系,但通常不表示为关系。而采用两种方法: 在E1关系中增加E2关系的键,E2作为被参照关系。 在E2关系中增加E1关系的键,E1作为被参照关系。 1对1联系可能被合并为一个关系。 例如:系与职工间的领导关系。可表示为:
显示全部
相似文档