【数据库原理及应用】关系数据库-大学课件-_第1页
【数据库原理及应用】关系数据库-大学课件-_第2页
【数据库原理及应用】关系数据库-大学课件-_第3页
【数据库原理及应用】关系数据库-大学课件-_第4页
【数据库原理及应用】关系数据库-大学课件-_第5页
已阅读5页,还剩56页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章关系数据库

1970年IBM公司E.F.Codd的多篇论文提出关系数据库理论。20世纪80年代以来,RDBMS已成为应用主流。

RDBMS以关系代数和集合论为基础,有严谨的数学基础。

RDBMS有:Oracle、Sybase、Informix、DB2、SQL

Server、Acess、Fox系列等。RDBMS仍在向前发展。本章主要介绍关系数据库的基本概念和原理。第3章关系数据库本章分七节:3.1关系数据结构3.2关系数据库的完整性3.3关系数据库操作概述3.4关系代数语言3.5关系数据库管理系统(RDBMS)3.6小结3.7习题3.1关系数据结构关系数据结构是:二维表

一个关系数据库可包含多张二维表,表与表间通过属性发生联系。关系数据结构包含很多概念。

本节详细介绍关系数据结构的概念。理解这些概念是学习关系数据库的基础。3.1关系数据结构3.1.1关系数据模型回顾3.1.2域3.1.3笛卡尔积3.1.4关系数据结构--关系3.1.5关系的相关概念3.1.6关系的性质3.1.7关系模式3.1.8关系数据库模式例3.1.1关系模型回顾关系数据库系统是支持关系模型的数据库系统。

关系数据结构为二维表。关系操作是集合操作,操作的对象和结果都是集合,一次一集合,而非关系一次一记录。常用操作类型有:查询(选择、投影、连接、除、并、交、差)、增、删、改。

关系操作语言有:(1)关系代数语言(如ISBL);(2)关系演算语言(元组关系演算语言,如APLHA、QUEL。域关系演算语言,如QBE);(3)结构化查询语言SQL(structurequery

language):包括DDL、DML、DCL。

关系完整性约束:实体完整性、参照完整性、用户自定义完整性。3.1.2

域(domain)域是一组具有相同数据类型的值的集合。例如:所有整数、实数、。在设置关系属性时,必须指定属性的域。由域可构成域完整性。3.1.3

笛卡尔积·

笛卡尔积:给定一组域D1,D2….Dn,这些域可以完全不同,也可以部分或全部相同,D1,D2….Dn的笛卡尔积为:·D1×D2

×

….

×Dn={(d1,d2….,dn)|di∈Dj,j=1,2…,n}

其中每个元素(d1,d2….,dn)叫作一个n元组(n-tuple),元素中的每个值di叫作一个分量(component)。

若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×….×Dn的基数为:nm

=∏

mii=13.1.4关系数据结构--关系

故笛卡尔积可表示一个二维表,表中的每行对应一个元组,表中的每列对应一个域.

笛卡尔积中许多元组无实际意义,从中取出有实际意义的元组便构成关系。

定义:D1×D2×….×Dn的子集叫作域D1,D2….Dn上的关系,用R(

D1,D2….Dn)表示。

R表示关系,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示。3.1.5关系的相关概念

元组:关系是笛卡尔积的子集,是一个二维表,表的每行对应一个元组,属性:每列对应一个域(称为属性)。候选码:关系中能唯一地标识一个元组的属性组。

主码:从关系的多个候选码中选定一个为主码,主码的诸属性叫主属性。

非码属性:不包含在任何候选码中的属性称为非码属性。

全码:关系模式的候选码由所有属性构成,称为全码(all-key)。关系类型:基本关系(基本表)、查询表和视图表。3.1.6基本关系的性质

①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。

②不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名③列的顺序无所谓,即列的顺序可以任意交换。④任意两个元组不能完全相同。⑤行的顺序无所谓,即行的顺序可以任意交换。

