数据库系统理论——关系数据库

news2024/10/6 20:27:55

文章目录

  • 一、关系(数据结构)
    • 1、概述
    • 2、名词解释
    • 3、关系模式、关系数据库、关系数据库模式
    • 4、基本关系的性质
  • 二、关系操作(数据操作)
  • 三、关系的完整性
    • 1、实体完整性
    • 2 、参照完整性
    • 3、用户自定义的完整性
  • 四、关系代数
  • 五、习题

前言:理解关系数据模型的有关概念和各种运算的含义。

一、关系(数据结构)

1、概述

在用户看来,关系只是一张扁平的二维表。

2、名词解释

  • 域:域是一组具有相同数据类型的值的集合;
  • 基数:一个域允许的不同取值个数称为这个域的基数;
  • 目或度:关系的属性的个数
  • 候选码:某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(键);
  • 主码:若一个关系中有多个候选码,选择其中一个为主码;
  • 主属性:候选码的所有属性称为主属性,不含在候选码的属性称为非主属性或非码属性;
  • 全码:所有属性都是候选码;
  • 外码:设a是A上的一个或一组属性,但不是关系A的码,b是关系B的主码,并且a与b相互照应,则称a是A的外码;
    这个地方简单点来说,就是在本关系中的一个属性或属性组,到其他关系里面充当主码;
  • 超码:超码也叫做“超级码”,是一个或多个属性的集合,这些属性可以让我们在一个实体集(所谓的实体集就是student表中多条记录的集合)中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。

3、关系模式、关系数据库、关系数据库模式

(1)关系模式():关系的描述称为关系模式;
关系模式是型,关系是值;关系是元组的集合,关系模式要指出这个元组集合的结构。
例子:R(A1,A2,A3…)
这里R是关系名,A1,A2等等是属性名;
注意:关系是关系模式在某一时刻的状态和内容。因此,关系模式是静态的,稳定的,而关系是动态的。

(2)关系数据库:在关系模型中,实体与实体之间是通过关系来表示的;例如,研究生与导师之间的多对一关系。在给定的一个领域内,所有关系的集合构成了一个关系数据库。
一句话概括该点:关系数据库的值就是这些关系模式在某一时刻对应的关系的集合,通常就成为关系数据库;

(3)关系数据库模式:关系数据库模式是对关系数据库的型的描述,包括若干个域的定义,以及在这些域上定义的若干关系模式。

4、基本关系的性质

① 列是同质的,即来自同一个属性
② 不同的列可出自同一个域(域是一组具有相同数据类型的值的集合)
③ 列的顺序无所谓,列的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换
⑥ 分量必须取原子值(规范化)

**注意:**外码和所引用的主码是可以不同名。

二、关系操作(数据操作)

集合运算:并、差、交、笛卡儿积
关系运算:选择(行)、投影(列)、连接(行列)、除(行列)的定义

三、关系的完整性

1、实体完整性

  • 现实含义:事物(元组)可区分、是唯一的
  • 实现:主码
  • 内容:主属性不能取空值(或:主码值唯一、非空)
  • SQL实现:Primary Key

2 、参照完整性

  • 现实含义:不能引用不存在的事物
  • 实现:外码
  • 内容:外码值可以等于一个已经存在的主码值,或取空值,但是当外码是本关系的主属性时候,不可取空值;
  • SQL实现:Foreign key

3、用户自定义的完整性

  • 现实含义:某一具体应用所涉及的数据必须满足的语义要求
  • 实现:第五章的完整性实现方法
  • SQL实现:Check()

四、关系代数

代数运算是指关系运算,最后结果还是关系!!!
1、集合运算:并交差笛卡尔积
这四个需要注意的是笛卡尔积,它的最后元组数(行数)即为,两个关系的元组数之积;

2、专门关系运算符
选择、投影、连接;
其中连接分为自然连接,外连接;
在这里插入图片描述

除运算:
定义:设关系R除以关系S的结果为关系T,则T包含所有在R中但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。

