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

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

第三章关系模型逻辑结构设计

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

早期代表系统SystemR由IBM研制。 INGRE的加州Berkeley分校研制。

目前主流的商业数据库系统 Oracle Informix Sybase,SQL Server DB2

Access  Foxpro Foxbase。

3. 1关系基本概念

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

3. 1 . 1域Domain :

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

3. 1 . 2笛卡尔积Car'tesian Product 

一组域D1 ,D2,…,Dn的笛卡尔积为D1X D2X-X 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}

则D1X D2X D3是个三元组集合元组个数为2X3X 2,是所有可能的教师学生课程元组集合。笛卡尔积可表为二维表的形式

表中的行表示一个兀组列表示一个域。

3. 1 . 3关系

 1  笛卡尔积D1X D2X-X Dn的子集叫做在域D1 ,D2,…,Dn上的关系用RD1 ,D2,…,Dn 表示。

2 R是关系的名字 n是关系的度或目。

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

4关系的性质列是同质的即每一列中的分量来自同一域是同一类型的数据。如TEAC H T,S,

C)={(t 1 ,si ,cl), (t 1 , t2,cl)} 是错误的。

(5) 不同的列可来自同一域每列必须有不同

的属性名。女口 P={t1 , t2 , si , s2 , s3} ,C={ci , c2} 贝U TEACH不能写成TEACH(P,P,C) 还应写成TEACH(T,S,C) 。

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

3. 2关系模式

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

学生 教师

课程

