数据库系统讲义03关系模型及关系运算秋解读.docx

上传人:b****5 文档编号:12671540 上传时间:2023-04-21 格式:DOCX 页数:33 大小:27.04KB
下载 相关 举报
数据库系统讲义03关系模型及关系运算秋解读.docx_第1页
第1页 / 共33页
数据库系统讲义03关系模型及关系运算秋解读.docx_第2页
第2页 / 共33页
数据库系统讲义03关系模型及关系运算秋解读.docx_第3页
第3页 / 共33页
数据库系统讲义03关系模型及关系运算秋解读.docx_第4页
第4页 / 共33页
数据库系统讲义03关系模型及关系运算秋解读.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数据库系统讲义03关系模型及关系运算秋解读.docx

《数据库系统讲义03关系模型及关系运算秋解读.docx》由会员分享,可在线阅读,更多相关《数据库系统讲义03关系模型及关系运算秋解读.docx(33页珍藏版)》请在冰豆网上搜索。

数据库系统讲义03关系模型及关系运算秋解读.docx

数据库系统讲义03关系模型及关系运算秋解读

数据库系统概念与技术

第三章关系模型及关系运算

真即是美,知识是最高的善

无限

风光

在险

1

France数据库系统概述

3

Hungary

你我它Belgium

实体-联系模型Germany

2

SQLIreland

4

SQL编程

Italy

5

数据完整性Latvia

6

关系数据库设计Lithuania

7

查询处理及优化Luxemburg

8

数据库管理系统DBMSNetherlands

9

3.1关系

3.2关系模型3.3关系代数

3.4元组关系演算3.5域关系演算

数据库

数据的集合

processprocessprocessprocessprocess

request

response

访问语言

语言处理

数据结构交互式语言嵌入式语言

完整性控制

DBMS其它查询优化处理数据的概念模型

数据库系统设计

现实世界

逻辑结构数据操作

物理结构

第三章关系模型及关系运算

3.1关系

3.2关系模型

3.3关系代数

3.4元组关系演算

3.5域关系演算

