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

本文探讨了数据库系统原理,重点关注关系代数。文章指出文件处理系统的弊端,如数据冗余、访问困难、数据孤立和完整性问题。接着介绍了数据库的三级模式和两级映射,以及物理数据和逻辑数据的独立性。接着详细阐述了关系的概念,包括关系模式、关系实例和关系的无序性。此外,还讲解了码(键)的类型,如超码、候选码和主键。最后,详细解析了关系代数的各种运算,如选择、投影、并、差、笛卡尔积等,帮助读者理解数据库操作的基础理论。

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

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

  • 数据冗余和不一致

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

  • 数据访问困难

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

  • 数据孤立

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

  • 完整性问题

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

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

  • 原子性问题

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

  • 并发访问异常

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

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

  • 安全性问题

-用户权限问题

三级模式两级映射

独立性

物理数据逻辑性

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

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

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

    逻辑数据逻辑性

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

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

关系

关系

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

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

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

关系模式和关系实例

关系模式描述关系的结构

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

salary: int)

关系实例

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

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

拿程序设计语言来举例

关系—>变量

关系模式–>变量类型

关系实例–>变量值

关系的无序性

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

码(键)

超码

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赋值

选择运算

​ 关系r

注意:

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

t表示被选择的元组

投影运算

- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G37J6Jyr-1573969745418)(C:\Users\JunSIr\AppData\Roaming\Typora\typora-user-images\image-20191117023747186.png)]

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

并运算

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

差运算

笛卡尔积

在这里插入图片描述

  • 如果产生交集

在这里插入图片描述

复合运算

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

更名运算

交运算

自然连接

theta连接

除运算

赋值运算

关系代数总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值