请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 207|回复: 0

数据库基础——软件测试工程师面试秘笈

[复制链接]

2493

主题

2892

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10294
发表于 2022-1-6 17:50:12 | 显示全部楼层 |阅读模式
       13.3  数据库
  在软件测试行业中,产品展示的数据大部分来源于数据库,因此软件测试工程师对数据库的了解便是一个基本的要求。在测试工程师了解需求后,需求中涉及数据的内容,只有运用数据库相关知识才能构建合理的测试数据,编写出更加完善的测试用例。因此,在面试过程中数据库相关知识的考察便成为一个基本项。

  13.3.1  数据库基础
  数据库基础是对数据库的基本了解,通过来说考察的是一些概念性问题。

  示例1:关系型数据库和非关系型数据库的区别是什么?
  此题主要考察面试者对关系型数据库和非关系型数据库的理解。如果两种类型的数据库都在实际项目中使用过,则很好作出解答。常见的关系型数据库有MySQL、PostgreSQL和SQLite等,常见的非关系型数据库有MongoDB、CouchDB、Redis和Apache Cassandra等。
  解答:
  关系型数据库的优点:
  容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。
  使用方便:支持SQL语句,可用于复杂的查询。通用的SQL语言使得操作关系型数据库非常方便。
  易于维护:实体完整性、参照完整性和用户定义的完整性很大地降低了数据冗余和数据不一致的概率。
  支持事务。
  关系型数据库的缺点:
  表结构固定。
  不支持高并发读写需求。
  不支持海量数据的高效率读写。
  为了维护一致性所付出的巨大代价就是其读写性能比较差。
  非关系型数据库的优点:
  NoSQL的存储格式都是(key, value)。
  数据没有耦合性,容易扩展存储数据的格式。
  无须经过SQL层的解析,读写性能很多基于键值对。
  非关系型数据库的缺点:不支持SQL语言。
  综上特点,非关系型数据库适合需要大量写入的地方,例如日志[url=]记录[/url]或过渡数据,而非关系型数据库适合没有大量数据插入或偶尔插入数据的业务数据存储,例如报告、客户管理等。

  示例2:主键、超键、候选键和外键分别是什么?
  此题主要考察面试者对数据库中主键、超键、候选键和外键的基本概念知识,如果是面试官直接提问,则在回答时结合项目中的实际应用实例回答更能显示出自己在这方面的知识储备及其运用。
  解答:
  主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。
  超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
  候选键:最小超键,即没有冗余元素的超键。
  外键:在一个表中存在的另一个表的主键。

  示例3:事务的四大特性是什么?
  解答:事务的四大特性(ACID)是原子性、一致性、隔离性、持久性。
  原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  一致性:如果事务执行之前数据库是一个完整的状态,那么事务结束后,无论事务是否执行成功,数据库仍然是一个完整的状态。
  隔离性:多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间的数据要相互隔离。
  持久性:一个事务一旦被提交,它对数据库的影响就是永久性的。

  示例4:什么是事务?MySQL如何支持事务?
  解答:事务是由一步或几步数据库操作序列组成的逻辑执行单元,这一系列操作要么全部执行,要么全部放弃执行。MySQL的事务处理主要有两种方法:
  (1)用begin、rollback、commit来实现。
  begin:开始一个事务。
  rollback:事务回滚。
  commit:事务确认。
  (2)直接用set来改变MySQL的自动提交模式。MySQL默认是自动提交的,也就是你提交一个语句就直接执行。可以通过下面两种设置来进行:
  set autocommit = 0:禁止自动提交。
  set autocommit = 1:开启自动提交。

  示例5:什么叫视图?
  解答:视图是一种虚拟的表,是一组数据的逻辑表示,通常是有一个表或者多个表的行或列的子集,具有和物理表相同的功能。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化时,视图数据也会随之变化。

  示例6:索引设计的原则?
  解答:适合索引的列是出现在where子句中的列,或者连接子句中指定的列。基数较小的类,索引效果较差,没有必要在此列建立索引。使用短索引,如果对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间。不要过度索引,索引需要额外的磁盘空间,并降低写操作的性能。在修改表内容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长。所以,只保持需要的索引有利于查询即可。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-5-18 10:31 , Processed in 0.041819 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表