• 收藏

数据库入门

2017/12/12 15:02:07   易思捷科技


数据库是程序员必备知识及必须掌握的技术之一。当前的软件系统基本都会与数据库打交道,所以,数据库知识是一定要掌握的,无论您是程序员、架构师、DBA还是前端工程师,软件=算法+数据,也道出了数据库的重要性。


数据库的发展历史在众多软件类型中,不算短。当前数据库可以分为两个大类:关系型数据库与非关系型数据库(也是我们常听到的NoSql),最近NoSql炒的太热了,反而让初学者有种误解,关系型数据库会被NoSql取代,千万不要有这样的想法。


从关系型数据库在细分还可以分为:企业级数据库和桌面型数据库。桌面型数据库基本都为轻量级数据库,譬如:SqLite,PostGreSql、Access。但近几年PostGreSql的发展也极为迅猛。企业级数据库就是大家耳能熟祥的SqlServer、MySql、Oracle。


本文从程序员开发的角度来看数据库的必备知识。


1、数据库的基本概念。数据库中最常用的就是数据表,用于存储数据。其次是视图,用于构建数据集合,再次是存储过程或函数,用于实现一些业务逻辑的操作,最后是触发器。


数据表:一维表,用于存储现实中的数据内容。

视图:用Sql语句查询的结果集,通过Sql语句可以将多张表的信息查询出来并进行现实,这样更加符合其用途,所以视图是个虚拟表。问题1:为何不直接存储在数据表呢?

存储过程或函数:用程序构成的数据库函数,用于处理一些业务逻辑,譬如:MySql中实现的Split函数,或者存储过程实现的报表汇总。存储过程现在用的已经很少了,因为其可移植性太差了,但存储过程最大的优势是效率极高;

触发器:至少近几年见到的系统,使用触发器几乎不存在,触发器是指一张表在进行插入、修改、删除而引发的事件,在此可以定义一定的业务逻辑来维护数据的统一。


2、数据库基本操作。常用的数据库为:SqLite、MySql、SqlServer、Oracle、PostGreSql、Access。起码可以对数据库进行基本操作,真的见过一些程序员不会用数据库的,让其手工插入几条测试数据,测试程序居然不会。这也许就是ORM闹的,也是学习的不负责任。


3、掌握Sql语法及常用Sql语句的写法。还是ORM,ORM的兴起,让程序员都忘了还有Sql可以操作数据库。Sql的重要性毋庸置疑,可以负责任的说,很多系统的第一个性能瓶颈点就是数据库,而引发数据库性能瓶颈的问题,很多时候都是Sql语句质量低下。尽管ORM产品众多,但对于很多中大型软件,用于关键业务的操作,还得靠程序员写SQL,毕竟ORM对于复杂的SQL也是力所不能及的。


4、数据库的基本设计。当前数据库设计思路可以总结为两种:传统的业务模型设计然后转物理模型,还有面向对象思路的数据库设计。实际两种模式并无太大区别,关键在于建立业务模型的时候,如何考虑设计。因为数据库是关系型,开发是对象型,因此两者之间在建立联系的时候必然会有很多的不变,这也是ORM诞生的作用。但作为数据库设计来讲,存储数据是一方面,另外还要考虑到数据存取的性能问题,尤其是性能。


5、NoSql,非关系型数据库,这是互联网发展的必然产物。说个简单的例子,通常软件的一条记录其数据属性是固定的,譬如:一张订单,一条短信。但互联网的发展突破了其限制,譬如:微信的一条消息,可以是文本、可以是图片、可以是语音,甚至还可以是视频。那么数据库该如何存储呢?NoSql来了,就是帮你解决这些问题。同时由于互联网的发展,数据规模也越来越大,NoSql在其大数据存取、分布式计算等方面都相比传统数据库有更好优势,这也是当前NoSql流行的主要原因。但请各位同学了解,NoSql并不能取代关系型数据库,两者都有其适应的场景,不存在谁取代谁的问题。NoSql不是 None Sql,而是Not Only Sql。


版权声明:如无特别说明,均为“易思捷IT训练营”原创,如转载请著名出处!

阅读:323  评论:0  
  • 评论