您现在的位置是:首页 > 正文

数据库学习记录——错题总结(一)

2024-02-29 11:47:50阅读 0

第一套

1.对关系模型叙述错误的是( )。
正确答案: D 你的答案: D (正确)
建立在严格的数学理论、集合论和谓词演算公式的基础之上
微机 DBMS 绝大部分采取关系数据模型
用二维表表示关系模型是其一大特点
不具有连接操作的 DBMS 也可以是关系数据库系统

关系模型是指用二维表的形式表示实体和实体间联系的数据模型。在二维表中的行定义,即对关系的描述称为关系模式。
关系模型的特点:
1、 数据结构单一:关系模型中,不管是实体还是实体之间的联系,都用关系来表示,而关系都对应一张二维数据表,数据结构简单、清晰。

2、关系规范化,并建立在严格的理论基础上:构成关系的基本规范要求关系中每个属性不可再分割,同时关系建立在具有坚实的理论基础的严格数学概念基础上。

3、概念简单,操作方便:关系模型最大的优点就是简单,用户容易理解和掌握,一个关系就是一张二维表格,用户只需用简单的查询语言就能对数据库进行操作。
故A、C正确;
常用的DBMS(数据库管理系统)如MySQL等基本上都是基于关系模型的关系型数据库,故B正确。

2.在数据库三级模式结构中,描述数据库中全体逻辑结构和特性的是?

正确答案: D 你的答案: B (错误)
外模式
内模式
存储模式
模式

用户级对应外模式,概念级对应模式,物理级对应内模式

SQL语言支持数据库三级模式结构,在SQL中,模式对应于基本表,内模式对应于存储文件,外模式对应于视图和部分基本表,元组对应于表中的行,属性对应于表中的列

  1. 模式(Schema)
    模式也称为:逻辑模式,它是DB中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式层是数据库模式结构的中间层,既不涉及到数据的物理存储细节和硬件环境,也与具体的应用程序、应用开发工具以及高级程序设计语言无关(C、C++、JAVA等)。
    模式就是数据库数据在逻辑上的视图,且一个数据库只有一个模式。实际工作中,模式就等同于程序员创建一个具体的数据库的全部操作,如:这是一个MySQL数据库,有2张表,每个表的名字,属性的名字、类型、取值范围,主键,外键,索引,其他完整性约束等等。
    DBMS提供模式描述语言(模式DDL)来严格地定义模式。

  2. 外模式
    外模式也称为:子模式(subschema)/用户模式,它是数据库用户(应用程序员、最终用户)能够看到的使用的局部数据的逻辑结构和特征的描述,是数据库的数据视图,是与某一个应用有关的数据的逻辑表示。
    外模式通常是模式的子集。一个数据库可以有多个外模式。同一个外模式可以为某一用户的多个应用系统所使用,但一个应用系统只能使用一个外模式。
    外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
    DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

  3. 内模式
    内模式也称为:存储模式(Storage schema),一个数据库只有一个内模式。它是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。如:记录的存储方式是堆存储,还是按照某些属性值的升(降)存储,还是按照属性值聚簇(cluster)存储;索引按照什么方式组织,是B+树索引,还是hash索引等等。
    DBMS提供内模式描述语言(内模式DDL/存储模式DDL)来严格定义内模式。

3.已知事务 T1 的封锁序列为: LOCK S(A) … LOCK S(B) … LOCK X©
… UNLOCK(B) … UNLOCK (A) … UNLOCK ©
事务 T2 的封锁序列为: LOCK S(A) … UNLOCK (A) … LOCK S(B)
… LOCK X© … UNLOCK © … UNLOCK (B)
则遵守两段封锁协议的事务是( )

正确答案: A 你的答案: B (错误)
T1
T2
T1和T2
没有

两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)。
加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。
解锁阶段:当事务释放了一个封锁以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作。

两段封锁法可以这样来实现:事务开始后就处于加锁阶段,一直到执行ROLLBACK和COMMIT之前都是加锁阶段。ROLLBACK和COMMIT使事务进入解锁阶段,即在ROLLBACK和COMMIT模块中DBMS释放所有封锁。

第二套

1.在数据库的三级模式结构中,内模式有( )

正确答案: A 你的答案: A (正确)
1个
2个
三个
任意多个

三级模式:外模式、概念模式、内模式。一个数据库中外模式可以有多个,内模式和概念模式只能各有1个。

2.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于 ( )。

正确答案: C 你的答案: D (错误)
实体完整性约束
参照完整性约束
用户自定义完整性约束
关键字完整性约束

