软考数据库---3.关系数据库

news2024/9/22 7:35:13

3.1 名词

在这里插入图片描述
在这里插入图片描述

属性分类

数据库实体属性分类主要包括以下几个方面:

  1. 标识属性 (Key Attribute / Identifier):

    • 这些属性是用来唯一识别实体实例的关键属性,也称为主键(Primary Key)。在数据库表中,每个实体的实例(即一行记录)应当有一个或多个属性共同构成其唯一标识,不允许重复。例如,在顾客表中,顾客ID就是一个标识属性。
  2. 非标识属性 (Non-key Attribute / Non-Identifier):

    • 这些属性不是用来唯一确定实体实例的属性,它们提供了关于实体实例其他方面的描述信息。例如,顾客表中的姓名、性别、出生日期、联系方式等都是非标识属性。
  3. 单一属性 (Simple Attribute):

    • 单一属性只能取一个值,比如年龄、工资等。
  4. 复合属性 (Composite Attribute):

    • 复合属性由多个子属性组成,这些子属性共同描述了一个整体概念。例如,地址可以是一个复合属性,包含街道、城市、省份、邮政编码等多个部分。
  5. 多值属性 (Multivalued Attribute):

    • 在某些情况下,一个属性可以有多个值。在关系数据库中,这类属性通常通过关联表来实现,比如一个人有多部电话号码。
  6. 派生属性 (Derived Attribute):

    • 派生属性的值可以根据其他属性的值计算得出,而不是直接存储在数据库中。例如,年龄可以从出生日期计算得到。
  7. 关联实体属性 (Relationship Attribute):

    • 这类属性指向另一个实体或者实体集,表明两个实体之间的联系。在关系数据库中,这通常表现为外键(Foreign Key),比如在一个订单表中,客户ID就是一个关联实体属性,它链接到客户表的主键。
  8. 时间属性 (Temporal Attribute):

    • 记录实体生命周期中的时间点或时间段的属性,如创建日期、更新日期、有效期等。
  9. 枚举属性 (Enumerated Attribute):

    • 属性值仅能从预定义的一组选项中选取,如性别属性可能只有“男”、“女”和其他几个预设值。

结合以上分类,设计数据库时应该充分理解实体的属性,并根据实际需求合理安排属性的数据类型、是否允许为空、是否是索引列等特性。

考点:会区分各种码(候选码,主码,外码,全码)

3.2 关系代数

表达式:

在这里插入图片描述

R在前S在后为例

1. 选择:根据选择条件获取列(sql中:where)。

在这里插入图片描述

2. 投影

选择想要的列(类似于select),针对列进行计算。
在这里插入图片描述

3. 并

R与S 相同的合并,R与S 不同的元组放下面

4. 交

R与S 相同的合并,不同的不要

5. 差

R与S 相同的减掉,R不同的留着

6. 笛卡尔积

R表中的每一行都与S表中的每一行组合一次 R X S,select * form a,b
在这里插入图片描述
图片指路—写的非常易懂

7. 除

如果把笛卡尔积看作“乘法”运算,则除法运算可以看作这个“乘法”的逆运算。 R ÷ S R÷S R÷S
网上好多写步骤的真的好难懂,易懂图解指路

假设我们手里面有一张数据库如下:

现在我们有一个问题,就是我们想要找出学习最积极的那位学生,也就是选修了所有课程的那个学生,先暂时放弃除法运算,以我们最朴素的情感用自己的逻辑来解决这道题目,按照自己的想法,就像设计一个程序一样,需要几步做出这个问题

以下是按照我自己的想法:

  • 首先,把SC表拆了,把每个学生单独做成一个表,如下:

  • 然后问题就变成了拆开之后的表格和C表一一比对,找出拆开之后的三个表格中的Course属性和C表一模一样(也就是拆开之后包含了所有课程的表),然后找出那个人是谁,然后问题就解决了

