【期末考试】数据库综合复习宝典
目录
第一章 数据库系统概述
第二章 关系代数
第四章 关系数据库理论
第五章 数据库设计
第六章 数据库管理系统
第八章 事务管理
第一章 数据库系统概述
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 代码调试解决方案,它可视化程序执行以及每个变量的变化方式,让程序员免受调试之苦。主要具有…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...