【期末考试】数据库综合复习宝典
目录
第一章 数据库系统概述
第二章 关系代数
第四章 关系数据库理论
第五章 数据库设计
第六章 数据库管理系统
第八章 事务管理
第一章 数据库系统概述
1.1三级模式

①外模式:它为特定的应用程序或用户群体提供了一个数据视图,这个视图是独立于数据库其他用户的。
②概念模式:由数据库管理员使用SQL语句(DDL)来定义的表,供数据库管理员使用。
③内模式:数据在数据库内部的物理结构和存储方式,说明了数据如何在存储介质上存储。
1.2 两级映射
①外模式-概念模式的映射:当概念模式(表)发生变化时,通过修改映射关系(视图-表),可以使得外模式保持不变,从而应用程序也不需要改变,体现了逻辑独立性。
②概念模式-内模式的映射:保证了物理独立性,即数据库的存储结构发生变化时,不会影响到应用程序。数据库管理员可以在表结构不变的情况下,修改内模式。
第二章 关系代数

第四章 关系数据库理论
4.1 如何求属性集闭包?
依据:根据公理系统的自反律(X决定自身的子集)、传递律(A--->B、B---->C可以得出A--->C)可以求解属性集的闭包。


4.2如何求最小函数依赖集?
原则:右(右边分解为单一属性)、中(去本求包)、左(左边最小化)

4.3 如何求候选码?
①给定关系模式R (U, F)。将R的所有属性分为L, R, LR和N四类。其中
L表示属性只在函数依赖左边出现:
R表示属性只在函数依赖右边出现;
LR表示属性既在左边出现,又在右边出现;
N表示函数依赖左右都未出现。
②令X=L U N, Y=LR求X的闭包,若X的闭包包含了R表的所有属性,则X为R的唯一候选码,转(5) 。
tip: 因为X已经是R表的候选码了,所以X再与Y中的每个属性组合的闭包肯定也等于属性全集U此时所求的候选码就是超码。属于多余的,因此没必要在求(XA)。
③Y中选取任意一个属性A,求(XA)的闭包,若它包含了R的全部属性,则是候选码。调换属性,反复进行这个过程,直到试完Y中的所有属性。
④如果已找出所有的候选码,转(5) ,否则在Y中后面依次选取2个属性,3个属性,.... 求他们的闭包,若其闭包包含R的全部属性, 则是候选码。
⑤结束算法,输出候选码。
4.4 如何将关系模式分解成3NF范式?
步骤:
1、求F的最小函数依赖集,合并左边相同的函数依赖(依据合并性)。
2、将最小函数依赖集中每个函数依赖组成一个表。
3、如果构成的各表中没有一个表中包含R的某个候选键,就选取R表中的一个后选键作为一张表放入模式集中(求最小依赖集F的候选码)。
4.5 如何判断表满足第几范式?
1NF范式: 表中每个单元格都是不能在分割的最小单元(横平竖直)
2NF范式:表中不存在非主属性(普通列)对候选码的部分函数依赖,而是对候选码的完全函数依赖。
3NF范式:表中不存在非主属性列对候选码的传递函数依赖(没有中间属性)。
BCNF范式:表中所有函数依赖都写出来,如果函数依赖集各元素左边都包含候选码则此表满足BCNF范式。
第五章 数据库设计
5.1 E-R图

