海量存储系列之一

http://rdc.taobao.com/team/jm/archives/1344 海量存储系列之序言

那么 在走进海量存储与检索的世界之前,我们先看一看目前似乎觉得最落伍的数据库系统。丑话先说。。我也没在这个领域沉浸几年,所以其实里面很多的概念也是有可能模糊的,所以在这里写出来,一是希望我能把以前的积累再次重新的梳理一次,查缺补漏。二也是在这世界留下点记录。。表明我曾经来到过这世界,学到过这些东西。。
之所以从这里开始,一部分的原因是我本身是从这里开始接触存储这个领域的,另外一部分原因是因为,从我的私心来说,我认为数据库是生产力工具的开始,也将是生产力工具最终的归宿。

一个数据库,我们可以抽象的认为由下面的一个逻辑结构组成,刨除意义不大的视图,存储过程,外键限制等之后,我们就剩下了下面的这张图:



从API来说,也就是SQL,结构化查询语言,这个东东我们后面再去细说,先来看看这个关系代数模型。
之所以要从这里开始,主要的原因是因为,这是最受到关注的一个部分,自大从一开始做分布式数据层开始,被人问得最多的问题就是:1. 切分以后如何做join。2.如何进行分布式事务。。

可惜,现在我也没有一个方法能做到100%让您满意。。因为,没有银弹,只有取舍。

取舍的原则,也就是要根据,1) 你能做什么。2)你需要做什么。3)你能放弃什么。来决定上层系统的整体架构。传统的ACID的关系代数模型,在新的环境中,很难复用。但,原理没有变,做法上可以做微调

不知道各位在想起关系代数的时候,会想到什么?

http://www.bitscn.com/os/windows/200604/4364.html 我给大家一些解释(当然我没仔细看过:)

不爱看上面解释的童鞋们呢,也不用纠结,给大家一些简单的例子。

1. select from tab where user = ?

这就是最简单的关系代数的例子,我们对他进行抽象来说,其实就是将大量数据中的一小批数据,按照某个要求查出来的过程。

2. select ename,dname from emp,deptwhere emp.deptno=dept.deptno and emp.deptno=30

这是另外一个例子,本质来说就是个∩的操作。

3. select count() from tab.

这是关系代数的第二个主要的用处,就是进行统计和计算,这类的函数有个专用的名字,叫做aggragate function.

恩,基本上有这个概念就可以了。

那么这里请联想,你所接触到的什么地方会有碰到有这样的一些计算呢?

数据库?对。不过不是废话么。。

还有就是hadoop的平台也会用到,hive pig.

那么,我们对这类关系代数进行一下简单的概念上的小结。

也就是用于处理数据的一类方法的抽象,最主要的作用是,按照某个条件选出一批数据,然后再进行一些简单的统计计算的功能。如是而已:)

那么,下面就有个疑问了,下层的数据库或存储,是如何进行这类的计算的呢?

那么请看下一个章节。

我们一起探寻一下,处理这类关系代数计算的方法有哪些

http://rdc.taobao.com/team/jm/archives/1349
个人资料
bjchenli
等级:8
文章:260篇
访问:22.0w
排名: 3
上一篇: 海量存储系列之序言
下一篇:海量存储系列之二
猜你感兴趣的圈子:
阿里中间件技术交流圈
标签: 代数、deptno、emp、rdc、jm、面试题
隐藏