Está en la página 1de 8

Autor: Darwin Alvarado Roldán

Bases de Datos Propietaria


vs Bases de Datos de
Codigo Abierto
En este documento se realiza la comparación en diferentes aspectos sobre las bondades que presenta la base
de datos de código abierto MySql que es gratis con la base de datos propietaria Oracle la más potente,
poderosa y más costosa de todas.
BASES DE DATOS PROPIETARIAS VS BASES DE DATOS DE CODIGO ABIERTO
En la actualidad existe una gran variedad de gestores de bases de datos relacionales entre los que
podemos mencionar a: MSSQL, ORACLE, DB2, SYBASE, INFORMIX, MySQL, POSTGRESQL,
FIREBIRD, etc. Para nuestro trabajo vamos a comparar las características de la base de datos de código
abierto MySQL con la base de datos propietaria ORACLE (Ver Anexo 1 Comparativo de pesos).
En los últimos años MySQL ha tenido un crecimiento vertiginoso, en la actualidad es considerada
como la base de datos de código abierto más popular en el mundo, ha pasado de ser una pequeña base
de datos a una completa herramienta de administración de datos, esto se debe en gran medida a la
contribución de mucha gente al proyecto.
Es capaz de almacenar enormes cantidades de datos de gran variedad y de distribuirlos, cubre las
necesidades tanto para pequeños establecimientos como para grandes empresas. Puede desarrollar sus
propias aplicaciones de bases de datos para distintos lenguajes de programación así como se puede
ejecutar en los diferentes sistemas operativos, utiliza el lenguaje estructurado de consultas (SQL).
En la actualidad MySQL incorpora muchas funciones compatibles con otros entornos, posee una gran
velocidad de proceso superior a la mayoría motores de bases de datos propietarios, además incluye un
motor de almacenamiento InnoDB (es un tipo de tabla de Mysql) que permite trabajar con
transacciones, y definir reglas de integridad referencial.

ORACLE es un producto vendido a nivel mundial, es considerada la mejor base de datos aunque por su
gran potencia y su elevado precio solo pueda ser usado por empresas muy grandes y multinacionales,
su dominio en el mercado de servidores empresariales es casi total, posee versiones certificadas para
trabajar bajo LINUX.

En cuanto al costo podemos decir que MySQL es gratis para la mayor parte de los usos y su
mantenimiento es bastante económico. No así ORACLE que es la más costosa.

En cuanto al almacenamiento de datos podemos decir que MySQL tiene una eficiente arquitectura
provee beneficios para el tipo de aplicación que se necesite como datawarehousing, procesamiento de
transacciones, situaciones de alta disponibilidad.

En cambio ORACLE utiliza espacios de tablas (tablespaces) que consiste en uno o más archivos de
datos en disco para cada tabla creada, cada tablespace puede utilizar tamaños de bloque diferente para
optimizar el almacenamiento, también soporta tablas temporales para sesiones individuales o globales
para todos los usuarios, maneja tablas externas que permite a los usuarios consultar archivos planos
como que estuvieran en la misma base de datos.

Pluggable Storange Engine es el componente de MySQL que es el responsable de administrar las


transacciones de entrada/salida así como de habilitar y reforzar ciertas características y es una de las
razones por las que ahora MySQL es conocido por tener alto rendimiento comparado con las bases de
datos propietarias.

En cuanto a soporte tenemos que el servicio de ORACLE incluye asistencia técnica 7 días a la semana
24 horas al día, también se tiene acceso a OracleMetLink (sistema de soporte basado en el internet),
actualizaciones de software, mantenimiento el costo es elevado y está separado por aplicaciones éstos
van desde los $ 2,200 hasta los $ 8,800 por aplicación.
MySQL Network provee soporte técnico y servicio de los desarrolladores de MySQL asegurando una
respuesta confiable, segura y rápida, se tiene acceso a listas de correos, foros, documentación en línea
sobre temas específicos.

El soporte está dividido por grupos, es así que tenemos:

Mysql Network Basic por $ 595 por servidor/año tiempo de respuesta 2 días.
Mysql Network Silver por $ 1995 por servidor/año tiempo de respuesta 4 horas.
Mysql Network Gold por $ 2995 por servidor/año tiempo de respuesta 2 horas.
Mysql Network Platinum por $ 4995 por servidor/año tiempo de respuesta 30 minutos.

En la realización de pruebas entre MySQL y ORACLE el resultado fue que Mysql es muchísimo más
rápido que Oracle cuando se utiliza el tipo de almacenamiento MyIsam, el cual, no maneja
transacciones ni integridad referencial.

