牛客刷题笔记-数据库选择题(1-100)

1 数据库事务的4个特征是:原子性、一致性、( )、隔离性。

只读性

封装性

持续性

恢复性

C:原子性:事务执行情况只能有两种:全部执行,全部不执行(回滚制度)
一致性:事务执行前后数据具有一致性
隔离性:事务之间不可以相互干扰
持续性:事务一旦执行,不可自然逆转。

2 在 SQL 语言中,DELETE 语句的作用是(D)。

删除基本表

删除视图

删除基本表和视图

删除基本表和视图的元组

删除表和视图只能使用Drop语句,而Delete只能删除表和视图里面的数据。
这里的元组也就是数据库表中的 行

3 已知成绩关系如图 2 所示。

执行 SQL 语句:

SELECT COUNT ( DISTINCT 学号)

FROM 成绩

WHERE 分数> 60

查 询结果中包含的元组数目是 ( A)。

牛客刷题笔记-数据库选择题(1-100)_第1张图片

1

2

3

4

牛客刷题笔记-数据库选择题(1-100)_第2张图片

4 :如下哪个不是数据库处理一个查询的步骤? c

distribution

optimization

evaluation

parsing and transiation

客户端连接->查询缓存->解析器->预处理器->查询优化器->查询执行引擎->数据

  1. 客户端发送一条查询给服务器;

  2. 服务器先会检查查询缓存query ***,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;

  3. 服务器端进行SQL解析parsing、预处理transition,再由优化器optimization生成对应的执行计划;

  4. 根据优化器生成的执行计划,调用存储引擎的API来执行分布distribution查询;

  5. 将结果返回给客户端。

5 在一个mysql查询中,使用哪一个关键字能去除重复列值(C)

group by

order by

distinct

limit

SQL SELECT DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
语法:
SELECT DISTINCT 列名称 FROM 表名称

6 在DBS中,负责定义DB结构以及完整性定义、安全授权等工作的用户是(c )

应用程序员

数据库设计人员

数据库管理员

终端用户

数据库管理员(DBA):从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。

数据库管理员的职责:

1、决定数据库中的信息内容和结构 
2、决定数据库的存储结构和存取策略 
3、定义数据的安全性要求和完整性约束条件 
4、监控数据库的使用和运行 
5、数据库的改进和重组、重构

数据库设计人员(一般不负责安全授权)

数据库设计人员负责数据库中数据的确定,数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员由数据库管理员担任。

应用程序员

应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

终端用户

终端用户一般通过使用前端应用程序访问数据库,做增删改查数据库内容,而对结构的改变无法操作

7 SQL语言具有的功能是 ( b)

关系规范化,数据操纵,数据控制

数据定义,数据操纵,数据控制

数据定义,关系规范化,数据控制

数据定义,关系规范化,数据操纵