选 C
任何关系数据库系统都应该支持实体完整性(可以理解为主键约束)和参照完整性(可以理解为外键约束)。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的唯一约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。

3.DB、DBMS和DBS三者之间的关系是( )
正确答案: B 你的答案: C (错误)
DB包括DBMS和DBS
DBS包括DB和DBMS
DBMS包括DB和DBS
不能相互包括

DBS(数据库系统)包含DB(数据库)和 DBNS(数据库管理系统)

4.数据库三级模式体系结构的划分,有利于保持数据库的 ( )。

正确答案: A 你的答案: B (错误)
数据独立性
数据安全性
结构规范化
操作可行性请添加图片描述
5.下列选项中的锁模式,可以用于数据修改操作,确保不会同时对同一资源进行多重更新的是()

正确答案: C 你的答案: C (正确)
共享锁
更新锁
排他锁
架构锁

共享锁S:共享锁锁定的资源可以被其他用户读取,但是其他用户无法修改,在执行select时,sql server会对对象加共享锁。(其他人可读不可写)
排它锁X:(独占锁)其他人不能读也不能写(所以不会多重更新)。

更新锁U:当SQL Server准备更新数据时,它首先对数据对象作更新锁锁定,这样数据将不能被修改,但可以读取。等到SQL Server确定要进行更新数据操作时,他会自动将更新锁换为独占锁,当对象上有其他锁存在时,无法对其加更新锁。

架构锁:在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改 (Sch-M) 和架构稳定性 (Sch-S)。

6.MYSQL实现主从复制的日志是哪种?
正确答案: C 你的答案: A (错误)
READ LOG
UNDO LOG
BINLOG
GENERAL LOG

mysql主(称master)从(称slave)复制的原理:
(1).master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)
(2).slave将master的binary log events拷贝到它的中继日志(relay log)
(3).slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

7.SQL Server 支持哪几种备份?
正确答案: A B C D 你的答案: A B C D (正确)
数据库备份
事务日志备份
差异备份
文件和文件组备份

8.w_user表结构如下:

+--------+---------+------+-----+---------+----------------+
| Field  | Type    | Null | Key | Default | Extra          |
+--------+---------+------+-----+---------+----------------+
| u_id   | int(4)  | NO   | PRI | NULL    | auto_increment |
| u_name | char(8) | YES  |     | NULL    |                |
| u_pass | char(8) | YES  |     | NULL    |                |
| u_img  | blob    | YES  |     | NULL    |                |
| u_info | text    | YES  |     | NULL    |                |
+--------+---------+------+-----+---------+----------------+

以下创建索引的语句正确的是( )
正确答案: B C 你的答案: A D (错误)
CREATE INDEX in1 ON w_user(u_name(10));
CREATE INDEX in2 ON w_user(u_pass(3));
CREATE INDEX in3 ON w_user(u_img(10));
CREATE INDEX in4 ON w_user(u_info);

创建索引的语句是create index indexname on tablename (username (length))
其中若是char和varchar类型,length可以小于字段实际长度,若是blob或text类型,必须指定length!

第三套

1.语句 delete from sc 表明 ( )

正确答案: A 你的答案: D (错误)
删除sc中的全部记录
删除基本表sc
删除基本表sc中的列数据
删除基本表sc中的部分行

选 A
【分析】本题考查的是SQL的delete语句
DELETE 语句用于删除表中的行。语法如下:
DELETE FROM 表名称 WHERE 列名称 = 值
当delete语句中的WHERE条件为空时,即语句为:DELETE FROM 表名称 ,默认可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的。也就是删除表中的全部记录。
综上所述,语句 delete from sc 属于where条件为空的delete语句,此时是删除表sc中的全部记录,也就是说答案选A
2.Mysql中表student_table(id,name,birth,sex),查询重复姓名、重复次数,并按重复次数降序排列,正确的是()?
正确答案: A 你的答案: C (错误)

select name,count(*) as c1 from student_table 
group by name 
having c1 > 1
order by c1 desc ;

select name,count(*) as c1 from student_table 
group by name 
having c1 > 1
order by c1;

select name,count(*) as c1 from student_table 
where count(*) > 1
group by name 
order by c1 desc ;

select name,count(*) as c1 from student_table 
group by name 
where c1 > 1
order by c1 desc;

WHERE 关键字无法与聚合函数一起使用, 筛选分组后的各组数据用HAVING

3.Mysql中表student_table(id,name,birth,sex),score_table(stu_id,subject_name,score),查询多个学科的总分最高的学生记录明细以及总分,如下SQL正确的是()?
正确答案: A 你的答案: B (错误)

