12
返回列表 发新帖
楼主: go_hao

nosql不是关系数据库,但是如何处理关系呢?

[复制链接]
论坛徽章:
9
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:44ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:482013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08
11#
发表于 2010-12-18 19:13 | 只看该作者
nosql 最好理解为not only sql .
nosql产品一样可以存在关系.
所以nosql产品许多提供了sql接口,毕竟sql大家都知道,易懂.

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2011-1-4 21:07 | 只看该作者
刚开始关注,不太清楚。帮你up

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2011-1-11 16:17 | 只看该作者
学习ing~~~

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2011-1-28 10:31 | 只看该作者
这个概念还没弄清楚啊。。。
有明白的解释下

使用道具 举报

回复
论坛徽章:
22
2010新春纪念徽章
日期:2010-03-01 11:08:33马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
15#
发表于 2011-3-3 14:41 | 只看该作者
在Docuement DB(如MongoDB,CouchDB中),是使用link标识来标识关系,,
在tabular存储中(如Cassandra,BigTable,HypeTable,HBase中),关系是通过迁入的对象map来进行管理,有时也是交由程序员进行管理,比如在Cassandra中,有人多创建一个column family或者多一个Namespace来存储独立的信息,自己在应用中标识这个column family(namespace)与其它column family(namespace)之间的关系..

对于K/V Store,关系就完全在程序代码以及开发人员的心中了..

其实在关系数据库中,如果不使用外键,这些关系也是存储在具体的程序代码与系统分析文档中的..而不是直接体现在你所使用的数据库中.

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2011-3-4 18:18 | 只看该作者
你可以看看mongodb的用法

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
17#
发表于 2011-4-3 16:32 | 只看该作者
原帖由 go_hao 于 2010-7-13 14:55 发表
nosql不是关系数据库,但是如何处理关系呢?
-------------------------------------------------------
关系是客户存在的呀,但是nosql说,本身不是关系型的,但是对于现在的一些结构,nosql如何处理呢?

比如一个订单主表与订单明细表吧。
主表如下:
订单号,客户,订单日期,。。。
明细表如下:
订单号,订单序号,物品名称,数量,单价,金额,。。。

两表通过 订单号 进行关联。是一个一对多的模型,我想问,这种情况,用 nosql 如何存贮呢?

是不是存在一个表中呢?如果存在一个表中,假如一个订单对应将100条明细记录,
那就意味着多存了99条冗余信息,我想应该不会这样做吧。太傻了,但是不这样做,就必须用两个表存贮,
只要用到两个表,就会涉及到两个表的关系。

所以我实在不明白,nosql是如何实现的

非关系实际上是关系的超集,关系是非关系的子集。
一切关系问题,非关系都可以解决,大不了在非关系中用关系解决。
不过因为没有模式化的处理,一切都要自己动手。

非关系同样支持K-V模式,K也可以是符合关键字,V也可以是列,更可以是任意复杂的对象。
所谓主-细模型,完全可以树型实现,这往往比关系更高效。如 K - V[n]的模式。这可以显著看出非关系的优势,关系中是不允许出现V[n]的。
非关系还允许各行不同构,如IBM的TPF,具有极其灵活的行(row)构建模式,可以应对极其复杂的应用。

其实关系并不能完全表达现实的事务,应该说非关系具有更广泛的表达力。目前的困难是复杂的非关系处理缺乏模式化手段。

补充一点,非(不仅)sql 并非 非关系。

SQL是一种关系语言,但关系不一定必须由SQL来表达。你完全可以用其他方法处理关系。
早先的DBASE就是一个例子。

X-Open 的 ISAM 也是一个很好的非SQL系统,现在的informix和Mysql仍在使用这些,不过他们也可以通过SQL访问。当不通过SQL,直接访问时具有25倍的效率。

[ 本帖最后由 yulihua49 于 2011-4-4 12:48 编辑 ]

使用道具 举报

回复
论坛徽章:
19
季节之章:冬
日期:2009-01-13 11:30:57季节之章:春
日期:2009-02-09 13:40:00季节之章:夏
日期:2009-06-08 13:44:20季节之章:秋
日期:2009-08-18 20:27:35
18#
发表于 2011-4-6 09:51 | 只看该作者
我觉得,NOSQL最简单的应用,就是把关系型DB中的一对多关系表,转换成集合和子集

使用道具 举报

回复
论坛徽章:
5
生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2009-04-07 11:17:10ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04宝马
日期:2014-02-10 11:54:34
19#
发表于 2011-11-25 15:58 | 只看该作者
不同类型的nosql有对关系的不同处理方式,建议先好好弄清楚各类型nosql的基本存储方式

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表