数据库期末复习总结之关系数据库(二)

关系的完整性约束

  • 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。(主码约束)
  • 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ka相对应(基本关系R和S不一定是不同的关系)、则对于R中每个元组在F上的值必须为:空值或等于S中某个元组的主码值。
  • 用户的完整性:列值非空(NOT NULL)、列值唯一(UNIQUE)、检查列值是否满足一个布尔表达式(CHECK)。

关系模型

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

  • 属性:表中的一列即为一个属性;
  • 元组:表中的一行即为一个元组;
  • 分量:元组中的一个属性值;规范化条件:每一个分量必须是一个不可分的数据项。
  • 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为超码
  • 关系中的某一超码,当去掉其中任一属性后,均不再为超码,称其为侯选码。(最小性、唯一性)
  • 若一个关系有多个侯选码,则选定其中一个为主码。
  • 候选码的每个属性都称为主属性。
  • 不包含在任何侯选码中的属性称为非码属性或非主属性。
  • 在极端的情况下,关系模式的所有属性组是这个关系模式的侯选码,称为全码。
  • 外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码K相对应,则称F是基本关系R的外部码,简称外码。(不一定要与相应的主码(候选码)同名,关系R和S不一定是不同的关系。)
  • 域:一种具有相同数据类型的值的集合。
  • 笛卡尔积:给定一组域D1,D2…Dn,这些域可以是相同的域。这组域的笛卡尔积为D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫做一个n元组或简称元组,其中di叫做一个分量。
  • 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为R(D1,D2,…,Dn)。(一个关系对应通常说的一张表)
  • 关系模式:关系的描述称为关系模式。它可以形式化地表示为R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。
  • 关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库的型称为关系数据库模式;关系数据库的值是这些关系模式在某一时刻对应的关系的集合。

注:笛卡尔积不满足交换律,但关系满足。

关系的完整性约束
  • 实体完整性规则(主码)
  • 参照完整性规则(外码)
  • 用户定义的完整性(取值范围)
    缺点:存取路径对用户透明导致查询效率往往不如非关系数据模型。

关系代数

集合运算符:广义笛卡尔积×、并、差、交
专门的关系运算符:选择、投影、连接、除÷
基本运算符:广义笛卡尔积×、并、差、选择σ、投影

1. 集合运算符

R和S是关系,须满足

  1. 要求属性数目相同;
  2. R和S的第i个属性的域相同(对于所有的i)
    这里写图片描述
2. 选择σ

定义:σF® = {t|t∈R∧F(t)= ‘真’}
选择是从行的角度,进行筛选元组。

[例1] 查询年龄小于20岁的学生
σSage <‘20’(Student) 或σ4<‘20’(Student)

3. 投影

定义: πA®= { t[A] | t∈R }
投影是从列的角度,选出若干列

[例2] 查询学生的姓名和所在系
πSname,Sdept(Student)或 π2,5(Student)

4. 连接

这里写图片描述
这里写图片描述

5. 除÷

给定关系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]
这里写图片描述#### 更名(ρ)、外连接(⟕/⟖/⟗)、赋值(←)

  • ρx(E);(命名临时关系)E为关系代数表达式;
    ρx(E)返回表达式E的结果,并将其命名为x;

  • 左外连接(⟕);右外连接(⟖);全外连接(⟗)
    对于不匹配(相等、存在)的元组,置为空值

  • temp←πR-S(a) temp表示了πR-S(a)的结果

练习理解

这里写图片描述

在线练习网站

http://dbis-uibk.github.io/relax/index.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值