关系数据库

  • 笔记目录
  • 关系模型
    • 关系数据结构
    • 关系
  • 关系模式
  • 关系的三类完整性
    • 实体元整性(Entity Integrity)
    • 参照完整性
    • 用户定义的完整性
  • 关系代数
    • 关系代数运算符
    • 传统的集合运算
      • 并(Union)∪\cup∪
      • 差(Difference)−-−
      • 交(Intersection)∩\cap∩
      • 笛卡尔积 ×\times×
    • 专门的集合运算
      • 选择 σ\sigmaσ
      • 投影 ⊓\sqcap⊓
      • 连接 ⋈⋈⋈
        • 等值连接
        • 自然连接
        • 等值与自然连接例题
        • 悬浮元组
        • 外连接
      • 除运算 ÷\div÷
        • 除运算例题
  • 小结
  • 课后作业
  • 课后作业答案

笔记目录

更多内容可以查看笔记目录

关系模型

关系数据结构

单一的数据结构 ---- 关系
现实世界的实体以及实体间的各种联系均用关系来表示

是一组具有相同数据类型的值的集合。例:

  • 整数
  • 实数
  • 介于某个取值范围的整数
  • 指定长度的字符串集合
  • {男’,‘女’}

关系

关系

  • D1×D2×.…×DnD_1×D_2×.…×D_nD1​×D2​×.…×Dn​ 的子集叫作在域 D1,D2,…,DnD_1,D_2,…,D_nD1​,D2​,…,Dn​ 上的关系,表示为 R(D1,D2…,Dn)R(D1,D2…,Dn)R(D1,D2…,Dn)
    R:关系名
    n:关系的目或度(Degree)

元组

  • 关系中的每个元素 (d1,d2,…,dn)(d_1,d_2,…,d_n)(d1​,d2​,…,dn​) 叫作一个 n元组(n-tuple) 或简称元组,通常用 t 表示。

属性

  • 关系中不同列称为属性(Attribute),每个属性有一个名字
  • n目关系必有n个属性

  • 候选码(Candidate key)
    若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码
    简单的情况:候选码只包含一个属性

  • 全码(All-key)
    最极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码

  • 主码
    若一个关系有多个候选码,则选定其中一个为主码(Primary key)

  • 主属性
    主属性是指包含在候选码中的属性。
    不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或
    非码属性(Non-key attribute)

单元关系与二元关系

  • 当 n=1 时,称该关系为单元关系(Unary relation)或一元关系
  • 当 n=2 时,称该关系为二元关系(Binary relation)

关系模式

关系模式(Relation Schema)是型、关系是值
关系模式是对关系的描述

  • 元组集合的结构

    • 属性构成
    • 属性来自的域
    • 属性与域之间的映象关系
  • 完整性约束条件

关系的三类完整性

实体元整性(Entity Integrity)

  • 关系中元组在组成主码的属性上不能有空值
  • 每个关系都应有一个主码
  • 每个元组的主码的值应当唯一
  • 主属性不为 NULL
  • 空值就是“不知道”或“不存在”或“无意义”的值

参照完整性

  • 在关系模型中存在着关系与关系间的引用
  • 外码(Foreign Key)

例 2.1 :


学生关系中每个元组的“专业号”属性只取两类值:
(1)空值,表示尚未给该学生分配专业
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业


例 2.2 :

选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值:
(1)选修关系中的主属性,不能取空值
(2)只能取相应被参照关系中已经存在的主码值


例 2.3 :


学生(学号,姓名,性别,专业号,年龄,班长)
“班长”属性值可以取两类值:
(1)空值,表示该学生所在班级尚未选出班长
(2)非空值,该值必须是本关系中某个元组的学号值

用户定义的完整性

  • 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
  • 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能

例:
课程(课程号,课程名,学分)

  • “课程号” 属性必须取唯一值
  • 非主属性 “课程名” 也不能取空值
  • “学分” 属性只能取值 {1,2,3,4}

关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询

  • 运算对象是关系
  • 运算结果亦为关系
  • 关系代数的运算符有两类:
    集合运算符
    专门的关系运算符

关系代数运算符

传统的集合运算

并(Union)∪\cup∪

差(Difference)−-−

交(Intersection)∩\cap∩

笛卡尔积 ×\times×

例如,给出 3 个域:

  • D1 = 导师集合SUPERVISOR = {张清玫,刘逸}
  • D2 = 专业集合SPECIALITY = {计算机专业,信息专业}
  • D3 = 研究生集合POSTGRADUATE = {李勇,刘晨,王敏}

D1,D2,D3的笛卡尔积为:

专门的集合运算

首先给出三张表:学生关系Student、课程关系Course、选修关系SC

  • 学生关系 Student
  • 课程关系 Course
  • 选修关系 SC

选择 σ\sigmaσ




投影 ⊓\sqcap⊓



连接 ⋈⋈⋈

等值连接

自然连接



等值与自然连接例题

例:给出关系 R 和关系S 的表:


悬浮元组

两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组。

外连接


除运算 ÷\div÷



除运算例题

解:

小结

关系数据库系统是目前使用最广泛的数据库系统

关系数据库系统与非关系数据库系统的区别:

  • 关系系统只有 “表” 这一种数据结构
  • 非关系数据库系统还有其他数据结构


课后作业