SQL的四大功能分别是:
(1)数据定义。(DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
(2)数据操纵。(DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
(3)数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
(4)嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。

8 数据库的( b)是指数据的正确性和相容性

并发控制

完整性

安全性

共享性

数据库完整性 (Database Integrity)是指数据库中数据在逻辑上的一致性、正确性、 有效性 和相容性。

9 如下SQL语句中,__D__可能返回null值。

(1) select count(*) from t1;
(2) select max(col1) from t1;
(3) select concat(‘max=’,max(col1)) from t1;

(1)可能,(2)和(3)不可能

(2)可能,(1)和(3)不可能

(3)可能,(1)和(2)不可能

(1)不可能,(2)和(3)可能

都不可能

都可能

答案是D
(1)返回的是表的行数,如果没有记录,应该返回0,不会出现NULL,
(2) 和(3) 正常情况下不会出现NULL,但是如果表里面没有记录,则会出现NULL

MySQL concat函数使用方法:
CONCAT(str1,str2,…)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

10 关系完备的系统是指(C)。

仅支持关系数据结构,不支持集合级的操作

仅支持关系数据结构和三种关系操作

支持关系数据结构和所有关系代数操作

支持关系模型的所有特征

11 关系数据模型的基本数据结构是( D )

索引

关系

关系数据模型的逻辑结构是关系
层次数据模型的逻辑结构是树
网状数据结构的逻辑结构是图

12 下列关于数据库系统特点的叙述中,正确的一项是 ( C )。

各类用户程序均可随意地使用数据库中的各种数据

数据库系统中概念模式改变,则需将与其有关的子模式做相应改变,否则用户
程序需改写

数据库系统的存储模式如有改变,概念模式无需改动

数据一致性是指数据库中数据类型的一致

数据库的内部分为三级模式和二级映射。
外模式/模式映射的存在保证了数据库整体的逻辑结构改变,外模式的逻辑结构不必改变
模式/内模式映射的存在保证了数据存储结构的变化不影响整体的逻辑结构的变化

数据一致性:关联数据之间的逻辑关系是否正确和完整。

外模式就是子模式

模式:可理解为用户看到的表。
外模式:可理解为视图。
内模式:物理结构和存储结构。

外模式是窗(逻辑表示),模式是房子(逻辑结构),内模式是房子的结构(物理结构)

牛客刷题笔记-数据库选择题(1-100)_第3张图片
13 表关联时,以下哪种说法是正确的(D)

左连接时,结果集数据的行数一定等于左表

左连接时,结果集数据的行数一定等于右表

右连接时,结果集数据的行数一定等于右表

左连接时,结果集的行数可能大于左表的行数

左连接时,如果 left join on的条件在右表中有所重复,那么最终记录数目会大于原表数量,具体可参见这套题目的36题,两个表左连接会出现最后一个选项表述的情况。

14 下列关于数据库事务ACID特性的说法不正确的是?C

A指的是原子性,即事务中的所有操作要么全部成功,要么全部失败

C指的是一致性,即系统的状态只能是事务前的状态,或者是事务成功后的状态,而不会出现任何不一致的中间状态

I指的是可用性,即数据库系统要为事务执行提供尽可能高的可用性,确保大部分事务可以成功的被执行

D指的是持久性,即事务成功后即使发生机器断电,也可以恢复到事务成功后的状态

I是指(Isolation)隔离性 事务执行互不干扰,一个事务不可能看到其他事务运行时,中间某一时刻的数据

牛客刷题笔记-数据库选择题(1-100)_第4张图片

15 用下面的T-SQL语句建立一个基本表:

CREATE TABLE S tudent(Sno CHAR (4) NOT NULL,

Sname CHAR (8) NOT NULL,

Sex CHAR (2),

Age SMALLINT)

可以插入到表中的元组是( D )



'5021''刘祥',男,21

NULL'刘祥'NULL21

'5021'NULL,男,21

'5021''刘祥'NULLNULL


Char类型需要是字符串,所以性别应该是Null或者‘男’

16 扩展名为DBC 的文件是 C

表单文件

数据库表文件

数据库文件

项目文件

正确答案为 C 数据库文件的扩展名为.DBC
数据表文件的扩展名为 .DBF
表单文件的扩展名为 .SCX
项目文件的扩展名为 .PJX

17 以下()不是Access的数据库对象。D

查询

窗体

宏操作

宏和表,查询,窗体,报表一样都是Access数据库对象
宏是一系列操作的集合,每个操作都自动完成特定功能,D错在应该是宏,而不是宏操作
Access的数据库对象:
1、表:主要用于存储数据。
2、查询 主要用于提取数据。
3、窗体 用户与程序的交互。
4、报表, 主要用于展示数据。
5、页, 主要用于数据共享。
6、宏, 用于自动化完成。

18 在关系数据库设计中,设计关系模式是数据库设计中( A )阶段的任务

逻辑设计

物理设计

需求分析

概念设计

数据库设计包括六个主要步骤:
1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。

E - R 图产生于概念结构设计阶段
将E - R图转换为关系模式则是在逻辑设计阶段

19 如果要从数据库中删除触发器,应该使用SQL语言的命令(B)

DELETE TRIGGER

DROP TRIGGER

DISABLE TRIGGER

REMOVE TRIGGER

drop trigger 删除触发器
Drop用于删除数据表或数据库,或删除数据表字段。
remove:删除数据库文件
Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)。

删除触发器: DROP TRIGGER <触发器名> ON <表名>

delete 和drop 最本质的区别在于,delete是数据操纵语言,即DML,而drop是数据定义语言,即DDL。因此,当我们需要删除或者创建一个东西,如表/视图/触发器等等,用的是数据定义语言。当我们对已经存在的表/视图/触发器进行修改/更新时,用的是数据操纵语言。以表为例,如果你不想将表真的删掉,只是想删除其中某些特定的记录,则应该用delete,此时,表的其他数据以及表的结构还在。反之,如果你是整个表都不想要了,则可以用drop。

20 DDBS 中,透明性层次越高(C )。

网络结构越简单

网络结构越复杂

应用程序编写越简单

应用程序编写越复杂

ddbs分布式数据库系统,不需要管底层的实现,因此更简单
计算机中的透明是指:计算机中存在的,但对于某写开发人员而言又不需要了解的东西,这就是计算机所指的透明性.简单的说就是:计算机中存在,但你不需要了解的。例:编写VC++的程序员,他不需要了解加法指令是如何工作的,他只要会用就可以拉,那么就说:加法指令对VC++程序员是透明的

21 表结构如下:以下查询语句结果一定相等的是(DF)

CREATE TABLE `score` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `sno` int(11) NOT NULL,
   `cno` tinyint(4) NOT NULL,
   `score` tinyint(4) DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ;

A.SELECT sum(score) / count(*) FROM score WHERE cno = 2;

B.SELECT sum(score) / count(id) FROM score WHERE cno = 2;

C.SELECT sum(score) / count(sno) FROM score WHERE cno = 2;

D.SELECT sum(score) / count(score) FROM score WHERE cno = 2;

E.SELECT sum(score) / count(1) FROM score WHERE cno = 2;

F.SELECT avg(score) FROM score WHERE cno = 2;

A,E,F

A,D,F

A,B,C,D

D,F

A,B,E,F

A,B,C,E

A,B,C,E返回sum(score)除以行数;D,F返回sum(score)除以score不为null的行数

所有的统计函数都会忽略空值(null)。
A :统计所有学生的平均分,就算成绩为空的学生,最后计算count( * )时也作为分母基数,计算得到所有学生的平均分。
B :与A一样,因为id主键非空,count(id)所得分母基数是所有学生。
C : 与B一样,非空属性sno。
D :由于score字段的值可能是空,空值在统计时忽略,所以count(score)和sum(score)统计的只是score不为空的学生,计算得到的平均分也只是有成绩的学生的平均分,无法计算所有学生的平均分。
E: count(1)与count( * )一样。
F:avg(score)会忽略空值,故计算结果为有成绩的学生的平均分。

1、count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL。
2、count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL。
3、count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空。

22 下列关于数据库系统的正确叙述是( A)。

数据库系统减少了数据冗余

数据库系统避免了一切冗余

数据库系统中数据的一致性是指数据类型一致

数据库系统比文件系统能管理更多的数据

数据库系统是由数据库及管理软件组成的系统;简称DBS;
数据库系统的特点:
数据的结构化,数据的共享性好,数据的独立性好, 数据存储粒度小,数据管理系统,为用户提供了友好的接口。
数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。
基本要求是冗余少,数据的共享程度高

一致性是指数据库中多个有关联的表中数据需要一致。同一数据可能在不同表中,比如学生表中有学生学号,成绩表中有学生学号,一但学生表中某个学号删除,那么成绩表中对应学号的成绩记录也不应该存在。这叫做信息系统中的数据一致性。

23 大学生春季运动会的数据库,保存了比赛信息的三个表如下:
运动员 sporter(运动员编号 sporterid,姓名name,性别 sex,所属系号 department),
项目 item(项目编号 itemid,名称 itemname,比赛地点 location), 成绩 grade(运动员编号 id,项目编号 itemid,积分 mark)。
用SQL语句完成在“体育馆”进行比赛的各项目名称及其冠军的姓名,正确的是:( A )。

SELECT i.itemname,s.name FROM grade g,(SELECT itemid iid,MAX(mark) max  FROM grade   WHERE 
itemid IN ( SELECT itemid FROM item  WHERE location='体育馆')         GROUP BY itemid) 
temp,item i,sporter s WHERE g.itemid=temp.iid AND g.mark=temp.max AND temp.iid=i.itemid 
AND s.sporterid=g.sporterid;

SELECT i.itemname,s.name FROM grade g,(SELECT itemid iid,MIN(mark) max  FROM grade   WHERE 
itemid IN ( SELECT itemid FROM item  WHERE location='体育馆')         GROUP BY itemid) 
temp,item i,sporter s WHERE g.itemid=temp.iid AND g.mark=temp.max AND temp.iid=i.itemid 
AND s.sporterid=g.sporterid;

SELECT i.itemname,s.name FROM grade g,(SELECT itemid iid,MAX(mark) max  FROM grade   WHERE
 itemid IN ( SELECT itemid FROM item  WHERE location='体育馆') ) temp,item i,sporter s 
 WHERE g.itemid=temp.iid AND g.mark=temp.max AND temp.iid=i.itemid AND 
 s.sporterid=g.sporterid;

SELECT i.itemname,s.name FROM grade g,(SELECT itemid iid,MIN(mark) max  FROM grade   WHERE 
itemid IN ( SELECT itemid FROM item  WHERE location='体育馆')         GROUP BY itemid) 
temp,item i,sporter s WHERE g.itemid=temp.iid AND g.mark=temp.max AND

这样应该能清晰一点
1,首先找出在“体育馆”中进行的比赛项目id;
SELECT itemid
FROM item
WHERE location=‘体育馆’
2,然后在成绩表中根据项目id进行分组后找出单个项目最高分;
SELECT itemid iid,MAX(mark) max
FROM grade
WHERE itemid IN ( SELECT itemid FROM item WHERE location=‘体育馆’) //条件限制地点在体育馆
GROUP BY itemid
3,接下来将上面含有项目id和项目最高分信息的表与另外三张表连接;
grade g, (上面含有项目最高分信息的表) temp, item i,sporter s
WHERE g.itemid=temp.iid
AND g.mark=temp.max
AND temp.iid=i.itemid
AND s.sporterid=g.sporterid
4,最后按要求从连接后的表中选出项目名称和冠军姓名。
SELECT i.itemname,s.name
FROM (以上连接后的表)

24 设有关系R和关系S进行如图3所示的运算,则运算结果中含有元组的数目是(A)。
牛客刷题笔记-数据库选择题(1-100)_第5张图片

6

7

8

9

判断B 将R关系中的B属性分别与S里的D比较,依次比较完所有B属性,一共6个符合条件

25 在Visual FoxPro中,表结构中的逻辑型、通用型、日期型字段的宽度由系统自动给出,它们分别为A

1、4、8

4、4、10

1、10、8

2、8、8

在Visual FoxPro系统的表结构设计中,系统自动给某些字段指定宽度,其中日期型字段宽度为8,备注型和通用型字段宽度为4,逻辑型字段宽度为1。因此答案为选项A。

26 设有属性A,B,C,D,以下表示中不是关系的是(C)

R(A)

R(A,B,C,D)

R(A×B×C×D)

R(A,B)

就是里面不同的内容只能逗号分隔,不能其余符号

关系的描述称为关系模式,可以形式化为R(U,D,DOM,F) 其中,R为关系名,U是组成该关系的属性名集合,D是属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。 通常将关系模式简记为R(U)或R(A1,A2,…,An)

关系模式。关系的描述称为关系模式。对关系的描述,一般表示为:关系名(属性1,属性2…属性n)。例如上面的关系可描述为:课程(课程号、课程名称、学分、任课老师)。

27 SQL语言中,SELECT语句的执行结果是?A

集合

属性

元组

数据库
Select出来的是表格,表格是一种集合。
牛客刷题笔记-数据库选择题(1-100)_第6张图片

28 下面关于数据库范式的说法哪些是正确的:( ADE )

关系型数据库设计必须符合第一范式,在这种范式下一个数据列只能有一个值

数据库设计范式的引入,提高了数据库访问的效率

数据库表设计[学号,学生姓名、年龄、性别、课程号、课程名称 课程学分]满足第二范式,但不满足第三范式

满足第四范式必然满足第三范式,满足第三范式必然满足第二范式

通过数据范式的引入,可以减少数据冗余,消除数据操作异常

数据库设计时,符合的范式的等级越高越好

1NF:列值一个,原子性,不能是集合等;
2NF:消除部分函数依赖,即实体属性完全函数依赖于关键字
3NF:消除传递函数依赖
BCNF:消除对主码子集的依赖
高层范式满足低层范式

第一、第二、第三范式之间的理解和比较

B:数据库设计范式的引入是为了是为了解决插入、删除异常等问题,并不能提高访问效率;
C:主码是(学号,课程号),不满足第二范式;
F:不是越高越好,看具体需求。

链接:https://www.nowcoder.com/questionTerminal/fed8e4b1d9da44d9b607e882e6a401ec
来源:牛客网

第一范式:表的每一列属性不可再分。不满足第一范式的就不是关系数据库。 第二范式:在第一范式的基础上,非主键列属性完全依赖于主键列属性。如果是组合字段主键,部分属性可能只依赖于主键中的某个字段。 第三范式:非主键列只能由主键 定,不能由其他非主键 定或导出。 数据库范式的引入,主要是为了解决数据冗余、插入异常、删除异常、更新异常等问题! c选项,主键是【学号,课程号】,但是非主键列并不完全依赖主键,如:课程学分只依赖于课程号

29 若R.A→R.B R.B→R.C则R.A→R.C ( A )

正确

错误

依赖满足传递性
关系 R 属性A B C
有A->B ,即B依赖于A,B->C,即C依赖于B,则根据传递函数依赖有 C依赖于A,即A->C

X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。

传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

30 关系数据库规范化是为解决关系数据库中( )问题而引入的。 A

插入、删除和数据冗余

提高查询速度

减少数据操作的复杂性

保证数据的安全性和完整性

一个“不好”的关系数据库模式会存在数据冗余、更新异常(不一致的危险)、插入异常和删除异常四个问题。为了解决这些问题,人们才提出了关系数据库的规范化理论。规范化理论研究的是关系模式中各属性之间的依赖关系及其对关系模式性能的影响,探讨“好”的关系模式应该具备的性质,以及达到“好”的关系模式的设计算法。

31 避免活锁采用的简单策略是( D)。

顺序封锁法

依次封锁法

按优先级确定服务顺序

先来先服务

避免活锁 :先来先服务。 预防死锁: 一次封锁,顺序封锁。
活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。 避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。

32 关系模型中,表示实体间n:m联系是通过增加一个( A )

关系实现

属性实现

关系或一个属性实现

关系和一个属性实现

牛客刷题笔记-数据库选择题(1-100)_第7张图片
32 在关系代数中,对一个关系做投影操作后,新关系的元组个数( )原来关系的元组个数。B

小于

小于或等于

等于

大于

原先的表中多个元组中某一列可能有重复的值,当你对这一列进行投影的时候,不会有重复的值的,就会减少啊

投影有两个功效,一个是消除原关系中的某些列,还有一个是额外性质即消除投影后重复的元组,因此元组也有变少的可能

33 SQL Server 2005 属于( D)

应用软件

操作系统

语言处理系统

数据库管理系统

SQL Server 2005 是 Microsoft 公司推出的关系型数据库管理系统。故正确答案为 D 选项。
牛客刷题笔记-数据库选择题(1-100)_第8张图片

34 select语句完整语法:

  1. select 目标表的列名或列表达式序列

  2. from 基本表名和(或)视图序列

  3. [where 行条件表达式]

  4. [group by 列名序列]

[having 组条件表达式]
5) [order by 列名[asc | desc]],
则sql语句的执行顺序是:B

