软件测试工程师为什么要掌握这些数据库知识
一、什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后, 数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
数据库有很多种 类型,从最简单的存储有各种数据的 表格到能够进行海量 数据存储的大型 数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。
数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
以前往往重视对代码的测试工作,随着流程技术的日益完善,软件质量得到了大幅度的提高,但数据库方面的测试仍然处于空白。
我们从来没有真正将数据库作为一个独立的系统进行测试,而是通过对代码的测试工 作间接对数据库进行一定的测试。随着科技的进步,数据库测试也需要独立出来进行符合自身特点的测试工作。
二、数据库工具如何来选择?
随着数据库的技术发展越来越快,越来越成熟,产品也越来越多,软件公司在做项目的时候到底该怎么去选择合适的数据库产品呢?
这个是根据项目特点,架构,以及其他很多相关因素决定的,包括数据安全性,数据量,易用性,项目经费等等。
合适的数据库会利于项目的设计和开发,而不合适的数据库会导致项目开发受阻和提高项目各方面的成本。
当然,一个项目使用什么样的数据库是属于项目架构的一部分了,一般测试人员不需要参与到这样的系统架构设计中去,但是测试人员需要了解当前市面上最受欢迎以及使用最多的几种数据库产品。
数据库通常分以下3种:层次式数据库、网络式数据库和关系型数据库三种。
三、互联网常用数据库模型分为两种:关系型数据库和非关系型数据库
1. 常用关系型数据库产品
关系型数据库:关系型数据库的官方解释比较难理解,其实简单点来讲,关系型数据库就是以行和列的形式储存数据的组织结构,这里体现为二维结构的表,而且多个表之间可能会存在一些关系。
(1)Oracle
Oracle是美国oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,oracle数据库的特点是安全、高速、稳定、并发性好,这些特点都使得很多大企业都选择数据库的时候毫不犹豫的选择了oracle。
早些年的时候,世界500强几乎100%都是oracle的用户。但是oracle是收费的,而且不便宜,这也使得很多初创公司或者中小型企业是完全没有能力去负担这笔开支,而放弃使用oracle,转而选择简便易用,更轻量级且免费开源的MySQL。
(2)MySQL
MySQL是一种开发源代码的关系型数据库管理系统,并且因为其速度,可靠性和适用性备受中小型企业的青睐。虽然早期版本不支持事物操作、子查询、外键、存储过程和视图等功能。
但是从02年发布的4.0beta版以来,MySQL外使用innoDB作为默认引擎,对事物处理能力及数据缓存能力又来极大的提高,05年的5.0版本有添加了存储过程、服务端游标、触发器、查询优化以及分布式事物功能。
(3)MariaDB
MariaDB数据库是MySQL的一个分支,由开源社区在维护,开发MariaDB有一部分原因是因为担心甲骨文收购MySQL后,会有将MySQL闭源的意图,因此社区采用分支的方式来避开这个风险。
MariaDB完全兼容MySQL,包括API和命令行,是MySQL的完美替代品,储存引擎方面,MariaDB使用的是xtraDB替代了MySQL的InnoDB。
(4)Sqlserver
Sqlserver是由Microsoft开发和推广的数据库,它最初是由Microsoft、Sybase和Ashton-tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。
Ms SQL server主要面向中小型企业。其最大的优势是在于集成了Ms公司的各类产品及资源,提供了强大的可视化界面、高度集成的管理开发工具,在快速构建商业智能(BI)方面颇有的建树。
2. 常用非关系型数据库产品
非关系型数据库:非关系型数据库的数据结构跟关系型的完全不同,它主要是以键值对的形式去存储数据。
(1)Memcached
Memcached是以livejournal旗下Danga Interactive 公司的Brad Fitzpatric为首开发的一款软件,它的出现很好的解决一系列数据库瓶颈问题,因为在web应用中频繁,集中的访问数据库,就会带来高并发带来的一系列问题。
比如导致数据库负担加重、响应恶化、网站显示延迟等重大影响这些问题,而有了memcached提供的数据缓存机制,这些问题就都不是问题了。
(2)Redis
Redis是一个key-value存储系统。和memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、和hash(哈希类型)等。Redis是一个高性能的key-value数据库。
Redis的出现,很大程度补偿了memcached这类key/value储存的不足,在部分场合可以对关系数据库起到很好的补充作用。
(3)MongoDB
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此课程储存比较复杂的数据库类型。
Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎都可以实现类似关系数据库表单查询的绝大部分功能,而且还支持对数据库建立索引。
想做好数据库,这些知识你了解了吗?
1)创建/删除库、创建/删除表、查看库、查看表。
2) 备份、还原数据库 。
3)存储过程 、视图 等。
4)导入、导出数据 等。
5)数据库基础配置 。修改密码、添加用户等。
6)数据库链接工具:如 WorkBench Navicat phpMyAdmin 等 。
7)基本的增删改查 语句。
8) 稍微复杂点的SQL :多表查询、子查询 等等。
9) 至少得知道常见的数据库:Mysql MSSQL Oracle Memcached Redis Mongodb
10) 数据库的安装、部署:你至少得会自己在服务器或自己电脑上安装个数据库。
今日福利
【Java11期开课啦】
8大实战案例模块,历时三年沉淀,Java4.0震撼发布!
偷偷告诉你前50名,还可获得价值300元的京东购物卡呦~
如有疑问,请留言告知,或者咨询柠檬班软件测试培训机构:www.lemonban.com官网客服哦