【期末考试】数据库综合复习宝典

目录

第一章 数据库系统概述

第二章 关系代数

第四章 关系数据库理论

第五章 数据库设计

第六章 数据库管理系统

第八章 事务管理


第一章 数据库系统概述

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

联系独立作为一张表: 两端相连实体主码+联系自身属性。

                            主码:从两端实体的主码中任选一个作为关系表的主码。

联系与其他表合并:另端实体主码+联系自身属性,放到要加入到的表中。

                            主码:加入表的主码

  1. 1:N

联系独立:两端相连实体的主码+联系自身属性。

              主码:N端主码作为独立表的主码

联系合并到N端表中:另端实体主码+联系自身属性。

              主码:加入表的主码。即N端的主码作为表的主码

  1. N:M

联系只能独立单独作为一张表,其表的属性由“联系两端相连实体的主码+联系自身属性”。其表的主码为:两端实体的主码组合在一起共同作为联系表的主码。

第六章 数据库管理系统

6.1 查询优化

基本原则:尽量减少查询过程中的中间结果,从而以较少的时间和空间开销取得所需的查询结果。

优化策略:

①尽可能先做选择运算,允许的情况下在优先执行投影。

②将先笛卡尔积后选择的查询转化为连接运算。

③把投影运算和选择运算同时进行。

④让投影运算与其前后的其它运算同时进行。

⑤在执行连接前先对关系做适当的预处理,如:在连接属性上建立索引。

第八章 事务管理

8.1 什么是事务

为了满足特定的需求而由一系列数据库操作的SQL语句组成的集合。这些SQL操作语句要么全部执行成功,要么全部执行失败(微信转账)。

8.2 封锁

所谓封锁就是事务T在对数据对象操作之前如:表、记录先对其进行加锁。加锁后事务T就会对数据对象有一定的控制,而在事务T释放掉数据对象的锁前不允许其它事务对数据对象进行操作了(类似Java中的文件锁)。

①排它锁:事务T在对数据对象加X锁后,只有事务T可以对数据对象进行读、写。其它事务无法对数据对象在进行加锁,也不能读、写此数据对象。

②共享锁:事务T在对数据对象加S锁后,不管是其本身还是其它事务都只能对数据对象只读而无法写入,其它事务可以在对数据对象加S锁但不能加X锁。

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

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

相关文章

Maven和MyBatis框架简单实现数据库交互

MyBatis是一种基于Java语言的持久层框架,它的主要目的是简化与数据库的交互过程。MyBatis通过XML或注解配置来映射Java对象和数据库表之间的关系,并提供了灵活的查询方式和结果集处理机制。MyBatis还提供了事务管理、缓存机制、插件扩展等特性。 使用My…

Maven编译时,如何忽略swagger注解

