
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
2.JSON在数据库中不要求数据结构。因此数据质量差
自从JSON数据库不要求任何结构。不管是有意,还是无意,应用程序都可以插入任何格式的数据了,只要这些数据是有效的JSON。
基于JSON的数据库倾向于“读取模式”。也就是说,读者有责任去理解和翻译每一个文档或查询结果的模式。查询语言,如N1QL,就有很多文档本身的自解读功能。
达内长沙IT培训已经提到过的一些工具,如Ottoman 和 Mongoose可以帮你去验证一个给定的JSON是否违反了已定义的结构。尽管对将数据加载进JSON数据库来说, 这不是一个好的安全装置 ,但是在应用层对数据的正确控制可以帮助你提高数据的一致性。
另一方面,灵活性,JSON的内嵌结构可以帮助你在一个单独的JSON文档中匹配对象数据。
使用JSON也可以避免对象关系映射的开销。应用程序的规范和修改对象。为了在关系模式中存储这些数据,你需要在多个关系中规范这些数据,把它们存储在离散的表中。当你需要重建对象时,你需要在这些表中连接数据,构建返回对象。而对象关系映射层(如Hibernate自动完成这个过程),你仍然会消耗性能,因为你为每步执行了多个查询。
通过对象在JSON的分层内嵌结构中的表示,避免了很多对象关系映射的消耗。
3.每一个文档都是键值对?那你就疯了!
不过现在的结果是瓶颈已经被转移啦。瓶颈已经从数据库核心性能移向了数据库灵活性和应用程序开发的迭代变更管理。
80,90年代RDBMS被用于许多的应用和用例中,最重要的是RDBMS能跟上发展脚步还有硬件的更新。它能适用于高时速,新指令,多内核,大内存的硬件更新。随着业务的增长,对应用程序的自动化多进程要求越来越高。而且一些应用程序越来越受欢迎和有价值,企业当然就希望它能做得更多。业务应用程序开始从后台自动化到真正的业务变更驱动程序。
RDBMS虽然擅长于做许多事情,但是从未改变过自己。达内长沙IT培训认为它所面临的问题都是组织和技术方面的问题。
RDBMS使用“写入模式”方法。模式决定了创建表的时间,在每个插入,更新,合并处检查。更改表结构通常涉及多个相关字段,多个应用程序,需要测试所有相关模块。
使用ALTER在表中添加列,更改数据类型需要对表的数据进行校验是否都符合要更改的数据类型,若有不符合的会导致应用程序和业务计划停机。如果你需要一个列来存储不同类型的数据或结构,那你就太不走运了。针对这种情况,系统已经尝试通过允许用户在线添加列 来缓解小子集的问题。
所有这些都需要时间,会减缓了开发和交付的步伐。
如果使用JSON格式通过键值来存储数据,您可以避免在写入时强制执行模式。当文档被查询处理引擎或应用程序读取时,它们必须阅读和解释文档。应用程序通常会对文档进行版本化管理以便他们知道在文档本身的模式发展过程中会发生什么。查询语言(如N1QL,SQL ++)将扩展到文件内部处理更灵活的模式!
JSON是文本的,它让模式执行充满挑战性,并占用了更多的空间。但是,它使得你的应用开发,模式演化,和对象关系映射变得更容易。