1.数据库中,下列说法 ______ 是不正确的
A.数据库避免了一切数据的重复
B.若系统是完全可以控制的,则系统可确保更新时的一致性
C.数据库中的数据可以共享
D.数据库减少了数据冗余
答案:A
A: 数据避免不了数据表中的id自增字段的的数据重复,若系统没有生成id插入数据表,应用数据库自增的策略,别免不了不同数据表会有相同的id编号,完全过于绝对
B: 若系统完全可控则就可以保证系统的绝对安全,也就可以实现数据更新的一致性,但是现实我们只能通过一些技术提高系统的安全性,例如通过事务保证操作数据库的安全性
C: 数据库可以实现共享,可以实现多用户共享 数据库
D: 数据库可是通过关联数据表,查询数据,避免了同一表中存储过多的重复数据,是数据库的数据表更简洁
2.关系模型中的关系模式至少是?
A.1NF
B.2NF
C.3NF
D.BCNF
答案:A
范式是数据库逻辑模型的设计规范(规则),因为逻辑设计后就是物理设计,牵扯到具体的数据实施。如果没有一个合理的规范,数据库的数据将不规范,不利于以后的使用操作。
第一范式(1NF) 所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。简而言之,第一范式就是无重复的域。 一般设计中都必须满足第一范式(1NF)。
第二范式(2NF) 在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖) 。简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。
第三范式(3NF) 在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖) 简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。
巴斯-科德范式(BCNF) 在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖) 事实上是对第三范式的修正,使数据库冗余度更小。定义:关系模式R∈1FNF,若X→Y且Y不是X的子集时X必含有码,则R∈BCNF。一个满足BCNF的关系模式有: 所有非主属性对每一个码都是完全函数依赖。 所有主属性对每一个不包含它的码也是完全函数依赖。 没有任何属性完全函数依赖于非码的任何一组属性。
若R∈BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R∈3NF。一般关系型数据库设计中,达到BCNF就可以了! 几乎所有的关系模式都符合第一范式,但是具体的数据库设计里,表最好达到第三范式(不包含部分函数依赖和传递函数依赖)
通俗易懂:https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
3.在高并发,事物等场景下,MYSQL5.6数据库默认使用哪种存储引擎?
A.Myisam
B.InnoDB
C.Memory
D.ndbCluster
答案:B
Mysql在V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是InnoDB
InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率
MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果
如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archiv
注意,同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎
4.数据库的三级模式?
模式也称为逻辑模式或概念模式;
外模式也称为用户模式;
内模式也称为物理模式或存储模式。
内模式(也称存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储),索引的组织方式,数据是否压缩存储,数据是否加密,数据存储记录结构的规定,一个数据库只有一个内模式。
5.ALTER和Modify的区别
alter 是针对表整体,modify是对表中的某一项字段进行修改
1、增加字段:ALTER TABLE 表名 ADD 字段名 字段类型;
2、删除字段:ALTER TABLE 表名 DROP COLUMN 字段列名;
3、增加约束:ALTER TABLE 表名 ADD CHECK(字段名<>'')或者 ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(字段名);
4、删除约束:ALTER TABLE 表名 DROP CONSTRAINT 约束名;
5、修改字段缺省值:ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 默认值
6、修改字段数据类型:ALTER TABLE 表名 ALTER COLUMN 字段名TYPE l类型;
7、重命名字段:ALTER TABLE 表名 RENAME COLUMN 旧字段名TO 新字段名;
8、重命名表:ALTER TABLE 表名 RENAME TO 新表名
6.对所有的视图都可以进行下面哪一个操作?
A.插入
B.选择
C.更新
D.删除
答案:B
1.视图是一个虚表,
2.视图就是封装了一条复杂查询的sql语句集,
3.它与真实表保持同步,也就是修改视图会影响真实表,修改真实表也会影响视图,
4.视图可以屏蔽一些敏感信息,起到安全的作用,
5.视图可以简化复杂查询,
6.视图也很方便,对于一个特定的操作,不用重新编写sql语句。
总结:视图多数情况下是用来查询的,尽量不要修改视图,因为会导致真实表的数据发生变化,导致错误
7.表关联时,以下哪种说法是正确的
A.左连接时,结果集数据的行数一定等于左表
B.左连接时,结果集数据的行数一定等于右表
C.右连接时,结果集数据的行数一定等于右表
D.左连接时,结果集的行数可能大于左表的行数
答案:D
左连接时,如果 left join on的条件在右表中有所重复,那么最终记录数目会大于原表数量
8.下列关于数据库事务ACID特性的说法不正确的是
A.A.指的是原子性,即事务中的所有操作要么全部成功,要么全部失败
B.C指的是一致性,即系统的状态只能是事务前的状态,或者是事务成功后的状态,而不会出现任何不一致的中间状态
C.I指的是可用性,即数据库系统要为事务执行提供尽可能高的可用性,确保大部分事务可以成功的被执行
D.D指的是持久性,即事务成功后即使发生机器断电,也可以恢复到事务成功后的状态
答案:C
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
A原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生
C一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏
I是指(Isolation)隔离性 事务执行互不干扰,一个事务不可能看到其他事务运行时,中间某一时刻的数据
D该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚 ,即使出现了任何事故比如断电等,事务一旦提交,则持久化保存在数据库中。
9.表约束
实体完整性约束 实体完整性(Entity integrity)是指关系的主关键字不能重复也不能取“空值"。
域完整性约束 域完整性是保证数据库字段取值的合理性。
参照完整性约束 参照完整性(Referential Integrity)是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。
用户完整性约束 实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。用户定义完整性(user defined integrity)则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验 用户定义完整性主要包括字段有效性约束和记录有效性。
10.给出数据表score(stu_id,name,math,english,chinese),下列语句正确的是
A.select *,sum(english) from score
B.select stu_id,sum(math) from score
C.delete * from score
D.select sum(math),avg(chinese) from score
答案:D
A: *多行,sum一行
B:stu_id多行,sum一行
C:正确的删除为delete from score 不需要加*
11.数据库模型
常用的数据模型:概念模型、逻辑模型、物理模型
常用的逻辑模型:层次模型、网状模型、关系模型
12.从关系中挑选出指定的属性组成新关系的运算称为
A.”选取”运算
B.”投影”运算
C.”联接”运算
D.”交”运算
答案:B
数据库常用的关系运算 有三种
1、选择 从二维表中选出符合条件的记录,它是从行的角度对关系进行运算
2、投影,从二维表中选出所需要的列,它是从列的角度对关系进行运算:从关系中挑选出指定的属性组成新关系的运算
3、连接,同时涉及到两个二维表的运算,它是将两个关系在给定的属性上满足一定条件的记录连接起来 从而得到一个新的关系
13.下图给定的关系R,它满足
A.1NF
B.2NF
C.3NF
D.BCNF
答案:D
BCNF是函数依赖的每个决定因素中都包含码,首先确定材料号是主码,其他两个都有它确定,没有其他函数依赖的话,就是BCNF
14.对于学生选课管理数据库,如果要查询其直接先行课(Cpno)为S号课程的学生姓名,则如下查询效率最高的为
答案:A
π是投影操作,πSno表示投影到Sno这一列;δ选择操作,右下角跟选择条件;∞表示自然连接,╳表示笛卡尔积。这题,产生中间结果少的效率高。
15.下面有关事务隔离级别说法正确的是(多选)
A.串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
B.未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改 的数据
C.提交读(Read Committed):只能读取到已经提交的数据
D.可重复读(Repeated Read):在同一个事务内的查询都是事务开始时刻一致的
答案:ABCD
并发与事务隔离:
并发: 丢失更新,脏读,非重复读,覆盖更新,幻想读
事务隔离: 未提交读,已提交读,可重复读,串行化
1、更新丢失: 一个事务的更新覆盖了另一个事务的更新。
2、脏读: 一个事务读取了另一个事务未提交的数据。
3、不可重复读:一个事务两次读取同一个数据,两次读取的数据不一致。
4、幻象读: 一个事务两次读取一个范围的记录,两次读取的记录数不一致。
未提交读:一个事务在执行过程中可以看到其他事务没有提交的新插入的记录,而且能看到其他事务没有提交的对已有记录的更新。
已提交读: 一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,而且能看到其他事务已经提交的对已有记录的更新。
可重复读: 一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,但是不能看到其他其他事务对已有记录的更新。
串行化:一个事务在执行过程中完全看不到其他事务对数据库所做的更新。(事务执行的时候不允许别的事务并发执行。事务串行化执行,事务只能一个接着一个地执行,而不能并发执行)
16.delete,drop,truncate区别
1、delete:删除表中的行,用法:delete from 表明 where 列名=值。
2、drop:删除整个表,drop table 表名。
3、truncate:删除表中的数据,相当于delete不加where条件
17.关于数据库的事务,下面哪些描述是正确的(多选)
A.一个数据库事务可以包含多个查询、修改、删除、插入等数据库动作,它们要么作为一个整体完全得到确认,要么完全失败
B.下面的数据库动作“begin transaction; insert into employee values(1, ‘Cardinal’); commit; rollback;”最终插入的数据会被取消,不会记录到数据库中
C.主流的数据库系统都允许设置数据库事务隔离级别,隔离级别“read commited”时,一个事务不能读取另一个事务中修改的数据,但可以读取另一个事务中新插入的数据
D.一个事务只能包含对一个数据库实例的数据操作,不允许跨多个数据库实例,跨多个数据库实例需要分布式事务支持
E.数据库事务会给数据库带来并发操作带来一定影响,会降低系统的并发能力
F.互联网应用大量采用补偿机制而不是事务机制,证明事务对数据库系统不再重要
答案:ADE
B 事务提交后就不能回滚了 C 隔离级别commit 对别的事务插入,更新的行只能在其提交后读取
18.为了使索引键的值在基本表中唯一,在建立索引的语句中应使用保留字
A.UNIQUE
B.COUNT
C.DISTINCT
D.UNION
答案:A
unique:唯一约束,保证某列的每行必须有唯一的值
primary:主键约束,NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 foreign:外键约束,保证一个表中的数据匹配另一个表中的值的参照完整性
not null:非空约束,指示某列不能存储 NULL 值
default:默认,规定没有给列赋值时的默认值
check:保证列中的值符合指定的条件
19.在窗体中,用来设置窗体标题的区域一般是
A.窗体页眉
B.文体节
C.页面页眉
D.窗体页脚
答案:A
20.若事务T对数据对象A加上S锁,则
A.事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X 锁。
B.事务T可以读A但不能修改A,其它事务能对A加S锁和X锁。
C.事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X 锁。
D.事务T可以读A和修改A,其它事务能对A加S锁和X锁。
答案:C
共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改;S是shared,共享锁,X是排他锁
21.视图更新
(1)若视图的字段是来自字段表达式或常数,则不允许对此视图执行INSERT、UPDATE操作,允许执行DELETE操作;
(2)若视图的字段是来自库函数,则此视图不允许更新;
(3)若视图的定义中有GROUP BY子句或聚集函数时,则此视图不允许更新;
(4)若视图的定义中有DISTINCT任选项,则此视图不允许更新;
(5)若视图的定义中有嵌套查询,并且嵌套查询的FROM子句中涉及的表也是导出该视图的基表,则此视图不允许更新;
(6)若视图是由两个以上的基表导出的,此视图不允许更新;
(7)一个不允许更新的视图上定义的视图也不允许更新;
(8)由一个基表定义的视图,只含有基表的主键或候补键,并且视图中没有用表达式或函数定义的属性,才允许更新。
22.索引是对数据库表中一个或多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中数据。以下对索引的特点描述错误:
A.加快数据的检索速度
B.加速表和表之间的连接
C.在使用分组和排序子句进行数据检索时,并不会减少查询中分组和排序的时间
D.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
答案:C
索引的特点
大大加快检索数据的速度
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
加速表与表之间的连接
查询语句汇总含有分组或者排序的语句时,速度更快
查询的过程中,使用索引,使用优化隐藏器,从而提高系统的性能
索引的不足
创建和维护索引,比较耗费时间,随着数据量的增大而增大
创建索引,占一定的物理空间(聚簇索引,占用空间会更大)
在对表进行增删改的时候,索引相应的也需要进行动态的更新
23.在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的( )阶段
A.需求分析
B.概念设计
C.逻辑设计
D.物理设计
答案:B
按照规范的设计方法,一个完成的数据库设计一般分为以下六个阶段:
1. 需求分析: 分析用户的需求,包括数据、功能和性能需求;
2. 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3. 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化;
4. 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存储路径;
5. 数据库的实施:包括编程、测试和试运行;
6. 数据库运行和维护:系统的运行和数据库的日常维护
24.关系模型中,表示实体间n:m联系是通过增加一个
A.关系实现
B.属性实现
C.关系或一个属性实现
D.关系和一个属性实现
答案:A
25.以下几种存储引擎,哪个具有这些特性:支持索引、支持数据持久化、支持事务、支持数据压缩、支持 Online DDL、支持有一个或一个以上的索引包含非索引列的数据
A.myisam
B.memory
C.innodb
D.tokudb
答案:D
TokuDB优点:
高压缩比,默认使用zlib进行压缩,尤其是对字符串(varchar,text等)类型有非常高的压缩比,比较适合存储日志、原始数据等。官方宣称可以达到1:12。
在线添加索引,不影响读写操作
HCADER 特性,支持在线字段增加、删除、扩展、重命名操作,(瞬间或秒级完成)
支持完整的ACID特性和事务机制
非常快的写入性能, Fractal-tree在事务实现上有优势,无undo log,官方称至少比innodb高9倍。
支持show processlist 进度查看
数据量可以扩展到几个TB;
不会产生索引碎片;
支持hot column addition,hot indexing,mvcc
TokuDB缺点:
不支持外键(foreign key)功能,如果您的表有外键,切换到 TokuDB引擎后,此约束将被忽略。
TokuDB 不适大量读取的场景,因为压缩解压缩的原因。CPU占用会高2-3倍,但由于压缩后空间小,IO开销低,平均响应时间大概是2倍左右。
online ddl 对text,blob等类型的字段不适用
没有完善的热备工具,只能通过mysqldump进行逻辑备份
适用场景:
访问频率不高的数据或历史数据归档
数据表非常大并且时不时还需要进行DDL操作
26.完成对数据库数据的建表与更新(多选)
A.DCL
B.DDL
C.DML
D.DQL
答案:BC
DML(data manipulation language),数据操作语言,如增删该查
DDL(data definition language),数据定义语言,如建表删表,修改表字段(改变表结构)
DCL(data control language),数据控制语言,如权限授权
DQL(data query language),数据查询语言
27.在MySQL中,关于HASH索引,下列描述正确的是(多选)
A.只用于使用=或者 < = >操作符的等式比较
B.优化器不能使用HASH索引来加速Order By操作
C.如果将一个MyISAM表改为HASH索引的MEMORY表,不会影响查询的执行效率
D.只能使用整个关键字来搜索一行
答案ABD
HASH索引:利用哈希函数,计算存储地址,检索时不需要像Btree那样,从根节点开始遍历,逐级查找。
优点: 查找效率高。(C选项)
局限:
仅仅满足=,in,<=>,查询,不能范围查询(原先有序的键值经过哈希函数运算,可能不再连续);(A选项)
无法用于排序操作(order by);(B选项)
当重复值时,效率并不比BTree高;
不能利用部分索引键查询;(D选项)
28.数据的物理独立性是指
A.数据库与数据库管理系统相互独立
B.用户程序与数据库管理系统相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中数据的逻辑结构是相互独立的
答案:C
数据独立性分为两个方面:
1、物理独立性。用户的应用程序和存储在磁盘上数据库的数据是相互独立的,数据怎样在磁盘中存储是DBMS的管理的,用户不需要了解
即数据的物理存储改变了,应用程序不需要改变
2、逻辑独立性。用户的应用程序与数据库中数据的逻辑结构是相互独立的
即数据库中数据的逻辑结构改变时,应用程序不需要改变
逻辑独立性更难实现,因为程序对数据的逻辑结构依赖较大
29.索引类型
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集群。
30.如果要从数据库中删除触发器,应该使用SQL语言的命令
A.DELETE TRIGGER
B.DROP TRIGGER
C.DISABLE TRIGGER
D.REMOVE TRIGGER
答案:B
drop trigger 删除触发器
Drop用于删除数据表或数据库,或删除数据表字段。
remove:删除数据库文件
Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)
31.设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ
A.保持函数依赖集F
B.丢失了A→B
C.丢失了C→B
D.丢失了B→C
答案:C
关系模式的分解有几个不同的衡量标准:①分解具有无损连接;②分解要保持函数依赖;③分解既要保持函数依赖,又要具有无损连接
无损连接性判定定理:关系模式R分解为两个关系模式R1和R2,满足无损连接性的充分条件是R1∩R2→(R1-R2)或R1∩R2→(R2-R1)
模式设计方法的原则:关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,..Rn},一般应具有以下特性。
ρ中每个关系模式Ri是3NF或BCNF 保持无损连接 保持函数依赖集F ρ中模式个数最少和属性总数最少
32.对基本表 S,执行操作 DROP TABLES RESTRICT 的作用是
当没有由 S 中的列产生的视图或约束时将表 S 删除
CASCADE表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。
RESTRICT表示表的删除是有条件限制的,要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等。如果存在这些依赖该表的对象,则表不能被删除
33.用户A被视为可信任连接用户,用户B通过账号密码匹配方式通过身份验证。A和B都想使用数据库中的数据,以下正确的做法(多选)
A.1 创建 windows 用户AAA2 EXEC SP_GRANTLOGIN ‘I075\AAA’
B.1 创建 SQL SERVER 用户BBB2 EXEC SP_ADDLOGIN ‘BBB’
C.通过身份验证只是第一步,只有在有效的账号管理下获取访问数据库权限后,才能访问数据。
D.对于用户A,可以直接为其创建登录账户。
答案:ABC
sp_addlogin
创建新的登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例
sp_grantlogin
使 Windows 用户或组帐户得以使用 Windows 身份验证连接到 Microsoft SQL Server
34.以下哪些属于NOSQL数据库(多选)
A.HBase
B.Cassandra
C.Amazon DynamoDB
D.Google BigTable
答案:ABCD
NoSQL数据库的四大分类
键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.,Google BigTable ,Amazon DynamoDB
列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra,
HBase, Riak.
文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J, InfoGrid, Infinite Graph.
因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境
35.下面关于数据库锁的描述正确的是()
A.只有支持事务的引擎才有锁
B.在可以用行锁的情况下,都应该使用行锁而不要使用表锁
C.在高并发的线上事务中,几乎无法避免锁等待或死锁的产生
D.在做更新操作时,应该先尝试申请共享锁,成功后再申请排他锁
答案:C
InnoDB支持事务,支持行锁和表锁用的比较多,Myisam不支持事务,只支持表锁。
InnoDB之所以可以锁行,是因为Innodb的主索引结构上,既存储了主键值,又直接存储了行数据,可以方便的锁住行数据,而MyIsam索引指向另一片数据文件,没有办法精确锁住数据段
共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
36.下列有关InnoDB和MylSAM说法正确的是(多选)
A.InnoDB不支持FULLTEXT类型的索引
B.InnoDB执行DELETE FROM table 命令时,不会重新建表
C.MylSAM的索引和数据是分开保存的
D.MylSAM支持主外键,索引及事务的存储
答案:BC
37.在数据库的三级模式结构中,内模式有
A.1个
B.2个
C.三个
D.任意多个
答案:A
三级模式:外模式、概念模式、内模式。一个数据库中外模式可以有多个,内模式和概念模式只能各有1个
38.DBMS包括DBS和DB
错误
数据库系统基本概念
数据库(DB):长期存放在计算机内的有组织的可共享的数据集合
数据库管理系统(DBMS):完成数据库的建立、使用和维护功能
数据库系统(DBS)
数据库+数据库管理系统
(应用系统+数据库管理员 +用户)
数据库管理员(DBA):除DBMS完成外,还需专门的人员来完成,这些人被称为DBA
39.负责数据库中查询操作的数据库语言是
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
答案:C
SQL四大库语言:
DDL:数据定义语言,用来维护存储数据的结构。如create,drop,alter.
DML:数据操作语言,用来对数据进行操作。如Insert,select,delete,update.
DCL:数据控制语言,用来负责权限管理。grant,revoke.
TCL:事务控制语言,用来对事务操作。如savepoint,rollback,set transaction.
By Mary Super @ 2020.09.18