数据库题目

1.简单解释数据库三范式

第一范式:属性不可分割,即每个属性都是不可分割的原子项。

第二范式:满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。

第三范式:满足第二范式;且不存在传递函数依赖,即非主属性不能和非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能间接依赖于主属性。

2.不满足数据库三范式可能会出现什么情况?

不符合第三范式的,可能会有数据冗余、更新异常、插入异常和删除异常的问题。

 

3.解释脏读、不可重复读、幻读、丢失更新

脏读:就是指当一个事务正在访问数据,并对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据就是脏数据,依据脏数据所做的操作可能是不正确的。

不可重复读:由于查询时系统中其他事务修改的提交而引起的。比如事务T1读取某一数据,事务T2读取并修改了该数据,T1为了读取值进行检验而再次读取该数据,便得到了不同的结果。

幻读:指事务不是独立执行时发生的一种现象, 例如第一个事务对一个表中的数据进行了修改,比如这种修改涉及到表的全部数据行,同时,第二个事务也修改该表中的数据,比如插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还存在没有修改的数据行,就好像发生了幻觉一样。一般解决幻读的方法时增加范围锁RangeS,锁定检索范围为只读,这样就避免了幻读。

丢失更新:是指两个事务在并发下同时进行更新后,后一个事务的更新覆盖了前一个事务更新的情况,丢失更新就是数据没有保证一致性导致的。

4.Mysql提供了哪几种事务隔离级别

第一种隔离级别:读未提交 Read Uncommited, 解决了更新丢失

第二种隔离级别:读提交 Read Commited,解决了更新丢失和脏读

第三种隔离级别:可重复度 Repeatable Read,解决了更新丢失、脏读和不可重复度

第四种隔离级别:可序化 Serializable,解决了更新丢失、脏读、不可重复度和幻读。

5.Mysql中varchar和char的区别

char的长度时固定的,varchar的长度时可变的。char的效率比varchar的效率稍高。

 

6.Mysql中int(11)和int(3)的区别

其实,当我们在选择使用int类型时,不论是选择int(3)还是int(11),它在数据库里面存储的都是4个字节的长度。

只不过在使用int(3)且加zerofill属性时,如果你输入的数值是17,系统会默认为你存储值为017,什么意思呢?

即就是说,这个3代表的仅是一个默认的长度,当不足3位时,系统会帮用零补全,当超过3位时,就没有任何的影响与副作用。

两者之间除了在存储的时候稍微有点区别外,当我们在使用数据时是没有任何差异的。

8.NoSQL四大类型:键值数据库、列族数据库、文档数据库和图数据库。

 

9.MapReduce的工作流程:

(1)一个大的MapReduce作业被拆分成多个Map任务,在多台机器上进行并行处理,每个Map任务运行在数据存储节点上。

(2)在所有的Map任务完成后,会生成<key,value>形式的中间结果,被分发至多个Reduce任务在多台机器上并行执行,其中具有相同key的<key,value>被发送至同一个Reduce任务。

(3)Reduce任务对中间结果进行汇总,得到结果并输出至分布式文件系统。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值