|
|
|
|
移动端

2.1 基本概念(5)

《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍基本概念。

作者:猿媛之家来源:机械工业出版社|2017-12-07 11:11

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

2.1 基本概念(5)

【真题 301】以下关于数据库的描述中,正确的是()。

A.关系数据库表中记录是不能重复的

B.关系数据库表中主键上默认建有索引,且是唯一索引

C.索引需要专门的存储空间进行存放,插入、更新、删除等操作会引起索引维护更新

D.只要条件语句中有索引字段, SQL 执行时就一定能够用到索引答案:B。索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特

定信息。一个设计良好的索引可以让数据库的操作效率提高几十倍甚至几百倍,但凡事过犹不及,索引并非越多越好,因为太多索引会影响数据的更新操作,对一个存在大量更新操作的表而言,所建索引的数目一般不要超过 3个,最多不要超过 5个。

建立索引通常有以下几点原则:

1)定义主键的数据列一定要建立索引。

2)定义有外键的数据列一定要建立索引。

3)对于经常查询的数据列最好建立索引。

4)对于需要在指定范围内的快速或频繁查询的数据列最好建立索引。

5)经常用在where子句中的数据列最好建立索引。

6)经常出现在关键字 order by、group by和 distinct后面的字段,最好建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则,索引不会被使用。

7)对于那些查询中很少涉及的列、重复值比较多的列不要建立索引。

8)对于定义为

text、image和 bit的数据类型的列不要建立索引。

9)对于经常存取的列避免建立索引。

10)对于复合索引,按照字段在查询条件中出现的频度建立索引。在复合索引中,记录首先按照第一个字段排序。对于在第一个字段上取值相同的记录,系统再按照第二个字段的取值排序,以此类推。

因此,只有复合索引的第一个字段出现在查询条件中,该索引才可能被使用,因此,将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的作用。本题中,对于选项 A,在关系数据库表中,如果没有主键和唯一索引,表中可以有重复的记录。所以,选项 A错误。对于选项 B,主键具有唯一性,完全满足唯一索引的特征,因此,数据库会对主键默认建立唯一索引。所以,选项 B正确。对于选项 C,索引需要存储空间来存放,如果插入、更新和删除操作在一个事务里面,那么这些操作不会引起索引的更新,只有执行 commit语句才会引起索引的更新。所以,选项 C错误。对于选项 D,当数据库有一个组合索引(例如把两列 col1和 col2作为一个组合索引),此时,如果查询条件中只用到了 col2,索引就不会被用到了,所以,选项 D错误。因此,本题的答案为 B。

【真题 302】如果关系模式 R所有属性的值域中每一个值都不可再分解,并且 R中每一个非主属性完全函数依赖于 R的某个候选键,则 R属于()。

A.第一范式( INF) B.第二范式( 2NF) C.第三范式( 3NF) D.BCNF范式答案:B。如果关系 R中所有属性的值域都是单纯域,那么关系模式 R是第一范式。符合第一范式的特点就有:

①有主关键字。

②主键不能为空。

③主键不能重复。

④字段不可以再分。如果关系模式 R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,则称关系模式 R

是第二范式的。很显然,本题中的关系模式 R满足第二范式的定义。所以,选项 B正确。

【真题 303】用树形结构表示实体之间联系的模型是()。

A.关系模型 B.网状模型 C.层次模型 D.以上三个都是答案:C。数据库模型是数据库管理的形式框架,用来描述一组数据的概念和定义。模型的结构部分规定了数

据如何被描述(例如树、表等)。

本题中,对于选项 A,关系模型是二维表,一张表即为一个关系,例如教师关系(教师编号,姓名,出生年月,性别),就像 office中的电子表格 excel的表格,关系模型的数据结构简单、清晰,用户理解容易,应用方便。鉴于此,当今大多数数据库系统都采用关系数据模型。所以,选项 A错误。

对于选项 B,网状模型是一种用网络结构表示实体类型及其实体之间联系的模型,它相当于一个有向图。与层次模型结构不同的是,在网状模型中,一个结点可以有多个双亲结点,且允许一个以上的结点无双亲。所以,选项 B错误。

对于选项 C与选项 D,层次模型指的是使用树形结构表示实体及其之间的联系,其结构是一棵有向树,树中的每个结点代表一种记录类型,在这些结点中,有且仅有一个结点无双亲(根结点),其他结点有且仅有一个双亲结点。所以,选项 C正确,选项 D错误。

所以,本题的答案为 C。

【真题 304】下面不属于 SQL语句的子类的是()。

A.数据查询语言( DQL) B.数据定义语言( DDL)

C.事务控制语言( TCL) D.数据插入语言( DIL)答案:C。 SQL语言可以分为四大类:数据定义语言( Data Definition Language,DDL),数据查询语言( Data

Query Language,DQL),数据操纵语言( Data Manipulation Language,DML),数据控制语言( Data Control Language,DCL)。

1)数据定义语言用来建立、修改和删除数据库中的对象(包括表、视图和索引等)。

2)数据查询语言用来检索数据库,主要是指 select语句。

3)数据操纵语句是指用来改变数据库中数据的语句,主要包含 insert、update和 delete语句。

4)数据控制语言用于对数据库的访问,例如:给用户授予访问权限( GRANT)、取消用户访问权限。

通过上面分析可知,选项 A和选项 B属于 SQL语句的子类,所以,选项 A与选项 B错误。选项 D的数据插入语言也属于数据操作语言的一种,因此,它也是 SQL语句的子类,因此,选项 D错误。对于选项 C,事务控制语言不属于 SQL语句的子类,所以,选项 C正确。



喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java Web标签应用开发

Java Web程序员直接在JSP页面中书写Java代码的做法,使得页面中混杂有JavaScript、HTML、Java等多种语言的程序代码,可读性差,可复用性也...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