资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
关系数据库简介,提出关系模型的是美国IBM公司的E.F.Codd 1970年提出关系数据模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM,1970 之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式 1974年提出了关系的BC范式,Edgar F.Codd 博士 关系数据库之父美国工程院院士,原是英国人,1923生于英格兰中部波特兰 第二次世界大战时应征入伍,在皇家空军服役。 1942-1945年间任机长,参与了许多惊心动魄的空战。 英国牛津大学数学专业理学士及硕士学位,毕业后到IBM公司工作从事操作系统和自动机理论研究 年近40重返密歇根大学进修计算机与通信专业,1963年获得硕士学位,1965年又获得博士学位。 60年代后期开始数据库研究, 1970年E.F.Codd 博士提出关系模型概念(CACM,Vol.13, Vol.6, 1970 ) 1981年获图灵奖,84年从IBM公司退休 还创办了一个研究所:关系研究所(The Relational Institute)和一个公司:Codd & Associations,进行关系数据库产品的研发、销售、咨询等业务,第二章 关系数据库,2.1 关系数据结构及形式化定义 2.2 关系操作 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结,2.1 关系数据结构及形式化定义,2.1.1 关系 2.1.2 关系模式 2.1.3 关系数据库,2.1.1 关系,单一的数据结构-关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构-二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表 建立在集合代数的基础上, 域(Domain),域是一组具有相同数据类型的值的集合。例: 整数 实数 介于某个取值范围的整数 长度指定长度的字符串集合 男,女 ,2. 笛卡尔积(Cartesian Product),笛卡尔积 给定一组域D1,D2,Dn,这些域中可以有相同的。 D1,D2,Dn的笛卡尔积为: D1D2Dn (d1,d2,dn)diDi,i1,2,.,n 所有域的所有取值的一个组合 不能重复 元组(Tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(Tuple) 分量(Component) 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量,基数(Cardinal number) 若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为: 笛卡尔积的表示方法 笛卡尔积可表示为一个二维表 表中的每行对应一个元组,表中的每列对应一个域,3. 关系(Relation),1) 关系 D1D2Dn的子集叫作在域D1,D2,Dn上的 关系,表示为: R(D1,D2,Dn) R:关系名 n:关系的目或度(Degree) 2) 元组 关系中的每个元素是关系中的元组,通常用 t 表示。 3)单元关系与二元关系 当n=1时,称该关系为单元关系或一元关系 当n=2时,称该关系为二元关系(Binary relation),4) 关系的表示 关系也是一个二维表,表的每行对应一个元组,表的每列 对应一个域,5)属性 关系中不同列可以对应相同的域 ,为了加以区分,必须对每列起一个名字,称为属性(Attribute),n目关系必有n个属性,6) 码 候选码(Candidate key) 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 全码(All-key) 关系模式的所有属性组是这个关系模式的候选码,称为全码 主码((Primary key) 若一个关系有多个候选码,则选定其中一个为主码 主属性 :候选码的每一个属性称为主属性,7) 三类关系 基本关系(基本表或基表) 实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其他视图表导出的表,是虚表,不对 应实际存储的数据,8)基本关系的性质 列是同质的(Homogeneous):来自同一个域。 不同的列可出自同一个域 其中的每一列称为一个属性 不同的属性要给予不同的属性名 列的顺序无所谓,列的次序可以任意交换 任意两个元组的候选码不能相同 行的顺序无所谓,行的次序可以任意交换 分量必须取原子值,即每个分量必须是不可再分的数据项。,同质的列,关系性质2不同的属性名,姓名2 曾用名,返回,关系性质6分量是原子,非规范化关系,规范化关系,2.1.2 关系模式,1.定义: 关系模式是对关系的描述,关系模式可以形式化地表示为:R(U,D,DOM,F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F : 属性间的数据依赖关系集合,关系模式通常可以简记为 R (U) 或 R (A1,A2,An) A1,A2,An : 属性名 注:域名及属性向域的映象常常直接说明为属性的类型、长度,关系模式 对关系的描述 静态的、稳定的 关系 关系模式在某一时刻的状态或内容 动态的、随时间不断变化的 关系模式和关系往往统称为关系,2.关系模式与关系,2.1.3 关系数据库,关系数据库 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。 关系数据库的型: 关系数据库模式,对关系数据库的描述。 关系数据库的值: 关系模式在某一时刻对应的关系的集合,简称为关系数据库,关系数据库模式例,整个数据库,某关系的结构,某关系的实例,第二章 关系数据库,2.1 关系模型概述 2.2 关系操作 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结,2.2.1基本关系操作,常用的关系操作 查询:选择、投影、连接、除、并、交、差 数据更新:插入、删除、修改 查询的表达能力是其中最主要的部分 选择、投影、并、差、笛卡尔积是5种基本操作 关系操作的特点 集合操作方式:操作的对象和结果都是集合,一次一集合的方式,2.2.2 关系数据库语言的分类,关系代数语言 (2.4节讲解) 用对关系的运算来表达查询要求 代表:ISBL 关系演算语言:用谓词来表达查询要求 元组关系演算语言 谓词变元的基本对象是元组变量 代表:APLHA, QUEL 域关系演算语言 谓词变元的基本对象是域变量 代表:QBE 具有关系代数和关系演算双重特点的语言(第三章讲解) 代表:SQL(Structured Query Language),关系数据库语言的分类,2.3 关系的完整性,完整性是数据模型的一个非常重要的方面。 关系数据库从多个方面来保证数据的完整性。在创建数据库时,需要通过相关的措施来保证以后对数据库中的数据进行操纵时,数据是正确的、一致的。 关系数据库提供: 实体完整性 参照完整性 用户定义的完整性。,2.3.1 实体完整性,实体完整性规则(Entity Integrity) 若属性A是基本关系R的主属性,则属性A不能取空值 注意:是基本关系的所有主属性都不能取空值 如: 选修(学号,课程号,成绩),则(学号,课程号)为主码,则学号和课程号都不能取空值。,实体完整性(续),实体完整性规则的说明 (1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。 (2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识。 (3) 关系模型中以主码作为唯一性标识。 (4) 主码中的属性即主属性不能取空值。 主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性,2.3.2 参照完整性,1. 关系间的引用 2. 外码 3. 参照完整性规则,1. 关系间的引用,在关系模型中实体及实体间的联系都是用关系来描 述的,因此 自然存在着关系与关系间的引用。 例1 学生实体、专业实体 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名),主码,外码,学生关系引用了专业关系的主码“专业号”。 学生关系中的“专业号”值必须是确实存在的专业的专业号 ,即专业 关系中有该专业的记录。,关系间的引用(续),例2 学生、课程、学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),关系间的引用(续),例3 学生实体及其内部的一对多联系 学生(学号,姓名,性别,专业号,年龄,班长),“学号”是主码,“班长”是外码,它引用了本关系的“学号” “班长” 必须是确实存在的学生的学号,2外码(Foreign Key),设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码 基本关系R称为参照关系(Referencing Relation) 基本关系S称为被参照关系(Referenced Relation) 或目标关系(Target Relation),外码(续),例1:学生关系的“专业号与专业关系的主码“专业号”相对应 “专业号”属性是学生关系的外码 专业关系是被参照关系,学生关系为参照关系,外码(续),例2: 选修关系的“学号” 与学生关系的主码“学号”相对应 选修关系的“课程号”与课程关系的主码“课程号”相对应 “学号”和“课程号”是选修关系的外码 学生关系和课程关系均为被参照关系 选修关系为参照关系,外码(续),例3:“班长”与本身的主码“学号”相对应 “班长”是外码 学生关系既是参照关系也是被参照关系,关系R和S不一定是不同的关系 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上 外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往取相同的名 字,以便于识别,3. 参照完整性规则,参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值,学生关系,课程关系,选修关系,外部键,外部键,主键,主键,例1 : 选修(学号,课程号,成绩) “学号”和“课程号”可能的取值 : (1)选修关系中的主属性,不能取空值 (2)只能取相应被参照关系中已经存在的主码值,例2: 学生(学号,姓名,性别,专业号,年龄,班长) “班长”属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长 (2)非空值,该值必须是本关系中某个元组的学号值,2.3.3 用户定义的完整性,针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求 如规定某一属性取值范围在0-100之间。 可在定义关系结构时设置,还可通过触发器、规则等来设置 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能,例: 课程(课程号,课程名,学分) “课程号”属性必须取唯一值 非主属性“课程名”也不能取空值 “学分”属性只能取值1,2,3,4,返回,休息一会儿。,追求,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号