数据库系统原理-关系代数

数据库系统原理-关系代数

目录

  • 数据库系统原理-关系代数
    • 在文件处理系统中存储组织信息的主要弊端
    • 三级模式两级映射
    • 独立性
      • 物理数据逻辑性
      • 逻辑数据逻辑性
    • 关系
      • 关系
      • 关系模式和关系实例
        • 关系模式描述关系的结构
        • 关系实例
        • 关系、关系模式、关系实例区别
        • 关系的无序性
      • 码(键)
        • 超码
        • 候选码
        • 主键
        • 外键
    • 关系代数
      • 六个基本运算
      • 附加运算
      • 选择运算
      • 投影运算
      • 并运算
      • 差运算
      • 笛卡尔积
      • 复合运算
      • 更名运算
      • 交运算
      • 自然连接
      • theta连接
      • 除运算
      • 赋值运算
    • 关系代数总结

在文件处理系统中存储组织信息的主要弊端

  • 数据冗余和不一致

-多种文件格式(txt/json)、信息重复存储

  • 数据访问困难

-需要编写一个新的程序来完成一个新的任务

  • 数据孤立

-无文件关联、多文件多格式、检索、共享数据困难

  • 完整性问题

-完整性约束(如账户余额>0)成为程序代码的一部分

-增加新的约束或更改现有的约束比较麻烦

  • 原子性问题

-在进行部分数据更新时、一旦发生故障,可能导致数据库处于不一致的状态

  • 并发访问异常

-不受控制的并发访问可能导致数据不一致

-例如:两个用户读取同一账号余额,并在同一时间更新它

  • 安全性问题

-用户权限问题

三级模式两级映射

数据库系统原理-关系代数_第1张图片

独立性

物理数据逻辑性

经过三级模式两级映射,便有了修改物理结构而不需要改变逻辑结构的能力,体现在

  • 应用程序依赖于逻辑结构

  • 应用程序独立于数据的结构和存储

    逻辑数据逻辑性

数据逻辑结构的改变不影响应用程序,体现在

  • 逻辑数据独立性一般难以实现,因为应用程序严重依赖于数据的逻辑结构

关系

关系

数据库系统原理-关系代数_第2张图片

例子:A={张教授,刘教授} B={计算机,软件工程}

这样,C={张教授,计算机}是一个关系

关系是所有笛卡尔积的集合,也可以说,关系是张表(无数据)

关系模式和关系实例

关系模式描述关系的结构

Instructor-schema = (ID: string, name: string, dept_name: string,

salary: int)

关系实例

表示一个关系的特定实例、也就是包含一组特定的行,也可以说,关系实例就是有数据的表

关系、关系模式、关系实例区别

拿程序设计语言来举例

关系—>变量

关系模式–>变量类型

关系实例–>变量值

数据库系统原理-关系代数_第3张图片

关系的无序性

元组的顺序性是无关紧要的(元组能够以任意顺序存储),但一个关系中不能有重复的元组

码(键)

超码

数据库系统原理-关系代数_第4张图片

K表示属性

(学号)(身份证号)(学号+身份证号)都可以表示超码

候选码

学号、身份证号单独算作候选码

主键

如果k是一个候选码,并且由用户明确定义、则K是一个主键、主键通常用下划线标记

外键

假设存在关系r和s:r(A, B, C), s(B, D),则在关系r上的属性B称作参

照s的外码,r也称为外码依赖的参照关系,s叫做外码被参照关系

关系代数

事实上我们在应用数据库的过程中可能并不会考虑到关系代数这一层面,都是使用应用级别的sql语句进行数据库操作,而关系代数在我的理解中就是我们sql语句背后的执行逻辑,作为软工科班学生我认为有必要了解清楚

六个基本运算

  • select选择
  • project投影
  • union并
  • set difference差
  • cartesian product笛卡尔积
  • rename重命名

附加运算

  • set intersection交
  • natural join 自然连接
  • division除
  • assignment赋值

选择运算

数据库系统原理-关系代数_第5张图片

数据库系统原理-关系代数_第6张图片

​ 关系r

注意:

  • 执行选择时,选择条件必须是针对**同一元组(同一行)**中的相应属性值带入进行比较

t表示被选择的元组

数据库系统原理-关系代数_第7张图片

投影运算

数据库系统原理-关系代数_第8张图片

数据库系统原理-关系代数_第9张图片

数据库系统原理-关系代数_第10张图片

可以说,选择目标是行、投影目标是列

并运算

数据库系统原理-关系代数_第11张图片

数据库系统原理-关系代数_第12张图片

投影instructor的name列 并上 投影student的name列

差运算

数据库系统原理-关系代数_第13张图片

数据库系统原理-关系代数_第14张图片

笛卡尔积

数据库系统原理-关系代数_第15张图片

数据库系统原理-关系代数_第16张图片

  • 如果产生交集

数据库系统原理-关系代数_第17张图片

复合运算

数据库系统原理-关系代数_第18张图片

在笛卡尔积上进行选择运算

更名运算

数据库系统原理-关系代数_第19张图片

交运算

数据库系统原理-关系代数_第20张图片

数据库系统原理-关系代数_第21张图片

自然连接

数据库系统原理-关系代数_第22张图片

数据库系统原理-关系代数_第23张图片

theta连接

数据库系统原理-关系代数_第24张图片

除运算

数据库系统原理-关系代数_第25张图片

数据库系统原理-关系代数_第26张图片

赋值运算

数据库系统原理-关系代数_第27张图片

关系代数总结

  • 并、差、交为双目、等元运算
  • 笛卡尔积、自然连接、除–>为双目(双目就是涉及两个关系)运算
  • 投影、选择为单运算对象
  • 关系运算的优先级
    • 投影
    • 选择
    • 笛卡尔积
    • 连接、除
    • 并、差

你可能感兴趣的:(数据库)