CMU15-445/645 Lecture#1 Course Introduction and the Relational Model

本文回顾了关系型数据库的起源,从1970年科德提出的关系模型到其成为数据库领域的主流。深入探讨了关系代数的基本操作,如SELECT、PROJECTION、UNION、INTERSECTION、DEFFRENCE、PRODUCT、JOIN等,以及额外的操作符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关系性数据库提出的背景

刚开始是没有数据库这概念的.当数据量比较少时用一个啥txt文本文件就差不多就能搞定了.但数据量稍微多一点时,而且数据保存在不同的文件中.比如啥txt,doc,excel等文件.此时要处理数据还是手动去查询更改就非常之麻烦.可能得再整个简单应用程序帮你做些事了.只给你提供一些简单的用户界面.封装背后的一些复杂操作.此时数据的组织和保存还是主要依靠操作系统的文件系统.应用程序只是简化了下用户的操作.当数据量非常多的时候会发现应用程序加文件系统的方式会存在很多明显的缺陷。

1970年,科德发表题为“大型共享数据库的关系模型”的论文,文中首次提出了数据库的关系模型。由于关系模型简单明了、具有坚实的数学理论基础,所以一经推出就受到了学术界和产业界的高度重视和广泛响应,并很快成为数据库市场的主流。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。

数据库中的关系代数

SELECT

在这里插入图片描述

从满足选择条件的关系中选择一个元组(tuples)的子集。

→ 充当过滤器,仅保留满足选择条件要求的元组。

→ 可以使用连接词/析取词组合多个条件。

R ( a _ i d , b _ i d ) R(a\_id , b\_id) R(a_id,b_id)

在这里插入图片描述

σ a _ i d = ′ a 2 ′ ( R ) σ_{a\_id = 'a2'}(R) σa_id=a2(R)

在这里插入图片描述

PROJECTION

在这里插入图片描述

用仅包含指定属性的元组生成一个关系。

→ 可以重新排列属性的顺序。

→ 可以操作这些值。

R ( a _ i d , b _ i d ) R(a\_id , b\_id) R(a_id,b_id)

在这里插入图片描述

Π b _ i d − 100 , a _ i d ( σ a _ i d = ′ a 2 ′ ( R ) ) \Pi_{b\_id - 100 , a\_id}(\sigma _ {a\_id = 'a2'}(R)) Πb_id100,a_id(σa_id=a2(R))

在这里插入图片描述

UNION

在这里插入图片描述

生成一个包含只在一个或两个输入关系中出现过的关系。

R ( a _ i d , b _ i d )                  S ( a _ i d , b _ i d ) R(a\_id , b\_id) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ S(a\_id , b\_id) R(a_id,b_id)                S(a_id,b_id)

在这里插入图片描述

( R   ∪   S ) (R\ \cup \ S) (R  S)

在这里插入图片描述

INTERSECTION

在这里插入图片描述

生成仅包含在两个关系中都出现的元组的关系。

R ( a _ i d , b _ i d )                  S ( a _ i d , b _ i d ) R(a\_id , b\_id) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ S(a\_id , b\_id) R(a_id,b_id)                S(a_id,b_id)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m8u9To5c-1588925352265)(./img/01-07.png)]

( R   ∩   S ) (R\ \cap \ S) (R  S)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kp5ym2Wb-1588925352270)(./img/01-10.png)]

DEFFRENCE

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpVtrrzO-1588925352274)(./img/01-11.png)]

生成一个由仅在第一个关系而未在第二个关系中出现的关系。

R ( a _ i d , b _ i d )                  S ( a _ i d , b _ i d ) R(a\_id , b\_id) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ S(a\_id , b\_id) R(a_id,b_id)                S(a_id,b_id)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0fLIXH1i-1588925352277)(./img/01-07.png)]

( R   −   S ) (R\ - \ S) (R  S)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VJ4zWwk3-1588925352280)(./img/01-12.png)]

PRODUCT

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ClKK99iw-1588925352287)(./img/01-13.png)]

笛卡尔积,生成所有可能的组合。

R ( a _ i d , b _ i d )                  S ( a _ i d , b _ i d ) R(a\_id , b\_id) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ S(a\_id , b\_id) R(a_id,b_id)                S(a_id,b_id)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJcC0p8s-1588925352292)(./img/01-07.png)]

( R   ×   S ) (R\ × \ S) (R × S)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QFA5WehD-1588925352294)(./img/01-14.png)]

JOIN

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YgghOrea-1588925352299)(./img/01-15.png)]

从两个关系的笛卡尔积中选取属性间都存在的元组。

R ( a _ i d , b _ i d )                  S ( a _ i d , b _ i d ) R(a\_id , b\_id) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ S(a\_id , b\_id) R(a_id,b_id)                S(a_id,b_id)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cE7lKFXs-1588925352304)(./img/01-07.png)]

( R   ⋈   S ) (R\ \bowtie \ S) (R  S)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0vjk069-1588925352311)(./img/01-10.png)]

EXTRA OPERATORS

  • Rename(ρ)
  • Assignment(R←S)
  • Duplicate Elimination(δ)
  • Aggregation(γ)
  • Sorting(τ)
  • Division(R÷S)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值