第二章 关系数据库
更新时间:2024-06-19 23:30:01 阅读量: 综合文库 文档下载
- 第二章大圣归来小说推荐度:
- 相关推荐
《数据库系统概论》 第二章 关系数据库 讲义
第二章 关系数据库
本章系统地讲解关系数据库的重要概念,并着重对关系模型进行讲解。关系模型包括关系数据结构、关系操作集合、以及关系完整性约束三个组成部分。要求学生重点掌握关系模型的三类完整性规则和关系代数的运算等。
2.1 关系数据结构及形式化定义 2.2 关系操作 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结
2.1 关系数据结构及形式化定义 2.1.1 关系 2.1.2 关系模式 2.1.3 关系数据库 2.1.1 关系
单一的数据结构----关系
现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构---- 二维表
从用户角度,关系模型中数据的逻辑结构是一张二维表 建立在集合代数的基础上 关系(续)
⒈ 域(Domain)
2. 笛卡尔积(Cartesian Product) 3. 关系(Relation)
⒈ 域(Domain)
域是一组具有相同数据类型的值的集合。例:
整数 实数
- 1 -
《数据库系统概论》 第二章 关系数据库 讲义
介于某个取值范围的整数 长度指定长度的字符串集合 {‘男’,‘女’} ?????..
2. 笛卡尔积(Cartesian Product) 笛卡尔积
给定一组域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为:
笛卡尔积的表示方法
笛卡尔积可表示为一个二维表
表中的每行对应一个元组,表中的每列对应一个域
- 2 -
《数据库系统概论》 第二章 关系数据库 讲义
3. 关系(Relation) 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)
- 3 -
《数据库系统概论》 第二章 关系数据库 讲义
主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key) 主属性
候选码的诸属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute) 或非码属性(Non-key attribute) 关系(续)
D1,D2,?,Dn的笛卡尔积的某个子集才有实际含义 例:表2.1 的笛卡尔积没有实际意义 取出有实际意义的元组来构造关系
关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 假设:导师与专业:1:1, 导师与研究生:1:n 主码:POSTGRADUATE(假设研究生不会重名) SAP关系可以包含三个元组 { (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (刘逸,信息专业,王敏) }
7) 三类关系
基本关系 (基本表或基表)
实际存在的表,是实际存储数据的逻辑表示 查询表
查询结果对应的表 视图表
由基本表或其他视图表导出的表,是虚表,不对 应实际存储的数据
8)基本关系的性质
① 列是同质的(Homogeneous) ② 不同的列可出自同一个域 其中的每一列称为一个属性 不同的属性要给予不同的属性名
- 4 -
《数据库系统概论》 第二章 关系数据库 讲义
③ 列的顺序无所谓,,列的次序可以任意交换 ④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换 基本关系的性质(续) ⑥ 分量必须取原子值
这是规范条件中最基本的一条
表2.3 非规范化关系
2.1.2 关系模式 1.什么是关系模式 2.定义关系模式 3. 关系模式与关系 1.什么是关系模式
关系模式(Relation Schema)是型 关系是值
关系模式是对关系的描述 元组集合的结构
属性构成
属性来自的域 属性与域之间的映象关系
元组语义以及完整性约束条件 属性间的数据依赖关系集合
- 5 -
《数据库系统概论》 第二章 关系数据库 讲义
3. 参照完整性规则 规则2.2 参照完整性规则
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值
[例1]:
学生关系中每个元组的“专业号”属性只取两类值: (1)空值,表示尚未给该学生分配专业
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业
〔例2〕 :
选修(学号,课程号,成绩) “学号”和“课程号”可能的取值 : (1)选修关系中的主属性,不能取空值 (2)只能取相应被参照关系中已经存在的主码值 例3〕:
学生(学号,姓名,性别,专业号,年龄,班长) “班长”属性值可以取两类值:
(1)空值,表示该学生所在班级尚未选出班长 (2)非空值,该值必须是本关系中某个元组的学号值
2.3.4 用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能
- 11 -
《数据库系统概论》 第二章 关系数据库 讲义
例:
课程(课程号 ,课程名,学分) “ 课程号” 属性必须取唯一值 非主属性“ 课程名” 也不能取空值 “ 学分” 属性只能取值{1 ,2 ,3 ,4}
2.4 关系代数 概述
传统的集合运算 专门的关系运算
2.4 关系代数 概述
传统的集合运算 专门的关系运算
1. 并(Union)
R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域
R∪S
仍为n 目关系,由属于R 或属于S 的元组组成
R∪S = { t|t ? R∨t ?S }
2. 差(Difference)
R和S 具有相同的目n 相应的属性取自同一个域
- 12 -
《数据库系统概论》 第二章 关系数据库 讲义
R - S
仍为n 目关系,由属于R 而不属于S 的所有元组组成 R -S = { t|t?R∧t?S }
3. 交(Intersection)
R和S 具有相同的目n 相应的属性取自同一个域
R∩S 仍为n 目关系,由既属于R 又属于S 的元组组成
R∩S = { t|t ? R∧t ?S } R∩S = R –(R-S ) 交 (续)
4. 笛卡尔积(Cartesian Product)
严格地讲应该是广义的笛卡尔积(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 }
2.4.2 专门的关系运算 先引入几个记号 (1) R,t?R,t[Ai]
设关系模式为R(A1,A2,?,An) 它的一个关系设为R
- 13 -
《数据库系统概论》 第二章 关系数据库 讲义
t?R表示t是R的一个元组
t[Ai]则表示元组t中相应于属性Ai的一个分量
(2) A,t[A], A
若A={Ai1,Ai2,?,Aik},其中Ai1,Ai2,?,Aik是A1,A2,?,An中的一部分,则A称为属性列或属性组。
t[A]=(t[Ai1],t[Ai2],?,t[Aik])表示元组t在属性列A上诸分量的集合。
A则表示{A1,A2,?,An}中去掉{Ai1,Ai2,?,Aik}后剩余的属性组。
(3) tr ts
R为n目关系,S为m目关系。
tr ?R,ts?S, tr ts称为元组的连接。
tr ts是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。
(4)象集Zx
给定一个关系R(X,Z),X和Z为属性组。 当t[X]=x时,x在R中的象集(Images Set)为: Zx={t[Z]|t ?R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合
x1在R中的象集
Zx1 ={Z1,Z2,Z3}, x2在R中的象集 Zx2 ={Z2,Z3}, x3 在R 中的象集 Zx3={Z1 ,Z3}
- 14 -
《数据库系统概论》 第二章 关系数据库 讲义
专门的关系运算(选择、投影、连接、除)
1. 选择(Selection)
1) 选择又称为限制(Restriction) 2) 选择运算符的含义
在关系R中选择满足给定条件的诸元组 σF(R) = {t|t?R∧F(t)= '真'} F:选择条件,是一个逻辑表达式,基本形式为: X1θY1
3) 选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算
[例1] 查询信息系(IS系)全体学生 结果:
[例2] 查询年龄小于20 岁的学生
σ
Sage < 20
σ
5 ='IS'
Sdept
= 'IS' (Student)
或 σ(Student)
(Student)
或 σ 结果:
4 < 20
(Student)
2. 投影(Projection) 1)投影运算符的含义
从R 中选择出若干属性列组成新的关系 πA(R) = { t[A] | t ?R }
A:R 中的属性列
- 15 -
《数据库系统概论》 第二章 关系数据库 讲义
2. 投影(Projection)
2 )投影操作主要是从列的角度进行运算
但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
[例3] 查询学生的姓名和所在系
即求Student关系上学生姓名和所在系两个属性上的投影 π
Sname,Sdept
(Student) (Student)
或 π结果:
2,5
[例4] 查询学生关系Student 中都有哪些系 π
3. 连接(Join) 1)连接也称为θ连接 2)连接运算的含义
从两个关系的笛卡尔积中选取属性间满足一定条件的元组
Sdept
(Student)
R ∞ S = { | tr ? R∧ts ?S∧tr[A]θts[B] }
A和B:分别为R和S上度数相等且可比的属性组 θ:比较运算符
连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组
- 16 -
《数据库系统概论》 第二章 关系数据库 讲义
3)两类常用连接运算 等值连接(equijoin)
什么是等值连接
θ为“=”的连接运算称为等值连接 等值连接的含义
从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
R ∞ S = { | tr ?R∧ts ?S∧tr[A] = ts[B] }
自然连接(Natural join) 自然连接是一种特殊的等值连接
两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉
自然连接的含义
R和S具有相同的属性组B
R ∞ S = { | tr ?R∧ts ?S∧tr[B] = ts[B] }
4)一般的连接操作是从行的角度进行运算。
自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
[例5]关系R和关系S 如下所示: 等值连接 R ∞ S 的结果如下:
- 17 -
《数据库系统概论》 第二章 关系数据库 讲义
自然连接 R ∞ S 的结果如下: 外连接
如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。 左外连接
如果只把左边关系R 中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN 或LEFT JOIN) 右外连接
- 18 -
《数据库系统概论》 第二章 关系数据库 讲义
如果只把右边关系S 中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN 或RIGHT JOIN) 。
4. 除(Division)
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。 R与S的除运算得到一个新的关系P(X), P是R中满足下列条件的元组在 X 属性列上的投影: 元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作: R÷S = {tr [X] | tr ? R∧πY (S) ? Yx }
Yx:x在R中的象集,x = tr[X]
2)除操作是同时从行和列角度进行运算
分析
在关系R中,A可以取四个值{a1,a2,a3,a4}
a1的象集为 {(b1,c2),(b2,c3),(b2,c1)} a2的象集为 {(b3,c7),(b2,c3)}
- 19 -
《数据库系统概论》 第二章 关系数据库 讲义
a3的象集为 {(b4,c6)} a4的象集为 {(b6,c6)} S在(B,C)上的投影为
{(b1,c2),(b2,c1),(b2,c3) } 只有a1的象集包含了S在(B,C)属性组上的投影 所以 R÷S ={a1}
5.综合举例
以学生-课程数据库为例 (P56)
[例7] 查询至少选修1号课程和3号课程的学生号码
首先建立一个临时关系K: 然后求:πSno,Cno(SC)÷K 综合举例(续) 例 7续 πSno,Cno(SC)
200215121象集{1,2,3} 200215122象集{2,3} K={1,3}
于是:πSno,Cno(SC)÷K={200215121}
[例 8] 查询选修了2 号课程的学生的学号。 π
Sno
(σ
Cno='2'
(SC ))
={ 200215121 ,200215122 }
- 20 -
《数据库系统概论》 第二章 关系数据库 讲义
[例9] 查询至少选修了一门其直接先行课为5号课程的 的学生姓名 π或 π或 π
[例10] 查询选修了全部课程的学生号码和姓名。 π 小结
关系代数运算 关系代数运算
并、差、交、笛卡尔积、投影、选择、连接、除 基本运算
并、差、笛卡尔积、投影、选择 交、连接、除
可以用5种基本运算来表达
引进它们并不增加语言的能力,但可以简化表达
关系代数表达式
关系代数运算经有限次复合后形成的式子
Sno,CnoSname
SnameSname
(σ
Cpno='5'
(Course SC Student))
(σ
Cpno='5'
(Course) SC π
Sno,Sname
(Student))
(π
Sno
(σ
Cpno='5'
(Course) SC) π
Sno,Sname
(Student))
(SC)÷π
Cno
(Course) π
Sno,Sname
(Student)
- 21 -
《数据库系统概论》 第二章 关系数据库 讲义
典型关系代数语言
ISBL(Information System Base Language) 由IBM United Kingdom研究中心研制
用于PRTV(Peterlee Relational Test Vehicle)实验系统
2.5 关系演算 关系演算
以数理逻辑中的谓词演算为基础 按谓词变元不同 进行分类 1.元组关系演算:
以元组变量作为谓词变元的基本对象 元组关系演算语言ALPHA 2.域关系演算:
以域变量作为谓词变元的基本对象 域关系演算语言QBE
2.5.1 元组关系演算语言ALPHA 由E.F.Codd提出
INGRES所用的QUEL语言是参照ALPHA语言研制的 语句 检索语句 GET 更新语句
PUT,HOLD,UPDATE,DELETE,DROP 一、检索操作 语句格式:
GET 工作空间名 [(定额)](表达式1) [:操作条件] [DOWN/UP 表达式2] 定额:规定检索的元组个数
- 22 -
《数据库系统概论》 第二章 关系数据库 讲义
格式: 数字 表达式1:指定语句的操作对象 格式:
关系名| 关系名. 属性名| 元组变量. 属性名| 集函数 [,? ] 操作条件:将操作结果限定在满足条件的元组中 格式: 逻辑表达式 表达式2:指定排序方式
格式: 关系名. 属性名| 元组变量. 属性名[,? ]一、检索操作
(1)简单检索
GET 工作空间名 (表达式1)
[例1] 查询所有被选修的课程号码。 GET W (SC.Cno) [例2] 查询所有学生的数据。 GET W (Student)
(2)限定的检索 格式
GET 工作空间名(表达式1):操作条件
[例3] 查询信息系(IS) 中年龄小于20 岁的学生的学号和年龄 GET W (Student.Sno,Student.Sage): Student.Sdept='IS'∧ Student.Sage<20
(3)带排序的检索 格式
GET 工作空间名(表达式1)[:操作条件] DOWN/UP 表达式2
- 23 -
《数据库系统概论》 第二章 关系数据库 讲义
[例4]查询计算机科学系(CS)学生的学号、年龄,结果按年龄降序排序 GET W (Student.Sno,Student.Sage):
Student.Sdept='CS‘ DOWN Student.Sage (4)带定额的检索 格式
GET 工作空间名(定额)(表达式1) [:操作条件] [DOWN/UP 表达式2] [例5] 取出一个信息系学生的学号。 GET W (1) (Student.Sno):
Student.Sdept='IS'
[例6] 查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序。 GET W (3) (Student.Sno,Student.Sage): Student.Sdept='IS' DOWN Student.Sage (5)用元组变量的检索 元组变量的含义
表示可以在某一关系范围内变化(也称为范围变量Range Variable) 元组变量的用途
① 简化关系名:设一个较短名字的元组变量来代替较长的关系名。 ② 操作条件中使用量词时必须用元组变量。 定义元组变量
格式:RANGE 关系名 变量名 一个关系可以设多个元组变量 (6) 用存在量词的检索
操作条件中使用量词时必须用元组变量 [例8] 查询选修2号课程的学生名字。 RANGE SC X
GET W (Student.Sname): RANGE Course CX GET W (SC.Sno): CX (CX.Cno=SC.Cno∧CX.Pcno='6')
用存在量词的检索(续)
X(X.Sno=Student.Sno∧X.Cno='2')
[例9] 查询选修了这样课程的学生学号,其直接先行课是6号课程。
- 24 -
《数据库系统概论》 第二章 关系数据库 讲义
[例10]查询至少选修一门其先行课为6号课程的学生名字 RANGE Course CX
SC SCX GET W (Student.Sname): 前束范式形式:
GET W (Student.Sname):
(7)带有多个关系的表达式的检索
[例11] 查询成绩为90分以上的学生名字与课程名字。 RANGE SC SCX
GET W(Student.Sname,Course.Cname): SCX (SCX.Grade≥90 ∧
SCX.Sno=Student.Sno∧ Course.Cno=SCX.Cno) (8)用全称量词的检索
[例12] 查询不选1号课程的学生名字 RANGE SC SCX
GET W (Student.Sname):
SCX (SCX.Sno≠Student.Sno∨SCX.Cno≠'1') 用存在量词表示: RANGE SC SCX
GET W (Student.Sname): ?
(9)用两种量词的检索
[例13] 查询选修了全部课程的学生姓名。 RANGE Course CX
SC SCX GET W (Student.Sname):
SCX (SCX.Sno=Student.Sno∧SCX.Cno='1')
SCX CX.Cno=SCX.Cno∧CX.Pcno='6')
SCX (SCX.Sno=Student.Sno∧ CX (CX.Cno=SCX.Cno∧CX.Pcno='6'))
CX (SCX.Sno=Student.Sno∧
- 25 -
《数据库系统概论》 第二章 关系数据库 讲义
CX
SCX (SCX.Sno=Student.Sno∧
SCX.Cno=CX.Cno)
(10)用蕴函(Implication)的检索
[例14] 查询最少选修了200215122 学生所选课程的学生学号 RANGE Couse CX
SC SCX SC SCY GET W (Student.Sno): CX( (SCX.Sno=‘200215122'
(11)聚集函数
常用聚集函数(Aggregation function)或内部函数(Build-in function) 聚集函数(续)
[例15] 查询学生所在系的数目。
GET W ( COUNT(Student.Sdept) ) COUNT 函数在计数时会自动排除重复值。 [例16] 查询信息系学生的平均年龄
GET W (AVG(Student.Sage): Student.Sdept='IS’ )
二、更新操作 (1) 修改操作 (2) 插入操作 (3) 删除操作 (1)修改操作步骤
① 用HOLD语句将要修改的元组从数据库中读到工作空间中
HOLD 工作空间名(表达式1)[:操作条件 ] HOLD语句是带上并发控制的GET语句 ② 用宿主语言修改工作空间中元组的属性
SCY(SCY.Sno=Student.Sno
SCY.Cno= CX.Cno))
SCX ∧
SCX.Cno=CX.Cno)
∧
- 26 -
《数据库系统概论》 第二章 关系数据库 讲义
③ 用UPDATE语句将修改后的元组送回数据库中 UPDATE 工作空间名 修改操作(续)
[例17] 把200215121学生从计算机科学系转到信息系。 HOLD W (Student.Sno, Student.Sdetp): Student.Sno=‘200215121' (从Student关系中读出95007学生的数据) MOVE 'IS' TO W.Sdept
(2)插入操作 步骤
① 用宿主语言在工作空间中建立新元组 ② 用PUT 语句把该元组存入指定关系中 PUT 工作空间名 (关系名)
PUT语句只对一个关系操作,关系演算中的聚集函数
[例18] 学校新开设了一门2学分的课程“计算机组织与结构”,其课程号为8,直接先行课为6号课程。插入该课程元组 MOVE '8' TO W.Cno
MOVE '计算机组织与结构' TO W.Cname MOVE '6' TO W.Cpno MOVE '2' TO W.Ccredit PUT W (Course)
(用宿主语言进行修改)
(把修改后的元组送回Student关系)
UPDATE W
- 27 -
《数据库系统概论》 第二章 关系数据库 讲义
(3)删除操作 步骤
① 用HOLD语句把要删除的元组从数据库中读到工作空间中 ② 用DELETE语句删除该元组 DELETE 工作空间名
[例19] 200215125学生因故退学,删除该学生元组 HOLD W (Student): Student.Sno=‘200215125' DELETE W
[例20] 将学号200215121改为200215126
HOLD W (Student): Student.Sno=‘200215121' DELETE W
MOVE ‘200215126' TO W.Sno MOVE '李勇' TO W.Sname MOVE '男' TO W.Ssex MOVE '20‘ TO W.Sage MOVE 'CS' TO W.Sdept PUT W (Student)
[例21] 删除全部学生
HOLD W (Student) DELETE W
为保证参照完整性 ,删除Student中元组时相应地要删除SC中的元组 HOLD W (SC) DELETE W
小结:元组关系演算语言ALPHA
- 28 -
《数据库系统概论》 第二章 关系数据库 讲义
检索操作 GET
GET 工作空间名 [(定额)](表达式1) [:操作条件] [DOWN/UP 表达式2] 插入操作
建立新元组--PUT 修改操作
HOLD--修改--UPDATE 删除操作 HOLD--DELETE
2.5.2 域关系演算语言QBE 一种典型的域关系演算语言 由M.M.Zloof提出
以元组变量的分量即域变量作为谓词变元的基本对象
QBE :Query By Example 基于屏幕表格的查询语言
查询要求:以填写表格的方式构造查询 用示例元素(域变量)来表示查询结果可能的情况 查询结果:以表格形式显示 QBE操作框架
一、检索操作 1.简单查询
[例1]求信息系全体学生的姓名 操作步骤为: (1)用户提出要求; (2)屏幕显示空白表格; 简单查询(续)
(3)用户在最左边一栏输入要查询的关系名Student;
- 29 -
《数据库系统概论》 第二章 关系数据库 讲义
(4)系统显示该关系的属性名
(5)用户在上面构造查询要求
李勇是示例元素,即域变量
(6)屏幕显示查询结果 构造查询的几个要素
示例元素 即域变量 一定要加下划线
示例元素是这个域中可能的一个值,它不必是查询结果中的元素 打印操作符P. 实际上是显示 查询条件
可使用比较运算符>,≥,<,≤,=和≠ 其中=可以省略
[例2] 查询全体学生的全部数据 简单查询(续)
显示全部数据也可以简单地把P.操作符作用在关系名上。 2. 条件查询
[例3] 求年龄大于19 岁的学生的学号
条件查询(与条件)
[例4] 求计算机科学系年龄大于19 岁的学生的学号。
方法(1) :把两个条件写在同一行上 条件查询(与条件)
方法(2):把两个条件写在不同行上,但使用相同的示例元素值 条件查询(与条件)
[例5] 查询既选修了1号课程又选修了2号课程的学生的学号。 条件查询(或条件)
- 30 -
《数据库系统概论》 第二章 关系数据库 讲义
[例6] 查询计算机科学系或者年龄大于19 岁的学生的学号。
条件查询(多表连接)
[例7] 查询选修1号课程的学生姓名。
条件查询(非条件)
[例8] 查询未选修1号课程的学生姓名
[例9] 查询有两个人以上选修的课程号。 3. 聚集函数 常用聚集函数:
函数名 CNT SUM AVG MAX MIN
[例10] 查询信息系学生的平均年龄。 4.对查询结果排序 升序排序:
功能 对元组计数 求总和 求平均值 求最大值 求最小值 - 31 -
《数据库系统概论》 第二章 关系数据库 讲义
对查询结果按某个属性值的升序排序,只需在相应列中填入“AO.” 降序排序:
按降序排序则填“DO.” 多列排序:
如果按多列排序,用“AO(i).” 或“DO(i).” 表示,其中i 为排序的优先级,i 值越小,优先级越高 对查询结果排序(续)
[例11] 查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。
二、更新操作 1.修改操作
[例12] 把200215121 学生的年龄改为18 岁。 方法(1) :将操作符“U.” 放在值上
修改操作(续)
方法(2): 将操作符“U.”放在关系上
码200215121标明要修改的元组。 “U.”标明所在的行是修改后的新值。
由于主码是不能修改的,所以系统不会混淆要修改的属性。
修改操作(续)
[例13] 把200215121学生的年龄增加1岁
- 32 -
《数据库系统概论》 第二章 关系数据库 讲义
操作涉及表达式,必须将操作符“U.”放在关系上
修改操作(续)
[例14] 将计算机系所有学生的年龄都增加1 岁 2.插入操作
[例15] 把信息系女生200215701 ,姓名张三,年龄17 岁存入数据库中。
3. 删除操作
[例17] 删除学生200215089
为保证参照完整性,删除200215089学生前,先删除200215089学生选修的全部课程
2.6 小结
关系数据库系统是目前使用最广泛的数据库系统 关系数据库系统与非关系数据库系统的区别: 关系系统只有“ 表” 这一种数据结构;
非关系数据库系统还有其他数据结构,以及对这些数据结构的操作
关系数据结构 关系 域 笛卡尔积 关系
关系,属性,元组
- 33 -
《数据库系统概论》 第二章 关系数据库 讲义
候选码,主码,主属性 基本关系的性质
关系模式 关系数据库 关系操作 查询
(选择、投影、连接、除、并、交、差) 数据更新
(插入、删除、修改)
关系的完整性约束 实体完整性 参照完整性 外码
用户定义的完整性
关系数据语言 关系代数语言 关系演算语言
元组关系演算语言 ALPHA 域关系演算语言 QBE
- 34 -
正在阅读:
第二章 关系数据库06-19
2019关于五水共治征文【最新】06-14
保阜高速公路保定至阜平(冀晋界)段路基、桥涵工程施工组织设计10-07
课堂纪律自主式管理的三个阶段相关范文02-11
武术套路裁判考试试卷-103-16
中原经济区建设纲要04-25
药事管理会议记录07-21
成人本科 组织行为学 试题及答案11-28
风控个人工作总结11-07
南方医科大学综合信息门户09-11
- 必修一物理寒假作业
- 2019-201X年5月大学生入党积极分子思想汇报-word范文模板(3页)
- 药物分析习题五
- 重拾应用意识 体会数学价值(沈建军)
- 2017全国高校辅导员结构化面试题集及参考答案
- 广东徐闻县实验中学2014届高三第二次月测地理试题
- 今天你共鸣了么?
- 2018-2019正能量读后感1000字-推荐word版(6页)
- 2018年中国截切型盖板针布行业专题研究分析报告目录
- 中国移动业务处理流程大全
- 公文写作常用词汇和句子集锦2016
- ARM课程设计说明书
- 教师资格证教育学论文
- 中考试卷分析
- 环境监测试卷(五)
- 党风廉政建设广播稿1
- 快速制作香香宫煮麻辣烫教程
- 《国际金融学》习题
- 文明施工保障措施方案
- 春兰维修资料故障代码
- 关系
- 第二章
- 数据库
- 十一届三中全会的召开及其历史意义_测试题
- 硫化钠MSDS
- 名师课堂:部编小学语文二年级下册识字4《中国美食》教学设计与
- 最唯美的地产创意文案
- 公司资金管理制度
- 人教版小学数学二年级上册期末复习计划
- 体育心理学名词解释、简答题、论述题
- 课堂留白,留出精彩
- 2014杭州继续教育《医患沟通学》练习题和答案
- 八年级物理上册1-4章教案 - 图文
- 药物皮试液配制规范
- 景洪市十二交通五规划
- 中外美术史考研核心考点笔记及试题
- 房地产开发与经营课程标准
- 零售客户经理月度总结
- 【完美升级版】小型枸杞废枝粉碎机的设计毕业论文设计
- 企业客户关系管理系统的设计与实现 - 图文
- 2017-2022年华宁县PPP模式市场机会分析报告(目录)
- 2018年甲烷氯化物发展现状及市场前景趋势分析 (目录)_ss
- 不带未来函数且精准的主图指标通达信指标公式源码