为什么要学习数据库?最主要的就是两点:能够反作用于业务和快速分析定位问题
在软件开辟中会碰到很多问题,追根究底它就是一个数据库里数据的问题,就好比说我们要去验证注册泉源对不对,如果我们不去查库的话,我不知道有这个字段的存在,虽然它需求里面说了这么一段话,但实际我从页面上去做功能测试的时候,我并不能看到这个注册泉源到底存得对不对,以是我们要去看数据库。
你如果去提交一个bug,只能说这个页面、这个数据显示错了。
懂数据库的他会这么说:这个数据它错误的原因是什么,是某个模块,或者某个开辟职员的代码有问题。如果能正确地定位到这个问题,那么开辟也会有因可查,减少矛盾。
但如果你懂数据库,你可以通过数据的表布局,来帮助你来熟悉业务。
常见数据库有哪些?
1、关系型数据库
关系型数据库:其实简单点来讲,关系型数据库就是以行和列的形式储存数据的构造布局,这里体现为二维布局的表,而且多个表之间可能会存在一些关系。
1)Oracle
Oracle是美国oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,oracle数据库的特点是安全、高速、稳定、并发性好,这些特点都使得很多大企业都选择数据库的时候毫不犹豫的选择了oracle。
早些年的时候,天下500强几乎100%都是oracle的用户。但是oracle是收费的,而且不自制,这也使得很多初创公司或者中小型企业是完全没有能力去负担这笔开支,而放弃使用oracle,转而选择简便易用,更轻量级且免费开源的MySQL。
2)MySQL
MySQL是一种开辟源代码的关系型数据库管理系统,而且由于其速度,可靠性和适用性备受中小型企业的青睐。虽然早期版本不支持事物操作、子查询、外键、存储过程和视图等功能。
3)MariaDB
MariaDB数据库是MySQL的一个分支,由开源社区在维护,开辟MariaDB有一部分原因是由于担心甲骨文收购MySQL后,会有将MySQL闭源的意图,因此社区采取分支的方式来避开这个风险。
MariaDB完全兼容MySQL,包括API和命令行,是MySQL的完善更换品,储存引擎方面,MariaDB使用的是xtraDB更换了MySQL的InnoDB。
4)Sqlserver
Sqlserver是由Microsoft开辟和推广的数据库,它最初是由Microsoft、Sybase和Ashton-tate三家公司共同开辟的。
Ms SQL server主要面向中小型企业。其最大的优势是在于集成了Ms公司的各类产品及资源,提供了强大的可视化界面、高度集成的管理开辟工具,在快速构建贸易智能(BI)方面颇有的建树。
2、非关系型数据库
非关系型数据库:非关系型数据库的数据布局跟关系型的完全不同,它主要是以键值对的形式去存储数据。
1)Memcached
它的出现很好的解决一系列数据库瓶颈问题,由于在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最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎都可以实现类似关系数据库表单查询的绝大部分功能,而且还支持对数据库创建索引。 |