⑥分量必须取原子值,即每个分量必须是不可再分的数据项。3.1.6关系性质1——同质的列学号姓名性别年龄曾用名9901张三男20张狗子9902李四女18李朋王五9903119王麻子9904赵六21981/2/28赵薇3.1.6关系性质2—不同的属性名学号姓名性别年龄姓名9901张三男20张狗子9902李四女18李朋9903王五男19王麻子9904赵六女20赵薇姓名2曾用名3.1.6关系性质3—属性无序学号姓名性别年龄曾用名9901张三男20张狗子9902李四女18李朋9903王五男19王麻子9904赵六女20赵薇学号姓名曾用名性别年龄9901张三张狗子男209902李四李朋女189903王五王麻子男199904赵六赵薇女203.1.6关系性质4—元组不重复学号姓名性别年龄姓名9901张三男20张狗子9902李四女18李朋9903王五男19王麻子9904赵六女20赵薇9901张三男20张狗子重复的元组!3.1.6关系性质5—元组无序学号姓名性别年龄9901张三男209902李四女189903王五男199904赵六女20学号姓名性别年龄9904赵六女209901张三男209903王五男199902李四女183.1.6关系性质6—分量是原子父母孩子李男王男丁女肖女李一李二王一父母孩子大小李男王男丁女肖女李一王一李二非规父母大孩小孩李男王男丁女肖女李一王一李二规范化关系范化关父母孩子李男李男系王男丁女丁女肖女李一李二王一3.1.7关系模式

定义:关系模式是对关系的描述,表示为R(U,D,DOM,F)。R为关系名,U为属性的集合,D为属性的域,DOM为属性向域的映象集合。F为属性间数据的依赖关系集合。关系模式可简记为:R(U)或R(A1,A2,….,An)。

在一个给定的现实世界领域中,相应的所有实体及实体之间的联系的集合构成一个关系数据库。

关系数据库的型称为关系数据库模式,关系数据库的值是关系模式在某一时刻对应的关系的集合。

关系是关系模式在某一时刻的状态和内容,关系模式是型,关系是值。关系模式是静态的、稳定的。而关系是动态的、变化的。实际中,常把关系模式和关系统称为关系。3.1.8关系数据库模式例整个数据库某关关系系的的结结构构某关系的实例3.2关系数据库的完整性完整性是数据模型的一个非常重要的方面。

关系数据库从多个方面来保证数据的完整性。在创建数据库时,需要通过相关的措施来保证以后对数据库中的数据进行操纵时,数据是正确的、一致的。

关系数据库提供:实体完整性、参照完整性、用户定义的完整性。本节介绍三种完整性最基本的措施。3.2关系数据库的完整性3.2.1实体完整性3.2.2参照完整性3.2.3用户定义的完整性3.2.1实体完整性

1.实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。

2.注意:是基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。

3.如:选修(学号,课程号,成绩)则,(学号,课程号)为主码,则学号和课程号都不能取空值。3.2.1实体完整性示例:关系键学号课程号成绩9901C1909901C2809902C2709903C380学号姓名年龄性别所在系9901张三20男计算机9902李四18女计算机9903王五19女计算机9904赵六20男计算机3.2.2外码--参照完整性

外码:设F是基本关系R的一个或一组属性,但不是R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并基本关系R为参照关系,基本关系S为被

参照关系。关系R和S不一定是不同的关系。

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同关系),则对于R中每一个元组在F上的值必须为:或者取空值(F的每个属性均为空值);或者等于

S中某个元组的主码值。3.2.2外码--参照完整性示例1例1:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专)学生关系--专业号-->专业关系例2:学生(学号,姓名,性别,专业号,年龄,班长)。班长必须是存在的学生的学号。3.2.2参照完整性例2:外部关系键学号姓名所在系9901张三计算机9902李四计算机9903王五计算机9904赵六计算机课程号课程名学时数C01高等数学100C02数据结构70C03操作系统80C04数据库60学号课程号成绩9901C01909901C02809902C04909904C04859904C0370学生关系 课程关系 学习成绩关系主键

主键

外部键

外部键3.2.2参照完整性示例3职工号部门编号姓名…980101张三980201李四9803王五980402赵六980503钱七部门编号部门名称…01经理办公室02人事部03公关部04技术部职工表(R2) 部门表(R1)主关系键外部关系键3.2.3用户定义的完整性1是针对某一具体关系数据库的约束条件,

它反映某一具体应用所涉及的数据必须满足的语义要求。如规定某一属性取值范围在0-100之间。

可在定义关系结构时设置,还可通过触发器、规则等来设置。

在开发数据库应用系统时,设置用户定义的完整性是一项非常重要的工作。3.2.3用户定义的完整性23.3关系数据库操作概述

关系操作采用集合操作方式,操作的对象和结果都是集合,即操作方式是一次一集合(set-at-a-time),

非关系数据库的操作是一次一记录(record-at-a-time)。

关系数据库操作涉及:操作内容、使用语言及实现方法。3.3关系数据库操作3.3.1关系操作的内容3.3.2

RDBS基本操作3.3.3关系数据操作语言3.3.1关系操作的内容