select  t2.*,c1 as `最高分`  from (
select stu_id,sum(score) as c1 from score_table group by stu_id order by c1 desc limit 1
) t1
join student_table t2 
on t1.stu_id = t2.id ;


select  t2.*,c1 as `最高分`  from (
select stu_id,max(score) as c1 from score_table group by stu_id order by c1 desc limit 1
) t1
join student_table t2 
on t1.stu_id = t2.id ;


select  t2.*,c1 as `最高分`  from (
select stu_id,max(sum(score)) as c1 from score_table group by stu_id order by c1 desc limit 1
) t1
join student_table t2 
on t1.stu_id = t2.id ; 


select  t2.*,c1 as `最高分`  from (
select stu_id,max(sum(score)) as c1 from score_table group by stu_id
) t1
join student_table t2 
on t1.stu_id = t2.id ;

sum所有学生分数,倒序一下limit1就是总分最高的学生了

聚合函数之间不能直接嵌套使用
D应该改为 select stu_id,max(total) from (select stu_id,sum(score) as total from score_table group by stu_id) as a

4.“查询”设计视图窗口分这上下部分,下部分为()。
正确答案: A 你的答案: D (错误)
设计网络
查询记录
属性窗口
字段列表

查询”设计视图窗口分这上下部分;
上部分为:“字段列表区”,用来显示所选择的所有字段。
下部分为:设计网络,由一些字段列和一些已命名的列组成。

网站文章

  • Android Fragment生命周期及各个方法使用

    Android Fragment生命周期及各个方法使用

    在Android开发中,我们都少不了使用Fragment,一直在使用,但是没有很详细的理解过具体生命周期的回调,这段时间比较闲,特定写一下总结:就像activity一样,fragment也有它们自己的...

    2024-02-29 11:47:43
  • 蒸米ROP学习笔记(一步一步学 ROP 之 Linux_x86 篇)

    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中...

    2024-02-29 11:47:34
  • bower安装库出现的问题解决办法

    bower安装库出现的问题解决办法

    通过bower install安装包时出现了错误: (1)bower ENOGIT git is not installed or not in the path ( 2 ) 提示解决的方案是:本机未安装git,或者环境变量没有配置 git的安装路径; 根据提示把git的安装路径添加到环境变量PATH上,但是通过命令行用PAHT命令查看,刚才添加的路径

    2024-02-29 11:47:05
  • html div浮动效果,【html】【6】div浮动float

    html div浮动效果,【html】【6】div浮动float

    我想 当看完上面的必看链接,拥有一定的基础后也得7天左右,记住 一定要看完,知道它都有什么,没学会不要紧,哪怕只是有个简单的概念也行,随着后续的使用慢慢深入学习,现在开始div布局。必看参考:http...

    2024-02-29 11:46:57
  • C# 编程规范 (coding standard)

    读书笔记, 摘自《Programming .NET Components》1. 用Pascal命名原则定义类型、函数和常量。public class SomeClass { const int DefaultSize = 100; public SomeMethod() {}}2. 用camel命名原则定义局部变量和函数参数。int numbe...

    2024-02-29 11:46:46
  • 43.241.18.123哪些问题会导致服务器里面时间错误

    我们在使用服务器的过程中,有时候可能会发现,服务器里面时间跟标准的时间对不上,那服务器里面时间错误可能由哪些问题引起:

    2024-02-29 11:46:13
  • C++用API实现鼠标带轨迹移动

    void Contra(int dual_X,int dual_Y); //带轨迹移动鼠标int More(int mini,int maxi); //生成随机数int More(int mini,int maxi) //生成随机数函数{ //参数:1.区间最小值;2.区间最大值 srand((unsigned)time(NULL)); //初始化随机数种子 i...

    2024-02-29 11:46:07
  • 我的idea配置以及好用插件

    我的idea配置以及好用插件

    一、原因 工欲善其事、必先利其器。由于更换电脑或者更新idea,需要重新设置idea配置和安装插件,每次都需要百度去查询或下载顺手的插件。所以自己总结起来方便以后查找,也给大家提供一个便利的地方查找。...

    2024-02-29 11:45:37
  • float型数据保持小数点两位小数并装成QString

    输出结果:str = 12.12。

    2024-02-29 11:45:30
  • String在JDK1.8和1.9中底层实现的那点事儿

    发现了开发者的一个秘密,不禁感叹:难道开发者要把我们苦逼的码农都封印在JDK中吗?

    2024-02-29 11:45:22