数据库概论笔记第二章(关系模型)

本文深入解析了关系模型的基础结构,包括关系、元组、属性和域,以及关系代数的六个基本运算和扩展运算。重点介绍了数据库查询语言SQL的应用,涉及选择、投影、并、差等操作,同时涵盖了模式图、空值处理和数据库修改等内容。
摘要由CSDN通过智能技术生成

关系模型Relational model

一、关系数据库的基本结构

1.关系relation:一个实体集或关联关系的集合(一个二维表)

给定集合D1、D2…Dn,关系r就是D1×…×Dn的一个子集(n元组的集合:就是对集合中的某种情况填到表里)。

a.关系模式Relational Schema(有具体属性值)

属性名字A1…An,属性名字组成的集合**R=(A1…An)**就是关系模式,如schema=(name,street,city)

**r®**表示关系模式R上的一个关系r,如customer(schema)。

一个关系的当前值(关系实例relation instance)可以通过一个表来表示

b.关系是随机的

关系中元组的顺序是随机的,任意顺序存储

2.元组tuple:关系的每一行

元组变量tuple variable:表示元组的变量,域是特定关系中所有元组的集合

元组变量就是在更换一个元组后,对应的值能发生相应的变化

3.属性attribute:关系命名的列
4.域domain每个属性允许值的集合
5.通常,属性值是原子的atomic(不可划分的)
6.null空值 :不存在的信息
7.关系数据库:

由许多关系组成。(不能是单一的关系(有重复和空值))

8.码keys

K是R的超码superkey:K是属性的集合且是R的真子集,能区分给定关系不同的元组(不存在两个元组在K上的取值相同)(超码内部不存在两个相同的值)。

候选码candidate key:超码K是最小的超码(真子集都不是超码)就是候选码(A不是超码,B不是超码,A+B是超码,A+B就是候选码)

主码primary key:被设计者选中的,用来在一个关系中区分不同元组候选码(不经常或不变的属性)

外码foreign key:关系模式r1中属性包含r2的主码,对r2的主码,在r1上就叫参照r2的外码。

r1称为外码依赖的参照关系referencing relation,r2为外码的被参照关系referenced relation。

9.引用约束reference constraint

被引用关系的属性是主码时才可以用作引用关系的外码(外码引用的必须是主码,引用的一定是子集)。

10.模式图schema diagram

!

灰色:主码

二、关系代数基本运算Relational Algebra Fundamental Operations

1.数据库查询语言Query language

用户从数据库中请求获取信息的语言。

分为过程化查询语言(知道系统一系列计算的结果)和非过程化查询语言(只需要描述信息,不用提供过程)。

SQL语言包含过程化和非过程化。

纯的语言pure languages:关系代数(过程化),元组关系演算(非),域关系演算(非)。

2.关系代数
1.定义

包含一组运算,以一个或两个关系的运算作为输入,产生一个新的关系作为结果。

2.六种基本运算

选择运算、 投影运算、并运算、集合差运算、笛卡尔积运算、重命名运算。

运算之间可以进行组合。

!

a.选择运算(行)

在给定关系r中,选择满足给定条件的元组。

!!

b.投影运算(列)

单目运算,在r中选出若干组属性列组成一个新的关系。

不能有重复行

!

c.并运算

对两个关系取并集的运算。

条件:r和s必须同源arity(属性数目相同),属性域相同

!

d.集合差运算

找出在一个关系中存在,另一个关系中不存在的元组。

条件:r和s同源。

!

e.笛卡尔积运算

将任何两个关系的信息组合在一起。

!

如果r和s之间有相同的属性,需要对其中一个进行重命名

f.重命名运算

关系代数运算中,为中间结果进行命名。

!用x命名表达式E

!用x命名表达式E,E的属性分别命名为A1…An

3.其他运算
a.集合交运算

!

!

b.自然连接

将两个集合进行笛卡尔积,然后对两个属性名相同的列的相同属性进行选择,然后将重复的去掉

!

c.除法运算

属性名不相同的列,完全包含除数的属性。

!

!

d.赋值运算符
4.扩展关系代数运算
a.广义投影运算

投影的目标可以是关系表达式

b.聚集运算

可以进行max、min、avg、sum、count(值的数量)

c.外连接运算

可以产生空值null

全外连接:

左/右外连接:

5.空值null

算数表达式中就是空。聚集函数中忽略null。重复删除和分组时,多个空值要看成一个值。比较运算时结果时unknown。选择判定时结果时unknown认为判定结果为假。

6.数据库的修改modification
1.删除deletion
2.插入insertion
3.更新updating
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值