数据库原理-期末复习基础知识第二弹

1、数据的逻辑独立性是指

外模式/模式映像  当模式改变的时候,由数据库管理员对各个外模式/模式的映像做出相应改变,使外模式保持不变。由于应用程序是按照外模式进行编写的,故应用程序不必修改,保证了数据与程序的逻辑独立性。

2、数据的物理独立性是指

模式/内模式映像 当数据库的存储结构发生改变时,由数据库管理员对模式/内模式映像做出相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性。

3、基本的关系操作包括

投影、选择、并、差、笛卡尔积。 

4、专门的关系运算包括

选择、投影、连接、除。

5、试述数据、数据库、数据库管理系统、数据库系统的概念。

数据:描述事务的符号记录。

数据库:长期存储在计算机内的、有组织的、可共享的数据集合。

数据库管理系统:是位于用户和操作系统之间的具有数据定义、操纵、数据库的运行管理、数据库的建立与维护功能的一层数据管理软件。

数据库系统:在计算机系统中引入数据库后的系统、一般由数据库、数据库管理系统、应用系统、数据库管理员以及用户构成。

6、视图和基本表的区别?

视图是从一个或几个基本表导出 的表,它与基本表不同,是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的数据也就随之改变。视图一经定义可以像基本表一样被查询,删除,也可以在一个视图上定义新的视图。

7、故障的类型?

事务故障,系统故障,介质故障。

8、EXISTS关键字

EXISTS 关键字

  • 语法及基本用法
    EXISTS 用于检查子查询是否返回至少一行数据,语法格式一般是 EXISTS (subquery),这里的 subquery 就是一个子查询语句。例如,有两张表,orders(订单表)包含 order_id(订单编号)、customer_id(客户编号)等字段,customers(客户表)包含 customer_id(客户编号)和 customer_name(客户姓名)等字段,要查询有订单的客户信息,可以这样写:
SELECT customer_name
FROM customers c
WHERE EXISTS (SELECT 1FROM orders oWHERE o.customer_id = c.customer_id
);

其核心思路是对于 customers 表中的每一行数据,去执行括号内的子查询,如果子查询能返回至少一行数据,那就说明对应的客户有订单,该行客户记录就会被筛选出来。

  • 执行原理
    数据库在执行 EXISTS 语句时,一旦发现子查询返回了一行数据,就会停止继续检查该子查询(因为它只关心是否有数据返回,而不关心具体返回的数据内容),接着处理下一条外层查询的记录。所以从性能角度来看,在合适的场景下,EXISTS 可以比一些关联查询等方式更高效,尤其是当子查询关联的表数据量很大时,只要能快速判断有数据返回即可。

  • 应用场景举例
    常用于判断主表中的记录在关联表中是否存在对应数据的情况,比如查找有下属员工的部门信息、查找发布过文章的作者信息等,本质上是一种基于关联关系去判断存在性的操作。

总体区别总结

  • 逻辑判断方向
    • IN 和 NOT IN 侧重于判断某个值与一组给定值之间的包含关系,是对具体值集合的比对操作。
    • EXISTS 重点关注的是子查询是否有返回结果,是从是否存在数据的角度进行逻辑判断。
  • 性能特点及适用场景差异
    • IN 在值列表较短时通常性能较好,但列表过长可能影响性能;适合明确列举具体值进行筛选的场景。
    • NOT IN 同样受值列表中 NULL 值影响较大,使用时要小心;常用于排除特定值集合的筛选场景。
    • EXISTS 依赖子查询的逻辑构建,性能优势在于一旦确定有数据返回就停止子查询执行;更适合处理主从表之间判断存在性关联的复杂场景,尤其是大数据量情况下能体现其高效性优势。

在执行带有 NOT EXISTS 的查询时,数据库会针对主查询(外层查询)中的每一条记录,去执行对应的子查询操作。如果子查询返回的结果集为空(也就是没有返回行数据),那么对于当前这条主查询记录来说,NOT EXISTS 条件成立,该记录就会被包含在最终的查询结果中;反之,如果子查询返回了至少一行数据,那 NOT EXISTS 条件就不成立,对应的主查询记录则不会被选中。

示例说明

假设有两张表,一张是 employees(员工表),包含 employee_id(员工编号)、department_id(部门编号)等字段,用于记录员工所属部门等信息;另一张是 departments(部门表),包含 department_id(部门编号)、department_name(部门名称)等字段。

