如何看表的主键外键_程序员该如何向奶奶解释 SQL 和 NoSQL?

d01b60a3710ca435f34f9b2a5f99c6f5.gif

@程序员,如果你的奶奶问你什么是 SQL 和 NoSQL,你会如何浅显易懂地向她解释清楚呢?

8349a58fcbe59e7b68331420ed496e4c.png

作者 | SebastianScholl

译者 | 刘静,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

开发人员必须做出的最重要的选择之一是使用什么数据库技术。多年来,这些选项仅限于支持结构化查询语言(SQL)的不同风格的关系数据库,包括MS SQL Server、Oracle、MySQL、PostgreSQL和DB2等。

在过去的15年中,许多新数据库作为NoSQL的一部分进入市场,包括键值存储(如Redis和Amazon DynamoDB)、宽列存储(如Cassandra和HBase)、文档存储(如MongoDB和Couchbase)、图形数据库和搜索引擎(如Elasticsearch和Solr)。

在本文中,我们将趣味性地专注于对SQL和NoSQL的深入解读。

825fd603cfa5aad7bbdaf7d8eea2eca0.png

向奶奶解释SQL

奶奶,想象我不是你唯一的孙子。相反,妈妈和爸爸像兔子一样彼此相爱,有100个孩子,然后又收养了50个孩子。现在,你爱我们所有人,永远不会忘记我们的任何名字、生日、最喜欢的冰淇淋口味、服装尺寸、爱好、配偶的名字、后代的名字以及其他超级重要的事。

但是,让我们面对现实吧!你已经85岁了,对旧时尚的美好记忆是不够的。

幸运的是,我——你孙子中最聪明的人——可以提供帮助。所以我来到你的房子,拿出几张纸,并要求你在我们开始前烤一些饼干。

在一张纸上,我们列出了一个名为Grandchildren的列表。每个孙辈都会被记录下来一些关于他们的基本信息,包括一个唯一的号码。从现在开始,这个数字将表示他们是哪个孙辈。此外,为了有条理,我们在列表顶部写出命名属性,以便我们始终知道此列表包含的信息。

14096a69c44474de40ad823cefa2007a.png

孙子名单

过了一段时间,你就熟悉了它,并且几乎完成了列表!但是,你转向我并说:“我们忘了为配偶、爱好、孙子们等信息预留空间!”所以接下来需要一张全新的纸。

所以我拿出另一张纸,在这一张纸上,我们列出了配偶名单。同样,我们在列表顶部添加我们关注的属性并开始添加行。

45684cd974aeea2a9192446dbb94f33d.png

配偶名单

在这一点上,我对奶奶解释说,如果她想知道谁娶了谁,她只需要将孙辈列表中的id与配偶列表中的孙辈id匹配即可。

但是,在我打了个小盹回来后却发现,这张纸上只剩下了爱好列表,其他都被“杀”掉了!

a5506406d13709adb6eaa864838b31c2.png

爱好列表

对不起,我忘了告诉你......使用一个列表,我们只需跟踪爱好,然后在另一个清单上,我们需要追踪那些有这些爱好的孙辈!我们将其称为“加入列表”。看到你明显感到沮丧,我感觉很糟糕并且跳回列表模式。

6bcc4a518b1f5c21306e1a465c4b7d01.png

一旦得到了我们的爱好列表,我们就会制作第二个列表并称之为孙辈的爱好。

8df7de800b6bf9e324dc13eff2e209a3.png

孙辈的爱好名单

在完成所有这些工作之后,奶奶现在就拥有了一个大象级的记忆系统,用于跟踪她那个荒谬的大家庭。然后,她问了一个神奇的问题:“你从哪里学会做这一切的?”

7c975cf5a46cbd2ecee3e68d7ae7b000.png

关系数据库

关系数据库是一组正式描述的表(在我们的示例中是列表),从这些表中可以以许多不同的方式访问或重新组装数据,而无需重新组织数据库表。有许多不同类型的关系数据库——可惜我们上面所列的纸,并不是其中之一!

最流行的关系数据库的是称为SQL(标准查询语言)的查询语言。这意味着,如果奶奶将她的记忆系统升级到计算机,她就能快速回答诸如“谁去年没有拜访过我?结婚了吗?有什么爱好?”之类的问题。

世界上最流行的SQL数据库管理系统选择是MySQL,它是开源的,实现为基于Web的软件应用程序的关系数据库管理系统(RDBMS)。

MySQL的一些关键功能包括:

  • 它是众所周知的、常用的、并经过全面测试。

  • 有很多合格的开发人员在SQL和关系数据库方面经验丰富。

  • 数据存储在各种表中,允许使用主键和外键轻松关联。

  • 它易于使用和高性能,是大型和小型企业的理想选择。

  • 源代码符合GNU通用公共许可协议。

现在,忘记一切。

bc1a8bf93596498e5cafd773b3fb1cdc.png

向奶奶解释NoSQL

奶奶,我们的家庭是巨大的——有150个孙子孙女!其中许多人已婚,有自己的孩子,喜欢各种不同的爱好和其他东西。在你这个年纪,几乎不可能记住我们所有人的一切,所以你需要一个记忆系统!

幸运的是,我可以提供帮助——不希望你忘记我的生日,最喜欢的冰淇淋口味这些。所以我跑到拐角的商店,拿起一本作文笔记本,然后回到你家。

我做的第一步是在笔记本前面用粗体字母写“孙子”。接下来,我翻到第一页,开始写下你应该记住的关于我的一切。几分钟后,页面看起来像这样。

{ 
"_id":"dkdigiye82gd87gd99dg87gd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值