数据库教案关系模型.ppt

上传人:小飞机 文档编号:6578536 上传时间:2023-11-14 格式:PPT 页数:67 大小:696.50KB
返回 下载 相关 举报
数据库教案关系模型.ppt_第1页
第1页 / 共67页
数据库教案关系模型.ppt_第2页
第2页 / 共67页
数据库教案关系模型.ppt_第3页
第3页 / 共67页
数据库教案关系模型.ppt_第4页
第4页 / 共67页
数据库教案关系模型.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《数据库教案关系模型.ppt》由会员分享,可在线阅读,更多相关《数据库教案关系模型.ppt(67页珍藏版)》请在三一办公上搜索。

1、第三章 关系模型-本章内容,基础知识回顾关系模型概述关系模型基本概念关系模型的完整性约束关系代数逻辑数据库设计:ER到关系的转换关系演算,基础知识回顾,数据库发展以数据模型划分第一代网状、层次数据库系统。代表:1969年IBM的IMS(information Management System);美国 CODASYL(Conference On Data System Language)下属的 DBTG(Data Base Task Group)于60年代末70年代初提议的方法。层次数据库是数据库的先驱,而网状数据库是数据库概念、方法、技术的奠基者。第二代关系数据库系统。1970年IBM公司的

2、研究员E.F.Codd提出了数据库的关系模型,关系方法和关系数据理论的研究。代表:IBM的System R 和Berkele大学的INGRES,成果:奠定了关系模型的理论基础;研究了关系数据库语言,有关系代数、关系演算、SQL语言、QBE等;研制了大量的RDBMS的原型,实现了查询优化、并发控制、故障恢复等关键技术;,基础知识回顾,数据库发展第三代以面向对象数据模型为主要特征的数据库系统。模型更加丰富、数据管理功能功能更加强大、能支持传统数据库难以支持的新的应用。特征:支持数据管理、对象管理和知识管理;保持或者继承第二代数据库的技术;对其他系统开放(支持数据库语言标准和标准网络协议)。仅支持面

3、向对象数据模型并不能称为第三代数据库系统。,基础知识回顾,关系数据库系统关系数据库系统。产品的发展情况:(1)对关系模型的支持:第一阶段(70年代):仅支持关系数据结构、基本的关系操作(选择、投影、连接)。如:dBASE 第二阶段(80年代):SQL成为关系数据库语言的国际标准第三阶段(90年代):加强了完整性、安全性的支持。(2)运行环境:第一阶段:在大、中、小型机上的RDBMS,多用户系统第二阶段:提高可移植性,能在多种硬件平台、和操作系统环境下运行;联网,向分布式发展,支持多种协议。第三阶段:分布式数据库和客户/服务器结构的数据库系统的推出。追求开放性(可移植性、可连接性、可伸缩性)。,

4、基础知识回顾,关系数据库系统关系数据库系统。产品的发展情况:(3)RDBMS系统构成:第一阶段:早期的RDBMS产品主要提供数据定义、数据存取、数据控制等基本操作和数据存储组织、并发控制、安全性、完整性检查、系统恢复等RDBMS的核心功能。第二阶段:以RDBMS基本功能为核心,开发外围软件系统,如:FORM报表生成系统,REPORT报表系统、MENU菜单生成系统、GRAPHIC图形软件等等。为用户提供了良好的第四代应用开发环境。(4)对应用的支持:第一阶段:用于信息管理、辅助决策等应用领域。第二阶段:联机事务处理的应用领域,提高RDBMS事务处理的能力。第三阶段:由集中到分布,由局部到整个企业

5、甚至整个行业。支持整个企业的联机事务处理。,关系模型概述,为什么要学习关系模型?关系模型是目前广泛使用的一种数据模型IBM DB2,Miscrosoft SQL Server,Informix,Oracle,Sybase,.仅有少量的遗产系统使用旧的数据模型IBM的IMS目前仍在使用目前关系模型的竞争者:面向对象的数据模型Objectstore,Versant,Ontos,.对象关系模型:Informix Universal Server,UniSQL,O2,ORACLE,DB2,.,关系模型概述,关系数据模型是由E.F.Codd于1970年提出在此之前大多数数据库系统是基于层次数据模型和网状

