【数据库复习】第二章关系数据库 1
创始人
2025-06-01 12:58:34
0

单一的数据结构—关系

现实世界的实体以及实体间的各种联系均用关系来表示

逻辑结构—二维表

从用户角度,关系模型中数据的逻辑结构是一张二维表

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

笛卡尔积

给定一组域D1,D2,…,Dn,这些域中可以有相同的。

D1,D2,…,Dn的笛卡尔积为:

D1×D2×…×Dn =

{(d1,d2,…,dn)|diÎDi,i=1,2,…,n}

所有域的所有取值的一个组合

不能重复

元组(Tuple)

笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)

分量(Component)

笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量

基数(Cardinal number)

若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:

1) 关系

D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的

关系,表示为

R(D1,D2,…,Dn)

R:关系名

n:关系的目或度(Degree)

2) 元组

关系中的每个元素是关系中的元组,通常用t表示。

3) 单元关系与二元关系

当n=1时,称该关系为单元关系(Unary relation)或一元关系

当n=2时,称该关系为二元关系(Binary relation)

4) 关系的表示

关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域

5)属性

关系中不同列可以对应相同的域

为了加以区分,必须对每列起一个名字,称为属性(Attribute)

n目关系必有n个属性

6) 码

候选码(Candidate key)

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

简单的情况:候选码只包含一个属性

全码(All-key)

最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)

主码

若一个关系有多个候选码,则选定其中一个为主码(Primary key)

主属性

候选码的诸属性称为主属性(Prime attribute)

不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute)

7) 三类关系

基本关系(基本表或基表)

实际存在的表,是实际存储数据的逻辑表示

查询表

查询结果对应的表

视图表

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

8)基本关系的性质

① 列是同质的(Homogeneous)

② 不同的列可出自同一个域,用属性名区分

③ 列的顺序无所谓,列的次序可以任意交换

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

⑤ 行的顺序无所谓,行的次序可以任意交换

⑥ 分量必须取原子值

关系模式可以形式化地表示为:

R(U,D,DOM,F)

R 关系名

U 组成该关系的属性名集合

D 属性组U中属性所来自的域

DOM 属性向域的映象集合

F 属性间的数据依赖关系集合

关系数据库的型与值

关系数据库的型:关系数据库模式,对关系数据库的描述,包括

若干域的定义

在这些域上定义的若干关系模式

关系数据库的值: 关系模式在某一时刻对应的关系的集合,简称为关系数据库

常用的关系操作

查询:选择、投影、连接、除、并、交、差

数据更新:插入、删除、修改

查询的表达能力是其中最主要的部分

选择、投影、并、差、笛卡尔基是5种基本操作

关系操作的特点

集合操作方式:操作的对象和结果都是集合,一次一集合的方式

高度非过程化:只要指出“做什么”,不需要描述“怎么做”

笛卡尔积(Extended Cartesian Product)

R: n目关系,k1个元组

S: m目关系,k2个元组

R×S

列:(n+m)列元组的集合

元组的前n列是关系R的一个元组

后m列是关系S的一个元组

行:k1×k2个元组

R×S = {tr ts |tr ÎR ∧ tsÎS }

选择运算

投影

连接

等值连接

自然连接

外连接

如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。

左外连接

如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)

右外连接

如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...