当前位置: 首页 > news >正文

【数据库】复习

数据库期中复习——概念填空_在修改数据结构时,为了保证数据库的数据独立性-CSDN博客

选择题

关系数据理论-数据库习题_数据库关系理论考题-CSDN博客

关系、关系模式、关系模型区别和联系

关系:元组的集合,一张表

关系模式:关系的描述   R(U,D,DOM,F)

关系模型:数据结构、数据操纵与完整性约束

关系和关系模式的区别
1.关系模式是型,关系是值,关系模式是对关系的描述
2.关系是关系模式在某一个时刻的状态或者内容,关系模式是静态的,稳定的,而关系是动态的,随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
3.类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,可以把”关系”理解为一张带数据的表,而“关系模式”是这张数据表的表结构。

关系模型和关系的区别

关系模型包含关系,关系是关系模型的数据结构,在关系模型中,现实世界的实体以及实体间的各级联系均用单一的结构类型,即关系来表示


                        

数据模型由数据结构、数据操作和数据的完整性约束条件三部分组成

第七章

1.事务的概念及事务的4个特性

事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做

ACID特性

事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)四大特性

2.数据库中为什么要进行并发控制?并发控制技术能够保证哪些特性?

数据库是共享资源,可以供多个用户使用,所以通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取或修改同一数据的情况。
若对并发操作不加以控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。
并发控制技术能够保证事务的隔离性和一致性。

3.并发操作可能会产生哪几种数据不一致问题?用什么方法能够避免各种不一致的情况?

(1)丢失修改

两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失

(2)不可重复读

事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果

(3)读脏数据

事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据

避免不一致的方法和技术就是并发控制。最常用的并发控制技术是封锁技术,还有在分布式数据库系统中采用时间戳方法来进行并发控制

第八章

1.数据库中为什么要进行数据库恢复?数据库恢复能够保证事务的哪些特性?

数据备份就是要保存数据的完整性,防止非法关键,断点,病毒感染等情况,使数据丢失

数据还原就是数据库出现错误或者是崩溃了不可以用,就把原来的数据恢复回来。提高系统的可用性和灾难可恢复性,在数据库系统崩溃的时候,可以恢复数据

使用数据库备份还原数据库是数据库崩溃时提供数据恢复最小代价的最优方案。没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段。

数据库恢复能够保证事务的原子性和持久性

一、简答题

1、2、10、11

二、关系代数

三、关系规范化理论

四、数据库设计

画E-R图,然后把E-R图转换成数据模型

五、SQL语言

一、简答题

1.什么事数据库管理系统?它有哪些功能?P5

DBMS

建立、运用和维护数据库时进行集中控制的软件系统

  • 数据定义
  • 数据组织、存储和管理
  • 数据操纵
  • 数据库的事务管理和运行管理
  • 其他,通信、数据转换、互访和互操作

2.简述数据库系统的三级模式和两级映像结构,其如何保证数据的逻辑独立性和物理独立性 P28

模式、外模式、内模式

外模式/模式映像、模式/内模式映像

当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是根据数据的外模式编写的,从而应用程序不用修改,保证了数据与程序的逻辑独立性

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

3.简述关系模型的三类完整性规则及其内容 P45

实体完整性:主码中的属性不能取空

参照完整性:不引用不存在的实体,参照关系中的外码或者取空或者等于被参照关系中某个元组的主码值

用户定义的完整性规则反映某一具体应用涉及的数据必须满足的语义要求

4.简述数据库设计的六个阶段及每个阶段的主要工作 P209

  • 需求分析:分析用户的需求,包括数据、功能和性能需求;
  • 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
  • 逻辑结构设计:将E-R图转换成表,实现从E-R模型到关系模型的转换;
  • 数据库物理设计:主要是为所涉及的数据库选择合适的存储结构和存取路径;
  • 数据库实施:包括编程、测试和试运行;
  • 数据库运行与维护:系统的运行与数据库的日常维护

在数据库设计过程中,需求分析和概念结构设计可以独立于任何数据库管理系统进行,逻辑结构设计和物理结构设计与选用的数据库管理系统密切相关

5.简述事务的概念和四个特性。P293 并发控制能保证事务的哪些特性?P310

事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位

ACID

  • 原子性Atomicity
  • 一致性Consistency
  • 隔离性Isolation
  • 持续次Durability

并发控制技术保证了事务的隔离性一致性

二、关系代数语言

