Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1398049
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: Mysql/postgreSQL

2013-07-07 18:05:48

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

阅读(5163) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~