中兴笔试题目总结(二)数据库部分

本文总结了中兴笔试中的数据库相关问题,包括视图的定义、数据库范式理解、索引的作用与类型、分布式数据库的概念、事务的ACID特性、主键与唯一索引区别、触发器的工作原理以及如何在操作一张表时影响另一张表等知识点。

1.数据库中只存放视图的( )
A操作
B 对应的数据
C 定义
D 限制

视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个

虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据依然存放在原来的基本表中。

2.以下关于数据库范式的描述,哪些是错误的()
A.如果把多个数据项用一个大的 String 表示为一个字段,则不满足第一范式
B.满足数据库范式使得数据库的效率更高
C.如果满足更高的范式,则必须首先满足低级别的范式
D.数据库第二范式要求把表中与所有与主键没有直接关系的数据全部拆分到其他表中

分析:
A应该是对的,这就是第一范式了。
C应该是对的,这个范式有个什么性质着好像就说的这个
就剩B和D了,第二范式要求不存在部分依赖,貌似是对的,但是B也像是对的感觉,但是可能说的有点歧义,满足数据库是使得数据库的存储效率更高,

冗余数据更少,如果说数据库实现的效率,那么影响大的应该是底层实现的数据结构吧。
所以还是倾向选B

3.为了加快数据库查找的速度,需要对数据表添加索引,请问以下关于索引的描述,哪些是错误的()
A.聚类索引中,表中行的物理次序与索引键值的逻辑顺序相同
B.使用索引会使得数据更新的效率降低
C.在大多数数据库系统中,每张表只能够有一个聚类索引
D.考虑这个 SQL 语句: Select S.name , S.age from Student S where S.address=” 成都 ” ,如果我们对表 Student 建一个复合索引 (age ,

address) ,可以改善上述查询的效率。

D查询的为address与name和age无关

聚类索引
聚类索引为一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,按姓氏排列

数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和

名字进行组织一样。聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理

相邻。例如,如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的

行,直到到达结束日期。这样有助于提高此类查询的性能。同样,如果对从表中检索的数据进行排序时经常要用到某一列,则可以将该表在该列上聚集(

物理排序),避免每次查询该列时都进行排序,从而节省成本。当索引值唯一时,使用聚集索引查找特定的行也很有效率。例如,使用唯一雇员 ID 列

emp_id 查找特定雇员的最快速的方法,是在 emp_id 列上创建聚集索引或 PRIMARY KEY 约束。

适用情况
1、含有大量非重复值的列。   
2、使用BETWEEN,>,>=,<或<=返回一个范围值的列   
3、被连续访问的列   
4、返回大型结果集的查询   
5、经常被使用连接或GROUP BY子句的查询访问的列

4.什么是分布式数据库?
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整拷贝副本,并具有自己局部的数据库

,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。
这种组织数据库的方法克服了物理中心数据库组织的弱点。首先,降低了数据传送代价,因为大多数的对数据库的访问操作都是针对局部数据库的,而不

是对其他位置的数据库访问;其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他

位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响;第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一

台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更

高,而且甚至抵消许多其他的优点。

5.事务
事务是一个操作序列,这些操作“要么做,要么不做”,是数据库环境中不可分割的逻辑工作单位。事务和程序是两个不同的概念,一般一个程序可以包

含多个事务。在SQL语句中有如下三条:
1)BEGIN TRANSACTION:事务开始
2)COMMIT:事务提交。该操作表示事务成功的结束,他将通知事务管理器该事务的所有更新操作现在可以被提交或永久的保留。
3)ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚

或撤销。

事务具有原子性、一致性、隔离性、和持久性。这4个特性也称为事务的ACID性质。(atomicity、consistency、isolation、durability)
1)原子性:事务是原子的,要么做,要么不做。
2)一致性:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。
3)隔离性:事务互相隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
4)持久性:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。

恢复和并发控制的基本单位-事务

事务串行执行:即每个时刻只有一个事务运行,其他事物必须等到这个事务结束以后方能运行。
同时并发方式:在多处理系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行,这种并行方式称为

同时并发方式。

6.主键和唯一索引的区别?
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
唯一性索引列允许空值,而主键列不允许为空值。
主键列在创建时,已经默认为非空值 + 唯一索引了。
主键可以被其他表引用为外键,而唯一索引不能。
一个表最多只能创建一个主键,但可以创建多个唯一索引。
主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。

7.触发器怎么工作的?
触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,数据库就会自动执行触发器所定义的SQL 语

句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。


8.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现?
将操作多个表的操作放入到事务中进行处理。也可以设计一个触发器应该。

9.年龄在“11~35岁之间”属于数据库的(完整性约束)。
解析:完整性规则提供了一种手段来保证当授权用户对数据库做修改时不会破坏数据的一致性。因此完整性规则是防止对数据的意外破坏。关系模型的完

整性规则是对关系的某种约束条件。关系的完整性共分为三类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。
(1)实体完整性。主键不能为空
(2)参照完整性。外键不能不存在,或者有的正在被引用的时候,不能删除该条目。
(2)用户定义完整性。条件约束,例如上面的题目。

10、在一个表里,有很多字段,每个字段的值有很多重复的,让你用写个SQL语句,把每个字段中出现次数最多的值列出来,并在这个值的前面加上一

个-1(如果涉及到多张表,请把别的表中的重复数据也一并修改)
比如有年龄和工资两个字段,里面出理次数最多的是18和3000,找出来并改成-118和-13000

如果把字符串前加上-1,那么为select concat('-1', sal) from emp;(oracle里面也有这个函数,oracle可以直接用 || 来连接连个字符串,而mysql

不可以)。
还没搞明白别的怎么写,有个参考
http://topic.csdn.net/t/20061227/11/5258862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值