关系数据库系统工程师-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的元组个数的乘积。

可编辑修改

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

两款半月湾 HMBcloud 春节88折日本和美国CN2 VPS主机套餐

春节期间我们很多朋友都在忙着吃好喝好,当然有时候也会偶然的上网看看。对于我们站长用户来说,基本上需要等到初八之后才会开工,现在有空就看看是否有商家的促销。这里看到来自HMBcloud半月湾服务商有提供两款春节机房方案的VPS主机88折促销活动,分别是来自洛杉矶CN2 GIA和日本CN2的方案。八八折优惠码:CNY-GIA第一、洛杉矶CN2 GIA美国原生IP地址、72小时退款保障、三网回程CN2 ...

捷锐数据399/年、60元/季 ,香港CN2云服务器 4H4G10M

捷锐数据官网商家介绍捷锐数据怎么样?捷锐数据好不好?捷锐数据是成立于2018年一家国人IDC商家,早期其主营虚拟主机CDN,现在主要有香港云服、国内物理机、腾讯轻量云代理、阿里轻量云代理,自营香港为CN2+BGP线路,采用KVM虚拟化而且单IP提供10G流量清洗并且免费配备天机盾可达到屏蔽UDP以及无视CC效果。这次捷锐数据给大家带来的活动是香港云促销,总共放量40台点击进入捷锐数据官网优惠活动内...

数据库关系模型为你推荐
暴风影音怎么截图如何在暴风影音中截图?博客外链外链都要怎么做?博客外链有没有效果?照片转手绘有什么软件可以把相片变成手绘的,不是美图秀秀里面的今日热点怎么删除怎么删除手机百度实时热点申请证书求高手教下怎么申请证书畅想中国未来的中国是什么样子的怎么升级ios6苹果IOS5怎么升级IOS6版本ejb开发什么是EJB?它是干什么的?和JAVA,JSP有关系吗?他们各有什么特点和用途?二层交换机二层交换机是什么意思,三层呢网站优化方案网站优化方案应该从哪些方面去分析?
网站空间商 英语简历模板word debian7 太原联通测速平台 申请个人网站 百兆独享 1美金 idc查询 如何注册阿里云邮箱 如何建立邮箱 无限流量 环聊 net空间 德讯 镇江高防 阿里dns 阿里云邮箱申请 windowsserver2008 WHMCS ftp是什么东西 更多