版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 关系数据模型关系数据模型 2.1 数据模型概述2.2 关系模型基础2.3 在SQL中定义关系模式2.4 代数查询语言2.5 关系上的约束Page 12.1 数据模型概述数据模型概述 数据模型数据模型(data model)是用于描述数据或信是用于描述数据或信息的符号息的符号. 在信息世界内采用的是概念模型在信息世界内采用的是概念模型. 在数据库中采用的数据模型主要由三部分在数据库中采用的数据模型主要由三部分组成组成: 数据结构数据结构 relational model = tables; network and hierarchical models = graphs/trees.
2、 操作操作 约束约束Page 22.1 数据模型概述数据模型概述 一些重要的数据模型一些重要的数据模型: 关系数据模型关系数据模型, 包括对象关系模型的拓展包括对象关系模型的拓展; 半结构化数据模型半结构化数据模型, 包括包括 XML(扩展标记语言扩展标记语言) 和相关的标准和相关的标准; 网状网状(Network)模型模型 与层次与层次( Hierarchical )模型模型 高级数据模型高级数据模型 The Entity/Relationship Model Object Definition LanguagePage 3 关系数据模型简介,例如:描述电影信息的movies关系movies
3、(title, year, length, genre)2.1 数据模型概述数据模型概述Page 4半结构化模型简介: 半结构化数据类似树或图 半结构化模型采用XML(eXtensive Makeup Language, 可扩展标记语言)描述2.1 数据模型概述数据模型概述Page 5 1939 length 231 drama 1977 length 124 sciFi 1992 length 95 comedy 2.1 数据模型概述数据模型概述Page 6几种建模方法比较: 关系模型得到普遍应用 半结构化模型在互联网应用中得到发展2.1 数据模型概述数据模型概述Page 72.1 数据模型
4、概述数据模型概述l为什么使用关系模型为什么使用关系模型? 它提供了一种简单的、有限的方法对数据进行建模它提供了一种简单的、有限的方法对数据进行建模. 它对这些数据提供了一套有限的,但是很有效的操作集它对这些数据提供了一套有限的,但是很有效的操作集. 它使我们可以使用高级的程序设计语言,如它使我们可以使用高级的程序设计语言,如SQL, 在较高的层次上进行在较高的层次上进行开发开发.Page 8titleyearlengthgenre Gone With the Wind1939231 drama Star Wars1977124 sciFi Waynes World1992 95 comedy2
5、.2 关系模型基础关系模型基础 关系关系: 关系模型为人们提供了一种表达数据的单一的关系模型为人们提供了一种表达数据的单一的方法方法. 一张二维表被称作一个关系一张二维表被称作一个关系. 每个关系有一个关系名每个关系有一个关系名.MoviesPage 92.2.1 属性属性 Attribute: 关系的列称之为属性关系的列称之为属性. 关系的每个属性有一个名称关系的每个属性有一个名称, 描述所在列的语义描述所在列的语义. 一个关系中的两个属性不可重名一个关系中的两个属性不可重名.titleyearlengthgenreGone With the Wind1939231dramaStar War
6、s1977124sciFiWaynes World199295comedyMoviesAttributes(columnheaders)Page 102.2.2 模式模式 关系模式关系模式 = 关系名关系名+ 属性集属性集. Example: Movies (title, year, length, genre) or Movies (title: string, year: integer, length: integer, genre: string) 改变关系模式中属性的顺序改变关系模式中属性的顺序, 不影响关系的不影响关系的语义语义. Example: Movies (year, ti
7、tle, length, genre)Page 112.2.2 模式模式 在关系数据库中,数据库是由一个或多个关在关系数据库中,数据库是由一个或多个关系组成。系组成。 关系数据库关系数据库 = collection of relations. 关系数据库模式关系数据库模式= set of all relation schemas in the database. Page 12titleyearlengthgenre Gone With the Wind1939231 drama Star Wars1977124 sciFi Waynes World1992 95 comedy2.2.3 元组
8、元组 Tuples: 关系中除含有属性名所在行以外的其它行称作元组关系中除含有属性名所在行以外的其它行称作元组. 关系中可以没有元组关系中可以没有元组. 每个元组相对于关系的每个属性,都有一个对应的每个元组相对于关系的每个属性,都有一个对应的分量值分量值. Tuples(rows)MoviesPage 132.2.3 元组元组 元组的表达元组的表达 单独表示一个元组时,常用逗号隔开各个分量,单独表示一个元组时,常用逗号隔开各个分量,并用圆括号括起来并用圆括号括起来. Example: (Star Wars, 1977, 124, sciFi) 当单独表示元组时,属性名不出现。当单独表示元组时,
9、属性名不出现。 We should always use the order in which the attributes were listed in the relation schema.Page 142.2.4 域域 Domains: 每个属性所允许的值集称之为该属性的域每个属性所允许的值集称之为该属性的域. 关系模型要求每个属性的值具有原子性,即不关系模型要求每个属性的值具有原子性,即不可再分可再分. 所以,域必须是基本的数据类型所以,域必须是基本的数据类型, 如:如: integer, char(n), date, time. We can represent a schema
10、as: Movies ( title: string, year: integer, length: integer, genre: string) Page 152.2.5 关系的等价表示关系的等价表示 Relations are sets of tuples, not lists of tuples. 在关系中,元组的排列顺序是无关的在关系中,元组的排列顺序是无关的. 任一元组在关系中只能出现一次任一元组在关系中只能出现一次. We can reorder the tuples of a relation, without changing the relation. We can reo
11、rder the attributes of a relation, without changing the relation. P13/Fig. 2-4.Page 162.2.6 关系实例关系实例 The schema of a relation is relatively static, while the tuples change over time. Relation instances: 一个给定关系在某一时刻的元组的集合称为一个给定关系在某一时刻的元组的集合称为该关系的一个实例该关系的一个实例. 关系的实例是随时间变化的关系的实例是随时间变化的. The set of tupl
12、es that are in the relation “now” is “current instance(当前实例当前实例)”. 数据库中常常只保存关系的当前实例。数据库中常常只保存关系的当前实例。Page 172.2.7 关系上的键关系上的键 Key(键键): 键由关系的一组属性构成,通过定义键,可以键由关系的一组属性构成,通过定义键,可以保证在关系实例中,任意两个元组在定义为键保证在关系实例中,任意两个元组在定义为键的属性集上取值不完全相同的属性集上取值不完全相同. Example: Students ( Sno, name, gender, birthdate ) Movies (
13、title, year, length, genre )Page 182.2.7 关系上的键关系上的键l Example: Movies ( title, year, length, genre, studioName, starName ) title, year 是键吗是键吗? title, year, starName 成绩成绩 ( 学号学号, 课号课号, 成绩成绩 ) 学号学号, 课号课号Page 192.2.8 数据库模式示例数据库模式示例 The database schema in this book: Movies(title, year, length, genre, stu
14、dioName, producerC#) MovieStar(name, address, gender, birthdate) StarsIn(movieTitle, movieYear, starName) MovieExec(name, address, cert#, netWorth) Studio(name, address, presC#) cert# - 证书号证书号 MovieExec 电影制片电影制片Page 202.2.8 数据库模式示例数据库模式示例为某商品销售公司构作一个销售业务数据库系统,该系统至少应管理为某商品销售公司构作一个销售业务数据库系统,该系统至少应管理以下
15、内容:以下内容: 公司分为多个下属部门公司分为多个下属部门(Department),如,如“江苏销售部江苏销售部”,“上上海销售部海销售部”等。每个部门有若干销售员等。每个部门有若干销售员(Salesman),每个销售员有,每个销售员有唯一的员工号唯一的员工号(如如“E0025”)和身份证号,也包含姓名、性别、出生和身份证号,也包含姓名、性别、出生日期、电话等信息。一个销售员仅属于一个部门,且每个部门有日期、电话等信息。一个销售员仅属于一个部门,且每个部门有一个销售员担任部门经理。一个销售员担任部门经理。 。 系统应管理客户信息系统应管理客户信息(Customer)(Customer),包含:
16、名称、省、市、单位名,包含:名称、省、市、单位名称、电话等。称、电话等。 系统应管理所有销售的商品系统应管理所有销售的商品(Product):制造商:制造商(如如“春兰春兰”、“海海尔尔”)、种类、种类(如如“摩托车摩托车”、“空调机空调机”)、规格、规格(如如“MT125”型摩型摩托车、托车、“RE1500”型空调型空调)、价格、功能及性能描述。、价格、功能及性能描述。 该系统用销售订单该系统用销售订单(Sales order)表示销售业务。每个订单有一个订表示销售业务。每个订单有一个订单号和签订日期,且对应一个客户和一个销售员。一个订单至少单号和签订日期,且对应一个客户和一个销售员。一个订
17、单至少销售一种产品销售一种产品( (Salesitem) ),并可销售多种产品,且每种产品应确,并可销售多种产品,且每种产品应确定其销售数量和单价,以计算销售金额。定其销售数量和单价,以计算销售金额。Page 212.2.8 数据库模式示例数据库模式示例l 关系数据库模式:关系数据库模式: Customer (custid, name, prov, city, phone, unit) Product (prodid, factory, type, spec, price, desc) Salesman (empid, idno, name, gender, phone, deptid) De
18、partment (deptid, name, headerid) Salesorder (orderno, signdate, empid, custid) Salesitem (orderno, lineno, prodid, unitprice, quantity) Page 222.2 关系模型基础关系模型基础 Exercise:p15 2.2.1 课内练习课内练习Page 232.3 在在SQL中定义关系模式中定义关系模式 SQL:Structured Query Language SQL的主要内容的主要内容: DQL (select):DQL is primarily a quer
19、y language, for getting information from a database. DML (insert, delete, update) DDL (create, drop, alter, .):SQL also includes a data-definition component for describing database schemas. DCL (grant, revoke, .)Page 242.3.1 SQL中的关系中的关系 SQL 区分三类关系区分三类关系: 存储的关系,称为表。这是通常要处理的一种关系,存储的关系,称为表。这是通常要处理的一种关系
20、,它在数据库中存储,可以对其元组进行查询和更新它在数据库中存储,可以对其元组进行查询和更新. 视图,视图, 通过计算来定义的关系。这种关系的数据并通过计算来定义的关系。这种关系的数据并不真正存储在数据库中不真正存储在数据库中, 但是可以在需要的时候被构但是可以在需要的时候被构造出来。造出来。 临时表临时表, 它在执行查询或更新时,由它在执行查询或更新时,由 SQL 处理程序临处理程序临时构造。这些临时表会在处理结束后被删除,不会写时构造。这些临时表会在处理结束后被删除,不会写入数据库中入数据库中.Page 252.3.2 数据类型数据类型 关系中的所有属性都必须有一个数据类型关系中的所有属性都
21、必须有一个数据类型.1. Character strings of fixed or varying length. Char(n), Varchar(n) 2. Bit strings of fixed or varying length. Bit(n), bit varying(n)3. Integer values.Tinyint, Smallint, Int | Integer, Bigint4. Floating-point numbers Real, double, float Decimal | dec(precision, scale), numeric(precision,
22、scale) 5. Dates and timesDate yyyy-mm-ddTime hh:mm:ss.sssss6. Boolean True, False, UnknownPage 26create table movies ( title char(30), year int, length int, genre char(10), studioname char(30), producerc int );2.3.3 简单的表定义简单的表定义 Page 27create table students ( sid char(9), name char(8), sex char(2) )
23、;sidnamesexB12070101刘梦女B12070102朱正洁女B12070103闫文柯女B12070104季晓倩女B12070105吴尘女B12070106曹雪宁女students2.3.3 简单的表定义简单的表定义 Page 282.3.3 简单的表定义简单的表定义 Create a tableCREATE TABLE salesman( empid char(5) PRIMARY KEY, idno char(18) UNIQUE, name char(8) NOT NULL, gender bit NOT NULL, phone char(20), deptid int NUL
24、L); 注意,在一个数据库中,不可以出现重名的表注意,在一个数据库中,不可以出现重名的表.说明主键说明主键说明唯一性说明唯一性说明不可为空说明不可为空默认允许空值默认允许空值Page 292.3.4 修改关系模式修改关系模式 Delete a table DROP TABLE salesman; Modify the schema of an existing relation ALTER TABLE R Add column-name datatype NOT NULL; ALTER TABLE R Drop column-name; Example:Alter Table salesman
25、 Add birthdate date;Page 302.3.5 缺省值缺省值 使用缺省值使用缺省值: 创建或修改元组时创建或修改元组时, 有时并不知道元组的所有分有时并不知道元组的所有分量值量值. SQL provides the NULL value as default value. 当我们说明属性及其数据类型时,我们可以加当我们说明属性及其数据类型时,我们可以加上关键字上关键字 DEFAULT 以及一个适当的值来说明缺以及一个适当的值来说明缺省值省值(默认值默认值).Page 312.3.5 缺省值缺省值 Example:CREATE TABLE salesorder ( ordern
26、o int PRIMARY KEY, signdate date NOT NULL DEFAULT getdate(), empid char(5) NOT NULL, custid char(4) NOT NULL,) ; 对于整型数,对于整型数, SQL Server中有一种常用的缺省值:中有一种常用的缺省值:IDENTITY(n1, n2) orderno int IDENTITY(1000, 1) PRIMARY KEY, DEFAULT DATE 1900-01-01Page 322.3.6 说明键说明键 SQL 语句中有两种说明主键的方式语句中有两种说明主键的方式.1. 在属性被列
27、入关系模式时,声明其为主键在属性被列入关系模式时,声明其为主键.Example: CREATE TABLE department( deptid int PRIMARY KEY, name char(40) NOT NULL, headerid char(5) NULL);Page 332.3.6 说明键说明键2. 在模式声明的项目表中增加表项,说明一个或一在模式声明的项目表中增加表项,说明一个或一组属性是主键组属性是主键.Example: CREATE TABLE salesitem( orderno int, lineno int, prodid char(6) NOT NULL, uni
28、tprice decimal(8, 2) NOT NULL, quantity int NOT NULL, Primary Key (orderno, lineno) );Page 342.3.6 说明键说明键 The distinguish and relationship between Primary Key and Unique. 关系中的任意两个元组不能在关系中的任意两个元组不能在Primary Key的所有属性或的所有属性或Unique 的属性集上完全相同的属性集上完全相同. 任何违反该约束的操作企图都会被系统拒绝任何违反该约束的操作企图都会被系统拒绝. 每张表有且仅有一个每张表有
29、且仅有一个Primary Key, 但可以有任意多个但可以有任意多个 Unique 项项. An Unique attribute can be NULL. Attributes in Primary Key are not allowed to have NULL.Page 352.3 在在SQL中定义关系模式中定义关系模式 Exercise:P20 2.3.1 a) - d) 属性的数据类型可参考属性的数据类型可参考 P29 2.4.1给出的数据值来确定。给出的数据值来确定。Page 362.4 代数查询语言代数查询语言 数据模型不仅仅是用来描述数据的结构,也包含数据模型不仅仅是用来描述数
30、据的结构,也包含对这些数据进行查询或更新的方法,即运算对这些数据进行查询或更新的方法,即运算. 关系模型上的运算有两种方式,一种是代数的方关系模型上的运算有两种方式,一种是代数的方式,叫做关系代数;一种是逻辑的方式,称作关式,叫做关系代数;一种是逻辑的方式,称作关系演算,例如:系演算,例如:Datalog. 关系代数包含一些简单但是功能强大的方法,可关系代数包含一些简单但是功能强大的方法,可以从给定关系构造出新关系。以从给定关系构造出新关系。Page 372.4.2 关系代数关系代数 代数表达式由一些操作符和操作数组成。代数表达式由一些操作符和操作数组成。在关系代数中:在关系代数中: 操作数是
31、关系或表示关系的变量,操作数是关系或表示关系的变量, 它们可它们可以通过运算产生新的关系以通过运算产生新的关系. 操作符是表示特定运算的符号,这些运算可操作符是表示特定运算的符号,这些运算可以由给定关系构造出新关系以由给定关系构造出新关系. 关系代数可以作为关系的查询语言关系代数可以作为关系的查询语言.Page 382.4.3 关系代数概述关系代数概述传统的关系代数运算主要有以下四类传统的关系代数运算主要有以下四类:1.通常的集合运算通常的集合运算: 并并, 交,差交,差2.除去关系的某一部分的运算除去关系的某一部分的运算: 选择选择: 消除关系的某些行消除关系的某些行 (tuples)投影投
32、影: 消除关系的某些列消除关系的某些列 (attributes)3.组合两个关系的元组的操作:组合两个关系的元组的操作:笛卡尔积笛卡尔积: 将两个关系中的元组以所有可能的方式配对,将两个关系中的元组以所有可能的方式配对,形成一个新关系。形成一个新关系。连接连接:将两个关系中的元组按一定的条件配对,形成一将两个关系中的元组按一定的条件配对,形成一个新关系。个新关系。Natural joinTheta-join4.重命名重命名: 不影响关系中的元组不影响关系中的元组, 但是改变关系的属性名或关但是改变关系的属性名或关系名,即改变关系的模式系名,即改变关系的模式.Page 392.4.4 关系上的集
33、合操作关系上的集合操作 Operations on sets R and S: RS = t | tR or tS ,R与与S的并集,是由的并集,是由属于属于R或属于或属于S, 或既属于或既属于R又属于又属于S的元素构成的元素构成的集合的集合, 每个元素在集合中只出现一次每个元素在集合中只出现一次. RS = t | t R and tS , R与与S的交集,是的交集,是由既属于由既属于R又属于又属于S的元素构成的集合的元素构成的集合. R S = t | tR and not tS , R与与S的差集,的差集,是由属于是由属于R但不属于但不属于S的元素构成的集合的元素构成的集合. 注意注意
34、R S 不同于不同于 S R.Page 402.4.4 关系上的集合操作关系上的集合操作 R 与与 S 应满足的条件应满足的条件: R与与S必须有同样的模式必须有同样的模式(有同样的属性集,对应有同样的属性集,对应相同的数据类型相同的数据类型). 集合运算前,集合运算前,R 与与S 的属性必须调整为相同的的属性必须调整为相同的顺序顺序.Page 41举例Page 42举例Page 43举例Page 44举例Page 452.4.5 投影投影 Projection(投影投影): 关系关系R的投影产生一个只包含的投影产生一个只包含R的部分列的新的部分列的新关系关系. R1 := A1,A2,An
35、(R) R1 是一个只包含关系是一个只包含关系 R 的的A1, A2, , An 列的新列的新关系关系. R1 的模式是的模式是: R1(A1, A2, , An). 投影运算会消除运算结果中的重复元组投影运算会消除运算结果中的重复元组.Page 462.4.5 投影投影titleyearlengthgenrestudioNameProducerC#ProducerC#Star WarsGalaxy QuestWayness World19771999199212410495sciFicomedycomedyFoxDreamWorksDreamWorksParamount12345678909
36、9999titleyearlengthStar WarsGalaxy QuestWayness World19771999199212410495genre sciFi comedyMovies title,year,length(Movies)g e n re(Movies)Page 472.4.6 选择选择 Selection(选择选择): 对关系对关系R的选择运算产生一个包含的选择运算产生一个包含R的元组子的元组子集的新关系集的新关系. R1 := C(R) R1 的模式与的模式与R相同相同. R1 中的元组是中的元组是R中满足给定条件中满足给定条件C的元组,的元组,C是是一个含有一个含
37、有R的属性的逻辑表达式的属性的逻辑表达式. 条件表达式条件表达式 C: 运算对象运算对象: 常数或常数或R的属性的属性 运算符运算符: = NOT AND ORPage 482.4.6 选择选择titleyearlengthgenrestudioNameProducerC#Star WarsGalaxy Quest19771999124104sciFicomedyFoxDreamWorks1234567890length 100(Movies): titleyearlengthgenrestudioNameProducerC#Star Wars1977124sciFiFox12345lengt
38、h 100 AND studioName =FOX(Movies):titleyearlengthgenrestudioNameProducerC#ProducerC#Star WarsGalaxy QuestWayness World19771999199212410495sciFicomedycomedyFoxDreamWorksParamount123456789099999Movies Page 492.4.7 笛卡尔积笛卡尔积 Cartesian product(笛卡尔积笛卡尔积): 两个集合两个集合R与与S的笛卡尔积是一个有序的元的笛卡尔积是一个有序的元素对的集合,其第一个元素是素
39、对的集合,其第一个元素是R中的任意元中的任意元素,第二个元素是素,第二个元素是S中的任意元素中的任意元素 。 is the set of pairs that can be formed by choosing the first element of the pair to be any element of R and the second any element of S. 表示为表示为: RS 若若R和和S是关系,是关系, RS也是关系。也是关系。Page 502.4.7 笛卡尔积笛卡尔积 RS : 结果关系的模式,其属性集是由结果关系的模式,其属性集是由R的属性集与的属性集与S的属性
40、集的属性集“并并”起来构成的。起来构成的。 若属性若属性A既是既是R的属性,也是的属性,也是S的属性,为加以的属性,为加以区别,我们用区别,我们用R.A表示来自表示来自R的的A属性,用属性,用S.A表表示来自示来自S的的A属性。属性。 结果关系中的元组是结果关系中的元组是R中的元组和中的元组和S中的元组中的元组以所有可能的方式组合所构成的,这些元组以所有可能的方式组合所构成的,这些元组的前一部分分量值来自的前一部分分量值来自R,后一部分分量值来,后一部分分量值来自自S. 结果关系中的元组个数是结果关系中的元组个数是 NRNS.Page 512.4.7 笛卡尔积笛卡尔积AB1324BCD2495
41、7106811AR.BS.BCD1113332224442492495710571068116811RSRS Example:Page 522.4.8 自然连接自然连接 Natural join(自然连接自然连接): 与积相比,我们更经常使用与积相比,我们更经常使用连接连接操作。此时操作。此时两个关系中的一对元组需要满足一定的匹配两个关系中的一对元组需要满足一定的匹配条件方能连接起来。条件方能连接起来。 自然连接是最常用的连接方式。自然连接是最常用的连接方式。 关系关系R与与S自然连接需要满足自然连接需要满足: 有同名属性有同名属性. 同名属性值相等同名属性值相等. 表示为表示为: R S 或
42、或: R SPage 532.4.8 自然连接自然连接 设关系设关系R与与S的模式中有同名属性的模式中有同名属性A1, A2, . , An ,r和和s分别是来自分别是来自R和和S的元组,当且仅当的元组,当且仅当r和和s在属性在属性A1, A2, . , An 的分量值都对应相等时,的分量值都对应相等时, r和和s才能才能配对,配对, 作为结果关系中的元组。作为结果关系中的元组。 若若r和和s连接成为连接结果中的一个元组,则该元连接成为连接结果中的一个元组,则该元组被称作组被称作连接元组,连接元组,连接元组在连接元组在R和和S的属性的属性并集并集的每个属性上均有一个分量值,且在的每个属性上均有
43、一个分量值,且在R的属性集的属性集上的值与上的值与r相同,在相同,在S的属性集上的值与的属性集上的值与s相同。相同。 注意,自然连接会在结果集中作投影,去掉同名注意,自然连接会在结果集中作投影,去掉同名属性的副本。属性的副本。Page 542.4.8 自然连接自然连接AB1324BCD24957106811RSExample:R S ABCD13245768 注意:若关系注意:若关系R与关系与关系S没有同名属性,没有同名属性, 则则R与与S的的自然连接是无效的。自然连接是无效的。Page 552.4.8 自然连接自然连接BCD227338 4 510UVExample:U V ABC16927
44、8 3 8 7ABCD116227 3 3 8 4 510 连接时,若某元组与另一关系中的任何元组皆不匹配,则该元组被称作悬挂元组悬挂元组. Page 562.4.8 自然连接自然连接Example: 求姓名为张平的学生的各科成绩求姓名为张平的学生的各科成绩.Sname=张平张平(Students Enrollment) snosnameclass01张平230102李立230103王宁2302Students Enrollmentsnosnameclasscnoscore01张平2301c18001张平2301c27802李立2301c29003王宁2302c175snocnoscore01
45、c18003c17501c27802c290EnrollmentStudentssnosnameclasscnoscore01张平2301c18001张平2301c278Page 572.4.9 连接连接Theta-join:使用任意条件配对元组。使用任意条件配对元组。表示为表示为: R C S计算步骤计算步骤:先计算先计算R和和S的积;的积;在计算结果中选择满足条件在计算结果中选择满足条件C的元组。的元组。Page 58 = A D (U V) ?2.4.9 Theta-JoinsBCD2273384510UVExample:U A D V ABC169278387AU.BU.CV.BV.C
46、D111692227833387227773388845101010 = A =100(movies):Page 63举例:查询选数据库系统原理课程的同学姓名sidcidB12070101B1801020SB12070101B1801041SB12070101B1801381SB12070101B1801020Sname(title=数据库系统原理数据库系统原理 (courses) enroll students)studentsenrollsidnamesexB12070101刘梦女B12070102朱正洁女B12070103闫文柯女B12070104季晓倩女B12070105吴尘女B120
47、70106曹雪宁女Page 64举例:查询刘梦同学所选的课程名title (name=刘梦刘梦 (students) enroll courses )studentsenrollsidcidB12070101B1801020SB12070101B1801041SB12070101B1801381SB12070101B1801020SsidnamesexB12070101刘梦女B12070102朱正洁女B12070103闫文柯女B12070104季晓倩女B12070105吴尘女B12070106曹雪宁女students2.4.11 命名和重命名命名和重命名 Renaming: 算符算符: S (
48、A1, A2,An) (R) 结果关系名为结果关系名为S,与,与R有完全相同的元组。有完全相同的元组。S的的属性分别命名为属性分别命名为A1, A2, ., An, 按从左至右的顺按从左至右的顺序序. 算符算符: S (R) 结果关系名为结果关系名为S,与,与R有完全相同的属性,与有完全相同的属性,与R有完全相同的元组。有完全相同的元组。Page 662.4.11 命名和重命名命名和重命名AB1324BCD24957106811RSAR.BS.BCD1113332224442492495710571068116811RS RS1 (X, C, D) (S) ABXCD1113332224442
49、492495710571068116811Example:An equivalent expression: RS (A, B, X, C, D) (RS) Page 67Snonamebirthdays1 Rose1992-10-10s2 Jack1991-12-10s3 Kate1992-10-102.4.11 命名和重命名命名和重命名 Example: Student(Sno, name, birthday) 求同一天生日的同学(学号对)求同一天生日的同学(学号对) s1.Sno, s2.Sno, s1.birthday(S1(Student) S2 (Student) s1.birth
50、day s2.birthday AND s1.Sno s2.SnoSnonamebirthdays1 Rose1992-10-10s2 Jack1991-12-10s3 Kate1992-10-10S1S2Page 682.4.12 运算之间的联系运算之间的联系 有些运算可由其它关系运算表示有些运算可由其它关系运算表示. RS R (R S)-join: R c S c (R S)Natural join:R S L (c (R S) C 是形如是形如 R.A1 = S.A1 AND R.A2 = S.A2 AND . AND R.An = S.An 的条件表达式,的条件表达式,A1, A2,
51、 ., An 是是R 和和S的共有属的共有属性性. L是所有是所有R中的属性以及在中的属性以及在S中但不在中但不在R中的属性的列中的属性的列表表.Page 692.4.12 运算之间的联系运算之间的联系 这三类运算可由其它运算导出的运算称作这三类运算可由其它运算导出的运算称作派生运算派生运算或导出运算;或导出运算; 其它类运算:并,差,选择,投影,笛卡其它类运算:并,差,选择,投影,笛卡尔积,和重命名运算则称作尔积,和重命名运算则称作基本运算。基本运算。Page 70举例A B1 26 7B C D2 3 42 3 57 8 10A R.B S.B C D1223412235127810672
52、3467235677810RSR SA R.B S.B C D1223412235677810R.B=S.B(R S)A B C D1 2 3 41 2 3 56 7 8 10A,R.B,C,D(R.B=S.B(R S)Page 71 可通过赋值语句命名一些临时关系,以简化复杂可通过赋值语句命名一些临时关系,以简化复杂的关系代数表达式的关系代数表达式. 赋值语句中所用到的符号包括:赋值语句中所用到的符号包括: 关系名及用圆括号括起的属性名列表关系名及用圆括号括起的属性名列表. 关系名关系名Answer 习惯上用来表示最后一步运算的结果习惯上用来表示最后一步运算的结果. 赋值号赋值号 := 赋值
53、号右边的任意代数表达式赋值号右边的任意代数表达式.Example: Movies (title, year, length, genre, studioName)R(t, y, l, g, s) := length 100 (Movies) S(t, y, l, g, s) := studioName = FOX (Movies) Answer(title, year) := t, y (R S )2.4.13 代数表达式的线性符号代数表达式的线性符号Page 722.4.14 Example设设R(A,B) 与与 S(A,B) 是有相同模式的关系是有相同模式的关系, 下列关下列关于关系代数表
54、达式的等价判断中,哪一个是正于关系代数表达式的等价判断中,哪一个是正确的确的? I. RS = R - (R - S) II. RS = S - (S - R) III. RS = R SA) I only B)I and II only C) I, II, and III D) None of the abovePage 732.4.14 Example下列四个关系代数表达式中,哪一个与其余三下列四个关系代数表达式中,哪一个与其余三个不等价?它们都基于关系个不等价?它们都基于关系R(A,B) 和和S(B,C). A) A, B (R S)B)R B (S)C)R( A (R) B (S) )
55、D) A, R.B (R S)Page 742.4.14 Example1.求既选修求既选修c1 课程,亦选修课程,亦选修 c2 课程的学生学号课程的学生学号. Sno(Cno= c1 (Enrollment) Sno(Cno = c2 (Enrollment)2.求没有选修求没有选修c1课程的学生学号课程的学生学号. Sno(Enrollment) Sno(Cno = c1 (Enrollment) )Sno(Cno= c1 and Cno = c2 (Enrollment) ?Sno(Cno c1 (Enrollment) ?SnoCnoScore01c18003c17501c27802c
56、290EnrollmentorPage 753.求获得求获得c1课最高分的学生学号课最高分的学生学号. Sno (Cno= c1 (Enrollment) ) - - E1.Sno (E1(Enrollment) E2 (Enrollment) E1.Score E2.Score AND E1.Cno =c1 AND E2.Cno =c1EnrollmentE1E2E1.SnoE1.CnoE1.ScoreE2.SnoE2.CnoE2.Score01c18002c19003c17501c18003c17502c190SnoCnoScore01c18003c17501c27802c190SnoCn
57、oScore01c18003c17501c27802c190Page 762.4.14 ExampleCustomer (custid, name, prov, city, phone, company) Product (prodid, factory, type, spec, price, desc) Salesman (empid, idno, name, gender, phone, deptid) Department (deptid, name, headerid) Salesorder (orderno, signdate, empid, custid) Salesitem (orderno, lineno, prodid, u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 进口委托代理合同
- 设计师聘用合同书
- 美容师聘用标准合同年
- 种苗采购的合同范本
- 互动仪式链视角下轮岗教师专业引领的困境与破解
- 青春期父母预备手册-随笔
- 2025年湘教新版必修1物理下册月考试卷含答案
- 2025年外研版三年级起点九年级历史下册阶段测试试卷含答案
- 智能客服系统合作开发合同(2篇)
- 2025年外研版三年级起点九年级地理上册阶段测试试卷
- 四年级四年级下册阅读理解20篇(附带答案解析)经典
- 大连高新区整体发展战略规划(产业及功能布局)
- 国有资产管理法律责任与风险防控
- 未婚生子的分手协议书
- 变更监事章程修正案范例
- 北京小客车指标租赁协议五篇
- 输液室运用PDCA降低静脉输液患者外渗的发生率品管圈(QCC)活动成果
- YY/T 0681.2-2010无菌医疗器械包装试验方法第2部分:软性屏障材料的密封强度
- 烟气管道阻力计算
- 城乡环卫一体化保洁服务迎接重大节日、活动的保障措施
- 医院-9S管理共88张课件
评论
0/150
提交评论