Al realizar las mismas pruebas con el tipo de almacenamiento Innodb (este tipo de almacenamiento
maneja transacciones), el tiempo de respuesta decayó en un 50% con respecto a MyIsam. Con respecto
a Oracle, sigue siendo más rápido (4 veces más rápido). Innodb es el tipo de almacenamiento que
maneja transaccionalidad, integridad referencial, es por esto que al comparar MyIsam con Innodb, esta
última es más lenta.

Si nos ponemos a analizar el porqué de tanta diferencia entre Oracle y Mysql, esto se debe a que Oracle
realiza muchos más controles, por ejemplo, Oracle 10g tiene nuevas y novedosas características como
Flashback Query, FlashBack Table, Flash Back TransactionQuery, lo que hacen es guardar en la misma
base de datos una tabla histórica con la información de inserción, actualización o borrado que el
usuario realizó sobre una determinada tabla, esta operación es costosa en tiempos de respuesta ya que
por cada cambio en la tabla actualiza dos veces, una en la tabla padre y otra en la tabla histórica.

En la vida diaria tanto los servidores como las bases de datos están expuestas a problemas de
comunicación, falla en el suministro de energía, que no son muy repetitivos pero que suceden, se hace
necesario proteger los datos, las bases de datos manejan este problema con las llamadas transacciones y
las propiedades ACID. Una transacción es un grupo de instrucciones sql que se manejan como un todo,
la atomicidad permite que las transacciones se ejecuten en su totalidad o no se ejecuta nada, procurando
que los datos se mantengan consistentes. Tanto Mysql como Oracle manejan transacciones y ACID.

La inversión en una base de datos de código abierto es una alternativa válida, que gerentes y
desarrolladores deberían considerar el momento de escoger una solución informática.

El desarrollo de MySql y la forma en la que los miles de usuarios aportan con la solución pronta a
problemas existentes en el motor de base de datos, la hacen ver como una seria competidora ante las
bases de datos propietarias, poco a poco sus funcionalidades envidian casi nada a estas últimas.

Hay que tomar en cuenta que la compra del motor de base de datos no es el único gasto que las
empresas tendrán que realizar para automatizar sus procesos, existen otros costos como administración,
mantenimiento, capacitación, el costo es entonces un punto muy importante para tomar en cuenta a la
hora de seleccionar un sistema gestor de bases de datos.
Las bases de datos de código abierto están ganando terreno en el mercado rápidamente, esto ha
preocupado mucho a las firmas propietarias de software como Oracle a tal punto que esta empresa ya
lanzó su versión libre de la base de datos, además Oracle compró recientemente la empresa Innodb que
es la empresa que maneja la ingeniería de almacenamiento de Mysql, esto indica que las empresas
saben que Mysql es un buen competidor.

Según las pruebas realizadas, el motor de base de datos Mysql es mucho más rápido que Oracle en el
procesamiento de transacciones, esta es otra característica válida que en ambientes críticos de
producción toma gran importancia el tiempo de respuesta de la base de datos en lo que satisfacción del
cliente se refiere y en ambientes grandes de información como datawarehouse para la toma de
decisiones.

La base de datos Oracle es una herramienta muy confiable y segura, tiene opciones de auditoria,
backup y aplicaciones para la toma de decisiones que la diferencian de sus competidores libres y
propietarios. En ocasiones es mejor sacrificar los recursos (memoria, disco) para obtener a cambio
integridad en los datos.

Si comparamos las herramientas de administración que posee Oracle frente a las de Mysql, nos damos
cuenta que a Mysql le falta mucho por recorrer aún, pero con el transcurso del tiempo las distancias se
van acortando.

El tiempo de presencia en el mercado de cada una de las bases de datos es un factor determinante en su
desarrollo y características de madurez, más de 10 años de ORACLE frente a 5 de MySql hacen que
existan diferencia sin embargo el avance de MySql es notorio y robusto.

Al tener el código fuente e instaladores de la base de datos disponibles, cualquier persona puede
analizarlo y utilizarlo para desarrollar otro producto.

El problema del open source ha sido siempre la falta de soporte técnico garantizado al cual acudir si los
manuales y ayuda en línea no son suficientes, hoy en día, existen empresas como Mysql Ab que se ha
preocupado por este problema y tiene varios servicios de soporte especializado. De hecho, esta es la
fuente de sus ingresos, con el producto libre, lo que vende es la solución de problemas.

Oracle debe abrir el código fuente de sus aplicaciones de manera que permita a los usuarios un mejor
manejo de la herramienta y conocer sobre su funcionamiento.

Las pequeñas empresas deben tomar en cuenta las bases de datos de código abierto como Mysql para
sus desarrollos ya que tiene muchas funcionalidades como las bases de datos comerciales y que está al
alcance de su economía.
Anexos del Comparativo entre las dos Bases de Datos

Anexo 1: Comparativo de Pesos


Peso
Peso T % P1 % Peso Oracle P2 %
MySql
Costo y Licenciamiento 20 12 20 12 5 3
Rendimiento 10 11 10 11 9 9.9
Funcionalidad 150 10 117 7.8 150 10
Características Fundamentales 110 10 100 9.09 110 10
Acceso a Datos (Anexo 4) 160 10 150 9.38 160 10
Seguridad (Anexo 4) 100 9 80 7.2 100 9
Soporte 10 7 10 7 10 7
Almacenamiento 50 7 50 7 30 4.2
Tipos de Datos (Anexo 5) 140 7 116 5.8 126 6.3
Alta Disponibilidad (Anexo 4) 30 7 0 0 30 7
Sistemas Operativos (Anexo 2) 110 5 110 5 100 4.55
Apis (Anexo 3) 120 5 120 5 80 3.33
1010 100 883 86.27 910 84.28

Anexo 2: Sistemas Operativos soportados


Peso Mysql Peso Oracle Peso
Windows 10 Si 10 Si 10
Linux 10 Si 10 Si 10
Mac OS x 10 Si 10 Si 10
Free BSD 10 Si 10 No 0
IBM AIX 10 Si 10 Si 10
Solaris 10 Si 10 Si 10
HP _ UX 10 Si 10 Si 10
QNX 10 Si 10 Si 10
SCO Unix 10 Si 10 Si 10
Novell Netware 10 Si 10 Si 10
SGI Irix 10 Si 10 Si 10
110 110 100

Anexo 3: Interfaces (Api´s) / Conectores soportados

Interfaces Peso Mysql Peso Oracle Peso


C 10 Si 10 Si 10
C++ 10 Si 10 No 0
TCL 10 Si 10 No 0
DELPHI 10 Si 10 Si 10
PERL 10 Si 10 Si 10
PHYTON 10 Si 10 No 0
PHP 10 Si 10 Si 10
JAVA 10 Si 10 Si 10
RUBI 10 Si 10 No 0
Conectores
.Net 10 Si 10 Si 10
Odbc 10 Si 10 Si 10
Jdbc 10 Si 10 Si 10
120 120 80
Anexo 4: Características

Categoría Peso Mysql Peso Oracle Peso


Versión 5.0.18 10gR2
Seguridad 100 80 100
Control Acceso a Usuarios 10 Si 10 Si 10
Backups 10 Si 10 Si 10
Hot Backups 10 Si 10 Si 10
SSL 10 Si 10 Si 10
Importación/Exportación de Datos 10 Si 10 Si 10
Privilegios de acceso a objetos 10 Si 10 Si 10
Privilegios de acceso en grupos 10 No 0 Si 10
Perfiles de Usuario 10 Si 10 Si 10
Encriptación de datos 10 Si 10 Si 10
Roles 10 No 0 Si 10
Características Fundamentales 110 60 70
Acid 10 Si 10 Si 10
Bloqueo a Nivel de Registro 10 Si 10 Si 10
Bloqueo a Nivel De Tabla 10 Si 10 Si 10
Bloqueo de lectura 10 No 0 No 0
Writers lock readers 10 No 0 No 0
Readers lock writers 10 No 0 No 0
Escalating row level locking 10 No 0 No 0
Bloqueo a Nivel de campo 10 No 0 Si 10
Procesamiento distribuido de transacciones 10 Si 10 Si 10
Detección de Deadlck 10 Si 10 Si 10
Unicode 10 Si 10 Si 10
Acceso a Datos 160 150 160
Indices 10 Si 10 Si 10
Diccionario de datos 10 Si 10 Si 10
Vistas 10 Si 10 Si 10
Vistas actualizables 10 Si 10 Si 10
Secuencias 10 Si 10 Si 10
SubSelect 10 Si 10 Si 10
Triggers 10 Si 10 Si 10
Creación de nuevos tipos de datos 10 No 0 Si 10
Tipos de datos especiales 10 Si 10 Si 10
TableSpace 10 Si 10 Si 10
Cursores 10 Si 10 Si 10
Data Integrity 10 Si 10 Si 10
SavePoint 10 Si 10 Si 10
Uso de alias 10 Si 10 Si 10
Funciones 10 Si 10 Si 10
Procedimientos almacenados 10 Si 10 Si 10
Alta Disponibilidad 30 0 30
Incremental Backup 10 No 0 Si 10
FlashBack Table 10 No 0 Si 10
Recovery de transacciones erróneas 10 No 0 Si 10
Funcionalidad 150 117 150
Replica 10 Si 10 Si 10
Cluster 10 Si 10 Si 10
Particionamiento de Tablas 10 Si 10 Si 10
Automatic Storange Managment 10 Si 10 Si 10
DataWareHouse 10 Si 10 Si 10
Federated Tables 10 Si 10 Si 10
Grid Computing 10 No 0 Si 10
Businness Intelligence 10 Si 10 Si 10
Gateways 10 No 0 Si 10
Xml 10 Si 10 Si 10
Características de Orientación a objetos 10 No 0 Si 10
Precision Math 10 Si 10 Si 10
Herramientas de migración de datos 10 Si 10 Si 10
Identificar sentencias Sql mal programadas 10 Si 7 Si 10
Archive Engine 10 Si 10 Si 10

Anexo 5: Comparativo de tipos de datos

Tipo de Dato Peso Mysql Peso Oracle Peso Descripción


Cadena de Oracle soporta más volumen de
10 Sobre 255 bytes 8 Sobre 2000 bytes 10
longitud fija información
Cadena de
Oracle soporta más volumen de
longitud 10 Sobre 255 bytes 8 Sobre 2000 bytes 10
información
variable
Sobre 4 gigabytes.
Oracle no tiene límite de tamaño
Long Text 10 Limitado a 16 mb con 8 Sobre 4 gigabytes 10
para objetos Long Text.
algunas tablas.
Sobre 4 gigabytes.
Oracle no tiene límite de tamaño
Large Binary 10 Limitado a 16 mb con 8 Sobre 4 gigabytes 10
para objetos binarios grandes.
algunas tablas.
Sobre 2e64 dígitos
Sobre 38 dígitos de
aproximadamente y Oracle soporta enteros más
Integer 10 8 precisión. 10
20 dígitos de grandes
precisión.

-1.8e308 a -2.2e308, Sobre 38 dígitos de Mysql Soporta enteros de punto


Floating Point 10 2.23- 10 precisión. 8 flotante y de precisión doble más
308 a 1.83308' grandes.
Fecha y hora con
Fecha y hora con Oracle asegura que los valores de
precisión de
precisión de segundos fecha sean fechas válidas y puede
segundos de Enero
Date 10 de Enero 8 10 almacenar fechas antes de 1000
1,4712 BCE a
1,1000 a Diciembre CE. Mysql puede almacenar
Diciembre 31, 4712
31, 9999 fechas después de 4712 CE.
CE
Hora con precisión de
Oracle no tiene un tipo de dato
Time 10 segundos. -838:59:59 10 N/A 10
Time
a 838:59:59
Precisión de Oracle soporta milisegundos y
Precisión de segundos
TimeStamp 10 8 milisegundos con local 10 conversiones automáticas de time
sin local time zone.
time zone. zone.
Oracle no tiene un tipo de dato
Year 10 1901 a 2155 10 N/A 0
para almacenar solo años.
Mysql no soporta identificadores
Row Identifier 10 N/A 0 Local y universal 8 de fila que son útiles para
actualizaciones rápidas.
Oracle no soporta este tipo de
Sobre 65535 valores
dato; sin embargo soporta
Enumeration 10 diferentes. 10 N/A 10
constraints de chequeo de
multiples valores
Puede contener de
Set 10 cero a 10 N/A 0 Oracle no tiene este tipo de dato.
64 valores.
Tipos de dato Los desarrolladores
Oracle soporta tipos de datos
definidos 10 N/A 0 pueden definir sus 10
complejos
por el usuario propios tipos de datos
Bibliografía
• http://opensource.org/docs/definition.php
• http://mx.grulic.org
• http://wikipedia.org
• http://www.tpc.org
• http://www.mysql.com
• http://www.oracle.com
• Mysql Avanzado, Jeremy D. Zawodny y Derek J. Balling. Editorial O’reilly.
• Bases de Datos desde Chen hasta Codd con Oracle, Irene Ruiz, Miguel Angel
Gómez, Enrique López Espinosa, Gonzalo Cerruela García, Editorial
Alfaomega.
• Mysql para Windows y Linux, César Pérez, Editorial Alfaomega.
• La biblia de Mysql, Ian Gilfillan, Editorial Anaya.
• Fundamentos de Bases de Datos, Cuarta Edición, Abraham Silberschatz,
Henry F. Korth, S. Sudarshan, Editorial McGraw Hill.