【数据库】简答题汇总

1.什么是基本表?什么是视图?视图和基本表之间的区别和联系

基本表是本身独立存在的表,是实际独立存放在数据库中的表,是实表

视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是虚表

数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中

视图一经定义就像基本表一样被查询、删除,也可以在一个视图上再定义新的视图,但是对视图的更新操作有限制

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

三级模式:

模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公用数据视图

外模式:也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的逻辑表示

内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内的组织方式

二级映像:

外模式/模式映像:

定义了外模式与模式之间的对应关系

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

模式/内模式映像:

定义了数据全局逻辑结构与存储模式之间的对应关系

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

3.事务的概念及事务的4个特性。恢复技术和并发控制分别能保证事务的哪些特性

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

ACID特性

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作,要么都做,要么都不做

一致性:数据库的结果是从一个一致性状态转变成另一个一致性状态

隔离性:一个事务的执行不能被其他事务干扰,即一个事务的内部操作及使用的数据对其他事务是隔离的,并发执行的各个事务之间不能互相干扰

持续性:永久性,一个事务一旦提交,它对数据库中数据的改变是永久的

恢复技术----原子性和持续性(永久性)

并发控制----隔离性和一致性

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

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

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

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须

取空值(F的每个属性均为空值)

或者等于S中的某个元组的主码值

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

5.什么是数据库的完整性?什么是数据库的安全性?数据库的完整性和数据库的安全性有什么区别和联系?

数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏

数据库的完整性是指数据的正确性和相容性

完整性是为了防止数据库中存在不符合语义的数据,防止错误信息输入和输出

(防范对象是不合语义的数据)

安全性是保护数据库防止恶意破坏和非法的存取

(防范对象是非法用户和数据)

6.简述系统故障的恢复策略

(1)正向扫描日志文件,找出故障发生前已经提交的事务,将其事务标记记入UNDO队列;

(2)对UNDO队列中的各个事务进行撤销操作

(3)对REDO队列中的各个事务进行重做处理

事务故障的恢复

(1)反向扫描日志文件,查找该事务的更新操作

(2)对该事务的更新操作进行逆操作,即将日志记录中“更新前的值”写入数据库

