首先介绍一下什么是关系数据库,关系数据库基于关系模型,是一个或多个关系组成的集合,而关系通俗来讲就是表(由行列构成),关系模型的主要优点是具有简单的数据表示而且能易于表示复杂的查询,到目前为止,SQL语言是最广泛使用的语言,可用于创建,操纵和查询关系数据库, 其基础是关系模型。
下图是关系的示例:
下面分别介绍一下
联系
,
关系
是什么
-
联系表示一些实体之间的关联,由实体集和联系集组成,表示相应实体在真实的世界的关系,如下图所示:
-
关系是一种数学概念,指的是表中的所有属性,例如ID,name,dep_name,salary等,关系表示的是机器的世界,如下图所示:
一般地,我们把集合用数学符号
a
i
j
∈
D
i
,这么说可能枯燥,下面举一个例子,假设一张表有如下几列:导师、专业、学生,对应结构如下:导师(张清玫教授,刘逸教程)、专业(计算机、信息)、学生(李勇,刘晨、王名),下图则是一个关系r:
接下来介绍一下笛卡尔积,直接上例子:
从上图可以看出笛卡尔积就是各个集合的排列组合。
关系的每个属性都有一个名称,每个属性的取值集合称为属性的域,属性的值必须是原子的,即不可分割(1NF,第一范式),需要注意,空值null是每一个域的成员,空值给数据库访问和更新带来很多困难,因此应尽量避免使用空值。
那关系是什么?关系涉及两个概念:关系模式和关系实例,其中关系模式描述的是关系的结构,例如:
I
n
s
t
r
u
c
t
o
r
−
s
c
h
e
m
a
=
(
I
D
,
n
a
m
e
,
d
e
p
t
n
a
m
e
,
s
a
l
a
r
y
)
关系实例则表示一个关系的特定实例,例如(‘0001’,‘张三’,‘计算机学院’,20000)。每一行数据被称为是一个元组,元组的顺序性是无关紧要的,但一个关系中不能有重复的元组
关系代数有六个基本的运算和一些附加运算,六个基本运算是:
附加运算是:
下面依次介绍这六个关系
数据库的表的关系r如下图所示:
需求:选择元组,满足:A=B and D > 5
数学表达为:
赋值运算(←)可以使复杂的查询表达变得简单,使用赋值运算,可以把查询表达为一个顺序程序,该程序包括:
-
一系列赋值
-
一个其值被作为查询结果显示的表达式
对关系代数查询而言,赋值必须是赋给一个临时关系变量。
R-S表示从R中删去S中的属性的集合。
在temp2中,
π
R
−
S
,
S
(
r
)
表示的就是r本身的集合,将两者相减留下的就是不能完全覆盖的元组,将其减去就是能完全覆盖的元组,也就是除的结果。
假设现在有一个银行的数据库,相应的表关系如下:
例2-例3:
广义投影允许在投影列表中使用算术函数来对投影操作进行扩展,广义投影运算形式为:
聚合函数输入一个值集合,然后返回单一值作为结果
-
avg: 平均值
-
min: 最小值
-
max: 最大值
-
sum: 值的总和
-
count: 值的数量
一、传统的集合运算与S Q L 语句实现
传统的集合运算包括四种运算:并(∪)、交(∩)、差(—)、广义笛卡尔积(X)。
<!--[if !supportLists]-->(一) <!--[endif]-->并运算(Union)
(1)概述
设
关系
R和
关系
S具有相同的目n,且相应的属性取自同一个域。则
关系
R和
关系
S的并记为R∪S,其结果仍为n目
关系
,由属于R或...
关系代数
有五个
基础
运算符,这五个
基础
运算符能派生出其他组合运算符。它们分别是:
选择(σ, selection)、投影(π, projection)、叉乘(x, cross-product)、
差(-, set-difference)和并(υ, un
目录前言
关系代数
选择语句投影语句连接语句除法(重要⚠)
关系代数
例题
SQL
视图模式匹配聚合,分组与HAVING子查询
SQL
例题
关系代数
通过符号化的语言,来描述
数据库
的行为
关系
,相当于简化版的
SQL
。比如并,交,差,笛卡尔积,除法,select 语句等等。
SQL
则是结构化查询语句,相比于
关系代数
,更方便被计算机识别的一种查询语言。
其余的复习笔记:
数据库
理论
:函数式依赖,无损拆分,依赖保留拆分与
数据库
范式
数据库
理论
:ER模型,
关系
转换,并发控制与冲突可串行化调度
交,并,差,笛卡
数据库
技术是计算机科学的重要分支。
数据库
学科的研究范围是很广泛的。就
数据库
系统
理论
部分主
要集中于
关系
的规范化
理论
,
关系
数据
理论
的研究,而
关系
数据
理论
中关于
关系代数
的讨论又是重点。
关系
代数是1种抽象的数据集合的操作方式来表达数据运算能力的,它是
关系
数据库
标准语言s(1L查询操作的
理论
基础
本文从已经给出的
关系代数
的各种运算的定义出发,将与标准s( 操作一一对应,得出相应的
SQL
语句结论,以便将抽象的各种代数运算与具体的
数据库
操作联系起来。