我读到了一种叫做nosql的东西,我不明白这是什么意思,我试图在google上搜索,但接缝表明我无法确切知道它的含义。
谁能用简单的词解释nosql的意思吗?
如果您曾经使用过数据库,则可能已经使用过 关系 数据库。例如Access数据库,SQL Server或MySQL。当您考虑这些数据库中的表时,通常会想到一个网格,就像在Excel中一样。您必须命名数据库表的每一列,并且必须指定该列中的所有值是否都是整数,字符串等。最后,当您要在该表中查找信息时,必须使用一种称为SQL。
非关系数据库(即不属于整洁网格的数据库)周围正在形成一种新趋势。您不必指定哪些是整数,字符串和布尔值等。这些类型的数据库更灵活,但是它们不使用SQL,因为它们不是那样构造的。
简而言之,这就是为什么它们是“ NoSQL”数据库。
使用NoSQL数据库的优点是您不必提前确切知道数据的样子。也许您有一个“联系人”表,但是您不知道要存储有关每个联系人的哪种信息。在关系数据库中,您需要创建诸如“名称”和“地址”之类的列。如果以后发现需要电话号码,则必须为此添加一列。在NoSQL数据库中不需要这种计划/结构。还有潜在的扩展优势,但这有点争议,因此我在那儿不做任何声明。
NoSQL数据库的缺点实际上是缺乏SQL。SQL简单且无处不在。SQL使您可以更轻松地对数据进行切片和切块以获得聚合结果,而在NoSQL数据库中则更为复杂(您可能会使用MapReduce之类的东西,这需要一些学习技巧)。