关系数据库

关系数据模型

关系是一个数学概念。
当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。

关系的数学定义

例:

课程={离散,C语言…..},学生={张三,李四…..}

笛卡儿积(cartesian product):设D1、…、Dn是n个域。D1、…、Dn上的笛卡尔乘积定义为集合
D1×…×Dn ={ (d1 , …, dn ) | di ∈Di,1≤i≤n }。

解:

D1={离散,C语言…},D2={张三,李四…}
D1×D2={(离散,张三),(离散,李四),……(C语言,张三),(C语言,李四),………….}

关系(relation):笛卡尔乘积D1×…×Dn的任意一个子集合称为一个定义在域D1、…、Dn上的关系。

对数学定义的限定和扩充

限定:无限关系在数据库系统中是无意义的。因此限定关系数据模型中的关系必须是有限集合。

数学上,(离散,张三)≠(张三,离散)
扩充:通过为关系的每个域附加一个属性名的方法取消关系元组的有序性
数据库上:(离散,张三)=(张三,离散)

基本关系具有以下六条性质:

  • 列是同质的,即每一列中的分量是同一类型的数据;
  • 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性必须给不同的属性名;
  • 列的顺序可任意交换;
  • 任意两个元组不能完全相同;
  • 行的顺序可任意交换;
  • 分量必须取原子值,即每一个分量都必须是不可分的数据项。

完整性约束规则

几个基本概念

  • 候选键:给定关系模式R(U),K属于U,如果
    (1) R(U)的任何关系实例中的任意两个元组在属性集合K上的值都不相同----唯一性
    (2) K的任何真子集都不满足条件(1)----极小性
    称K是候选键。
    例:Student(姓名, 学生编号, 年级, 专业, 系)
    显然,学生编号是候选键。
    如果姓名不重复,姓名也是候选键。

  • 主键:一个关系模式可能具有多个候选键。
    当一个关系中具有多个候选键时,我们选择一个作为该关系模式的主键。
    候选键中的属性称为键(主)属性,其他属性称为非键(主)属性

  • 外部键:设X是关系模式R(U)的一个属性集合。如果X是另一个关系模式R’(U’)的主键,则称X是R(U)关于R’(U’)的外部键。
    例:外部键

关联完整性约束说明,任何关系的一个元组只能通过外部键与另一个关系中存在的元组相关联.


关系运算

  • 基于代数的定义:关系代数
  • 基于逻辑的定义:关系演算
    由于使用变量的不同,关系演算又分为元组关系演算和域关系演算。

关系代数

例: 两个关系实例

(1.) 并运算

设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的并操作定义为 R∪S = { t | t∈R∨t∈S }。
白话: R和S关系合一起, 相同的不写

(2.) 差操作

设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的差定义为 R-S ={ t | t∈R∧tS}。
白话: 因为是R-S, 找R在S关系中没有的

(3.) 笛卡尔乘积

设R是n元关系,S是m元关系,R和S的的笛卡尔积定义为
R×S={(r1,…,rn,s1,…,sm)|(r1,…, rn )∈R∧(s1, …,sm )∈S}。
白话: 和普通的笛卡尔乘机差不多, 自己看看, 规律很好找.

(4. ) 投影操作

设R是一个n元关系,R的投影操作定义为
∏i1,i2,…,im(R) = {(ri1, …,rim)|(r1 ,…,ri1,…,rim,…,rn)∈R}。
白话: 看横行, 如果有两个横行相同, 只写一个. 因此若是S关系投影操作的话, 也就是有b和a

(5. ) 选择操作

设R是一个n元关系,F是一个形如riθc的公式,其中θ∈{=,≠,>,<,≤,≥},R的选择操作定义为F(R)={(r1,…,ri ,…,rn )|(r1,…,ri ,…,rn )∈R∧riθc }。
白话: 把符合条件的拿出来

(6. ) 交操作

设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的交操作定义为 R  S = { t | t∈R∧t∈S }= R-(R-S)。
白话: 相同的拿出来

(7. ) 连接操作

设R是n元关系,S是m元关系,A是R的属性,B是S的属性,A和B的值域具有相同的数据类型,θ∈{=, ≠, >, <, ≤, ≥}。R和S的连接操作定义为

其中,r[A]表示元组r在属性A上的值,s[B]表示元组s在属性B上的值。我们称A和B是连接属性。

白话: 两个关系先做笛卡尔积运算, 然后再根据条件进行比对. 留下符合条件的
例子:

(7. 1) 几个特殊的连接操作

①自然连接 设Att(R)和Att(S)分别是R和S的属性集合。连接条件为R.B=S.B,连接的结果关系的属性集合为Att(R)∪(Att(S)-{B}),即B在结果关系中只出现一次。称这样的连接操作为自然连接操作,

白话: 找相同的然后拼在一起, 例如B属性, 看看下面的例子;

②复合连接 类似于自然连接,只是连接结果不包含连接属性。

③半连接

白话: 下面的例子由于是R半链接S, 则因此拿R去和S所比较

(8. ) 商操作

设R和S是两个关系,Z是R的属性集合,X是S的属性集合,XZ,Y=Z-X。R除以S的商定义为R÷S={t|t∏Y(R)且sS, tsR},其中,ts表示由t和s的各属性值构成的一个R关系元组。

白话: 看下面的例子, 因为C, D是关系S中的两个属性, 因此在R集合对除了C, D的属性, 即A, B两属性进行投影, 得到a, b; b, c; e, d;这三组, 然后用这个结果与关系S进行笛卡尔积运算, 发现b c c d这组在关系R中没有, 其余a, b; e, d; 做的运算在R中存在. 因此最后结果为a, b; e, d;


关系代数运算例题

一个COMPANY数据库

下面介绍了一些需要用到的属性解释