DEPT(D#,DN,DEAN)

S(S#,S N,S EX,AG E,D#)

C(C#,CN,CREDIT)

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

SC(S#,C#,SCORE)

T E AC H(P#,C#)

3. 2. 1候选码(Can didate Key)

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

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

3. 2. 2主码(Primary Key)

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

3. 3. 3外部码(Foreign Key)

关系R中的一个属性组它不是R的码但它与另一个关系S的码相对应则称这个属性组为R的外部码。如S关系中的D#属性。

3. 3. 4关系模式

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

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

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

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

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

3. 3. 5关系数据库

其型是关系模式的集合即数据库描述称作数据库的内涵 (In te nsio n) 。

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

3〃 3〃 6关系操作

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

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

作可以有选择、投影、连接、除、交、差、并等。

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

 1 实体完整性

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

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

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

2 参照完整性

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

B、 意义如果关系R2的某个元组t2参照了关系R 1的某个元组t1 则t1必须存在。

3 用户定义的完整性

用户针对具体的应用环境定义的完整性约束条件。如S#要求是8位整数SEX要求取值为‚男‛或‚女‛ 。 4系统支持

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

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

3 〃 3关系数据语言概述

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

 1  关系代数用对关系的运算来表达查询需要指明所用操作。

2 关系演算用谓词来表达查询只需描述所需信息的特性。

元组关系演算谓词变元的基本对象是元组变量。域关系演算谓词变元的基本对象是域变量。3〃 3〃 2具体系统中的实际语言

SQL介于关系代数和关系演算之间由IBM公司在研制System R时提出的。

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={Ai l ,Ai 2,… Ai k} {A1 ,A2,… An} 称A为属性列或域列。 t[Ai]=( t[Ai 1], t[Ai 2], …t[Ai k]) 。

3. 4. 3选择

( 1)基本定义在关系R中选择满足给定条件的元组(从行的角度)

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

F是选择的条件 tR,F(t)要么为真要么为假。

(2) F的形式由逻辑运算符连接算术表达式而成。

逻辑表达式 (与)  (或)  (非)

算术表达式X丫

X 丫是属性名、常量、或简单函数。是比较算符 { , , , , 工}

例

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

AG》 20ASEX二'male'

3. 4. 4投影

( 1 )定义从关系R中取若干列组成新的关系(从列的角度)

A(R)={ t[A] | t R} ,AR

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

例:

B,C(R)

结果是

例

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

C#( S#=001 (SC)

3. 4. 5并运算

( 1 )定义所有至少出现在两个关系中之一的元组集合。

(2)两个关系R和S若进行并运算则它们必须是相容的

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

B、对i , R的第i个属性的域必须和S的第i个属性的域相同例

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

方1 :ns#(C#二001vC#二002(SC))

万案2:n s#(C#=001 (SC))unS#(C#=002(SC))

3. 4. 6差运算

( 1 )定义所有出现在一个关系而不在另一关系中的元组集合

例

求选修了001号而没有选002号课程的学生号。nS#(C#=001 (SC))—nS#(C#=002(SC))

3. 4. 8更名运算

( 1) 定义给一个关系表达式赋予名字 x(E

返回表达式E的结果并把名字x赋给E。x(A1 , A2 , ,An ) (E)

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

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

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

( 1)元组的连串(Con cate natio n ) :

若r=(r1 … rn) ,s=(s1 … sm) 则定义r与s的连串为 rs=(r1 …山 s1 … sm)

(2)定义

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

R S={ rs| r R s S}

RS的度为R与S的度之和RS的元组个数为R和S的元组个数的乘积。

例

求数学成绩比王红同学高的学生姓名。nS姓名( R成绩S成绩R课程=数学S课程=数学R姓名=王红())

3. 4. 8交运算

( 1 )定义所有同时出现在两个关系中的元组集合。

RS={ r | r R r S}

3. 4. 9连接

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

RS={ rs| r RsSr[A]S[B] }

AB

为算术比较符为等号时称为等值连接 为〉时为大于连接 为<时为小于连接

例

R

S

RS

B<D

例

求数学成绩比王红同学高的学生nS姓名((课程=数学姓名=王红(R))( 课程=数学S(R)))

R. 成绩<S.成绩

(2)自然连接从两个关系的广义笛卡尔积中选取在相同属性列 B上取值相等的元组并去掉重复的

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

例:

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

列0 S={ rs[B] | r

RsSr[B]=S[B] }nD«S#=001 (S)DEPT)

(3) 当R与S无相同属性时RS=RXS

3. 4. 10除运算

( 1 )除运算

给定关系R (XY)和S (YZ) 其中XYZ为属性组。R中的丫与S中的丫可以有不同的属性名但必须出自相同的域集。R与S的除运算得到一个新的关系P(X) P是R中满足下列条件的元组在

X属性列上的投影元组在X上分量值x的象集YX包含S在丫上投影的集合记做:R十S={ tr[Z] | t rR ny(S) YX }

其中YX为x在R中的象集x=t r[Z]例

R

S

(1 )象集( Image Set)

关系R(X,Z),X,Z 是属性组x是X上的取值定义x在R中的象集为:Zx={ t[Z] | t Rt[X]=x}

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

x=张三

Zx课程物理数学

(2)除运算

例:

3. 4. 1 1赋值运算

为使查询表达简单、清晰可以将一个复杂的关系代数表达式分成几个部分每一部分都赋予一个临时关系变量该变量可被看作关系而在后面的表达式中使用。

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

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

例

RS= X(R) X( X(R) Y(S) R)用赋值重写为temp1 X(R),temp2 x(temp1 Y(S) R)result temp1 temp2

例

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

方案i  nSN(PC#=001 (SC>C S))

方案2 n SN( PC#=001

例

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

方))

万案2n S#(S)-n S#( C#=001 (SC))

例

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

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

=nS#( C#=001(SC))—nS#(SC—C#=001(SC))

=nS#( C#二001(SC))—ns#(C#工001 (SC))

3. 4. 12广义投影

( 1 )定义在投影列表中使用算术表达式来对投影进行扩展。

F1 ,F2 …,Fn(E) F 1 ,F2, … Fn是算术表达式

例

求教工应缴纳的所得税。

P#)p#))

3. 4. 13外连接

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

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

(2) 外连接的形式左外连接、右外连接、全外连接 。'左外连接=自然连接+左侧表中失配的元组。

-右外连接=自然连接+右侧表中失配的元组。

全外连接=自然连接+两侧表中失配的元组。

例

列出所有老师的有关信息包括姓名、工资、所教授的课程。

织梦DEDECMS即将授权收费和维权模式 站长应对的几个方法

这两天在站长群里看到不少有使用DEDECMS织梦程序的朋友比较着急,因为前两天有看到来自DEDECMS,我们熟悉的织梦程序官方发布的公告,将会在10月25日开始全面商业用途的使用DEDECMS内容管理程序的会采用授权收费模式,如果我们有在个人或者企业商业用途的,需要联系且得到授权才可以使用,否则后面会通过维权的方式。对于这个事情,我们可能有些站长经历过,比如字体、图片的版权。以及有一些国内的CMS...

SugarHosts糖果主机圣诞节促销 美国/香港虚拟主机低至6折

SugarHosts 糖果主机商我们算是比较熟悉的,早年学会建站的时候开始就用的糖果虚拟主机,目前他们家还算是为数不多提供虚拟主机的商家,有提供香港、美国、德国等虚拟主机机房。香港机房CN2速度比较快,美国机房有提供优化线路和普通线路适合外贸业务。德国欧洲机房适合欧洲业务的虚拟主机。糖果主机商一般是不会发布黑五活动的,他们在圣圣诞节促销活动是有的,我们看到糖果主机商发布的圣诞节促销虚拟主机低至6折...

raksmart:全新cloud云服务器系列测评,告诉你raksmart新产品效果好不好

2021年6月底,raksmart开发出来的新产品“cloud-云服务器”正式上线对外售卖,当前只有美国硅谷机房(或许以后会有其他数据中心加入)可供选择。或许你会问raksmart云服务器怎么样啊、raksm云服务器好不好、网络速度快不好之类的废话(不实测的话),本着主机测评趟雷、大家受益的原则,先开一个给大家测评一下!官方网站:https://www.raksmart.com云服务器的说明:底层...

数据库关系模型为你推荐
手机游戏排行榜2015求一款2015人气最多的手游,最好有前十排行榜中国论坛大全有谁知道国内人气最高的论坛排行榜?二叉树遍历写出二叉树的先序遍历、中序遍历、后序遍历。镜像文件是什么镜像文件是什么意思?安卓应用平台有没有什么安卓游戏都能找到的应用商店或者游戏中心网店推广网站什么平台适合做淘宝店铺推广qq怎么发邮件怎样在QQ上发送邮件?qq空间打扮QQ空间怎么打扮如何打扮创维云电视功能创维电视怎么用,我买了个创维云电视,现在不知道怎么用手机往电视上传照片,谁能解答以下,怎么升级ios6苹果IOS5怎么升级IOS6版本
域名投资 万网域名代理 网易域名邮箱 liquidweb 好看的桌面背景图片 debian源 申请个人网页 丹弗 云全民 服务器维护方案 1g内存 河南移动m值兑换 1美金 微软服务器操作系统 中国电信网络测速 我的世界服务器ip lamp架构 如何登陆阿里云邮箱 服务器硬件配置 卡巴斯基官网下载 更多