关系模型(relationmodel

z关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。

zE.F.Codd于70年代初提出关系数据理论,他因此获

得1981年的ACM图灵奖。

z早期代表系统

¾SystemR:

由IBM研制。

¾INGRES:

由加州Berkeley分校研制。

z目前主流的商业数据库系统

¾Oracle,Informix,Sybase,SQLServer,DB2。

¾Access,Foxpro,Foxbase。

域(Domain

z一组值的集合,这组值具有相同的数据类型.Null是任

何域的成员.

笛卡尔积(CartesianProduct

z一组域D1,D2,…,Dn的笛卡尔积为:

D1×D2×…×Dn={(d1,d2,…,dn|di∈Di,i=1,…,n}z笛卡尔积的每个元素(d1,d2,…,dn称作一个n-元组(n-tuple。

z元组的每一个值di叫做一个分量(component.z若Di为有限集,其基数为mi,则笛卡尔积的基数为

in

im

∏=1

例:

D1为教师集合(T={t1,t2}

D2为学生集合(S={s1,s2,s3}

D3为课程集合(C={c1,c2}

则笛卡尔积D1×D2×D3是个三元组集合,元组个数为2×3×2,是所有可能的(教师,学生,课程元组集合:

{{t1,s1,c1},{t1,s1,c2},{t1,s2,c1},{t1,s2,c2},{t1,s3,c1},{t1,s3,c2},{t2,s1,c1},{t2,s1,c2},{t2,s2,c1},{t2,s2,c2},{t2,s3,c1},{t2,s3,c2}}t1

t2s1s2s3c1c2

t1,s1,c1

t1,s1,c2

关系(relation

z笛卡尔积D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn表示。

zR是关系的名字,n是关系的度或目(Degree。

¾n=1,一元关系

¾n=2,二元关系

z关系是笛卡尔积中有意义的子集。

¾A=所有的男人×所有的女人×所有的小孩¾有家庭关系的{男人,女人,小孩}⊆A

¾A=所有的学生×所有的课程

¾有选修关系的{学生,课程}⊆A

z关系和表的一一对应

¾一个关系对应一张表,表用表名标识.表和关系同名.

¾一个元组对应一行数据,行用行号标识.由于行数会发生变化(增加,删除,修改,因此,行一般不命名.表的所有行的集合是笛卡尔积的子集.¾某个分量的所有取值对应表的某一列的所有取值.列用列号标识.由于列数一般不发生变化,因此

列要命名,称为列名或属性名

.表的某一列的所有取值的集合是某个域的子集(域名不一定是列名,因为域和列不等价.

关系表元组行

分量列{t1,s3,c1}

组行

{t1,s2,c2}

{t1,s2,c1}

{t1,s1,c2}

{t1,s1,c1}分量列关系表

z用表表示关系.例:

D1为教师集合(T={t1,t2}

D2为学生集合(S={s1,s2,s3}

D3为课程集合(C={c1,c2}

则D1×D2×D3上的一个关系:

R(D1,D2,D3=

{{t1,s1,c1},{t1,s1,c2},{t1,s2,c1},{t1,s2,c2},{t2,s3,c2}}对应的表如

元组/行

号分量/列号属性名

teach表/关系名

关系的性质

z列是同质的.即每一列中的分量来自同一域,是同一类型的数据.di∈Di

××××

Ssex∈{男,女}

z表的不同列可以来自同一个域,为了区别不同的列,每列必须有不同的属性名.

例:

D1=Person={王兵,李平,张英,丁梅,吴芳}

D2=Child={王一,李一,李二}

则D1×D1×D2上的一个家庭关系:

R(D1,D2,D3=Family=

{{王兵,张英,王一},{李平,丁梅,李一},{李平,丁梅,李二}}对应的

表如下

李一丁梅李平

李二

丁梅李平王一张英王兵

ChildMother(角色Father(角色

Family

z行列的顺序无关紧要.

同一个关系

z任意两个元组不能完全相同(集合内不能有相同的两个元素.

×

z每一分量必须是不可再分的数据项(1NF,复合属性不允许,多值属性值分为多个行.

符合第一范式(Table

不符合第一范式

(NotTable

关系的码

z候选码(CandidateKey

¾关系中的一个属性组,其值能唯一标识一个元组.若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码.----E-R模型中候选码.

¾任何一个候选码中的属性称作主属性,其它的为非主属性.z主码(PrimaryKey

¾进行数据库设计时,从一个关系的多个候选码中选定一个作为主码.----E-R模型中主码.

全码PK(Student=‘S#’

PK(Family=‘Father,Mother,Child’

z外码(ForeignKey

¾关系r中的一个属性组,它不是r的码,但它与另一个关系s的主码相对应,则称这个属性组为r的参照s的外码,r称为参照关系,s称为被参照关系.

主码

主码

外码FK(Student=‘D#’

3.1关系

第三章关系模型及关系运算

3.1关系

3.2关系模型

3.3关系代数

3.4元组关系演算3.5域关系演算●域

●笛卡尔积

●关系

●关系的性质

●关系的候选码和主属性●关系的主码和外码

数据结构.

z单一的数据结构——关系

z关系模式:

关系的结构描述

¾关系名.

¾关系中的属性名.

¾属性向域的映象.属性向域的映象,一般直接说明为属性的类型、长度等.¾属性间的依赖关系.3.2关系模型

R(A1:

D1,A2:

D2,…,An:

Dn关系模式关系模式的简单表示R(A1,A2,…,AnStudent(S#char(8,Snamechar(10,Ssexchar(2,Sageinteger,

D#char(2,Sclasschar(6

Student(S#,Sname,Ssex,Sage,D#,class

z关系实例:

即关系,是符合某个关系模式在某个时刻的元组的集合.关系模式和关系实例是型与值的关系.

z关系模式与关系(实例

¾同一关系模式下,可有很多的关系.

¾关系模式是关系的结构描述,关系是关系模式在某一时刻的数据.

¾关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的.

Student(S#char(8,Snamechar(10,Ssexchar(2,Sageinteger,D#char(2,Sclasschar(6

z(关系数据库模式.关系数据库的描述.即一组域的定义以及在这组域上定义的若干关系模式的集合.z(关系数据库实例.符合某个数据库模式在某个时刻关系的集合.数据库模式和数据库实例是型与值的关系.z关系数据库形式化描述.

¾域.D={Dk,k=1,2,…}.

¾关系模式.R(A1,A2,…Aj…,An,j=1,2,…,n.¾主码.PK(R.

¾外码.FK(R.

¾元组.t(i=(ri1,ri2,…rij…,rin,rij∈Di∈D,i=1,2,…,m.t为元组变量.

z关系数据库模式的模式图.表示属性以及主码和外码.主码

主码

外码

FK(Student=‘D#’

S#

Sname

SnameSsexSageD#Sclass

D#Dept

student

DnameDean

zE-R模型向关系模式的转换

¾实体集的关系模式:

A(A1,A2,A3,…;B(B1,B2,B3,…¾联系集的关系模式:

Q(PK(A,PK(B,Q1,Q2,…¾递归联系集的关系模式:

Q(role1,role2,Q1,Q2,…

A3A2A1实体集A联系集QA1Q1Q2

B1E-R模型关系模型

关系模式

A(A1,A2,A3

Q(A1,B1,Q1,Q2

B3

B2B1B(B1,B2,B3

A1A2A3Q1Q2

实体集BB1B2B3PK(A

PK(B

E-R模型

学生课程选修教师

教授

S#

SNSEX

AGE

SDSCORE

C#CN

PC#CREDIT

P#PN

D#SALS(S#,SN,SEX,AGE,SDC(C#,CN,PC#,CREDITPROF(P#,PN,D#,SAL

SC(S#,C#,SCORETEACH(P#,C#PK(S

PK(C

PK(PROF

PK(C

关系模式

E-R模型

学生课程选修教师

教授

S#

SNSEX

AGE

SDSCORE

C#CN

PC#CREDIT

P#PN

D#SALS#SNSEXAGESD

SC#CNPC#CREDIT

CP#PND#SAL

PROFS#C#SCORE

SCP#C#

TEACH关系模式图

E-R模型

EMPNO#NAME

SEXAGE

DEPT

关系模式Work-for

employee

worker

manager

employee(EMPNO#,NAME,SEX,AGE,DEPTWork-for(worker,manager

role1role2

¾弱实体集的关系模式:

B(PK(A,B1,B2,B3,…¾标识性联系集的关系模式:

Q(PK(A,D(B,标识性

联系集无需单独建表,因为其关系模式被弱实体集的关系模式所包含.A3A2A1强实体集A

标识性

联系集Q

A1B1

E-R模型

关系模型

关系模式

A(A1,A2,A3

Q(A1,B1

A1B3

B2B1B(A1,B1,B2,B3

A1A2A3B1B2B3

PK(A

D(BD(BPK(A

D(B

弱实体集B

¾特殊属性

O复合属性:

每个子属性单独创建一列.”关系的

基本特征是每一分量必须是不可再分的数据项”.

O派生属性:

作为表的计算列,itdepends

O多值属性:

关系理论

addrcitystrpost-codestatestr-no

str-name

apart-no

customercust-idcust-namecustomer(cust-id,cust-name,addr(state,city,post-code,str(str-no,str-name,apart-no

customer

customer(cust-id,cust-name,state,

city,post-code,str-no,str-name,apart-no

¾码.E-R模型中的码(超码,候选码,主码自动转换为关系的码(超码,候选码,主码.

O实体集的码

O联系集的码

91:

1

91:

m

9m:

n

O递归联系集的码

O弱实体集的码

O标识性联系集的码

z模型、模式和实例的比较E-R模型

关系模型

E-R模式

关系模式

R(A1,A2,…,Ap

E-R实例

关系实例

实体集联系集

属性属性

属性A(A1,A2,…,AnQ(Q1,Q2,…,QmE-R的码

关系的码

PK(R

PK(A

PK(Q

¥课堂练习

将银行企业的E-R模型转换为关系模式(模式图

branch

customerloan

loan-number

account

account-number

employee

cust-bankertype

depositor

payment-number

borrowerWork-for

worker

manager

loan-branchloan-payment

payment

branch-nameassetsbranch-city

customer-id,customer-city

customer-streetcustomer-nameemployee-idstart-date

employee-nameemployee-length

telephone-number

dependent-name

balance

amount

payment-amount

payment-date

access-date

关系操作.关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time的方式.查询和修改.

z过程化.用户指导系统对数据库执行一系列操作以计

算所需结果.

¾关系代数.用对关系的运算来表达查询,需要指明所

用操作.基本运算包括:

选择、投影、连接、除、并、

交、差.

z非过程化.用户只需描述所需信息,而不用给出获取该

信息的具体过程.关系演算,用谓词来表达查询.

¾元组关系演算:

谓词变元的基本对象是元组变量.

¾域关系演算:

谓词变元的基本对象是域变量.

z具体数据库系统中的实际语言

¾ISBL:

关系代数语言,由IBM公司研制。

¾QUEL,ALPHA:

Codd提出的基于元组关系演算语言,在INGRES上实现。

¾QBE:

基于域关系演算语言,由IBM公司研制。

¾SQL:

介于关系代数和关系演算之间,由IBM公司在研制SystemR时提出的,成为关系数据库标准

语言。

关系模型的完整性

z实体完整性(主码

¾实体是可区分的,即具有唯一性标识。

¾每个关系必须有一个主码。

¾主码不能取Null值。

主码

×

×

ENO

ENameDNO

EMP

DEPTDNO

DName

03小陈

0003

小刘000302

小李000201小王0001DNOENameENO网络教研室

02

软件教研室01DNameDNOz参照完整性(外码。

关系r的参照关系s的外码FK(r的取值有两种:

¾Null值。

¾关系s的某个主码的取值。

EMP

DEPT

z用户自定义完整性。

用户针对具体的应用环境定义的完整性约束条件。

¾年龄的约束条件,如,0-100

¾性别的约束条件,{0,1}

年龄在[12,35]之

要求名字在5个汉

字字符之内性别只能是

“男”或“女”

颠覆完整性

的示例

第三章关系模型及关系运算

3.1关系

3.2关系模型

3.3关系代数

3.4元组关系演算3.5域关系演算●关系模式,关系数据库模式

●关系实例,关系数据库实例

●关系数据库的模式图

●E-R模型向关系模式的转换

●关系操作

□过程化:

关系代数

□非过程化:

元组和域关系演算●关系模型的完整性

□实体完整性

□参照完整性

□用户自定义完整性

查询

z基本运算

¾一元运算

O选择、投影、更名。

¾多元运算

O笛卡儿积、集合并、集合差。

z附加运算,可由基本运算导出的运算¾集合交、自然连接、除、赋值。

z扩展的关系代数运算

¾广义投影、聚集、外连接。

数据库修改

z删除、插入、更新。

A1

Ai

An

A2

一些记号。

给定关系模式R(A1,A2,…,An,设R是它的一个具

体的关系,t∈R是关系的一个元组.

z分量

设t∈R,则t[Ai]表示元组t中相应于属性Ai的一个分量.

z属性列

A={Ai1,Ai2,…,Aik}⊆{A1,A2,…,An},称A为属性列.A表示{A1,A2,…,An}中去掉A后剩余的属性组.

t[A]=(t[Ai1],t[Ai2],…,t[Aik].

R

t∈R

AA

t[A]=(t[Ai1],t[Ai2],…,t[Aik]

t[Ai]

示例关系

S(S#,SNAME,SEX,AGE,D#---学生C(C#,CN,PC#,CREDIT(学分---课程SC(S#,C#,SCORE---选修关系

PROF(P#,PNAME,AGE,D#,SAL(工资---教师PC(P#,C#---教课

DEPT(D#,DNAME,DEAN(系主任作为教师的编号P#---系

学生S

课程C教师PROF

选课SC

教课PC

S#SEX

SCORESNAMEAGED#院系DEPT

D#DEANDNAMEC#PC#CNCREDIT

P#

AGE

PNAMED#

SAL

E-R模型

关系模式

S#SNAMESEXAGED#S

C#CNPC#CREDIT

CP#PNAMEAGED#SAL

PROFS#C#SCORE

SCP#C#

PCD#DNAMEDEAN

DEPTPC

PROF

DEPT

S

C

SC

模式图

关系

202119192022学生年龄AGECSCSMACIMACS

所属系名SD男女女男女男

性别SEXABCDEF

S1S2S3S4S5S6

学生姓名SN学号S#C1C1C2C4

先行课号码

PC#

23424

学分CREDIT

GHIJK

C1C2C3C4C5

课程名字CN课程号C#S(S#,SN,SEX,AGE,SD

C(C#,CN,PC#,CREDIT

SC(S#,C#,SCORE

AAA

BB

CCBCBB

DCBB

C1C2C3C5C1C2C4C2C3C4C3C5C2C3C5

S1S1S1S1S2S2S2S3S3S3S4S4S5S5S5

学习成绩SCORE

课程号C#学号

S#

D1D1D2D3D3D4

系别*025*********

工资SAL302925412633

年龄AGEABCDEF

P1P2P3P4P5P6

姓名PNAME工号P#PROF(P#,PNAME,AGE,D#,SAL

C1C2C1C1C2C3

P1P1P2P3P4P4

课程名C#工号P#PC(P#,C#

计算机系数学系管理系

系名DNAMEP1P2P4

D1D2D3

系主任DEAN系号D#DEPT(D#,DNAME,DEAN

选择运算(σ-select

z定义:

在关系R中选择满足给定条件的元组(从行的角度.

z公式:

σ

(R={t|t∈R,F(t=‘真’},

F(t

F(t是选择的条件,∀t∈R,F(t要么为真,要么为假.

F(t=(算术表达式1逻辑运算符(算术表达式2…

¾逻辑运算符:

∧,∨,¬

¾算术表达式:

XθY

OX,Y是属性名、常量、或简单函数.

Oθ是比较算符,θ∈{>,≥,<,≤,=,≠}

202119192022学生年龄AGECSCSMACIMACS

所属系名SD男女女男女男

性别SEXABCDEF

S1S2S3S4S5S6

学生姓名SN学号S#20212022学生年龄AGECSCSMACS

所属系名SD男女女男

性别SEXABEF

S1S2S5S6

学生姓名SN学号

S#202122学生年龄AGECSCSCS

所属系名SD男女男

性别SEXABF

S1S2S6

学生姓名SN学号

S#202119192022学生年龄AGECSCSMACIMACS

所属系名SD男女女男女男

性别SEXABCDEF

S1S2S3S4S5S6

学生姓名SN学号

S#S

S

σ

σ

例1,求计算机系CS的学生.

σSD=‘CS’(S

例2,求年龄大于或等于20的学生.

σAGE≥20(S

202119192022学生年龄AGECSCSMACIMACS

所属系名SD男女女男女男

性别SEXABCDEF

S1S2S3S4S5S6

学生姓名SN学号S#2022学生年龄AGECSCS

所属系名SD男男

性别SEXAF

S1S6

学生姓名SN学号

S#S

¥课堂练习

找计算机系年龄不小于30或者不大于20的男学生.

答案

σSD=‘CS’∧(AGE≥30∨AGE≤20∧SEX=‘男’(S

σ

例3,找年龄不小于20的男学生.

σAGE≥20∧SEX=‘男’(S

202119192022学生年龄AGECSCSMACIMACS

所属系名SD男女女男女男

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1