关系模型常用的操作包括增、删、改和查询。查询包括选择、投影、连接、除、并、交、差等。关系操作包括五个基本操作:A.关系的属性指定B.关系的元组选择C.两个关系的合并D.关系中元组的插入E.关系中元组的删除。3.3.2

RDBS基本操作RDBS一般向用户提供四种基本操作功能。

1.数据查询:即查询关系数据库内的数据,包括单表查询和多表查询。查询包括三个基本操作:一个关系内属性的指定、一个关系内元组的选择、两个关系的合并。2.数据插入,即在关系内插入一些新的元组。3.数据删除,即在关系内删除一些元组。

4.数据修改,即在关系内修改一些元组的内容并保存。包括两个基本操作,首先删除数据,而后插入数据。3.3.3关系数据操作语言

操作语言分为两类:一是查询语句,用于描述用户要进行的各种查询操作;二是非查询语句,用于描述用户要进行的插入、删除、修改等操作。

关系运算体系:所有以关系为运算对象的一组运算符及其对应运算规则的合称。包括关系代数和关系演算,关系演算又包括元组演算和域演算。3.4关系代数语言关系代数语言是关系运算的数据基础。关系代数语言使用数学公式的形式。本节讲述用它来对关系进行操作。3.4关系代数语言3.4.1关系运算符3.4.2几个特殊符号3.4.3传统的关系运算--并3.4.4传统的关系运算--交3.4.5传统的关系运算--差

3.4.6传统关系运算--广义笛卡尔积4.4.7传统集合运算例题3.4.8成绩管理数据库3.4.9专门关系运算:选择3.4.10专门关系运算:投影3.4.11专门关系运算:连接3.4.12专门关系运算:除

3.4.13练习:用关系代数完成操作3.4.1关系运算符·

1.集合运算符:∪并、—(差)、∩(交)2.专门关系运算符:×、δ

、∏、∞、÷、3.比较运算符:>、≥、<、≤、=、≠4.

逻辑运算符:

非、

∧与、∨或3.4.2几个特殊符号(1)t[Ai]:设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。则t[Ai]表示元组t中相应于属于性Ai的一个分量。(2)t[A]:若A={Ai1,Ai2,…,Ain},

其

中Ai1,Ai2,…,Aik—{是Ai1,1iA

,Ai2,2iA

,……,,Ain}中去掉部{一的niA

A分i1,则Ai2,…,性A属为称A

i列k}后剩余的属-,列域或

A性组。示表

t[A]=(

t[Ai1],

t[Ai2]

,…,

t[Aik]

)表示元组t在属性列A上诸分量的集合。tr

ts:R为n目关系,S为m目关系。tr∈R,ts∈S。tr

ts称为元组的连接。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。象集Zx:全定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,

x在R中的象集为:Zx={t[Z]|t∈R,t[X]=x},它表示R中属性组X上值为

x的诸元组在Z上分量的集合。3.4.3传统关系运算—并传统关系运算包括:并、交、差、广义笛卡尔积。1.并:设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成,其结果仍为n目关系。记为:R

∪

S={t |

t

∈

R∨

t

∈S}R

SR∪SABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1R

∪

S3.4.4传统关系运算—交ABCABCa1b1c1a1

R

∩bS2c2a1b2c2a2b2c1a2b2c1A

B

C3.交:设关系R和a1关系bS2具有c2相同的目n(即两个关系都有n个属性),且a相1应的b3属性c取自同一个域,则关系R与关系2S的交由属既于a2R又属b2于S的c1元组组成,其结果仍为n目关系。记为:R

∩

S={

t

|

t

∈

R

∧

t

∈S

}R

SR

∩

S3.4.5传统关系运算—差n个属性),且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的元组组成,其结果仍为nR-SABCa1b1c1a1b2c2a2b2c1A

B

C2.差:设关系Ra和1

关b系2S具c有2

