第四章  关系数据库
Download
1 / 99

第四章 关系数据库 - PowerPoint PPT Presentation


  • 127 Views
  • Uploaded on

第四章 关系数据库. 上一章介绍了三种主要的数据模型: 层次模型 网状模型 关系模型 本章主要讲述 : 关系模型的数据结构 关系的定义和性质 关系数据库的基本概念 关系运算. TNO 教师号. CNO 课程号. CN 课程名. TN 姓名. SEX 性别. CT 课时. AGE 年龄. PROF 职称. SAL 工资. TNO 教师号. COMM 岗位津贴. CNO 课程号. DEPT 系别. 关系模型的数据结构. 关系模型就是用二维表格结构来表示实体及实体之间联系的模型。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第四章 关系数据库' - varian


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


TNO

教师号

CNO

课程号

CN

课程名

TN

姓名

SEX

性别

CT

课时

AGE

年龄

PROF

职称

SAL

工资

TNO

教师号

COMM

岗位津贴

CNO

课程号

DEPT

系别

关系模型的数据结构

  • 关系模型就是用二维表格结构来表示实体及实体之间联系的模型。

  • 关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。

    • 教师关系T

    • 课程关系C 授课关系SC

    • 教师—课程数据库的关系模型


  • 从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如:从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如:

    • 教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。

    • 而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。

    • 至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元组之间才有联系。


  • 由上例可以看出,在一个关系中可以存放两类信息:由上例可以看出,在一个关系中可以存放两类信息:

    • 一类是描述实体本身的信息

    • 一类是描述实体(关系)之间的联系的信息

  • 在层次模型和网状模型中,把有联系的实体(元组)用指针链接起来,实体之间的联系是通过指针来实现的。而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。

  • 所以,在建立关系模型时,只要把的所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。

    • 如上例中的教师—课程数据库的关系模型就是这样建立的。


关系的定义由上例可以看出,在一个关系中可以存放两类信息:

  • 在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。

  • 关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。

  • 为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。

  • 1) 域(Domain)

  • 域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)

    • 例如整数、实数、字符串的集合。

  • 域中所包含的值的个数称为域的基数(用m表示)。


  • 关系中用域表示属性的取值范围。例如:由上例可以看出,在一个关系中可以存放两类信息:

    • D1={李力,王平,刘伟} m1=3

    • D2={男,女} m2=2

    • D3={47,28,30} m3=3

    • 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。

  • 域名无排列次序,如D2={男,女}={女,男}


  • 2由上例可以看出,在一个关系中可以存放两类信息:)笛卡尔积(Cartesian Product )

  • 给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为

  • D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}.

  • 由定义可以看出,笛卡尔积也是一个集合。

    例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:

    D1={李力,王平,刘伟}

    D2={男,女}

    D1×D2={(李力,男),(李力,女),(王平,男),

    (王平,女),(刘伟,男),(刘伟,女)}


  • 其中:由上例可以看出,在一个关系中可以存放两类信息:

    • 元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)

    • 每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。元组的每个分量(di)是按序排列的。

      如:(1,2,3)≠(2,3,1)≠(1,3,2)

      • 而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。

    • 其中:李力、王平、刘伟、男、女都是分量。

    • (李力,男),(李力,女)等是元组。


  • 由上例可以看出,在一个关系中可以存放两类信息:Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累积,即

    M=

    例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:

    D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}

    其基数M=m1×m2=3*2=6;元组的个数为6。


姓名由上例可以看出,在一个关系中可以存放两类信息:

性别

李力

李力

王平

王平

刘伟

