资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,返回,2,关系模型,1,三种,主要的数据模型:,层次模型,网状模型,关系模型,其中,关系模型,简单灵活,并有着坚实的理论基础,已成为当前,最流行,的数据模型。,本章主要讲述,:,关系数据库的基本概念,关系的定义和性质,E/R,到关系的转换,2.1,引子,2,层次模型,用,树型(层次),结构表示实体类型及实体间联系的数据模型称为层次模型(,hierarchical model,)。,层次模型的特点是:记录之间的联系通过,指针,来实现,查询效率较高。,与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由,DBMS,完成。,层次模型有两个缺点:,一是只能表示,1:N,联系,虽然系统有多种辅助手段实现,M:N,联系但较复杂,用户不易掌握;,二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。,3,网状模型,用,有向图结构,表示实体类型及实体间联系的数据模型称为网状模型(,network model,)。,网状模型的特点是:记录之间联系通过,指针,实现,,M:N,联系也容易实现(一个,M:N,联系可拆成两个,1:N,联系),查询效率较高。,网状模型的缺点是:数据结构复杂和编程复杂。,4,2.2,关系模型由来,关系模型是发展较晚的一种模型,,1970,年美国,IBM,公司的研究员,E.F.Codd,首次提出了数据库系统的关系模型。,他发表了题为“大型共享数据银行数据的关系模型”(,A Relation Model of Data for Large Shared Data Banks,),在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究,,他为此获得了,1981,年的图灵奖。,此后许多人把研究方向转到关系方法上,陆续出现了关系数据库系统。,1977,年,IBM,公司研制的关系数据库的代表,System R,开始运行,其后又进行了不断的改进和扩充,出现了基于,System R,的数据库系统,SQL/DB,。,5,20,世纪,80,年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了关系接口。,数据库领域当前的研究工作也都是以关系方法为基础。,关系数据库,已成为目前,应用最广泛,的数据库系统,如现在广泛使用的小型数据库系统,Foxpro,、,Acess,,大型数据库系统,Oracle,、,Informix,、,Sybase,、,SQL Server,等都是关系数据库系统。,6,1.,关系模型的基本概念,关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为,关系,,所以关系模型是“关系框架”的集合。,关系模型与层次模型、网状模型不同,它是建立在,严格的数学概念,之上的。,表?熟悉,是不是很简单啊?,7,提问,【,要求,】,:构建一用来描述在校学生的数据库,要求记录的学生如下属性:学号、姓名、年龄、系别。,此设计很好的将学号、姓名、年龄、系别属性记录了下来,并且支持检索、插入、删除、更新操作。然而这是不是一个完美的设计呢?,8,再提问,问题,1,:学校有几个系?(答:,3,个),问题,2,:经管系有几个学生?(答:,2,个),问题你是怎么知道的?数出来的?!,问题,1,的答案是通过去掉系别列中的重复行后,数一数剩余的行数得到的。问题,2,的答案是通过数一数系别为经管系的行数得到的。,9,新要求,如下几个要求:,1,、学校开设一个新的系,艺术系,,然而艺术系的学生要等到两个月后才能招进来。,2,、李四毕业了,不再是,在校学生,了,将其删除。,3,、经管系现要更名成,经济管理学院,。,如何插入一个没有学生的系呢?这是一个两难的问题。由于学校有艺术系,为了能够在检索,学校有几个系,时检索到,4,,我们不得不插入一行,该行的系别字段记录上,艺术系,,而艺术系没有学生,所以我们还得让学号、姓名、年龄字段空着,10,插入艺术系,问,“,艺术系有几个学生,”,?数?不行。解题逻辑发生变化:如果人数为,1,,判断学号、姓名、年龄是否为空,如果为空则为,0,人,否则为,1,人。,删除操作:如果把李四一行删除,机械系没有了!所以也不得不修改删除逻辑,如果某系只剩下最后一条记录,就不能删除了,而起清空学号、姓名、年龄字段的内容,这么做好吗?,更新操作:经管系更名需要修改两行数据,假设刚刚修改完第一行,正要修改下一行,停电死机,当你下次开机后:经管系、经济管理学院各一个,11,解决问题,拆分成两个实体:学生、院系,规范化:将大表分解为小表的过程,目的是消除冗余和重复数据,并避免插入、修改和删除时出现问题,用范式进行规范化,范式有第一范式、第二范式、第三范式、第四范式、第五范式等,12,关系数据库基本概念实例,教学数据库的关系模型及其实例,包含五个关系:教师关系,T,、学生关系,S,、课程关系,C,、选课关系,SC,和授课关系,TC,,分别对应五张表。,下面以其为例,介绍关系模型中所涉及的一些基本概念。,13,T,(教师表),TNO,教师号,TN,姓名,SEX,性别,AGE,年龄,PROF,职称,SAL,工资,COMM,岗位津贴,DEPT,系别,T1,李力,男,47,教授,1500,3000,计算机,T2,王平,女,28,讲师,800,1200,信息,T3,刘伟,男,30,讲师,900,1200,计算机,T4,张雪,女,51,教授,1600,3000,自动化,T5,张兰,女,39,副教授,1300,2000,信息,14,S,(,学生表),SNO,学号,SN,姓名,SEX,性别,AGE,年龄,DEPT,系别,S1,赵亦,女,17,计算机,S2,钱尔,男,18,信息,S3,孙珊,女,20,信息,S4,李思,男,21,自动化,S5,周武,男,19,计算机,S6,吴丽,女,20,自动化,15,C,(,课程表),CNO,课程号,CN,课程名,CT,课时,C1,程序设计,60,C2,微机原理,80,C3,数字逻辑,60,C4,数据结构,80,C5,数据库,60,C6,编译原理,60,C7,操作系统,60,16,SC,(,选课表),TC,(,授课表),SNO,学号,CNO,课程号,SCORE,成绩,TNO,教师号,CNO,课程号,S1,C1,90,T1,C1,S1,C2,85,T1,C4,S2,C5,57,T2,C5,S2,C6,80,T3,C1,S2,C7,T3,C5,S2,C5,70,T4,C2,S3,C1,0,T4,C3,S3,C2,70,T5,C5,S3,C4,85,T5,C7,S4,C1,93,S4,C2,85,S4,C3,83,S5,C2,89,17,(,1,)关系(,Relation,),一个关系对应一张二维表,如图的五张表对应五个关系。,(,2,)元组(,Tuple,),表格中的一行,如,S,表中的一个学生记录即为一个元组。,(,3,)属性(,Attribute,),表格中的一列,相当于记录中的一个,字段,,如,S,表中有五个属性(学号,姓名,性别,年龄,系别)。,(,4,)关键字(,Key,),可唯一标识元组的属性或属性集,也称为,关系键,或,码,,,如,S,表中学号可以唯一确定一个学生,为学生关系的主码,/,主关键字,。,18,(,5,)域(,Domain,),属性的取值范围,如年龄的域是(,1440,),性别的域是(男,女)。,(,6,)分量,每一行对应的列的属性值,即元组中的一个属性值,如学号、姓名、年龄等均是一个分量。,(,7,)关系模式,对关系的描述,一般表示为:关系名(属性,1,,属性,2,,,属性,n,),,如:学生(学号,姓名,性别,年龄,系别)。,19,在关系模型中,实体是用关系来表示的,如:,学生(学号,姓名,性别,年龄,系别),课程(课程号,课程名,课时),实体间的关系也是用关系来表示的,如,:,学生和课程之间的关系,选课关系(学号,课程号,成绩),20,2.,关系模型的数据操纵,数据操纵,主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。,用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户的生产率。,21,3,、关系模型的优缺点,关系模型的,优点,主要有:,(,1,),与非关系模型不同,它有较强的数学理论根据。,(,2,),数据结构简单、清晰,用户,易懂易用,,不仅用关系描述实体,而且用关系描述实体间的联系。,关系模型的,缺点,主要有:,查询效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。,22,1.,关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。,交换时,应连同属性名一起交换,否则将得到不同的关系。,例如:关系,T1,作如下交换时,无任何影响,如下表所示:,性别,姓名,男,李力,女,王平,男,刘伟,2.3,关系的重要性质,23,而作如下交换时,不交换属性名,只交换,属性列,中的值,则,得到不同的关系,,如下表,:,姓名,性别,男,李力,女,王平,男,刘伟,24,2.,同一属性名下的各个属性值必须来自同一个域,是同一类型的数据,(,职业属性下面就应该是教师工人等,不能是男人女人,),。,3.,关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。,例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。,姓名,职业,兼职,张强,教师,辅导员,王丽,工人,教师,刘宁,教师,辅导员,25,4.,关系中每一分量必须是不可分的数据项,,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为,规范化关系,,否则称为,非规范化关系,。,例如,在表,2.8,中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表,2.9,所示。,表,2.8,表,2.9,姓名,籍贯,姓名,省,市县,省,市县,张强,吉林,长春,张强,吉林,长春,王丽,山西,大同,王丽,山西,大同,26,E/R,到关系,实体集,Entity set-,关系,relation.,属性,Attributes-,属性,attributes.,关系,Relationships-,关系,例子:影星、电影、制造商(,30,页,/73,页),实体集,:,影星、电影、制造商,属性:名字、年代、长度、地址、种类等等,关系:,stars,in,、,owns,。,实体集对应的转换结果:电影(练习)、影星(,3.11,),关系转换的结果:,owns,(,3.12,)、,stars,in,(,3.13),注意:,73,页,3.2.2 R,的属性也是关系的属性,/R,涉及的键码也是,R,的属性,/,改名,27,课堂练习,62,页,3.1.1,28,2.4.1,候选键与关系键,能唯一标识关系中元组的属性或属性集,则称该属性或属性集为,候选键,(Candidate Key),,,也称,候选关键字,或,候选码,。如:,“学生关系”中的学号能唯一标识每一个学生,则属性,学号,是学生关系的候选键。,在“选课关系”中,只有属性的组合“学号,+,课程号”才能唯一地区分每一条选课记录,则属性集,“学号,+,课程号”,是选课关系的候选键。,2.4,关系的键,29,下面给出候选键的形式化定义:,设关系,R,有属性,A1,,,A2,,,An,,,其属性集,K=,(,Ai,,,Aj,,,Ak,),,当且仅当满足下列条件时,,K,被称为候选键:,1.,唯一性,(,U
展开阅读全文