实际上,我们的除法运算就是这个逻辑,但是除法运算的更为严谨,以下是除法运算的的步骤(SC ÷ C),这里我们仍然采用我们上面使用的数据库,直接说结论(SC ➗ C)能找出答案

  • 第一步:找出C表中和SC表中相同的属性,也就是C属性,对C属性做投影操作(也就是找出总的课程有多少门)

  • 第二步:找出SC表中和C表不相同的属性,也就是S属性,也对S属性做投影操作(找出一共有几个学生)

  • 第三步:找出SC表中S的象集(每个学生分别都选了些什么课)

  • 最后一步就是进行比对,只有张三的象集包含了所有C表中的所有课程,所以(SC ➗ C = 张三)

再来看一下步骤:
1.取S中和R相同的属性(投影),去重
2.找R中不同于S的属性,取不同的属性列,对该列进行去重
3. 求R中2中列对应的像集
4. 判断包含关系(哪个像集包含1中所有值)

8. 重命名

9. 连接

1. θ \theta θ 连接

笛卡尔积之后选择
在这里插入图片描述
在这里插入图片描述

2.等值连接

在这里插入图片描述

3. 自然连接

相同属性值值相同的留下,去掉重复属性。
在这里插入图片描述

10. 外连接

左连接(left join) 左侧为准右侧填充
右连接(right join)
在这里插入图片描述

3.3 元组演算

3.4 域演算

3.5 查询优化

在这里插入图片描述

3.6 关系规范化

这一章主要学习四大范式

第一范式

若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式

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

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

相关文章

【GD32】GP2Y1014AU粉尘传感器

