第二章--关系数据库

一、关系数据结构

  • 关系模型建立在集合代数的基础上
  • 关系数据结构的基本概念
       关系
       关系模式
       关系数据库

(一)关系

  • 域是一组具有相同数据类型的值的集合
       例:整数,实数,介于某个取值范围的整数,指定长度的字符串的集合,{“男”,“女”},介于某个取值范围的日期
  1. 笛卡尔积
       数学关系式就不说了,简单来说就是所有域的所有取值的一个集合(不能重复)
    例:D1={张青梅,刘毅},D2={计算机专业,信息专业},D3={李勇,王晨,王敏}
    笛卡尔积:D1xD2xD3={“张青梅”,“计算机专业”,“李勇”},{“张青梅”,“计算机专业”,“王晨”}等等12种组合
  • 元组:{“张青梅”,“计算机专业”,“王晨”}称为一个元组
  • 分量:其中每一个数据称为一个分量
  • 基数:就是D1有2个元素,D2有2个元素,D3有三个元素,所以基数就是2x2x3=12,即有12个元组
  • 笛卡尔积表示方法
    笛卡尔积可以表示为一个二维表,表中每行对应一个元组,表中每列对应一个域
  1. 关系
  • 关系:D1xD2x…xDn的子集叫做在域D1,D2,…,Dn上的关系,表示为R{D1,D2,…,Dn}
       其中R:关系名;n:关系的目或度
    【注】:
        关系是笛卡尔积的有限子集,无限关系在数据库系统中是无意义的
  • 关系的表示:同笛卡尔积一样
  • 属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列取一个名字,称为属性,n目关系必有n个属性
  1. 候选码:若关系中的某一属性组你能惟一的标识一个元组,则称该属性组为候选码。在最简单情况下,候选码只包含一个属性
  2. 全码:在最极端的情况下关系模式的所有属性组是这个关系模式的候选码,称为全码
  3. 主码:若一个关系有多个候选码,则选定其中一个为主码。主码的诸属性称为主属性,不包含在任何候选码中的属性称为非码属性
  • 三类关系
  1. 基本关系(基本表或基表):实际存在的表,是实际存储的逻辑表示
  2. 查询表:查询结果对应的表
  3. 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储数据
  • 基本关系的性质
  1. 列是同质的:每一个列中的分量是同一类型的数据,来自同一个域
  2. 不同的列可出自同一个域:其中每一列称为一个属性,不同的属性要给予不同的属性名
  3. 列的顺序无所谓:列的次序可以任意交换
  4. 任意两个元组不能完全相同:由笛卡尔积的性质决定,但是许多关系数据库产品没有遵循这一性质,如Oracle
  5. 行的顺序无所谓
  6. 分量必须取原子值:每一个分量都必须是不可分的数据项,这是规范条件中最基本的一条

(二)关系模式

  1. 什么是关系模式
    关系模式是对关系的描述
  2. 定义关系模式
    关系模式可以形象化的表示为:R(U,D,dom,F)
    R:关系名
    U:组成该关系的属性名集合
    D:属性组U中属性所来自的域
    dom:属性向域的映像集合
    F:属性间的数据依赖关系集合
    关系模式通常可以简记为R(A1,A2,…,An)
    R:关系名
    A1,A2:属性名
    【注】:域名及属性向域的映像常常直接说明为属性的类型,长度

(三)关系数据库

  1. 关系数据库
    在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库
  2. 关系数据库的型与值
  • 关系数据库的型:称为关系数据库模式,是对关系数据库的描述,关系数据库模式包括,若干域的定义,在这些域上定义的若干关系模式
  • 关系数据库的值:是这些关系在某一时刻内对应的关系的集合,通常简称为关系数据库
  1. 关系的三类完整性约束
  • 实体完整性:通常由关系数据库自动支持
  • 参照完整性:早期系统不支持,目前大型系统能自动支持
  • 用户定义的完整性:反映应用领域需要遵循的约束条件,体现了域中的语义约束,用户定义后由系统支持

二、关系操作

(一)基本的关系操作

  1. 常用的关系操作
  • 查询:选择、投影、连接、除、并、交、差
  • 数据更新:插入、删除、修改
  • 查询的表达能力是其中最主要部分
  1. 关系操作的特点
  • 集合操作方式,即操作对象和结果都是集合
    非关系数据模型的数据操作方式 :一次一记录

(二)关系数据库语言的分类

  1. 关系数据语言的种类
  • 关系代数语言:用对关系的运算来表达查询要求,典型代表,ISBL
  • 关系演算语言:用谓词来表达查询要求。包括元组关系演算语言与域关系演算语言
  • 具有关系的代数和关系演算双重特点的语言,典型代表:SQL
  1. 关系数据语言的特点
  • 关系语言是一种高度非过程化的语言:存储路径选择由DBMS的优化机制来完成,用户不必用循环结构就可以完成数据操作
  • 能够嵌入高级语言中使用
  • 关系代数,元组关系演算和域关系演算三种语言在表达能力上完全等价
  1. 关系模式与关系
  • 关系模式:是对关系的描述,是静态的稳定的
  • 关系:是关系模式在某一刻的状态,是动态的,随时间不断变化的,关系模式和关系往往统称为关系,通过上下文加以区别

(三)关系的完整性

  1. 实体完整性
    若属性A是基本关系R的主属性,则属性A 不能取空值
  2. 参照完整性
  • 关系间的引用
    在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在关系与关系间的引用
  • 外码
    设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码相对应,则称F是基本关系R的外码,基本关系R称为参照关系,S称为被参照关系或目标关系
  1. 用户定义的完整性
    是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求

三、关系代数

  • 概述
  1. 关系代数:一种抽象的查询语言,用对关系的运算来表达查询
  2. 关系代数运算的三要素:
    运算对象:关系;
    运算结果:关系;
    运算符:四类
       集合运算符:将关系看成元组的集合,运算是从关系的“水平”方向即行的角度来进行。
    包括并,差,交,广义笛卡尔积
       专门的关系运算符:不仅涉及行而且涉及列。
    包括选择,投影,连接,除
       算数比较符:辅助专门的关系运算符进行操作
       逻辑运算符:辅助专门的关系运算符进行操作
  • 传统的集合运算
       :属于R或属于S
       :R-S由属于R而不属于S 的元组组成
       :既属于R也属于S的元组组成
    【注】:以上三个需要列数一样,对应属性相同
       广义笛卡尔积:R:n目关系k1个元组;S:m目关系k2个元组。RxS:n+m列,k1xk2个元组
  • 专门的关系运算
       选择:在关系R中选择满足条件的诸元组
       投影:从R中选出若干属性列组成新的关系
       连接:从两个关系的笛卡尔积中选择属性间满足一定条件的元组。其中自然连接需要取消重复列。
       象集:通俗来说呢,就是一个关系R{X,Z},把X里面的一个固定值拿出来,看Z里面呢与其对应的元组属性,他们的集合就是象集。
       除法,关系R{X,Y},S{Y,Z},其中X=x的象集包含S在Y上投影的集合,那么R/S=x
    【注】:基本运算有:并,交,笛卡尔积,投影,选择
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值