五、习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:一般是先自然连接,然后在选择,最后在投影。


除法运算!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1653231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决Redis的键值前出现类似\xAC\xED\x00\x05t\x00*这样的字符序列

文章目录 1.问题2.解决方法3.StringRedisTemplate和RedisTemplate的区别 1.问题 在使用RedisTemplate对Redis进行操作时,发现Reids键值对前有\xAC\xED\x00\x05t\x00*这样的字符序列 如图所示: 虽说不影响使用,但是听影响观感的 2.解决方法 查找了很多方法,可以指定RedisTem…

笔试强训Day20 动态规划 模拟

经此一役小红所向无敌 题目链接&#xff1a;A-经此一役小红所向无敌_牛客小白月赛37 (nowcoder.com) 思路&#xff1a; 水题 直接跟思路即可。 AC code&#xff1a; #include<iostream> using namespace std; typedef long long LL; LL a1,a2,b1,b2,t1,t2,sum; int m…

Observability:监控与可观察性不同的 3 个原因

作者&#xff1a;来自 Elastic Elastic Observability Team 监控和可观察性通常可以互换使用&#xff0c;但它们并不完全相同。 监控是可观察性的重要组成部分&#xff0c;但可观察性远远超出了传统监控实践的范围。 主要区别&#xff1a;监控从各个组件收集数据 —— 时间和内…

高阶RAG-ReRank

1.背景-现RAG存在的问题 现在很明显&#xff0c;仅仅依靠向量检索技术不足以开发 RAG 应用程序&#xff0c;尤其是在生产环境中部署。 以下为案例&#xff1a; 关键词搜索容易返回不回答问题的结果稠密检索容易返回不正确的结果 实际RAG检索中也有很多类型问题&#xff0c;…

stm32 st7735驱动 详解

