维恩图是去年的事了
图片由作者提供,灵感来自 R for Data Science
几周前,我在Reddit上发表了一篇关于 SQL Anti-Joins在Reddit上。在我分享后不久,我得到了这样的回应。
图片由作者提供
这引起了我的兴趣,因为到目前为止,我还没有读过或听说过有人认为维恩图是可视化SQL连接的坏方法,而我已经不断地用SQL编码了3年多。我个人认为,维恩图对于快速记忆和可视化两个表之间的连接类型很有帮助。所以这是我的回答。
图片由作者提供
在这篇评论之后,我得到了一些热情的回应,并意识到这个问题已经被广泛地讨论过了,而且背后有一些历史。当我在阅读更多相关内容时,我发现了一个流行的Reddit帖子,标题是, “Say NO to Venn Diagrams When Explaining Joins”.阅读别人对它的看法很有意思。我还发现了两年前发表在Towards Data Science上的一个相关的热门帖子,标题是, “ Can we stop with the SQL JOINs venn diagrams insanity?”.
这场辩论让我想起了关于如何发音SQL的争论,或者当我第一次听到关于 tabs vs. spaces debate.我决定写这篇文章,因为我思考了双方的争论,然后发现了我认为被低估的SQL连接的可视化,我称之为格子旗图。
快速的题外话:关于SQL的发音,SQL最初被拼成'SEQUEL',后来才改成'SQL'。due to a trademark issue.
尽管我对这个话题有自己的看法,但我认为值得说明的是,我相信争论双方的人都有一些有效的观点,这些可视化的方法都是表示SQL连接的有效方法。这场辩论之所以存在,是因为双方都从不同的学习方法中看到了好处,这也是可以的。当然,对于大多数人来说,可能有一个最佳的学习路径,但学习是一种量身定做的体验,所以我不想贬低其他人通过使用不同的可视化方式所获得的好处。但请记住,真正理解SQL连接的最好方法是进入代码并进行实践!"。SQL Practice.com这是一个我发现的练习SQL的好资源。
但请记住,真正理解SQL连接的最好方法是进入代码并进行实践。
既然如此,我希望解决 "SQL维恩图大辩论 "中双方的关键点,并提出一个可能,只是可能,安抚双方人员的解决方案。
为了更好地理解双方的观点,我在Reddit上阅读了不少意见,以及一些文章。以下是我发现人们不同意使用维恩图来可视化SQL连接的原因。
这些是我发现的那些反对使用维恩图的人的主要批评意见。赞成使用SQL文氏图的人主要回应了两点。
不管你更同意哪一方,你现在对我决定写这篇文章的原因有了一些背景。
有一篇 popular article in 2016也反对使用维恩图,作者提出了另一种图,叫做 "连接图"。下面是一个内联接的例子,它被可视化为一个联接图。
图片由作者提供,灵感来自 Jooq Blog
这种图是有益的,因为它比维恩图更准确地表示了SQL连接中使用的表格结构。这个图的问题是,它以颜色显示主键,但在这些颜色中也有数字或字母。矩形内的字母和数字应该代表除了主键列(用颜色表示)之外的其他列,但这是这种可视化开始崩溃的地方。用一个矩形来表示多列,会让人感到困惑和不直观(至少对我来说是这样)。不管怎么说,这个可视化似乎对一些难以理解使用SQL连接的人有帮助。每个可视化都有其局限性。
当我在回顾将SQL连接可视化的不同方法时,我发现了我个人的最爱。我希望这张图可以弥补双方之间的差距,或者至少提供另一种选择,帮助人们理解SQL连接。
这张图最初是由Hadley Wickham和Garrett Grolemund在他们的书中创建的 “R for Data Science”.的章节中可以找到该图。‘Relational data’.
我在下面展示的作弊表中重新制作了这些图表,但我也创建了一个Github资源库,以便你可以下载图片 here.
图片由作者提供,灵感来自 R for Data Science
图片由作者提供,灵感来自 R for Data Science
以下是我喜欢这个图的所有原因。
我仍然相信维恩图对于可视化SQL连接是很有用的,但它们所能代表的范围和准确性是有限的。希望这些格子旗图能够成为你学习SQL时的一个重要参考。
来源:
https://www.toutiao.com/article/7084420955828765192/?log_from=52a1ecb617681_1649639265337
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
来都来了,走啥走,留个言呗~
IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!