Skip to content

REVIEW 2 关系数据模型

:material-circle-edit-outline: 约 923 个字 :material-clock-time-two-outline: 预计阅读时间 3 分钟

Basic Structure

Relation Schema and Instance

  • Relation Schema R 是class,由attributes组成
  • Relation Instance r(R) 是object,用 table 表示
  • Element t 即 r 的一个 tuple,table 中占一行

Attributes

attribute 在一个 r 中的定义域即 domain,必含 NULL

attribute 的值应该是 atomic 的

Database Schema

和Relation的差不多,区别是Relation的是逻辑上的概念,而Database的是数据库里面的概念

Keys

Primary Key

  • 主键(primary key):从候选键中选出来的,其value能唯一锁定每一个tuple

主键是能确定一条记录的唯一标识

  • 候选键(candidate key):所有能胜任主键的attribute都是候选键
    • 不一定是单个attribute,可能是属性集(复合主键)
    • 是超键的minimal
  • 超键(super key):一个attribute的集合,且其value能唯一锁定每一个tuple
    • 说白了就是包含候选键的属性集合

Foreign Key

主键确定一个tuple,但是一个tuple的value可能在多个表里。

主键所在表之外的表的value就通过外键与主键配对键,以保持数据的一致性。

主键用于检索,外键用于配对

Relational Algebra

不是所有的想法都能用关系代数实现,关系代数是不完备的

我们学的是Pure Relational Algebra,会移除重复项

还有Multiset Relational Algebra,会保留重复项

Basic Operators

image-20240402150504849

image-20240402155807951

Select

选出满足条件的tuple

image-20240402150612942

Project

选取需要的attribute

image-20240402150748016

Union

image-20240402150803797

要求两个关系需要有相同元数(arity),即属性数量相同,且属性的domain得相容

Set difference

r-s表示,删除r中的和s中一模一样tuple

要求元数相同,属性相容,domain一致

交集不是basic是因为可以用差表示,r^s = r-(r-s)

Cartesian-Product

笛卡尔乘积

Rename

image-20240402155620157

Additional Operations

下面这些操作可以大大化简关系代数语句

image-20240402155906587

JOIN

Natural-Join

一般Join都是指Inner-Join,即根据相同属性进行筛选

相同的属性为Inner,不相同的为Outer

自然连接根据两个关系相同的属性,选取相同的value的tuple组成新的表

image-20240402160029542

  • Natural-Join 是可交换的、可结合的

Theta Join

SELECT * FROM r,s WHERE theta

显然和自然连接完全不是一个东西,这是先笛卡尔乘再条件选择

image-20240402160534199

Outer Join

自然连接会扔掉两个表的相同属性不同value的tuple,被扔掉的都成为outer

  • Outer Join分为三种
    • 左外:保留左边表的outer
    • 右外:同上
    • 全外:都保留

outer 属性的value显然有缺失,用NULL填补

外部连接可通过自然连接实现:

image-20240402161556521

{}用于构造临时关系,语句结束这个关系就没了

NULL与unknow

与NULL进行比较运算(OR,AND,NOT)会得到特殊真值 unknown

从逻辑运算来说,unknown即亦真亦假

image-20240402162049797

Semi join

半连接

image-20240402163201470

r与s进行theta连接后,只保留r中的属性

image-20240402183254423

Assignment

符号为 ← ,右边为project语句,左边为变量

类似 WITH,用于复杂语句中,储存得到的表

image-20240402183526366

Division

image-20240402183541333

被除表与除表进行自然连接,然后将 除表 有的attribute都删掉,重复的元素要合并

看着复杂,看个例子就懂了

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

image-20240304151723791

Extended Relational-Algebra-Operations

上面的addition都没有增强查询功能,只能让语句变得更短,接下来的就是能增强的

Generalized Projection

就是映射条件可以加入算数表达式,结果会相应的变化

image-20240402184133464

Aggregate Functions and Operations

聚合函数需要和聚合操作符G一起使用

image-20240530232716710

左下标表示GROUP BY哪些属性,右下标选取聚合函数

image-20240402184239788

image-20240304153042798

结果没有名称,我们可以直接加个 as

image-20240304153052268

Modification of the Database

  • DELETE
  • INSERT
  • UPDATE