1),3),4),2), 5)

2),3),4),1) ,5)

2),4),3),1) ,5)

2),3),5),1) ,4)

写法顺序:select–from–where–group by–having–order by
执行顺序:from–where–group by–having–select–order by
就是select要放后面,如果有order by,则order by放最后,因为order by 是对结果进行排序

一、sql执行顺序
(1)from
(3) join
(2) on
(4) where
(5)group by(开始使用select中的别名,后面的语句中都可以使用)
(6) avg,sum…
(7)having
(8) select
(9) distinct
(10) order by

先从from字句一个表或多个表创建工作表
将where条件应用于1)的工作表,保留满足条件的行
GroupBy 将2)的结果分成多个组
Having 将条件应用于3)组合的条件过滤,只保留符合要求的组。
Order By对结果进行排序。

35 使用MYSQL进行模糊查询 LIKE ‘_YOU%’,下面哪个是正确结果?B

YONYOU

YYOUYO

YOUYON

YYYOUN

_:表示任意单个字符
%:表示任意个或多个字符

牛客刷题笔记-数据库选择题(1-100)_第9张图片

36 图中(B )是最小关系系统
牛客刷题笔记-数据库选择题(1-100)_第10张图片
牛客刷题笔记-数据库选择题(1-100)_第11张图片结构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation),阴影表示关系系统支持的模型程度

