在编写SQL之前考虑关系代数有多大好处?

在编写SQL之前考虑关系代数有多大好处?,sql,relational-algebra,Sql,Relational Algebra,在一个关于dbms的课程中,我们被教导在转换为SQL之前“在关系代数中生成解决方案”。它实际上已经成为第二天性,直接编写SQL几乎是困难的。这是好是坏?有人告诉我,这会导致更好的查询,这很好,但我可以看到,如果一个人每次被要求在数据库中查找某些内容时,他们就开始在一张纸上写数学,那么他很快就会被解雇 这是一件好事 太多的程序员在使用SQL时没有考虑到关系,结果使用了不适合SQL的游标和循环机制,因为关系数据库针对关系代数进行了优化。你可以看到有人因为在仓促着手解决某个问题之前找到了解决方案而被解

在一个关于dbms的课程中,我们被教导在转换为SQL之前“在关系代数中生成解决方案”。它实际上已经成为第二天性,直接编写SQL几乎是困难的。这是好是坏?有人告诉我,这会导致更好的查询,这很好,但我可以看到,如果一个人每次被要求在数据库中查找某些内容时,他们就开始在一张纸上写数学,那么他很快就会被解雇

这是一件好事


太多的程序员在使用SQL时没有考虑到关系,结果使用了不适合SQL的游标和循环机制,因为关系数据库针对关系代数进行了优化。

你可以看到有人因为在仓促着手解决某个问题之前找到了解决方案而被解雇


在想出解决方案之前,解决你需要解决的问题总是很好的。随着时间的推移,随着技能的进步,你会发现你不需要准备那么多。

好吧,关系代数的要点是它是通用的。它不是特定于一个DBMS的。所以更多的人可以理解它

这可能更像是一种理论上的东西,你只能在学校里看到,而不是在实践中看到,但这并不是一种坏的做法。它可以在您开始编写查询之前帮助您,从而节省时间

如果你的老板因为你在查询之前没有做关系代数而解雇你,我会很惊讶,反之亦然


此外,有些人用它来优化他们的查询

如果你做得足够多,你就可以在头脑中完成。记住,3小时的编码可以节省2分钟的计划时间,而这可以节省10秒的讨论时间。我认为你有一个倒退:pDo什么适合你。我以前向同事发送过固定的查询,其中包括Jeff Moden的签名:“不要想你想对一行做什么……而是想你想对一列做什么。”