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

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

精品资料

第三章 关系模型逻辑结构设计

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

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

目前主流的商业数据库系统 Oracle Informix Sybase SQL S erver DB2

Acces s Foxpro Foxbas e。

3 1关系基本概念

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

3 1 1域Domain 

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

3 1 2笛卡尔积Car’ tesian Product

一组域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

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

例

D 1为教师集合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)={(t1 , s1 ,c1), (t1 , 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#,C N,C RE D IT)

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

SC(S#,C#,SCORE)

TEACH(P#,C#)

3 2 1候选码Candidate Key

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

如D E PT中的D#D N都可作为候选码。任何一个候选码中的属性称作主属性。如S C中的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关系数据库

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

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

3 3 6关系操作

关系操作是集合操作操作的对象及结果都是集合是一次一集合S et-at-a-time的方式而非关系型的数据操作方式是一次一记录Record-at-a-time 。

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

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

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

1实体完整性

可编辑修改

精品资料

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

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

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

2参照完整性

A、如果关系R 2的外部码Fk与关系R 1的主码Pk相对应则R2中的每一个元组的Fk值或者等于R 1中某个元组的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公司在研制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(A 1 ,A2,…,An) 设R是它的一个具体的关系 tÎR是关系的一个元组。

分量设tÎR则t[Ai]表示元组t中相应于属性Ai的一个分量。

属性列 A= {Ai 1 ,Ai2 ,…,Aik}Í{A 1 ,A2 ,…,An}称A为属性列或域列。 t[Ai] = ( t[Ai 1],

可编辑修改

精品资料t[Ai2] ,…, t[Aik])。

3 4 3选择

1基本定义在关系R中选择满足给定条件的元组从行的角度 。sF(R)={t|tÎR,F(t) = ‘真’ }

F是选择的条件 "tÎR F(t)要么为真要么为假。

2 F的形式 由逻辑运算符连接算术表达式而成。

逻辑表达式 Ù与 Ú或  Ø 非

算术表达式XqY

X Y是属性名、常量、或简单函数。q是比较算符 qÎ{> , ³ , < ,£,= , ≠}

例

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

3 4 4投影

1定义从关系R中取若干列组成新的关系从列的角度 。PA(R)={t[A] | tÎR} ,AÍR

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

例

可编辑修改

精品资料

PB,C(R)

结果是

例

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

PC#(sS#=001 SC

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#(sC# =001 ())

3 4 6差运算

1定义所有出现在一个关系而不在另一关系中的元组集合。R-S={r | rÎRÙrÏS}

可编辑修改

精品资料

R和S必须是相容的。

例

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

∏S#(sC# =001 ())

3 4 8更名运算

1定义给一个关系表达式赋予名字rx E

返回表达式E的结果并把名字x赋给E。rx A1 A2  ¼ An  E

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

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

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

1元组的连串Concatenation 

若r=(r1… rn)  s=(s 1 … sm) 则定义r与s的连串为 rs=(r 1… rn s 1 …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的元组个数的乘积。

可编辑修改

819云互联(800元/月),香港BGP E5 2650 16G,日本 E5 2650 16G

819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...

免费注册宝塔面板账户赠送价值3188礼包适合购买抵扣折扣

对于一般的用户来说,我们使用宝塔面板免费版本功能还是足够的,如果我们有需要付费插件和专业版的功能,且需要的插件比较多,实际上且长期使用的话,还是购买付费专业版或者企业版本划算一些。昨天也有在文章中分享年中促销活动。如今我们是否会发现,我们在安装宝塔面板后是必须强制我们登录账户的,否则一直有弹出登录界面,我们还是注册一个账户比较好。反正免费注册宝塔账户还有代金券赠送。 新注册宝塔账户送代金券我们注册...

Dynadot COM特价新注册48元

想必我们有一些朋友应该陆续收到国内和国外的域名注册商关于域名即将涨价的信息。大概的意思是说从9月1日开始,.COM域名会涨价一点点,大约需要单个9.99美元左右一个。其实对于大部分用户来说也没多大的影响,毕竟如今什么都涨价,域名涨一点点也不要紧。如果是域名较多的话,确实增加续费成本和注册成本。今天整理看到Dynadot有发布新的八月份域名优惠活动,.COM首年注册依然是仅需48元,本次优惠活动截止...

数据库关系模型为你推荐
bluestacksBlueStacks是什么?在PC上畅玩Android 45万款应用二叉树遍历怎么正确理解二叉树的遍历http与https的区别http和https到底有什么区别啊???中小企业信息化小企业需要信息化吗?需要的话要怎么实现信息化呢?ios7固件下载iphone自动下载IOS7固件版本怎么删除迅雷云点播账号求百度云或者迅雷云播账号密码php购物车php做购物车需要用到哪些技术,这些技术怎么实现微信怎么看聊天记录什么方法可以知道微信的聊天记录cisco防火墙思科防火墙策略extended什么意思office2007简体中文版office2007下载安装
最新代理服务器地址 la域名 好玩的桌面 NetSpeeder qq数据库 165邮箱 工作站服务器 绍兴电信 idc查询 服务器硬件防火墙 网购分享 shuang12 lamp是什么意思 lamp的音标 腾讯数据库 香港博客 沈阳idc shuangcheng sonya htaccess 更多