最小关系系统仅支持数据结构s和数据操作I,所以选第二个

37 下列哪个不是存储过程的好处(C)

更加安全

SQL优化

增加网络流量

重复使用

1、执行速度更快 ,在数据库中保存的存储过程语句都是编译过的
2、允许模块化程序设计,类似方法的复用
3、提高系统的安全性,防止SQL注入
4、 减少网络流通量,只需要传输存储过程的名称

38 数据库系统中,物理数据独立性是指(C )。

数据库与数据库管理系统的相互独立

应用程序与DBMS的相互独立

应用程序与存储在磁盘上数据库的物理模式是相互独立的

应用程序与数据库中数据的逻辑结构相互独立

C:物理数据独立性
D:逻辑数据独立性
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。

39 索引字段值不唯一,应该选择的索引类型为(B)

主索引

普通索引

候选索引

唯一索引

[知识点] 表的索引:主索引,候选索引,普通索引,唯一索引
[评析] 索引类型分类:
①主索引:主索引是一种只能在数据库表中建立不能在自由表中建立的索引。在指定的字段或表达式中,主索引的关键字绝对不允许有重复值。
②候选索引:和主索引类似,它的值也不允许在指定的字段或表达式中重复。一个表中可以有多个候选索引。
③唯一索引:唯一索引允许关键字取重复的值。当有重复值出现时,索引文件只保存重复值的第1次出现。提供唯一索引主要是为了兼容早期的版本。
④普通索引:普通索引允许关键字段有相同值。在一对多关系的多方,可以使用普通索引。

40 当 B 属性函数依赖于 A 属性时,属性 A 与 B 的联系是 (B )。

1 对多

多对 1

多对多

1 对 1

比如说B=A的平方,一个A只能对应一个B,而一个B可能对应两个A,所以A和B是多对一。但比如说B=A*2,那么A和B就是一对一了。所以B和D选项都有可能。但按一对一是一种特殊的多对一来说,B选项更加确切些

41 已知关系R和S,如下所示:R 和S进行交运算,其结果的元组数是( 1 )。
牛客刷题笔记-数据库选择题(1-100)_第12张图片
元组是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。R和S求交,只有第二行a2 b2 c2相同,所以元组数为1(ABC是列名)

42 有订单表orders,包含字段用户信息userid,字段产品信息productid,以下语句能够返回至少被订购过两次的productid?(D)



select productid from orders where count(productid)>1

select productid from orders where max(productid)>1

select productid from orders where having count(productid)>1 group by productid

select productid from orders group by productid having count(productid)>1

where不可以直接连接聚合函数

使用having语句是因为where无法与计算函数连用

43 数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,用( D )表示

矩形

四边形

菱形

椭圆形

E-R图中:

矩形:实体
菱形:关系
椭圆:属性 

牛客刷题笔记-数据库选择题(1-100)_第13张图片

44 假设MySQL数据库表: 如下哪些sql语句查询能较好的利用索引?(AD)


    create table T{
    k int unsigned not null auto_increment,
    a date,
    b varchar(24),
    c int,d varchar(24),
    primary key(k),unique key a_index (a DESC,b DESC),
    key k1(b),key k2(c),key k3(d));
select b from WHERE b like 'aaa%';

select a,b from T WHERE a='2015-10-25' ORDER BY b ASC,c ASC;

select a,b,c from T WHERE a='2015-10-25' ORDER BY b ASC;

select a,b,c from T WHERE a='2015-10-25' ORDER BY a,b;

解析如下:
一、什么是索引:
简单的来说,建立索引在进行数据库操作的时候不需要全盘一条条的扫描,删选出符合的记录,索引内部自己有一套优化算法,因此借助索引来对数据库进行操作可以提高查询的效率

二、什么时候建立的索引将失效或效率不高(情况有很多,这里列举常见的几种, 假设在字段name上建立了索引):
1、使用了运算符!=,以及关键字not in, not exist等,认为产生的结果集很大,往往导致引擎不走索引而是走全盘扫描
2、对索引字段使用了函数,如where substr(name, 1, 3)=‘mark’, 导致索引无效
3、使用like和通配符,第一个字符是%将导致索引失效,如where name like "%ark“ (A正确)

三、order by与索引
首先利用where进行数据查询,这一步是免不了的,至于这一步有没有利用索引暂时不考虑,关键是在获取所有符合的记录后还需要进行排序,看看order by是如何利用索引的。
如果order by中的字段有建立索引,同时:
1、该字段没有出现在where中,则在排序的时候需要正常排序,默认order by是升序排序, 故索引没有对排序产生有利帮助 (B,C错误)
2、该字段同时同时出现在where中,则在获取记录后不进行排序,而是直接利用索引, 效率变高。(D正确)

补充: group by也和order by类似

45 数据设计中的E-R模型设计是()阶段的主要工作之一。B

需求分析

概念结构设计

逻辑结构设计

物理结构设计

按照规范的设计方法,一个完整的数据库设计一般分为以下六个阶段:
⑴ 需求分析:分析用户的需求,包括数据、功能和性能需求;
⑵ 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
⑶ 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
⑷ 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
⑸ 数据库的实施:包括编程、测试和试运行;
⑹ 数据库运行与维护:系统的运行与数据库的日常维护。

46 文件系统与数据库系统的最大区别是( C)。

数据共享

数据独立

数据结构化

数据冗余

文件系统存在以下缺点: 数据共享性差,冗余度大; 数据独立性差
数据库系统实现整体结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

47 一般情况下,当对关系R和S进行等值连续时,要求R和S含有一个或者多个共有的属性。( × )

等值连接是从关系R和S的广义笛卡尔积中选取A和B“属性值”相等的元组,所以只要两个关系里面的有元组属性值相等就可以进行。 而自然连接是要求R和S中有一个或者多个相同的属性组

48 SQL语言共分为三大类(亦有说法分为四大类),那么不属于数据操纵语言的有(b)

update

grant

delete

insert