初始化指令 void LCD_Init(void) { #if USE_SIM_SPILCD_SIM_SPI_GPIO_Init(); #endifLCD_RES_0();//复位HAL_Delay(100);LCD_RES_1();HAL_Delay(100);LCD_BLK_1();//打开背光HAL_Delay(100);//************* Start Initial Sequence **********//LCD_SPI_Send_Cmd(0x11); //Sl…

链表面试题目:反转一个单链表的两种方法(解析+代码)

我们继续来看一下单链表的题目和代码吧&#xff0c;把学习的知识运用到实际中&#xff0c;大家加油 先看OJ题目 OJ题目&#xff08;反转单链表&#xff09; 双指针法 1.创建两个指针&#xff0c;为pre curr&#xff0c;curr指向头结点&#xff0c;curr用来遍历链表 2.curr指向…

VisualGDB : 在windows上开发和调试Linux代码(一)

传送门&#xff1a; 《VisualGDB &#xff1a; 解决编码导致的编译错误》 一、补充windows上 VisualGDB的安装 这里给大家附一个官方的下载路径&#xff1a;https://visualgdb.com/download/&#xff0c;根据自己的系统选择下载 笔者另附一个云盘的下载路径 VisualGDB https…

129423-53-6,Na+荧光探针一种可透过细胞的钠选择性荧光指示剂

引言&#xff1a;在化学研究的海洋中&#xff0c;优质的化学试剂是实验成功的关键。今天&#xff0c;我要为大家分享一款备受好评的化学试剂——SBFI AM。这款试剂以其独特的性能和广泛的应用领域&#xff0c;赢得了众多科研人员的青睐。 中文名称&#xff1a;钠离子荧光探针 …

不止是搭建 | 极空间虚拟机安装一个可做生产力的Ubuntu桌面系统以及后续优化

不止是搭建 | 极空间虚拟机安装一个可做生产力的Ubuntu桌面系统以及后续优化 哈喽小伙伴们好&#xff0c;偶是Stark-C~ 我在上篇极空间文章中不是给小伙伴们分享了使用虚拟机安装软路由固件『iStoreOS』的教程嘛&#xff1a; 打造Docker完全体&#xff0c; 开箱即用的各类插…

【牛客】【模板】前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和模板题。 前缀和中数组下标为1~n。 前缀和&#xff1a;pre[i]pre[i-1]a[i]; 某段区间 [l,r]的和&#xff1a;pre[r]-pre[l-1] 3.…

SARscape操作:GF3 数据预处理

1、设置 Prefrences 参数 点击 SARscape->Preferences->Preferences specific&#xff0c;弹出如下图所示的对话框&#xff1b; 点击 Load Preferences&#xff0c;在弹出的菜单栏中选择适用于GF3影像处理的 MR(between 10m and 30m) 模式&#xff1b; 点击 General p…

iphone忘记锁屏密码怎么解锁?这些解锁方法你必须知道!

在使用iPhone的过程中经常会遇到很多问题&#xff0c;比如忘记了iPhone的锁屏密码。面对这样的情况&#xff0c;许多用户可能会感到手足无措。别担心&#xff0c;本文将为您详细介绍iPhone忘记锁屏密码的解锁方法&#xff0c;让您轻松解决这一烦恼。 一、使用iTunes备份恢复 如…

scrapy抓取博客

scrapy主要的步骤&#xff1a; 创建一个scrapy项目获取博客内容和保存抓去url和title储存标题和链接获取文章内容 一.创建一个scrapy&#xff1a; 在桌面上会生成一个文件夹&#xff1a; 在开始爬虫前&#xff0c;打开items.py: class BlogspiderTtem(scrapy.Item):titlesc…

MacOS搭建docker本地私有镜像库

相关环境 macOS: bigsur 11.7.8 docker desktop: 4.22.0 docker engine: 24.0.5 准备工作 本机已经安装好docker desktop&#xff0c;未安装的自行参考其他教程。如果不能翻墙&#xff0c;可以修改本地的镜像地址&#xff0c;可在docker desktop 设置中的docker engine中修…

【数学建模】天然肠衣搭配问题

2011高教社杯全国大学生数学建模竞赛D题 天然肠衣&#xff08;以下简称肠衣&#xff09;制作加工是我国的一个传统产业&#xff0c;出口量占世界首位。肠衣经过清洗整理后被分割成长度不等的小段&#xff08;原料&#xff09;&#xff0c;进入组装工序。传统的生产方式依靠人工…

JVS物联网平台5.7功能新增说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了 低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&am…

【组合数学】2842. 统计一个字符串的 k 子序列美丽值最大的数目

本文涉及知识点 组合数学汇总 LeetCode 2842. 统计一个字符串的 k 子序列美丽值最大的数目 给你一个字符串 s 和一个整数 k 。 k 子序列指的是 s 的一个长度为 k 的 子序列 &#xff0c;且所有字符都是 唯一 的&#xff0c;也就是说每个字符在子序列里只出现过一次。 定义 f…

MATLAB的Bar3函数调节渐变色

一. colormap函数 可以使用colormap函数: t1=[281.1,584.6, 884.3,1182.9,1485.2; 291.6,592.6,896,1197.75,1497.33; 293.8,596.4,898.6,1204.4,1506.4; 295.8,598,904.4,1209.0,1514.6];bar3(t1,1) set(gca,XTickLabel,{300,600,900,1200,1500},FontSize,10) set(gca,YTic…

面试题:集合篇

说说 List, Set, Queue, Map 四者的区别&#xff1f; List(对付顺序的好帮手): 存储的元素是有序的、可重复的。Set(注重独一无二的性质): 存储的元素是无序的、不可重复的。Queue(实现排队功能的叫号机): 按特定的排队规则来确定先后顺序&#xff0c;存储的元素是有序的、可重…

Python 中使用私有成员的子类化

1、问题背景 Python 语言中&#xff0c;变量名与访问器同名是一个非常好的特性&#xff1a; self.__value 1def value():return self.__value但是&#xff0c;当我们想要子类化一个类&#xff0c;并访问其私有成员时&#xff0c;却没有一种简单的方法。通常&#xff0c;我们…