代码之家  ›  专栏  ›  技术社区  ›  FerranB Tom

SQL是数据库的程序集吗?

  •  0
  • FerranB Tom  · 技术社区  · 17 年前

    更新: 我所指的类比意味着 SQL 装配 什么 C/Java/C# . 当然,精确的类比是不可能的。问题是,在未来,如果有更强大的计算机,开发人员只会使用 (或类似)代替

    13 回复  |  直到 14 年前
        1
  •  18
  •   Greg Beech    17 年前

    绝对不是。

    汇编语言是一种非常低级的语言,您可以在其中精确地指示处理器要做什么,包括要使用的寄存器等。

    SQL是一种非常高级的语言,您可以在其中描述所需内容的语义,然后由查询优化程序决定如何执行它,因此您甚至无法控制执行的内容。它是一种非常强大和灵活的语言,任何ORM最多只能提供一个(相当小的)子集。

    您会注意到.NET framework最近引入了LINQ,这是一种将类似SQL的高级构造引入C#和VB等语言的方法。与汇编语言不同,我们很容易认为SQL比大多数主流编程语言在更高的抽象级别上工作。

        2
  •  7
  •   James Anderson    17 年前

    我的答案一直是,阻抗确实存在很大的不匹配——在不可改变的“一切都是一个对象,只是一个对象”和非常灵活和复杂的“数据描述现实世界的事物;这些数据可以以不同但未知的方式组合,以产生数学上可证明的结果”。

        3
  •  6
  •   Mitch Wheat    17 年前

    不,关系代数是数据库的“汇编代码”。

        4
  •  3
  •   Fergie    17 年前

    不,SQL本身是一个高级抽象层,它(大部分)与数据库无关。

        5
  •  2
  •   Bill Karwin    17 年前

    • 直接使用SQL编码可以让您以非常紧凑的方式编写非常高效的代码。
    • 因为SQL非常紧凑,所以重构SQL往往会让人厌烦,而且成本高昂。
    • 软件开发人员中有一大群“金字塔的底层”,他们对SQL深恶痛绝,喜欢使用模仿他们首选的OO编程范式的抽象层,尽管这些抽象层限制了他们对SQL的有效使用,并导致了缓慢而沉重的应用程序。

        6
  •  1
  •   Al W    17 年前

    不,不,不是。那些说从来没有编码过汇编的人。

        7
  •  1
  •   tuinstoel    17 年前

    如果只进行联机事务处理,则只使用简单的sql语句。Hibernate可以为您生成它们。

    如果你想正确地使用SQL,你必须集中思考,而不是逐行思考。因此,我说它与汇编程序完全相反。

        8
  •  1
  •   tuinstoel    17 年前

    让我们比较一下编写并行SQL和编写并行汇编程序。

    这是在Oracle中编写并行sql语句的方法:

    select /*+ parallel (e, 4)  */ deptno,count(*)
    from employees e
    group by deptno
    

    现在,我希望我能告诉你们如何编写并行汇编程序,但我强烈怀疑它是否像添加这样的东西一样容易 +平行(e,4) /

        9
  •  0
  •   Thomas Thomas    17 年前

    不要相信那些废话。

        10
  •  0
  •   klyde    17 年前

    这永远不会发生。SQL实际上是一种dsl,而汇编程序显然不是。将关系数据库映射到对象模型很有用,但这并不是dbs的唯一目的,也就是说,ORM只是数据库的一小部分,因此sql始终是处理dbs的首选语言!

        11
  •  0
  •   stesch    17 年前

    RPG是数据库的汇编语言。:-)

        12
  •  -1
  •   Robert Gould    17 年前

    不,但是您可以说SQL是数据库的C语言。他们都是 程序性和强制性,以及

        13
  •  -1
  •   ChrisW    17 年前

    即。:

    然而,我并不是说人们会停止使用SQL而更喜欢ORMs,就像人们停止使用汇编而更喜欢HLL一样。

    推荐文章