数据查询语言(DQL):是由SELECT子句,FROM子句,WHERE子句组成的查询块
数据操纵语言(DML): SELECT(查询) INSERT(插入) UPDATE(更新) DELETE(删除)
数据定义语言(DDL):CREATE(创建数据库或表或索引)ALTER(修改表或者数据库)DROP(删除表或索引)
数据控制语言(DCL):GRANT(赋予用户权限) REVOKE(收回权限) DENY(禁止权限)
事务控制语言(TCL):SAVEPOINT (设置保存点)ROLLBACK (回滚) COMMIT(提交)

牛客刷题笔记-数据库选择题(1-100)_第14张图片

49 关于 ACID 说法不正确的是( a )。

可用性。整个操作要保证高可用性,系统必须提供要求的稳定性,以保证事务的提交。

一致性。在事务开始之前和结束后,数据库的约束保持不变。

隔离性。两个同时运行的事务的执行是互不影响,中间结果不可交叉访问

持久性。在事务提交之后,该事务所作的更改持久保存在存储介质之中,不会被回滚。

事务的四个基本特征:
Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
Consistency(一致性):事务完成时,数据必须处于一致状态,数据的完整性约束没有被破坏,事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没 有执行过一样。
Isolation(隔离性):事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性 和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。
Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。

牛客刷题笔记-数据库选择题(1-100)_第15张图片

50 在并发控制技术中,最常用的是封锁机制,基本的封锁类型有排它锁 X 和共享锁 S ,下列关于两种锁的相容性描述不正确的是( A)

X/X :TRUE

S/S:TRUE

S/X:FALSE

X/S:FALSE

牛客刷题笔记-数据库选择题(1-100)_第16张图片

锁兼容性控制多个事务能否同时获取同一资源上的锁如果资源已被另一事务锁定,则仅当请求锁的模式与现有锁的模式相兼容时,才会授予新的锁请求。如果请求锁的模式与现有锁的模式不兼容,则请求新锁的事务将等待释放现有锁或等待锁超时间隔过期。例如,没有与排他锁兼容的锁模式。如果具有排他锁(X 锁),则在释放排他锁(X 锁)之前,其他事务均无法获取该资源的任何类型(共享、更新或排他)的锁。另一种情况是,如果共享锁(S 锁)已应用到资源,则即使第一个事务尚未完成,其他事务也可以获取该项的共享锁或更新锁(U 锁)。但是,在释放共享锁之前,其他事务无法获取排他锁。

51 候选关键字中的属性称为(B)

关键属性

主属性

候选属性

复合属性

52 可串行化调度肯定是正确的并发调度。( 正确 )

对于串行调度,各个事务的操作没有交叉,也就没有相互干扰,当然也不会产生并发所引起的。事务对数据库的作用是将数据库从一个一致的状态转变为另一个一致的状态。多个事务串行执行后,数据库仍旧保持一致的状态。 可串行性(Serializability) 是并发事务正确调度的准则。在RDBMS中,作为并发控制的正确性准则。一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度

可串行化调度肯定是正确的并发调度。虽然效率不高,但是是正确的。

53 要删除表A中数据,使用TRUNCATE TABLE A。运行结果是?A

表A中的约束依然存在

表A被删除了

表A中的数据被删除了一半,再次执行时,将删除剩下的一半数据行

表A中不符合检查约束要求的数据被删除,而符合检查约束要求的数据依然保留

删除表的语句为:DROP TABLE table_name;
而DELETE和TRUNCATE TABLE都是删除表中的数据的语句,它们的不同之处在于:
1、TRUNCATE TABLE比DELETE的速度快;
2、TRUNCATE TABLE 是删除表的所有行,而DELETE是删除表的一行或者多行(除非DELETE不带WHERE语句)
3、在删除时如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE仍然删除,只是表的结构及其列、约束、索引等保持不变,但DELETE是直接返回错误
4、对于被外键约束的表,不能使用TRUNCATE TABLE,而应该使用不带WHERE语句的DELETE语句。
5、如果想保留标识计数值,要用DELETE,因为TRUNCATE TABLE会对新行标志符列搜用的计数值重置为该列的种子。

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销

2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。

3、TRUNCATE将重新设置高水平

54 设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置"参照完整性规则",为此要求这两个表(B )。

在父表连接字段上建立普通索引,在子表连接字段上建立主索引

在父表连接字段上建立主索引,在子表连接字段上建立普通索引

在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引

在父表和子表的连接字段上都要建立主索引

用订单表和订单项表解释一下,订单表相当于父表,订单项表相当于子表,一个订单中可以包括多个订单项。订单id是父表的主键,根据订单id在子表查询相应的订单项集合。因为使用的是订单id,所以应该对应父表是主索引,而在子表中只是一个普通字段,所以是普通索引。

55 关于关系的运算,则下列说法正确的是____B______。

两个关系在任何情况下,都可以进行并、交、差运算;

两个关系的连接运算是可以由其他关系运算来实现的;

R intersect S = R ­ (S ­ R);

在表达同样结果的前提下,关系代数运算不可以改变关系操作的次序;

关系查询的基本操作是选择,投影,并,差,交共五种基本操作,其他操作如连接,除操作都可以被这五个操作推导出来

A并交差运算,不同类型的对象是不可以一起运算的,就像向量不可以和标量相减一样。
C选项的选项本身应该是有毛病,少了加号减号。
D很明显是错的,次序是可以改变的。

牛客刷题笔记-数据库选择题(1-100)_第17张图片
56 oracle 数据库中最常见的索引类型是(D)

文本索引

反向键值索引

位图索引

b-tree索引

  1. b-tree索引
    Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE
    INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
  2. 位图索引(bitmap index)
    位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
  3. 基于函数的索引
    比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
  4. 分区索引和全局索引
    这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
  5. 反向索引(REVERSE)
    这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值(10001,10002,10033,10005,10016…)。这种情况默认索引分布过于密集,不能利用好服务器的并行,但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
    6.HASH索引
    HASH索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建HASH集群之前就要知道。需要在创建HASH集群的时候指定这个值。使用HASH索引必须要使用HASH集群。

57 在数据库设计中,在概念设计阶段可用 E-R 方法,其设计出的图称为( D)。

实物示意图

实用概念图

实体表示图

实体联系图

Entity Relationship

可以通俗理解为E-R模型能够更好的去帮助我们去分析创建关系数据库中的所需的表

一、那么什么是E-R模型?

E-R模型即实体-联系模型,E-R模型的提出基于这样一种认识,数据库总是存储现实世界中有意义的数据,而现实世界是由一组实体和实体的联系组,E-R模型可以成功描述数据库所存储的数据。

二、为什么要设计E-R模型?

设计E-R模型能够更有效和更好的模拟现实世界。

三、E-R模型的基本要素

