数据库经典面试问题-核心概念

改编自:http://www.cnblogs.com/wangshouchang/p/6930443.html

1 存储过程

2 索引

3 事务

4 数据库中的乐观锁和悲观锁

5 drop, delete truncate的区别

6 超键 候选键 主键外键 区别

7视图

8 数据库三大范式介绍

 

 

1 存储过程

存储过程是一些编译好的SQL语句

因为系统在调用SQL的时候比较浪费时间,所以之前先将一些基本的额SQL语句代码进行编译(对单表或多表的增删改查),然后再给代码取一个名字,在需要这个功能时去调用它就可以了。

优缺点:

存储工程是编译后的代码效率高

存储过程代替SQL语句,降低网络通信

在一定的程度确保数据安全

2 索引

索引是对数据库中一或多个列值的排序,帮助数据库高效获取数据的数据结构

假如我们用类比的方法,数据库中的索引就相当于书籍中的目录一样,当我们想找到书中的摸个知识点,我们可以直接去目录中找而不是在书中每页的找,但是这也抛出了索引的一个缺点,在对数据库修改的时候要修改索引到导致时间变多。

几个基本的索引类型 普通索引唯一索引 主键索引 全文索引

索引优点:

加快检索速度

唯一索引确保每行数据的唯一性

在使用索引的过程可以优化隐藏器,提高系统性能

索引缺点:

插入删除 修改 维护速度下降

占用物理和数据空间

3 事务

事务(Transaction)是并发控制的基本单位。事务就是一系列的操作,这些操作要么都执行,要么都不执行。

事务具有以下4个基本特征:

1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。

2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。

3) 隔离性(isolation):一个事务的执行不能被其他事务所影响。

4) 持久性(durability):一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改。

事务的语句

开始事物:BEGIN TRANSACTION

提交事物:COMMIT TRANSACTION

回滚事务:ROLLBACK TRANSACTION

4 数据库中的乐观锁和悲观锁

在所以的 DBMS 中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的,根据不同类型可以对数据设置不同的锁权限。乐观悲观 锁 主要是作用在并发访问控制

悲观锁 假定会发生并发冲突,屏蔽任何违反数据完整的操作

乐观锁 假定不会发生冲突,只有在提交操作时检查是否违反数据的完整性

5 drop, delete truncate的区别

三者都是删除的意思,但是三者个有些区别

delete和truncate只删除表的数据不删除表的结构

速度 drop > truncate > delete

想删除部分数据时, delete 删除时要带上where语句

保留表而想删除所有的数据时用truncate

6 超键 候选键 主键外键 区别

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键

候选键(candidate key):不含有多余属性的超键称为候选键

主键(primary key):用户选作元组标识的一个候选键程序主键

外键(foreign key)在一个表中存在的另一个表的主键称此表的外键

比如一个小范围的所有人,没有重名的,考虑以下属性:

身份证、姓名、性别、年龄。

身份证 唯一 所以是一个超键

姓名 唯一 所以是一个超键

(姓名,性别) 唯一所以是一个超键

(姓名,性别,年龄)唯一 所以是一个超键

--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的;身份证唯一而且没有多余属性 所以是一个候选键;姓名 唯一而且没有多余属性 所以是一个候选键

--这里可以看出,候选键是没有多余属性的超键

考虑输入查询方便性,选择身份证为主键。也可以考虑习惯,选择姓名为主键

--主键是选中的一个候选键

一题搞懂什么是候选键:

在SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为( )(选择一项)

学号 姓名 性别 年龄系别 专业

20020612 李辉 男 20 计算机 软件开发

20060613 张明 男 18 计算机 软件开发

20060614 王小玉 女 19 物理 力学

20060615 李淑华 女 17 生物 动物学

20060616 赵静 男 21 化学 食品化学

20060617 赵静 女 20 生物 植物学

a){学号}

b){学号、姓名}

c){年龄、系别}

d){姓名、性别}

e){姓名、专业}

可能大家不知道如何来选择。如果这个题目我们可以正确的解答,那么对于超键以及候选键和主键的概念已经有很深刻的认识了。透过概念,我们可以了解到,超键包含着候选键,候选键中包含着主键。主键一定是惟一的。为什么呢?因为他的爷爷超键就是惟一的。我们分析一下上面的题目,abcde5个答案都可以作为超键,他们组合在一起的集合可以用来惟一的标识一个实体。请注意我们的要求:候选键。候选键要求是不能包含多余属性的超键,我们看一下答案b。在答案b中,如果我们不使用姓名也可以惟一的标识一条数据实体,可以说姓名字段在这里是多余的。那么很明显,b选项包含了多余字段属性。那么这题答案应该选择b。那么其他的4个选项都可以作为候选键,假设很幸运,a)学号 被选择作为用户正在使用的候选键来惟一标识元组了,那么他很幸运的获得了主键的称号(主键->候选键)。

7视图

定义 视图是一种虚拟表,可以对视图进行增删查改。可以将一个表多个表组合成一个视图。对视图的修改不影响基本表。

8 数据库三大范式介绍

1NF 字段是最小单元,不可再分

2NF 满足1NF 表中字段必须完全依赖全部主键而并非部分主键

3NF 满足2NF,非主键外的所有字段必须互不依赖



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值