西西河

主题:【原创】浏览器是怎么变成操作系统的 -- 美人他爹

共:💬233 🌺560
全看树展主题 · 分页首页 上页
/ 16
下页 末页
家园 数据库可视作面向对象的原形

数据库的实现其实可以看作面向对象编程的原形。一个对象里有描述这个对象的 Property。一个 Table 里也有描述这个 Table 的 Column。施加在对象上的还有 Method。Table 不包括 Method。但 Method 就靠 SQL 来实现了。

正是有了这个特性,面向对象编程和存取数据之间的互动才变得相当容易。盖只要把每个 table 都当作 Entity 来处理就好了。

家园 其实这些特性是数据处理中非常需要的

虽然我基本上只使用C/C++,对其它语言总是嗤之以鼻,但不得不说这些特性是C/C++以及其它程序语言在数据处理时极度缺乏的手段。我现在的工作,就是所谓的“海量数据分析”,对这些特性的需求非常强烈。然而,由于我们倾向于“分析”这一块,所以SQL本身的运算能力和效率有不能达到要求,所以还得用C/C++为主。所以,非常头痛的就是这些集合的操作了。传统的所谓容器是无法满足我们的要求的,除了数据类型的原因,更重要的是量的问题:我们的数据不大可能小于内存的容量,那些容器就都成了摆设。而和SQL接口,又由于二者的本质区别导致非常别扭,且影响效率。所以我们正在开发一个介于二者之间的东西:既具有SQL的无类型集合操作的特性,又可以方便地以数组方式操作。另外我们还需要这个玩意可以分布式存储和计算,以利用现在的廉价集群。

家园 这与面向对象没多大关系.

就是个典型的面向过程:

数据结构+函数.

面向对象的三大特性:

封装, 继承, 多态, 关系型数据库一个都没体现出来.

家园 BerkeleyDB

然后分布式的就是big table

SQL只是适合部分情况。通用数据库不可能有效的处理所有case

家园 或许可以这么说

数据库是面向表格的,Table Oriented, TO

家园 SQL确实跟传统的编程语言不同

易懂难精。惭愧的说,我也是最近几年才真正弄通。以前自以为精通,直到某个项目之后,才明白自己的浅薄。

稍微点评一下:

这种语言首先操作的,都是数据集合

不全对,在Stored Procedure里是可以一行一行来操作的,但不到万不得已,不鼓励。

这个语言,根本不关心底层的实现

这个我认为是时代的进步,就像您用一把螺丝批一样,不一定要明白这把螺丝批是怎么制造的吧?

第三,这个语言的操作对象的类型是什么?没有定义,只是一个简单的table。只要这个table里面有相应的column,就可以操作。至于是不是多一column少俩column,SQL大多数时候都不在乎。

这个不明白会有什么问题?

最让人不满意的是:这个语言大多数时候是不需要循环的

这个估计是效率问题,举例说,您可以一次用一个Update来更新某个Table,也可以用Cursor逐个纪录来更改,一般而言,Update的效率会高很多,但是,如果更改的条件复杂的话,Update的语法比用Cursor的会笨拙很多,传统的程序员会很讨厌。

呵呵,一家之见而已,老叫化的打狗棒请放轻点!

家园 bigtable也和我们的需求有一定差异

BigTable是针对大约10年前的硬件条件设计的,我们希望我们的系统可以在10年以后的硬件条件下有较好的性能。所以,考虑10年后,摩尔定律应当在这10年对单机的计算能力仍然有效的话,则单机可有接近处理Internet规模数据的能力,但可靠性下降不少。在这种情况下,我们的设计和BigTable还是有不少差异的。

家园 看看,刚下河的人就爱问这些八卦问题。

家园 SQL!!! SQL???

sql确实让人又爱又狠

爱的是用sql 可以不动脑子 select * from XXX where XXX=XXX 这样很爽,至于底层,没必要考虑

恨的是用sql 有时候想动脑子也不行,程序员写出一些触发全表扫描或者引发死锁的sql语句简直就该杀,可这不是sql语法的问题,是dbms实现的问题,所以dba边骂娘边调优,数据库的调优有的时候需要走一些反范式的偏门,比如数据冗余,这个时候,sql怎么写,怎么维护数据完整一致,又轮到程序员骂娘。。。极端情况下,就子子孙孙骂娘无穷尽了。。。

所以才有orm框架百花齐放,目的都是尽可能让程序员能够忘掉sql,让orm全权解决sql语句的优化和数据cache,让dba踏踏实实玩儿他的dbms,这样就和谐了。

可是orm框架不和谐阿,百花齐放的结果就是无所适从,而且框架的设计也是良莠不齐,甚至有的时候比sql还复杂。。。

家园 要怪就怪现在的数据太多了。

现在已经不叫WEB DOC了,开始叫WEB DATA。Google的市场份额居高不下,但是GOOGLE能index的html文件的比例是不是越来越低了?

家园 小荷才露尖尖角,早有蜻蜓立上头

sql:

select

insert

delete

update

REST:

POST

GET

PUT

DELETE

做的就是API,玩儿的就是data,说来说去,都是资源,到了也跑不了URI的圈儿

如果web service 壮大,html越来越少几乎是一定的了,但是google才不怕呢,那时候,通过URI得到的数据都有良好的格式,肯定比乱七八糟的html好作index

不对,要是web service都有权限验证,怎么办?凉拌,都那样了,google的坟头都该长草了。

家园 我到觉着SQL是最接近自然语言的

一楼姓张的站出来,就是

SELECT * FROM 一楼 WHERE 姓 = ‘张’

公司销售部门的工资统统降百分之五

UPDATE 公司 SET 工资 = 工资 * 0.95

WHERE 部门 = '销售'

简直就是直译。

SQL本来操作的就是集合数据,您非要找循环作啥泥?

家园 他这是打着红旗反红旗呢

难道大家都没有看出来吗?

家园 SQL就是操作系统。循环啊GOTO啊都是石器时代。

我的理解,所谓操作系统,就是一套供人们管理机器个部件运转的指令。

操作系统有不同高低层面的,有了高级的操作系统,人们可以远离难记的机器指令。

SQL就是迄今我所见到的最高级的操作系统,它的指令最接近人语。

类似的,许多高级操作系统对于矩阵的操作,如矩阵相乘,写出指令来就是a*b,也已经脱离了那刀耕火种的循环年代,循环啊GOTO啊就都是石器时代。

家园 居然---

谢谢:作者意外获得【通宝】一枚

鲜花已经成功送出。

此次送花为【有效送花赞扬,涨乐善、声望】

[返回] [关闭]

全看树展主题 · 分页首页 上页
/ 16
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河