现在想要查询出没有员工的部门信息,就可以使用 NOT EXISTS 关键字来实现,示例 SQL 语句如下:

SELECT department_name
FROM departments d
WHERE NOT EXISTS (SELECT 1FROM employees eWHERE e.department_id = d.department_id
);

在上述语句中:

  • 对于 departments 表中的每一个部门记录(由外层查询遍历每一条记录)。
  • 都会执行一次子查询,这个子查询是去查找在 employees 表中是否存在员工的 department_id 与当前遍历到的 department 表中的 department_id 相等(也就是判断这个部门是否有员工)。
  • 如果子查询没有找到这样的员工(即返回结果集为空),那就意味着这个部门没有员工,此时外层查询中对应的这个部门记录就会基于 NOT EXISTS 条件被筛选出来,最终查询结果就是那些没有员工的部门的相关信息(这里是部门名称)。

关于 EXISTS

  • 确实是先执行子查询来判断是否有满足条件的数据,只要子查询返回至少一行数据,对于当前正在处理的外层(父)查询中的那条记录来说,EXISTS 条件就成立。但子查询并非完全与父查询 “无关”,通常子查询会和父查询存在关联条件,通过这个关联条件去判断相关的存在性情况。比如前面提到的员工和部门的例子中,子查询里会通过 e.department_id = d.department_id 这个关联条件来判断对于部门表中的某个部门,在员工表中是否存在属于该部门的员工。

关于 NOT EXISTS

  • 你的理解很形象,它类似嵌套循环的操作逻辑。对于父查询中的每一条记录,都会拿这条记录相关的属性值(通过关联条件)去和子查询里对应的属性进行匹配、判断。当子查询依据关联条件去查找时,如果没有返回任何行(也就是找不到对应的匹配数据),那么对于父查询中正在处理的这条记录而言,NOT EXISTS 条件就成立了,父查询中相应的记录以及 SELECT 后面选择的属性信息就会作为最终结果的一部分输出。

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

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

相关文章

流媒体之linux下离线部署FFmpeg 和 SRS

前言 用户对网络做了限制,只能访问指定的网址,和没网没啥区别,导致无法连接外网,无法获取安装包,还有一些编译需要的开源工具 用户需要用平台查看库房的海康摄像头实时监控,只能在库房里一台纯净的ubantu…

数字时代的文化宝库:存储技术与精神生活

文章目录 1. 文学经典的数字传承2. 音乐的无限可能3. 影视艺术的数字化存储4. 结语 数字时代的文化宝库:存储技术与精神生活 在数字化的浪潮中,存储技术如同一座桥梁,连接着过去与未来,承载着人类文明的瑰宝。随着存储容量的不断增…

渗透测试之Web基础之Linux病毒编写——泷羽sec

声明: 学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。本文只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 (bilibili.com)https://space.bilibili.com/350329294 导读: 时刻…

基于神经网络的弹弹堂类游戏弹道快速预测

目录 一、 目的... 1 1.1 输入与输出.... 1 1.2 隐网络架构设计.... 1 1.3 激活函数与损失函数.... 1 二、 训练... 2 2.1 数据加载与预处理.... 2 2.2 训练过程.... 2 2.3 训练参数与设置.... 2 三、 测试与分析... 2 3.1 性能对比.... 2 3.2 训练过程差异.... 3 四、…

Xlsxwriter生成Excel文件时TypeError异常处理

在使用 XlsxWriter 生成 Excel 文件时,如果遇到 TypeError,通常是因为尝试写入的值或格式与 XlsxWriter 的限制或要求不兼容。 1、问题背景 在使用 Xlsxwriter 库生成 Excel 文件时,出现 TypeError: “expected string or buffer” 异常。此…

MATLAB期末复习笔记(下)

目录 五、数据和函数的可视化 1.MATLAB的可视化对象 2.二维图形的绘制 3.图形标识 4.多子图绘图 5.直方图的绘制 (1)分类 (2)垂直累计式 (3)垂直分组式 (4)水平分组式 &…

操作系统学习

问题: 因为想用傲梅来给系统盘扩容,导致无法进入操作系统,报错如下: 无法加载应用程序或操作系统,原因是所需文件丢失或包含错误. 文件:Windowslsystem32lwinload.efi错误代码: 0xc000007b 你需要使用恢复工具。如果…

