




已阅读5页,还剩92页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统的发展概念模型和数据模型关系模型与关系数据库关系数据库体系结构关系模型的运算理论简介,第2章关系数据库基本知识,数据库是信息系统的基本数据组织方式,它将经过抽象的信息以一定的数据结构描述并集中成为资源,支持对这些数据资源进行统一规划和集中管理,实现数据的多用户共享、多应用共享。关系数据库是目前最成熟和应用最广泛的数据库系统。,2.1数据库技术的发展,1.第一代数据库系统(20世纪6070年代)网状模型数据库和层次模型数据库为代表。实现了数据管理的“集中控制与数据共享”这一基本目标。主要代表产品:1963,美国GE的Bachman等人开发成功世界上第一个网状数据库系统IDS。1969,美国IBM的第一个商品化层次数据库管理系统IMS。19691970,美国CODASYL提出了DBTG报告,建立了以网状数据库模型为基础的数据库系统概念。主要特点:支持数据库三级抽象模型的体系结构;用存取路径(指针)来表示数据间的联系;数据定义语言和数据操作语言相对独立,数据库语言采用过程性导航式语言。,Bachman于l973年获美国计算机协会(ACM)颁发的图灵(Turing)奖。,所谓导航就是指用户不仅要了解“要干什么”,而且要指出“怎么干”。用户必须使用某种高级语言编写程序,一步一步地“引导”程序按照某一条预先定义的存取路径来访问数据库,最终达到要访问的数据目标。在访问数据库时,每次只能存取一条记录值。若该记录值不满足要求就沿着存取路径查找下一条记录值。导航式的数据操纵其优点是存取效率高。存取路径由应用程序员指定,应用程序员可以根据他对数据库逻辑模式和存储模式的了解选取一条较优的存取路径。从而优化了存取效率。缺点是编程繁琐。用户既要掌握高级语言又要掌握数据库的逻辑结构和物理结构,程序设计很大程度依赖于设计者自己的经验和实践,因而只有具有计算机专业水平的应用程序员才能掌握和使用这类数据库操纵语言。应用程序的可移植性较差,数据的独立性也较差。,2.第二代数据库系统(20世纪7080年代)20世纪70年代初,关系数据模型的提出,关注和争论。以E.F.Codd为代表的理论研究成果获得肯定。代表产品:1976,IBM公司SystemR,并先后推出了SQL/DS(1982年)和DB2(1985年)两个商品化关系数据库系统。1976,美国加州大学Berkeley分校开发INGRES,1981年商品化。1979年美国ORACLE公司推出用于VAX小型机上的Oraclev2.0,第一次实现使用SQL语言的商品化关系数据库软件。关系模型建立在严格的数学理论基础之上,它概念简单、清晰,易于用户理解和使用。20世纪80年代以后逐渐走向成熟。一批商品化关系数据库软件:如Oracle、Sybase、Informix、INGRES、SQLServer等。,3.新一代数据库系统(20世纪80年代以后)随着计算机的广泛应用和信息社会的发展,特别是一些新的应用领域,如CAD/CAM、办公信息系统、地理信息系统、知识库系统、实时系统等,不断提出新的应用要求,上述传统数据库都表现出不同程度的局限性。新的数据库需要支持以下一些功能:存储和处理复杂对象。支持复杂的数据类型。具有高性能的处理能力。支持快捷的应用开发。,“应用驱动”和“技术驱动”相结合形成了新一代进入商业化应用的数据库管理系统的大家族。,分布式数据库允许用户开发的应用程序把多个物理分开的、通过网络互联的数据库当作一个完整的数据库看待。并行数据库通过集群技术把一个大的事务分散到集群中的多个节点去执行,提高了数据库的吞吐量和容错性。多媒体数据库提供了一系列用来存储图像、音频和视频对象类型,更好地对多媒体数据进行存储、管理、查询。,数据库系统的发展趋势可以归纳为以下三个方面:(1)从数据模型角度看经典的数据库系统有采用层次、网状和关系数据模型的数据库系统,其中关系数据库是应用最广泛的数据库。(2)从技术角度看数据库技术与其他信息技术的有机结合使数据库理论、应用研究都有重大的发展,并且建立了一系列新型的数据库技术。(3)从应用角度看网络环境下的数据库应用尤其是Internet环境下和移动环境下的数据库应用迅速发展。多元化的数据库应用要求,促进了各种专门应用领域的数据库技术发展。,2.2数据模型,数据模型用来抽象、表示和处理现实世界中的数据和信息,以便于采用数据库技术对数据进行集中管理和应用。一个好的数据模型应能比较真实地模拟现实世界,容易为人们理解并便于计算机表达。,数据模型的概念数据库中的基本数据模型,数据模型是指构造数据结构时所遵循的规则以及对数据所能进行的操作的总称,是现实世界的模拟和抽象。,概念数据模型(概念模型,信息模型),结构数据模型(数据模型),数据模型设计包括概念模型设计和数据模型设计两个阶段。,(1)概念模型又称信息模型,是按用户观点将信息模型化。它把现实世界中的具体事物进行认识抽象,形成信息世界中的概念模型,它是不依赖于特定数据库管理系统的一种信息结构。(2)数据模型数据模型是按计算机观点将数据模型化,是机器世界中数据之间关系及其操作的描述。根据概念模型,设计者需将其转换为某一个数据库管理系统支持的数据模型(例如关系模型),形成机器可处理的数据结构模型。,2.2.1概念模型,概念模型不依赖于具体的计算机系统和DBMS,它是对要开发的信息系统所涉及的客观对象相关信息的抽象描述,是信息系统分析的有效交流工具,是结构数据模型设计的基础。典型的概念数据模型是实体联系模型(Entiry-RelationshipDataModel,简称E-R模型),实体联系模型采用“实体联系”图来表示,简称E-R图。E-R图的最大优点是比较简单、有效和灵活,对于技术和非技术人员来说都可以很快地学会和使用,并可卓有成效地针对数据需求进行讨论,辅助技术开发人员和最终用户间沟通的沟通。,E-R图,(1)实体:是指现实世界客观存在并可相互区别的事物,例如学生实体。在E-R图中,实体用矩形表示,中间书写实体名。,(2)属性:是实体中每个成员具有的特性。例如,在学生实体中,性别属性的域为“男”,“女”。在E-R图中,属性用椭圆形表示,中间书写属性名,并用直线连接到相关的实体。(3)关键字:可以唯一标识实体的一组最小的属性集合称为关键字。例如,学号是学生实体的关键字。在E-R图中,关键字属性用下划线表示。,E-R图主要包括实体、实体的属性和实体间的联系。,(4)联系:是实体之间的一种关联。联系也可以具有属性。例如,学生选课是一个联系,反映了学生实体与课程实体的一种关联,成绩可作为学生选课联系的一个属性。在E-R图中,联系用菱形表示,中间书写联系名,并用直线将它与关联的实体相连接。,在E-R图中,联系的类型有三种:一对一联系(1:1):实体A中的每一个成员最多与实体B中的一个成员相关联,反之亦然。一对多联系(1:n):实体A中的每一个成员可以与实体B中的多个成员相关联,反之,实体B中的每一个成员最多与实体A中的一个成员相关联。多对多联系(m:n):实体A中的每一个成员可以与实体B中的多个成员相关联,反之,实体B中的每一个成员也可以与实体A中的多个成员相关联。,学校教务管理中的几个E-R图,一对一联系,学生实体与优培生实体的联系是一对一的联系,因为一个学生最多只能被选拔为优培生一次,而一个优培生只能对应一个学生。,其他例子:班长实体和班级实体主教练实体和球队实体某场电影的观众和座位,一对多联系,班级实体与学生实体的联系是一对多的联系,因为一个班级中有若干个学生,而每一个学生只属于一个班级。,其他例子:单位实体和职工实体大楼实体和房间实体,多对多联系,学生实体与课程实体的联系是多对多的联系,因为一个学生可以同时选修多门课程,而一门课程可以被多个学生选修。,其他例子:供应商实体和商品实体电影实体和演员实体,结构数据模型(简称数据模型)由概念模型转换获得,是能被计算机处理直接处理的数据模型。结构数据模型由数据结构、数据操作和数据完整性约束三部分组成,是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。,2.2.2数据模型,(1)数据结构:是对所关心的数据对象及其相互关系的描述。数据结构规定了如何把基本的数据项组织成较大的数据单位,以描述数据的类型、内容、性质和数据之间的相互关系。数据结构是对数据模型静态特性的描述(2)数据操作:是指对数据库中各种对象(如关系模型中的关系)的实例(即值)允许执行的操作的集合,包括操作及其有关的操作规则。数据库中的操作主要有检索和更新两大类。数据模型需要定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。数据操作是对数据模型动态特性的描述(3)数据完整性约束:数据完整性约束条件是一组数据完整性规则的集合。数据完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定基于数据模型的数据库的状态以及状态的变化,以保证数据库中数据的正确、有效和相容。数据完整性约束是对数据模型中数据状态转换时制约关系的描述。,在数据库领域中应用的数据模型有:层次模型(树)网状模型(图)关系模型(表)面向对象模型(对象)以相关模型为基础开发的数据库管理系统分别为层次数据库、网状数据库、关系数据库、面向对象数据库等。,层次模型,层次模型将实体之间联系描述为称树状。下面为一模型和数据组织实例。,网状模型,网状模型将实体之间联系描述为图。它比层次模型提供更大的灵活性,但在概念上、数据结构上都更复杂,编程较复杂,操作上也有诸多不便。下图为一网状模型举例。,关系模型,关系模型中实体以“表”的形式来表现。表的每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。这种表格在数学上称为关系。实体间的联系通过表的公共属性来描述。下面是一个建立了联系的学生表和班级表。,多个表以及它们之间的联系,就构成了一个数据库。,该数据库中包含6张表,分别描述学生、班级、课程、教师、选课、优异生6个实体,可以支持实现一个简单的教务管理系统。,关系模型具有许多优点,主要有:以关系代数和数理逻辑为数学基础,经过多年发展,形成了严密的关系数据库理论。数据结构简单、清晰,概念单一,即无论实体还是实体之间的联系都用关系(即表)来表示,对关系数据的检索结果也是关系。存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库建立的工作。关系模型的缺点主要由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化。以关系模型组织的数据库系统称为关系数据库系统,它最为成熟,例如Oracle、Sybase、Informix、INGRES、SQLServer等关系数据库管理系统广泛应用于信息系统建设。,关系数据库是以关系模型为基础的数据库。它与层次数据库、网状数据库相比,具有数据模型简单灵活、数据独立性高、语言接口性能好等优点,并且有着比较坚实的数学理论基础,是目前最成熟的数据库。关系模型由关系数据结构、关系操作集合和数据完整性约束三部分组成。,2.3关系模型与关系数据库,1基本表结构,表:关系模型的数据结构单一,采用二维表结构来表示实体和实体之间的关系。一个关系对应于一张二维表。属性:表中每一列(也称字段、数据项)描述实体集的某个特征,在关系数据库中被称为属性;每一个属性都有自己的取值范围,称为域。元组:表中的每一行由一个实体的相关属性取值构成,称为元组,它相对完整地描述了一个实体。一个元组在关系数据库中也被称为一条记录。元组中的一个属性值称为分量。,【例2-1】优异生表,分量,属性(字段),记录,注意:关系是二维表格,但这个二维表格是有限制的:表中的每一属性必须是基本数据类型。例如整型、实型、字符型等,数组或结构等不能作为属性的类型。表中的每一列的所有值必须是同类型、同语义的。例如表中的某一列包含学生的学号,则此表中所有行的此列都必须是学生的学号。属性的值只能是所规定的域中的值。例如规定工资表中基本工资是正数,那么任何一个职工的基本工资都只能是正数;规定学生的性别只能在“男”或“女”中取值。表中的每一列都必须有唯一的名字,但不同的属性值可以出自相同的域,即它们的分量可以取自于同一个域。列在表中的顺序可以任意交换。表中任意两个元组的值不能完全相同,即不允许有重复的行。行在表中的顺序可以任意交换。表中的每一个分量必须是不可分的数据项,不允许出现“表中有表”的现象。,【例2.2】一个表中不同的属性具有相同域。,【例2.3】表中每一个分量都是不可分的数据项。不可出现“表中有表”的现象。,职业与兼职取自同一个域集合:职业教师,工人,辅导员,作家。,修改为,在一个关系模式中,关键字是保证表中记录具有唯一性的一种机制。(1)候选关键字也称候选码,是关系表中按应用语义能唯一标志元组的最小属性的集合。在最简单的情况下,候选关键字只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选关键字,称为全码。,2.关键字,例如:以上学生表中,“学号”是候选关键字,“身份证号”也是候选关键字,如果规定学生不允许重名,那么“姓名”也是候选关键字。,(2)主关键字主关键字(PrimaryKey)也称主键,用户指定的用来在关系表中唯一标识元组的一个候选关键字。若一个关系有多个候选关键字,则只选定其中一个为主关键字。主关键字的值不能为空、不能重复。,在选课表中,属性集合(学号,课号)是候选关键字。,提示:一般情况下,为每个关系表都要定义主关键字,以保证任意两行数据不完全相同。,【例2.4】主关键字的唯一性语义:学生表的主关键字的选择。,学生表中,有3个候选关键字:“学号”,“身份证号”,“姓名”。可以从其中选择任何一个做主关键字。那选哪个呢?“姓名”做主关键还是有些限制(不能重名);“身份证号”太长,使用不方便;“学号”简洁,使用方便,在实际生活中也被用来唯一区分学生,所以该表选“学号”作主关键字最合适。,【例2.5】主关键字可以是一个属性组:选课表的主关键字选择。,该表的候选关键字只有一个(学号,课号),所以别无选择,只能用它做主关键字!注意:候选关键字和主关键字可以唯一标识一条记录,它可以是一个属性,也可以是多个属性组成的属性组,由用户根据语义定义。想一想,如果需要在表中记录多次补考成绩,如何修改表,关键字如何设置?,现实世界中的事物是相互联系的,这种联系需要通过数据模型体现出来。联系可分为两种:(1)实体内部的联系,它反映了不同属性之间的联系,这在表的关系模式中已经被定义和体现。例如,一个学号确定了一个学生的姓名。(2)实体之间的联系,在概念模型中采用E-R图描述,反映到关系模型中就是表和表之间的关系。,3.表之间的关系,在关系数据模型中表和表之间的关系通过连个表的公共属性来实现。例如:学生表和班级表通过公共属性“班号”建立了一对多的关系。,在设计数据库和数据表时,可把复杂的事物进行分解,建立多个表来描述,并通过表之间的关系使信息仍保持整体的逻辑结构。,在多表间提取相关信息。,表之间关系的作用,例如,要查询学生“林豆豆”的班级名称,可先从学生表中查出她的班号是“11”,然后根据班号“11”在班级表中查出对应的班级名称“数学01”。,建立表之间的约束,维护数据的完整性和一致性。,减少数据存储冗余。,例如,学生表的“班号”取值必须是班级表中“班号”的存在值。这样可保证不出现没有班级信息的学生。,例如,一个班级的有关班级信息只需在班级表中存储一次,而不必在学生表中反复存储。,两个表具有能体现实体实际存在关系的公共属性。,两个表建立关系的一般原则,例如,学生表和班级表有实际含义相同的公共属性“班号”。,该公共属性至少在其中一个表中是主关键字。,例如,“班号”在班级表中是主关键字。,(1)外关键字,两个表建立关系的相关概念,一个表中的主关键字与另一个表中与该主关键字相同的属性建立联系,这个起到联系作用的属性,称为另一个表的外关键字,简称外键。例如,“班号”是学生表的外关键字。,(2)主表和外表,当两个表关联后,用于建立联系的公共属性作为主关键字所在的表称为主表,另一个表称为外表。例如,在下面关系中,班级表是主表,学生表是外表。,用连线指示了两个表之间的关系,连线有箭头一端的表为主表,主表中用于建立关系的属性是主关键字;连线另一端是外表,外表中用于建立关系的属性是外关键字。,主表,外表,【例2.6】班级表和学生表之间的一对多关系。,提示:建立关系的公共属性只是其中一个表的主关键字时,建立的一定是一对多关系。,学生实体和班级实体存在着属于关系,一个班级由多名学生构成,任何一个学生都属于且仅属于某一个班级。它们通过“班号”可建立一对多关系。,学生实体和优培生实体有包含关系,优培生是学生的一个子集,而且一个学生只能被选拔一次。它们的共同属性是“学号”,可以用来建立一对一关系。,主表,外表,提示:1)主表对外表的限定作用要强于外表对主表的限定作用,根据实际的关系分析,选择一般性、主导性信息所在的表作为主表比较合适。2)当外键也是外表的主键时,即建立关系的公共属性在两个表都是主关键字时,建立的一定是一对一关系。,【例2.7】学生表和优培生表之间的一对一关系。,【例2.8】教师表和课程表之间的一对多关系。,教师实体和课程实体之间存在授课关系。它们没有名字相同的属性,但教师表中的属性“工号”和课程表中的属性“任课教师”,数据类型和含义相同,且“工号”在教师表中是主关键字,可以用这对属性建立一个一对多关系,教师表是主表,课程表是外表。,主表,外表,【例2.9】如何描述学生表和教师表之间的关系?学生实体和教师实体之间存在师生关系(任课、指导教师、班主任等)。,以上结构的表直接建立关系无意义,可以选择以下设计表达以上某种师生关系:任课关系。通过学生表和课程表之间的关系、以及教师表和课程表之间的关系,可以找到任课教师信息。指导教师关系。可以在学生表中增加一个属性“工号”,用来记载该生的指导教师,然后利用“工号”来建立学生表和教师表的关系。班主任。在班级表中增加一个属性“工号”,用来记载该班的班主任,然后在班级表和教师表之间建立关系。由于学生表和班级表之间已经建立了关系,在应用中,用户可以间接获得这种师生关系信息。,尽管数据库中的各个表是独立的,但是表与表之间可以通过外关键字建立相互联系,从而构成一个整体的逻辑结构。从上图还可以看出,除了外关键字和一些必需的属性外,这些表中尽可能地减少了数据冗余。,表中的行定义(即表头)是实体相关属性的集合,称为该表的关系模式。关系模式就是对关系的描述,包括关系名、组成该关系的属性名、属性向域的映象。关系模式通常记为:关系名(属性名1,属性名2,属性名n)属性向域的映象直接说明为属性的类型、长度。,4.关系模式,在教务系统数据库中几个关系模式表示如下,其中加下划线的属性是主关键字:学生(学号,姓名,性别,出生日期,班号),班号是外键(班级:班号)优培生(学号,认定时间,学分绩点),学号是外键(学生:学号)班级(班号,班名,专业)课程(课号,课程名,学分,任课教师),任课教师是外键(教师:工号)选课(学号,课号,成绩),学号是外键(学生:学号),课号是外键(课程:课号)教师(工号,姓名,性别,进校日期,职称),关系模式确定后,在数据库物理设计阶段可以用表格来直观地详细描述关系模式的定义。每一个被定义的关系模式包括关系名、属性名,以及属性域的类型和约束、关系模式的主关键字和外关键字。,学号”的类型为长度为4的字符串;“课号”是长度为3的字符串;“成绩”为精度为4且保留1位小数的数值型。该表的主关键字为(学号,课号);该表通过“学号”与学生表建立关系,是学生表的外表,该表通过“课号”与课程表建立关系,是课程表的外表。,【例2.10】选课表的关系模型的表格描述。,2.3.2关系完整性约束,数据库必须保证所有表中的数据值与其所描述的应用对象的实际状态保持一致。关系模型通过关系完整性约束条件来保证数据的正确性和一致性。所谓约束条件主要是指在表和列上定义的规则,数据库管理系统会依据这些约束条件维护数据完整性。,域完整性规则实体完整性规则参照完整性规则,1域完整性,域完整性规定了属性的值必须是属性值域中的值。域完整性又称为用户自定义完整性。它是在关系数据模型定义时,由用户对属性列值的数据类型、长度、单位、精度、格式、值域范围、是否允许为“空值”等进行限定。,所谓“空值”就是“不知道”或“无意义”的值。应当注意,空值不等于数值零,也不等于空字符或空字符串。例如,没有成绩与成绩为零分显然是不同的。,【例2.15】表的域完整性规则应用。,关系数据库系统的域完整性的检查功能,会依据用户设置的规则限制不合法数据的填入,不需应用程序承担检查工作。,2实体完整性,实体完整性是指关系中的元组在组成主关键字的属性上不能有空值且主关键字的值不能相同。要注意实体完整性规则是针对基本关系表而言的。实体完整性主要是为了保障主关键字能唯一标识关系中的每个记录。大多数关系数据库都支持实体完整性检查,如果表中定义了主关键字,系统将进行强制检查。,【例2.14】表的实体完整性规则应用。,学生表中,“学号”是主关键字。假定向学生表新加一条学生“王秋水”的记录,系统拒绝该记录的添加,因为它违反了实体完整性规则,即学生表中已存在一条主关键字取值为“1103”的记录。,3参照完整性,参照完整性要求一个外表的外关键字的取值必须是其主表主关键字的存在值或空值。因为数据库的表之间并不是完全不相关的,甚至有些属性字段在多个表中重复出现,为了保证数据完整性,需要对表之间的数据进行约束。参照完整性是在表之间关系的基础上实施的表之间的数据约束。,【例2.15】表的参照完整性规则应用。,在学生表和班级表建立关系后,学生表中“班号”是外关键字,它的取值必须是空值或在班级表中“班号”属性中出现过的值。如果学生表的班号字段允许为空,它取空值表示该学生还没有确定班级;否则只能取班级表出现过的班号值,即班级表中有该班级的记录。,对数据库进行修改时,可能会破坏表之间的参照完整性,所以为了保证数据库中的数据的完整性,应该对数据库的修改加以限制,这些限制包括:插入约束、删除约束和更新约束。(1)插入约束:当在外表中插入新记录时,必须保证其中的外关键字值在主表中出现过。,【例2.16】表的参照完整性的插入约束。向学生表中添加一个学生“王秋水”的记录。,插入约束会拒绝该记录的添加,因为班级表中不存在“班号”是“88”的班级,该记录违反了参照完整性规则。,(2)删除约束:当要从主表中删除一条记录时,必须考虑外表数据的完整性。一般有两种约束。一是限制删除,即如果系统检查该记录的主关键字值在某个外表中出现过,则不允许删除。二是级联删除,即如果系统检查该记录的主关键字值在某个外表中出现过,则在删除主表中该记录的同时,将外表中与主关键字值对应的记录全部删除。,【例2.17】表的参照完整性的删除约束。删除班级表中“班号”是“11”的记录,1.限制删除:不允许删除;2.级联删除:同时删除学生表所有中“11”班的学生。,(3)更新约束:如果要修改主表中的主关键字值,必须考虑外表数据的一致性。一般有两种约束。一是限制更新,即如果系统检查该记录主关键字值在某个外表中出现过,则不允许更新。二是级联更新,即如果系统检查该记录主关键字值在某个外表中出现过,则在更新主表中该记录的同时,将外表中与主关键字值对应的记录的外关键字值全部更新。,【例2.18】表的参照完整性的更新约束。欲将班级表中“班号”是“11”的记录的班号更改为“88”。,1.限制更新:不允许更新;2.级联更新:同时更新学生表所有中“11”为“88”。,通过以上例子的分析可以发现,保证数据的一致性和完整性对数据库是至关重要的。在数据库设计时,必须充分考虑和应用关系完整性规则,以避免产生数据的不完整和不一致,给应用带来困难。完整性约束也可以大大减少垃圾数据在数据库中的堆积。合理地利用关系完整性规则还可以简化应用程序开发,因为有些数据可以通过关系由数据库系统自动维护。目前多数关系数据库都提供了比较完善的约束机制。只要用户在定义数据库时定义好约束规则,数据库管理系统会自动维护这些完整性约束来保证数据的完整性和一致性。,练习题在数据库中有如下图所示的两个表,若职工表的主键是职工号,外键是部门号,部门表的主键是部门号。在如下数据库操作中,不能成功执行的是_。,A)从职工表中删除行(025,王百万,03,2900)B)将行(005,乔兴,04,750)插入到职工表中C)将职工号为“001”的工资改为5700D)将职工号为“003”的部门号改为03,2.3.3关系操作,关系数据模型的数据操作是以关系代数和关系演算为理论基础的。关系表可以看作是记录的集合。传统的集合操作包括并、交、差、广义迪卡儿积等,这些集合操作对应了数据库针对行的基本操作。关系模型还专门定义了针对列的操作包括选择、投影、连接等。所有这些操作的结果,仍然是一个集合。本书在2.5节介绍关系数据库操作的有关理论基础。,在关系模型各种操作运算的支持下,关系数据库主要支持以下一些针对关系表的操作(查、插、删、改):插入:在一个表中插入一条或多条新记录。删除:从一个表删除一条或多条满足条件的记录。修改:在一个表中修改满足条件的记录的某些字段的值。查找:从一个或多个表中提取满足条件的数据、生成计算列或汇总数据。,关系数据库基本操作,关系数据库操作语言,关系数据库的基本操作语言是SQL(StructuredQueryLanguage)。SQL语言以简洁的语法支持数据库的各类操作(查、插、删、改)。SQL语言独立于数据库本身,独立于使用的机器、网络和操作系统。,2.4关系数据库体系结构,2.4.1关系数据库体系结构从数据应用的角度来看,使用数据库有4类人员:用户、应用程序员、系统分析员和数据库管理员。由于他们对数据库的认识、理解和接触范围各不相同,从而形成了各自的数据库视图。根据各类人员与数据库的不同关系,可把视图分为3种:对应于用户和应用程序员的外部视图;对应于系统分析员以及数据库管理员的逻辑视图;对应于数据库管理员的内部视图。,由此形成数据库的三级模式结构,即:外模式:数据库的局部视图逻辑模式:数据库的全局逻辑结构内模式:数据库的存储结构,系统分析员&数据库管理员,用户和应用程序员视图,数据库管理员,1模式模式又称逻辑模式,对应于一个应用的所有关系模式的集合以及关系完整性约束、所允许的关系操作。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图。它是系统分析员以及数据库管理员所看到的全局数据库视图。一个数据库只有一个逻辑模式。逻辑模式可以采用数据定义语言DLL描述。,教务系统数据库的关系图,反映了教务系统数据库的逻辑模式的概要信息。,2外模式外模式又称子模式或用户模式,对应于用户级,是某个或几个数据库用户和应用程序员所看到的数据库的局部数据视图。外模式是从模式导出的子模式,可以利用数据操纵语言DML对外模式进行操作。一个数据库可以有多个外模式。,一个外模式只是用户的一个视图,只是关系模式的一个局部,是数据库的子模式。关系模型的外模式除了指出某一类型的用户所用到的数据外,还要指出这些数据与关系模式中相应数据的关系,即要指出关系模式与外模式之间的变换。外模式可以通过定义“查询”或“视图”从“基本关系模式”导出。“查询”是根据指定条件对基本表进行查询所得的结果表,是临时表,虽然是实际存在的表,但数据也是来自基本表,且一般不再使用,具有一次性和冗余性的特点。“视图”是为了方便查询和处理而设计的数据虚表,在数据库中只存储结构的定义,而没有存储对应的数据,数据来自数据库中的基本表。,【例2.19】从学生表变换得到学生生日视图。,如果只对学生表中的“姓名”和“出生日期”感兴趣,可定义子模式:学生生日(姓名,出生日期),则形成一个视图,从模式“学生表”导出子模式“学生生日”的变换如图所示。,【例2.20】从学生表、课程表和成绩表变换得到学生成绩子模式。,如果希望获得分布在三个表中的三个字段“姓名”,“课程名”和“成绩”,可定义子模式:学生成绩(姓名,课程名,成绩),从模式“学生表”、“课程表”和“选课表”导出子模式“学生成绩”的变换如图所示。,3内模式内模式又称存储模式,是全体数据库数据的机器内部表示或存储结构描述,是真正存放在外存储器上的物理数据库,它描述了数据记录、索引、文件的组织方式和在存储介质上的物理结构。内模式是数据库管理员创建和维护数据库的视图。一个数据库只有一个内模式。,内模式主要关注以下问题:(1)关系存储,数据库逻辑结构中的关系模式与系统平台无关,但数据库存储模式必须考虑具体的计算机系统和所选定的DBMS,采用它们所支持的数据类型描述和完整性约束规则来定义数据表,并选取DBMS所支持的数据库文件结构存储方法,设计数据库文件的存储位置。,(2)关系存取在数据库管理系统中,关系表中的数据按记录存储。为了提高对数据记录的查询效率,通常采用索引方法来建立数据记录的存取顺序。索引与书的目录或字典检字索引的原理是一样的。数据库管理系统一般集成了多种复杂的快速查找算法,但这些算法基本上都是以数据记录排序为前提的。索引的概念索引是由一个表中的一列或者若干列的值与其对应的记录在数据表中地址所组成。数据库中一个表的存储由两部分组成:数据页面和索引页面。,创建索引的目的是为了改善查询性能、加快依据索引字段对表中数据行的检索、强制保持表的数据唯一性等。索引虽然能改善查询性能,但也耗费了磁盘空间,并且当对数据表进行数据增加、修改或删除时,系统需要花费一些时间来维护索引,所以通常不在一个表上建立太多索引,也不建立不常使用的索引。一般来说,需要在下面这些地方建立索引:在主键和外键上创建索引。在检索频繁的字段上建立索引。在经常需要排序的字段上建立索引。,索引的分类1)聚集索引聚集索引是对表中的数据行按指定索引字段值进行排序后再重新存储到磁盘上,使数据表的物理顺序与索引一致。聚集索引的优点是它的检索速度比非聚集索引快。缺点是聚集索引重组了表的物理顺序,维护索引的时间和空间消耗都比较大。每个表只能建立一个聚集索引。2)非聚集索引非聚集索引具有完全独立于数据行的结构,建立非聚集索引不需要将数据表中的数据行按索引字段值重新排序。非聚集索引的优点是不需要改变数据行的存储顺序,而且可以建立多个非聚集索引。,4数据库的三级模式的关系数据库的三级模式是数据模型在三个级别的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的表示和存储,把数据的具体组织交给数据库管理系统。为了实现三个抽象层次间的联系和转换,数据库管理系统在三个模式间提供了两级映象,这两级映像保证了数据的独立性:外模式/模式的映象模式/内模式的映象,外模式/模式的映象。保证了数据的逻辑独立性,即当数据库的逻辑结构发生变化时,可通过调节外模式与模式间的映象关系,从而保证外模式不变,那么建立在外模式基础上的应用程序也不变。例如,有关系学生(学号,姓名,性别,年龄,专业),并为计算机专业学生建立了外模式CS学生(学号,年龄),应用程序中根据外模式“CS学生”编写。在后期将“年龄”字段改为“出生年月”。这时只要通过调整从模式/外模式的映像就可以保持外模式不变,即原来外模式中“年龄”直接从学生关系中获得,改为外模式中的“年龄”通过“出生年月”计算得到。外模式不变,建立在外模式上的应用程序也不用修改,这样,就实现了数据的逻辑独立性。,模式/内模式的映象模式/内模式的映象保证了数据的物理独立性,即当数据的存储结构发生变化时可以通过调节模式/内模式之间的映像关系从而保证模式不变。因为模式不变,外模式也就不变,建立在外模式上的应用程序也不变。例如:学生关系的存储位置、存取方式发生的变化,可以通过调整模式/内模式之间的映像关系从而保证模式不变。,1教务系统数据库的逻辑模式,2教务系统数据库的逻辑数据库结构各个表的数据库物理结构设计如教材中表2.12.6所示。,2.4.2一个教务系统关系数据库,关系数据模型的数据操作是以关系代数和关系演算为理论基础的。关系演算是和关系代数等价的关系运算数理逻辑表示方式。了解关系模型的数学基础,对于理解关系模型、设计数据模式和实现应用很有帮助。,下面简单介绍:关系定义关系运算,2.5关系模型的运算理论简介,2.5.1关系定义在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系(二维表)来表示。下面首先以关系代数中的集合理论引出关系定义。,域是一组具有相同数据类型的值的集合。例如,非负整数、整数、实数、长度小于25字节的字符串集合、0,1、大于等于0且小于等于100的正整数等都可以是域。,1域,【例2.21】有下列三个集合表示的域。D1=陈佳迪,徐瑶琪,表示学生的集合;D2=男,女,表示性别的集合;D3=上海,浙江,山西,表示籍贯的集合。,给定一组域D1,D2,Dn(这些域中可以有相同的域),则定义D1,D2,Dn的笛卡儿积为:D1D2Dn(d1,d2,dn)|diDi,i1,2,n,笛卡儿积得到的也是一个集合,这个集合中的每一个元素称为一个n元组,简称元组。元组中的每一个di称为元组的一个分量,分别取自相应的集合Di。,【例2.22】例2.21中三个域的笛卡儿积。其中每个元素是个3元组。,2笛卡儿积,笛卡儿积D1D2Dn的任意一个子集称为D1,D2,Dn上的一个n元关系,通常用R(D1,D2,Dn)表示,这里R为关系名,n是关系的度。所以关系也是一个集合,它的元素为元组,通常用R表示。关系可以直观地用一个二维表表示,表的每一行对应一个元组,表的每一列对应一个域。由于域可以相同,为了加以区分,应对每列起一个名字,称为属性。显然,n元关系必有n个属性。,【例2.23】从例2.22中笛卡儿积来构造一个关系。,从笛卡尔积中选取有意义的元组构成的子集,获得名为“学生”的关系模式,记为:学生(姓名,性别,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- project考试试题及答案
- 电缆厂检验知识培训课件
- 电煤知识培训内容摘要模板课件
- 本科线性代数考试题目及答案
- 高热惊厥科普课件
- Nicomol-Standard-生命科学试剂-MCE
- Acedapsone-d8-生命科学试剂-MCE
- MEDI-8852-生命科学试剂-MCE
- 保险学第七版考试题库及答案
- 专升本考试题目及答案
- 2025至2030中国PCIE行业项目调研及市场前景预测评估报告
- 2025广东深圳市光明区统计局招聘(选聘)专干4人笔试参考题库附答案解析
- 2025年人防工程试题及答案
- 安全烹饪知识培训内容课件
- 2025年通信专业技术-通信专业技术(中级)-中级通信专业技术(交换技术实务)历年参考题库含答案解析(5套)
- 中小学校长在2025秋季开学第一次全体教师大会上讲话:人心决定温度人格决定高度人品决定厚度
- 2025年cnc初级技工考试题及答案
- 露天煤矿无人驾驶技术应用发展报告
- 复变函数与积分变换全套课件
- 高一新生入学家长会课件(PPT 23页)
- 四川省初中毕业生登记表
评论
0/150
提交评论