实体 :实体是E-R模型的基本对象,是现实世界中各种事物的抽象,凡是可以相互区别,并可以被识别的事、物概念等均可认为是实体。在一个单位中,具有共性的一类实体可以划分为一个实体集,例如,学生李明,黄颖等都是实体,为了便于描述,可以定义学生这样的一个实体集,所有学生都是这个集合的成员。

属性:每个实体都具有各种特征,称其为实体的属性,如学生有学号,姓名,年龄等属性。实体的属性值是数据库存储的主要数据。能唯一标识实体的属性或属性组称为实体键,如一个实体有多个键存在。则可从中选取一个作为主键。

实体间会存在各种关系,如人与人之间可能存在领导与雇员关系等,实体间的关系被抽象为联系。

58 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是 ( c) 阶段。

数据库系统

文件系统

人工管理

数据项管理

数据独立性: 人工管理阶段不独立,完全依赖于程序;文件系统阶段独立性差;数据库系统阶段具有高度的物理独立性和一定的逻辑独立性

由于数据库系统中的程序是按局部数据逻辑结构进行设计的,
并且当全局数据逻辑结构变换时可以使局部数据逻辑结构基本保持不变,
所以数据库系统的数据逻辑独立性高。

59 数据库中 B 是指数据的正确性和相容性。

安全性

完整性

并发性

恢复性

数据库中完整性(Integrity)一词是指数据的正确性,相容性,防止错误的数据进入数据库。正确性:数据的合法性,例如数值型数据中只能含数字而不能含字母。相容性:表示同一事实的两个数据应相同,不一致就是不相容。

60 数据来源于信息,信息是对现实世界的反映。请问这句话的说法是正确的吗?(错误)

信息来源于数据 通过对数据的分析 提取了信息

61 视图是由下面哪两者导出的表(B)。

模式、关系

基本表、视图

基本关系、关系

内模式、外模式

SQL中,内模式、模式、外模式分别对应存储文件、基本表、视图

视图(View)是从一个或多个表(或视图)导出的表。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

62 如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么R的模式是(B )

1NF

3NF

4NF

BCNF

因为消除了非主属性对候选键的传递依赖,也就消除了非主属性对候选键的部分依赖。非主属性对候选键的部分依赖本质上也是传递依赖。假设(A, B, C, D)中AB是候选键,那么由于不存在传递依赖,也就不可能出现部分依赖A->D,因为它本质上也是传递依赖AB->A->D。

63 下列叙述正确的是:C

数据库是一个独立的系统,不需要操作系统的支持

数据库设计是指设计数据库管理

数据库技术的根本目标是要解决数据共享的问题

数据库系统中,数据的物理结构必须与逻辑结构一致

A:数据库需要操作系统的支持
B:数据库设计指为了满足用户需求而设计数据库和建立数据库的过程
D:物理结构对应数据实际位置,可以不一致

64 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是( B)。

部门+性别+基本工资

部门+性别+STR(基本工资)

STR(基本工资)+性别+部门

性别+部门+STR(基本工资)

STR(<数值表达式>)的功能是将数值表达式的值转换成字符串,本题中的“+”是字符串连接符,将3个字段表达式按分组的级别顺序连接在一起,构成多重索引,实现多级分组。

65 假设某数据表中有一个工作时间字段,查找92年参加工作的职工记录的准则是(a)。

Between #92-01-01# And #92-12-31#

Between “92-01-01” And “92.12.31”

Between “92.01.01” And “92.12.31”

#92.01.01# And #92-12-31#

本题考查Access中日期/时间字段概念,这里考生应该注意两点:时间值需要用半角的“#”括起来;Between的格式为“表达式 [Not] Between value1 value2”,但“表达式”的值是否在value1和value2范围内,可以在筛选、有效性规则和SQL语句中使用。本题B)选项和C)选项没有使用“#”号,选项D)没有Between。正确答案为选项A)。

66 已知事务 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)

T1

T2

T1和T2

没有

两段锁协议:
a. 对任何数据读取、修改之前,事务先获得锁
b. 释放一个封锁,事务不再获得其他锁。
T2在释放A的S锁后,又获得B的S锁,不符合两段锁协议

两段可以简单理解成,加锁解锁分两步走,先都加锁,然后都解锁,不要在加锁的过程中包含解锁

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

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

67 对基本表 S,执行操作 DROP TABLES RESTRICT 的作用是(C)。

删除基本表 S 中的所有元组

把基本表 S 及产生的一切视图全部删除

当没有由 S 中的列产生的视图或约束时将表 S 删除

删除表 S,将引用表 S 的视图中的一切视图的属性值置为空值

CASCADE表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。
RESTRICT表示表的删除是有条件限制的,要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等。如果存在这些依赖该表的对象,则表不能被删除

68 现有数据库表t_order,主键为Forder_id,并在表的Fuin、Fstate、Fcreate、ime建立复合索引,下列选项中能使索引的是( B )

select Fmerchant_id,Fuin FROM t_order WHERE Forder_id=27000022016041412037866;

select Fmerchant_id,Forder_id FROM t_order WHERE Fuin=42176034AND Fstate=1;

select Fmerchant_id,Fuin,Fstate FROM t_order WHERE Forder_id LIKE%20160414%;

select Fmerchant_id,Famount FROM t_order WHERE Forder_id=27000022016041412037866OR Fuin=42176034;

个人认为应该选B。题干是表的Fuin、Fstate、Fcreate、ime建立复合索引,所以只用看选项的where子句。复合索引的列的顺序对查询是有很大影响的,例如建立索引:(姓, 名),在索引文件中,它会先按照姓排序,在姓相同时,再按照名排序,而单独查询名或者先查询名是不会使用到索引的。据此已经能把ACD排除。答案选C是不合理的,模糊搜索like能使用XXX%可以用到索引,但%XXX%肯定是不能用到索引的。
索引的使用限制场合:
1、使用不等于操作符(<>, !=)
2、使用 is null 或 is not null
3、使用函数
4、比较不匹配的数据类型

69 如果事务T获得了数据项Q上的排它锁,则T对Q (C )

只能读不能写

只能写不能读

既可读又可写

不能读不能写

共享锁【S锁】
又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

排他锁【X锁】
又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。

70 SQL语言是(B)的语言。

过程化

非过程化

格式化

导航化

SQL语言是非过程化语言,不要求用户指定数据的存放方法,也不需要了解具体的数据存放方式,故具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输出和管理的接口

sql的特点:
1.综合统一
2.高度非过程化
3.面向集合的操作方式
4.以同一种语法结构提供多种使用方式
5.语言简洁,易学易用