刘伟

  • 笛卡尔积可用二维表的形式表示。

    例如,上述的6个元组可表示成下表

  • D1和D2的笛卡尔积

    由上例可以看出,笛卡尔积实际是一个二维表,

    表的框架由域构成,表的任意一行就是一个元组,表

    中的每一列来自同一域,如第一个分量来自D1,第二

    个分量来自D2。


  • 姓名由上例可以看出,在一个关系中可以存放两类信息:

    性别

    李力

    王平

    刘伟

    • 3)关系的定义

    • 笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用表示为

    • R(D1,D2……Dn)。

    • 其中:①R为关系名,n称为关系的目或度。

    •   当n=1时,称为单元关系。

      当n=2时,称为二元关系。

      当n=n时,称为n元关系。

      ②关系中元组个数是关系的基数。


    • 由上例可以看出,在一个关系中可以存放两类信息:关系中候选码与主码

    • 在关系中可以唯一标示一个元组的属性或属性组称

    • 为候选码,在候选码中选择一个主码。

    • 如关系的候选码只有一个属性,称为单属性码。

    • 如关系中的候选码由多个属性构成,称为多属性码。

    • 如关系中只有一个候选码,且包含所有属性,称为全码。

    一定是

    主码

    候选码

    不一定是


    姓名由上例可以看出,在一个关系中可以存放两类信息:

    性别

    李力

    李力

    • ④主属性与非主属性

    • 主属性(Prime Attribute):包含在候选码中的的各属性称为主属性。

    • 非主属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非码属性。

    • 数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。例如在下表中选取一个子集构成如下关系,显然不符合实际情况。


    • 4由上例可以看出,在一个关系中可以存放两类信息:)关系的类型

    • 本书关系基本为有限关系,关系的类型有三种:基

    • 本表,查询表,视图表。

    • 基本表(基本关系)是实际存在的表,是实际存储数据的逻辑表示。

    • 查询表是查询结果对应的表。

    • 视图表是由基本表或其他视图表导出来的表,是虚表。

    • 严格地说,关系是规范化二维表中行的集合,为了使相应

    • 的数据操作简化,在关系模型中,对关系作了种种限制,分

    • 别如下:


    • 由上例可以看出,在一个关系中可以存放两类信息:关系中不允许出现相同的元组

    • 在其他关系数据库产品中,基本表并不完全都满足此性质,如Oracle,Foxpro允许表中存在两个完全相同的元组。

    • ②关系中元组的顺序(即行序)是无关紧要的

      在一个关系中可以任意交换两行的次序。根据关系的这

      个性质,可以改变元组的顺序使其具有某种排序,然后按

      照顺序查询数据,可以提高查询速度。

      ③关系中属性的顺序是无关紧要的

      即列的顺序可以任意交换。交换时,应连同属性名一起交

      换,否则将得到不同的关系。


    姓名由上例可以看出,在一个关系中可以存放两类信息:

    职业

    兼职

    张强

    教师

    辅导员

    王丽

    工人

    教师

    刘宁

    教师

    辅导员

    ④列是同质的

    同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。

    ⑤关系中各个属性必须有不同的名字

    不同的属性可来自同一个域,不同的属性要给予不同的属性名。

    • 例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业={教师,工人,辅导员}。


    姓名由上例可以看出,在一个关系中可以存放两类信息:

    籍贯

    姓名

    市/县

    市/县

    张强

    吉林

    长春

    张强

    吉林

    长春

    王丽

    山西

    大同

    王丽

    山西

    大同

    ⑥关系中每一分量必须是不可分的数据项

    所有属性值都是原子的,即是一个确定的值,而不是

    值的集合。满足此条件的关系称为规范化关系,否则称为非

    规范化关系。

    • 例如


    属性间数据的依赖关系由上例可以看出,在一个关系中可以存放两类信息:

    属性向域的映象

    域的集合

    R(U, D, DOM, F)

    关系名

    属性名集合

    关系模式

    • 关系模式(Relation Schema):关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等,其形式化描述为R(U,D,dom,F),简记作R(U)或R(A1 , A2 ,…, An ) 。



    关系数据库关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 关系数据库(Relation Database)即在某应用领域,所有

    • 实体集与实体间联系的关系构成的集合。关系数据库有型与值

    • 之分,型称为关系数据库的模式,值称为关系数据库的值。关

    • 系数据库模式与关系数据库的值通常统称为关系数据库。

    • 其型是关系模式的集合,即数据库描述。

    • 其值是某一时刻关系的集合。

    • 例如教学数据库中,共有五个关系,其关系模式分别为:

      • 学生(学号,姓名,性别,年龄,系别)

      • 课程(课程号,课程名,课时)

      • 选课(学号,课程号,成绩)


    关系模型的完整性关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 为了维护数据库中数据与现实世界的一致性,对关系数

    • 据库的插入、删除和修改操作必须有一定的约束条件,这就是

    • 关系模型的三类完整性:

      • 实体完整性

      • 参照完整性

      • 用户定义的完整性

    • 1). 实体完整性(Entity Integrity)

    • 实体完整性是指主码的值不能为空或部分为空。

    • 空值不是空格,它指跳过货不输人,用“NULL”表示,说明“不知道”,“无意义”。


    职工姓名关系模式是型,是稳定的,静态的。关系是某一时刻的Name

    部门编号DeptNo

    部门编号DeptNo

    部门名称DeptName

    刘勇

    01

    01

    计算机系

    丁钰

    02

    02

    人事处

    张清蜂

    03

    电子系

    职工表 部门表

    返回本节


    SNO关系模式是型,是稳定的,静态的。关系是某一时刻的

    学号

    SN

    姓名

    SEX

    性别

    AGE

    年龄

    DEPT

    所在系

    DEPT

    所在系

    ADDR

    地址

    S1

    赵亦

    17

    计算机

    计算机

    1号楼

    S2

    钱尔

    18

    信息

    信息

    1号楼

    自动化

    2号楼

    S11

    王威

    19

    • 2).参照完整性(Referential integrity)

    • 如果属性X不是关系R2的主码,而是另一关系R1的主码,

    • 则该属性X称为关系R2的外码;并称关系R2为参照关系,关系

    • R1为被参照关系。外码一般用波浪线标示。

    R2(学生关系)           R1(系别关系)


    职工姓名关系模式是型,是稳定的,静态的。关系是某一时刻的Name

    部门编号DeptNo

    部门编号DeptNo

    部门名称DeptName

    刘勇

    01

    01

    计算机系

    丁钰

    02

    02

    人事处

    张清蜂

    03

    电子系

    • 参照完整性规则,要求外码只能取下面两类值:

    • 空值

    • 非空值,该值必须与被参照关系中主码的某个取值一致。

    职工表 部门表


    • 实体完整性关系模式是型,是稳定的,静态的。关系是某一时刻的和参照完整性是关系模型必须满足的完

    • 整性约束条件,系统都应该支持这两类完整性。

    • 除此之外,不同的关系数据库系统由于应用环境的

    • 不同,往往还需要一些特殊的约束条件,这就是用户定

    • 义完整性。


    • 3关系模式是型,是稳定的,静态的。关系是某一时刻的). 用户定义完整性(User-defined Integrity)

    • 用户定义完整性是针对某一具体关系数据库的约束条件,

    • 它反映某一具体应用所涉及的数据必须满足的语义要求。

    • 例如,属性值根据实际需要,要具备一些约束条件,如选

    • 课关系中成绩不能为负数;某些数据的输入格式要有一些限制

    • 等。


    关系操作关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 关系操作是集合操作,操作的对象及结果都是集合,是一

    • 次一集合(Set-at-a-time)的方式。而非关系型的数据操作

    • 方式是一次一记录(Record-at-a-time)。

    • 关系模型与其他模型相比,最有特色的是它的数据库语言,

    • 这种语言灵活方便、表达能力和功能都很强。

    • 目前关系数据库所使用的语言一般都具有定义、查询、更新

    • 和控制一体化的特点,而查询是最主要的部分。故而关系数据库

    • 有的核心部分是查询,故又称为查询语言,而查询的条件要使用

    • 关系运算表达式来表示。


    关系代关系模式是型,是稳定的,静态的。关系是某一时刻的

    数语言

    ISBL(Information System Base Language)

    元组关系演算语言

    ALPHA

    关系数

    据语言

    关系演

    算语言

    域关系演算语言

    QBE

    具有关系代数和关系

    演算双重特点的语言

    SQL

    • 关系运算是设计关系数据语言的基础。关系操作语言的种类

    • 可划分如下:


    一、关系代数关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 1)关系代数的基本概念

    • 关系代数是对关系进行集合代数运算,是基于关系代数的

    • 操作语言,称为关系代数语言,简称关系代数。

      • 它是由IBM在一个实验性的系统上实现的,称为ISBL(Information System Base Language)语言。

      • ISBL的每个语句都类似于一个关系代数表达式。

    • 关系代数的运算对象是关系,运算结果也是关系,关系代

    • 数用到的运算符主要包括四类:


    运算符关系模式是型,是稳定的,静态的。关系是某一时刻的

    含义

    集合运算符

    -

    ×

    广义笛卡尔积

    专门的关系运算符

    σ

    选择

    投影

    

    连接

    ÷

    关系代数运算符


    运算符关系模式是型,是稳定的,静态的。关系是某一时刻的

    含义

    比较运算符

    大于

    大于或等于

    小于

    小于或等于

    等于

    不等于

    逻辑运算符

    续表


    传统的集合运算关系模式是型,是稳定的,静态的。关系是某一时刻的

    • .并∪

    • .差-

    • . 交∩

    • .广义笛卡尔积×


    传统集合运算举例关系模式是型,是稳定的,静态的。关系是某一时刻的


    返回本节关系模式是型,是稳定的,静态的。关系是某一时刻的


    专门的关系运算关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 1).选择(selection)

    • 选择又称为限制,它是在关系R中选择满足

    • 给定条件的元组,组成一个新的关系。记作:

    • σF (R) ={t|t∈R∧F(t) = TRUE }


    • 2)关系模式是型,是稳定的,静态的。关系是某一时刻的.投影(projection)

    • 从关系R上选取若干属性列A,并删除重复

    • 行,组成新的关系。记作:

    • ∏A (R) = { t[ A ] | t ∈ R}

    • 投影操作是从列的角度进行的运算。


    图书号关系模式是型,是稳定的,静态的。关系是某一时刻的Bookid

    图书名Bookname

    编者Editor

    价格Price

    出版社Publish

    出版年月PubDate

    库存数Qty

    TP2001--001

    数据结构

    李国庆

    22.00

    清华大学出版社

    2001-01-08

    20

    TP2003--002

    数据结构

    刘娇丽

    18.9

    中国水利水电出版社

    2003-10-15

    50

    TP2002--001

    高等数学

    刘自强

    12.00

    中国水利水电出版社

    2002-01-08

    60

    TP2003--001

    数据库系统

    汪 洋

    14.00

    人民邮电出版社

    2003-05-18

    26

    TP2004--005

    数据库原理与应用

    刘淳

    24

    中国水利水电出版社

    2004-07-25

    100

    表图书关系BOOK


    借书卡号关系模式是型,是稳定的,静态的。关系是某一时刻的Cardid

    读者姓名Name

    性别Sex

    工作单位Dept

    读者类别Class

    T0001

    刘勇

    计算机系

    1

    S0101

    丁钰

    人事处

    2

    S0111

    张清蜂

    培训部

    3

    T0002

    张伟

    计算机系

    1

    表读者关系READER


    图书号关系模式是型,是稳定的,静态的。关系是某一时刻的Bookid

    借书卡号Cardid

    借书日期Bdate

    还书日期Sdate

    TP2003--002

    T0001

    2003-11-18

    2003-12-09

    TP2001--001

    S0101

    2003-02-28

    2003-05-20

    TP2003--001

    S0111

    2004-05-06

    TP2003--002

    S0101

    2004-02-08

    表借书关系BORROW

    返回本节


    Bookname关系模式是型,是稳定的,静态的。关系是某一时刻的

    Publish

    数据结构

    清华大学出版社

    数据结构

    中国水利水电出版社

    高等数学

    中国水利水电出版社

    数据库系统

    人民邮电出版社

    数据库原理与应用

    中国水利水电出版社

    • 例2-3 查询关系BOOK中所有图书的书名和对应的出版社。

    • ∏Bookname,Publish(Book)

    • 结果如下:


    Bookname关系模式是型,是稳定的,静态的。关系是某一时刻的

    Qty

    数据结构

    50

    高等数学

    60

    数据库原理与应用

    100

    • 例2-4查询“中国水利水电出版社”出版的所有藏书的书名和库

    • 存数量。

    • ∏Bookname,Qty(σPublish='中国水利水电出版社'(Book))

    • 结果如下:


    • 3)关系模式是型,是稳定的,静态的。关系是某一时刻的.连接(join)

    • 连接也称为θ连接。它是从两个关系R和S的

    • 笛卡尔积R×S中选取属性间满足一定条件的元

    • 组,构成新的关系。

    • 连接是从两个关系的笛卡儿积中选取属性间满足一定

    • 条件的元组。记作:

    • R S={tr ts| trR ∧ tsS ∧ tr [A]θts [B]}.

    • AθB


    • R S={tr ts| tr关系模式是型,是稳定的,静态的。关系是某一时刻的R ∧ tsS ∧ tr [A]θts [B]}.

    • AθB

    • 其中:A和B分别为R和S上度数相等且可比的属性组,

    • θ是比较运算符。

    • 连接运算从R和S的广义笛卡儿积R×S中,选取符合

    • AθB条件的元组,即选择在R关系中A属性组上的值与在S

    • 关系中B属性组上的值满足比较操作θ的元组。


    A=B关系模式是型,是稳定的,静态的。关系是某一时刻的

    R S = { | trR∧ts S∧tr[A] = ts[B] }

    tr ts

    • 连接一般分为两种:等值连接与自然连接。

    • ★等值连接(equi-join)

      • 什么是等值连接?

        • 当θ为“=”的连接运算称为等值连接。

      • 等值连接的含义

        • 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:


    R关系模式是型,是稳定的,静态的。关系是某一时刻的S = { – ts[B] | tr R∧ts S∧tr[B] = ts[B] }

    tr ts

    2.3 关系代数

    • 自然连接(Natural join)

      • 什么是自然连接

        • 自然连接是一种特殊的等值连接

          • 两个关系中进行比较的分量必须是同名的属性(组)

          • 在结果中把重复的属性列去掉

      • 自然连接的含义

        R和S具有相同的属性组B


    R关系模式是型,是稳定的,静态的。关系是某一时刻的S = { – ts[B] | tr R∧ts S∧tr[B] = ts[B] }

    tr ts

    ★自然连接

    • 什么是自然连接?

      • 自然连接是一种特殊的等值连接。

        • 两个关系中进行比较的分量必须是同名的属性(组)。

        • 在结果中把重复的属性列去掉。

    • 自然连接的含义

      R和S具有相同的属性组B。

  • 举例说明笛卡尔积、等值连接、自然连接的区别。


  • Bookid关系模式是型,是稳定的,静态的。关系是某一时刻的

    Bookname

    Publish

    TP2001--001

    数据结构

    清华大学出版社

    TP2003--002

    数据结构

    中国水利水电出版社

    TP2002--001

    高等数学

    中国水利水电出版社

    TP2003--001

    数据库系统

    人民邮电出版社

    TP2004--005

    数据库原理与应用

    中国水利水电出版社

    表(a)R关系


    Cardid关系模式是型,是稳定的,静态的。关系是某一时刻的

    Bookid

    T0001

    TP2003--002

    S0101

    TP2001--001

    S0111

    TP2003--001

    S0101

    TP2003--002

    表(b)S关系


    R关系模式是型,是稳定的,静态的。关系是某一时刻的.Bookid

    BookName

    Publish

    S.Bookid

    Cardid

    TP2001--001

    数据结构

    清华大学出版社

    TP2001--001

    S0101

    TP2003--002

    数据结构

    中国水利水电出版社

    TP2003--002

    T0001

    TP2003--002

    数据结构

    中国水利水电出版社

    TP2003--002

    S0101

    TP2003--001

    数据库系统

    人民邮电出版社

    TP2003--001

    S0111

    表(c)R和S的等值连接


    • 4)关系模式是型,是稳定的,静态的。关系是某一时刻的.除(division)

    • 为了说明除法运算,先得给出像集的概念。

    • 像集的定义:给定一个关系R(X,Z),X

    • 和Z为属性组。定义当t(X)= x时,在R中的像

    • 集为:

    • Zx={t[Z]|t∈R,t[X]= x}

    • 它表示R中属性组X上值为x的诸元组在Z上分量

    • 的集合。


    Z关系模式是型,是稳定的,静态的。关系是某一时刻的B=b2

    S

    B

    C

    D

    b1

    c2

    d1

    C

    D

    b2

    c1

    d1

    c1

    d1

    b2

    c3

    d2

    c3

    d2

    • 像集举例:


    • 除符号定义为关系模式是型,是稳定的,静态的。关系是某一时刻的

    • R÷S = {tr [X] | tr R∧πY (S) Yx }

    • Yx:x在R中的象集, tr[X] = x

    • 本质是R在属性组X上投影的一个子集,最终结果由属于R中的属性构成。

    • 关系除法运算的求解步骤。


    关系模式是型,是稳定的,静态的。关系是某一时刻的2-6 设关系R,S分别如表2-10中的(a)和(b)所示,求R÷S。

    返回本节


    关系数据库管理系统关系模式是型,是稳定的,静态的。关系是某一时刻的

    • (1)(最小)关系系统。即满足上面最基本的条件,支持关系数据结构,支持选择、投影和连接操作。

    • (2)关系完备系统。支持关系数据结构和所有的关系代数操作。

    • (3)全关系。这类系统支持关系模型的所有特征,而且支持数据结构中域的概念及实体完整性和参照完整性。

    返回首页


    • 关系代数总结关系模式是型,是稳定的,静态的。关系是某一时刻的

      • 关系代数是在关系上定义一组运算,由已知关系经过有限次地运算可以得到目标关系(查询)。

    • 专门的关系运算:

      • 选择(Select)

      • 投影(Project)

      • 连接(Join)

      • 除(Divide)

    • 传统的集合运算:

      • 并(Union)

      • 交(Intersection)

      • 差(Difference)

      • 广义笛卡尔积

        (Extended Cartesian Product)

    • 关系代数表达式应该建立在关系模式上,而不是某一特定的关系实例上满足。


    ×关系模式是型,是稳定的,静态的。关系是某一时刻的、  、 、 ÷

    • 水平方向的运算:

      ∪、 ∩ 、-、σ

    • 垂直方向的运算:

    • π

    • 混合运算:

    • 关系代数表达式:

      由关系的运算经过有限次的复合后形成的式子。


    • 五种基本操作的实现关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 查询 一个关系中指定列属性的查询 π

    • 两个关系的合并 ×

    • 插入 ∪

    • 删除 -

    • 修改 - ∪

    一个关系中指定元组的查询 σ


    用关系代数表示检索的例子关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生关系库的关系模式为:

    学生(学号,姓名,性别,年龄,所在系);

    学生合唱团(学号,姓名,性别,年龄,所在系);

    学生篮球队(学号,姓名,性别,年龄,所在系);

    课程(课程号,课程名,先行课,学分);

    选课(学号,课程号,成绩).

    【例4-1】求选修了课程号为“C2”课程的学生学号。

    π学号(σ课程号= 'C2'(选课))

    【例4-2】求选修了课程号为“C2”课的学生学号和姓名。

    π学号,姓名(σ课程号= ‘C2’(选课 学生))

    【例4-3】请列出参加课外社团的学生情况。

    学生合唱团∪学生篮球队

    【例4-4】请列出既参加学生合唱社团,又参加篮球队的学生情况。

    学生合唱团∩学生篮球队


    • 关系模式是型,是稳定的,静态的。关系是某一时刻的例4-6】查询没有参加课外社团的学生信息。

    • (学生-学生合唱团)-学生篮球队

    • 【例4-7】求没有选修课程号为“C2”课程的学生学号。

    • π学号(学生)-π学号(σ课程号= 'C2'(选课))

    • 【例4-8】求既选修“C2”课程,又选修“C3”课程的学生学号。

    • π学号(σ课程号= ‘C2’(选课))∩π学号(σ课程号= 'C3'(选课))

    • 该题不能写为:

    • π学号(σ课程号=‘C2’ ∧ 课程号=‘C3’(选课))


    关系模式是型,是稳定的,静态的。关系是某一时刻的例4-9】求选修课程号为“C2”或“C3”课程的学生学号。

    π学号(σ课程号='C2'(选课))∪π学号(σ课程号='C3'(选课))

    或 π学号(σ课程号=‘C2’ ∨ 课程号=‘C3’(选课))

    【例4-10】求选修了全部课程的学生学号。

    π学号,课程号(选课÷课程)

    【例4-11】查询至少选修了一门其先行课是c6课程的学生姓名。

    π姓名(σ先行课=‘C6’(课程) (选课) (学生))

    π姓名((π课程号(σ先行课=‘C6’(课程))π学号,课程号(选课) π学号,姓名(学生))


    • 注:查询要优化处理关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 一般先作选择、投影,再作连接。

    • 尽量减少扫描表的次数。

    • 例如:求计算机系所有女学生的信息

    • (σ所在系=‘计算机系’(学生))∩(σ性别=‘女’(学生))

    • σ所在系=‘计算机系’ ∧ 性别=‘女’ (学生)

    优选


    关系演算关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 关系的表示有列举法(二维表)、描述法。描述法是给出关

    • 系元组所必须满足的特性;关系演算以数理逻辑中的谓词演算

    • 为基础。

    • 种类:根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。

    • *元组关系演算:

      以元组变量作为谓词变元的基本对象;元组关系演算语言ALPHA

      *域关系演算:

      以域变量作为谓词变元的基本对象;域关系演算语言QBE


    关系演算 关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 关系演算是以数理逻辑中的谓词演算为基础的,通过谓词

    • 形式来表示查询表达式。

    • 1 ) 元组关系演算语言

    • 元组关系演算是以元组变量作为谓词变元的基本对象。

    • 元组关系演算语言的典型代表是E.F.Codd提出的ALPHA

    • 语言,这种语言虽然没有实际实现,但较有名气,INGRES

    • 关系数据库上使用的QUEL语言,就是在ALPHA语言的基础

    • 上研制的。

    • 关系表达式用R={t |ф(t)}表示,其中:t为元组变量; ф(t)为元组演算公式;所有使ф(t)为真的元组的集合。


    • 元组演算公式由原子公式和运算符组成。关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 原子公式:

    • R (t): t是R关系中的元组。

    • t [i] θu [j]: t\u是元组变量, θ比较运算符,t元组的第i分量与u元组的第j分量满足比较条件.

    • t [i] θc: t元组的第i分量与常量c满足比较条件.

    • 运算符优先规则:

    • 括号 算术 比较 量词 逻辑


    Alpha
    元组关系演算语言关系模式是型,是稳定的,静态的。关系是某一时刻的ALPHA

    • 检索操作 GET

      GET工作空间名[(定额)](表达式1)

      [:操作条件] [DOWN/UP 表达式2]

    • 插入操作

      • 建立新元组--PUT

    • 修改操作

      • HOLD--修改--UPDATE

    • 删除操作

      • HOLD--DELETE


    • 查询关系模式是型,是稳定的,静态的。关系是某一时刻的GET语句格式:

    • GET工作空间名 [(定额)](表达式1)

    • [:操作条件] [DOWN/UP 表达式2]

    指定语句的操作对象

    如:关系名;关系名.属性名

    规定检索的元组个数

    关系名.属性名;元组变量;属性名

    逻辑表达式


    关系模式是型,是稳定的,静态的。关系是某一时刻的1)简单检索

    • GET工作空间名 (表达式1)

      [例1] 查询所有被选修的课程号码。

      GET W (选课.课程号) 

      [例2] 查询所有学生的数据。

      GET W (学生)


    关系模式是型,是稳定的,静态的。关系是某一时刻的2)限定的检索

    • 格式

      GET工作空间名(表达式1):操作条件

      [例3] 查询信息系(IS)中年龄小于20岁的学生的学号和年龄。

      GET W (学生.学号,学生.年龄):学生.所在系=‘IS’∧ 学生.年龄<20


    关系模式是型,是稳定的,静态的。关系是某一时刻的3)带排序的检索

    • 格式

      GET工作空间名(表达式1)[:操作条件]

      DOWN/UP 表达式2

      [例4] 查询计算机科学系(CS)学生的学号、年龄,结果按年龄降序排序。

      GET W (学生.学号,学生.年龄):学生.所在系='CS‘ DOWN学生.年龄


    关系模式是型,是稳定的,静态的。关系是某一时刻的4)带定额的检索

    • 格式 : GET工作空间名(定额)(表达式1)

      [:操作条件] [DOWN/UP表达式2]

      [例5] 取出一个信息系学生的学号。

      GET W (1) (学生.学号): 学生.所在系='IS' 

      [例6] 查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序。

      GET W (3) (学生.学号,学生.年龄):

      学生.所在系=‘IS’ DOWN 学生.年龄


    关系模式是型,是稳定的,静态的。关系是某一时刻的5)用元组变量的检索

    • 元组变量的含义

      • 表示可以在某一关系范围内变化(也称为范围变量Range Variable)

    • 元组变量的用途

      • ① 简化关系名:设一个较短名字的元组变量来代替较长的关系名。

      • ② 操作条件中使用量词时必须用元组变量。

    • 定义元组变量

      • 格式: RANGE 关系名 变量名

      • 一个关系可以设多个元组变量


    (6) 关系模式是型,是稳定的,静态的。关系是某一时刻的用存在量词的检索

    [例8] 查询选修2号课程的学生名字。

    RANGE选课 X

    GET W (学生.姓名): X(X.学号=学生.学号∧X.课程号='2')


    函 数 名关系模式是型,是稳定的,静态的。关系是某一时刻的

    功 能

    COUNT

    对元组计数

    TOTAL

    求 总 和

    MAX

    求最大值

    MIN

    求最小值

    AVG

    求平均值

    (7)集函数

    • 常用集函数(Aggregation function)或内部函数(Build-in function)


    • [关系模式是型,是稳定的,静态的。关系是某一时刻的例9] 查询学生所在系的数目。

      GET W ( COUNT(学生.所在系) )

      COUNT函数在计数时会自动排除重复值。

    • [例10] 查询信息系学生的平均年龄

    • GET W (AVG(学生.年龄)): 学生.所在系='IS’  


    • [关系模式是型,是稳定的,静态的。关系是某一时刻的例11] 把95007学生从计算机科学系转到信息系。

    • HOLD W (学生.学号, 学生.所在系):学生.学号='95007'

      (从学生关系中读出95007学生的数据)

    • MOVE ‘IS’ TO W.所在系

      (用宿主语言进行修改)

    • UPDATE W

      (把修改后的元组送回学生关系)


    2关系模式是型,是稳定的,静态的。关系是某一时刻的) 域关系演算语言QBE

    • 域关系演算是关系演算的另一种形式。

    • 域关系演算是以元组变量的分量即域变量作为谓词变

    • 元的基本对象。

    • 域关系演算语言的典型代表是1975年由IBM公司约克

    • 城高级研究试验室的M.M.Zloof提出的QBE语言,该语言

    • 于1978年在IBM370上实现。


    • l关系模式是型,是稳定的,静态的。关系是某一时刻的一种典型的域关系演算语言

      • 由M.M.Zloof提出

      • 1978年在IBM370上得以实现

      • QBE也指此关系数据库管理系统

    • lQBE:Query By Example

      • 基于屏幕表格的查询语言

      • 查询要求:以填写表格的方式构造查询

      • 用示例元素(域变量)来表示查询结果可能的情况

      • 查询结果:以表格形式显示


    QBE关系模式是型,是稳定的,静态的。关系是某一时刻的操作框架

    关系名

    属性名

    操作命令

    元组属性值或查询条件或操作命令

    操作命令:P.(打印或显示)、U.(修改)、I.(插入)、D.(删除)


    • 学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    一、检索操作

    • (1)用户提出要求;

    • (2)屏幕显示空白表格;

    •   (3)用户在最左边一栏输入要查询的关系名,例如

    • 学生;


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Sname

    Sname

    Ssex

    Ssex

    Sage

    Sage

    Sdept

    Sdept

    P. T

    >19

    IS

    • (4)系统显示该关系的属性名

    • (5)用户在上面构造查询要求


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    李勇

    张立

    • (6)屏幕显示查询结果


    构造查询的几个要素关系模式是型,是稳定的,静态的。关系是某一时刻的

    • 示例元素 即域变量 一定要加下划线

    • 示例元素是这个域中可能的一个值,它不必是查询结果中的元素

    • 打印操作符P.指定查询结果所含属性列

    • 查询条件 不用加下划线

    • 可使用比较运算符>,≥,<,≤,=和≠

    • 其中=可以省略


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Sname

    Sname

    Ssex

    Ssex

    Sage

    Sage

    Sdept

    Sdept

    P.95001

    P. 李勇

    P.男

    P.20

    P.CS

    P.

    1). 简单查询

    • [例1] 查询全体学生的全部数据。

    • 显示全部数据也可以简单地把P.操作符作用在关系名上。


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Sname

    Sname

    Ssex

    Ssex

    Sage

    Sage

    Sdept

    Sdept

    P.95001

    >19

    P. 李勇

    IS

    2). 条件查询

    • [例2] 求信息系全体学生的姓名。

    • [例3] 求信息系全体学生的姓名。


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Sname

    Sname

    Ssex

    Ssex

    Sage

    Sage

    Sdept

    Sdept

    P.95001

    P.95001

    P.95001

    >19

    >19

    CS

    CS

    • [例4] 求计算机科学系年龄大于19岁的学生的学号。

      法(1):把两个条件写在同一行上

    法(2):把两个条件写在不同行,但使 用相同的示例元素值


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    SC

    Sno

    Sno

    Cno

    Grade

    Sname

    Ssex

    Sage

    Sdept

    P.95001

    P.95002

    >19

    CS

    P.95001

    P.95001

    1

    2

    [例5] 查询既选修了1号课程又选修了2号课程的学生的学号。

    • [例6] 查询计算机科学系或者年龄大于19岁的学生的学号。


    选课关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Cno

    Grade

    Sname

    Ssex

    Sage

    Sdept

    95001

    P.李勇

    95001

    1

    [例7] 查询选修1号课程的学生姓名。

    • 注意:示例元素Sno是连接属性,其值在两个表中要相同。


    选课关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Cno

    Grade

    Sname

    Ssex

    Sage

    Sdept

    95001

    P.李勇

    95001

    1

    条件查询(非条件)

    [例8] 查询未选修1号课程的学生姓名

    • 思路:显示学号为95001的学生名字,而该学生选修1号课程的情况为假


    选课关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Cno

    Grade

    95001

    .95001

    P.1

    1

    [例9] 查询有两个人以上选修的课程号

    思路:查询这样的课程1,它不仅被95001选修

    而且也被另一个学生(95001)选修了


    函 数 名关系模式是型,是稳定的,静态的。关系是某一时刻的

    功 能

    CNT

    对元组计数

    SUM

    求 总 和

    AVG

    求平均值

    MAX

    求最大值

    MIN

    求最小值

    3). 集函数

    • 常用集函数:


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    P.AVG.ALL.

    IS

    • [例10] 查询信息系学生的平均年龄。


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    P.李勇

    DO(2).

    AO(1).

    4).对查询结果排序

    • [例11] 查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    学生

    Sno

    Sno

    Sname

    Sname

    Ssex

    Ssex

    Sage

    Sage

    Sdept

    Sdept

    U.

    95001

    95001

    U. 18

    18

    二、修改操作

    • [例12] 把95001学生的年龄改为18岁。

      方法(1) :将操作符“U.”放在值上

    方法(2): 将操作符“U.”放在关系上

    码95001标明要修改的元组。“U.”标明所在的行是修改后的新值。


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    95008

    U.18

    CS

    • [例13]将计算机系所有学生的年龄都改为18岁


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    U.

    95001

    95001

    17

    17+1

    [例14] 把95001学生的年龄增加1岁

    分两行分别表示改前和改后的示例元素,必须将操作符“U.”放在关系上


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    U.

    95008

    95008

    18

    18+1

    CS

    • [例15] 将计算机系所有学生的年龄都增加1岁


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    Sno

    Sname

    Ssex

    Sage

    Sdept

    I.

    95701

    张三

    17

    IS

    三.插入操作

    • [例16] 把信息系女生95701,姓名张三,年龄17岁存入数据库中。


    学生关系模式是型,是稳定的,静态的。关系是某一时刻的

    选课

    Sno

    Sno

    Cno

    Sname

    Grade

    Ssex

    Sage

    Sdept

    D.

    95089

    D.

    95089

    四. 删除操作

    • [例17] 删除学生95089

    • 为保证参照完整性,删除95089学生前,先删除95089学

    • 生选修的全部课程


    ad