5.2 E-R图转换为关系模式
总结:
①一个实体对应一张表,表的属性就是与实体相连的属性。
②所有联系都可以独立作为一张表,其属性由“两端实体主码+自身属性”,主码因联系类型不同而异。
③1:1、1:n的联系都能合并,合并后的表属性由“加入到表的属性+另端主码+联系自身属性”。其合并后表的主码为:加入到的实体表中的主码。
- 1:1
联系独立作为一张表: 两端相连实体主码+联系自身属性。
主码:从两端实体的主码中任选一个作为关系表的主码。
联系与其他表合并:另端实体主码+联系自身属性,放到要加入到的表中。
主码:加入表的主码
- 1:N
联系独立:两端相连实体的主码+联系自身属性。
主码:N端主码作为独立表的主码
联系合并到N端表中:另端实体主码+联系自身属性。
主码:加入表的主码。即N端的主码作为表的主码
- N:M
联系只能独立单独作为一张表,其表的属性由“联系两端相连实体的主码+联系自身属性”。其表的主码为:两端实体的主码组合在一起共同作为联系表的主码。
第六章 数据库管理系统
6.1 查询优化
基本原则:尽量减少查询过程中的中间结果,从而以较少的时间和空间开销取得所需的查询结果。
优化策略:
①尽可能先做选择运算,允许的情况下在优先执行投影。
②将先笛卡尔积后选择的查询转化为连接运算。
③把投影运算和选择运算同时进行。
④让投影运算与其前后的其它运算同时进行。
⑤在执行连接前先对关系做适当的预处理,如:在连接属性上建立索引。
第八章 事务管理
8.1 什么是事务
为了满足特定的需求而由一系列数据库操作的SQL语句组成的集合。这些SQL操作语句要么全部执行成功,要么全部执行失败(微信转账)。
8.2 封锁
所谓封锁就是事务T在对数据对象操作之前如:表、记录先对其进行加锁。加锁后事务T就会对数据对象有一定的控制,而在事务T释放掉数据对象的锁前不允许其它事务对数据对象进行操作了(类似Java中的文件锁)。
①排它锁:事务T在对数据对象加X锁后,只有事务T可以对数据对象进行读、写。其它事务无法对数据对象在进行加锁,也不能读、写此数据对象。
②共享锁:事务T在对数据对象加S锁后,不管是其本身还是其它事务都只能对数据对象只读而无法写入,其它事务可以在对数据对象加S锁但不能加X锁。
相关文章:
【期末考试】数据库综合复习宝典
目录 第一章 数据库系统概述 第二章 关系代数 第四章 关系数据库理论 第五章 数据库设计 第六章 数据库管理系统 第八章 事务管理 第一章 数据库系统概述 1.1三级模式 ①外模式:它为特定的应用程序或用户群体提供了一个数据视图,这个视图是独立于…...
OpenHarmony南向之LCD显示屏
OpenHarmony南向之LCD显示屏 概述 LCD(Liquid Crystal Display)驱动,通过对显示器上下电、初始化显示器驱动IC(Integrated Circuit)内部寄存器等操作,使其可以正常工作。 HDF Display驱动模型 LCD器件驱…...
核心笔记-短篇
接口管理平台:yapi 对象拷贝:Spring Bean 提供的 BeanUtils;hutool-core 提供的 BeanUtil 获得用户设备的信息:导入 UserAgentUtils 依赖;创建 UserAgent 对象使用 加密工具:DigestUtils,Spring Core 提供,静态方法:md5DigestAsHex(byte[]) 客户端编程工具包:HttpCli…...
系统学习Python——警告信息的控制模块warnings:为新版本的依赖关系更新代码
分类目录:《系统学习Python》总目录 在默认情况下,主要针对Python开发者(而不是Python应用程序的最终用户)的警告类别,会被忽略。 值得注意的是,这个“默认忽略”的列表包含DeprecationWarning(…...
爬虫的基本原理
基本原理 可以把网页与网页之间的链接关系比作节点中的连线,爬虫可以根据网页中的关系获取后续的网页,当整个网站涉及的页面全部被爬虫访问到后,网站的数据就被访问下来了。 1.爬虫概述 简单点讲,爬虫就是获取网页并提取和保存信…...
MySQL核心SQL
一.结构化查询语言 SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别: DDL(Data Definition Languages)语句 数据定义语言,这…...
关于 setData 同步异步的问题
小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步,…...
Centos创建一个Python虚拟环境
在 CentOS 上创建一个 Python 虚拟环境,可以使用 virtualenv 工具。以下是创建和激活虚拟环境的基本步骤: 1.安装virtualenv 如果还没有安装 virtualenv,可以使用以下命令安装: sudo yum install python3-virtualenv请注意&…...
怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?
在互联网时代,爬虫技术被广泛应用于数据采集和处理。然而,在使用爬虫技术的过程中,经常会遇到IP被封禁的问题,这给数据采集工作带来了很大的困扰。因此,使用爬虫IP代理成为了解决这个问题的有效方法。本文将介绍如何使…...
C#,字符串匹配算法(模式搜索)Z算法的源代码与数据可视化
Z算法也是模式搜索(Pattern Search Algorithm)的常用算法。 本文代码的运算效果: 一、Z 算法 线性时间模式搜索算法的Z算法,在线性时间内查找文本中模式的所有出现。 假设文本长度为 n,模式长度为 m,那么…...
强化学习actor-critic
...
使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速
Open AI 推出的 Whisper 是一个通用语音转录模型,在各种基准和音频条件下都取得了非常棒的结果。最新的 large-v3 模型登顶了 OpenASR 排行榜,被评为最佳的开源英语语音转录模型。该模型在 Common Voice 15 数据集的 58 种语言中也展现出了强大的多语言性…...
pi gpio 内存映射
树霉pi gpio内存映射 #include <stdio.h> #include <fcntl.h> #include <sys/mman.h> #include <unistd.h> #include <stdlib.h>#define BCM2835_PERI_BASE 0x20000000 #define GPIO_BASE (BCM2835_PERI_BASE 0x200000) #define PAGE_SIZE…...
[NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现
依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 把下文中的字母和数字用`包起来, 中文不变。 全文 4400 字,主要内容 复位的目的和作用? NAND Reset 种类:FFh, FCh, FAh, FDh 区别 Reset 操作步骤 和…...
Multimodal Prototypical Networks for Few-shot Learning
tcGAN is provided with an embedding ϕ T \phi_T ϕT() of the textual description 辅助信息 作者未提供代码...
软件测试|Python requests库的安装和使用指南
简介 requests库是Python中一款流行的HTTP请求库,用于简化HTTP请求的发送和处理,也是我们在使用Python做接口自动化测试时,最常用的第三方库。本文将介绍如何安装和使用requests库,以及一些常见的用例示例。 安装requests库 首…...
HarmonyOS应用开发学习笔记 应用上下文Context 获取文件夹路径
1、 HarmoryOS Ability页面的生命周期 2、 Component自定义组件 3、HarmonyOS 应用开发学习笔记 ets组件生命周期 4、HarmonyOS 应用开发学习笔记 ets组件样式定义 Styles装饰器:定义组件重用样式 Extend装饰器:定义扩展组件样式 5、HarmonyOS 应用开发…...
http状态码对照表
状态码含义100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。…...
金三银四-JVM核心知识高频面试题
又要快到一年一度的金三银四,开始复习啦~! 每天一点点。。 目录 一、JVM中的垃圾收集器有哪些,它们的工作原理是什么? 二、JVM中的类加载器有哪些,它们各自的作用是什么? 三、JVM中垃圾回收的…...
【GitHub项目推荐--谷歌大神又一开源代码调试神器】【转载】
如果调试是 Debug 的必经之路,那么编程应该将它考虑在内。今天我就和大家分享一个代码调试神器 - Cyberbrain。 Cyberbrain是一个免费开源的 Python 代码调试解决方案,它可视化程序执行以及每个变量的变化方式,让程序员免受调试之苦。主要具有…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
