【数据库系统概论】-关系数据库

关系数据结构及形式化定义

关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

关系

关系模型的唯一数据结构。在用户看来,关系模型中数据的逻辑结构就是一张二维表。关系模型是建立在集合代数的基础上的,这里给出关系数据结构的形式化定义:

1.域(Domain)

定义:域是一组具有相同数据类型的集合。

2.笛卡尔积(Cartesian Product)

定义:给定一组域D1,D2,...,Dn,(这些域中可以是相同的域)。D1,D2,...,Dn的笛卡尔积为:

D1×D2×...×Dn={(d1,d2,...,dn) | di∈Di,i=1,2,...,n }

其中,每一个元素(d1,d2,...,dn)叫做一个n元组(n-tuple),或简称元组(Tuple)

元组中每一个值di叫做一个分量(Component)

笛卡尔积可以表示为一个二维表。

3.关系(Relation)

定义:D1×D2×...×Dn的子集叫做在域D1,D2,...,Dn上的关系。表示为R(D1,D2,...,Dn)

若关系中某一属性组的值能够唯一地标识一个元组,则称该属性组为候选码(Candidate key)。若一个关系有多个候选码,则选定其中一个为主码(Primary key)。候选码的所有属性称为主属性(Prime attribute)。不包含在任何候选码中的属性称为非主属性(Non-prime attribute)或非码属性(Non-key attribute)

关系模式的所有属性是这个关系模式的候选码,称为全码(All-key)

关系可以有三种类型:

基本关系(基本表或基表),实际存在的表,实际存储数据的逻辑表示。

查询表,查询结果对应的表。

视图表,由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

当关系作为关系数据模型的数据结构时,需要给予如下限定和扩充:

1)无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。

2)通过为关系的每个列附加一个属性名的方法取消关系元祖的有序性。因此基本关系具有以下6条性质:

①列是同质的;

②不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;

③列的顺序无所谓;

④任意两个元组的候选码不能相同;

⑤行的顺序无所谓;

⑥分量必须取原子值。

关系模式

关系模式是型,关系是值。

关系模式需要指出这个元素集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映像关系。一个关系通常是由赋予它的元组语义来确定。

定义:关系的描述称为关系模式(Relation Schema)。它可以形式化的表示为R(U, D, DOM, F),其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间的数据依赖关系集合。



关系操作

基本的关系操作

关系模型中常用的关系操作包括查询(Query)操作插入(Insert)删除(Delete)修改(Update)操作两大部分。

查询操作又可以分为:选择(Select)投影(Project)、连接(Join)、除(Divide)、并(Union)差(Except)、交(Intersection)、笛卡尔积。

其中,选择、投影、并、差、笛卡尔积是5种基本操作。

关系操作的特点是集合操作方式,即操作的对象和结果都是集合。

关系数语言分类

1)关系代数语言

2)关系演算语言

①元组关系演算语言

②域关系演算语言

3)具有关系代数和关系演算双重特点的语言

关系的完整性

关系模型的完整性规则是对关系的某种约束条件。这些约束条件实际上是现实世界的要求。任何关系在任何时刻都要满足这些语义约束。

关系的三类完整性约束

实体完整性(Entity Integrity)

规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能为空值。

说明:

(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应显示世界的一个实体集。

(2)现实世界中的实体是可以区分的,即它们具有某种唯一性标识。

(3)关系模型中以主码作为唯一性标识。

(4)主码中的属性不能取空值。

参照完整性(Reference Integrity)

定义:设F是基本关系R的一个或一组属性,但不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。

规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(R和S不一定是不同关系),则对于R中的每个元组在F上的值必须取空值或者等于S中的某个元组的主码值

用户定义完整性(User-defined Integrity)

用户定义的完整性就是针对某一具体关系数据库的约束条件。

关系代数

关系代数的运算对象是关系,运算结果也是关系。关系代数用到的运算符包括:集合运算符、专门的关系运算符、逻辑运算符。

传统的集合运算符

1、并(Union)

2、差(Except)

3、交(Intersection)

4、笛卡尔积(Cartesian Product)

专门的关系运算

1、选择(Selection) 

2、投影(Projection) 

3、连接(Join) 

4、除运算(Division)
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值