public class School implements Serializable {private static final long serialVersionUID 1595261592489L;ApiModelProperty(value "主键")private Long id;ApiModelProperty(value "学校名称")private String name;ApiModelProperty(value "…

Linux学习记录——사십 高级IO(1)

文章目录 1、IO2、同、异步IO(5种IO类型)3、其它高级IO4、非阻塞IO 其它IO类型的实现在这篇之后的三篇 1、IO input,output。调用read或recv接口时,如果对方长时间不向我方接收缓冲区拷贝数据,我们的进程就只能阻塞&a…

python桶排序

桶排序是一种分布式排序算法,它将待排序的元素分散到不同的桶中,然后对每个桶中的元素进行排序,最后按照桶的顺序将所有元素合并起来。 桶排序的基本思想是将待排序的元素分散到若干个有序的桶中,然后对每个桶中的元素进行排序&a…

SpringBoot 操作Redis

Redis的Java客户端 Redis的Java客户端常用的有: JedisLettuceSpring Data Redis Spring Data Redis是Spring的一部分,对Redis底层开发包进行了高度封装。在Spring项目中,可以使用Spring Data Redis来简化操作。 Spring Data Redis使用方式…

基于面向对象,C++实现双链表

双链表同单链表类似,由一个值和两个指针组成 Node.h节点头文件 #pragma once class Node { public:int value;Node* prev;Node* next;Node(int value);~Node(); };Node.cpp节点源文件 #include "Node.h"Node::Node(int value) {this->value value…

如何开启文件共享及其他设备如何获取

1.场景分析 日常生活中,常常会遇到多台电脑共同办公文件却不能共享的问题,频繁的用移动硬盘、U盘等拷贝很是繁琐,鉴于此,可以在同一内网环境下设置共享文件夹,减少不必要的文件拷贝工作,提升工作效率。废话…

希尔排序和计数排序

📑前言 本文主要是【排序】——希尔排序、计数排序的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句…

Jmeter 压测接口返回大量数据时吞吐量上不去问题记录

1. 背景介绍 近期需要对外部提供一个批量查询接口,接口逻辑并不复杂,只是返回的数据有点多。分页查询,最大查询100个单子,分页单页最大值没有限制,那么,极端情况下,就是一次查询100个单…

【PyTorch简介】3.Loading and normalizing datasets 加载和规范化数据集

Loading and normalizing datasets 加载和规范化数据集 文章目录 Loading and normalizing datasets 加载和规范化数据集Datasets & DataLoaders 数据集和数据加载器Loading a Dataset 加载数据集Iterating and Visualizing the Dataset 迭代和可视化数据集Creating a Cust…

【Docker篇】从0到1搭建自己的镜像仓库并且推送镜像到自己的仓库中

文章目录 🔎docker私有仓库🍔具体步骤 🔎docker私有仓库 Docker私有仓库的存在为用户提供了更高的灵活性、控制和安全性。与使用公共镜像仓库相比,私有仓库使用户能够完全掌握自己的镜像生命周期。 首先,私有仓库允许…

力扣-盛最多水的容器

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜…

C //练习 4-10 另一种方法是通过getline函数读入整个输入行,这种情况下可以不使用getch与ungetch函数。请运用这一方法修改计算器程序。

C程序设计语言 (第二版) 练习 4-10 练习 4-10 另一种方法是通过getline函数读入整个输入行,这种情况下可以不使用getch与ungetch函数。请运用这一方法修改计算器程序。 注意:代码在win32控制台运行,在不同的IDE环境下…

C语言程序设计——程序流程控制方法(二)

循环结构 while语句 while(表达式){代码块; }do{代码块; }while(表达式)while语句分为do-while和while两种,区别在于循环之前是不是先执行一次循环的内容,可以类似于i和i的关系,本质上来讲是相同的。当表达式为真时,则会执行一次…

【Java 干货教程】Java方法引用详解

导言 Java方法引用是Java 8引入的一项重要特性,它提供了一种简洁、可读性高的方式来直接引用已经存在的方法。方法引用使得代码更加简洁、易懂,同时提高了代码的可维护性和重用性。本文将详细介绍Java方法引用的概念、语法和使用方法,并提供…

超详细的 pytest 钩子函数 之初始钩子和引导钩子来啦

前几篇文章介绍了 pytest 点的基本使用,学完前面几篇的内容基本上就可以满足工作中编写用例和进行自动化测试的需求。从这篇文章开始会陆续给大家介绍 pytest 中的钩子函数,插件开发等等。 仔细去看过 pytest 文档的小伙伴,应该都有发现 pyte…

【数据结构 | 希尔排序法】

希尔排序法 思路ShellSort 思路 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取&#xff0c…

关于Golang闭包

关于Golang闭包 1、能不用闭包的地方就不要用闭包,没必要为了炫技,写一段增加团队小伙伴负担的代码 2、for 循环代码,统一在内部用临时变量再存一下 for _, val : range values {val : val }在线代码演示:https://go.dev/play/p…

docker 支持 gpu

需求: 原先在宿主机里运行的服务需要迁移到docker 里 进程: docker 支持 gpu 需要装toolkit ,但是正常情况下没有对应的源,所以先引入源文件 distribution$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -fsSL …

ospf-gre隧道小练习

全网可达,R5路由表没有其他路由器的路由条目 注:每个路由器都添加了自己的环回,如R1就是1.1.1.1 R1可以分别ping通与R2,R3,R4之间的隧道 R1路由表上有所有路由器环回的路由条目 R5路由表上没有其他路由器的路由条目 实现代码: 首先将各个接口IP配好 边上3个路由器:[R6][R7][R…