6、数据模型的关系模型给数据库领域带来了一场革命,并取代了旧的数据模型,E.F.Codd并因此于1983年获得Turing Awards在70年代中期,IBM和UC-Berkeley开发了早期的关系型数据库管理系统,关系模型概述,现在的关系型数据库系统有IBM的DB2InformixOracleSybaseMicrosoft的Access,SQL ServerFox-xParadox,关系模型概述,关系模型是十分简单的关系模型的数据结构非常单一,实体、联系都表示成关系一个关系是一个具有行和列的二维表关系模型给出关系操作的能力,但不对RDBMS语言给出具体的语法要求查询操作:选择、投影、连接、除、并

7、、交、差等更新操作:增加、删除和修改一次一集合关系代数和关系演算高度非过程化,关系模型概述,关系模型的三类完整性约束系统支持:实体完整性和参照完整性用户定义:用户定义的完整性本章主要讨论以下问题关系模型是如何表示数据的关系模型可以表示何种完整性约束数据是如何被查询的如何将由ER模型表示数据库概念模式转换为关系模式(模式)的视图(外模式)问题,关系模型基本概念,关系域:一组具有相同数据类型值的集合笛卡尔积:给定一组域D1,D2,Dn,它们的笛卡尔积为:D1XD2XDn=(d1,d2,dn)|diDi,i=1,2,n)元组:每一个元素(d1,d2,dn)叫做一个n元组,或元组分量:元素中的每一个值

8、di叫做一个分量基数:若Di为有限集,其基数为mi,则D1XD2XDn的基数为:,关系模型基本概念,例如:给定三个域D1=MAN=王兵,李平,张英,D2=WOMAN=丁梅,吴芳 D3=CHILD=王一,李一,李二D1XD2XD3=(王兵,丁梅,王一),(王兵,丁梅,李一),(王兵,丁梅,李二),(王兵,吴芳,王一),(王兵,吴芳,李一),笛卡尔积可以表示为一个二维表,表中的每一行对应一个元组,每一列对应一个域,关系模型基本概念,MAN WOMAN CHILD王兵 丁梅 王一王兵 丁梅 李一王兵 丁梅 李二王兵 吴芳 王一王兵 吴芳 李一王兵 吴芳 李二李平 丁梅 王一李平 丁梅 李一李平 丁梅

9、 李二李平 吴芳 王一李平 吴芳 李一李平 吴芳 李二,MAN WOMAN CHILD张英 丁梅 王一张英 丁梅 李一张英 丁梅 李二张英 吴芳 王一张英 吴芳 李一张英 吴芳 李二,续左表,关系模型基本概念,关系:D1XD2XDn的子集叫做在域D1,D2,Dn上的关系表示为R(D1,D2,Dn)关系的目或度:n单元关系:n=1二元关系:n=2关系是一个二维表(子集)例如:假设王兵的妻子是丁梅,他们的孩子是王一,李平的妻子是吴芳,他们的孩子是李一和李二,则取笛卡尔积的一个子集构造一个关系FAMILY,关系模型基本概念,在R(D1,D2,Dn)表示中,域可以重名,给每列一个名字,称为属性,关系表

10、示为:R(A1,A2,An)例如:FAMILY(FATHER,MOTHER,CHILD),MAN WOMAN CHILD王兵 丁梅 王一李平 吴芳 李一李平 吴芳 李二,FAMILY,关系模型基本概念,候选码:能够唯一标识一个元组的最小属性组主码:主属性:候选码中的属性非码属性:不包含在任何候选码中的属性关系的性质:关系模型要求在一个关系中不能存在完全相同的元组(但实际商用关系数据库系统支持重复元组)关系中元组行的序并不重要关系中列的序并不重要(但有些系统例外),关系模型基本概念,分量必须取原子值不同的列可以出自同一个域给定域:person=王兵,李平,张英,丁梅,吴芳 child=王义,李一

