201 在数据库系统中,系统故障造成(C )。
硬盘数据丢失
软盘数据丢失
内存数据丢失
磁带数据丢失
系统故障时,数据库缓冲区(内存)中的内容全被丢失,一些尚未完成的结果可能已送入物理数据库。
202 候选码中属性称为( B)。
非主属性
主属性
复合属性
关键属性
候选码(Candidatekey)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
简单的情况:候选码只包含一个属性。
就是数据库中,主键和复合主键的区别! 主键:单独一个字段就能唯一标识一行数据; 复合主键:也称为联合主键,指多个字段组合在一起能唯一标识一行数据;
203 在合并分 E-R 图时必须消除各分图中的不一致。各分 E-R 图之间的冲突主要 有三类,即属性冲突、命名冲突和结构冲突,其中命名冲突是指(B )。
命名太长或太短
同名异义或同义异名
属性类型冲突
属性取值单位冲突
205 关系模式R(a,b,c,d,)中关系代数表达式σ3<'4’®等价于SQL语句?D
Select * from R where '4'<d
Select c,d from R having d<2
Select c from R where d<4
Select * from R where c<'4'
σ表示关系代数选择操作 ;
σ3<'4’® 代表:从R中选择第三列的属性值小于4的行;
所以选择D.
206 数据库在磁盘上的基本组织形式是( B)。
DB
文件
二维表
系统目录
数据库中的逻辑组织关系由文件存储,并以文件形式表示,选B
207 设有两个关系R(A,B)和S(B,C),与下列SELECT语句SELECT A,B FROM R JOIN S ON R.B=S.B WHERE C≠’C56’等价的关系代数表达式是?C
πA,B (σC≠‘C56‘ and R.B=S.B(R∞S))
πA,B (R ∞ S)
R-πA,B (σC= ‘C56‘(R∞S))
R-πA,B (σC≠‘C56‘(R∞S))
208 关于回滚段的使用,下列哪种分配方法比较合适?c
给系统中每个事务分配回滚段
给短事务分配小回滚段
给长事务分配大回滚段
给长事务分配小回滚段
一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
短事务应该不是一个事务占用一个段,应该是多个事务在一个段。
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
回滚段的数量规划 对于OLTP系统,存在大量的小事务处理,一般建议:
数量多的小回滚段;每四个事务一个回滚段;每个回滚段不要超过十个事务。
对于批处理,一般建议: 少的大回滚段;每个事务一个回滚段。
209 在SQL中,与“NOT IN”等价的操作符是( A )。
< >ALL
< >SOME
= SOME
= ALL
210 下面Transact-SQL语句中可以用于创建主键的是(A)
alter table table1 with notcheck add constraint [PK_table1] primary key nonclustered (column1) on primary;
alter table table1 column1 primary key;
alter table table1 column1;
create table table1 (column1 char(13) not null primary,column2 int not) on primary;
表中删除主键为:
alert table table_test drop primary key;
表中增加主键为:
alert table table_test add primary key(id);
211 employee的表结构及数据结构如图所示,以下语句结果分别为:3,3,2
select count(*) from employee;
select conut(1) from employee;
select count(Score) from employee;
211 以下对数据库事物理解错误的是?()
一致性是一个事务执行之前和执行之后都必须处于一致性状态
脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据
Repeatable read可避免脏读、可重复读的发生
Read committed是Oracle数据库中默认的隔离级别
Repeatable read可避免脏读、不可重复读的发生,不是避免可重复读的发生
另外Oracle默认是read committed,MySQL默认是repeatable read
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
212 在查询优化策略中,首先应该让投影操作尽可能早的做,然后再尽可能早的进行选择运算。( 错误 )
213 (B) 是按照一定的数据模型组织的,长期存储在计算机内,可为多个用户共享的数据的聚集。
数据库系统
数据库
关系数据库
数据库管理系统
214 关系规范化中的删除操作异常是指( A)。
不该删除的数据被删除
不该插入的数据被插入
应该删除的数据未被删除
应该插入的数据未被插入
失败:该干啥没干成
异常:不该干啥干了
插入失败:该插入的没插入;
插入异常:不该插入的被插入;
删除失败:该删除的没删除;
删除异常:不该删除的被删除;
215 存在R=(A,B,C,D,E),F={A→B,B→C,CE→D},则R的候选码为( D )
CE
A
B
AE
候选码的定义:若关系中的某一属性组的值能唯一地标识一个元组(表中的一行数据),则称该属性组为候选码。
A->B 表示B依赖于A, A可能是候选码,找出没有依赖关系的属性,就是候选码,所以是AE.
如何求一个关系模式的候选码
216 数据库的网状模型应满足的条件是 (A )
允许一个以上结点无双亲,也允许一个结点有多个双亲
必须有两个以上的结点
有且仅有一个结点无双亲,其余结点都只有一个双亲
每个结点有且仅有一个双亲
网状数据库采用网状模型作为数据的组织方式,学过数据结构应该清楚网状模型:
节点之间的连线是由方向性的,a——>b ,不一定有b——>a
应用在数据库模型中就是: 一个节点可以有多个双亲(多个节点指向它)
可以有一个以上的节点无双亲(这些节点只有出度,无入度)
层次模型是类似于树
网状模型是类似于图
217 数据库使用读写分离最主要的目的是(B)
应对读多写少的场景
减少X锁与S锁的竞争
及时备份数据
水平或垂直拆分数据库
不是3NF
是3NF但不是2NF
是3NF但不是BCNF
是BCNF
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键。也就是关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选键。
主属性:任何一个候选键中的属性称作主属性。(请记住这个概念)
主键(primary key):用户从一个关系的多个候选键中,选定一个作为主键。
函数依赖:一个或者一组属性的值可以决定其他属性的值。候选键都可以做到。
如果非主属性B函数依赖于构成某个候选键的一组主属性A,而且A的任何一个真子集不能被B函数依赖,则称B完全函数依赖于A;
反之,若B函数能依赖于A的真子集,则称B部分函数依赖于A。
图中关系R,零件号可以唯一确定它的单价,因此存在函数依赖 零件号 -> 单价。而不存在 单价-> 零件号。
满足BCNF条件:
1 所有非主属性对每一个候选键都是完全函数依赖;
2 所有的主属性对每一个不包含它的候选键,也是完全函数依赖;
3 没有任何属性完全函数依赖于非候选键的任何一组属性。
因此选D。
各种范式的关系:
选D。考察的是关系型数据库的范式。
第一范式:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。
第二范式:在第一范式(1NF)的基础上建立起来,数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识
第三范式:在2NF基础上,任何非主属性不依赖于其它非主属性。
巴斯-科德范式(BCNF):在3NF基础上,任何非主属性不能对主键子集依赖。
第四范式(4NF)和第五范式(5NF,又称完美范式)。结合题目中的选项暂不论述。
219 下列关于视图的说法中,正确的是(ACD)
视图是一种查看数据表中数据的方式
视图就是真实的表
视图具有一组命名的属性和相应的属性值
除非是索引视图,否则视图不占用任何物理存储空间
220 假设一个元组在子查询1中出现m次,在子查询2中出现n次,则下列说法正确的是______A___。
该元组在“子查询1 Union ALL 子查询2”中出现m + n次;
该元组在 “子查询1 Union 子查询2”中出现m+n次;
该元组在“子查询1 Union ALL 子查询2”中出现1次;
该元组在 “子查询1 Union 子查询2”中出现1次;
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
union all 允许2边记录出现重复
union 2边去重
221 关系型数据库创建表都有主键。以下对主键描述正确的是:C
主键是唯一索引,唯一索引也是主键
主键是一种特殊的唯一性索引,只可以是聚集索引
主键是唯一、不为空值的列
对于聚集索引来说,创建主键时,不会自动创建主键的聚集索引
主键索引是唯一索引的一种特殊类型,两者有区别,比如主键索引不能为空,唯一索引可以
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。 唯一性索引列允许空值,而主键列不允许为空值。 主键列在创建时,已经默认为空值 + 唯一索引了。 主键可以被其他表引用为外键,而唯一索引不能。 一个表最多只能创建一个主键,但可以创建多个唯一索引。 主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。 在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。
222 下列有关MySQL数据库中的NULL值,说法正确的是(D)
NULL与它本身的比较可以使用=,<>或!=
NULL是"有数据的"
NULL与0的比较可以使用=,<>或!=
NULL是"无数据"或"未知数据"
“空值” 和"NULL"的概念:
1:空值(’’)是不占用空间的,判断空字符用 = ‘’ 或者 <> ‘’ 来进行处理;
2: NULL值是未知的,且占用空间,不走索引;判断 NULL 用 IS NULL 或者 is not null , SQL 语句函数中可以使用 ifnull ()函数来进行处理.
注:在进行 count ()统计某列的记录数的时候,如果采用的 NULL 值,会别系统自动忽略掉,但是空值是统计到其中
223
224 关于存储过程和函数,正确的是(A B C E F G)
存储过程能返回参数。
函数只能返回值或者表对象,不能返回参数。
函数可以用在查询语句中的FROM关键字后面。
存储过程能够作为查询语句的一部分来调用
存储过程一般作为独立的部分来执行。
存储过程可提高数据库执行速度。
存储过程能减少网络交互的成本。
存储过程一般作为独立的部分进行运行 ,不作为查询语句的一部分
225 给出数据表score(stu_id,name,math,english,chinese),下列语句正确的是( D)
select *,sum(english) from score
select stu_id,sum(math) from score
delete * from score
select sum(math),avg(chinese) from score
A: * 多行,sum一行
B:stu_id多行,sum一行
C:正确的删除为delete from score 不需要加 *
个人理解
226 在 SQL 语言中使用 FOREIGN KEY 时,与之配合的语句是(D)。
EXISTS
EXCEPT
TABLE
REFERENCES
227 在一个含有group by的查询sql中,同时存在having和where,sql在解析执行的时候,先执行的是哪一个?B
having
where
执行顺序:from,where,group by,having,select,order by
执行顺序:FROM>ON>JOIN>WHERE>GROUP BY>WITH CUBE or WITH ROLLUP>HAVING>SELECT>DISTINCT>ORDER BY>TOP
where过滤from所指定的数据源,但对于group by所产生的分组无效;
having过滤分组,它依附于group by存在。
228 以下关于事务的说法不正确的是(A)
事务是可以分割的一组操作集合(工作逻辑单元)。
一系列操作作为一个整体一起向系统提交,要么都执行、要么都不执行。
事务是数据库操作的最小工作单元。
事务是作为单个逻辑工作单元执行的一系列操作。
事务就是最小的操作逻辑单元,但包括一系列操作
事务具有原子性,不可分割
229 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称这个属性为(A)
关键字
数据项
主属性
主属性值
能唯一标识元组的一个属性或最小的属性组称为关键字。关键字中的属性都称为主属性。此题中应该是主属性和关键字都可以。
在select子句中的字段
外键字段
主键字段
在where子句中的字段
231 关于数据库的事务,以下错误的是(BC)
事务具有原子性, 事务是逻辑工作的基本单位
事务具有一致性,事务会中的操作要么全做,要么全不做
事务具有隔离性,所以不会引发死锁
事务具有持续性,一旦提交永久的改变数据库的数据
232 仅仅提交更新部分的数据而不是全部数据违反了数据库的什么规则?A
原子性
一致性
隔离性
持久性
233 在 SQL 中,与关系代数中的投影运算对应的子句是A
Select
From
Where
Order
投影选择属性列,选择选择条件行,select后面选择的属性正是投影对应的
在select查询中,select 子句是投影操作,where子句是选择操作,join子句是连接操作。
例如:
select a from table1即为查询table1关系上a属性上的投影.
234 在SQL中语法规范中,having子句的使用下面描述正确的是:( AC )
having子句即可包含聚合函数作用的字段也可包括普通的标量字段
使用having的同时不能使用where子句
having子句必须于group by 子句同时使用,不能单独使用
使用having子句的作用是限定分组条件
Having子句和where子句是等同的
如果select语句中没有聚合函数的使用,就不能使用having子句
当一条sql语句没有group by的话,整张表的数据会自成一组。
having的作用是对分组查询的结果进行过滤
235 系统死锁属于?b
程序故障
事务故障
系统故障
介质故障
死锁指的是两个或更多的事务同时处于等待状态,每个事务都在等待其他的事务释放锁使其可继续执行;事务故障是事务没有按预期的要求成功完成,产生的原因是逻辑错误或系统错误。
236 对于学生选课管理数据库,如果要查询其直接先行课(Cpno)为S号课程的学生姓名,则如下查询效率最高的为( A )
π是投影操作,πSno表示投影到Sno这一列;δ选择操作,右下角跟选择条件;∞表示自然连接,╳表示笛卡尔积。这题,产生中间结果少的效率高。
237 在E-R图中,联系用(C )符号表示。
椭圆
矩形
菱形
三角形
实体用矩形表示;
属性用椭圆表示;
联系用菱形表示;
父子关系用三角形表示。
238 设有两个事务T1、T2,其并发操作如图2所示,下面评价正确的是(C )。
该操作不存在问题
该操作丢失修改
该操作不能重复读
该操作读“脏”数据
1.脏读:
指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
2.不可重复读:
指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
3.幻读:
指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
https://www.nowcoder.com/test/question/done?tid=46167642&qid=67338#summary
数据库事务的并发控制问题:
丢失修改:两个不同的事务同时获得了相同的数据,又都对这个数据进行了修改,那么先提交的事务的更新就会被后提交事务的更新覆盖掉.
脏读(未提交读) :一个事务正在访问数据,而其他事务正在更新该数据,但尚未提交,此时会发生脏读问题,即第一个事务所读取的数据是“脏”的。
不可重复读:在一个事务内多次读同一数据,在该事务还没有结束时,另外的事务也访问该数据并对其做修改,从而导致第一个事务两次读取的数据不一样。
幻读:有两种情况
(1):事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按照相同条件读取数据时,发现某些记录神秘的消失了.
(2):事务T1按一定条件从数据库中读取了某些数据记录后,事务T2插入了一些记录,当T1再次按照相同条件读取数据时,发现多了一些记录.
数据库利用加锁和阻塞来保证事物之间不同等级的隔离性,从而实现事务的互不干扰的访问和操作数据库.
四级隔离级别:定义用户之间隔离和交互的程度
读未提交(read uncommitted):可以读到其他事务还没有提交的数据,但不允许丢失修改,会导致大量数据变化。一级封锁协议
读已提交(read committed):可以看到其他事务添加的新纪录,而且其他事务对现存记录做出的修改一旦被提交,也可以看到,避免丢失修改和脏读。二级封锁协议
可重复读(repeatable read):当前在执行的事务的变化无法被看到,同一事务中执行select数次结果都相同,避免丢失修改、脏读和不可重复读。增强的二级封锁协议
可串行化(serializable):提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行,避免所有并发控制问题。三级封锁协议
239 把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是(C )
GRANT QTY ON SPJ TO ‘李勇’
GRANT UPDATE(QTY) ON SPJ TO ‘李勇’
GRANT UPDATE (QTY) ON SPJ TO 李勇
GRANT UPDATE ON SPJ (QTY) TO 李勇
李勇是一个用户而不是用户名 所以不需要加单引号
grant update (列名) on 表名 to 用户
240 数据库中,什么操作命令可以整理表数据文件的碎片A
optimize table TabName;
repaire table TabName;
analyze table TabName;
flush table TabName;
整理表数据文件碎片是对表的优化操作,用optimize。repair是修复表
241 在下列4 个选项中,不属于基本关系运算的是D
连接
投影
选择
比较
242 如下哪(个)些特性功能不用于数据的查询优化?(C)
并行查询
索引
视图
分区
选C。视图并不在数据库中以存储的数据值集形式存在,而仅仅是一个给用户展示的逻辑虚表,其在数据库中底层还是以完整的数据存储。
数据的查询优化策略:
避免全表扫描,采用分区的形式,找到指定区域来避免全表查询。所以D正确。
建立索引,是数据信息进行排序的数据结构,目的是提高查询效率。
并行查询是从操作系统和CPU上给予多线程多核的操作,也属于提高插叙效率的一种。
243 在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’)
在创建表时,启用全文本搜索:
fulltext(detail)
selete与match()和against()一起使用:match():指定被搜素的列;against():指定要使用的搜索表达式,即:
selecte *
from product
where match(detail) against(‘rabbit’);
244 数据库设计中,规范化程度并非越高越好。( 对 )
是否规范化的程度越高越好?
这要根据需要来决定,因为“分离”越深,产生的关系越多,关系过多,连接操作越频繁,而连接操作是最费时间的,特别对以查询为主的数据库应用来说,频繁的连接会影响查询速度。所以,关系有时故意保留成非规范化的,或者规范化以后又反规范了,这样做通常是为了改进性能。
反规范的好处是降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,相应带来的问题是可能出现数据的完整性问题。加快查询速度,但会降低修改速度。因此决定做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点,好的索引和其它方法经常能够解决性能问题,而不必采用反规范这种方法。
245 一般数据库若出现日志满了,会出现什么情况? B
不能执行任何操作
只能执行查询等读操作,不能执行更改,备份等写操作
查询,更新等读写操作正常运行
只能执行更改,备份等写操作,不能进行查询等读操作
246 若事务 T 对数据对象 A 加上 S 锁,则(C )。
事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X 锁。
事务T可以读A但不能修改A,其它事务能对A加S锁和X锁。
事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X 锁。
事务T可以读A和修改A,其它事务能对A加S锁和X锁。
共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改(不然可能造成不可重复读,脏读)。
S锁共享锁事务可以读一行,其他事务不能获得排它锁 X可以读也可以写,其他事务不能获得排它锁x也不能获得共享锁s
247 (CD)完成对数据库数据的查询与更新。
DCL
DDL
DML
DQL
DQL(Data Query Language):数据查询语言
关键字:select
查询数据
DML(Data Manipulation Language):数据操作语言
关键字:insert、delete、update
插入、删除、更改数据
DDL(Data Denifition Language):数据定义语言
关键字:create、drop、alter
创建、删除、更改表结构
TCL(Trasactional Conrtol Language):事务控制语言
关键字:commit、rollback
用来提交和回滚事务
DCL(Data Conrtol Language):数据控制语言
关键字:grant、revoke
用来设置或更改数据库用户或角色权限
248 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( D)。
外模式
内模式
存储模式
模式
数据库系统由外模式、模式和内模式构成。
外模式是局部数据的逻辑结构和特征的描述–数据视图;
模式是全体数据的逻辑结构和特征的描述–所有用户的公共视图;
内模式是数据物理结构和存储方式的描述;
249 下面哪个不是数据库系统必须提供的数据控制功能( B)。
安全性
可移植性
完整性
并发控制
数据库管理系统提供的功能有:完整性、安全性、一致性、可恢复性。
数据库管理系统提供相应的功能: (1)数据库恢复:在系统失效后的数据库恢复,配合定时备份数据库,使数据库不丢失数据。 (2)并发控制:保证多用户能共享数据库,并维护数据的一致性。 (3)安全性保护:防止对数据库的非法使用,以避免数据的泄露、纂改或破坏。 (4)完整性保护:保证数据的正确性和一致性。
250 以下关于mysql复制关系,描述错误的一项是?C
mysql支持master-slave复制,也支持master-master复制
一般情况下,异步复制的性能比半同步复制好,但后者相对更为安全
基于row格式的复制由于传输的数据量比较大,一般不建议使用
在有多个slave参与的半同步复制中,master并不一定需要等待全部slave返回
Mysql复制分成三步:
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据。
http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html
251 请取出 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(dd,RDDATE,getdate())==0含义,即返回以日为单位(dd),和当前日期(getdate)相差为0日的RDDATE。
这里用这个函数的意义在于,RDDATE包括日期和时间,这里因为有时间,和getdate不能直接比较,所以用datediff转换为范围。
252 E —R模型属于( A)
信息模型
层次模型
关系模型
网状模型
信息模型也就是概念模型。这里注意区分关系模型是和层次模型,网状模型并列的,而信息模型是和逻辑模型,物理模型并列的。
253 设计数据库概念结构时,常用的数据抽象方法是概括和( AD)。
分类
继承
析分
聚集
三种常用抽象 ▪ 分类 ▪ 聚集(Aggregation) ▪ 概括(Generalization)
254 下列的SQL语句中,(D)不是数据定义语句
CREATE TABLE
DROP VIEW
CREATE VIEW.
GRANT
DQL:SELECT
DML(data manipulation language):
UPDATE、INSERT、DELETE,就象它的名字一样,用来对数据库里的数进行操作的语言
DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
255 遵守两段锁协议的事务一定不会死锁。( 错误 )
两段锁协议(Two-Phase Locking――2PL)
两段锁协议规定所有的事务应遵守的规则:
① 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。
② 在释放一个封锁之后,事务不再申请和获得其它任何封锁。
即事务的执行分为两个阶段:
第一阶段是获得封锁的阶段,称为扩展阶段。
第二阶段是释放封锁的阶段,称为收缩阶段。
定理:若所有事务均遵守两段锁协议,则这些事务的所有交叉调度都是可串行化的。
对于遵守两段协议的事务,其交叉并发操作的执行结果一定是正确的。值得注意的是,上述定理是充分条件,不是必要条件。一个可串行化的并发调度的所有事务并不一定都符合两段锁协议,存在不全是2PL的事务的可串行化的并发调度。
同时我们必须指出,遵循两段锁协议的事务有可能发生死锁。
此时事务T1 、T2同时处于扩展阶段,两个事务都坚持请求加锁对方已经占有的数据,导致死锁。
为此,又有了一次封锁法。一次封锁法要求事务必须一次性将所有要使用的数据全部加锁,否则就不能继续执行。因此,一次封锁法遵守两段锁协议,但两段锁并不要求事务必须一次性将所有要使用的数据全部加锁,这一点与一次性封锁不同,这就是遵守两段锁协议仍可能发生死锁的原因所在。
两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。
256 下述那一条不属于概念模型应具备的性质(D )
有丰富的语义表达能力
易于交流和理解
易于变动
在计算机中实现的效率高
概念模型的特点包括:有丰富的语义表达能力、易于交流和理解、易于变动和易于向各种数据库转换
对于选项D,一般来说,构建概念模型的过程与程序员的关系并不大。最适合进行这项活动的人,应该是那些有较深资历的领域专家,极端一点,甚至可以就是最为熟悉自身业务流程的客户代表。只要稍稍学习简单的建模知识,他们就可以胜任了。技术出身的人要做好这个工作,在开始之前他可能首先需要做的就是:忘掉VB,忘掉JAVA,忘掉.Net, 忘掉C++ 。。。
257 当 B属性函数依赖于A属性时,属性A与B 的联系是 B
1对多
多对1
多对多
1对 1
B函数依赖于A,也可以说成A函数确定B。即A->B,即每个A一旦确定,随之而言B就确定。我们可以简单理解成Y=X^2,每有一个X确定,Y就确定。但一个Y却可以有多个X与之对应。即一个确定的B可以有多个A,但是一个确定的A只能有一个B。即多对1
258 SQL 语言是( B)语言,易学习。
过程化
非过程化
格式化
导航式
SQL 决定了应该做什么而不是如何去做。 SQL是高级的非过程化编程语言,它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式。而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的SQL作为数据的输入与管理。
259 现有表user,字段:userid,username, salary, deptid,email; 表department,字段:deptid, deptname;下面应采用检查约束来实现? C
若department中不存在deptid为2的纪录,则不允许在user表中插入deptid为2的数据行。
若user表中已经存在userid为10的记录,则不允许在user表中再次插入userid为10的数据行
User表中的salary(薪水)值必须在1000元以上。
若User表的email列允许为空,则向user表中插入数据时, 可以不输入email值。
选C:用检查约束(check)来检查输入数值的合法性
alter table user
add constraint CK_SALARY check(salary > 1000)
A:外键约束Foreign Key,选项中说明了department与user两张表的数据具有相关约束性
alter table user
add constraint CK_DEPID foreign key(depid) references department (depid)
B:唯一性约束Unique,确保userid字段不重复
add constraint CK_USERID unique(userid)
D:没用到约束
检查约束(通常是检查一个数据是否在合法的取值范围内)
260 Mysql sql注入中使用延时注入时常用的语句是(BC)
wait for delay ‘0:0:10
sleep(5)
benchmark(100000000,md5(1))
union select
261 已知关系SPJ ( S# , P# , J# , QTY ),把对关系SPJ的属性QTY的修改权授予用户张三的T-SQL语句是( )。
GRANT UPDATE (QTY) ON SPJ TO张三//Grant 权限(属性) ON TABLE TO SB
262 数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据是指( C)
数据字典、应用程序、审计档案、数据库后备副本
数据字典、应用程序、日志文件、审计档案
日志文件、数据库后备副本
数据字典、应用程序、数据库后备副本
数据库恢复的实现中可定期对整个数据库进行复制或转储
转储是数据库恢复中常用的基本技术,它是指DBA把数据库复制到另一个磁盘上的过程,可分为静态转储和动态转储
转储还可以分为海量存储和增量转储。
转储的冗余数据包通常包括 日志文件、数据库后备副本 等。
263 mysql中查看SQL模式的命令是(ACD)
select @@global.sql_mode
select global.sql_mode
select @@sql_mode
select @@session.sql_mode
MySQL数据库中,变量分为 系统变量(以"@@"开头)和用户自定义变量。系统变量分为全局系统变量(global)和会话系统变量(session)。
@@global 仅用于访问全局系统变量的值;
@@session 仅用于访问会话系统变量的值;
@@ 先访问会话系统变量的值,若不存在则去访问全局系统变量的值;
sql_mode 为系统变量,既是全局系统变量,又是会话系统变量。
题中 A,C,D 均正确。
264 一条SQL语句中,group by子句应位于什么位置 B
在where子句关键字之前
在where子句之后
在from关键字之前
在order by子句之后
select的执行顺序为:from where group having order by limit
265 通过指针链接来表示和实现实体之间联系的模型是(D )
关系模型
层次模型
网状模型
层次和网状模型
层次模型以树结构表示数据间的关系,网状模型以图结构来表示数据间的关系,它们都是通过指针链接实现的
(1,99,2)
(5,68,1)
(3,70,3)
(7,45,null)
成绩表中主键是“PK=科目代码”,所以 科目代码要唯一,所以可排除AC;在数据库完整性里有说:外键必须可以重复或者为空,所以 B是可以的,而D为空,所以也满足。故选BD
DFD图即为数据流图(Data Flow Diagram),它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
E-R是实体联系图 里面有方形圆形和菱形
I/O图是输入输出图
IPO图是输入加工输出图
268 在E-R图中,实体用(B )符号表示。
椭圆
矩形
菱形
三角形
在ER图中有如下四个成分:
矩形框:表示实体,在框中记入实体名。
菱形框:表示联系,
椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
269 语句 delete from sc 表明 ( A )
删除sc中的全部记录
删除基本表sc
删除基本表sc中的列数据
删除基本表sc中的部分行
DELETE 语句用于删除表中的行。语法如下:
DELETE FROM 表名称 WHERE 列名称 = 值
当delete语句中的WHERE条件为空时,即语句为:DELETE FROM 表名称 ,默认可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的。也就是删除表中的全部记录。
综上所述,语句 delete from sc 属于where条件为空的delete语句,此时是删除表sc中的全部记录,也就是说答案选A
270 在关系模式中,如果属性A和B存在1对1的联系,则说(C )。
A->B
B->A
A←→B
以上都不是
271 设计数据库的存储结构属于 ( D) 。
需求分析
概念设计
逻辑设计
物理设计
在数据结构中物理结构就是存储结构
272 事务的隔离性是由DBMS的( D)。
完整性子系统实现
恢复子系统出现
安全性子系统实现
并发控制子系统实现
原子性:一个事务对数据库的所有操作,是一个不可分割的工作单元,这些操作要么全部执行,要么什么也不做(由DBMS的事务管理子系统
来实现);
一致性:一个事务独立执行的结果,应(由DBMS的完整性子系统
执行测试任务);
隔离性(由DBMS的并发控制子系统
实现);
持久性(由DBMS的恢复管理子系统
实现的)
273 对数据库数据的存储方式和物理结构的逻辑进行描述的是(A )
内模式
模式
外模式
用户模式
模式:对数据库中全体数据的逻辑结构和特征进行描述。
外模式:数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
内模式:数据物理结构和存储方式的描述。
274 下列哪些是与数据库管理相关的技术: ( ABDF )
A. RDBMS:(Relational Database Management System)关系数据库管理系统
B. NoSQL:非关系型的数据库
C. Nginx:是一个高性能的HTTP和反向***web服务器,同时也提供了IMAP/POP3/SMTP服务
D. NewSQL:新型关系型数据库
E. ActiveMQ:Apache下的一个中间件
F. Hbase:是一个分布式的面向列的数据库
故选:A B D F
275 岳阳酒店新聘用一名机房管理人员,该用户能且仅能对后台数据库HOTEL中任何表执行SELECT操作,以下操作合理的是:(B)
USE HOTEL
使用数据库
SP_GRANTDBACCESS ‘AK’,’W’ 当前数据库中添加一个安全帐户,并使其能够被授予在数据库中执行活动的权限。 EXEC SP_ADDROLEMEMBER ‘DB_DATAREADER’,’W’
为用户添加读权限
Grant添加安全账户,sp_addrolemember是一个将安全帐户作为当前数据库中现有《Microsoft SQL Server》数据库角色的成员进行添加的功能函数。
276 有一个关系:学生(学号,姓名,系别),规定学号的值域是 8 个数字组成的字符串,这一规则属于( C)。
实体完整性约束
参照完整性约束
用户自定义完整性约束
关键字完整性约束
数据的完整性
约束是用来确保数据的准确性和一致性。数据的完整性就是对数据的准确性和一致性的一种保证。
数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。
分为以下四类:
278
【解析】范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
目前关系数据库有六种范式:第一范式( 1NF )、第二范式( 2NF )、第三范式( 3NF )、 Boyce-Codd 范式( BCNF )、第四范式( 4NF )和第五范式( 5NF )。
满足最低要求的范式是第一范式( 1NF )。在第一范式的基础上进一步满足更多要求的称为第二范式( 2NF ),其余范式以次类推。一般说来,数据库只需满足第三范式( 3NF )就行了。
第一范式:主属性(主键)不为空且不重复,字段不可再分(存在非主属性对主属性的部分依赖)。 第二范式:如果关系模式是第一范式,每个非主属性都没有对主键的部分依赖。
第三范式:如果关系模式是第二范式,没有非主属性对主键的传递依赖和部分依赖。
BCNF 范式:所有属性都不传递依赖于关系的任何候选键。
题目中关系模式没有非主属性对主键的传递依赖和部分依赖,满足第三范式,但不满足 BCNF 范式。故本题答案为 A 选项。
279 MYSQL实现主从复制的日志是哪种?C
READ LOG
UNDO LOG
BINLOG
GENERAL LOG
MySQL5.6开始主从复制有两种方式:基于日志(binlog);基于GTID(全局事务标示符)。
mysql主(称master)从(称slave)复制的原理:
(1).master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)
(2).slave将master的binary log events拷贝到它的中继日志(relay log)
(3).slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)
附简要原理图:
mysql日志一般分为5种
错误日志:-log-err (记录启动,运行,停止mysql时出现的信息)
二进制日志:-log-bin (记录所有更改数据的语句,还用于复制,恢复数据库用)
查询日志:-log (记录建立的客户端连接和执行的语句)
慢查询日志: -log-slow-queries (记录所有执行超过long_query_time秒的所有查询)
更新日志: -log-update (二进制日志已经代替了老的更新日志,更新日志在MySQL 5.1中不再用).
280 利用PL/SQL语句将"数据库原理"课程的学分赋值给变量的语句是(A)
select xuefen into @xuefen from course where cname='数据库原理'
select xuefen from course where cname='数据库原理' and xuefen=@xuefen
select @xuefen=xuefen from course where cname='数据库原理'
select xuefen=@xuefen from course where cname='数据库原理'
281 SQL Server 支持哪几种备份?ABCD
数据库备份
事务日志备份
差异备份
文件和文件组备份
SQL支持的备份类型有四种:
1、完全数据库备份
2、差异备份或称增量备份
3、事务日志备份
4、数据库文件和文件组备份
282 下列有关InnoDB和MylSAM说法正确的是(BC)
InnoDB不支持FULLTEXT类型的索引
InnoDB执行DELETE FROM table 命令时,不会重新建表
MylSAM的索引和数据是分开保存的
MylSAM支持主外键,索引及事务的存储
如果执行大量的SELECT,MyISAM是更好的选择
MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。
MyIsam | InnoDB | |
---|---|---|
构成上的区别 | 每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。 .frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 | 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB |
事务处理方面 | MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持 | InnoDB提供事务支持事务,外部键(foreign key)等高级数据库功能 |
SELECT UPDATE,INSERT , Delete 操作 | 如果执行大量的SELECT,MyISAM是更好的选择 | 1.如果你的数据执行大量的INSERT 或 UPDATE,出于性能方面的考虑,应该使用InnoDB表 |
锁 | 表锁 | 提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read inSELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表, 例如update table set num=1 where name like “%aaa%” |
283
284 在下列的 SQL 语句中,属于数据控制的是(B)
a、CREATE b、SELECT c、UPDATE d、GRANT e、DROP f、DELETE g、ALTER h、INSERT i、REVOKE
aefg
di
bcfh
aeg
查询:SELECT
操纵:UPDATE,INSERT,DELETE
定义:CREATE,DROP
控制:COMMIT,ROLLBACK,GRANT等
285 drop、delete与truncate不正确的说法是D
sql语句中删除表 drop、truncate和delete的用法
delete和truncate只删除表的数据不删除表的结构
truncate删除表数据的同时将自动ID置零
truncate不带查询条件
drop语句将删除表的结构,不释放表所占用的空间
当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。
287 子模式 DDL 用来描述
289 关系数据模型的三个组成部分中,不包括( C )
完整性规则
数据结构
恢复
数据操作
关系数据模型的三个组成部分:
1.关系数据模型的数据结构
2.关系数据模型的操作集合
3.关系数据模型的完整性约束
290 概念模型独立于( B )
E-R模型
硬件设备和DBMS
操作系统和DBMS
DBMS
291 数据库管理系统(DBMS)最主要的功能是(B )。
修改数据库
定义数据库
应用数据库
保护数据库
292 雇员表EMP 结构如下
( 雇员编号 EMPNO , 姓名 ENAME ,
工作岗位 JOB , 管理员编号 MGR ,
受雇时间 HIREDATE , 工资 SAL ,
奖金 COMM , 部门编号 DEPTNO );
下列操作语句正确的是:( A )
B选项因为between…and后面加日期的话,短日期默认time为00:00:00 因此查询日期只能截止到2012-12-31 00:00:00 并没有当天的记录
C选项应该是COMM>=SAL*1.1
D选项COMM = 0
293
RDBMS是关系数据库管理系统,它是SQL的基础。主要软件有MYSQL SQL SEVER,ORACLE等;PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,它也是属于关系型数据库。
294 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于 ( C)。
实体完整性约束
参照完整性约束
用户自定义完整性约束
关键字完整性约束
任何关系数据库系统都应该支持实体完整性(可以理解为主键约束)和参照完整性(可以理解为外键约束)。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的唯一约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
1)实体完整性约束—主键约束 2)参照完整性约束—外键约束 3)用户自定义完整性约束—检查/非空/默认值约束
SQL注入意味着什么?意味着数据库中所有数据都能被盗取。
296 数据库做join操作时,至少要涉及到几张表? 答案 1张
在等值连接中把目标列中的重复属性列去掉则为自然连接
一个表与其自身进行连接为自身连接
297 关系规范化中的插入操作异常是指( D)。
不该删除的数据被删除
不该插入的数据被插入
应该删除的数据未被删除
应该插入的数据未被插入
298
ON DELETE NO ACTION
指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE 语句。
300 并发操作可能带来的数据不一致不包括?D
丢失修改
不可重复读
读脏数据
死锁
死锁是封锁技术带来的问题,而封锁技术是为了解决并发操作的不一致性问题(即丢失修改、不可重复读、读脏数据)
i.脏读(Dirty read): 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。
ii. 丢失修改(Lost to modify): 指在一个事务读取一个数据时,另外一个事务也访问了该数据,那么在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,因此称为丢失修改。 例如:事务1读取某表中的数据A=20,事务2也读取A=20,事务1修改A=A-1,事务2也修改A=A-1,最终结果A=19,事务1的修改被丢失。
iii. 不可重复读(Unrepeatableread): 指在一个事务内多次读同一数据。在这个事务还没有结束时,另一个事务也访问该数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。
iv. 幻读(Phantom read): 幻读与不可重复读类似。它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读。
v. 不可重复读和幻读区别:
1) 不可重复读的重点是修改比如多次读取一条记录发现其中某些列的值被修改,幻读的重点在于新增或者删除比如多次读取一条记录发现记录增多或减少了。
不可重复读:一个事务范围内两个相同的查询却返回了不同数据
301 在Mysql中,订单表 ( 订单号,雇员代号,地区代号,订购日期 ) 中订单号为主键,要删除订单中前三年以前的信息, SQL 为:
302 在SQL语言中,用于测试列值非空的短语是( B ).
IS NOT EMPTY
IS NOT NULL
NOT UNIQUE
NOT EXISTS
303 对现实世界进行第二层抽象的模型是(C )。
概念数据模型是现实世界到信息世界的第一层抽象。
数据结构模型是对现实世界进行的第二层抽象。
304 关于关系的性质,则下列说法正确的是_____B_____。
关系中一列的取值可以取同一域中的某一个值,也可以取不同域中的某一个值;
关系中的两列可取同一域中的值;
关系中列值的数目就是其所对应的域的值的数目;
关系中的两个元组是可以完全相同的,而实际数据库中一个Table中的两行不能完全相同;
关系中的两个元组是不能完全相同的,而实际数据库中一个Table中的两行在任何情况下都可以存在完全相同的情况;
关系的5条性质
分量必须取原子值,每个分量必须是不可再分的数据项。
列是同质的,每列中的分量必须是同一类型的数据,来自同一个域( 域指的是字段值的取值范围。比如百分制的语文字段的域:语文>=0 and 语文<=100)。
属性不能重名。
行列的顺序无关。
任何两个元组不能完全相同,这是由主码约束来保证的。但是有些数据库若用户没有定义完整性约束条件,允许有两行以上的相同的元组。
内模式又称存储模式,但不叫物理模式
306 关于MySql的权限级别,下列描述正确的是(BCD )
建议参考http://blog.csdn.net/fullstack/article/details/30031463
MySql中的权限分为五个级别:Global Level、Database Level、Table Level、Column Level、Routine Level
307 在MySQL里,对数据表进行修改的语句正确的是(BD)
alter table employee add memo
alter table employee drop column age
alter table employee add column
alter table employee drop age
308
309 以下关于空值(NULL值)叙述正确的是 C
空值等于空字符串
空值等同于数值0
空值表示字段或变量还没有确定的值
Visual FoxPro不支持空值
空值不是默认值 空值表示字段或变量还没有确定的值 Visual FoxPro支持null