NAME--员工名字
SSN--员工编号
SUPERSSN--上司编号
DNO--部门编号DNUMBER--部门编号
MGRSSN--负责人编号PNAME--项目名称
PNUMBER--项目编号ESSN--员工编号
PNO--项目编号

问1: 参加了p2项目的员工号(由于符号不太好打, 我手写的)

语言解释: 在WORKS_ON表中选择PNO=P2的元组, 再对员工号即ESSN进行投影.

问2. 在“研发部”工作的所有工作人员名字

语言解释: 1. EMPLOYEE表与DEPARTMENT表在部门编号相等的条件下, 进行连接, 然后再新表中选择DNAME=”研发部”, 最后对NAME进行投影.
2 . 先在DEPARTMENT中选择”研发部”, 然后与EMPLOYEE进行连接, 然后投影

问3. 没有参加项目p1的工作人员名字

语言解释: 在WORKS_ON中选择P1项目, 与EMPLOYEE进行连接, 然后对NAME进行投影得到参加p1工作人员的名字, 最后用所有的名字减去它.

数据库基础---关系数据库简介和关系代数8种运算方法及例题相关推荐

  1. MySQL数据库基础(简介、操作规范、基本指令)

    文章目录 一.数据库简介 1.数据库 2.数据库管理系统 3.MySQL简介 4.MySQL的下载安装 5.skip-grant-tables无效解决方案 二.MySQL对库指令 1.启动.查看.设置 ...

  2. 傻瓜攻略(八)——MATLAB实现模糊综合评判(两种运算方法)

    模糊综合评判法 模糊综合评价法是一种基于模糊数学(fuzzy mathematics)的综合评价方法.该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物 ...

  3. 数据库------绪论+关系数据库及其运算基础

    绪论 1 数据库系统概述:DB.DBS.DBMS.数据管理技术的发展 2 数据库系统的结构 3 数据库系统的组成:三级体系结构.两层映象.数据独立性 4信息.数据.数据处理与数据管理的基本概念: 5数 ...

  4. [数据库基础篇]——关系数据库

    目录 一.关系数据结构 1.域 2.笛卡儿积 3.关系 4.关系模式 5.关系数据库 二.关系操作 三.关系的完整性约束 1.实体完整性 2.参照完整性 3.用户定义的完整性 四.关系代数 1.数据库 ...

  5. 数据库基础(基本概念、关系数据库、数据库标准语言SQL)

    数据库基础 绪论 数据库系统概述 4个基本概念 数据(data) 定义:描述事物的符号.数据的含义称为数据的雨衣,数据与其语义是密不可分的. 数据库(DataBase,DB) 定义:数据库是长期存储在 ...

  6. 【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(3) 数据定义

    本文属于「数据库系统」系列文章之一,这一系列着重于「数据库系统知识的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏数据库系统系列文章汇总目录一文以作备忘.需要特别说明的是,为了透彻理解 ...

  7. MySQL 数据库基础(一)(数据库的简介)

    文章目录 前言 一.数据库的基本概念 1. 数据(Data) 2.数据库表与和数据库(DB) 3.数据库管理系统(DBMS) 4.数据库系统(DBS) 二.数据库发展史 1.初级阶段--第一代数据库 ...

  8. 【数据库基础】 几种基本的关系代数运算方法

    关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具.1 目录 基本的关系代数算法 传统的集合运算 并 ∪\cup∪ 交 ∩\cap∩ 差 −-− 笛卡尔积(广义) ...

  9. 软考 程序员教程-第三章 数据库基础知识

    软考 程序员教程-第三章 数据库基础知识 第三章 数据库基础知识 3.1 基本概念 数据库系统(DataBase System,DBS)由数据库(DataBase,DB).硬件.软件和人员4大部分组成 ...

最新文章

  1. 电磁学讲义6:高斯定理计算电场
  2. 解决更新到os x10.11后openssl头文件无法找到的问题
  3. spring boot 批量更新数据
  4. Apache Kafka-通过concurrency实现并发消费
  5. 【PAT乙级】1013 数素数 (20 分)
  6. [翻译]Triggerless design.md
  7. 前端学习(2432):上午总结
  8. 掌握基本的git命令,将本地文件上传到gitee
  9. 计算机access预测题,2016计算机二级《Access》考试预测题及答案
  10. java项目响应慢_java-项目运行缓慢
  11. paip.为什么软件体积越来越大
  12. 【Simscape】用Simscape实现三维物理仿真(三)——创建一个滑块单摆系统
  13. 学编程考计算机二级,如何通过计算机一、二级考试?方法很重要,过来人的经验告诉你...
  14. minus 如何实现不去重效果
  15. 编程大佬行为准则:一杯茶一包烟,一行代码写一天
  16. SCSI与USB的关系
  17. 图解图库JanusGraph系列-一文知晓“图数据“底层存储结构(JanusGraph data model)
  18. keras入门教程 1.线性回归建模(快速入门)
  19. css制作3D立体旋转效果
  20. 仿flash滚动播放图片

热门文章

  1. 在美国地铁里的一个实验:平凡的地方能否感知美 (ZZ)
  2. Android常用的网络框架
  3. 羊皮卷-羊皮卷之十(世界上最伟大的推销员)
  4. fastadmin 子级菜单展开合并,分类父级归纳
  5. 韶音和南卡那个好,韶音AS800跟南卡runner pro3对比
  6. pythonyaml参数_Python yaml
  7. 二进制与、或、异或运算法则
  8. SDCC 2017·上海站之互联网应用架构实战峰会讲师和议题全曝光
  9. 【紧急】湖北省8月将大力推进落实化工厂人员定位、电子作业票等双防措施
  10. 科学院计算机所张金宝,生科学院考试时间表