设有一个 SPJ 数据库,包括 S、P、J 及 SPJ 4 个关系模式:
S(SNO, SNAME, STATUS, CITY);
P(PNO, PNAME, COLOR, WEIGHT);
J(JNO, JNAME, CITY);
SPJ(SNO, PNO, JNO, QTY)。
供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表 J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表 SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为 QTY。

试用关系代数、ALPHA语言、QBE语言完成如下查询:
(1)求供应工程 J1 零件的供应商号码 SNO;
(2)求供应工程 J1 零件Pl的供应商号码 SNO;
(3)求供应工程 J1 零件为红色的供应商号码 SNO;
(4)求没有使用天津供应商生产的红色零件的工程号 JNO;
(5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO。

解:

课后作业答案

(1)(2)(3)没有问题。
(4)第一个式子写成 SPJ 或 J 都行。
(5)错了。

【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)相关推荐

  1. 关系数据模型、基本概念、关系模型的基本术语、关系代数

    关系数据模型 关系数据模型 关系模型由关系模型的数据结构.关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素. 数据结构 关系数据模型源于数学,它用二维表来组织数据,而 ...

  2. 从需求出发来看关系模型与非关系模型–关系模型与非关系模型概述

    自从NoSQL概念横空出世,关系数据库似乎就成了众矢之的,似乎一夜之间,关系数据库和SQL就成了低效,高成本,速度慢的数据处理模式的代名词.在很多地方都能看到类似:"我的项目初创,应该选择什 ...

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

    关系数据库 关系数据模型 关系是一个数学概念. 当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充. 关系的数学定义 例: 课程={离散,C语言-..},学生={张三,李四 ...

  4. (2.2)关系模型之基本关系代数运算

    文章目录 1.关系代数 2.基本关系代数运算:选择 3.基本关系代数运算:投影 4.基本关系代数运算:并运算 5.基本关系代数运算:集合差运算 6.笛卡尔积运算 7.更名 1.关系代数 可以用代数.逻 ...

  5. 数据库中的各种定义,关系、关系模式、关系模型……

    原文指路:关系.关系模式.关系模型blablabla- 数据:数据就是数据库中存储的基本数据,比如学生的学号.学生的班级 数据库:存放数据的仓库 数据库管理系统:数据库软件,如MySQL.Oracle ...

  6. 数据库 2.关系模型

    2. 关系模型 2.1 关系结构与约束 关系是使用最广泛的逻辑数据模型. 关系模型涉及:关系结构.关系操作.完整性约束. 关系数据库用一系列表来表达数据以及这些数据之间的联系 列:每个列有个列首,也称 ...

  7. 第2章 数据库关系模型---数据库原理及应用

    目录 第2章        数据库关系模型 本章要求: 1.关系模型的基本概念 关系数据模型-现有主流DBMS支持的逻辑模型 域(Domain):相同数据类型的集合 关系模式:关系名和属性 关系实例: ...

  8. 数据库 ---- 关系模型

    在关系模型中,操作的对象和结果都是二维表,关系模型是目前最流行的数据库模型.支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据库管理系统. 1.基本术语 (1)关系(Re ...

  9. 数据库MySQL关系模型之基本概念

    1.什么是关系模型 1.1关系模型研究什么 一个关系(relation)就是一个Table 关系模型就是处理Table的,它由三个部分组成: 描述DB各种数据的基本结构形式(Table/Relatio ...

  10. 数据库三种概念模型——层次模型,网状模型,关系模型的优缺点总结

    层次模型 优点: 数据结构简单清晰. 因为记录之间的联系用有向边表示,这种联系在DBMS中通常使用指针实现,查询效率高.层次模型数据库性能优于关系数据库,不低于网状数据库. 提供了良好的完整性支持.进 ...

最新文章

  1. Java获取数据库表的字段信息,及如何将ResultSet转为json
  2. 循环神经网络:RNN、LSTM、GRU、BPTT
  3. 前端开发工程师养成记
  4. java 检测硬盘原理_深入Java核心 Java内存分配原理精讲
  5. 编写高性能的C#代码(三)使用SPAN
  6. 简单多边形三角化(暴力)
  7. 阿里云人脸识别sdk
  8. 【转】程序在内存中的分布
  9. Python借助百度搜索引擎爬取Python小屋密切相关文章
  10. 微软反向 RDP 漏洞补丁不当,第三方 RDP 客户端易受攻击
  11. Redis 概述、Win 10 下载安装、redis.conf 配置文件详解
  12. Batch, Iteration,Epoch概念理解
  13. svn 删除本地和远程仓库上的文件
  14. 最常用高频汉字前4000
  15. 达梦共享存储集群DMDSC-2节点部署手册
  16. 大学英语综合教程二 Unit 7 课文内容英译中 中英翻译
  17. #深度解析# GAN(生成对抗神经网络)
  18. 内存分配方式及内存碎片
  19. 华为手机怎么录屏?十分简单,轻松学会
  20. GD32报错Feature(s) : RDI, FlashBP, FlashDL, JFlash, GDB

热门文章

  1. 怎么样辨别穷人跟有钱人?
  2. go实现本地文件搜索引擎
  3. SQL Server中的动态数据屏蔽
  4. 10个最重要SQL Server事务日志神话
  5. aws cli 使用_学习AWS CLI –使用AWS CLI探索IAM用户,角色,策略
  6. kuberneters dashboard认证及分级授权
  7. 【POJ2411】Mondriaan's Dream
  8. 学习NSURLSession(1)
  9. 【学习笔记】OSG 基本几何图元
  10. 华为内部狂转好文:有关大数据,看这一篇就够了