设有学生-课程-教学数据库,包含三个关系,分别为:S(S#,SNAME,SEX,AGE),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE),试用关系代数表达式表达以下问题:

1.查询年龄AGE大于22的男同学的学号和姓名。

2.查询选修任课教师TEACHER是“李小明”课程的学生学号。

3.查询选修了课程C#为“C1”和“C2”课程的学生学号。

4.查询全部学生都选修的课程号与课程名。

三、关系规范化理论

关系模式R(员工编号,日期,零件数,部门名称,部门经理),表示某个工厂里每个员工的日生产零件数以及员工所在的部门和经理信息。假设每个员工每天只有一个日生产零件数,每个员工只在一个部门工作,每个部门只有一个经理。完成:

1.写出关系模式R的基本函数依赖和所有候选码

2.R是否为2NF,如果不是,把R分解为2NF

不是

(员工编号,日期)是码,存在非主属性(部门名称)对码的部分依赖 [员工编号--->部门名称]

分解:

R1(员工编号,日期,零件数)

R2(员工编号,部门名称,部门经理)

3.进一步将R分级为3NF

R1(员工编号,日期,零件数)

R2(员工编号,部门名称)

R3(部门名称,部门经理)

四、数据库设计题

某IT公司的数据库信息有:

部门:部门编号、部门名称、办公地点

员工:员工编号、姓名、级别

项目:项目编号、项目名称、开始时间、结束时间

一个员工只在一个部门工作;每个部门有唯一的一个员工作为部门经理;每个项目由一名员工负责,多名员工参与,一个员工只负责一个项目,可参加多个项目,在每个项目具有工作时间比。

1.试画出E-R图,并在图上注明属性、联系及联系类型

2.将E-R 图转换成关系模型,并说明主码和外码。

关系模型为:
部门(编号,名称,办公地点,经理编号),主码:编号,外码:部门的经理编号参照员工的编号;
员工(编号,姓名,级别,部门编号),主码:编号,外码:员工的部门编号参照部门的编号
项目(编号,名称,开始日期,结束日期,负责人编号),主码:编号,外码:项目的负责人编号参照员工的编号;
员工参与(员工编号,项目编号,时间比),主码:员工编号,项目编号;外码:员工编号、项目编号分别参照员工的编号、项目的编号。
 

五、SQL语言编程题

假设一个数据库中有3个关系:

客户关系Customer(CustomerID,CName,CA),属性的含义依次为客户号、客户名称和地址;

产品关系Products(ProductID,PName,Price,Provide,Storage),属性的含义依次为产品号、产品名、单价、供应商和库存量;

订单关系Orders(OrderID,CustomerID,ProductsID,Odate,QTY),属性的含义依次为订单号、客户号、产品号、日期和数量。

规定一张用户订单只能订购一种产品。用SQL语句完成以下各题:

1.建立Customers表、Orders表,要求定义主码和外码约束

create table Customers(CustomerID char(10) primary key,CName varchar(20),CA varchar(20)
);create table Orders(OrderID char(10) primary key,CustomerID char(10) foreign key references Customers(CustomerID),ProductID char(10) foreign key references Products(ProductID),Odate date,QTY int
);

2.往Products表中添加一条记录,产品号=‘1018’,产品名=‘洗衣机’,单价=1500,供应商=“海尔”,库存量=150

insert into Products values('1018','洗衣机',1500,'海尔',150);

3.更改Products表,将“洗衣机”产品的价格下浮10%

update Products set Price=Price*0.9 where PName='洗衣机';

4.删除Customers表地址中有“西安市”的客户信息

delete from Customers where CA like '%西安市%';

5.允许用户李小明对Orders表进行插入、删除操作

grant insert,delete on Orders to '李小明';

6.查询西安地区客户的订单情况

select * from Orders where CustomerID=(select CustomerID from Customers where CA like '%西安市%');

7.查询产品表中没有订单记录的产品信息

select * from Products where ProductID not in(select ProductID from Orders);

8.统计2019年12月30日的订单中每种产品的总数量

select sun(QTY) from Orders
where Odate='2019-12-30'
group by ProductID;

9.在订单表上建立触发器,当添加一条记录时,减少产品表中对应产品的库存量

create trigger trigger_insert
on Orders
after insert
as 
uodate Products set Storage=Storage-inserted.QTY
from Products,inserted
where Products.ProductID=inserted.ProductID;

相关文章:

【数据库】复习

数据库期中复习——概念填空_在修改数据结构时,为了保证数据库的数据独立性-CSDN博客 选择题 关系数据理论-数据库习题_数据库关系理论考题-CSDN博客 关系、关系模式、关系模型区别和联系 关系:元组的集合,一张表 关系模式:关系的描述 R(…...

CorsConfig前后端数据跨域连接,IDEA右侧Maven窗口消失

前后端数据跨域连接(分页查询并显示) 一、后端添加分页查询 分页查询核心就是:每页需要显示多少条记录(pageSize),当前查看第几页(pageNum);MySQL提供了分页函数limit m,n select * from table limit (pageNum-1)*pageSize, pa…...

Python微博动态爬虫

本文是刘金路的《语言数据获取与分析基础》第十章的扩展,详细解释了如何利用Python进行微博爬虫,爬虫内容包括微博指定帖子的一级评论、评论时间、用户名、id、地区、点赞数。 整个过程十分明了,就是用户利用代码模拟Ajax请求,发…...

【设计模式】单例模式 在java中的应用

文章目录 引言什么是单例模式单例模式的应用场景单例模式的优缺点优点缺点 单例模式的基本实现饿汉式单例模式懒汉式单例模式双重检查锁定静态内部类枚举单例 单例模式的线程安全问题多线程环境下的单例模式线程安全的实现方式1. **懒汉式单例模式(线程不安全&#…...

burp suite 8

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

为什么在Java中super与this不能共存于子类构造器中,其中this起什么作用

在 Java 中,super 和 this 是两个关键字,它们在子类的构造器中有特定的用途和限制。 super 关键字: super 用于从父类(超类)访问成员(属性和方法)或者调用父类的构造方法。 在子类的构造器中&…...

Hypothesis:高效的 Python 测试工具

简介:Hypothesis 是一个强大的 Python 测试库,旨在自动生成各种测试案例,以帮助开发者发现潜在的边界问题和隐藏的错误。通过对输入数据进行智能化的探索,Hypothesis 能够为测试提供更全面的覆盖,避免遗漏一些极端或不…...

Terminus Calculator 计算原理分享

在《使命召唤:黑色行动 6》僵尸模式中,Terminus 关卡的研究办公室里有一个复杂的数学谜题需要解决。为了获得多相共振器,玩家需要计算出三个数字并输入电脑。虽然可以花费 5000 精华来获得答案,但使用 Terminus Calculator 可以更…...

Wwise 使用MIDI文件、采样音频

第一种:当采样音频只有一个文件的时候 1.拖入MIDI文件到Interactive Music Hierarchy层级 2.拖入采样音频到Actor-Mixer Hierarchy层级 3.勾选MIDI显示出面板,设置Root Note与采样音频音高相同,这里是C#5 4.播放测试,成功&…...

在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案

在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案 背景概述解决方案脚本实现脚本说明使用指南注意事项在CentOS操作系统环境中,若需并发上传特定目录下的.wav文件至HTTP服务器,而系统未安装GNU parallel工具,我们可通过其他方法实现此需求。本文将介绍一种利用Sh…...

【RocketMQ 源码分析(一)】设计理念与源码阅读技巧

RocketMQ 的设计理念与源码阅读技巧 一、设计理念二、源码设计三、源码阅读技巧 一直想仔细仔细看看这个 RocketMQ 的源码,学学它的设计思想和编码风格,没准在以后自己在设计和编码的时候有思考的方向。这是专栏的第一篇 —— 介绍下 RocketMQ 的一些设计…...

独立ip服务器有什么优点?

网站的性能和安全性直接影响到用户体验和业务发,独立IP服务器作为一种主流的托管方式,因其独特的优势而受到许多企业和个人站长的青睐。与共享IP相比,独立IP服务器到底有哪些优点呢? 使用独立IP的用户不必担心与其他网站共享同一…...

如何使用Python库连接Redis

1、redis-py 库封装一个 Redis 工具类可以帮助我们简化 Redis 的操作并提高代码的复用性和可维护性。 安装redis pip install redisimport redis import logginglogging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__)class RedisUtils:def __init__(s…...

Vant UI +Golang(gin) 上传文件

前端基本用法:点击查看 实现代码: const afterRead (file) > {console.log(file);//set content-type to multipart/form-dataconst formData new FormData();formData.append("file", file.file);request.POST("/api/v1/users/up…...

【Unity高级】如何实现粒子系统的间歇式喷射

先看下要最终实现的效果: 代码如下: using UnityEngine; using System.Collections;public class ParticleBurstController : MonoBehaviour {private ParticleSystem _particleSystem; // 获取粒子系统public float burstDuration 2f; // 每次…...

通过linux命令获取自选股票价格及大盘涨跌幅

技术发展与数据获取需求 互联网与金融数据融合:随着互联网的普及和金融市场的数字化发展,金融数据的获取和分析变得更加便捷和重要。投资者希望能够及时、准确地获取股票价格和市场指数等信息,以便做出合理的投资决策。Linux 作为一种强大的操作系统,为数据获取和处理提供…...

透彻理解并解决Mockito模拟框架的单元测试无法运行的问题

本篇的实例基于Maven IDE (VS Code) 运行 在VS Code 运行的时候, 不需要在pom.xml 中添加任何插件就可以在测试类中看到如下的绿色按钮,单击就可以运行使用Mockito 注解 ExtendWith(MockitoExtension.class) 或是 Mockito 代码方式的测试。 不使用注…...

vue3字典数据的显示问题(使用hooks解决)

我们在使用 element-plus的时候,经常会使用一些字典数据, 在搜索框的时候,字典数数要使用 el-select el-option 来显示,当在table表格的时候,我们通常记录的是 字典数据的id , 又要把它改变成 字典数据的 name 属性 因…...

Elasticsearch 单节点安全配置与用户认证

Elasticsearch 单节点安全配置与用户认证 安全扫描时发现了一个高危漏洞:Elasticsearch 未授权访问 。在使用 Elasticsearch 构建搜索引擎或处理大规模数据时,需要启用基本的安全功能来防止未经授权的访问。本文将通过简单的配置步骤,为单节…...

二分查找(带图详解)

优选算法系列 文章目录 优选算法系列前言一、二分查找的思想二、算法使用小总结 三、代码实现四、二分查找拓展4.1、查找第一次出现的target小总结 4.2、target最后出现的位置小总结 五、代码总结 前言 在这篇博客中,我会给大家分享二分查找及其扩展。 这是链接-&…...

PSO-Transformer分类预测Matlab代码:基于粒子群优化算法优化Transfor...

PSO-Transformer分类 Matlab代码 基于粒子群优化算法(PSO)优化Transformer的数据分类预测(可以更换为单、多变量时序预测/回归,前私我),Matlab代码,可直接运行,适合小白新手 程序已经调试好,无需更改代码替换数据集即可…...

AIGlasses_for_navigation视频处理应用:使用AE制作导航效果演示片段视频

AIGlasses_for_navigation视频处理应用:使用AE制作导航效果演示片段视频 你有没有想过,那些看起来科技感十足、路径光效流畅的AR导航演示视频是怎么做出来的?是不是觉得需要专业的动画团队才能实现? 其实,借助像Afte…...

新手前端第一课:在快马平台用ai生成一个属于自己的“notepad++”

作为一个刚接触前端开发的新手,我最近在InsCode(快马)平台上尝试做了一个简易版的文本编辑器,感觉特别适合用来理解基础的前端开发逻辑。整个过程就像搭积木一样有趣,现在把学习心得分享给大家。 项目构思阶段 我想做一个类似notepad的简易编…...

Asian Beauty Z-Image Turbo 跨平台部署:基于.NET框架的Windows桌面应用集成

Asian Beauty Z-Image Turbo 跨平台部署:基于.NET框架的Windows桌面应用集成 最近在做一个Windows桌面项目,需要集成一个图片生成功能。团队里的小伙伴用Python在服务器上跑了一个Asian Beauty Z-Image Turbo模型,效果挺惊艳的,但…...

为什么92%的FastAPI AI服务仍在用阻塞式响应?(深度剖析async def vs sync def在LLM流式场景下的内存泄漏与协程死锁)

第一章:FastAPI 2.0异步AI流式响应的核心价值与演进脉络在大模型服务规模化部署的背景下,传统同步HTTP响应已难以满足低延迟、高吞吐、用户体验敏感的AI交互场景。FastAPI 2.0通过深度整合Python 3.11原生异步运行时、优化ASGI中间件栈及重构StreamingRe…...

墨语灵犀GPU算力适配指南:A10/A100/V100显卡部署性能与显存占用实测

墨语灵犀GPU算力适配指南:A10/A100/V100显卡部署性能与显存占用实测 1. 引言:当古典美学遇见现代算力 想象一下,你正在处理一份重要的海外文献,或者需要将一段优美的中文诗歌翻译成英文。你希望翻译结果不仅准确,更要…...

VS2019报错找不到ucrtbased.dll?3种修复方法实测有效(附文件下载)

VS2019报错找不到ucrtbased.dll?3种修复方法实测有效(附文件下载) Visual Studio 2019是微软推出的强大集成开发环境,但在使用过程中,不少开发者会遇到"找不到ucrtbased.dll"的报错问题。这个错误通常发生在…...

3大突破解决3D建模痛点:QRemeshify四边形网格重构技术全解析

3大突破解决3D建模痛点:QRemeshify四边形网格重构技术全解析 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify 在3D建模流程…...

告别海量标注!用Wav2Vec 2.0在10分钟语音数据上跑出可用ASR模型

极低资源语音识别实战:用Wav2Vec 2.0在10分钟数据上构建可用模型 当创业团队面临语音交互产品的原型开发时,最头疼的往往不是算法选择,而是标注数据匮乏的现实。传统语音识别方案需要数百小时的标注语音才能达到基本可用水平,而Wa…...

Storj监控与告警配置:如何实时掌握存储网络状态

Storj监控与告警配置:如何实时掌握存储网络状态 【免费下载链接】storj Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure. 项目地址: https://gitcode.com/gh_mirrors/st/storj St…...