相同的目n(即两个关系都有a1

b3

c2目关系。记为a2:b2c1R

—

S={t

|

t

∈

R

∧

-

t

∈S}R

SABCa1b1c1R

—

S3.4.6传统关系运算—广义笛卡尔积4、广义笛卡尔积:两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记为:R

×

S={trts

|tr

∈R

∧

ts

∈S}R

×

S3.4.6广义笛卡尔积例ABCABCa1b1c1a1b2c2a1b1c1a1b3C2a1b1c1a2b2C1a1b2c2a1b2c2a1b2c2a1b3C2a1b2c2a2b2C1a2b2c1a1b2c2a2b2c1a1b3C2a2b2c1a2b2C1AB

R×CSa1b2c2a1b3c2Aa2Bb2Cc1a1b1c1a1b2c2a2b2c1RSABCa1b2c2a2b2c1R×SR

—

S3.4.7传统集合运算例题R

R

∩

SR

∪

SAB

Ca1a1a2

b2

c1A

B

Ca1b2c2a1b3c2a2

b2

c1SABCABCa1b1c1a1b2c2a1b1c1a1b3C2a1b1c1a2b2C1a1b2c2a1b2c2a1b2c2a1b3C2a1b2c2a2b2C1a2b2c1a1b2c2a2b2c1a1b3C2a2b2c1a2b2C1ABCa1b1c1A

B

Ca1

b1

c1a1

b2

c2ab1bc31c2ab2

bc2

c13.4.8成绩管理数据库

例:在一个学生课程关系数据库中,包括学生关系student,课程关系course,选修关系SC,数据结构如下:1.学生:student(sno,sname,ssex,sage,sdept),依次表示学号,姓名,性别,年龄,示所在系。

2.课程:course(cno,cname,cpno,ccredit),依次表示课程号,课程名,先行课程号,学分。

3.选修:SC(sno,cno,grade),依次表示学号,课程号,成绩。3.4.9专门的关系运算--选择在关系R中选择满中给定条件的诸记录,记作:δF(R)={t

|

t∈R∧F(t)=‘真’}F表示选择条件,为一逻辑表达式,基本形式为X1

θ

Y1[ф

X2

θ

Y2]……(1)查询信息管理系(IM)的全体学生:δsdept=‘IM’(student)(2)查询年龄等于20岁的男生:δsage=20∧ssex=‘男’(student)3.4.10专门的关系运算--投影关系R中的投影是从R中选择出若干属性列组成新的关系。记作П

A(R)={t

[A] |

t∈R}

A为R中的属性列。查询学生表中的姓名及所在系:

П

sname,sdept(student)查询学生表中年龄小于20岁的学生的姓名及所在系:

П

sname,sdept(δsage=20

(student))3.4.11专门的关系运算--连接

从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:R ∞

S={t

rts |

t

r∈

R

∧

ts

∈

S

∧tr[A]

θ

ts[B]}AθB

A和B分别为R和S上度数相等且可比的属性组。Θ为比较运算符。连接运算从R和S的笛卡尔积R×

S中选取(R关系)在A属性组上的值与(S关系)在B属性组上的值满足比较关系θ的元组。3.4.11专门关系运算--连接分类等值连接:R ∞

S={t

rts |

t

r∈

R

∧

ts

∈

S

∧tr[A]

=

ts[B]}A=B自然连接:A和B两属性组相同,并在结果中将重复的值去掉。记作:R ∞

S={t

rts |

t

r∈

R

∧

ts

∈

S

∧tr[A]

=

ts[B]}3.4.11连接运算示例(已知R和S)ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52R

SAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310R

∞

SC<EAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32R∞R.b=S.bSABCEa1b153a1b267a2b3810a2b382R

∞

S给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,

R中的Y与S中的Y可以有不同的属性名,但必须出自同一域,R与S的除运算得到一个新关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集

Yx包含S中Y上投影的集合。记作:R÷S={t

r[X] |

t

r∈R∧Yx>Пy(S)}其中Yx为x在R中的象集,x=tr[X]除运算同时从行和列的角度进行运算。3.4.12专门的关系运算--除3.4.12专门的关系运算--除例子BABCa1b1c2a2b3c7CDa3b4c6c2d1a1b2c3b1c3d1a2b2c3b2a1b2c1b2c1d2例:已知R和S,则R÷S的值为在R中,只有a1的象集{(

b1,c2),(b2,c3),(b2,c1)}包含了SR

S R

÷

SAa13.4.13练习:用关系代数完成操作对三个关系模式:student(sno,sname,ssex,sage,sdept)course(cno,cname,cpno,ccredit),SCG(sno,cno,grade),1.查询至少选修了2号课程和8号课程的学生姓名。2.查询张红的年龄。3.查询李明同学不及格的课程名称。4.查询选修了“计算机网络”的学生姓名。5.查询“计算机网络”成绩在90分以上的学生姓名。3.5关系数据库管理系统关系数据库管理系统,即RDBMS。RDBMS支持关系模型。当前大部分的DBMS都是RDBMS。RDBMS仍在发展中,性能不断增强。

本节讲述的标准要求以及关系数据库管理系统的分类。3.5关系数据库管理系统4.5.1

RDBMS的标准4.5.2

RDBMS的分类4.5.3表式系统和最小关系系统4.5.4关系完备系统和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论