【数据库】二、关系数据库

embedded/2025/1/12 10:52:01/

文章目录

二、关系数据库

1 关系

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

笛卡尔积:所有域(域可相同)中所有取值的组合

例如:D1={1,2,3},D2={A,b},那么D1与D2的笛卡尔积:
D1×D2={(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}

  • 元组:笛卡尔积中的每一个元素称为一个元组
  • 分量:笛卡尔积元素的每一个值叫做一个分量
  • 基数:两个集合的元素个数乘积
  • 注:笛卡尔积不满足交换律,即 D1×D2≠D2×D1

关系:笛卡尔积D1×D2的子集叫做在D1、D2上的关系,表示为R(D1,D2)

  • R代表关系名。关系是一个二维表
  • 每行对于一个元组,每列对应一个域
  • 由于域可以相同,所以每列取一个名字加以区分,称为属性
  • 因为有了属性,因而取消了关系元组的有序性,即关系满足交换律(顺序交换了可由列名来区分,而不依赖于顺序来区分)

一般来说,域的笛卡尔积无意义,从中取出有实际意义的元组才能构成关系。

更严格说,关系是笛卡尔积的有限子集,无限关系在数据库中是无意义的。

候选码:能唯一标识关系中一个元组的某一属性组

  • 候选码可有多个;选定一个为主码
  • 候选码的诸属性称为主属性,不存在于任何候选码的属性称为非主属性

关系的性质

  1. 每个属性必须不可区分(基本要求)
  2. 表中各列取自同一个域。不同列可以来自同一域。
  3. 列的次序可以交换,不影响实际意义
  4. 不允许出现完全相同的两行。行的顺序也不重要。

关系模式:关系模式是对关系的描述。

  • 关系模式是型,静态。关系是值,动态的。
  • 关系模式可以表示为R(U,D,DOM,F)
    • R为关系名
    • U为组成该关系的属性名集合
    • D为属性组U中属性所来自的域
    • DOM为属性向域的映像集合
    • F为属性间数据的依赖关系集合

关系操作的对象和结果都是集合


2 关系数据库

关系数据库:建立在关系模型基础上的数据库

关系数据库的型:数据库的描述。包括若干域上定义关系模式

关系数据库的值:这些关系模式在某一时刻对应的关系集合

关系数据库的操作

  • 查询:连接、投影、并、差、笛卡尔积
  • 数据更新:插入、删除、修改
  • 特点:操作的对象和结果都是集合,一次一集合的方式

3 完整性约束

实体完整性

  • 关系模式中以主码作为唯一标识,主码中的属性即所有主属性都不能取空值

参照完整性

  • 实体和实体间的联系用关系来描述,关系和关系间也存在引用
  • 外码:是本关系的一个或一组属性,但不是本关系的码,外码是另一个关系的主码。虽然外码不是本关系的码,但多个外码可以组成本关系的主码
  • 参照完整性规则:本关系的外码或者取空值,或者等于目标关系的某个主码值。如果多个外码构成本关系的主码,则本关系的外码只能取对应目标关系的主码值。

用户自定义完整性:争对具体的应用环境,给出关系数据库的约束条件,反映具体应用设计数据库必须满足的语句要求

  • 包括:
  • 唯一值约束(UNIQUE
  • 非空值约束(NOT NULL
  • 检查约束(CHECK),例如只能取{男,女}
  • 缺省值约束(DEFAULT),也就是默认值

4 关系运算

传统的:并,交,差,广义笛卡尔积

注:并交差运算的属性个数必须相同

五种基本的关系运算:并、差、笛卡尔积、投影、选择。其他的是衍生出来的。

几个记号

  • 分量:

  • 分量的集合:

    image-20250106153033756

  • 元组的连串:

    image-20250106153114178

  • 象集:

    image-20250106153205939

1. 选择运算

实质是从关系从选择满足条件的元组。

例子:查询信息管理专业的女生: σ M a j o r = ′ m i s ′ ∧ G e n d e r = ′ 女 ′ ( S t u d e n t ) \sigma_{Major='mis' ∧Gender='女'}(Student) σMajor=misGender=(Student)

2. 投影运算

从关系中选择出若干属性列组成新的关系

例子:查询商品的价格和名称: π G o o d s N a m e , S a l e P r i c e ( G o o d s ) \pi _{GoodsName,SalePrice}(Goods) πGoodsName,SalePrice(Goods)

3. 连接运算

θ θ θ连接

  1. 笛卡尔积,求R×S
  2. 选择R中属性A和S中属性B满足条件的元组组成新的关系

A和B是关系R和S中度数相等且可比 的 属性组

image-20250106154710271

等值连接

  1. 笛卡尔积,求R×S
  2. 选择R中属性A和S中属性B相等的元组组成新的关系

image-20250106155043035

自然连接

  1. 笛卡尔积,求R×S
  2. 选择R中属性A和S中属性B相等的元组组成新的关系
  3. 在新关系中去掉重复的属性列

其实就是特殊的等值连接

1736150115332

4. 除运算(表达查询)

R ÷ S R÷S R÷S得P(X),由R中某些X属性构成,这些属性满足:

元组在X上分量值x得象集 Y x Y_x Yx包含S在Y上投影的集合。

(看不懂,直接看例子好了)

image-20250106160217799

实例:

image-20250106160811228

理解:“某个属性对应的另一个属性的象级,这个象级和另一个关系的在某个属性上的投影相等”。

看到题目中出现“全部”时用除运算。找出含某个属性所有可能取值的元素


http://www.ppmy.cn/embedded/153264.html

相关文章

基于 Boost.Asio 和 Boost.Beast 的异步 HTTP 服务器(学习记录)

已完成功能: 支持 GET 和 POST 请求的路由与回调处理。 解析URL请求。 单例模式 管理核心业务逻辑。 异步 I/O 技术和 定时器 控制超时。 通过回调函数注册机制,可以灵活地为不同的 URL 路由注册处理函数。 1. 项目背景 1.1 项目简介 本项目是一个基于…

【华为OD-E卷 - 求字符串中所有整数的最小和 100分(python、java、c++、js、c)】

【华为OD-E卷 - 求字符串中所有整数的最小和 100分(python、java、c、js、c)】 题目 输入字符串s,输出s中包含所有整数的最小和。 说明: 字符串s,只包含 a-z A-Z 合法的整数包括 1)正整数:一…

深入浅出Java Web开放平台:从API设计到安全保障的全方位探索

随着互联网的快速发展,越来越多的企业开始构建开放平台,特别是在Java Web开发中,如何实现高效的开放平台接口,保障系统的安全性,并且提升开发者的体验,已经成为了很多开发者关注的热点话题。本文将深入探讨…

macbook使用 pip 安装 pyicu 报错

1、问题分析 当使用ragflow等开源工具进行二次开发时,在安装基础项目依赖,需要使用到很多系统中的基础库,时常会报错,今天遇到的问题是 pyicu 包安装时报错。 基本问题分析,安装 pyicu 时,需要使用系统中…

centos 搭建nginx+配置域名+windows访问

准备工作:一个完整的centos环境,nginx安装包(可以从官网下载)nginx: download 一:centos可能有精简版,部分环境没有相关依赖包, 需要检查以下项: 1.gcc检查:gcc -v(回车后应当有版…

OpenCV基于均值漂移算法(pyrMeanShiftFiltering)的水彩画特效

1、均值漂移算法原理 pyrMeanShiftFiltering算法结合了均值迁移(Mean Shift)算法和图像金字塔(Image Pyramid)的概念,用于图像分割和平滑处理。以下是该算法的详细原理: 1.1 、均值迁移(Mean …

React面试常见题目

在前端面试中,React 是一个非常重要的知识点,面试题目往往涵盖基础概念和高级应用。以下是常见的面试题目以及进阶题目的整理和详解。 一、基础题目 1. React 的核心概念 问:React 的生命周期有哪些?如何在函数组件中使用&#…

vue实现淘宝web端,装饰淘宝店铺APP,以及后端设计成能快速响应前端APP

一、前端实现 实现一个类似于淘宝店铺的装饰应用(APP)是一个复杂的任务,涉及到前端界面设计、拖放功能、模块化组件、数据管理等多个方面。为了简化这个过程,我们可以创建一个基本的 Vue 3 应用,允许用户通过拖放来添…