版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理及应用---基于SQLServer2019与MongoDB回顾:数据结构化数据:SQLServer非结构化数据:MongoDB第2章数据模型与关系数据库一、数据模型二、关系数据结构及形式化定义三、关系的完整性约束四、关系代数一、数据模型数据模型数据数据模型是一种表示数据特征的抽象模型,是对现实世界数据的特征与联系的抽象反映。现实世界一、数据模型---三个世界现实世界:现实世界就是客观存在的世界,它由客观存在的事物及其相互之间的联系组成。信息世界:信息世界是现实世界在人们头脑中的反映并用文字或者符号记载下来的,是对现实世界的抽象,又称观念世界。机器世界:机器世界又称为数据世界,是将信息世界中的数据描述经过抽象和组织,按照特定的数据结构进行整理、分类和规范存储在计算机中,是信息世界中的信息数据化后对应的产物。一、数据模型---两类模型概念模型:它是按用户的观点对数据和信息的建模,即用于信息世界的建模,所建立的是属于信息世界的模型。结构数据模型:它是按计算机系统的观点对数据的建模,所建立的是属于机器世界的模型,主要包括网络模型、层次模型、关系模型等,主要用于DBMS的实现。结构数据模型通常简称为数据模型,正因如此,常将其与含义更广泛的“数据模型”一词混淆,应根据上下文加以区分。现实世界信息世界姓名:张三性别:男
婚姻状况:未婚学校所在地:美国籍贯:美国星座:双子座出生日期:1994年11月概念模型数据模型姓名性别婚姻状况学校所在地籍贯星座出生日期张三男未婚美国美国双子座1994年11月机器世界一、数据模型一、数据模型---概念模型概念模型的用途概念模型用于对信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具是数据库设计人员和用户之间进行交流的语言对概念模型的基本要求具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解一、数据模型---概念模型中的基本概念(1)实体(Entity)客观存在并可相互区别的事物称为实体。可以是具体的人、事、物,也可以是抽象的概念或联系。实体举例:一个学生,一个部门,一门课,学生的一次选课,老师与学院的联系(某个老师在某个学院工作)(2)属性(Attribute)
实体所具有的某一特性称为属性。一个实体可以具有若干个属性。属性举例:学生实体可以由学号、姓名、性别、院系、入学时间等属性组成。(200204,张山,男,信息学院,2002)一、数据模型---概念模型中的基本概念(3)域(Domain)属性的取值范围
称为该属性的域。例如:学号的域为8位整数姓名的域为字符串集合性别的域为(男,女)一、数据模型---概念模型中的基本概念(4)码(Key)
唯一标识实体的属性或属性集称为码。码举例:学生实体可以由学号、姓名、性别、院系、入学时间等属性组成。(200204,张山,男,信息学院,2002)其中,学号是学生实体的码。一、数据模型---概念模型中的基本概念(5)实体集(EntitySet)
同型实体的集合称为实体集例如:全体学生,全体教师都是实体集。一、数据模型---概念模型中的基本概念(6)联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系两个实体之间联系分为三类:一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)一、数据模型---概念模型中的基本概念两个实体之间的联系实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系国家与首都学院与系部学生与课程概念模型的设计方法有很多,其中著名、最实用的概念模型设计方法是P.P.S.Chen于1976年提出的“实体-联系”方法(Entity-Relationship),简称E-R方法,E-R图。在E-R图中,可以表示实体、属性和联系。一、数据模型---E-R图实体用矩形表示,矩形框内写明实体名。学生教师一、数据模型---E-R图属性用椭圆表示,并用无向边将其与相应的实体连接起来学生学号年龄性别姓名一、数据模型---E-R图联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)联系的属性:联系本身也可以是一种实体,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来一、数据模型---E-R图建立E-R图的步骤如下:首先,确定各个实体、属性及主码。学生实体及其属性以及主码:学号姓名年龄性别系年级学生一、数据模型---E-R图学生编号学生姓名班长姓名学生属于班级班级名称班主任姓名n1教室位置性别其次,确定实体与实体之间的联系及其属性(如果有)。一、数据模型---E-R图最后,连接各个实体和联系,组合成最终的E-R图。学校编号名称任职日期学校任职校长编号姓名11一、数据模型---E-R图E-R图优点简单,容易理解,真实反应用户需求;与计算机无关,用户容易接受。遇到实际问题一般先设计一个ER模型,然后把ER模型转换成计算机能实现的数据模型。一、数据模型---E-R图设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。1.试画出ER图,并在图上注明实体的属性、联系的类型和属性。一、数据模型---E-R图设某数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。1.试画出ER图,并在图上注明实体的属性、联系的类型和属性DBMS支持的数据模型通常由数据结构、数据操作和完整性约束条件三部分组成。一、数据模型---DBMS支持的数据模型完整性约束条件:是一组完整性规则的集合,指数据及其联系所具有的制约和依存规则数据操作:对数据库中的对象可以进行的各种操作的集合,包括各种操作和操作的规则
数据结构:是描述数据库系统的静态特征一、数据模型---DBMS支持的数据模型数据库管理系统常用的数据模型有下列三种:层次模型网状模型关系模型一、数据模型---层次模型层次模型必须满足2个条件:1.有且只有一个结点没有双亲——根结点2.其它结点有且只有一个双亲结点——子女结点层次模型中的几个术语根结点,双亲结点兄弟结点,叶结点层次数据模型的数据结构:树R1兄弟结点兄弟结点根结点叶结点叶结点叶结点R2R3R4R5层次模型只能处理一对多的实体联系,是一棵倒立树系编号系名办公地点教研室编号教研室职工号姓名研究方向学号姓名成绩系教研室学生教员教员学生数据库层次模型一、数据模型---层次模型教员学生数据库层次模型的一个值D02计算机信息楼数据库E2101数据库A系教研室学生王大明E1709数据仓库冯灵E3501并行数据库孟勇E1101陈芝E3102网络管理张豪网络安全教员R01信息安全R02网络R03文继荣S63871C刘华S63874A张孝S63876一、数据模型---层次模型数据操做:完整性约束条件:查询、插入、删除、修改插入时:如果没有相应的双亲结点值,就不能插入子女结点值。删除时:如果删除双亲结点值,则相应的子女结点值也被同时删除。修改时:应修改所有相应的记录,以保证数据的一致性。层次模型的数据操作与完整性约束一、数据模型---层次模型优点层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点对多对多联系表示不自然对插入和删除操作的限制多查询子女结点必须通过双亲结点一、数据模型---层次模型常见的层次模型DBMS---IMS1968年IBM公司就推出了IMS的最初版本,之后,层次数据库管理系统得到了迅速发展,同时它也影响了其它类型的数据库管理系统,特别是网状系统的出现和发展。一、数据模型---层次模型一、数据模型---网状模型网状模型的两个条件1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。L1R1R2R3L1L2R1R2L1L2R1R2R3R5R4L3L4图(a)图(b)图(c)网状模型的数据结构:有向图
学号姓名系别课程号课程名学号课程号成绩学生课程选课S-SCC-SC学生选课数据库,一个学生可以选修若干门课程,某一课程可以被多个学生选修。一、数据模型---网状模型数据操作:查询、插入、删除、修改作为码的字段,不能有重复值双亲结点与子女结点之间是多对多联系允许插入还没有双亲结点的子女结点允许只删除双亲结点值完整性约束条件:一、数据模型---网状模型优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用一、数据模型---网状模型网状模型的DBMS网状数据库的代表是DBTG系统。1969年美国的CODASYL组织提出了一份“DBTG报告”,以后,根据DBTG报告实现的系统一般称为DBTG系统。现有的网状数据库系统大都是采用DBTG方案的。一、数据模型---网状模型一、数据模型---关系模型1970年,美国IBM公司的研究员E.F.Codd在美国计算机学会会刊(CommunicationsoftheACM)上发表了著名的论文“ARelationalModelofDataforLargeSharedDataBanks”,首次系统地提出了关系数据模型的相关理论。之后他又发表了多篇文章,奠定了关系数据模型的理论基础,标志着关系型数据库系统新时代的来临。E.F.Codd也因其杰出的贡献,于1981年获得了ACM图灵奖。从20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型。一、数据模型---关系模型二维表由行和列组成。关系数据模型的数据结构:二维表关系模型的基本概念关系——一个关系对应一张表元组——表中的一行属性——表中的一列,起一个名,属性名主码——表中的某个属性组,其值唯一地标识一个元组域——属性的取值范围关系模式——对关系的描述,用关系名(属性名1,属性名2,…,属性名n)表示
例如:
学生(学号,姓名,年龄,性别,系,年级)一、数据模型---关系模型关系名学生登记表关系主码整数字符串1,2,3,4,域属性名元组(行)属性(列)一、数据模型---关系模型关系模型的数据操作与完整性约束数据操作:查询、插入、删除、修改完整性约束条件:实体完整性参照完整性用户定义的完整性一、数据模型---关系模型关系模型的优点建立在严格的数学概念的基础上概念单一。数据结构简单、清晰,用户易懂易用实体和各类联系都用关系(表)来表示。对数据的检索结果也是关系(表)。关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作一、数据模型---关系模型关系模型的缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度一、数据模型---关系模型一、数据模型—概念模型转换为关系模型
实体(E)转换为关系模式的方法
一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
例如:学生实体转换为关系模式实体学生(学号,姓名,性别,出生日期,所学专业)关系Student(SID,Sname,Sex,Birthday,Specialty)47一、数据模型—概念模型转换为关系模型
联系(R)转换为关系模式的方法
一对一
将联系与任意一端实体所对应的关系模式合并,加入另一端实体的码和联系的属性(如果联系有属性的话)。例如:学校和校长实体的联系是1:1的。学校编号名称任职日期学校任职校长编号姓名1148一、数据模型—概念模型转换为关系模型学校编号名称任职日期学校任职校长编号姓名11学校(学校编号,名称)校长(编号,姓名,任职日期,学校编号)或学校(学校编号,名称,编号)校长(编号,姓名,任职日期)联系(R)转换为关系模式的方法49一、数据模型—概念模型转换为关系模型一对多将联系与n端实体所对应的关系模式合并,加入1端实体的码和联系的属性。例如:班级和学生实体的联系是1:n的。
学生编号学生姓名班长姓名学生属于班级班级名称班主任姓名n1教室位置性别
联系(R)转换为关系模式的方法50一、数据模型—概念模型转换为关系模型学生编号学生姓名班长姓名学生属于班级班级名称班主任姓名n1教室位置性别学生(学生编号,学生姓名,性别,班级名称)班级(班级名称,班主任姓名,班长姓名,教室位置)
联系(R)转换为关系模式的方法51一、数据模型—概念模型转换为关系模型
多对多
将联系转换成一个单独的关系模式。该联系相连的各实体的码和联系本身的属性转换为关系的属性。例如:教务管理中选课的E-R模型如图所示,学生和课程的联系是多对多的。
联系(R)转换为关系模式的方法52一、数据模型—概念模型转换为关系模型学生(学生编号,姓名,性别)课程(课程编号,课程名称,学分)选课(学生编号,课程编号,成绩)课程学生选课成绩nm学生编号课程编号姓名性别学分课程名称
联系(R)转换为关系模式的方法53一、数据模型—概念模型转换为关系模型设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。1.试画出ER图,并在图上注明实体的属性、联系的类型和属性。2.将ER图转换成关系模型,并注明主键。一、数据模型—概念模型转换为关系模型设某数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。1.试画出ER图,并在图上注明实体的属性、联系的类型和属性2.将ER图转换成关系模型,并注明主键。二、关系数据结构及形式化定义---什么是关系?域(Domain)笛卡尔积(CartesianProduct)关系(Relation)二、关系数据结构及形式化定义---域(Domain)域:例:整数实数大于0并且小于100的正整数所有同学的名字{‘男’,‘女’}是一组具有相同数据类型的值的集合。二、关系数据结构及形式化定义---笛卡尔积笛卡尔积:
给定一组域
D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di
Di,i=1,2,…,n}有3个域,A=(a1,a2),B=(b1,b2,b3),C=(c1,c2),则A,B,C的笛卡儿积为:
A×B×C={(a1,b1,c1),(a1,b1,c2),(a1,b2,c1),(a1,b2c2),(a1,b3,c1),(a1,b3,c2),(a2,b1,c1),(a2,b1,c2),(a2,b2,c1),(a2,b2,c2),(a2,b3,c1),(a2,b3,c2)
}二、关系数据结构及形式化定义---笛卡尔积有3个域:
D1=导师=张老师,李老师
D2=专业=计算机专业,大数据专业
D3=学生=张同学,王同学,孙同学则D1×D2×D3={(张老师,计算机专业,张同学),(张老师,计算机专业,王同学),(张老师,计算机专业,孙同学),(张老师,大数据专业,张同学),(张老师,大数据专业,王同学),(张老师,大数据专业,孙同学),(李老师,计算机专业,张同学),(李老师,计算机专业,王同学),(李老师,计算机专业,孙同学),(李老师,大数据专业,张同学),(李老师,大数据专业,王同学),(李老师,大数据专业,孙同学)}12个元组可列成一张二维表二、关系数据结构及形式化定义---笛卡尔积
表中的每行对应一个元组,每列对应一个域导师专业学生张老师计算机专业张同学张老师计算机专业王同学张老师计算机专业孙同学张老师大数据专业张同学张老师大数据专业王同学张老师大数据专业孙同学李老师计算机专业张同学李老师计算机专业王同学李老师计算机专业孙同学李老师大数据专业张同学李老师大数据专业王同学李老师大数据专业孙同学
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为
R(D1,D2,…,Dn)R:关系名;n:关系的目或度(Degree)例如:D1=导师=张老师,李老师
D2=专业=计算机专业,大数据专业
D3=学生=张同学,王同学,孙同学则SAP(导师,专业,学生)就是一个关系SAP称为关系名。二、关系数据结构及形式化定义---关系导师专业学生张老师计算机专业张同学张老师大数据专业王同学李老师计算机专业孙同学有意义的关系:理解:关系是笛卡尔积的一个子集。这些子集有的有意义,有的无意义二、关系数据结构及形式化定义---关系无意义的关系及其值:一个学生不能在两个专业学习理解:关系是笛卡尔积的一个子集。这些子集有的有意义,有的无意义二、关系数据结构及形式化定义---关系导师专业学生张老师计算机专业张同学张老师大数据专业王同学李老师计算机专业张同学候选码与主码若关系中的某一个或一组属性能唯一的标识一个元组,则称该属性或者属性组为码或者候选码;若一个关系有多个候选码,则人为选定其中的一个作为主码,主码对应的属性称为主属性,不包含在任何候选码中的属性称为非主属性。在最简单的情况下,候选码只包含一个属性,在最极端的情况下,关系的所有属性是这个关系的候选码,称为全码。二、关系数据结构及形式化定义---关系三类关系基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示查询表:查询结果对应的表视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据关系可以是一个无限集合但无限关系在数据库系统中是无意义的因此,数据库中的关系必须是有限集合。二、关系数据结构及形式化定义---关系关系的性质①列是同质的(Homogeneous)②不同的列可出自同一个域③列的顺序无所谓④任意两个元组不能完全相同⑤行的顺序无所谓⑥
关系的每一个分量必须取原子值,每一个分量都是不可再分的数据项。二、关系数据结构及形式化定义---关系三、关系的完整性约束完整性是指数据库中数据的正确性、有效性和一致性(或相容性),用来防止数据库中存在不合法的数据。数据完整性是一种语义概念,它包括两个方面:一是数据要满足现实世界特定的应用需求环境中的语义约束;二是数据库内部数据之间的相容性。数据完整性一般分为实体完整性、参照完整性和用户自定义的完整性。实体完整性参照完整性这2种完整性通常由关系系统自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束用户定义后由系统支持三、关系的完整性约束规则
若属性A是基本关系R的主属性(码,键),则属性A不能取空值例:学生(学号,姓名,系别)课程(课程号,课程名,学分)选课(学号,课程号,容量)三、关系的完整性约束---实体完整性关系模型必须遵守实体完整性规则的原因:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。三、关系的完整性约束---实体完整性例1学生实体、专业实体的关系表示如下:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)
学生关系是参照关系。
专业关系是被参照关系。专业号是学生关系的外码。三、关系的完整性约束---参照完整性三、关系的完整性约束---参照完整性学生(学号,姓名,性别)课程(课程号,课程名称,学分)选课(学生编号,课程编号,成绩)课程学生选课成绩nm学生编号课程编号姓名性别学分课程名称
学生选课系统74三、关系的完整性约束---参照完整性学生(学号,姓名,性别)课程(课程号,课程名称,学分)选课(学生编号,课程编号,成绩)学号,课程号分别是选修关系的外码
学生关系和课程关系是被参照关系
选课关系是参照关系
三、关系的完整性约束---参照完整性定义设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks对应,则称F是R的外码。并称基本关系R为参照关系,基本关系S为被参照关系。则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值。学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)
专业号是学生关系的外码。
学生关系是参照关系。
专业关系是被参照关系。三、关系的完整性约束---参照完整性例1:学生关系中,每个元组的“专业号”属性只能取下面两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中三、关系的完整性约束---参照完整性三、关系的完整性约束---用户定义的完整性用户定义的完整性:是针对某一个具体数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。学生关系中:性别只能是“男”或“女”年龄只能是10-3之间的整数选课关系中成绩只能是0-100之间的整数三、关系的完整性约束---用户定义的完整性四、关系代数—概述1.关系代数:一种抽象的查询语言,用对关系的运算来表达查询2.运算的三要素:运算对象,运算符,运算结果3.关系代数运算的分类:运算对象-关系,运算结果-关系,运算符-四类传统的集合运算-并、差、交、专门的关系运算-广义笛卡尔积、选择、投影、连接、除集合运算符∪-∩并差交比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义专门的关系运算符×σπ∞
÷广义笛卡尔积选择投影连接除逻辑运算符
∧∨非与或四、关系代数—概述四、关系代数:常用的几个记号关系R:学生(学号,姓名,性别,院系)R的一个元组t:(1001,李明,男,信息学院)t[A1]表示分量1001,t[A2]表示分量李明(1)R,t
R,t[Ai]设关系模式为R(A1,A2,…,An),t
R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量四、关系代数:常用的几个记号(2)A,t[A],A若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列;
t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。A
则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。例如:R的一个元组t:(1001,李明,男,信息学院)t[A]=(1001,李明)关系R:学生(学号,姓名,性别,院系)A={学号,姓名},则={性别,院系}A四、关系代数:常用的几个记号四、关系代数:常用的几个记号R为n目关系,S为m目关系,tr
R,ts
S,称为元组的连接。(3)trts:关系的广义笛卡尔积trts它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。(R和S的广义笛卡尔积)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1tr
ts四、关系代数:常用的几个记号例如:四、关系代数---常用的集合运算:并(Union)设关系R和S:具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:1)关系R和S的并记为:
R∪S={t|t
R∨t
S}结果仍为n目关系,由属于R或者属于S
的元组组成
ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S
四、关系代数---常用的集合运算:并(Union)四、关系代数---常用的集合运算:差(Difference)设关系R和S:具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:2)关系R和S的差记为:
R-S={t|t
R∧t
S}结果仍为n目关系,由属于R而不属于S
的元组组成
ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S
四、关系代数---常用的集合运算:差(Difference)四、关系代数---常用的集合运算:交(Intersection)设关系R和S:具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:3)关系R和S的交记为:
R∩S={t|t
R∧t
S}
用差表示:R∩S=R
–(R-S)仍为n目关系,由既属于R又属于S
的元组组成
四、关系代数---常用的集合运算:交ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S
四、关系代数常用的集合运算:广义笛卡尔积有2个关系R和S,若关系R:n目关系(有n个属性),有k1个元组关系S:m目关系(有m个属性),有k2个元组则:关系R和S的广义笛卡尔积记作:
R×S={tr
ts|tr
R∧ts
S}共有
k1×k2
个元组(行),每个元组有n+m列:前n列是关系R的一个元组后m列是关系S的一个元组四、关系代数---常用的集合运算:广义笛卡尔积ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1四、关系代数---专门的关系运算:选择(Selection)选择:指的是在关系R中选择满足给定条件的元组,记作:
σF(R)={t|t
R∧F(t)='真'}这里,F是逻辑表达式。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。是从行的角度进行的运算:σ
学生选课数据库学生表:Student(Sno,Sname,Ssex,Sbirthday,Sdept)课程表:Course(Cno,Cname,Ccredit)选课表:SC(Sno,Cno,Grade)SnoSnameSsexSbirthdaySdept95001李勇男1999-10-21CS95002刘晨女1999-2-14IS95003王敏女2000-7-18MA95004张立男2000--5-27ISStudentCourseCnoCnameCcredit1数据库42数学
23信息系统44操作系统35数据结构46数据处理
27PASCAL语言4专门的关系运算:选择(续)
SC学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380[例1]查询信息系(IS系)全体学生SnoSnameSsexSbirthdaySdept95002刘晨女1999-2-14IS95004张立男2000-5-27IS
σSdept
='IS'
(Student) 或σ5='IS'
(Student)结果:四、关系代数---专门的关系运算:选择[例2]查询性别为女的学生。SnoSnameSsexSbirthdaySdept95002刘晨女1999-2-14IS95003王敏女2000-7-18MA
σSsex=‘女’
(Student) 或σ3=‘女’
(Student)结果:四、关系代数---专门的关系运算:选择四、关系代数专门的关系运算:投影(Projection)投影:从R中选择出若干属性列组成新的关系,
πA(R)={t[A]|t
R} A:R中的属性列
是从列的角度进行运算:π四、关系代数---专门的关系运算:投影即求Student关系在学生姓名和所在系两个属性上的投影。SnameSdept李勇CS刘晨IS王敏MA张立IS[例3]查询学生的姓名和所在系:结果:πSname,Sdept
(Student)或π2,5
(Student)四、关系代数---专门的关系运算:投影[例4]查询学生关系Student中都有哪些系。SdeptCSISMA结果:
πSdept(Student)即查询Student关系在所在系属性上的投影:注意:投影结果中,取消重复的元组。四、关系代数---专门的关系运算:投影[例5]查询开设了哪些课程(课程名)。课程名Cname数据库数学信息系统操作系统数据结构数据处理PASCAL语言即查询Course关系在课程名上的投影:
πCname(Course
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防火窗的施工方案(3篇)
- 风电场夏季施工方案(3篇)
- 神经外科患者的护理效果评价
- 职业规划自我剖析
- 一对一职业规划辅导
- 财产安全教育主题班会
- 计算机维修职业规划范文
- 飞机桨叶打磨抛光工安全意识水平考核试卷含答案
- 液体洗涤剂制造工岗前工作质量考核试卷含答案
- 白蚁防治工岗前安全专项考核试卷含答案
- 循环流化床锅炉启动调试导则
- 八年级数学下册专题04赵爽弦图模型与勾股树模型(原卷版+解析)
- RFJ 006-2021 RFP型人防过滤吸收器制造与验收规范(暂行)
- 肠道微生态与健康课件
- 应急演练的组织与实施
- 腹腔镜下特殊部位子宫肌瘤剔除术课件
- 四年级道德与法治这些东西哪里来
- 血小板聚集与临床应用
- GB/T 23853-2022卤水碳酸锂
- GB/T 30452-2013光催化纳米材料光解指数测试方法
- FZ/T 74001-2020纺织品针织运动护具
评论
0/150
提交评论