数据库常见面试题.docx

上传人:黑*** 文档编号:85631382 上传时间:2023-04-12 格式:DOCX 页数:7 大小:16.07KB
返回 下载 相关 举报
数据库常见面试题.docx_第1页
第1页 / 共7页
数据库常见面试题.docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《数据库常见面试题.docx》由会员分享,可在线阅读,更多相关《数据库常见面试题.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 数据库常见面试题数据库常见面试题一 1. 在一个查询中,使用哪一个关键字能够除去重复列值? 答案:使用distinct关键字 2. 什么是快照?它的作用是什么? 答案:快照Snapshot是一个文件系统在特定时间里的镜像,对于在线实时数据备份特别有用。快照对于拥有不能停顿的应用或具有常翻开文件的文件系统的备份特别重要。对于只能供应一个特别短的备份时间而言,快照能保证系统的完整性。 3. 解释存储过程和触发器 答案: 存储过程是一组Transact-SQL语句,在一次编译后可以执行屡次。由于不必重新编译Transact-SQL语句,所以执行存储过程可以提高性能。 触发器是一种特别类型的存储过程

2、,不由用户直接调用。创立触发器时会对其进展定义,以便在对特定表或列作特定类型的数据修改时执行。 4. SQL Server是否支持行级锁,有什么好处? 答案:支持动态行级锁定 SQL Server 2023动态地将查询所引用的每一个表的锁定粒度调整到适宜的级别。当查询所引用的少数几行分散在一个大型表中时,优化数据并行访问的最正确方法是使用粒度锁,如行锁。但是,假如查询引用的是一个表中的大多数行或全部行,优化数据并行访问的最正确方法可以是锁定整个表,以尽量削减锁定开销并尽快完成查询。 SQL Serve 2023通过为每个查询中的每个表选择适当的锁定级别,在总体上优化了数据并发访问。对于一个查询

3、,假如只引用一个大型表中的几行,则数据库引擎可以使用行级锁定;假如引用一个大型表的几页中的多行,则使用页级锁定;假如引用一个小型表中的全部行,则使用表级锁定。 5. 数据库日志干什么用,数据库日志满的时候再查询数据库时会消失什么状况。 答案:每个数据库都有事务日志,用以记录全部事务和每个事务对数据库所做的修改。 6. 存储过程和函数的区分? 答案:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表 数据库常见面试题二 1. 事务是什么? 答案:事务是作为一个规律单元执行的

4、一系列操作,一个规律工作单元必需有四个属性,称为 ACID(原子性、全都性、隔离性和长久性)属性,只有这样才能成为一个事务: (1) 原子性 事务必需是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 (2) 全都性 事务在完成时,必需使全部的数据都保持全都状态。在相关数据库中,全部规章都必需应用于事务的修改,以保持全部数据的完整性。事务完毕时,全部的内部数据构造(如 B 树索引或双向链表)都必需是正确的。 (3) 隔离性 由并发事务所作的修改必需与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务

5、不会查看中间状态的数据。这称为可串行性,由于它能够重新装载起始数据,并且重播一系列事务,以使数据完毕时的状态与原始事务执行的状态一样。 (4) 长久性 事务完成之后,它对于系统的影响是永久性的。该修改即使消失系统故障也将始终保持。 2. 游标的.作用?如何知道游标已经到了最终? 答案:游标用于定位结果集的行,通过推断全局变量FETCH_STATUS可以推断是否到了最终,通常此变量不等于0表示出错或到了最终。 3. 触发器分为事前触发和事后触发,这两种触发有何区分?语句级触发和行级触发有何区分? 答案: 事前触发器运行于触发大事发生之前,而事后触发器运行于触发大事发生之后。通常事前触发器可以猎取

6、大事之前和新的字段值。 语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。 4. 解决死锁的方法有哪些? 答案: 解决手段一:SQL Server自动检测和消退死锁 解决手段二:设置死锁优先级 解决手段三:设置锁定超时 解决手段四:使用更新锁避开死锁 数据库常见面试题三 1. 提高数据库运行效率的方法有哪些? 答案:在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的方法是: (1) 在数据库物理设计时,降低范式,增加冗余, 少用触发器, 多用存储过程。 (2) 当计算特别简单、而且记录条数特别巨大时(例如一千万条),简单计算要先在数据库外面,以文件系统方

7、式用C+语言计算处理完成之后,最终才入库追加到表中去。这是电信计费系统设计的阅历。 (3) 发觉某个表的记录太多,例如超过一千万条,则要对该表进展水平分割。水平分割的做法是,以该表主键PK的某个值为界限,将该表的记录水平分割为两个表。若发觉某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。 (4) 对数据库治理系统DBMS进展系统优化,即优化各种系统参数,如缓冲区个数。 (5) 在使用面对数据的SQL语言进展程序设计时,尽量实行优化算法。总之,要提高数据库的运行效率,必需从数据库系统级优化、数据库设计级优化、程序实现级优化,这三个层次上同时下功夫。 2. 通俗地理解

8、三个范式 答案:通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必需通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最精确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不行再分解; 其次范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟 一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必需降低范式标准,适当保存冗余数据。详细做法是:在概念数据模型设计时遵守第三范式,

9、降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。 3. 简述存储过程的优缺点 优点: 1. 更快的执行速度:存储过程只在制造时进展编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度; 2. 与事务的结合,供应更好的解决方案:当对数据库进展简单操作时(如对多个表进展Update、Insert、Query和Delete时),可将此简单操作用存储过程封装起来与数据库供应的事务处理结合一起使用; 3. 支持代码重用:存储过程可以重复使用,可削减数据库开发人员的工作量;4. 安全性高:可设定只有某此用户才具有对指定存储过程的使用权。 缺点: 1. 假如更改范围大到需要对输入存储过程的参数进展更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估量比拟繁琐了。 2. 可移植性差由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务规律将限制应用程序的可移植性。假如应用程序的可移植性在您的环境中特别重要,则将业务规律封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。 【数据库常见面试题】

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