关系型数据库与非关系型数据库的区别

关系型数据库如mysql与非关系型数据库mongodb有什么区别呢?
我所知道的是mysql如果建立一个表的话字段设置会比较严格,而mongodb通过mongoose这个库来使用的话建立module时也需要对模型的字段进行设置,
好像看似没什么区别但是感觉又有不同但是理不清,
从字面意思理解的话关系型数据库数据间存在联系;
非关系型数据库mongodb用mongoose的话建立的模型也有objectID,内嵌文档来建立关联;也没看出有什么区别

目前在网上搜的比较多的答案如下:

非关系型数据库:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
关系型数据库:是指采用了关系模型来组织数据的数据库。

关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
对于安全性能很高的数据访问要求可以实现。

这里面知道并理解的就一句:
可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询
其他的没有接触过或者说接触了并不理解,期待有人能给通俗的讲一下,关于关系与非关系该如何理解

阅读 4.5k
4 个回答

举个例子,有10个用户,每个用户有个愿望清单,里面有不确定数量的游戏列表,用关系型数据库存,你可能得存成这样:

id 用户  愿望
1  001   a
2  001   b
3  001   c
4  002   b
5  003   a
6  004   c

用非关系性的存,就是

id 用户 愿望
1  001  [a,b,c]
2  002  [b]
3  003  [a,c]

有好几个人关注了但是一楼的回答感觉还是没太懂啊 希望有人给接着解释一下啊

按字面理解就好:

  1. 关系型数据库强调的是关系,如Mysql每个表之间的外建依赖(实际生产环境证明这样的强依赖是不好的

  2. 非关系型数据库,它甚至会没有表的观念,直接是简单的key-value

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题