数据库面试题 联系客服

发布时间 : 星期二 文章数据库面试题更新完毕开始阅读

15. 简述索引存取的方法的作用和建立索引的原则 作用:加快查询速度。 原则:

(1) 如果某属性或属性组经常出现在查询条件中,考虑为该属性或属性组建立索引;

(2) 如果某个属性常作为最大值和最小值等聚集函数的参数,考虑为该属性建立索引;

(3) 如果某属性经常出现在连接操作的连接条件中,考虑为该属性或属性组建立索引;

16. 简述数据库的设计过程 数据库设计分为五个阶段:

需求分析:主要是准确收集用户信息需求和处理需求,并对收集的结果进行整理和分析,形成需求说明。

概念结构设计:对用户需求进行综合、归纳、抽象,形成一个与与具体的DBMS无关概念模型(一般为ER模型)。

逻辑结构设计:将概念结构设计的概念模型转化为某个特定的DBMS所支持的数据模型,建立数据库逻辑模式,并对其进行优化,同时为各种用户和应用设计外模式。

物理结构设计:为设计好的逻辑模型选择物理结构,包括存储结构和存取方法等,建立数据库物理模式。

实施和维护:实施就是使用DLL语言建立数据库模式,将实际数据载入数据库,建立真正的数据库。维护阶段是对运行中的数据库进行评价、调整和修改。 17. 什么是内存泄漏?

答案:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 18. 什么是基本表?什么是视图?

答案:基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。

视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表

19. 试述视图的优点

(1) 视图能够简化用户的操作

(2) 视图使用户能以多种角度看待同一数据;

(3) 视图为数据库提供了一定程度的逻辑独立性; (4) 视图能够对机密数据提供安全保护。

20. 所有的视图是否都可以更新?为什么? 答案:不是。

视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。

因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。

21. 哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。

答案:基本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。

22. 维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么? 答案:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。

23. 在为视图创建索引前,视图本身必须满足哪些条件? (1) 视图以及视图中引用的所有表都必须在同一数据库中,并具有同一个所有者 (2) 索引视图无需包含要供优化器使用的查询中引用的所有表。 (3) 必须先为视图创建唯一群集索引,然后才可以创建其它索引。

(4) 创建基表、视图和索引以及修改基表和视图中的数据时,必须正确设置某些 SET 选项(在本文档的后文中讨论)。另外,如果这些 SET 选项正确,查询优化器将不考虑索引视图。

(5) 视图必须使用架构绑定创建,视图中引用的任何用户定义的函数必须使用 SCHEMABINDING 选项创建。

(6) 另外,还要求有一定的磁盘空间来存放由索引视图定义的数据。

24. 什么是SQL Server的确定性函数和不确定性函数?

答案:只要使用特定的输入值集并且数据库具有相同的状态,不管何时调用,始终都能范围相同结果的函数叫确定性函数。几十访问的数据库的状态不变,每次书用特定的输入值都可能范围不同结果的函数叫非确定性函数。 数据库面试题 4

第一章:

1)E-R模型的组成包括以下的元素,除了(C)。(选择一项) a) 实体 b) 属性 c) 记录 d) 关系

2) 你为公司开发了一个逻辑模型:公司有10个部门,每个部门有6-7个员工,但每个员工可能会不止一个部门工作。下面所给的模型正确的是(B)。(选择一项)

a) 部门和员工之间是一种确定的一对多的关系

b) 建立一个关联表,从该关联表到员工建立一个一对多的关系,然后再从该关 联表到部门表建立一个一对多的关系

c) 建立一个关联表,从员工表到该关联表建立一个一对多的关系,然后再从部

门表到该关联表建立一个一对多的关系 d) 这种情况不能建立正常的数据库模型

3) 下面(C)不是数据库规范化要达到的效果.(选择一项) a) 改善数据库的设计 b) 实现最小的数据冗余

c) 可以用一个表来存储所有数据,使设计及存储更加简化 d) 防止更新,插入及删除的时候,产生数据丢失

4) (A)是个人能看到的相关数据库部分的数据库视图。(选择一项) a) 外部级别 b) 逻辑级别 c) 用户级别 d) 物理级别

5) 在某ERD里有“客户”和“订单”两个实体,他们的关系是“客户”发出“订单”,在“订单”这个实体里又有“订购数量”、“产品代码”等属性,“产品”与“产品代码”之间的关系应该是(B)。(选择一项) a) 一对一 b) 一对多 c) 多对多 d) 循环对应

6) 在ACCESS数据库表设计的时候,某用户在设计视图的有效性规则中设置为[get score]>[average score],则此用户用的是(C)类型的检查约束。(选择一项) a) 字段值 b) 记录级 c) 表级 d) 平均值

第二章:T-SQ程序设计

1) 使用T-SQL定义两个局部变量AA和BB,正确的语句是(A).(选择一项) a) DECLARE@AA,@BB b) PIRVTE@AA;@BB c) PUBLIC@AA;@BB d) DECLARE@AA;@BB

第三章:事务和锁

1) 四个并发连接各自同时在select,insert,update和delete操作,有时当选择的行数超 10,000时再做update/delete操作时会停止,你该(C)去修复。(选择一项)

a)在Selesct会话中,设置低优先级的Deadlock

b)在Update/Delete会话中,设置低优先级的Deadlock

c)在Select会话中,设置末提交读隔离低级别 d)设置查询等待选项为50,0000

第四章:用户和安全管理

1) 在sql server 2000的查询分析器中执行以下的t-sql:

exec sp_grantdbacces’workarea\\remotelongin’,’dblocalh’ 下列理解正确的是(B)(一项)

a) 允许windows nt 域 workarea的所有远程登陆的用户都具有访问数据库dblocalh的权限

b) 在当前数据库中为windows nt 用户workarea\\remotelogin添加帐户,并取名为dblocalh

c) 把windows nt 用户workarea\\remotelogin赋予已经存在的角色dblocalh的全部权限

d) 限制windows nt windows nt 用户workarea\\remotelogin只能访问数据库dblocalh

2)在SQL server 2000的安全模型中,提供了“服务器”和(B)两种类型的角色。(选择一项) a) 客户端 b) 数据库 c) 操作系统 d) 数据对象

3) 在SQL Server2000的查询分析器中,执行以下的: EXEC sp_droplogin’DBLocalHost’ 正确的为

a) 若存在数据库DBLocalHost,将删除该数据库及其所有相关的对象

b) 若存在角色DBLocalHost,将删除该角色并从所有的相关的用户回收该角色所具有的权限

c) 若存在登录名DBLocalHost,将删除该登录.并阻止使用登录名访问 d) 若存在数据库用户DBLocalHost,将删除该用户

4) 在SQL Server2000数据库中Pubic角色是一类特殊的角色,并且具有以下的特性,除了(D)。 a) 它不能被删除。

b) 每个数据库用户都属于Public角色,甚至包括sa帐户。 c) 它包含在每个数据库中。

d) 不能为Public角色分配其他更加高级的权限。

5)在SQL Server数据库中,以下对象都可以通过Drop关键字进行删除,除了(D)。(选择一项) A)表

B)触发器 C)视图 D)角色