2.42 GP2Y1014AU粉尘传感器 2.42.1 模块来源 采购链接: GP2Y1014AU粉尘传感器模块 PM2.5灰尘传感器代替GP2Y1010AU0F 2.42.2 规格参数 工作电压:5-7V 消耗电流:最大20mA 最小粒子检出值:0.8微米 灵敏度:0.5V(0.1mg…

锁策略总结

锁策略 悲观锁和乐观锁 乐观锁和悲观锁不是具体类型的锁而是指两种不同的对待加锁的态度,这两个锁面对锁冲突的态度是相反的。 乐观锁:认为不存在很多的并发操作,因此不需要加锁。悲观锁:认为存在很多并发操作,因此需…

c++编程(4)——类与对象(2)构造函数、析构函数

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 构造函数默认构造函数析构函数默认析构函数 构造函数 以一个日期类为例。 class Data { private:int _year;int _month;int _day; };这个类实例化出来的对象内的值都是编译器默认初始化的随机值。 Data d1…

私域流量变现干货:轻松盘活,高效增长!

你知道如何增长私域流量并将这些流量转化为实际收益,让我们的品牌价值最大化吗? 今天,就分享几点干货,帮助大家盘活私域流量,实现高效增长! 1、精准定位和用户画像 首先,了解您的私域流量源于…

位像素谈海外仓库存管理方法:WMS对效率提升到底有没有用?

对海外仓来说,最重要的事情就是把库存管理做清楚。因为海外仓的本质还是仓储,如果连仓储数据都出现错误,那不管是对客户还是对终端消费者来说,都会造成巨大的影响。 今天我们就来聊一下,在电商飞速发展的今天&#xf…

面试官:说一说CyclicBarrier的妙用!我:这个没用过...

写在开头 面试官:同学,AQS的原理知道吗? 我:学过一点,抽象队列同步器,Java中很多同步工具都是基于它的… 面试官:好的,那其中CyclicBarrier学过吗?讲一讲它的妙用吧 我&…

Sonar下启动发生错误,elasticsearch启动错误

Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 ,java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql,且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…

什么是5G单兵?5G单兵跟5G执法记录仪有什么异同?

深入了解5G单兵系统:未来执法新革命与执法记录仪的差异分析 随着技术的不断进步和发展,5G技术的应用已经渗透到社会的各个领域中,包括公安、消防等执法与紧急救援领域。其中,5G单兵系统作为一种新型的智能化执法装备,…

树形侧边栏(展开、全选、切换名称)

父文件&#xff1a; index.vue <template><div class"h-full p20px bg-#f5f5f5"><ContentWrap class"w-260px h-[calc(100vh-200px)] min-h-700px"><TenantTree select"tentantSelect" /></ContentWrap></div&…

【计算机考研】跨考计算机,需要准备多久才来得及?

9个月跨考计算机&#xff0c;如果选择是408的话&#xff0c;时间稍微有点紧张&#xff0c;前期感觉不大&#xff0c;后期数学408堆在一起会感觉很难受... 很多确定考408的同学都是一开始先从数据结构开始复习的&#xff0c;这样到了中后期觉得自己时间不够了再去转自命题也来得…

MySQL——基础

SQL 全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一标准 。 SQL 通用语法 SQL语句可以单行或多行书写&#xff0c;以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySQL数据库…

【C++】unordered_map unordered_set 底层刨析

文章目录 1. 哈希表的改造2. unordered_map3. unordered_set C STL 库中&#xff0c;unordered_map 和 unordered_set 容器的底层为哈希表&#xff0c;本文将简单模拟哈希表&#xff08;哈希桶&#xff09;&#xff0c;unordered_map 和 unordered_set 只需封装哈希表的接口即可…

分布式的计算框架之Spark(python第三方库视角学习PySpark)

基本介绍 Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎 。现在形成一个高速发展应用广泛的生态系统。 特点介绍 Spark 主要有三个特点&#xff1a; 首先&#xff0c;高级 API 剥离了对集群本身的关注&#xff0c;Spark 应用开发者可以专注于应用所要做的计…

C语言面试题之奇偶链表

奇偶链表 实例要求 1、给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表&#xff1b;2、第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推&#x…

快速掌握Spring监控(Spring Boot admin)

监控 监控可视化监控平台Admin底层逻辑info 自定义端点 监控 监控的作用&#xff1a; 监控服务状态是否宕机监控服务运行指标&#xff08;内存&#xff0c;虚拟机&#xff0c;线程&#xff0c;请求等&#xff09;监控日志管理服务&#xff08;服务下线&#xff09; 监控的实…

详解IP证书申请

申请IP证书&#xff0c;也被称为IP SSL证书&#xff0c;是一种特殊的SSL证书&#xff0c;它不同于传统的域名验证&#xff08;DV&#xff09;证书&#xff0c;是通过验证公网IP地址而不是域名来确保安全连接。这种证书用于保护IP地址&#xff0c;并在安装后起到加密作用。以下是…

李廉洋:4.16黄金,原油最新资讯,亚盘面走势分析及策略。

周一&#xff0c;10年期美国国债收益率攀升3个基点&#xff0c;至4.55%&#xff0c;原因是投资者在权衡中东紧张局势加剧演变为全面地区战争的风险。美国国债将成为市场关注的焦点&#xff0c;上周美国国债收益率上升12个基点&#xff0c;至去年11月以来的最高水平&#xff0c;…

TC387实现SPI自通讯

TC387实现SPI自通讯 预期效果&#xff1a; TC387上定义两个SPI通讯接口&#xff0c;一个用于发数据一个用于收数据。准确无误的收到一次数据就对核心板led灯的状态进行一次翻转。 由于实验设备有限&#xff0c;只能想办法通过现有设备进行实验。 实现过程&#xff1a; 最开…

【学习笔记PPT摘录】lan.289.24.4-15

1.纪念品分组.双指针-01 #include <bits/stdc++.h> using namespace std;int A[40000];// 纪念品价值均衡// 把购来的纪念品进行分组 之和不超过整数 w// 每组只能有两个纪念品 希望分组的数目要少// 贪心的策略就是 每个较大的数找到一个 最大的较小的数使其能够小于w//…

基于注解以及配置类使用SpringIoc

四 基于注解方式使用SpringIoc 和 XML 配置文件一样&#xff0c;注解本身并不能执行&#xff0c;注解本身仅仅只是做一个标记&#xff0c;具体的功能是框架检测到注解标记的位置&#xff0c;然后针对这个位置按照注解标记的功能来执行具体操作。 本质上&#xff1a;所有一切的…