(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理

(4)如此处理下去,直至读到此事务的开始标记,事务故障就恢复完成了

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

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

8. 在关系数据库中能完全消除数据冗余吗?

不能。要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性来保证表之间的联系。所以关系数据库中存在数据冗余,但能控制数据的冗余度

9.简述在SQL中,delete语句与drop table的区别

delete的作用是删除表中的元组,表的模式依然存在

drop table是将表的结构和元组全部删除,表被删除(drop)后就不再存在了

10.试述DBMS的主要功能

DBMS的主要功能包括:定义功能、操纵功能、运行控制功能、运行和维护功能、数据字典

11.简述产生死锁的原因以及预防死锁的三种方法

一个事务若申请锁未被批准,则需等待其它事务释放锁。当事务之间出现循环等待时,如果不加干预,则会一起等待下去,从而产生死锁。

常见的预防死锁的三种方法如下:

(1)要求每一个事务必须同时封锁所要使用的全部数据

(2)对所有数据对象规定一个封锁的次序,要求所有事物必须按照这个次序封锁数据对象

(3)当事务申请未被批准时,不等待加锁而是让一些事务回滚重新执行

12.试述文件系统的主要缺陷。

数据很难共享

数据冗余

数据独立性差

数据控制困难

13.简述数据库恢复的基本原理和REDO/UNDO恢复策略。

数据库恢复的基本原理是利用后备副本将数据恢复到转储时的一致状态,利用事务日志将数据库恢复到故障前事务成功提交时的一致状态

DBMS的恢复子系统根据事务日志的记载重做(REDO)已提交的事务,撤销(UNDO)未提交的事务,确保事务的原子性,使数据恢复到某个一致状态,这种恢复的方法称为REDO/UNDO恢复策略

简述实现数据库安全性控制的常用方法和技术

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改和破坏
常用的方法和技术:

用户身份鉴别(静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别)

存取控制

自主存取控制(授权与收回、角色)

强制存取控制

视图机制

审计

数据加密


定义模式

create schema authorization wang;

删除模式

drop schema wang cascade;

cascade 级联

restrict 限制

定义基本表

create table 表名(

列名 数据类型 列级完整性约束条件

……

表级完整性约束条件

);

create table course(
    cno char(4) primary key,
    cname char(40) not null,
    cpno char(4),
    ccredit smallint,
    foreign key(cpo) references course(cno)
);

修改基本表

alter 

删除基本表

drop

查询*select

select [all|distinct] <目标表达式>  [,<目标表达式>]…

from <表名或视图名> [,<表名或视图名>] | (<select语句>) [as] <别名>

[where <条件表达式>]

[group by <列名1> [having<条件表达式>]]

[order by <列名2> [asc|desc]]; 

插入*insert

insert

into <表名> [(<属性列1> [,<属性列2>] …]

values (<常量1> [,<常量2>] …);
例3.69将一个新元组元组(学号:201215128,姓名:陈冬,性别:男,所在系IS,年龄:18岁)插入到student表中

insert

into student(sno,sname,ssex,sdept,sage)

values('201215128','陈冬','男','IS',18);

修改*update

update <表名>

set <列名>=<表达式> [,<列名>=<表达式>] …

[where <条件>];
例3.73将学生201215121的年龄改为22岁

update student

set sage=22

where sno='201215121';

删除delete

delete

from <表名>

[where <条件>];
例3.76删除学号为201215128的学生记录

delete 

from student

where sno='201215128';

定义视图

create view <视图名> [<列名> [,<列名>]…)]

as <子查询>

[with check option];

drop view <视图名> [cascade];

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux(centos)安装 MySQL 8 数据库(图文详细教程)

前言 前几天写了个window系统下安装Mysql的博客&#xff0c;收到很多小伙伴私信需要Linux下安装Mysql的教程&#xff0c;今天这边和大家分享一下&#xff0c;话不多说&#xff0c;看教程。 一、删除以前安装的MySQL服务 一般安装程序第一步都需要清除之前的安装痕迹&#xff…

Segment Anything论文详细翻译【Part2:引言Introduction】

目录 写在前面 Introduction 第1段 第2段 第3段 第4段 第5段 第6段 第7段 第8段 第9段 第10段 第11段 第12段 Figure2 关键特点 图中具体内容 图例说明 写在前面 为啥要写这篇文章&#xff1f;因为找不到一篇写的特别好的【翻译并仔细解释】文章。网上大多千…

整数拼接(哈希表 枚举)

2068. 整数拼接 - AcWing题库 #include <bits/stdc.h> using namespace std;const int N 1e5 10;int n,k; int a[N]; int s[11][N]; //因为Ai < 10^9 10^9 是一个10位数&#xff0c;所以要*10^10 才能拼接int main() {cin >> n >> k;for (int i 1;i &…

使用爬虫技术获取网页中的半结构化数据

目录 前言1. 半结构化数据与爬虫技术简介1.1 半结构化数据的定义与特性1.2 爬虫技术的基本原理 2. 爬取半结构化数据的实现过程2.1 明确目标与准备2.2 发送HTTP请求2.3 解析网页内容2.4 动态内容的处理2.5 数据存储与清洗 3. 技术挑战与应对策略3.1 处理反爬机制3.2 提高爬取效…

Linux(Centos 7.6)命令详解:ls

1.命令作用 列出目录内容(list directory contents) 2.命令语法 Usage: ls [OPTION]... [FILE]... 3.参数详解 OPTION: -l&#xff0c;long list 使用长列表格式-a&#xff0c;all 不忽略.开头的条目&#xff08;打印所有条目&#xff0c;包括.开头的隐藏条目&#xff09…

一文读懂主成分分析法(PCA)

主成分分析法&#xff08;PCA&#xff09; 主成分分析法&#xff08;PCA&#xff09;主成分分析的基本思想主成分的计算主成分分析的原理主成分分析的特点主成分分析的应用 主成分分析法&#xff08;PCA&#xff09; 主成分分析的基本思想 PCA是1901 年Pearson在研究回归分析…

LLVM防忘录

目录 Windows中源码编译LLVMWindows下编译LLVM Pass DLL Windows中源码编译LLVM 直接从llvm-project下载源码, 然后解压后用VS2022打开该目录, 然后利用VS的开发终端执行: cmake -S llvm -B build -G "Visual Studio 17 2022" -DLLVM_ENABLE_PROJECTSclang -DLLVM_…

adb 不是内部或外部命令,也不是可运行的程序或批处理文件。

1、问题概述&#xff1f; 本文讲述的是在window系统中安装了Android SDK之后&#xff0c;adb无法使用的情况。 在cmd中执行adb devices提示如下问题&#xff1a; adb 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 问题&#xff1a;没有配置android sdk环…

Leetcode 第426场周赛分析总结

3370. 仅含置位位的最小整数 AC代码 class Solution { public:int smallestNumber(int n) {int x 1;while (x - 1 < n) {x << 1;}return x - 1;} };分析总结 也可以先直接获取n的长度&#xff0c;然后计算得到&#xff0c;这样时间复杂度由O(logn)优化为O(1) 在C…

【从零开始入门unity游戏开发之——unity篇05】unity6基础入门——运行游戏按钮、Game游戏窗口和Project项目窗口介绍

文章目录 运行游戏按钮、Game游戏窗口和Project项目窗口一、运行游戏按钮二、Game游戏窗口1、右上角设置1.1 如果没有相机渲染则发出警告1.2 在”编程模式”下清除每一帧1.3 窗口最大化 2、上方工具&#xff08;1&#xff09;切换手机模拟器&#xff08;2&#xff09;切换不同显…

九、Vue 事件处理器

文章目录 前言一、基础事件绑定:v-on 指令二、方法调用:组织有序的交互逻辑三、事件修饰符阻止冒泡与默认事件捕获与自身触发单次触发与鼠标按键区分四、按键修饰符前言 在 Vue.js 的交互世界里,事件处理器起着举足轻重的作用,它让页面从静态展示迈向动态交互,精准捕捉用户…

【项目】基于趋动云平台的Stable Diffusion开发

【项目】基于趋动云平台的Stable Diffusion开发 &#xff08;一&#xff09;登录趋动云&#xff08;二&#xff09;创建项目&#xff1a;&#xff08;三&#xff09;初始化开发环境&#xff1a;&#xff08;四&#xff09;运行代码&#xff08;五&#xff09;运行模型 &#xf…

VSCode下配置Blazor环境 断点调试Blazor项目

VSCode下使用Blazor的环境配置和插件推荐 Blazor是一种用于构建交互式Web UI的.NET框架&#xff0c;它可以让你使用C#、Razor和HTML进行Web开发&#xff0c;而不需要JavaScript。在这篇文章中&#xff0c;我们将介绍如何在VSCode中配置Blazor环境&#xff0c;并推荐一些有用的…

word文档中的文档网格——解决相同行间距当显示出不同行间距的情况

1 问题 被一个行间距调疯了&#xff0c;就是样式改了没用&#xff0c;格式刷刷了没用。就是肉眼可以看出行间距完全不一样。 2 解决方法 1&#xff09;修改论文正文(即出现问题文本的样式)样式&#xff1a;样式>修改>格式>段落>缩进和间距>取消"如果定义了…

ubuntu如何禁用 Snap 更新

.禁用 Snap 更新&#xff08;通过修改 snapd 配置&#xff09; 打开并编辑 /etc/apt/apt.conf.d/50unattended-upgrades文件。 这个文件控制自动更新的行为。 sudo vim /etc/apt/apt.conf.d/50unattended-upgrades 里面有一行将里面的auto改为false即可禁用更新&#xff1a;…

UniApp 原生插件开发指南

一、UniApp 原生插件开发引言 在当今的移动应用开发领域&#xff0c;跨平台开发已成为主流趋势&#xff0c;而 UniApp 作为一款强大的跨平台开发框架&#xff0c;备受开发者青睐。它凭借 “一套代码&#xff0c;多端运行” 的特性&#xff0c;极大地提高了开发效率&#xff0c…

JVM实战—9.线上FGC的几种案例

大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收) 4.线上系统每天数十次FGC导致频繁卡顿的优化(大对象问题…

电脑找不到mfc110.dll文件要如何解决?Windows缺失mfc110.dll文件快速解决方法

一、mfc110.dll文件的重要性 mfc110.dll&#xff0c;全称Microsoft Foundation Class Library 110&#xff0c;是Microsoft Visual C Redistributable for Visual Studio 2012的一部分。这个动态链接库&#xff08;DLL&#xff09;文件对于支持基于MFC&#xff08;Microsoft F…

《机器学习》——数据标准化(0~1标准化,z标准化)

文章目录 数据标准化一、什么是标准化二、常用标准化0~1标准化z标准化 三、注意事项 数据标准化 一、什么是标准化 数据标准化是一种数据预处理技术&#xff0c;用于将数据按照一定的规则进行变换&#xff0c;使得不同特征或变量具有可比性和一致性。作用 消除量纲影响 在实际…

【Vim Masterclass 笔记02】第3章:Vim 核心知识 + L08:Vim 核心浏览命令 + L09:Vim 核心浏览命令同步练习

文章目录 Section 3&#xff1a;Vim Essentials&#xff08;Vim 核心知识&#xff09;S03L08 Essential Navigation Commands1 光标的上下左右移动2 上 / 下翻页3 基于单词前移4 基于单词后移5 重新定位视图中的文本&#xff08;页面重绘&#xff09;6 定位到所在行的行首7 光标…