数据库之间的主要区别是什么? [英] What are the major differences between databases?

查看:129
本文介绍了数据库之间的主要区别是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不喜欢任何数据库,但我希望看到供应商之间的差异。



例如,我大多使用Oracle,我看到其他SQL Server,PostgreSQL,...)无法做到:





对于SQL Server,其他人也无法做到:




  • 热门结果


    • 解决方案

      Oracle的CONNECT BY是标准SQL的递归SQL的有限版本。 DB2和MSSQL的递归公用表表达式有点难以代码,但提供比Oracle的CONNECT BY更多的权力。 (下一个版本的Oracle数据库应该会得到真正的递归SQL。)



      闪回是一个真正独特的Oracle特性,反映了 MVCC 内置于Oracle中。 MVCC是Oracle如何处理并发,而不是传统的悲观锁定;并发处理是数据库之间存在很多差异的地方之一(尽管大多数DBMS仅仅基于悲观锁定而远离并发)。在我看来,Oracle坚定地建立在MVCC上是一个显着的优势。



      关于TOP结果:所有DBMS都有办法做到这一点。



      除此之外:



      SQL-wise:Oracle具有最先进和符合标准的datetime处理。 Oracle在OLAP相关功能方面很强大(但是DB2和MSSQL也是如此; OLAP功能是开源DBMS在维护时遇到的麻烦)。最近,Oracle似乎已经基本上忽略了SQL标准,因为它的标准合规性停滞不前(例如,与MSSQL相比,这在这里有很大的改进);由于甲骨文的巨大市场份额,我怪罪这一点。



      概念上:Oracle和MySQL是处理数据库的两种非常不同的方法的例子。在Oracle中,它永远需要创建一个数据库,而数据库是一个非常重的对象,因此在Oracle世界中,数据库往往包含很多表,可能在不同的模式。在MySQL中,数据库是一个非常轻量级的对象,所以MySQLs往往有许多数据库,在每个数据库相对较少的表(这可能是为什么他们似乎并不抱怨MySQL缺乏模式)。



      Oracle(类似DB2)是一个几乎包含整个操作系统的DBMS示例:它执行许多功能,像MSSQL / MySQL / PostgreSQL这样的DBMS将允许操作系统的文件系统和虚拟内存系统句柄。



      与MSSQL相比,Oracle运行在很多不同的操作系统上,更多的平台(像大多数其他DBMS; MSSQL可能是唯一重要的DBMS只在运行在Windows上)。



      Oracle提供了另一种方法聚类比大多数其他DBMS:RAC。我听说过许多关于RAC的恐怖故事,但是如果你能够得到它的工作,你可能会说,你有一个非常强大(和昂贵)的集群解决方案。





      然后,有严重的定价差异, em>非常高,并且上升。


      I'm not fanatic on any database but I wish to see differences between vendors.

      For instance, I use mostly Oracle and I see that others (MySQL, SQL Server, PostgreSQL, ...) cannot do:

      The same for SQL Server, that others cannot do:

      解决方案

      Oracle's CONNECT BY is a limited version of standard SQL's recursive SQL. DB2s and MSSQLs recursive "common table expressions" are a bit harder to code but offer more power than Oracle's CONNECT BY. (The next version of Oracle's database should get real recursive SQL, though.)

      Flash back is a truly unique Oracle feature which reflects how deep MVCC is built into Oracle. MVCC is how Oracle deals with concurrency, as opposed to traditional pessimistic locking; and concurrency handling is one of the places where there is a lot of difference between databases (although most DBMSes are moving away from concurrency solely based on pessimistic locking). The fact that Oracle builds to firmly on MVCC is a significant advantage, in my opinion.

      Regarding TOP results: All DBMSes have ways to do this.

      Apart from that:

      SQL-wise: Oracle has the most advanced and standards-compliant datetime handling. Oracle is strong on OLAP-related functions (but so are both DB2 and MSSQL; OLAP functions is an area where the open source DBMSes have had some trouble keeping up). Lately, Oracle seems to have basically ignored the SQL standard, in that its standards compliance is stagnating (in contrast to MSSQL, for example, which has improved a lot here); I blame this on arrogance due to Oracle's large market share.

      Conceptually: Oracle and MySQL are examples of two very different ways of handling databases. In Oracle, it takes forever to create a database, and a database is a very heavy weight object, so in the Oracle world, a database tends to contain a lot of tables, possibly in different "schemas". In MySQL, a database is a very light-weight object, so MySQLers tend to have many databases which comparably fewer tables in each (which is probably why they don't seem to complain about MySQL's lack of schemas).

      Oracle (like DB2) is an example of an DBMS which almost includes an entire operating system: It performs many features that a DBMS like MSSQL/MySQL/PostgreSQL would let the operating system's filesystem and virtual memory systems handle. Personally, I prefer the latter approach, but Oracle's way makes Oracle perform very much the same no matter which operating system is being used.

      Compared to MSSQL, Oracle runs on many more platforms (like most other DBMSes; MSSQL is probably the only important DBMS which only runs on Windows).

      Oracle offers an other way of clustering than most other DBMSes: RAC. I've heard many horror stories about RAC, but if you can get it working, it's probably fair to say that you have a very powerful (and expensive) clustering solution.

      Regarding management, I find Oracle to be surprisingly complex to manage, compared to most other DBMSes.

      Then, there are serious pricing differences, of course: Oracle's pricing is very high, and rising.

      这篇关于数据库之间的主要区别是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