2010-05-19 34 views
12

Ayer tuvimos una conversación con colegas sobre las bases de datos, ya que tendremos una educación de DB2 en pocas semanas. Me pregunto, ¿cuáles son las diferencias entre DB2 y Oracle como dos soluciones empresariales principales? ¿Hay alguna limitación en comparación entre sí? ¿Hay alguna tarea más adecuada para DB2 u Oracle?Diferencias entre DB2 y Oracle

(me encontré this artículo, pero de alguna manera lo dudo cubre todo)

+1

¡Me gusta esta pregunta! Sería bueno si pudiéramos usarlo para crear un conjunto de diferencias claras * técnicas * entre ellos. (Escuché que había diferencias en la granularidad de bloqueo, pero eso fue hace bastante tiempo y puede haberlo distorsionado). –

+0

Es mejor que haga esta pregunta en otro lugar (por ejemplo, OracleOverflow o ServerFault), ya que no es relacionado con la programación. –

+0

El artículo de Alexander Chigrik al que se hace referencia en esta pregunta está muy desactualizado, incluso cuando esta pregunta se publicó originalmente hace más de 18 meses. Los proveedores de DBMS parecen estar lanzando cambios importantes a su software de base de datos cada 12-18 meses, por lo que comparar las diferencias entre versiones anteriores no le dará resultados muy precisos o útiles. –

Respuesta

17

La principal diferencia en mis ojos es que DB2 puede decir la diferencia entre un NULL y una cadena vacía :-)

+1

¿Y Oracle no puede ???? –

+1

No, no puede: http://forums.thedailywtf.com/forums/t/1225.aspx – paxdiablo

+1

Es una cuestión de puntos de vista. Tener una pieza de datos vacía no es diferente de tener una pieza nula de datos. No lo confundas con Char (0), el ASCII de Null. – borjab

3

Oracle los nombres de tabla, esquema y columna aún están limitados a 30 caracteres, lo que puede resultar molesto.

+1

DB2 (en AIX) tiene un límite de 8 caracteres. Y el nombre de usuario también está limitado a 8 caracteres, aunque el sistema operativo (AIX en nuestro caso) no tiene este límite. –

5

IMMSMW, una diferencia extremadamente importante entre los dos es la forma en que logran el aislamiento de la transacción. Oracle usa MVCC, DB2 usa el bloqueo bifásico tradicional.

Pero eso podría haber cambiado en las últimas versiones de DB2, por supuesto.

+0

IMMSMW? Si mi memoria me sirve ... ¿mal? Creo que DB2 9.7 implementó MVVC, al menos en el lado de LUW, no estoy seguro sobre el DB2 "real" en System z :-) – paxdiablo

+0

Probablemente no encontrará ninguna mención de MVCC en la documentación de DB2, pero a partir de la versión 9.7, DB2 para Linux, UNIX y Windows ofrecen el aislamiento Comprometido actualmente, que se comporta de forma muy similar a Oracle. http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0053760.html –

2

¿Desde qué punto de vista?

Para los desarrolladores que se adhieren a algún estándar, las diferencias no deben ser notables. Para los administradores, sí, esa es otra historia.

4

Con el lanzamiento de db2 9.7 el año pasado hay menos diferencias de que cada una de ellas haya tenido licencia de DB2 Postgress plus y esto está en DB2 9.7. Esto se está utilizando esencialmente un conjunto de características de compatibilidad de Oracle. Una de esas características es el control de Concurrencia. Los otros principales son paquetes de dialecto SQL, PL/SQL, PL/SQL, paquetes integrados, cliente JDBC con extensiones, aplicaciones cliente OCI, scripts SQL * Plus. Más detalles aquí http://www.ibm.com/developerworks/data/library/techarticle/dm-0907oracleappsondb2/

Debo revelar que ahora trabajo para IBM como especialista en migración.