Articles

Microsoft SQL Server vs. Oracle: ¿Igual, pero diferente?

Posted on
Comparte en FacebookTweet sobre esto en TwitterCompartir en LinkedIn
Escrito por Josh Stansfieldel 13 de marzo, 2014
Compartir en FacebookTweet sobre esto en TwitterComparte en LinkedIn

Hay muchos sistemas de gestión de bases de datos relacionales (RDBMS). Probablemente haya oído hablar de Microsoft Access, Sybase y MySQL, pero los dos más populares y utilizados son Oracle y MS SQL Server. Aunque hay muchas similitudes entre las dos plataformas, también hay una serie de diferencias clave. En este blog, echaré un vistazo a varias en particular, en las áreas de su lenguaje de comandos, cómo manejan el control de las transacciones y su organización de los objetos de la base de datos.

Lenguaje

Quizás la diferencia más obvia entre los dos RDBMS es el lenguaje que utilizan. Aunque ambos sistemas utilizan una versión de Structured Query Language, o SQL, MS SQL Server utiliza Transact SQL, o T-SQL, que es una extensión de SQL desarrollada originalmente por Sybase y utilizada por Microsoft. Oracle, por su parte, utiliza PL/SQL, o Procedural Language/SQL. Ambos son diferentes «sabores» o dialectos de SQL y ambos lenguajes tienen diferentes sintaxis y capacidades. La principal diferencia entre los dos lenguajes es cómo manejan las variables, los procedimientos almacenados y las funciones incorporadas. PL/SQL en Oracle también puede agrupar procedimientos en paquetes, lo que no puede hacerse en MS SQL Server. En mi humilde opinión, PL/SQL es complejo y potencialmente más potente, mientras que T-SQL es mucho más sencillo y fácil de usar.

Control de transacciones

Otra de las mayores diferencias entre Oracle y MS SQL Server es el control de transacciones. A efectos de este artículo, se puede definir una transacción como un grupo de operaciones o tareas que deben ser tratadas como una sola unidad. Por ejemplo, una colección de consultas SQL que modifican registros que deben ser actualizados al mismo tiempo, donde (por ejemplo) un fallo en la actualización de cualquier registro del conjunto debería resultar en la no actualización de ninguno de los registros. Por defecto, MS SQL Server ejecutará y confirmará cada comando/tarea individualmente, y será difícil o imposible revertir los cambios si se encuentra algún error en el camino. Para agrupar correctamente las sentencias, se utiliza el comando «BEGIN TRANSACTION» para declarar el inicio de una transacción, y al final se utiliza una sentencia COMMIT. Esta sentencia COMMIT escribirá los datos modificados en el disco, y terminará la transacción. Dentro de una transacción, ROLLBACK descartará cualquier cambio realizado dentro del bloque de transacción. Cuando se utiliza correctamente con el manejo de errores, el ROLLBACK permite cierto grado de protección contra la corrupción de datos. Después de emitir un COMMIT, no es posible retroceder más allá del comando COMMIT.

Dentro de Oracle, por otro lado, cada nueva conexión a la base de datos es tratada como una nueva transacción. A medida que se ejecutan las consultas y se emiten los comandos, los cambios se realizan sólo en la memoria y no se consigna nada hasta que se da una sentencia COMMIT explícita (con algunas excepciones relacionadas con los comandos DDL, que incluyen commits «implícitos», y se consignan inmediatamente). Después del COMMIT, el siguiente comando emitido esencialmente inicia una nueva transacción, y el proceso comienza de nuevo. Esto proporciona una mayor flexibilidad y ayuda para el control de errores también, ya que no hay cambios se comprometen a disco hasta que el DBA explícitamente emite el comando para hacerlo.

Organización de los objetos de base de datos

La última diferencia que quiero discutir es cómo el RDBMS organiza los objetos de base de datos. MS SQL Server organiza todos los objetos, como tablas, vistas y procedimientos, por nombres de base de datos. Los usuarios son asignados a un nombre de usuario al que se le conceden accesos a la base de datos específica y a sus objetos. Además, en SQL Server cada base de datos tiene un archivo de disco privado y no compartido en el servidor. En Oracle, todos los objetos de la base de datos se agrupan por esquemas, que son una colección de subconjuntos de objetos de la base de datos y todos los objetos de la base de datos se comparten entre todos los esquemas y usuarios. Aunque todo es compartido, cada usuario puede limitarse a ciertos esquemas y tablas a través de roles y permisos.

En resumen, tanto Oracle como SQL Server son potentes opciones de RDBMS. Aunque hay una serie de diferencias en cómo funcionan «bajo el capó», ambos pueden ser utilizados de manera aproximadamente equivalente. Ninguno es objetivamente mejor que el otro, pero algunas situaciones pueden ser más favorables a una elección particular. En cualquier caso, Segue puede dar soporte a estos sistemas y ayudar a hacer recomendaciones sobre cómo mejorar, actualizar o mantener su infraestructura clave de misión crítica para asegurarse de que puede mantener su enfoque en hacer negocios.

¿Necesita ayuda? Póngase en contacto con nosotros

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *