关系数据库系统工程师-03关系模型

数据库关系模型  时间:2021-02-27  阅读:()

精品学习资料---收集网络如有侵权请联系网站删除

第 三 章 关 系 模 型  逻 辑 结 构 设 计 

关系理论是建立在集合代数理论基础上的有着坚实的数学基础。 E.F.Codd于70年代初提出关系数据理论他因此获得1981年的ACM图灵奖。

早期代表系统 SystemR 由IBM研制。 INGRES由加州Berkeley分校研制。

目前主流的商业数据库系统 Oracle Informix Sybase SQLServer DB2

Access Foxpro Foxbase。

3 1关系基本概念

关系理论是以集合代数为基础的。

3 1 1域Domain

一组值的集合这组值具有相同的数据类型。如整数的集合、字符串的集合、全体学生的集合。用D表示。

3 1 2笛卡尔积Car’ tesianProduct

一组域D1,D2,„,Dn的笛卡尔积为 D1×D2ׄ×Dn={ (d1,d2,„,dn) |di∈Di, i=1,„,n} 。笛卡尔积的每个元素(d1,d2,„,dn)称作一个n元组n-tuple。元组的每一个值di叫做一个分量component。n

若Di为有限集其基数为mi (i=1,2,3„n) 则笛卡尔积的基数为Mmii1

笛卡尔积可表示为一个二维表表中的每行对应一个元组表中每列对应一个域。

例

D1为教师集合T ={t1 t2}

D2为学生集合S ={s1 s2 s3}

D3为课程集合C ={c1 c2}

则D1×D2×D3是个三元组集合元组个数为2×3×2是所有可能的教师学生课程元组集合。

笛卡尔积可表为二维表的形式

表中的行表示一个元组列表示一个域。

3 1 3关系

1笛卡尔积D1×D2ׄ×Dn的子集叫做在域D1,D2,„,Dn上的关系用R(D1,D2,„,Dn)表示。

2 R是关系的名字 n是关系的度或目。

3关系是笛卡尔积中有意义的子集。关系也可以表示为二维表。

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

4关系的性质 列是同质的 即每一列中的分量来自同一域 是同一类型的数据。如TEACH(T,S,C)={ (t 1, s 1,c1) , (t 1, t2,c1) }是错误的。

5不同的列可来自同一域每列必须有不同的属性名。如P={t1 t2 s1 s2 s3}  C={c1 c2} 则TEACH不能写成TEACH(P,P,C) 还应写成TEACH(T,S,C) 。

6行列的顺序无关紧要。任意两个元组不能完全相同集合内不能有相同的两个元素。每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式1NF的。

3 2关系模式

数据结构单一的数据结构——关系。实体集、联系都表示成关系。

DEPT(D#,DN,DEAN)

S(S#,SN,SEX,AGE,D#)

C(C#,CN,CREDIT)

PROF(P#,PN,D#,SAL)

SC(S#,C#,SCORE)

TEACH(P#,C#)

3 2 1候选码CandidateKey

关系中的某一属性或属性组的值能唯一地标识一个元组称该属性或属性组为候选码

如DEPT中的D# DN都可作为候选码。任何一个候选码中的属性称作主属性。如SC中的S# C#。

3 2 2主码PrimaryKey

进行数据库设计时从一个关系的多个候选码中选定一个作为主码。如可选定D#作为DEPT的主码。

3 3 3外部码ForeignKey

关系R中的一个属性组它不是R的码但它与另一个关系S的码相对应则称这个属性组为R的

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

3 3 4关系模式

关系的描述称作关系模式包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等记作R(A1,A2,„,An) 。

属性向域的映象一般直接说明为属性的类型、长度等。

某一时刻对应某个关系模式的内容元组的集合称作关系。

关系模式是型是稳定的。

关系是某一时刻的值是随时间不断变化的。

3 3 5关系数据库

其型是关系模式的集合 即数据库描述称作数据库的内涵(Intension) 。

其值是某一时刻关系的集合称作数据库的外延(Extension) 。

3 3 6关系操作

关系操作是集合操作操作的对象及结果都是集合是一次一集合Set-at-a-time的方式而非关系型的数据操作方式是一次一记录Record-at-a-time。

关系操作可以用关系代数和关系演算两种方式来表示它们是相互等价的。

如用关系代数来表示关系的操作可以有选择、投影、连接、除、交、差、并等。

3 3 7关系模式的完整性

1实体完整性

A、关系的主码中的属性值不能为空值。

B、空值不知道或无意义。

C、意义关系对应到现实世界中的实体集元组对应到实体实体是相互可区分的通过主码来唯一标识若主码为空则出现不可标识的实体这是不容许的。

2参照完整性

A、如果关系R 2的外部码Fk与关系R 1的主码Pk相对应则R2中的每一个元组的Fk值或者等于R1中某个元组的Pk值或者为空值。

B、意义如果关系R2的某个元组t2参照了关系R1的某个元组t1则t1必须存在。

3用户定义的完整性

用户针对具体的应用环境定义的完整性约束条件。如S#要求是8位整数 SEX要求取值为“男”或“女”。

4系统支持

A、实体完整性和参照完整性由系统自动支持。

B、系统应提供定义和检验用户定义的完整性的机制。

3 3关系数据语言概述

3 3 1抽象的查询语言

1关系代数用对关系的运算来表达查询需要指明所用操作。

2关系演算用谓词来表达查询只需描述所需信息的特性。

元组关系演算谓词变元的基本对象是元组变量。

域关系演算谓词变元的基本对象是域变量。

3 3 2具体系统中的实际语言

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除SQL介于关系代数和关系演算之间 由IBM公司在研制SystemR时提出的。

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

QBE基于域关系演算 由IBM公司研制。

3 3 3关系数据语言的特点

1一体化一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言而不是分为几个语言。对象单一都是关系因此操作符也单一。而非关系型系统如DBTG有对记录的操作有对系的操作。

2非过程化用户只需提出“做什么”无须说明“怎么做”存取路径的选择和操作过程由系统自动完成。

3面向集合的存取方式操作对象是一个或多个关系结果是一个新的关系一次一关系。非关系系统是一次一记录的方式。

3 4关系代数

3 4 1关系代数

1基本运算

A、一元运算选择、投影、更名。

B、多元运算广义笛卡儿积、并、集合差。

2其它运算集合交、 自然连接、除、赋值。

3扩展运算广义投影、外连接、聚集。

4修改操作插入、删除、更新。

3 4 2一些标记

给定关系模式R(A1,A2,„,An) 设R是它的一个具体的关系 tR是关系的一个元组。

分量设tR则t[Ai]表示元组t中相应于属性Ai的一个分量。

属性列 A={Ai1,Ai2,„,Aik}{A1,A2, „ ,An}  称 A 为属性列或域列。t[Ai]=(t[Ai1] , t[Ai2] ,„, t[Aik]) 。

3 4 3选择

1基本定义在关系R中选择满足给定条件的元组从行的角度。

F(R)={t|tR,F(t)= ‘真’ }

F是选择的条件 tR F(t)要么为真要么为假。

2 F的形式 由逻辑运算符连接算术表达式而成。

逻辑表达式  与  或 非

算术表达式 XY

X Y是属性名、常量、或简单函数。

是比较算符 {,,,,,≠}

例

找年龄不小于20的男学生。

AGE≥20∧SEX= ‘mal e’

3 4 4投影

1定义从关系R中取若干列组成新的关系从列的角度。

A(R)={t[A] |tR} ,AR

投影的结果中要去掉相同的行。

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

B,C(R)

结果是

例

找001号学生所选修的课程号

C#

3 4 5并运算

1定义所有至少出现在两个关系中之一的元组集合。

RUS={r|rRvrS}

2两个关系R和S若进行并运算则它们必须是相容的

A、关系R和S必须是同元的 即它们的属性数目必须相同。

B、对i R的第i个属性的域必须和S的第i个属性的域相同。

例

求选修了001号或002号课程的学生号。

方案1

方案2

∏S# (C#=001 (SC) )∪∏S#(C#=002 (SC) )

3 4 6差运算

1定义所有出现在一个关系而不在另一关系中的元组集合。

RS={r|rRrS}

R和S必须是相容的。

例

求选修了001号而没有选002号课程的学生号。

∏S# (C#=001 (SC) )∏S#(C#=002 (SC) )

3 4 8更名运算

1定义给一个关系表达式赋予名字x E

返回表达式E的结果并把名字x赋给E。

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

返回表达式E的结果并把名字x赋给E 同时将各属性更名为A1,A2, . .An。

关系被看作一个最小的关系代数表达式可以将更名运算施加到关系上得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助。

3 4 7广义笛卡尔积运算

1元组的连串Concatenation

若r=(r1 „ rn)  s=(s1 „ sm) 则定义r与s的连串为 rs=(r1 „ rn s1 „ sm)

2定义

两个关系R S其度分别为n m则它们的笛卡尔积是所有这样的元组集合元组的前n个分量是R中的一个元组后m个分量是S中的一个元组。

RS={rs|rRsS}

RS的度为R与S的度之和 RS的元组个数为R和S的元组个数的乘积。

例

求数学成绩比王红同学高的学生姓名。

3 4 8交运算

1定义所有同时出现在两个关系中的元组集合。

RS={r|rRrS}

交运算可以通过差运算来重写 RS=R(RS)

例

求选修了001号和002号课程的学生号。

∏S#(C#=001 (SC) )∩∏S#(C#=002 (SC) )

3 4 9连接

1定义从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组。

RS={rs|rRsSr[A]S[B] }

AB

为算术比较符为等号时称为等值连接 为>时为大于连接 为<时为小于连接。

例

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

S

B<D

例

求数学成绩比王红同学高的学生。

∏S姓名( (课程=数学姓名=王红(R) ) (课程=数学S(R) ) )

R.成绩<S.成绩

2 自然连接从两个关系的广义笛卡尔积中选取在相同属性列B上取值相等的元组并去掉重复的] }

自然连接与等值连接的不同 自然连接中相等的分量必须是相同的属性组并且要在结果中去掉重复的属性而等值连接则不必。

例

求001号学生所在系的名称。

∏DN(S#=001 (S)DEPT)

3当R与S无相同属性时 RSR×S。

3 4 10除运算

1除运算

给定关系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={tr[Z] |trR∏y(S)YX}

其中YX为x在R中的象集 x=tr[Z] 。

例

R

精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

S

1象集ImageSet

关系R(X,Z) ,X,Z是属性组 x是X上的取值定义x在R中的象集为

Zx={t[Z] |tRt[X]=x}

从R中选出在X上取值为x的元组去掉X上的分量只留Z上的分量。

XZ

x=张三

Zx

2除运算

例

3 4 11赋值运算

为使查询表达简单、清晰可以将一个复杂的关系代数表达式分成几个部分每一部分都赋予一个精品学习资料---收集网络如有侵权请联系网站删除

精品学习资料---收集网络如有侵权请联系网站删除

临时关系变量关系代数表达式。

赋值给临时关系变量只是一种结果的传递而赋值给永久关系则意味着对数据库的修改。例

RS=X(R)X(X(R)Y(S)R)用赋值重写为temp1X(R) ,temp2X(temp1Y(S)R)resulttemp1temp2

例

求选修了其选修课为001号课程的学生名。 (哪个效率高 )

方案1 ∏SN(PC#=001 (SCCS) )

方案2 ∏SN(PC#=001 (C)SCS) )

例

求未选修001号课程的学生号。 (哪些正确 )

方案1 ∏S#(C#≠001 (SC) )

方案2 ∏S#(S)-∏S# (C#=001 (SC) )

例

求仅选修了001号课程的学生号。

选修001号课程的学生仅选001号课程之外的学生

∏) )

∏) )

3 4 12广义投影

1定义在投影列表中使用算术表达式来对投影进行扩展。

F1,F2,„,Fn(E)F 1,F2,„,Fn是算术表达式。

例

求教工应缴纳的所得税。

P#)

p# INCOME-TAX

3 4 13外连接

1定义为避免自然连接时因失配而发生的信息丢失可以假定往参与连接的一方表中附加一个取值全为空值的行它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配称之为外连接。

外连接=自然连接+失配的元组

精品学习资料---收集网络如有侵权请联系网站删除

#消息# contabo:德国老牌机房新增美国“纽约、西雅图”数据中心,免设置费

运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...

Digital-VM80美元新加坡和日本独立服务器

Digital-VM商家的暑期活动促销,这个商家提供有多个数据中心独立服务器、VPS主机产品。最低配置月付80美元,支持带宽、流量和IP的自定义配置。Digital-VM,是2019年新成立的商家,主要从事日本东京、新加坡、美国洛杉矶、荷兰阿姆斯特丹、西班牙马德里、挪威奥斯陆、丹麦哥本哈根数据中心的KVM架构VPS产品销售,分为大硬盘型(1Gbps带宽端口、分配较大的硬盘)和大带宽型(10Gbps...

恒创新客(317元)香港云服务器 2M带宽 三网CN2线路直连

恒创科技也有暑期的活动,其中香港服务器也有一定折扣,当然是针对新用户的,如果我们还没有注册过或者可以有办法注册到新用户的,可以买他们家的香港服务器活动价格,2M带宽香港云服务器317元。对于一般用途还是够用的。 活动链接:恒创暑期活动爆款活动均是针对新用户的。1、云服务器仅限首次购买恒创科技产品的新用户。1 核 1G 实例规格,单个账户限购 1台;其他活动机型,单个账户限购 3 台(必须在一个订单...

数据库关系模型为你推荐
万网核心代理万网代理商?中国万网认证核心分销商?二叉树遍历写出二叉树的先序遍历、中序遍历、后序遍历。雅虎天盾有没有用用雅虎天盾的啊?srv记录如何解析一个SRV域名的ip虚拟机软件下载谁有虚拟机软件的网址要好用的网站优化方案一个网站进行优化的流程及步骤发邮件怎么发怎么发邮箱网络虚拟机虚拟机网络设置QzongQQ空间是Qzone还是Qzongqq等级表QQ级别列表
虚拟主机服务商 解析域名 免费国际域名 万网域名空间 网易域名邮箱 轻博 全能主机 北京主机 圣诞促销 域名评估 佛山高防服务器 如何安装服务器系统 免费mysql数据库 1元域名 丽萨 wordpress中文主题 酸酸乳 攻击服务器 域名和主机 好看的空间 更多