分类: Mysql/postgreSQL
2013-07-07 18:05:48
这个话题一直没有真正地思考过,使用数据库有什么好处,或者是关系型数据库有什么好处。
也是由于场景可能真正不需要数据库来解决问题引发的思考。
数据库是一种组织数据的方式,与文件系统类似。
如果说数据库是一种管理海量数据的方式,但是分布式文件系统也可以管理海量的数据。
文件系统呈现数据的方式是以文件的方式,数据库呈现数据的方式是表格式的或非表格的方式。
文件系统管理数据的方式只能说操作系统的思维,数据库管理数据更接近人的思维方式,但是数据库管理数据是在文件系统之上的。
可以这么说数据库是基于文件系统的,虽然不清楚数据库存储数据的具体实现,但是在很多放方面要优于文件系统,是对数据的一种二次管理。
数据库提供了比文件系统更细粒度的数据访问和控制方法,但是得到同一个数据信息,从数据库得到比从文件系统直接得到要经过更多的流程和层次。
数据库是一种总体概念,它不仅要有数据的存储方式,还要提供数据的呈现方式(表格式),还要提供数据的获取方式(客户端与服务器的协议)等。
数据库本身就是一种存储数据的方式,也就是持久化,主要是它有ACID 四个主要指标,而文件系统只能提供存储的持久性,而且文件系统中的文件一般都是与应用紧耦合关联,不是一种通用的存储方式,而数据库算是一种应用无关性的存储方式。
通过数据库来管理数据,搞这么复杂,能得到什么好处呢?
首先,数据的可维护性好多了,查看和修改很方便,如果文件系统方式存储数据也需要同样的好处,除非两外开发一套呈现和管理的软件。
如果仅仅是使用数据库来做持久化,并且数据量比较小,数据不需要做修改,就没有必要搞个数据库了。
其次,应用的可扩展性好多了,应用程序增加新的业务时,只需要增加表定义即可,不需要另外开发数据的读写、管理接口等。
最后,数据库实际上提供了一种多人在线访问数据的模式,而文件系统没有办法做到ACID这些,这个多人并不一定是多个服务器去访问,而是多个连接去访问同一数据。