关系模型与关系代数概述


文章目录

  • 关系模型
    • 关系数据结构
    • 关系数据操作
    • 关系数据完整性约束
  • 关系代数
    • 核心运算操作
    • 专门的关系运算操作
    • 辅助运算操作


关系模型

关系模型是一种数据模型,常用在关系型数据库中。作为一种数据模型,关系模型最重要的三个组成分别是:关系数据结构(结构化方面)、关系数据操作(操纵性方面)、关系数据完整性约束(完整性方面)。

关系数据结构

  1. 关系:关系由关系名、关系模式、关系实例组成,是单一的数据结构
  2. 从用户角度来说,关系的逻辑结构是一张非嵌套的二维表。可以将关系看作是由表名、表头、数据三部分组成。
    姓名 班级 学号 专业
    张三 一班 10001 CS
    李四 一班 10002 CS
    王五 二班 11001 EE
  3. 在关系数据中,一列称为属性,属性值的范围被称为;一行称为元组,元组中的一个属性值被称为分量,可以确定一组元组的最小属性集合被称为候选码,简称
  4. 关系模式是对关系的表述,表述为 关系名(属性值1,属性值2,……)。举个例子,姓名为姓名#的同学,来自班级#,学号为学号#,专业是专业#
  5. 关系事例是关系的内容,可以理解为将属性值放入4的句子中,以第一行为例,姓名为张三的同学,来自一班,学号为10001,专业是CS

关系数据操作

关系数据操作主要包括了查询和数据更新,与其他数据模型不同的是,关系数据操作的操作对象是集合,也就是说,一次一集合。

  1. 查询操作包括了:选择、投影、连接、交、并、补、差。
  2. 数据更新操作包括了:插入、删除、修改。
  3. 关系数据语言包括了三种:关系代数语言、关系演算语言和SQL(结构化查询语言)。

关系数据完整性约束

关系数据完整性是对数据的约束,要求数据可以尽可能真实的反应现实,其中包括三个内容:

  1. 主体完整性:为了保证实体存在并且可区分而定义,表现为关系表内必须存在主键,且主键的属性值必须非空且唯一。
  2. 参照完整性:指的是多个实体或关系之间的关联关系,为了表现这个关联关系,出现了外键的概念。外键指引用其他表的主键的属性值,需要满足为被应用的主键值或者为空。
  3. 用户定义完整性:一般被称为域完整性,是用来限制属性值范围,防止属性值与现实语义不符。

关系代数

关系代数是一种抽象的查找语言,用对关系的运算来查询。关系代数的运算对象和运算结果都是关系,运算符号包括四种运算符:集合运算符、专门的关系运算符、算术比较符、逻辑运算符。关系代数运算包括三类运算:核心运算操作、专门的关系运算操作、辅助运算操作。

核心运算操作

  1. 并(U):两个类型一致的关系进行合并,使得新表包含原来两表所有的元素。
  2. 交(∩):两个类型一致的关系进行相交,仅有两个集合均包含的元组最终会出现在输出的集合中。
  3. 差(-):T-S的含义为,在T的集合中但不在S集合中的元组。
  4. 广义笛卡尔积( × \times ×):假设T为{ A 1 , A 2 , … … , A n A_1,A_2,……,A_n A1,A2,……,An},S为{ B 1 , B 2 , … … , B m B_1,B_2,……,B_m B1,B2,……,Bm},则T × \times ×S所得最后的解为{ ( A 1 , B 1 ) , ( A 1 , B 2 ) , … … , ( A 1 , B m ) , ( A 2 , B 1 ) , … … , ( A n , B m ) (A_1,B_1),(A_1,B_2),……,(A_1,B_m),(A_2,B_1),……,(A_n,B_m) (A1,B1),(A1,B2),……(A1,Bm),(A2B1),……,(An,Bm)}

专门的关系运算操作

专门的关系运算符包括**选择(Select)、投影(Project)、除、连接(Join)**四种操作。

  1. 选择:指选择某一行或者多行,用 σ \sigma σ来表示,例如
    σ a g e > 20 ( S ) \sigma_{age>20}(S) σage>20(S)
    指的是在S关系中,选出age的属性值大于20的所有元组。

  2. 投影:指选择某一列或者多列,用 π \pi π表示,例如
    π a g e , n a m e ( S ) \pi_{age,name}(S) πage,name(S)
    指的是在S关系中,选出age属性列与name属性列。

    注意:投影有自动去重的操作,会将选择出的重复部分仅保留一行。

  3. 连接:指的是从两个关系的笛卡尔积中,选取属性满足条件的元组,连接可分为等值连接自然连接两种。
    例如 S ⋈ S . A = T . A T S\underset{S.A=T.A}{⋈}T SS.A=T.AT将返回S与T的笛卡尔积中S.A=T.A的部分,

  4. 除:对于最终结果不为0的关系,除操作可以视为笛卡尔积的逆运算,对于关系A与B,假设存在关系A ÷ \div ÷B不为空集,则有A ÷ \div ÷B × \times ×B=A。

辅助运算操作

重命名操作:用 ρ \rho ρ表示,最一般的格式如下:
ρ R ( A 1 , A 2 , … , A n ) ( S ) \rho_{R(A_1,A_2,\dots,A_n)}(S) ρR(A1,A2,,An)(S)
意为将S的表名改为R,S的各属性名改为 ( A 1 , A 2 , … , A n ) (A_1,A_2,\dots,A_n) (A1,A2,,An)

你可能感兴趣的:(数据库,数据库,数据库架构,sql,database)