【环境搭建】Python、PyTorch与cuda的版本对应表

一个愿意伫立在巨人肩膀上的农民...... 在深度学习的世界里,选择合适的工具版本是项目成功的关键。CUDA、PyTorch和Python作为深度学习的三大支柱,它们的版本匹配问题不容忽视。错误的版本组合可能导致兼容性问题、性能下降甚至项目失败。因此&#xff0…

No.26 笔记 | 信息收集与工具实践指南

渗透测试的第一步:信息收集背后的“侦察艺术” 在网络安全的世界里,信息就是武器。 无论是追踪隐藏的漏洞,还是找到不被注意的入口,信息收集就像一场现代化的“谍战片”。而作为渗透测试的开场白,信息收集不仅考验技…

计算机网络 第5章 运输层

计算机网络 (第8版) 第 5 章 传输层5.4 可靠传输的原理5.4.1 停止等待协议5.4.2 连续ARQ协议 5.5 TCP报文段的首部格式5.6 TCP可靠传输的实现5.6.1 以字节为单位的滑动窗口5.6.2 超时重传时间的选择 5.7 TCP的流量控制5.7.1 利用滑动窗口实现流量控制 5.…

股指期货基差的影响因素有哪些?

在股指期货交易中,有一个重要的概念叫做“基差”。简单来说,基差就是股指期货价格与其对应的现货价格之间的差异。比如,我们现在有IC2401股指期货,它挂钩的是中证500指数。如果IC2401的价格是5244,而中证500指数的价格…

智能社区服务小程序+ssm(lw+演示+源码+运行)

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了智能社区服务小程序的开发全过程。通过分析智能社区服务小程序管理的不足,创建了一个计算机管理智能社区服务小程序的方案。文章介绍了智能社区服务…

用人话讲计算机:Python篇!(十一)相对路径与绝对路径

目录 一、计算机中的路径 (1)什么叫路径 (2)绝对路径 (3)相对路径 二、Python中的路径 (1)绝对路径 (2)相对路径 (3)总结 一、…

基于VTX356语音识别合成芯片的智能语音交互闹钟方案

一、方案概述 本方案旨在利用VTX356语音识别合成芯片强大的语音处理能力,结合蓝牙功能、APP或小程序,打造一款功能全面且智能化程度高的闹钟产品。除了基本的时钟显示和闹钟提醒功能外,还拥有正计时、倒计时、日程安排、重要日提醒以及番茄钟…

MFC图形函数学习13——在图形界面输出文字

本篇是图形函数学习的最后一篇,相关内容暂告一段落。 在图形界面输出文字,涉及文字字体、大小、颜色、背景、显示等问题,完成这些需要系列函数的支持。下面做简要介绍。 一、输出文本函数 原型:virtual BOOL te…

【CANoe示例分析】Basic UDP Multicast(CAPL)

1、工程路径 C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 16.6.2\Ethernet\Simulation\UDPBasicCAPLMulticast 在CANoe软件上也可以打开此工程:File|Sample Configurations|Ethernet - Simulation of Ethernet ECUs|Basic UDP Multicast(CAPL) 2、示例目…

【动手学电机驱动】STM32-FOC(10)使用旋钮调节电机转速

STM32-FOC(1)STM32 电机控制的软件开发环境 STM32-FOC(2)STM32 导入和创建项目 STM32-FOC(3)STM32 三路互补 PWM 输出 STM32-FOC(4)IHM03 电机控制套件介绍 STM32-FOC(5&…

最新,Vue 性能提升 400%

最近,Vue 团队核心成员 Johnson Chu 开源一个全新的信号库:alien-signals,这是一个基于 Vue 3.4 响应式系统重写的研究型信号库,可以使 Vue 3.4 的响应式系统性能提升 400%。目前,alien-signals 是所有信号库中最快的实…

springboot mvn 打包,jar和资源文件分离打包

默认打包方式如下&#xff1a; <build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><execution…

OpenHarmony-3.HDF框架(2)

OpenHarmony HDF 平台驱动 1.平台驱动概述 系统平台驱动框架是系统驱动框架的重要组成部分&#xff0c;它基于HDF驱动框架、操作系统适配层(OSAL, operating system abstraction layer)以及驱动配置管理机制&#xff0c;为各类平台设备驱动的实现提供标准模型。 系统平台驱动(…