数据库常见的面试题=

三个范式:
范式:符合某一种级别的关系模式的集合,代表关系内部各个属性之间联系的合理化程度。可以通俗的认为,一张数据表的,表结构,所符合的某种设计标准的表结构。
第一范式:关系中的所有的属性不可再分。是对关系型数据库最基本的要求。如果不满足第一范式,就不能称之为关系型数据库。
如果仅仅满足第一范式:仍然会存在,数据冗余,增加、删除、修改异常。
第二范式:建立再第一范式的基础上。非主属性,对于码是完全函数依赖。或者说;不存在非主属性对于码的部分函数依赖。消除了非主属性,对于码的部分函数依赖。
在一张表中:某个属性X确定,那么Y也会确定,就说X是Y的函数依赖。也就是说,不存在两条数据,X相同,Y 也必须相同。
完全函数依赖:
部分函数依赖:
传递函数依赖:Z函数依赖于Y,Y函数依赖于X。Y不包含于X,X不函数依赖于X。
第三范式:消除了非主属性对于码的传递函数依赖。
第四范式:消除了主属性的传递依赖。

索引的好处:
(1)通过创建唯一索引,可以保证该列中每一行数据的唯一性。
(2) 可以大大加快数据的查询的速度。
(3)可以加快表与表之间的连接,
(4)在使用groupby和orderby子句进行数据检索时,可以显著减少分组和排序中的时间。
索引的缺点:
(1)创建和维护索引需要耗费时间。耗费时间随着数据量的增加而增加。
(2)创建索引需要占用一定的物理空间。
(3)对表中的数据,进行维护,那么索引也需要进行维护,就降低了数维护索引的速度。

哪些列上可以创建索引?
(1)对于那些不经常查询和使用的列,不需要创建索引。
(2)对于那些只有很少种类的数值的,列,也不适合创建索引。比如性别这个字段。
结果集可能占了整个表的大部分。需要在表中搜索的行占了很大一部分,增加了操作的时间。
(3)当对某一列的数据经常修改的时候,不需要建立索引。这样会表维护的难度。
(4)当修改性能大于检索性能的时候,不需要创建索引。修改性能和检索性能是相互矛盾的。创建索引数据库的修改性能就会降低,检索性能就会增加。

唯一索引:索引列每一行的取值,必须唯一,允许为null;如何是组合索引,那么列的组合的取值,必须是唯一的。
主键索引:一种特殊的索引,在表创建的时候,就会创建这个索引。一个表只能,有一个主键索引。
组合索引:把数据库中某几个列组合起来的索引,就是组合索引。
http://blog.csdn.net/suifeng3051/article/details/52669644(讲的很好)

索引的原理:
索引的定义:一种数据结构,加快数据表中,数据的查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值