71 已知SC(S#, C#, Score)关系的元组,如下所示{,,, , , , , , , }。关于“SELECT S# FROM SC WHERE C#=1 and C#=3;”下列说法正确的是________E__。

该查询结果中的元组为{ S1, S5 };

该查询结果中的元组为{ S1, S2, S3, S5 };

该查询结果中的元组为{ S1 };

该查询结果中的元组为{ S5 };

以上说法都不正确;

C#是唯一的,既等于1又等于3是不可能的。

72 为保证多用户环境中数据的完整性和一致性,DBMS采取的控制称为(D )。

安全性控制

完整性控制

事务控制

并发控制

关键词 多用户环境

完整性控制目的在于保证数据库里的数据语意是正确的,和安全性控制一起属于DBMS提供的数据保护机制。完整性控制包括:完整性约束,并发控制,故障恢复。
完整性约束: 完整性约束是完整性控制的核心。DBMS要提供各种完整性约束的实现机构,保证对数据库的任何更新操作都不会破坏数据语意的正确性和准确性。
并发控制: 并发机制不正确可能导致 脏读 、 幻读 和 不可重复读 等此类问题。 并发控制 的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。在某些情况下,这些措施保证了当用户和其他用户一起操作时,所得的结果和它单独操作时的结果是一样的。在另一些情况下,这表示用户的工作按预定的方式受其他用户的影响。
故障恢复: 故障恢复是第三种完整性控制。在应用系统中,数据库往往是最核心的部分,一旦数据库损坏,将会带来巨大的损失,所以 数据库恢复 越来越重要。使用数据库的过程中,由于断电或其他原因,有可能导致数据库出现一些小错误,比如检索某些表特别慢、查询不到符合条件的数据等。出现这些情况的原因往往是数据库有些损坏或索引不完整。任何 数据恢复 的方法都基于 数据备份

73 下面那些是非关系型数据库(AC)

Redis

Mysql

MongoDb

SqlServer

一、关系型数据库
牛客刷题笔记-数据库选择题(1-100)_第18张图片

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

二、非关系型数据库
牛客刷题笔记-数据库选择题(1-100)_第19张图片

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

非关系型数据库的分类和比较:
1、文档型
2、key-value型
3、列式数据库
4、图形数据库

74 下列哪些是与数据库管理相关的技术:( ABDF )

RDBMS

NoSQL

Nginx

NewSQL

ActiveMQ

HBase

RDBMS (Relational Database Management System)关系数据库管理系统
NoSQL 非关系型的数据库
NewSQL 新型关系型数据库
ActiveMQ Apache下的一个中间件
Hbase是一个分布式的 面向列的数据库

75 自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 ( D)

元组
.行
记录
属性

自然连接是构成新关系的有效方法一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的属性。准确地说,如果A1,A2,…,An是在关系R和S上都有的公共属性,那么仅当R中的元组r和S中的元组s在属性A1,A2,…,An都完全一致时,R中的元组r和S的元组s才能组合成一对,这种运算形式称为自然连接运算,表示为R∞S。

76 下面有关各种范式之间的包含关系的描述中,正确的是 __ B__ 。

在这里插入图片描述

牛客刷题笔记-数据库选择题(1-100)_第20张图片

牛客刷题笔记-数据库选择题(1-100)_第21张图片

第四范式含于BCNF范式含于第三范式含于第二范式含于第一范式。原来一直以为BCNF范式是最大的,自从做了这道题之后才发现,BCNF范式后面还有第四范式第五范式第六范式

77 Mysql sql注入中使用延时注入时常用的语句是BC
wait for delay ‘0:0:10’
sleep(5)
benchmark(100000000,md5(1))
union select

牛客刷题笔记-数据库选择题(1-100)_第22张图片MySQL有一个内置的BENCHMARK(count,expr)函数,可以测试某些特定操作的执行速度 参数可以是需要执行的次数和表达式。

78 语句 SELECT IF(-1,5,2) 的返回值是:5

if(条件,表达式1,表达式2)
如果条件为真(即不为0),执行表达式1,否则,执行表达式2.

79在MySQL中,关于HASH索引,下列描述正确的是(ABD )
只用于使用=或者 < = >操作符的等式比较
优化器不能使用HASH索引来加速Order By操作
如果将一个MyISAM表改为HASH索引的MEMORY表,不会影响查询的执行效率
只能使用整个关键字来搜索一行

在这里插入图片描述
牛客刷题笔记-数据库选择题(1-100)_第23张图片

BTREE索引和 HASH 索引的差异:
(1)HASH索引只用于使用 = 或 <=> 操作符的等式比较。如果一定要使用范围查询 的话,只能使用BTREE索引。
(2)优化器不能使用 Hash 索引来加速 order by 操作。
(3)使用 Hash 索引时 MySQL 不能确定在两个值之间大约有多少行。如果将一 个MyISAM表改为的 Hash 索引 memory 表,
会影响一些查询的执行效率。
(4)Hash索引只能使用整个关键字来搜索一行。

哈希索引数据并不是按照索引列的值顺序存储的,所以也就无法用于排序
mysql btree与hash索引的适用场景和限制

80 SQL Server是一个基于( D )。
层次模型的DBMS
网状模型的DBMS
关系模式的应用程序
关系模型的DBMS

SQL Server 是Microsoft 公司推出的关系型数据库管理系统(DBMS)。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。

关系型数据库简单的可以理解为二维数据库,表的格式就如Excel,有行有列。常用的关系数据库有Oracle,SqlServer,Informix,MySql,SyBase等

81 在某企业中,有关系 W(工号,姓名,工种,工资),其中工资由工种唯一决定。将其规范化到第三范式,正确的答案是?C

W1(工号,姓名) W2(工种,工资)
W1(工号,工种,工资) W2(工号,姓名)
W1(工号,姓名,工种) W2(工种,工资)
以上都不对

82 公司员工对系统的使用有着严格的身份限制。实际上可通过定义视图将用户限制在不同的数据集,以下可以实现的是:( ABCD)

访问局限于基表中的数据统计和
访问局限于基表的行子集和列子集
访问局限于另一个视图与基表的联合子集
访问局限于复合连接的多表行。

83 有关系 R 和 S , R -( R - S )的运算等价于d
R∪S
R×S
R-S
R∩S
画图最易理解
R-S:代表求R中除去S数据的部分,即求差集;
R-(R-S):R去掉(R中除去S数据的部分),即剩下R与S的交集。

84 己知关系R和S,R ∩ S等价于( B )
(R-S)-S
S-(S-R)
(S-R)-R
S-(R-S)
牛客刷题笔记-数据库选择题(1-100)_第24张图片
85 在视图上不能完成的操作是(C )?
更新视图
查询
在视图上定义新的表
在视图上定义新的视图

视图是基于数据表的一种查询窗口。怎么可能在这种查询窗口中再建数据表呢?
就像你可以在房子上开窗,但你不能在窗子上盖个房子吧?

86 SQL SERVER中的数据库用户就是登录用户。( 错误 )
SQL SERVER中的数据库用户是一般用户。
登录用户是指DBA(数据库管理员)。

87 不是 E-R 图中基本元素的有(D)。

实体
属性
联系
关系

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法

88关系模型中,一个关键字是(C )

至多由一个属性组成
可由多个任意属性组成
可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成
以上都不是

唯一标识性是关键字的一个重要性质,关键字可以只有一个属性,也可由多个属性组成“复合关键字”;
无冗余性是关键字的另一个重要性质。

89 关系二维表中的一列称为(B)。
记录
属性
关系
元组

关系型二维表是关系型数据库中数据 的存储形式,一行代表一条记录,一列代表属性

90 在数据库系统中,视图可以提供数据的?C
并发性
完整性
安全性
可恢复性

不同的用户定义不同的视图,把数据对象限制在一定的范围内,也就是说,可以通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动的对数据提供一定程度的安全保护。

视图是数据库系统中的一个重要机制。视图构建于基本表或视图之上,为用户提供一个虚表,与实际存储数据的基本表之间建立一种映射关系,用户可以像基本表一样对视图进行操作(有些视图的更新操作是受限的),所有通过视图对数据的操作最终都转换为对基本表的操作来实现。可以通过建立视图,将视图授权给指定用户,则用户只能访问通过视图可见的数据,对视图外的数据起到保护作用,用户无法访问。运行中的数据库,出于对性能的要求,可能要对已有的基本表进行分解或合并,即数据库重构。此时,数据库的模式发生改变,可以重建或修改已有的视图,保持视图中的数据项与原有视图或基本表中的数据项一致,并映射到修改后的基本表上,即修改模式/外模式映像,保持外模式(视图中的数据项)不变,从而应用程序不用再改变。即实现数据的逻辑独立性。对视图操作与直接对视图对应的基本表操作,在编写程序方面可能会简化。通过视图对数据操作,最终转为对基本表的操作,所以并不会提高访问效率。

91 设有关系模式EMP(职工号,姓名,年龄,技能)。假设职工号唯一,每个职工有多项技能,则EMP表的主码是(  D )
职工号
姓名,技能
技能
职工号,技能

你换个思路这样想:会相同技能的职工可能是多个人,如果职工号主键,技能属性不确定;如果技能主键,职工不唯一,都不行,只能两者为联合主键

主键可以确定一个并且是唯一的一个元组。 虽然说职工号唯一,但是每个职工的技能存在多个,所以如果选择职工号作为主键的话,那么就会违背一个主键确定一个元组的原则。 而通过(职工号,技能)可以确定一个元组

92 有两个关系 R 和 S 如下:则由关系 R 得到关系 S 的操作是 ( A )

牛客刷题笔记-数据库选择题(1-100)_第25张图片
选择
投影
自然连接

选择行,投影列。
选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。

投影也是单目运算,该运算从表中选出指定的属性值组成一个新表。自然连接和并都是两表或以上之间的操作

牛客刷题笔记-数据库选择题(1-100)_第26张图片牛客刷题笔记-数据库选择题(1-100)_第27张图片

93 在关系数据库设计中,关系模式设计属于( A)。
逻辑设计
概念设计
物理设计
需求设计

【解析】关系数据库设计有需求分析设计、概念设计、逻辑设计、物理设计、编码、测试、运行、进一步修改等几个阶段。在需求分析设计阶段形成需求说明书,概念设计阶段形成概念数据模型(作为进一步设计数据库的依据),逻辑设计阶段形成逻辑数据模型(从 ER 图向关系模式转换、关系视图设计、模式规范化),物理设计阶段形成数据库内部模型(此时涉及具体软件硬件环境)。因此关系模式设计属于逻辑设计。故本题答案为 A 选项。

94 已知tm_employee表中具有默认约束df_adress,删除该约束的语句为(A)

alter talbe tm_employee drop constraint df_adress
alter talbe tm_employee remove constraint df_adress
alter talbe tm_employee delete constraint df_adress
remove constraint df_adress from talbe tm_employee

不管是SQL sever oracle mysql 他们删除主键约束的关键字均为drop
Delete 删的是表中数据,drop 删的是数据库的对象且不能回滚

95 (BC)完成对数据库数据的建表与更新
DCL
DDL
DML
DQL

DML(data manipulation language),数据操作语言,如增删该查
DDL(data definition language),数据定义语言,如建表删表,修改表字段(改变表结构)
DCL(data control language),数据控制语言,如权限授权
DQL(data query language),数据查询语言

96 索引是对数据库表中一个或多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中数据。以下对索引的特点描述错误的是:c

加快数据的检索速度
加速表和表之间的连接
在使用分组和排序子句进行数据检索时,并不会减少查询中分组和排序的时间
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性

大大加快数据的检索速度,这也是创建索引的最主要的原因,也是题目已给出的;
加速表和表之间的连接;
在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间;
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性;

唯一索引的列的值必须唯一,但是允许有空值。
普通索引没有任何限制

97 数据库应用系统包括( B) 。
数据库语言、数据库
数据库、数据库应用程序
数据管理系统、数据库
数据库管理系统

百度百科上是这么解释的:
数据库应用系统是由数据库系统、应用程序系统、用户组成的,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。

98 数据库的外模式/模式映像,保证了数据与程序的逻辑独立性。请问这句话的说法是正确的吗?(正确)

外模式/模式映像定义了数据库中不同用户的外模式与数据库逻辑模式之间的对应关系。当数据库模式发生变化时,通过调整外模式/模式映像间的映像关系,使得应用程序不必随之修改,从而保证数据与应用程序间的逻辑独立性,简称数据的逻辑独立性,所以本题选A。 模式又称逻辑模式,模式/内模式映像定义了数据库中数据全局逻辑结构与这些数据在系统中的物理存储组织结构之间的对应关系,保证数据库中数据与应用程序间的物理独立性。

数据库外模式/模式映像保证了数据和程序的逻辑独立性;模式/内模式映像,保证了数据和程序的物理独立性。

99 事务日志用于保存(C)
程序运行过程
程序的执行结果
对数据的更新操作
对数据的查询操作

事务日志用以保存数据库数据的变动,包括增删改等操作。

记录数据库事务,最大限度地保证数据的一致性与安全性
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件
归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

100 下面关于数据库锁的描述正确的是(C)
只有支持事务的引擎才有锁
在可以用行锁的情况下,都应该使用行锁而不要使用表锁
在高并发的线上事务中,几乎无法避免锁等待或死锁的产生
在做更新操作时,应该先尝试申请共享锁,成功后再申请排他锁

InnoDB支持事务,支持行锁和表锁用的比较多,Myisam不支持事务,只支持表锁。
InnoDB之所以可以锁行,是因为Innodb的主索引结构上,既存储了主键值,又直接存储了行数据,可以方便的锁住行数据,而MyIsam索引指向另一片数据文件,没有办法精确锁住数据段
共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。

你可能感兴趣的:(Mysql)