11、,李二,MAN WOMAN CHILD first second王兵 丁梅 王一李平 吴芳 李一 李二,FAMILY,bad,关系模型基本概念,构造FAMILY关系,仍然取person X person X child的子集,表示为:FAMILY(FATHER,MOTHER,CHILD)此处dom(FATHER)=dom(MOTHER)=person关系模式:关系的描述形式化表示:R(U,D,dom,F),简记为R(U)或R(A1,A2,An)属性向域的映象常常说明为属性的类型和长度关系模式是型,关系是值,关系模型基本概念,在关系模型中,实体和联系都是用关系表示的 例如:左图 学生(学号,姓名

12、,性别,专业,年龄)课程(课程号,课程名,学时,学分)选修(学号,课程号,成绩)一个关系数据库是一组关系的集合;关系数据库模式则是该数据库所有关系模式的集合,学生,课程,选修,m,n,关系模型-关系的完整性,关系模型的完整性是对关系的某种约束实体完整性:主码中的属性不可取空值(例子)参照完整性:例子:对于关系模式 学生(学号,姓名,性别,专业,年龄)课程(课程号,课程名,学时,学分)选修(学号,课程号,成绩)外码:设F是关系R的一个或一组属性,但不是关系R的码,如果F与关系S的主码Ks相对应,则称F为关系R的外码,关系模型-关系的完整性,参照关系R,被参照关系S参照完整性:F的取值必须为:或者

13、取空值或者等于S中某个元组的主码值例如:部门(部门号,部门名,电话)雇员(雇员号,雇员名,职称,部门号)雇员中部门号的取值,部门,雇员,拥有,1,n,关系模型-关系的完整性,用户定义的完整性:任何关系数据库系统都应支持实体完整性和参照完整性用户定义的完整性定义某一具体应用中所涉及的数据必须满足的语义要求,例如年龄的取值关系数据库系统提供定义和检验这类完整性机制,关系模型-关系代数,关系代数运算分为:传统的集合运算和专门的关系运算集合运算前提:关系R和关系S具有相同的目,相应的属性取自同一个域并:关系R和关系S的并记作:RS(下页)差:关系R和关系S的差记作:R-S交:关系R和关系S的交记作:R

14、S,关系模型-关系代数,A B C A B C A B C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a2 b2 c1 a1 b3 c2 A B C A B Ca1 b2 c2 a1 b1 c1a2 b2 c1,R,S,RS,RS,R-S,关系模型-关系代数,RS,A B C A B C A B C a1 b1 c1 a1 b1 c1 a1 b2 c2a1 b2 c2 a1 b1 c1 a1 b3 c2a2 b2 c1 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 A

15、 B C a1 b2 c2 a1 b3 c2a1 b2 c2 a1 b2 c2 a2 b2 c1a1 b3 c2 a2 b2 c1 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1,R,S,关系模型-关系代数,广义笛卡尔积:两个分别为n和m目的关系R和S的广义笛卡尔积是一个n+m列的元组的集合。若R有k1个元组,S有k2个元组,则广义笛卡尔积有k1k2个元组记作:R S,关系的建立和修改-SQL-92,SQL语言的简单发展历史SQL语言是由IBM公司在System R系统中首先提出SQL在1986年被ANSI采纳为标准,称为SQL-86

16、在1989又对SQL标准进行了少量修改,称为SQL-89在1992年ANSI和ISO对SQL标准进行主要修改,称之为SQL-92在1999年又对SQL-92进行大量修改(面向对象的特点),称之为SQL-3,有时也称为SQL-99,关系的建立和修改,关系表建立CREATE TABLE Students(sid CHAR(20),name CHAR(30),login CHAR(20),age INTEGER,gpa REAL)关系表删除DROP TABLE Students关系表修改ALTER TABLE Students ADD COLUMN maiden-name CHAR(10),关键字约

