数据库原理与应用教案-第二章.ppt
数据库原理与应用主讲:闫静南京航空航天大学2023/2/171数据库原理与应用第二章 数据模型n概述概述n实体联系模型实体联系模型n层次模型层次模型n网状模型网状模型n关系模型关系模型2023/2/172数据库原理与应用数据模型n在在数数据据库库中中用用数数据据模模型型这这个个工工具具来来抽抽象象、表表示示和和处处理理现现实实世世界界中中的的数数据据和和信信息息。通通俗地讲数据模型就是现实世界的模拟俗地讲数据模型就是现实世界的模拟n数据模型应满足三方面要求数据模型应满足三方面要求n能比较能比较真实地模拟真实地模拟现实世界现实世界n容易容易为人所理解为人所理解n便于在便于在计算机上实现计算机上实现2023/2/173数据库原理与应用数据模型数据模型分成两个不同的层次数据模型分成两个不同的层次(1)概念模型概念模型 也称信息模型,它是按也称信息模型,它是按用户的观点来对数据和信息建模,主用户的观点来对数据和信息建模,主要用于数据库设计要用于数据库设计(2)数据模型)数据模型 主要包括网状模型、层主要包括网状模型、层次模型、关系模型等,它是按计算机次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于系统的观点对数据建模,主要用于DBMS的实现的实现2023/2/174数据库原理与应用数据模型数据模型的组成要素数据模型的组成要素数据结构数据结构是所研究的对象类型的集合;是所研究的对象类型的集合;1.与数据类型、内容、性质有关的对象;与数据类型、内容、性质有关的对象;2.与数据之间联系有关的对象。与数据之间联系有关的对象。数据操作数据操作是指对数据库中各种对象(型)的实例是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合。包括操作及有(值)允许执行的操作的集合。包括操作及有关的操作规则(检索和更新两类);关的操作规则(检索和更新两类);数据的约束条件数据的约束条件是完整性规则的集合。是完整性规则的集合。数据及其联系所具有的制约和依存规则。数据及其联系所具有的制约和依存规则。2023/2/175数据库原理与应用数据模型概念模型概念模型将客观对象抽象成为一种不依赖具体计算机系统的将客观对象抽象成为一种不依赖具体计算机系统的信息结构。信息结构。现现实实世世界界认识抽象认识抽象信息信息世界世界概念概念模型模型机器机器世界世界DBMS支持的支持的数据模数据模型型2023/2/176数据库原理与应用数据模型n概念模型的作用概念模型的作用n概念模型用于信息世界的建模概念模型用于信息世界的建模n是现实世界到机器世界的一个中间层次是现实世界到机器世界的一个中间层次n是数据库设计的有力工具是数据库设计的有力工具n数据库设计人员和用户之间进行交流的语言数据库设计人员和用户之间进行交流的语言n对概念模型的基本要求对概念模型的基本要求n较较强强的的语语义义表表达达能能力力,能能够够方方便便、直直接接地地表表达达应用中的各种语义知识应用中的各种语义知识n简单、清晰、易于用户理解。简单、清晰、易于用户理解。2023/2/177数据库原理与应用数据模型信息世界中的基本概念信息世界中的基本概念(1)实体(实体(Entity)客观存在并可相互区别的事物称为实体。客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。可以是具体的人、事、物或抽象的概念。(2)属性(属性(Attribute)实体所具有的某一特性称为属性。实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。一个实体可以由若干个属性来刻画。例:职员实体属性例:职员实体属性:(职员号、姓名、性别、出生日期、职称(职员号、姓名、性别、出生日期、职称)(3)码(码(Key)唯一标识实体的属性集称为码。唯一标识实体的属性集称为码。2023/2/178数据库原理与应用数据模型(4)域(域(Domain)属性的取值范围称为该属性的域。属性的取值范围称为该属性的域。(5)实体型(实体型(Entity Type)用实体名及其属性名集合来抽象和刻画的同类实体用实体名及其属性名集合来抽象和刻画的同类实体例:学生实体型例:学生实体型:学生(学号,姓名,年龄,性别,系、年级学生(学号,姓名,年龄,性别,系、年级)(6)实体集(实体集(Entity Set)同型实体的集合称为实体集同型实体的集合称为实体集(7)联系(联系(Relationship)2023/2/179数据库原理与应用数据模型现现实实世世界界中中事事物物内内部部以以及及事事物物之之间间的的联联系系在在信信息息世界中反映为世界中反映为实体内部的联系实体内部的联系和和实体之间实体之间的联系的联系n两个实体间的联系两个实体间的联系:一对一;一对多;多对多。一对一;一对多;多对多。m:n联系联系1:1 联系联系1:m 联系联系特例特例特例特例特例特例2023/2/1710数据库原理与应用数据模型实体型实体型1联系名联系名实体型实体型2111:1联系联系实体型实体型1联系名联系名实体型实体型2mnm:n联系联系实体型实体型1联系名联系名实体型实体型21n1:n联系联系2023/2/1711数据库原理与应用数据模型n一对一联系一对一联系 n如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实实体体集集B中中至至多多有有一一个个实实体体与与之之联联系系,反反之之亦亦然然,则则称称实实体体集集A与与实实体体集集B具具有有一一对对一一联联系系。记为记为1:1。n 实例实例班级与班长之间的联系:班级与班长之间的联系:一个班级只有一个正班长一个班级只有一个正班长一个班长只在一个班中任职一个班长只在一个班中任职2023/2/1712数据库原理与应用数据模型n一对多联系一对多联系n如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实实体体集集B中中有有n个个实实体体(n0)与与之之联联系系,反反之之,对对于于实实体体集集B中中的的每每一一个个实实体体,实实体体集集A中中至至多多只只有有一一个个实实体体与与之之联联系系,则则称称实实体体集集A与与实实体体集集B有有一一对对多联系,记为多联系,记为1:nn实例实例班级与学生之间的联系:班级与学生之间的联系:一个班级中有若干名学生,一个班级中有若干名学生,每个学生只在一个班级中学习每个学生只在一个班级中学习2023/2/1713数据库原理与应用数据模型n多对多联系(多对多联系(m:n)n如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实实体体集集B中中有有n个个实实体体(n0)与与之之联联系系,反反之之,对对于于实实体体集集B中中的的每每一一个个实实体体,实实体体集集A中中也也有有m个个实实体体(m0)与与之之联联系系,则则称称实实体体集集A与与实实体集体集B具有多对多联系。记为具有多对多联系。记为m:nn实例实例课程与学生之间的联系:课程与学生之间的联系:一门课程同时有若干个学生选修一门课程同时有若干个学生选修一个学生可以同时选修多门课程一个学生可以同时选修多门课程2023/2/1714数据库原理与应用数据模型n多个实体间的联系多个实体间的联系供应商供应商项目项目零件零件供应供应mnp一对多一对多多对多多对多课课 程程教员教员1m讲授讲授n参考书参考书2023/2/1715数据库原理与应用数据模型概念模型的表示方法概念模型的表示方法ER图(图(Entity-Relationship Approach)n于于1976年提出年提出nER方法表示的概念模型也称为方法表示的概念模型也称为E-R模型模型nER图三要素图三要素n实体型实体型用矩形表示,矩形框内写明实体名。用矩形表示,矩形框内写明实体名。教师教师学生学生2023/2/1716数据库原理与应用数据模型n属性属性用椭圆形表示,并用无向边将其与相应的实体连用椭圆形表示,并用无向边将其与相应的实体连接起来接起来学生学生学号学号年龄年龄性别性别姓名姓名2023/2/1717数据库原理与应用数据模型n联系联系n联系本身联系本身:用菱形表示,菱形框内写明联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(同时在无向边旁标上联系的类型(1:1、1:n或或m:n)n联系的属性联系的属性:联系本身也是一种实体型,也:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来些属性也要用无向边与该联系连接起来2023/2/1718数据库原理与应用数据模型表示实体型,表示实体型,框内写实体名。框内写实体名。表示实体的属性表示实体的属性 表示实体间的联系表示实体间的联系连接各部分连接各部分2023/2/1719数据库原理与应用数据模型班级班级班级班级-班长班长班长班长111:1联系联系课程课程选修选修学生学生mnm:n联系联系班级班级组成组成学生学生1n1:n联系联系联系的表示方法示例联系的表示方法示例2023/2/1720数据库原理与应用数据模型职工职工领导领导1n同一实体型内同一实体型内部的部的1:n联系联系课程课程讲授讲授教师教师1m多个实体型间的多个实体型间的1:n联系联系参考书参考书n联系的表示方法示例(续)联系的表示方法示例(续)2023/2/1721数据库原理与应用数据模型联联系系属属性性的的表表示示方方法法学学 生生课课 程程编号编号姓名姓名性别性别班级班级学生证号学生证号自然情况自然情况编号编号名称名称学时学时学期学期性质性质选修选修nm成绩成绩2023/2/1722数据库原理与应用实体联系模型举例一个工厂管理系统运行模式如下:一个工厂管理系统运行模式如下:v一个雇员只在一个部门工作,一个部门可以有多个雇员。一个雇员只在一个部门工作,一个部门可以有多个雇员。v一一个个雇雇员员可可以以参参加加一一个个以以上上的的项项目目,每每个个项项目目常常需需要要多多个个人人参加。参加。v每个项目必须确定一个负责人,一个人可以负责多个项目。每个项目必须确定一个负责人,一个人可以负责多个项目。v一一个个供供应应商商可可以以为为若若干干个个项项目目供供应应零零件件,每每个个项项目目可可以以从从不不同的供应商那里采购零件,每个项目需要多种零件。同的供应商那里采购零件,每个项目需要多种零件。v系统还保存各个供应商可以提供的各种零件与数量。系统还保存各个供应商可以提供的各种零件与数量。v一种零件还可以由其它几种零件组装而成。一种零件还可以由其它几种零件组装而成。v购买的零件存放在仓库里,一个仓库存放多种零件,一种零购买的零件存放在仓库里,一个仓库存放多种零件,一种零件也可以存放在不同的仓库当中。件也可以存放在不同的仓库当中。2023/2/1723数据库原理与应用实体联系模型举例(1)现现场场调调查查,确确定定系系统统的的运运行行模模式式和和相相关流程关流程(2)确定实体类型)确定实体类型(3)确定联系类型)确定联系类型(4)根据实体类型和联系类型画出)根据实体类型和联系类型画出ER图图2023/2/1724数据库原理与应用实体联系模型举例雇雇员员雇雇员员号,姓名,性号,姓名,性别别,职职称,工称,工资资,住,住址址部部门门部部门门号,名称,号,名称,电话电话,部,部门门地址地址项项目目项项目号,目号,项项目名,目名,预预算,开始日期,完算,开始日期,完成日期成日期零件零件零件号,零件名,零件号,零件名,规规格,格,单单价价供供应应商商 编编号,名称,号,名称,联联系人,系人,电话电话,帐帐号号仓库仓库库库号,地址,面号,地址,面积积,电话电话2023/2/1725数据库原理与应用实体联系模型举例部门雇员从属1m项目供应商参加1mnmnPm可供应数量1数量3mn装配天数件数数量2存放仓库mn供应零件mn n负责2023/2/1726数据库原理与应用常用的数据模型n实体联系方法是抽象和描述现实世界的有力实体联系方法是抽象和描述现实世界的有力工具。用工具。用ER图表示的概念模型独立于具体的图表示的概念模型独立于具体的DBMS所支持的数据模型,是各种数据模型的所支持的数据模型,是各种数据模型的共同基础。共同基础。常用的数据模型常用的数据模型n层次模型层次模型n网状模型网状模型n关系模型关系模型n对象模型对象模型2023/2/1727数据库原理与应用常用的数据模型n层次模型层次模型n满足下面两个条件的基本层次联系的集合为满足下面两个条件的基本层次联系的集合为层次模型。层次模型。1.有有且且只只有有一一个个结结点点没没有有双双亲亲结结点点,这这个个结结点称为根结点点称为根结点2.根以外的其它结点有且只有一个双亲结点根以外的其它结点有且只有一个双亲结点2023/2/1728数据库原理与应用常用的数据模型层次模型n有且仅有一个结点有且仅有一个结点无双亲,这个结点无双亲,这个结点称为根结点。称为根结点。n其它结点有且仅有其它结点有且仅有一个双亲。一个双亲。R1R2R3R4R52023/2/1729数据库原理与应用常用的数据模型n特点特点n结点的双亲是唯一的结点的双亲是唯一的n只能直接处理一对多的实体联系只能直接处理一对多的实体联系n每每个个记记录录类类型型定定义义一一个个排排序序字字段段,也也称称为为码码字段字段n任任何何记记录录值值只只有有按按其其路路径径查查看看时时,才才能能显显出出它的全部意义它的全部意义n没没有有一一个个子子女女记记录录值值能能够够脱脱离离双双亲亲记记录录值值而而独立存在独立存在2023/2/1730数据库原理与应用层次模型的数据结构n多对多联系在层次模型中的表示多对多联系在层次模型中的表示n用层次模型用层次模型间接间接表示多对多联系表示多对多联系n方法方法将多对多联系将多对多联系分解分解成一对多联系成一对多联系n分解方法分解方法n冗余结点法冗余结点法n虚拟结点法虚拟结点法2023/2/1731数据库原理与应用常用的数据模型层次模型的完整性约束层次模型的完整性约束n无相应的双亲结点值就不能插入子女结点值无相应的双亲结点值就不能插入子女结点值n如果删除双亲结点值,则相应的子女结点值也如果删除双亲结点值,则相应的子女结点值也被同时删除被同时删除n更新操作时,应更新所有相应记录,以保证数更新操作时,应更新所有相应记录,以保证数据的一致性据的一致性2023/2/1732数据库原理与应用常用的数据模型n与文件系统的数据管理方式相比,层次模型是一与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由物理细节。逻辑数据与物理数据之间的转换由DBMS完成。完成。n层次模型有两个缺点:一是只能表示层次模型有两个缺点:一是只能表示1:N联系,联系,虽然系统有多种辅助手段实现虽然系统有多种辅助手段实现M:N联系但较复杂,联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。序的编写也比较复杂。2023/2/1733数据库原理与应用常用的数据模型常用的数据模型常用的数据模型n层次模型层次模型n网状模型网状模型n关系模型关系模型n对象模型对象模型n满足下面两个条件的基本层次联系的集合为满足下面两个条件的基本层次联系的集合为网网状模型状模型。1.允许一个以上的结点无双亲;允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲一个结点可以有多于一个的双亲2023/2/1734数据库原理与应用常用的数据模型n有一个以上的结有一个以上的结点没有双亲。点没有双亲。n结点可以有多于结点可以有多于一个的双亲。一个的双亲。R1R2R3R4网状数据模型网状数据模型2023/2/1735数据库原理与应用常用的数据模型n网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。n网状模型的缺点是结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。nDDL、DML语言复杂,用户不容易使用网状模型的优缺点网状模型的优缺点2023/2/1736数据库原理与应用常用的数据模型常用的数据模型常用的数据模型n层次模型层次模型n网状模型网状模型n关系模型关系模型n对象模型对象模型n关系数据模型关系数据模型n关系模型(关系模型(relational model)的主要特征是用二维的主要特征是用二维表格表达实体集。表格表达实体集。n与前两种模型相比,数据结构简单,容易为初学者理与前两种模型相比,数据结构简单,容易为初学者理解。解。2023/2/1737数据库原理与应用常用的数据模型n关系模型是由若干个关系模式组成的集合。关系模型是由若干个关系模式组成的集合。n关系模式相当于前面提到的记录类型,它的实例关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。称为关系,每个关系实际上是一张二维表格。PARTPART模式模式(P#P#,PNAMEPNAME,COLORCOLOR,WEIGHTWEIGHT)PROJECTPROJECT模式模式(J#J#,JNAMEJNAME,DATEDATE)SUPPLIERSUPPLIER模式模式(S#S#,SNAMESNAME,SADDRSADDR)P_PP_P模式模式(J#J#,P#P#,TOTALTOTAL)P_SP_S模式模式(P#P#,S#S#,QUANTITYQUANTITY)关系数据模型举例(关系数据模型举例(1)2023/2/1738数据库原理与应用常用的数据模型关系数据模型举例(关系数据模型举例(2)一个关系模型的逻辑结构是一张二维表,它由行和列组成。一个关系模型的逻辑结构是一张二维表,它由行和列组成。关系江苏山东北京北京 山西2019181921计科信息数学计科物理男女女男男李勇刘成王明张力杨晓东95001950029500395004 95700籍贯年龄系别性别姓名学号学生学生登记表登记表关系名主码属性(列)属性名元组数据模型数据模型2023/2/1739数据库原理与应用常用的数据模型n关系:关系:一个关系对应于一张表。一个关系对应于一张表。n元组:元组:表中的一行称为一个元组。表中的一行称为一个元组。n属性:属性:表中的一列称为属性。表中的一列称为属性。n主码:主码:唯一标识一个元组的某个属性组。唯一标识一个元组的某个属性组。n域:域:属性的取值范围。属性的取值范围。n分量:分量:元组中的一个属性值。元组中的一个属性值。n关系模式:关系模式:对关系的描述。对关系的描述。n关系名(属性名关系名(属性名1,属性名,属性名2,属性名,属性名n)学生(学号,姓名,性别,系别,年龄,籍贯)学生(学号,姓名,性别,系别,年龄,籍贯)2023/2/1740数据库原理与应用常用的数据模型n实体及实体间的联系的表示方法实体及实体间的联系的表示方法n实体型实体型:n属性属性:n一对一联系一对一联系:隐含在实体对应的关系中。:隐含在实体对应的关系中。n一对多联系一对多联系:隐含在实体对应的关系中。:隐含在实体对应的关系中。n多对多联系多对多联系:直接用关系表示。:直接用关系表示。直接用关系模式表示。直接用关系模式表示。2023/2/1741数据库原理与应用常用的数据模型例例1:系、学生之间的一对多联系:系、学生之间的一对多联系:学生(学生(学号学号,姓名,年龄,性别,姓名,年龄,性别,系号系号,年级),年级)系系(系号系号,系名,办公地点,系名,办公地点)例例2:学生、课程之间的多对多联系:学生、课程之间的多对多联系:学生(学生(学号学号,姓名,年龄,性别,系号,年级),姓名,年龄,性别,系号,年级)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号,课程号学号,课程号,成绩),成绩)课程课程学生学生mn选修选修系系学生学生1n属于属于外关键字外关键字2023/2/1742数据库原理与应用常用的数据模型n关系模型的数据操纵关系模型的数据操纵n数数据据操操作作是是集集合合操操作作,操操作作对对象象和和操操作作结结果果都都是关系,是关系,即若干元组的集合即若干元组的集合n常常用用的的关关系系操操作作包包括括并并、交交、差差、选选择择、投投影影、连接等查询操作和插入、删除、更新操作连接等查询操作和插入、删除、更新操作n存存取取路路径径对对用用户户隐隐蔽蔽,用用户户只只要要指指出出“干干什什么么”,不必详细说明不必详细说明“怎么干怎么干”n关系模型的完整性约束关系模型的完整性约束n实体完整性实体完整性n参照完整性参照完整性n用户定义的完整性用户定义的完整性2023/2/1743数据库原理与应用常用的数据模型n关系数据模型的优缺点关系数据模型的优缺点n建立在严格的数学概念的基础上建立在严格的数学概念的基础上n概概念念单单一一。数数据据结结构构简简单单、清清晰晰,用用户户易易懂懂易易用用n实体和各类联系都用关系来表示。实体和各类联系都用关系来表示。n对数据的检索结果也是关系。对数据的检索结果也是关系。n关系模型的存取路径对用户透明关系模型的存取路径对用户透明n具有更高的数据独立性,更好的安全保密性具有更高的数据独立性,更好的安全保密性n简化了程序员的工作和数据库开发建立的工作简化了程序员的工作和数据库开发建立的工作2023/2/1744数据库原理与应用常用的数据模型n关系数据模型的缺点关系数据模型的缺点 存取路径对用户透明导致查询效率往往存取路径对用户透明导致查询效率往往不如非关系数据模型不如非关系数据模型 为为提提高高性性能能,必必须须对对用用户户的的查查询询请请求求进进行行优优化化,增增加加了了开开发发数数据据库库管管理理系系统统的的难难度度2023/2/1745数据库原理与应用常用的数据模型n典型的关系数据库系统典型的关系数据库系统nORACLEnSYBASEnINFORMIXnDB/2nCOBASEnPBASEnEasyBasenDM/2nOpenBase2023/2/1746数据库原理与应用常用的数据模型常用的数据模型常用的数据模型n层次模型层次模型n网状模型网状模型n关系模型关系模型n对象模型对象模型n对象数据模型对象数据模型n对象对象(object)是现实世界中实体的模型化,与实是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。体概念相仿,但远比实体复杂。n将属性集和方法集相同的所有对象组合在一起,构将属性集和方法集相同的所有对象组合在一起,构成了一个成了一个类类(class)。)。2023/2/1747数据库原理与应用层层次模型次模型网状模型网状模型关系模型关系模型面向面向对对象模型象模型创创始始19681968年年IBMIBM公司的公司的IMSIMS系系统统19691969年年CODASYLCODASYL的的DBTGDBTG报报告告(71(71年通年通过过)19701970年年F.CoddF.Codd提提出关系模型出关系模型2020世世纪纪8080年代年代数据数据结结构构复复杂杂(树结树结构)构)复复杂杂(有向(有向图结图结构)构)简单简单(二(二维维表)表)复复杂杂(嵌套(嵌套递归递归)数据数据联联系系通通过过指指针针通通过过指指针针通通过过表表间间的公共的公共属性属性通通过对过对象象标识标识查询语查询语言言过过程性程性语语言言过过程性程性语语言言非非过过程性程性语语言言面向面向对对象象语语言言典型典型产产品品IMSIMSIDS/IDS/IMAGE/3000IMAGE/3000IDMSIDMSTOTALTOTALOracleOracleSybaseSybaseDB2DB2SQL ServerSQL ServerInformixInformixONTOS DBONTOS DB盛行期盛行期2020世世纪纪7070年代年代7070年代至年代至8080年代中期年代中期8080年代至年代至现现在在9090年代至年代至现现在在2023/2/1748数据库原理与应用关系操作操作n在关系数据模型中,每个操作的对象和结果仍在关系数据模型中,每个操作的对象和结果仍为关系为关系n关系关系操作操作的运算的运算n普通的集合运算普通的集合运算n并、交、差并、交、差n删除部分关系的运算删除部分关系的运算n选择、投影选择、投影n合并两个关系元组的运算合并两个关系元组的运算n连接、积连接、积2023/2/1749数据库原理与应用关系操作操作 并Union()nR和和S的并,的并,R S,是在是在R或或S或两者中的或两者中的元素的集合元素的集合n一个元素在并集中只出现一次一个元素在并集中只出现一次nR和和S必须同类型(属性集相同、次序相必须同类型(属性集相同、次序相同,但属性名可以不同)同,但属性名可以不同)R SRS2023/2/1750数据库原理与应用关系操作操作 交Intersect()nR和和S的交,的交,RS,是在是在R和和S中都存在的中都存在的元素的集合元素的集合n一个元素在交集中只出现一次一个元素在交集中只出现一次nR和和S必须同类型(属性集相同、次序相必须同类型(属性集相同、次序相同,但属性名可以不同)同,但属性名可以不同)R SRS2023/2/1751数据库原理与应用关系操作操作 差Minus(-)nR和和S的差,的差,R-S,是在是在R中而不在中而不在S中的中的元素的集合元素的集合nR和和S必须同类型(属性集相同、次序相必须同类型(属性集相同、次序相同,但属性名可以不同)同,但属性名可以不同)R-SRS2023/2/1752数据库原理与应用关系操作操作投影Projection()n从关系从关系R中选择若干属性组成新的关系中选择若干属性组成新的关系nA1,A2,An(R),表示从表示从R中选择属性集中选择属性集A1,A2,An组成新的关系组成新的关系n列的运算列的运算n投影运算的结果中投影运算的结果中,也要去除可能的重复也要去除可能的重复元组元组n例例:ssex,sage(student)2023/2/1753数据库原理与应用2023/2/1754数据库原理与应用2023/2/1755数据库原理与应用关系操作操作选择Selection()n从关系从关系R中选择符合条件的元组构成新的中选择符合条件的元组构成新的关系关系nC(R),表示从表示从R中选择满足条件中选择满足条件(使逻辑使逻辑表达式表达式C为真为真)的元组的元组n行的运算行的运算n例例:sage=23 AND sdep=CS(student)n例例:列出列出CS系的学号及姓名系的学号及姓名sno,sname(sdep=CS(student)2023/2/1756数据库原理与应用sdep=IS(student)2023/2/1757数据库原理与应用关系操作操作笛卡儿积()n关系关系R、S的笛卡儿积是两个关系的元组的笛卡儿积是两个关系的元组对的集合所组成的新关系对的集合所组成的新关系nRS:n属性属性是是R和和S的组合(有重复)的组合(有重复)n元组元组是是R和和S所有元组的可能组合所有元组的可能组合n是是R、S的无条件连接,使任意两个关的无条件连接,使任意两个关系的信息能组合在一起系的信息能组合在一起2023/2/1758数据库原理与应用关系操作操作自然连接()n从从RS的结果集中,选取在某些的结果集中,选取在某些公共属性公共属性上具有相同值的元组,组成新的关系上具有相同值的元组,组成新的关系n公共属性在结果中只出现一次公共属性在结果中只出现一次n格式:格式:R SnR、S的公共属性的公共属性n属性集的交集(属性集的交集(名称及类型相同名称及类型相同)n特殊的等值连接特殊的等值连接2023/2/1759数据库原理与应用关系操作操作连接运算举例连接运算举例ABCa1b15a1b26BEb13b27AR.BCS.BEa1b15b13a1b15b27a1b26b13a1b26b27SRABCEa1b153a1b267R SRS去掉公去掉公共属性共属性上不同上不同值元组值元组合并公共属性合并公共属性2023/2/1760数据库原理与应用关系数据库体系结构关系数据库体系结构n关系模式关系模式n关系子模式关系子模式n子模式是用户所用到的那部分数据的描述子模式是用户所用到的那部分数据的描述n除了指出用户所用到的数据外,还要指出数据与模除了指出用户所用到的数据外,还要指出数据与模式中相应数据的联系,即指出模式与子模式之间的式中相应数据的联系,即指出模式与子模式之间的变换变换 n定义用户对数据进行操作的权限,例如是否允许读、定义用户对数据进行操作的权限,例如是否允许读、修改等修改等 n存储模式存储模式n存储一个关系是把关系作为文件看待的,每个元组存储一个关系是把关系作为文件看待的,每个元组就是一个记录就是一个记录2023/2/1761数据库原理与应用小 结n在数据库领域,应该准确使用术语,深刻了解实在数据库领域,应该准确使用术语,深刻了解实体间体间1:1、1:N和和M:N三种联系的意义。三种联系的意义。n数据模型是对现实世界进行抽象的工具,用于描数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据述现实世界的数据、数据联系、数据语义和数据约束等方面内容。数据模型分成约束等方面内容。数据模型分成概念模型概念模型和结构和结构模型两大类。前者的代表是实体联系模型,后者模型两大类。前者的代表是实体联系模型,后者的代表是层次模型、网状模型、的代表是层次模型、网状模型、关系模型关系模型和面向和面向对象模型。关系模型是当今的主流模型,面向对对象模型。关系模型是当今的主流模型,面向对象模型是今后发展的方向。象模型是今后发展的方向。2023/2/1762数据库原理与应用掌握要点掌握要点n掌握要点掌握要点nER模型的建立模型的建立nER模型到关系模型的转换模型到关系模型的转换n关系模型的基本术语:关系、元组、属性、关系模型的基本术语:关系、元组、属性、关键字、域、关系模式关键字、域、关系模式n关系操作关系操作2023/2/1763数据库原理与应用作业n2-6:要求将建立的要求将建立的ER模型转换成关系数据模型模型转换成关系数据模型n2-7:要求将建立的要求将建立的ER模型转换成关系数据模型模型转换成关系数据模型n2-9:名词解释名词解释2023/2/1764数据库原理与应用