解析:
B项中的时间‘2012-12-31’若不写time时分秒,则默认时间为’00:00:00 ',因此查询日期只能截止到2012-12-31 00:00:00 并没有当天的记录
C项应该是COMM>=SAL*1.1
D项没有奖金COMM 可能为null也可能为0
错因:没有看清题目是一个多选的
关于索引,选项中说法错误的是( C )
建立索引的目的是提高检索数据库的速度。√
索引会降低数据库的写入性能。√
索引越多数据库检索越快。
应该在经常查询或排序的列上创建索引。√
数据库管理系统(DBMS)是( D)
数学软件
应用软件
计算机辅助设计
系统软件
若系统在允许过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为 (B )
事务故障
系统故障
介质故障
运行故障
分析:
事务故障:是由于程序执行错误而引起事务非预期的、异常终止的故障。它发生在单个事务的局部范围内,实际上就是程序的故障。
系统故障:是指系统在运行过程中,由于某种原因,造成系统停止运行。可以简单理解为导致系统需要重启的基本都是系统故障
介质故障:是指外存储设备故障,主要有磁盘损坏,磁头碰撞盘面,突然的强磁场干扰,数据传输部件出错,磁盘控制器出错等
解析参考
分析:
1NF,表示属性值是不可分割。
2NF,表示非主要的属性,必须完全依赖主要的属性,不能部分依赖
3NF,表示非主属性不要依赖于其他非主属性
v$sqlarea(disk_reads)
statspack
sql_trace
v$session_wait
分析:
使用索引的优点:
大大加快了数据的检索速度;
加速了表与表之间的链接;
在使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间;
通过创建唯一性索引,可以保证数据数据库表中每一行数据的唯一性
分析:
丢失修改: 原本两个事务的目的是T1先把A的值加10,A变为58。然后T2把A的值再减2,即A变成56。但是根据题目中的执行顺序,A的值变为48-2=46,即T2的修改覆盖了T1的修改,这种现象叫做丢失修改。
读"脏"数据: 读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤消,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据。
分析:
定义数组,等号左边不能出现数字,也就是数组的不管什么大小 不能出现在左边
分析:FlowLayout的布局管理器
分析:
第三范式(3NF)满足第三范式(3NF)必须先满足第二范式(2NF)。
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。
分析:
设计数据库步骤:
1.需求分析:分析用户的需求,包括数据、功能和性能需求;
2.概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3.逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4.物理结构设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5.数据库实施:包括编程、测试和试运行;
6.数据库的运行和维护:系统的运行与数据库的日常维护;
二级映像保证了数据库系统的数据独立性:逻辑独立性与物理独立性。
逻辑独立性。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。 即,当数据的逻辑结构改变时,用户程序(外模式)也可以不变
外模式/模式映像保证了数据和程序的逻辑独立性
物理独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。 即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
模式/内模式映像,保证了数据和程序的物理独立性
下面有关sql绑定变量的描述,说法错误的是?(D)
绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果
使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源
使用绑定变量,提高了编程效率和可靠性,减少访问数据库的次数
使用绑定变量,查询优化器会预估的比字面变量更加真实
(CD)完成对数据库数据的查询与更新。
DCL
DDL
DML
DQL
分析:
DML:数据定义语言。select/insert/update/delete
DQL数据查询语言。select/from/where
注意仔细看题
分析:
MySQL的存储过程参数没有默认值,所以在调用MySQL存储过程时,不能省略参数,但是可以用null来代替
call是mysql的存储过程调用方式,同时调用时必须有参数或者为null
共享锁【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。
关系型数据库管理系统应能实现的专门关系运算包括(B)
排序、索引、统计
选择、投影、连接
关联、更新、排序
显示、打印、制表
要保证数据库物理数据独立性,需要修改的是( B )。
模式
模式/内模式映射
模式/外模式映射
内模式
在 E-R 模型转换成关系模型的过程中,下列叙述不正确的是?(D)
每个 M ∶ N 联系类型转换一个关系表
每个实体类型转换成一个关系表
1∶1联系类型可以转换成一个新的关系表
1∶N 联系类型时,不可以生成新的关系表
死锁发生时( D )。
两个事务什么都没做
两个事务都需撤消
撤消其中一个事务,把两个事务都恢复到初态
撤消其中一个事务,并恢复到初态
下面哪些字符最可能会导致sql注入?(A)
’(单引号)
/
"(双引号)
$
下列哪些是与数据库管理相关的技术:( RDBMS、NoSQL、 NewSQL、HBase )
分析:
hadoop是分布式文件系统;
关系型数据库管理系统RDBMS:MySQL、SQL Server、DB2、Access
postgreSql是对象关系型数据库管理系统
分析:
<
和>
分别对应<
和>
,这是转义字符
case when 判断条件 then 成功结果 else 不成功结果 end
分析:
有联系才有关系,所以关系模式必须要能够连接
控件包含复选框 组合框 编辑框 列表框
分析:
创建索引语法:create index 索引名 表(数据列)
A错是因为若类型是char类型其长度不能超过定义的范围;
D错是因为若定义的索引列是blob类型或者text类型,则必须指定长度
注意:若数据列是char和varchar类型,则length长度可以小于实际长度;若为blob或者text类型,则必须指定长度
数据库使用读写分离最主要的目的是(B)
应对读多写少的场景
减少X锁与S锁的竞争
及时备份数据
水平或垂直拆分数据库
以下哪种操作或者结果是保存在事务日志里的(C)
程序运行过程
程序的执行结果
对数据的更新操作
对数据的查询操作
视图是一个“虚表”,视图的构造基于( C)
.基本表
.视图
.基本表或视图
.数据字典
设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置"参照完整性规则",为此要求这两个表( B )
在父表连接字段上建立普通索引,在子表连接字段上建立主索引
在父表连接字段上建立主索引,在子表连接字段上建立普通索引
在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引
在父表和子表的连接字段上都要建立主索引
设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是( C)
该操作不存在问题
该操作丢失修改
该操作不能重复读
该操作读“脏”数据
分析:
3种数据不一致性
1、脏读
脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。
2、不可重复读
不可重复读是指在对于数据库中的某行记录,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,另一个事务修改了数据并提交了。
3、幻读
幻读是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行,就像产生幻觉一样,这就是发生了幻读。
分析:
一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况:
若联系为1:1,则每个实体的码均是该关系的候选码。
若联系为1:n,则关系的码为n端实体的码。
若联系为m:n,则关系的码为诸实体码的组合。
分析:
主键可以确定一个并且是唯一的一个元组(元祖即一行数据)。
虽然说职工号唯一,但是每个职工的技能存在多个,所以如果选择职工号作为主键的话,那么就会违背一个主键确定一个元组的原则。 而通过(职工号,技能)可以确定一个元组(即一行数据)
分析:
部门是id,应该在前面 性别和工资存在重复
基本工资是数字,所以要转一下
str()函数用于将数值型数据转换为字符串。
str()函数实例
要求:将244533.3344转换为长度为12位,小数点后有4位的字符串
语句如下:select str(244533.3344,12,4)
分析:
数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。
数据字典内容包括:
1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。
2、分配多少空间,当前使用了多少空间等。
3、列的缺省值。
4、约束信息的完整性。
5、用户的名字。
6、用户及角色被授予的权限。
7、用户访问或使用的审计信息。
8、其它产生的数据库信息。
数据字典:information_schema
分析:
分配权限的格式应该是:grant [权限] on [table] to 'username'@'localhost';
分析:
数据库的三级模式:外模式、内模式、模式。
一个数据库中外模式可以有多个,内模式和概念模式只能又一个
分析:
数据的范式:
1NF:字段不可分割
2NF:非主属性的列必须完全依赖于主属性,而不能部分依赖【主属性:可唯一的确定一行】
3NF:非主属性不依赖于其他非主属性。每一列数据都和主键直接关联,而不能间接相关。不存在传递依赖
A错。W1表和W2表之间没有建立联系【其中:W表示表,()括号里的主属性是能够唯一确定一列的属性】
B错。工资由工种唯一确定,存在非主属性之间的依赖。
C对。W1表和W2表由工种进行关联,并且满足3NF
D项,应采用varchar灵活变长
这题有点争议:如果C对,为啥F不对呢?
分析:
不是越高越好,一般达到3nf就好了
分析:
删除异常:不该删除的数据被删除
插入异常:应该插入的数据未被插入
alter是针对表整体结构的修改;modify是针对表中某一项的字段进行修改
数据库系统的特点:数据共享、数据独立、减少数据冗余、避免数据不一致、加强了数据保护。
DDBS 中,透明性层次越高( C )
网络结构越简单
网络结构越复杂
应用程序编写越简单
应用程序编写越复杂
DDBS:分布式数据库系统
计算机中的透明指的是:计算机中存在,但你不需要了解的。因此透明程度粤澳,越不需要管底层的实现,程序编写也就越简单
数据库管理系统要做的工作:描述数据库;管理数据库;维护数据库;数据通讯
E —R模型属于( 信息模型 )
在MySql中,在Product表中,使用全文索引在detail列中搜索包含“rabbit”的列,则下列语句正确的是( A )
select * from product where mactch(detail) against (‘rabbit’)
select * from product where against (detail) mactch (‘rabbit’)
select * from product where fulltext (detail) mactch (‘rabbit’)
select * from product where mactch (detail) fulltext (‘rabbit’)
selete与match()和against()一起使用:match():指定被搜素的列;against():指定要使用的搜索表达式
在MySQL中,关于HASH索引,下列描述正确的是( ABD )
只用于使用=或者 < = >操作符的等式比较
优化器不能使用HASH索引来加速Order By操作
如果将一个MyISAM表改为HASH索引的MEMORY表,不会影响查询的执行效率
只能使用整个关键字来搜索一行
下面关于数据库范式的说法哪些是正确的:( ADE )
关系型数据库设计必须符合第一范式,在这种范式下一个数据列只能有一个值
数据库设计范式的引入,提高了数据库访问的效率 ——数据库范式的引入是为了解决插入、删除异常等问题,并不能提高访问效率
数据库表设计[学号,学生姓名、年龄、性别、课程号、课程名称 课程学分]满足第二范式,但不满足第三范式
满足第四范式必然满足第三范式,满足第三范式必然满足第二范式
通过数据范式的引入,可以减少数据冗余,消除数据操作异常
数据库设计时,符合的范式的等级越高越好 ——不是越高越好,看具体需求
以下关于事务的说法不正确的是(A)
事务是可以分割的一组操作集合(工作逻辑单元)。
一系列操作作为一个整体一起向系统提交,要么都执行、要么都不执行。
事务是数据库操作的最小工作单元。
事务是作为单个逻辑工作单元执行的一系列操作。
分析:
事务具有原子性,不可分割。事务就是最小的操作逻辑单元。事务里包括了一系列操作。
分析:这里的属性都不可分割因此是满足1NF的;
因为非主属性都依赖于主属性sno因此满足2NF;
因为非主属性之间存在依赖,因此不满足3NF;
一条SQL语句原则上可以产生或处理多条记录,而一组主变量一次只能存放一条记录。因此,仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要 求。为了解决这个问题,嵌入式SQL引入了游标的概念来协调这两种不同的处理方式。
游标是系统开设的一个数据缓冲区,存放SQL语句的执行结果集。 每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。
分析:
AC中where子句有问题;
B项没有into;
参考文献
这里的单号和物品都是候选键(可以被选作为主键)
码(键):在实体型中,能唯一标识一个实体的属性或属性集称为实体的码。比如学生的学号就是学生这个实体的码,因为学号每个人都是不一样的,但名字就不能作为码了,因为可能会有重名的。
分析:
- 客户端发送一条查询给服务器;
- 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;
- 服务器端进行SQL解析parsing、预处理transition,再由优化器optimization生成对应的执行计划;
- 根据优化器生成的执行计划,调用存储引擎的API来执行分布distribution查询;
- 将结果返回给客户端。
where不能直接连接聚合函数;AC错
聚合函数要配合聚合操作group by使用;
having要在聚合函数之后使用;C错
本题错误原因:被多选题给迷惑了
RDBMS :关系数据库管理系统
存储过程就是具有名字的一段代码,用来完成一个特定的功能
层次模型必须满足的一个条件是( B )
每个结点均可以有一个以上的父结点
有且仅有一个结点无父结点
不能有结点无父结点
可以有一个以上的结点无父结点
在数据表视图中,不能(A)
修改字段的类型
修改字段的名称
删除一个字段
删除一条记录
表结构如下:
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
)
) ;
以下查询语句结果一定相等的是(ABCE)
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;
分析:
count(字段名):会忽略该列中所有的null值
count(*):不会忽略null值,本质计算的是行数
count(1):不会忽略null值,本质计算的是行数
ABCE结果一样,计算的都是总的平均值,不会忽略空值
DF结果一样,计算的是score列的平均数,会忽略空值
笛卡尔积为各个元组的乘积
数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。
数据库的三级模式:
外模式:也称为用户模式,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图;
模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;
内模式:也称为存储模式,是数据物理结构和存储方式的描述;
分析:错误原因:审题不仔细
分析:
各个数据库的语法不一样:
Sql server: select TOP N * from table_name.
MySQL: select * from table_name limit 0,10;
Oracle: select * from table_name where rownum<=10
题目问的是Sql server
在多对多表中,要考虑建立关系表来建立联系
注意审题:不是基本特征的是!
外键 :表的外键是另一表的主键 , 外键可以有重复的 , 可以是空值
已知关系R有30个元组,S有15个元组,则R∪S和R∩S的元组数不可能是( C )
40、5
30、15
45、15
38、7
道题主要考虑两个数据是否同时正确,C选项中R∪S若为45=R+S那么此时,R和S中没有相同的元组,这就表明R∩S应当为0.
审题不仔细,选成D了
审题不仔细,题目是包含“计算机”字符串的课程,不是直接等于
数据库三级模式体系结构的划分,有利于保持数据库的 (A)
数据独立性
数据安全性
结构规范化
操作可行性
数据库管理系统(DBMS)最主要的功能是( B )
修改数据库
定义数据库
应用数据库
保护数据库
在mysql中,与语句SELECT * FROM book b WHERE b.book_num NOT BETWEEN 200 AND 300;等价的有(D)
SELECT * FROM book b WHERE b.book_num < 200 OR b.book_num >= 300
SELECT * FROM book b WHERE b.book_num <= 200 OR b.book_num > 300
SELECT * FROM book b WHERE b.book_num <= 200 OR b.book_num >= 300
SELECT * FROM book b WHERE b.book_num < 200 OR b.book_num > 300
注意:问的是等价的,不是相反的!!!
not between 不包含等于号;
between包含等于号;
注意看题,A项是对的
处理效率:drop>truncate>delete
drop:删除整个表
truncate:删除全部记录
delete:删除部分记录,可以rollback
下面关于数据库唯一索引正确的是( ABC )
表可以包含多个唯一约束,但只能有一个主键
唯一约束列可以包含null值
唯一约束列可修改和更新
唯一约束不能用来定义外键
唯一约束列可以包含null值;
主键是非空且唯一的,因此不能包含null
order by与索引
首先利用where进行数据查询,这一步是免不了的,至于这一步有没有利用索引暂时不考虑,关键是在获取所有符合的记录后还需要进行排序,看看order by是如何利用索引的。
如果order by中的字段有建立索引,同时:
1、该字段没有出现在where中,则在排序的时候需要正常排序,默认order by是升序排序, 故索引没有对排序产生有利帮助 (B,C错误)
2、该字段同时同时出现在where中,则在获取记录后不进行排序,而是直接利用索引, 效率变高。(D正确)
两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。
事务的两段锁协议是保证可串行化调度的充分条件
若系统在运行过程中,由于某种硬件故障使存储在外存上的数据部分损失或全部损失, 这种情况称为( A)
介质故障
运行故障
系统故障
事务故障
在数据库的三级模式结构中,外模式可以有多个,内模式和模式只有一个
数据库中 (完整性) 是指数据的正确性和相容性
如果要从数据库中删除触发器,应该使用SQL语言的命令(DROP TRIGGR)
关系数据模型的基本数据结构是(D)
树
图
索引
关系
如下哪(个)些特性功能不用于数据的查询优化?(C)
并行查询
索引
视图
分区
数据的逻辑独立性是指( C )
内模式改变,模式不变
模式改变,内模式不变
模式改变,外模式和应用程序不变
内模式改变,外模式和应用程序不变
Mysql、DB2、PostgreSQL都是关系型数据库;
MongoDB是分布式数据结构
可串行化调度肯定是正确的并发调度。√
串行调度,各个事务的操作没有交叉,也就没有互相干扰,也就不会产生兵法所引起的异常
哪些字段适合建立索引?(BCD)
在select子句中的字段
外键字段
主键字段
在where子句中的字段
下列哪一个Transact-SQL语句能够实现拒绝user4查询视图MyView的权限(C )
REVOKE UPDATE ON MyView
GRANT SELECT ON MyView TO user4
DENY SELECT ON MyView TO user4
GRANT UPDATE ON MyView
数据库系统软件包括DBMS和_________
数据库
高级语言
OS
数据库应用系统和开发工具
在MySQL里,对数据表进行修改的语句正确的是(BD)
alter table employee add memo
alter table employee drop column age
alter table employee add column
alter table employee drop age
删除列drop可以省略column;
添加列add必须说明数据类型;
例如:
ALTER TABLE table_name
DROP column_name
层次模型、网状模型和关系模型的划分原则是 D
记录长度
文件的大小
联系的复杂程度
数据之间的联系
请取出 BORROW表中日期(RDATE字段)为当天的所有记录?(RDATE字段为datetime型,包含日期与时间)。SQL语句实现正确的是:( A )
select * from BORROW where datediff(dd,RDATE,getdate())=0
select * from BORROW where RDATE=getdate()
select * from BORROW where RDATE-getdate()=0
select * from BORROW where RDATE > getdate()
DATEDIFF() 函数返回两个日期之间的时间。
语法
DATEDIFF(datepart,startdate,enddate)