17、束-实现实体完整性,通过UNIQUE子句来定义候选码(候选关键字)通过PRIMARY KEY子句来定义主码(主关键字)CREATE TABLE Students(sid CHAR(20),name CHAR(30),login CHAR(20),age INTEGER,gpa REAL,UNIQUE(name,age),UNIQUE(login),PRIMARY KEY(sid),外键约束-实现参照完整性,外键约束指的是两个关系之间的关键字约束关系,考虑下列关系Students(sid,name,login,age,gpa)Enrolled(sid,cid,grade)从语义上来讲,在关系En

18、rolled中出现的sid值,在关系Students中必须存在,Enrolled中的sid称为外键,引用关系Students中的主关键字sid外键必须与被引用关系中的主关键字相匹配可以有不同的名字列数要相同,且要具有兼容的数据类型,外键约束-示例,外键约束的语义,在被参照关系中关键字的值在参照关系中不一定出现但在参照关系中出现的关键字值在被参照关系中必须要出现如果我们向关系Enrolled中插入元组,这个操作将被拒绝因为违反了外键约束,外键约束的语义,对于操作:将关系Students中的删除,有两种处理禁止这种删除操作同时删除参照关系中的相关元组值得注意的是外键可能来自于同一关系,也就是被参照

19、关系就是参照关系Students(sid,name,login,age,gpa,partner),partner是对sid的一个外键约束Courses(cid,name,desc,preq),preq是对cid的一个外键约束当一门课程没有前期课程时,preq可以为空,空值并不违反外键约束,外键约束的定义-SQL-92,逻辑数据库设计:ER到关系的转换,实体集到表的转换实体集中的属性映射为表中的属性实体集中的(主)关键字映射为关系中的(主)关键字实体集中属性的域映射为关系中属性的域,实体集到表的转换-示例,多对多联系集到表的转换,多对多联系被映射为一个关系表,包括属性:每个参加联系的实体集的主关

20、键字属性,作为外键存在所有外键构成该实体集的主关键字联系集本身的属性-一般属性,多对多联系集到表的转换-例1,m,n,多对多联系集到表的转换-例1,多对多联系集到表的转换-例2,m,n,p,多对多联系集到表的转换-例2,CREATE TABLE Work3-In(ssn CHAR(11),did integer,from date,to date,PRIMARY KEY(ssn,did,from,to)FOREIG KEY(ssn)REFERENCES Employees,ON DELETE NO ACTION,FOREIG KEY(did)REFERENCES Departments,FOR

21、EIGN KEY(from)REFERENCE DURATION,FOREIGN KEY(to)REFERENCE DURATION),一对多联系集的翻译,1,n,一对多联系集的翻译-方法一,将一对多联系翻译为一个独立的表,一对多联系集的翻译-方法二,将Manages和Departments翻译为一个关系,关于联系集到关系映射的思考题,在一对多联系中,Manages和Departments 为什么可以合并为一个关系?对于一对多联系翻译的两种方法的优缺点是什么?对于一个多对多联系集为什么必须映射为一个独立的关系表?一对一联系应如何翻译?,思考题部分答案,方法一和方法二的优缺点方法一多产生一个关系

22、对于有些查询,方法一需要两次连接,而方法二只需要一次连接即可方法二的缺点是浪费空间,如果有些部门没有经理的话,具有参加约束的联系集的翻译,1,n,n,m,具有参加约束的1:n(1:1)联系集的翻译,具有参加约束的联系集的翻译,ssn的非空定义反映了参加约束使用上面的第一种方法也可以表示Manages和Departments,但使用方法二比方法一好,(why?因为方法二浪费空间的缺点已不复存在),弱实体集的翻译,一个弱实体总是参加一个二元一对多联系(?)全参加约束,1,m,弱实体集的翻译,使用具有1:n联系的第二种翻译方法(Why?),但必须考虑下面的具体要求必须考虑弱实体集有一个部分关键字当一

23、个Owner实体被删除以后,弱实体集中相应的实体也应被删除,弱实体集的翻译,类层次的翻译,类层次的翻译-方法一,三个实体集翻译成三个关系实体集Employees的翻译比较简单关系Hourly_Emps的属性包括:ssn,hourly_wages,hours_worked,;ssn是主关键字;同时ssn一个外键;当超类中实体被删除时子类中的对象也必须删除 Contract_Emps的翻译相类似思考题:为什么在关系Hourly_Emps的属性中不包含属性name和lot?体现继承性了吗?,类层次的翻译-方法一,CREATE TABLE Hourly_Emps(ssn CHAR(20),hourly

24、_wages REAL,hours_worked INTEGER,PRIMARY KEY(ssn),FOREIG KEY(ssn)REFERENCES Employees,ON DELETE CASCADE),类层次的翻译-方法二,三个实体集翻译成两个关系仅生成两个关系:Hourly_Emps和Contract_Emps,他们都包含超类Employees的属性,除了主关键字约束以外,不需要定义任何约束当然,对于overlap约束只能用通用约束机制来实现对于方法一来讲,covering约束也只能用通用约束机制来实现,类层次的翻译-两种方法的比较,方法一:当查询涉及到Employees的属性和其它

25、一些细节属性时需要连接操作;当查询仅涉及到Employees的属性时则在Employees关系上进行即可;另一个优点是可以存储非Hourly_Emps和Contract_Emps的实体方法二:主要确定无法存储非Hourly_Emps和Contract_Emps的实体,且name和lot出现了两次;优点是仅涉及到Hourly_Emps或Contract_Emps的查询仅在一个关系上进行即可,不需要额外的连接操作,但涉及到所有雇员的查询则需要在两个关系上进行;,实例分析,一个公司数据库需要存储雇员、部门和雇员小孩的信息。雇员工作在部门(一个雇员只能工作在一个部门),每个部门由一个雇员管理,每个雇员

26、小孩的名字是唯一的,假定小孩只有一个家长工作在这个公司,而且我们不关心哪些已经调离雇员的小孩情况。请画出ER图扑获这些信息。雇员(ssn,salary,phone)部门(dno,dname,budget)小孩(name,age),实例分析,部门,雇员,小孩,工作,有,1,m,管理,n,1,1,n,dno,dname,budget,ssn,salary,phone,name,age,雇员(ssn,salary,phone,dno)部门(dno,dname,budget,ssn not null)小孩(ssn,name,age),实例分析,一个大学数据库包括教授、课程信息。教授讲授课程,下面几种情

27、况都是描述有关讲授联系集的,对于每一种情况画ER图描述教授可以在几个学期讲授同一门课程,但仅最近一次的讲授活动需被记录下来教授可以在几个学期讲授同一门课程,每次讲授活动需被记录下来每个教授必须讲授课程每个教授只讲授一门课程,实例分析,每个教授只讲授一门课程,每门课程可有几位教授讲授假定一些课程可由一组教授联合讲授假定一些特定课程只能由一组教授联合讲授,且这些教授中的任一位不可能独立讲授这门课程(思考题),实例分析,教授,课程,讲授,n,m,职工号,姓名,电话,课号,课时,学分,班级,学期,人数,(1),实例分析,教授,课程,讲授,n,m,职工号,姓名,电话,课号,课时,学分,班级,学期,人数,

28、教授,课程,讲授,n,m,职工号,姓名,电话,课号,课时,学分,班级,学期,人数,?,讲授情况,p,(2),实例分析,教授,课程,讲授,n,m,职工号,姓名,电话,课号,课时,学分,班级,学期,人数,讲授情况,n,(3),实例分析,教授,课程,讲授,m,1,职工号,姓名,电话,课号,课时,学分,班级,学期,人数,讲授情况,n,(4,5),实例分析,教授,课程,讲授,m,1,职工号,姓名,电话,课号,课时,学分,班级,讲授号,人数,讲授情况,n,学期,(6),实例分析,教授,课程,m,1,职工号,姓名,电话,课号,课时,学分,n,(7),组,构成,n,m,ISA,一般课程,特定课程,讲授2,讲授1,1,参考答案,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号