Analisis Comparativo MYSQL
Analisis Comparativo MYSQL
Analisis Comparativo MYSQL
Resumen
Esta monografía realiza un estudio comparativo de base de datos libres como Mysql
versus bases de datos propietarias como Oracle, la comparación se da en la versión
5.0.18 de Mysql y la versión 10g de Oracle.
Con este estudio los gerentes y desarrolladores pueden decidir según su proyecto que
motor de base de datos usar de acuerdo a sus necesidades, presupuesto o afinidad.
Este estudio se realiza entre las dos bases de datos descritas, pero puede ser utilizado
para comparar otras bases de datos existentes.
2
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
Indice
3
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
4
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
5
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
6
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
Indice de Gráficos
7
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Indice de tablas
11
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Anexos
12
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
1
Para más información: http://es.wikipedia.org/wiki/Sistema_de_archivos
2
Network file system: es un sistema de archivos distribuido para un entorno de red
de área local. Posibilita que distintos sistemas conectados a una misma red accedan a
archivos remotos como si se tratara de locales. Originalmente desarrollado por Sun
Microsystems.
3
Redundant Array Of Independent/Inexpensive Disks: este término hace
referencia a un conjunto de discos redundantes independientes, es utilizado para
mejorar el rendimiento, la tolerancia fallos y errores en los discos, así como también
mejora la integridad de los datos. http://es.wikipedia.org/wiki/RAID
4
Relational Data Base Management System: Proporciona un ambiente adecuado
para gestionar una base de datos.
5
Atomicidad, Coherencia, aislamiento y Durabilidad.
6
Structured Query Language: Es un lenguaje de acceso a las bases de datos,
permite especificar todas las operaciones sobre la base de datos como por ejemplo:
Inserción, Borrado, Actualización. Utiliza características de álgebra y cálculo
relacional permitiendo de esta forma realizar consultas a la base de datos de forma
sencilla. Más información en: http://es.wikipedia.org/wiki/SQL
13
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Debido a que las RDBMS tienen que soportar todas estas propiedades, nunca serán
tan rápidas como trabajar directamente sobre archivos, aunque internamente
trabajen sobre ellos. La mayoría de desarrolladores prefieren hoy en día sacrificar la
velocidad por las funcionalidades.
Según Henry F. Korth autor del libro “Fundamentos de Bases de Datos” se define
una base de datos como una serie de datos organizados y relacionados entre sí, y un
conjunto de programas que permitan a los usuarios acceder y modificar esos datos.
Las bases de datos proporcionan la infraestructura requerida para los sistemas de
apoyo a la toma de decisiones y para los sistemas de información estratégicos, ya que
estos sistemas explotan la información contenida en las bases de datos de la
organización para apoyar el proceso de toma de decisiones o para lograr ventajas
competitivas. Por este motivo es importante conocer la forma en que están
estructuradas las bases de datos y su manejo.
Uno de los propósitos principales de un sistema de base de datos es proporcionar a
los usuarios una visión abstracta de los datos. Es decir, el sistema esconde ciertos
detalles de cómo se almacenan y mantienen los datos.
7
Una transacción es un conjunto de procesos que se ejecutan uno después del otro,
este conjunto de procesos que deben ejecutarse una sola vez en forma completa, si
algún subproceso falla, lo realizado anteriormente debe reversarse para que los datos
no se alteren, a este comportamiento se lo denomina Todo o nada.
14
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
los cuales se almacenan en archivos que son diseñados para una determinada
aplicación.
Este planteamiento produce además de una ocupación inútil de memoria, un aumento
de los tiempos de procesos, al repetirse los mismos controles y operaciones en los
distintos archivos. Pero mas graves todavía son las inconsistencias que a menudo se
presentan en estos sistemas, debido a que la actualización de los mismos datos,
cuando estos se encuentran es más de un archivo, no se puede realizar de forma
simultánea en todos ellos.
Con el fin de resolver estos problemas y de lograr una gestión mas racional del
conjunto de datos, surge un nuevo enfoque que se apoya sobre una “base de datos”
en la cual los datos son recogidos y almacenados, al menos lógicamente, una sola
vez, con independencia de los tratamientos.
Además al momento de tomar una decisión hay que tomar en cuenta posibles
inconvenientes que es necesario valorar antes de tomar una decisión relativa a un
cambio en la orientación de sistema de información.
• Instalación costosa.
• Personal especializado.
15
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
1.4.1 Hardware.
1.4.2 Software.
1.4.3 Usuarios.
Según Korth estas son las principales ventajas del uso de las bases de datos:
16
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En lo que tiene que ver con el acceso de usuarios a los datos y operaciones sobre los
datos.
Es utilizado para describir todas las estructuras de información y los programas que
se usan para construir, actualizar e introducir la información que contiene una base
de datos. El DDL permite al administrador de la base especificar los elementos de
datos que la integran , su estructura y las relaciones que existen entre ellos, las reglas
de integridad, los controles a efectuar antes de autorizar el acceso a la base.
Por ejemplo la siguiente instrucción de lenguaje sql define la tabla cuenta:
Create table cuenta
(
numero_cuenta char(10),
saldo integer
)
17
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Ejm:
Select nombre, dirección
from cliente
where id_cliente = 2
Para que el DBA pueda cumplir con todas estas funciones deberá interactuar con
todo el personal de la organización como se explica en la figura:
Fuente :
Análisis y
diseño
detallado de
aplicaciones
informáticas
de gestión
Autor: Diego Burbano
Estas son bases de datos que, como su nombre indica, almacenan su información en
una estructura jerárquica. En este modelo los datos se organizan en una forma similar
a un árbol (visto al revés), en donde un nodo padre de información puede tener varios
hijos. El nodo que no tiene padres se le conoce como raíz, y a los nodos que no
tienen hijos se les conoce como hojas.
Una de las principales limitaciones de este modelo, es su incapacidad de representar
eficientemente la redundancia de datos.
8
Más información en : http://es.wikipedia.org/wiki/Edgar_Frank_Codd
9
Más información en : http://es.wikipedia.org/wiki/IBM
20
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
una tabla), que representarían las tuplas, y campos (las columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen
relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene
la considerable ventaja de que es más fácil de entender y de utilizar para un usuario
casual de la base de datos. La información puede ser recuperada o almacenada por
medio de "consultas" que ofrecen una amplia flexibilidad y poder para administrar la
información.
El lenguaje más común para construir las consultas a bases de datos relacionales es
SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar
implementado por los principales motores o sistemas de gestión de bases de datos
relacionales.
Las bases de datos relacionales pasan por un proceso al que se le conoce como
Normalización de una base de datos10.
En el modelo relacional se usan un grupo de tablas para representar los datos y las
relaciones entre ellos. Cada tabla esta compuesta por varias columnas, y cada
columna tiene un nombre único.
id_cliente numero_cuenta
1 12005190253
1 12556456054
3 12489794549
4 12454894984
10
El proceso de normalización consiste en aplicar una serie de reglas a las relaciones
obtenidas luego de haber pasado del modelo Entidad Relación al modelo relacional.
http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_una_base_de_datos
21
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Este modelo está basado en una percepción del mundo real, que consta de una
colección de objetos básicos, llamados entidades, y de relaciones entre estos objetos.
Una entidad es todo aquello que exhibe autonomía, diferenciación y existencia en el
mundo real que es distinguible de otros objetos. Por ejemplo cada persona es una
entidad y las cuentas bancarias pueden ser consideradas entidades.
Las entidades se describen en la base de datos mediante atributos. Por ejemplo los
atributos nombre_cliente, dirección_cliente pueden describir una entidad cliente.
El conjunto de todas las entidades del mismo tipo, y el conjunto de todas las
relaciones del mismo tipo, se denominan respectivamente conjunto de entidades y
conjunto de relaciones.
11
Entidad Relación.- es un diagrama que consiste en objetos relacionados entre sí,
que permiten identificar las entidades, atributos y relaciones que van a formar parte
de la base de datos.
22
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Además combina las mejores cualidades de los archivos planos, las bases jerárquicas
y relacionales. La BDOO representan el siguiente paso en la evolución de las bases
de datos para soportar análisis, diseño y programación orientada a objetos.
Las BDOO ofrecen un mejor rendimiento de la máquina que las bases de datos
relacionales, para aplicaciones ó clases con estructuras complejas de datos. Sin
embargo, las BDOO coexistirán con las bases de datos relacionales como una forma
de estructura de datos dentro de una BDOO.
Una base de datos orientada ha objetos es una base de datos que incorpora todos los
conceptos importantes de la programación orientada ha objetos:
• Encapsulación.– Ocultar datos del resto de los datos, impidiendo así accesos
23
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
incorrectos a conflictos.
• Herencia.- Reusabilidad del código.
• Polimorfismo- Sobrecarga de operadores o de métodos.
1.9.1.1 Objeto .-
Es cualquier cosa real ó abstracta acerca de la cual almacenamos datos y los métodos
que controlan dichos datos. Por ejm. En una empresa EMPLEADO se aplica a los
objetos que son personas empleadas por alguna organización alguna INSTANCIA
podría ser Juan Pérez, Javier Proaño.
1.9.1.3 Encapsulamiento.-
Invoca una operación específica, con uno o más objetos como parámetros. Es decir,
es para que se lleve acabo la operación indicada y que se produzca el resultado. En
consecuencia las implantaciones se refieren a los objetos como solicitudes.
1.9.1.5 Clase.-
1.9.1.6 Herencia.-
Una clase implanta el tipo de objeto. Una subclase hereda propiedades de su clase
padre, una subclase puede heredar la estructura y los métodos o algunos de los
métodos.
En las BDOO los datos están encapsulados y se dice que estos son activos más que
pasivos; debido a que por ejemplo: La clase mayor detecta si tiene un hijo (objeto)
más o uno menos, es por esto que se dice que están activos ya que cuentan los hijos u
objetos que tiene.
24
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
1.9.2.1 Abstracción.-
1.9.2.2 Modularidad.-
1.9.2.3 Jerarquía.-
1.9.2.4 Tipos.-
1.9.2.5 Genericidad.-
25
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
objetos ‘bien educados’ que se piden de manera cortés, concederse mutuamente sus
deseos.” Dan Ingalls de Smalltalk.
A finales de los 80’s aparecieron las primeras BDOO, es una base de datos
inteligente. Soporta el paradigma orientado a objetos almacenando datos y métodos,
y no sólo datos. Está diseñada para ser eficaz, desde el punto de vista físico, para
almacenar objetos complejos. Evita el acceso a los datos; esto es mediante los
métodos almacenados en ella. Es más segura ya que no permite tener acceso a los
datos (objetos); esto debido a que para poder entrar se tiene que hacer por los
métodos que haya utilizado el programador.
Fuente: http://www.elrinconcito.com/articulos/BaseDatos/BasesDatos.htm
Autor : Diego Burbano
Respecto a las relacionales, todas (Oracle, Informix, etc.) están añadiendo en mayor
o menor grado algunos aspectos de la orientación a objetos. ANSI(Instituto Nacional
Estadounidense de Estándar), por su parte, está definiendo un SQL-3 que incorpora
muchos aspectos de la orientación a objetos. El futuro del SQL-3 es sin embargo
incierto, ya que ODMG ha ofrecido a ANSI su estándar para que sirva de base para
un nuevo SQL, con lo que solo habría un único estándar de base de datos.
La segunda ventaja de una BDOO, es que manipula datos complejos en forma rápida
y ágilmente. La estructura de la base de datos está dada por referencias (o
apuntadores lógicos) entre objetos.
27
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
La implantación de una nueva tecnología requiere que los usuarios iniciales acepten
cierto riesgo. Aquellos que esperan resultados a corto plazo y con un costo reducido
quedarán desilusionados. Sin embargo, para aquellos usuarios que planean a un
futuro intermedio con una visión tecnológica avanzada, el uso de tecnología
orientada a objetos, paulatinamente compensará todos los riesgos.
1.9.3.8 Rendimiento
Las BDOO permiten que los objetos hagan referencia directamente a otro mediante
apuntadores suaves. Esto hace que las BDOO pasen más rápido del objeto A al
objeto B que las BDR, las cuales deben utilizar comandos JOIN para lograr esto.
Incluso el JOIN optimizado es más lento que un recorrido de los objetos. Así,
incluso sin alguna afinación especial, una BDOO es en general más rápida en esta
mecánica de caza-apuntadores.
Las BDOO hacen que el agrupamiento sea más eficiente. La mayoría de los sistemas
de bases de datos permiten que el operador coloque cerca las estructuras relacionadas
entre sí, en el espacio de almacenamiento en disco. Esto reduce en forma radical el
tiempo de recuperación de los datos relacionados, puesto que todos los datos se leen
con una lectura de disco en vez de varias. Sin embargo, en una BDR, los objetos de
la implantación se traducen en representaciones tabulares que generalmente se
dispersan en varias tablas. Así, en una BDR, estos renglones relacionados deben
quedar agrupados, de modo que todo el objeto se pueda recuperar mediante una
única lectura del disco. Esto es automático en una BDOO. Además, el agrupamiento
de los datos relacionados, como todas las subpartes de un ensamble, puede afectar
radicalmente el rendimiento general de una aplicación. Esto es relativamente directo
en una BDOO, puesto que representa el primer nivel de agrupamiento. Por el
contrario, el agrupamiento físico es imposible en una BDR, puesto que esto requiere
un segundo nivel de agrupamiento: un nivel para agrupar las hileras que representan
a los objetos individuales y un segundo para los grupos de hileras que representan a
los objetos relacionados.
12
Para más información : http://www.omg.org
28
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Por ejemplo: para la extensión posible este debe ser consistente en los actuales cortes
de lenguajes de programación OO.
Una base de datos distribuida (BDD) es la unión de las bases de datos con Redes
distribuidas geográficamente.
La base de datos está almacenada en varias computadoras conectadas en red, (ya sea
en el mismo lugar físicamente o distribuidas a lo largo de la red) lo que permite al
acceso de datos desde diferentes máquinas. Está manejada por el Sistema de
Administración de Datos Distribuida SABDD o Sistema de Gestión de Base de datos
distribuida. Son la evolución de los Cliente-Sevidor.
La razón principal detrás de las BDD son los organismos descentralizados. Esto les
da la capacidad de unir las bases de datos de cada localidad y acceder así a la
información, sin tener todo centralizado en un solo punto. Ejemplo: bancos, cadenas
de hoteles, campus de distintas universidades, sucursales de tiendas departamentales,
etc.
Los principales problemas que se generan por el uso de la tecnología de bases de
datos distribuidas son en lo referente a duplicidad de datos y a su integridad al
momento de realizar actualizaciones a los mismos. Además, el control de la
información puede constituir una desventaja, debido a que se encuentra diseminada
en diferentes localidades geográficas.
29
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
USUARIO
USUARIO
APLICACION
APLICACION
30
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
13
ODBC son las siglas de Open DataBase Connectivity, un estándar de acceso a
posible el acceder a cualquier dato de cualquier aplicación, sin importar qué Sistema
Gestor de Bases de Datos (DBMS por sus siglas en Ingles) almacene los datos,
ODBC logra esto al insertar una capa intermedia llamada manejador de Bases de
esto funcione tanto la aplicación como el DBMS deben ser compatibles con ODBC,
esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS
desarrollada por Sun Microsystems, de tal manera que los programas creados en ella
de la base de datos a la cual se accede utilizando el dialecto SQL del modelo de base
31
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
La lógica del negocio de la aplicación, que establece las acciones a realizar bajo
determinadas condiciones, se incorpora en el servidor de aplicaciones, en lugar de ser
distribuida a múltiples clientes.
1.12.1 Legibilidad
El diseño de una base de datos ha de estar redactado con la suficiente claridad para
que pueda ser entendido rápidamente. El lenguaje utilizado debe ser lo
suficientemente claro, conciso y detallado para que explique con total claridad el
diseño del modelo, sus objetivos, sus restricciones, en general todo aquello que
afecte al sistema de forma directa o indirecta.
1.12.2 Fiabilidad
1.12.3 Portabilidad
1.12.4 Modificalidad
Ningún sistema informático es estático, las necesidades de los usuarios varían con el
tiempo y por lo tanto las bases de datos se deben adaptar a las nuevas necesidades,
por lo que se precisa que un buen diseño facilite el mantenimiento, esto es, las
modificaciones y actualizaciones necesarias para adaptarlo a una nueva situación.
1.12.5 Eficiencia
32
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Los lenguajes de consulta (SQL) permitirán el uso del lenguaje natural para solicitar
información de la Base de Datos, haciendo más rápido y fácil su manejo.
El uso de las bases de datos distribuidas se incrementará de manera considerable en
la medida en que la tecnología de comunicación de datos brinde más facilidades para
ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de
Información para la Toma de Decisiones
1.14 Arquitecturas
33
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
34
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Cada vez que un usuario se conecta a una base de datos Oracle, esta carga un
ejecutable con una nueva instancia de la base de datos, las consultas de usuario son
transmitidas a este ejecutable, el cual trabaja en conjunto con otros ejecutables en el
servidor que retornan conjuntos de datos, manejan los bloqueos y ejecutan todas las
funciones necesarias para el acceso de datos.
Los motores de base de datos multihilos abordan el problema del acceso multiusuario
de una manera distinta, pero con principios similares. En lugar de confiar en que el
sistema operativo comparta los recursos de procesamiento, el motor toma la
responsabilidad por sí mismo, lo que en la práctica se asocia a una mejor portabilidad
del sistema. Motores de base de datos comerciales como Sybase Adaptive Server o
Microsoft Sql Server son ejemplos de este enfoque.
Las ventajas de este tipo de motores radican en una mayor eficiencia en el uso de
recursos para determinadas plataformas. Mientas un sistema multiprocesos consume
entre 500 Kb y 1 Mb por conexión, un motor multihilos consume entre 50 y 100 Kb
de RAM diferencia que puede ser utilizada en caché de datos y procedimientos. Otra
15
Time Slice: Fracción de tiempo. Intervalo fijo de tiempo que se asigna a cada
35
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
pueden variar tanto como sus funciones pudiendo abarcar desde PC hasta grandes
sistemas. Se denomina con el término de emplazamientos o nodos a todos aquellos
computadores que pertenecen a un sistema distribuido.
Las principales diferencias entre las bases de datos paralelas y las bases de datos
distribuidas son las siguientes: las bases de datos distribuidas se encuentran
normalmente en varios lugares geográficos distintos, se administran de forma
separada y poseen una interconexión más lenta. Otra diferencia es que en un sistema
distribuido se dan dos tipos de transacciones, las locales y las globales. Una
transacción local es aquella que accede a los datos del único emplazamiento en el
cual se inició la transacción. Por otra parte una transacción global es aquella que o
bien accede a los datos situados en un emplazamiento diferente de aquel en el que se
inició la transacción, o bien accede a datos de varios emplazamientos distintos.
Un sistema de base de datos distribuido se conoce por:
• Los distintos emplazamientos están informados de los demás. Aunque
algunas relaciones pueden estar almacenadas sólo en algunos
emplazamientos, éstos comparten un esquema global común.
• Cada emplazamiento proporciona un entorno para la ejecución de
transacciones tanto locales como globales.
Richard Mathew Stallman16 fue el precursor del movimiento de software libre (FSF),
a la edad de 18 años ingresó en el laboratorio de inteligencia artificial del MIT, el
estaba acostumbrado a trabajar en un entorno de software libre, donde todos
compartían todo. El momento en que su comunidad empezó a desaparecer ya que
una compañía contrató a casi todos los hackers de laboratorio de IA, además el
laboratorio en el que trabajaba adquirió un PDP-10, sus administradores decidieron
utilizar el sistema no libre en lugar del ITS que había sido diseñado en el MIT y que
era libre.
Al desaparecer su comunidad, Stallman se vio obligado a tomar una elección, unirse
al mundo de software propietario, firmar los acuerdos de no revelar, y prometer que
no iría en ayuda de sus amigo hacker. El podía haber hecho dinero de esa forma, pero
sabía que al final de su carrera, al regresar a ver atrás, sentiría que utilizó su vida para
empeorar al mundo. La otra opción era dejar el campo de la computación.
Lo primero que hizo fue un sistema operativo. Le pudo el nombre GNU, este nombre
se eligió siguiendo una tradición hacker, como acrónimo recursivo para GNU´s not
UNIX.
Desde ese momento Stallman no paró, realizo muchos cambios programando
software libre para todos con la posibilidad de modificar sus fuentes a su
16
Más información en http://es.wikipedia.org/wiki/Richard_Stallman ;
http://www.z-labs.com.ar/docs/tif/3-stallman.html
37
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
conveniencia y sin estar atados a una empresa que es dueña de los códigos fuente.
El Software de Open Source exige la distribución libre y gratuita acompañada del
código fuente. Código abierto (open source en inglés) es el término por el que se le
conoce a software distribuido y desarrollado en una determinada forma. Este término
empezó a utilizarse en 1998 por usuarios de la comunidad del software libre, tratando
de usarlo como reemplazo al ambiguo nombre original del software libre (free
software).
En inglés, “free software” puede significar diferentes cosas. Por un lado, permite
pensar en “software por el que no hay que pagar”, y se adapta al término de forma
igualmente válida que el significado que se pretende (software que posee ciertas
libertades).
Lamentablemente, el término no resultó apropiado como reemplazo para el ya
tradicional free software, y en la actualidad es utilizado para definir un movimiento
nuevo de software, diferente al movimiento del software libre, aunque no
completamente incompatible con este, de modo que es posible (como de hecho
ocurre) que ambos movimientos trabajen juntos en el desarrollo práctico de
proyectos.
El significado obvio del término “código abierto” es “se puede mirar el código
fuente”, lo cual es un criterio más débil y flexible que el del software libre; un
programa de código abierto puede ser software libre, pero también puede serlo un
programa semi-libre o incluso uno completamente propietario.
El software de código abierto (OSS por sus siglas en inglés) es software para el que
su código fuente está disponible públicamente, aunque los términos de
licenciamiento específicos varían respecto a lo que se puede hacer con ese código
fuente.
38
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En una compañía típica de software de aplicación, cerca del 50-70% del costo final
total está relacionado con el costo de pre-venta: Representantes de Venta, gastos de
Marketing e Ingenieros de Pre-venta realizando demos y presentaciones.
Todo apunta que las tecnologías Open Source cambiarán radicalmente la industria
del software en 2 o 3 años. Las bases de datos son parte de esta transformación.
Poco a poco, pero sin descanso, el software OpenSource está adquiriendo una
robustez y una potencia suficiente como para plantar cara al software comercial. La
liberalización de Interbase y Mysql es sólo el principio. ¿Quién usa bases de datos
OpenSource? Pues desarrolladores de Web y software, y pequeñas y medianas
empresas. La mayoría de usuarios también lo integran con otras aplicaciones
OpenSource. Es decir, normalmente, se tiende a radicalizar: o todo OpenSource, o
todo comercial. Aunque el panorama irá cambiando.
17
La GNU General Public License (Licencia Pública General) es una licencia
creada por la Free Software Foundation y orientada principalmente a los términos de
distribución, modificación y uso de software. Su propósito es declarar que el
software cubierto por esta licencia es software Libre. Más información en:
http://www.es.gnu.org/licencias/gples.html
39
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Varias de las operaciones que se realizan sobre la base de datos forman a menudo
una única unidad lógica de trabajo. Un ejemplo de esto es la acreditación de cuentas
en un banco, en la que el valor acreditado se resta en la cuenta (A) y se debe
actualizar tanto el saldo contable como el disponible, a parte de este proceso se debe
insertar un registro en la tabla de auditoria.
Es esencial que se ejecuten todos los procesos o ninguno. Este requisito de todo o
nada se denomina atomicidad. Además es fundamental que el valor restado a los
saldos sea preservado, este requisito se conoce como consistencia. Finalmente tras la
ejecución correcta de la transacción, los nuevos valores de los saldos debe persistir, a
pesar de la posible falla del sistema. Este requerimiento del sistema se denomina
durabilidad. También es importante y necesario si ocurre algún error durante la
40
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Una transacción es una colección de operaciones que se lleva a cabo como una
única función lógica en una aplicación de base de datos. Cada transacción es una
unidad de atomicidad y consistencia. Así, se requiere que las transacciones no violen
ninguna restricción de consistencia de la base de datos, Es decir, si la base de datos
era consistente cuando la transacción comenzó, la base de datos debe ser consistente
cuando la transacción termine con éxito. Sin embargo, durante la ejecución de una
transacción puede ser necesario permitir inconsistencias temporalmente, ya que una
de las operaciones que forma parte de la transacción se debe realizar una antes de la
otra. Esta inconsistencia temporal, aunque necesaria, puede conducir a dificultades si
ocurre un fallo.
18
Esto ocurre cuando hay algún tipo de fallo en una transacción utilizando Bases de
Datos, todos los datos que no hayan sido guardados (dar commit), regresan a su
41
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Para conseguir anular y recuperar las transacciones, el método más usado consiste en
utilizar un archivo de log en el que se va guardando toda la información necesaria
para deshacer (en caso de fracasar) o rehacer (en caso de recuperar) las
transacciones. Este log consta de los siguientes datos:
• Identificador de la transacción
• Hora de modificación
• Identificador del registro afectado
• Tipo de acción
• Valor anterior del registro
• Nuevo valor del registro
• Información adicional
Otra alternativa es manejar 2 archivos de log, uno con la imagen anterior a las
modificaciones y otro con la imagen posterior a las modificaciones. El archivo log es
usualmente una pila que una vez llena va eliminado registros según van entrando
42
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
nuevos.
Un concepto relacionado con los archivos de log es el CHECKPOINT, que permite
manejar en forma eficiente el contenido de los archivos log, ya que permiten no tener
que recorrer todo el archivo de log, ante fallas.
Los puntos marcados como checkpoint, permiten la recuperación de la base de datos
en caliente, es decir, después de la caída del sistema se obtiene la dirección del
registro de recuperación más reciente y se recorre el archivo de log desde el punto
marcado como checkpoint.
Por otro lado, las bases de datos crean unidades de ejecución llamadas transacciones,
que pueden definirse como una secuencia de operaciones que se ejecutan en forma
atómica, es decir, se realizan todas las operaciones que comprende la transacción o
no se realiza ninguna.
En las bases de datos existentes en la actualidad se sigue una norma SQL que soporta
un conjunto de dominios predefinidos, que incluye los siguientes:
• Char. (n) es una cadena de caracteres de longitud fija, con una longitud n
especificada por el usuario. También se puede utilizar la palabra completa
character.
• Varchar. (n) es una cadena de caracteres de longitud variable, con una
43
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Son las que transgreden las restricciones que ha definido el administrador al diseñar
la base de datos, tales como:
• Restricciones sobre dominios por ejemplo, el dominio edad esté comprendido
entre 18 y 65 años.
• Restricciones sobre los atributos, por ejemplo, la edad de los empleados
ingenieros debe ser mayor de 21 años.
Estas restricciones pueden ser estáticas, como las anteriores o dinámicas por ejemplo,
el sueldo de un empleado no puede disminuir.
Otra forma de clasificar las restricciones es en:
• simples: si se aplican a una ocurrencia de un atributo con independencia de
los demás, por ejemplo, el sueldo de un empleado tiene que ser mayor que
60000.
• compuestas: si implican más de una ocurrencia, como es el caso de las
restricciones de comparación, por ejemplo, el sueldo de un empleado debe ser
menor que el de su jefe. O bien , las llamadas de globalidad, por ejemplo, el
sueldo medio de los empleados de un determinado departamento debe ser
menor de 250000.
Los SGBD tienen que ofrecer en su lenguaje de definición, facilidades que permitan
describir las restricciones con una sintaxis adecuada.
Por ejemplo, CREATE DOMAIN, CREATE ASSERTION, CREATE INTEGRITY
RULE
En general, una regla de integridad está compuesta por tres componentes:
• La restricción propiamente tal, que establece la condición que deben cumplir
los datos.
• La respuesta a la trasgresión, que especifica las acciones a tomar, como
rechazar las operaciones, informar al usuario, corregir el error con acciones
complementarias, etc.
• Condición de disparo, que especifica cuándo debe desencadenarse la acción
especificada en la restricción de integridad: antes, después o durante cierto
evento.
Los triggers, son casos especiales de reglas de integridad. Un trigger es un
procedimiento que se activa o dispara al ocurrir un evento, que tienen muchas
utilidades.
Las reglas de integridad deben almacenarse en el diccionario de datos, como parte
integrantes de los datos(control centralizado de la semántica), de modo que no han de
incluirse en los programas. Esto trae algunas ventajas:
• Las reglas de integridad son más sencillas de entender y de cambiar,
facilitando su mantenimiento.
• Se detectan mejor las inconsistencias.
• Se protege mejor la integridad, ya que ningún usuario podrá escribir un
45
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En una base de datos es necesario asegurar que un valor x se encuentre en las tablas
que determinan una relación, a esta condición se le denomina integridad referencial.
En el mundo real existen ciertas restricciones que deben cumplir los elementos en él
existentes; por ejemplo, una persona sólo puede tener un número de identificación y
una única dirección oficial. Cuando se diseña una base de datos se debe reflejar
fielmente el universo del discurso que estamos tratando, lo que es lo mismo, reflejar
las restricciones existentes en el mundo real.
2.4.3 Disparadores
Los disparadores son mecanismos útiles para alertar a los usuarios o para realizar de
manera automática ciertas tareas cuando de cumplen determinadas condiciones.
Por ejemplo, en el caso de un almacén que desee mantener un inventario mínimo por
cada producto; cuando el nivel de inventario de un producto cae por debajo del
mínimo, se debe solicitar un pedido automáticamente. Para la implementación de
este disparador se debe tomar en cuenta cuando se modifique el nivel de inventario
de un producto, el disparador debería comparar el nivel con el mínimo y si el nivel es
inferior al mínimo se añadiría un nuevo pedido.
Los datos almacenados en la base de datos deben estar protegidos contra accesos no
autorizados, de la destrucción o alteración malintencionada además de la
introducción de inconsistencias que evitan las restricciones de integridad.
Para lograr tal nivel de seguridad hay que adoptar medidas en varios niveles:
• Red. Este es un punto muy importante porque hoy en día casi todos los
sistemas de base de datos permiten el acceso remoto desde terminales, la
seguridad a nivel de red juega un papel muy importante.
• Físico. Los sitios que contienen los sistemas informáticos como el lugar
donde están los servidores por ejemplo, deben tener seguridades contra
intrusos.
• Humano. Los usuarios administradores de la base de datos deben ser
cuidadosamente elegidos para reducir la posibilidad de que alguno de ellos dé
acceso a personas no autorizadas.
Hay que tomar en cuenta que la debilidad de los dos últimos puntos puede burlar las
medidas de seguridad tomadas para los niveles superiores.
2.5.2 Autorizaciones
Los usuarios pueden recibir todos los tipos de autorización, ninguno de ellos o una
combinación determinada de los mismos.
Además de estas autorizaciones, los usuarios pueden recibir autorización para
modificar el esquema de la base de datos:
Muchas aplicaciones de bases de datos seguras requieren que se mantenga una traza
de auditoria. Una traza de auditoria es un registro histórico de todos los cambios
(inserciones, borrados o actualizaciones) de la base de datos, junto con información
con el usuario que realizo el cambio y en que momento.
Un índice sirve para encontrar datos específicos en la base de datos se forma rápida y
eficiente. Muchas consultas solamente hacen referencia a una pequeña porción de los
registros de una tabla. Para reducir el gasto adicional en la búsqueda de estos
registros se puede construir índices.
50
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Es una variable asociada a cada elemento de datos que describe el estado de dicho
elemento respecto a las posibles operaciones (recuperación o actualización) que se
pueden realizar sobre ellos en cada momento.
Las transacciones pueden llevar a cabo bloqueos, impidiendo a otros usuarios la
recuperación o actualización de los elementos bloqueados, para evitar inconsistencias
en el acceso concurrente.
Los SGBD tienen bloqueos (por registro, por tabla) para asegurar la consistencia.
Los usuarios también pueden bloquear explícitamente los objetos, impidiendo el
acceso por parte de otros usuarios.
Las marcas de tiempo son identificadores únicos que se asignan a las transacciones,
que se consideran como el tiempo de inicio de una transacción. Con esta técnica no
existen bloqueos. Ordena las transacciones. Se retrasan.
Optimizador
Estadísticas de
los datos
Datos Datos
53
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Los diferentes planes de evaluación para una consulta dada pueden tener costes
distintos. No se puede esperar que los usuarios escriban las consultas de manera que
sugieran el plan de evaluación más eficiente. En su lugar, es responsabilidad del
sistema construir un plan de evaluación de la consulta que minimice el costo de la
evaluación de la consulta.
La secuencia de pasos descrita para procesar una consulta es representativo, no todas
las bases de datos lo siguen exactamente. Por ejemplo, en lugar de utilizar la
representación del álgebra relacional, varias bases de datos usan una representación
anotada del árbol de análisis basada en la estructura de la consulta SQL. Sin
embargo, los conceptos que se describen, forman la base del procesamiento de
consultas en las bases de datos.
3.1 Mysql
3.1.1 Introducción
54
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Lo que en un tiempo se consideró como un sencillo juguete para uso en sitios Web,
se ha convertido en la actualidad en una solución viable y de misión crítica para la
administración de datos.
Mysql incluye todos los elementos necesarios para instalar el programa, preparar
diferentes niveles de acceso de usuario, administrar el sistema y proteger los datos.
Puede desarrollar sus propias aplicaciones de bases de datos en la mayor parte de
lenguajes de programación utilizados en la actualidad y ejecutarlos en casi todos los
sistemas operativos, incluyendo algunos de los que probablemente no ha oído hablar
nunca. Mysql utiliza el lenguaje de consulta estructurado (SQL).
Antes Mysql se consideraba como la opción ideal de sitios web; sin embargo, ahora
incorpora muchas de las funciones necesarias para otros entornos y conserva su gran
velocidad. Mysql es una base de datos robusta que se la puede comparar con una
base de datos comercial, es incluso más veloz en el procesamiento de las
transacciones y dispone de un sistema de permisos elegante y potente, y ahora,
además, incluye un motor de almacenamiento InnoDb19[17] compatible con
ACID20[18], además dispone de store procedures, triggers, vistas.
Mysql es rápido, y una solución accesible para administrar correctamente los datos
de una empresa. MysqlAB es la compañía responsable del desarrollo de Mysql,
dispone de un sistema de asistencia eficiente y a un precio razonable, y, como ocurre
con la mayor parte de las comunidades de código abierto, se puede encontrar una
gran cantidad de ayuda en la Web.
Son muchas las razones para escoger a Mysql como una solución de misión crítica
para la administración de datos:
19
INNODB es un tipo de tabla de Mysql que permite trabajar con transacciones, y
55
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Mysql utiliza varios tipos de tablas. El tipo de tabla predeterminado es MyISAM que
está optimizado para la velocidad del comando SELECT.
La mayor parte de los sitios Web utilizan esta tabla, ya que estos sitios suelen utilizar
la instrucción SELECT mucho más que las instrucciones INSERT o UPDATE.
Las columnas numéricas están diseñadas para almacenar todo tipo de datos
numéricos, como precios, edades y cantidades. Hay dos tipos principales de tipos
numéricos: tipos enteros y de punto flotante.
21
SQL ANSI es un estándar para el manejo del lenguaje estructurado de consultas.
56
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
FLOAT
DOUBLE
DEC
NUMERIC
Los tipos de columna de cadena se utiliza para almacenar todo tipo de datos
compuestos de caracteres como nombres, direcciones.
Los tipos de columna de fecha y hora están diseñados para trabajar con las
necesidades especiales que exigen los datos de tipo temporal y se puede utilizar para
almacenar datos tales como la hora del día o fechas de nacimiento.
Existen dos tipos de tablas de transacción segura (Innodb y BDB). El resto (ISAM;
MyISAM, MERGE y HEAP) no son de transacción segura. La elección del tipo de
tabla adecuado puede afectar enormemente al rendimiento.
57
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Las tablas de tipo de Método de acceso secuencial indexado (ISAM) era el estándar
antiguo de Mysql. Estas fueron sustituidas por las tablas MyiSAM en la versión 3.23.
Por lo tanto, es probable que solo se tope con este tipo de tablas si está trabando con
bases de datos antiguas. La principal diferencia entre las dos, es el índice de las
tablas MyISAM es mucho más pequeño que el de las tablas ISAM, de manera que un
SELECT con un índice sobre una tabla MyISAM utilizará mucho menos recursos del
sistema.
Las tablas estáticas tienen longitud fija. Cada registro tiene asignado exactamente 10
Bytes.
Este tipo de tablas se caracterizan por:
• Ser muy rápidas (ya que Mysql sabe que el segundo nombre comienza
siempre en el carácter número once)
• Resultan sencillas de almacenar en caché.
• Resultan sencillas para reconstruir tras un fallo.
• Requieren más espacio de disco
Las columnas de las tablas dinámicas tienen diferentes tamaños. Auque este tipo de
dato ahorra espacio, resulta sin embargo más complejo.
Las tablas de tipo dinámico presentan las siguientes características:
Las tablas comprimidas son tablas de solo lectura que utilizan mucho menos espacio
en disco.
Son ideales para su uso con datos comprimidos que no cambien (que solo se pueden
leer y no escribir) y donde no exista mucho espacio disponible.
Las tablas comprimidas presentan las siguientes características:
• Las tablas son mucho más pequeñas.
• Como cada registro se comprime de forma separada, la carga de acceso es
reducida.
• Cada columna se podría comprimir de forma diferente, utilizando distintos
algoritmos de compresión.
58
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Las tablas Heap son el tipo de tabla más rápido porque se almacena en memoria y
utilizan un índice asignado. La contrapartida es que como se almacenan en memoria,
en el caso de una falla del sistema, los datos se pierden.
Las tablas Innodb son tablas de transacción segura (lo que significa que dispone de
las funciones COMMIT y ROLLBACK). En una tabla MyISAM, la tabla entera se
bloquea al realizar funciones de inserción. Durante esa fracción de segundo, no se
puede ejecutar ninguna otra instrucción sobre la tabla. Innodb utiliza funciones de
bloqueo a nivel de fila de manera que solo se bloquee dicha fila y no toda la tabla, y
se puedan seguir aplicando instrucciones sobre otras filas.
Las consultas sobre la base de datos se ejecutan una después de otra. En el caso de un
sitio Web que sirva páginas, da lo mismo el orden en que la base de datos realice las
consultas, siempre y cuando lo haga rápidamente. Sin embargo, ciertos tipos de
consultas necesitan realizarse en un orden dado, como las que dependen de los
resultados de una consulta anterior, o grupos de actualizaciones que necesitan
realizarse en conjunto. Todos los tipos de tabla pueden utilizar la función de bloqueo,
pero sólo los tipos innodb y BDB disponen de funciones transaccionales integradas.
59
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
El proceso parece claro, pero que ocurriría si algo sale mal durante el proceso y el
sistema falla entre las dos consultas sin que llegue a completarse la segunda. Se
habrá retirado los fondos de la cuenta de la primera persona, se creerá que el pago se
ha realizado. Sin embargo, la segunda persona no estará muy contenta porque el pago
no se ha realizado. En este tipo de transacciones, resulta fundamental asegurarse de
que las dos consultas se levan a cabo o que no se hace ninguna de las dos. Para ello,
se empaquetan en los que se conoce como una transacción, con una instrucción
BEGIN para indicar el inicio de la transacción y una instrucción COMMIT para
indicar el final. Solo tras procesar la instrucción COMMIT, las consultas se habrán
convertido en permanentes. Si algo sale mal a media ejecución, podemos utilizar el
comando ROLLBACK para invertir la parte incompleta de la transacción.
De manera predeterminada, las tablas innodb realizan una lectura coherente. Esto
significa que al realizar una consulta de selección, Mysql devuelve los valores
presentes de la base de datos hasta la última transacción completada. Si en el
momento de realizar la consulta existe alguna transacción en progreso, los resultados
de las instrucciones UPDATE o INSERT no se reflejarán, con una excepción: la
transacción abierta puede modificarse (puede que haya observado que al realizar la
consulta BEGIN-INSERT-SELECT, se visualizó el resultado insertado). Para poder
verlo, necesita tener dos ventanas abiertas y estar conectado a la base de datos.
Las lecturas coherentes no siempre resultan adecuadas. Por ejemplo, que ocurriría si
varios usuarios están intentando agregar un nuevo registro en una tabla innotest?
Cada nuevo registro inserta un número ascendente exclusivo, este campo no es clave
principal o un campo de incremento automático, por lo tanto nada impide que cree el
registro duplicado. Sin embargo, no queremos que eso ocurra. Lo que desearíamos es
leer el valor actual e insertar un nuevo valor, incrementando en una unidad. Pero esta
acción no garantiza un valor único.
La forma de evitar resultados erróneos es realizando un bloqueo de actualización
sobre la operación de selección. Si indicamos a Mysql, que estamos realizando una
lectura de actualización, no permitirá que nadie más lea el valor hasta que nuestra
transacción se haya completado.
Existe otro tipo de bloqueo de lectura que no devuelve un valor si el valor que está
leyendo ha sido modificado por una transacción incompleta. Devuelve el último
valor, pero no forma parte de una transacción cuya intención es modificar el valor.
Las tablas BDB procesan las transacciones de forma ligeramente diferente a las
tablas Innodb. Si una persona está realizando una transacción sobre una tabla x, si
esta transacción no está completa, ninguna persona podrá consultar los datos de esta
60
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Hay que tener mucho cuidado cuando se realizan transacciones ya que al ejecutar
cualquiera de estos comandos cuando las transacción este a medias, automáticamente
se realizará un COMMIT.
Se debe evitar los bloqueos sobre tablas que necesiten realizar un gran volumen de
actualizaciones, ya que, en el caso de los bloqueos de escritura, no se puede leer o
escribir ningún registro de la tabla durante el bloqueo.
Además, como los bloqueos de escritura tienen prioridad sobre los de lectura de
61
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
manera predeterminada, no se puede leer ningún registro hasta que todas las
operaciones de actualización e inserción se completen, lo que puede provocar que
Mysql se atasque de forma terrible. Existen varias formas de evitar los bloqueos de
tabla. Una de ellas consiste en realizar la operación de lectura y actualización dentro
de la misma instrucción (es lo que se conoce como actualización incremental).
Este nivel permite transacciones para leer datos sin confirmar desde otras
transacciones (es lo que se conoce como lectura sucia).
Este nivel no permite lecturas no susceptibles de repetición (que son las que se dan
cuando otra transacción ha modificado los datos, incluso si se han confirmado).
3.1.14.3 SERIALIZABLE
Este nivel no permite lecturas fantasma, que tienen lugar cuando otra transacción ha
confirmado una nueva fila que coincide con los resultados de nuestra consulta. Los
datos serán los mismos en cada ocasión.
Al realizar una consulta sobre una tabla X de la base de datos, los registros son
recuperados mediante un barrido completo de la tabla si la misma no utiliza índices,
el problema es notorio cuando queremos buscar información con cierto criterio de
búsqueda, haciendo que la consulta se demore demasiado.
La operación de recorrer la tabla de esta forma (de principio a fin, examinando todos
los registros) se conoce como examen completo de la tabla. Cuando las tablas son de
gran tamaño, esta operación resulta poco eficiente ya que la labor de examinar tablas
compuestas de varios cientos de miles de registros puede resultar muy lenta. Para
evitar este problema, se debe ordenar los registros. Sin embargo, puede ocurrir que
deseemos buscar registros de la tabla utilizando otro criterio de búsqueda. La
62
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
solución es crear listas separadas para cada campo que se desee ordenar, a este
ordenamiento se le conoce como índice.
En Mysql existen cuatro tipos de índice: clave primaria, un índice exclusivo, un
índice de texto completo, y un índice ordinario.
Una clave primaria es un índice establecido sobre un campo en el que cada valor es
exclusivo y ninguno de los valores puede ser nulo.
Para establecer una clave primaria al crear la tabla, se debe utilizar la instrucción
PRIMARY KEY al final de las definiciones del campo, es importante la palabra
clave NOT NULL, es además obligatoria al crear un campo primario, esto indica a la
base de datos que no se admiten valores nulos ni valores duplicados ya que la clave
primaria es única.
Los índices que no son primarios, permiten valores duplicados (a menos que los
campos se especifiquen como únicos). Un índice exclusivo permite realizar
búsquedas por un solo registro de la tabla que no necesariamente es único pero que la
gran cantidad de registros almacenados amerita la creación de este índice.
Se puede crear este tipo de índice sobre cualquier campo Char, Varchar o Text. Los
índices de texto completo están diseñados para facilitar la búsqueda sobre palabras
clave en capos de texto de tablas grandes.
Para devolver los resultados de una búsqueda de texto completo, se utiliza la función
MATCH(), y se busca la correspondencia de un campo con un valor.
Cada tipo de tabla tiene su propio comportamiento en materia de índices y cada una
de ellas lo procesa de manera diferente. No todos los tipos de índices están
disponibles para los distintos tipos de tabla. Es importante tener claro como se va a
utilizar una tabla y los índices que se van a necesitar ante de seleccionar el tipo de
63
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
tabla. En ocasiones, lo que parece ser el tipo de tabla perfecta se convierte en la peor
elección porque o se puede utilizar un determinado tipo de índice en ella.
A continuación se enlista las funciones y las diferencias de índices para cada tipo de
tabla. Las tablas MyISAM presentan las siguientes características:
• Los índices se almacenan con la extensión .MYI
• Los índices de número se almacenan con el byte alto primero par permitir una
mejor compresión del índice.
• Se puede utilizar índices BLOB y TEXT.
• Se permiten valores nulos en los índices.
• Los datos y el índice se pueden incluir en directorios diferentes ( lo que
permite una mayor velocidad).
Las tablas con pocos índices devolverán los resultados muy rápido. Pero la inclusión
de demasiados índices, aunque no suele ser normal, también ocasiona degradación de
la base de datos. Los índices ocupan espacio de disco y, como están ordenados, cada
vez que se realice una operación de inserción o de actualización, es necesario volver
a organizar el índice para incluir los cambios, lo que da como resultado una carga de
trabajo adicional significativa. La eficiencia en el uso de los índices depende también
de la configuración de Mysql.
El uso más común de un índice consiste en recuperar filas que cumplan una
64
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Comenzando por la parte izquierda de la lista de campos del índice, Mysql puede
utilizar cada uno de ellos, uno tras otro, siempre y cuando sigan la secuencia
empezando por la izquierda.
Para una mejor comprensión de este concepto se va a utilizar el siguiente índice:
Tabla: Customer, INDEX(surname, inicial, first_name).
Si se realiza una consulta incluyendo los tres campos que forman parte del índice,
lograríamos el mayor provecho del índice creado;
SELECT * FROM customer WHERE surname = ‘Clegg’ AND inicial = ‘X’ AND
first_name = ‘Yvonne’.
• Los índices solo deben crearse en aquellas consultas que lo utilicen (por
ejemplo, sobre campos de la condición WHERE) y no sobre campos que o
vayan a utilizarlos (como en el caso en el que el primer carácter de la
condición sea un comodín).
• Crear índices que devuelvan el menor número de filas posibles. El mejor
lugar es sobre una clave primaria ya que estas se asignan de manera exclusiva
sobre un registro. De manera similar, los índices sobre campos enumerados
no resultan particularmente útiles (por ejemplo, un índice sobre un campo que
contenga valores si o no, solo serviría para reducir la selección a la mitad, con
toda la carga que supone el mantenimiento de un índice ).
65
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Mientras mayor sea el número de tablas que se combinan, mayor será la cantidad de
filas examinadas. Parte del buen diseño de las bases de datos consiste en hallar un
equilibrio entre las tablas pequeñas de las bases de datos que necesitan más
combinaciones y las tablas de mayor tamaño que resultan más difíciles de mantener.
Lo principal para que una consulta sea óptima es la selección correcta del índice y la
cláusula WHERE correctamente definida, tomando en cuenta la prefijación más a la
izquierda.
En Mysql un detalle importante es el comando EXPLAIN, que ayuda al programador
a conocer en detalle que índice se está utilizando, cuantos registros revisó para sacar
la consulta, como es procesada la instrucción SELECT, esta instrucción es de gran
ayuda para escribir consultas optimas y seleccionar el índice adecuado a la consulta.
Cuando más complejos sean los permisos, mayor será la carga de trabajo que
experimentan las consultas.
3.2 Oracle
3.2.1 Introducción
caro no está tan extendido como otras bases de datos, por ejemplo, Access, Mysql,
Sql Server, etc.
Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª generación, bastante
potente para tratar y gestionar la base de datos, también por norma general se suele
utilizar SQL.
Oracle es sin duda una de las mejores bases de datos que tenemos en el mercado, es
un sistema gestor de base de datos robusto, tiene muchas características que nos
garantizan la seguridad e integridad de los datos; que las transacciones se ejecuten de
forma correcta, sin causar inconsistencias; ayuda a administrar y almacenar grandes
volúmenes de datos; estabilidad, escalabilidad y es multiplataforma.
Aunque su dominio en el mercado de servidores empresariales ha sido casi total
hasta hace poco, recientemente sufre la competencia de gestores de bases de datos
comerciales y de la oferta de otros con licencia Software Libre como PostgreSql,
Mysql o FireBird. Las últimas versiones de Oracle han sido certificadas para poder
trabajar bajo Linux.
INSTANCIA
BASE DE
DATOS
67
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Una instancia de Oracle está conformada por varios procesos de fondo y espacios de
memoria compartida denominada System Global Area (SGA) que son necesarios
para acceder a la información contenida en la base de datos.
La instancia está conformada por procesos del usuario, procesos que se ejecutan en el
background de Oracle y los espacios de memoria que comparten estos procesos.
El SGA es utilizado para el intercambio de datos entre el servidor y los clientes.
Una instancia de oracle solo puede abrir una sola base de datos a la vez.
Esta área de memoria contiene datos e información de control para los procesos que
se ejecutan en el servidor de Oracle (relacionados con la base de datos, por
supuesto). El tamaño y contenido de la PGA depende de las opciones del servidor
que se hayan instalado.
Dentro de los procesos que forman parte de las base de datos tenemos:
• Control File, que contiene la información para controlar y mantener la
integridad de la base de datos.
• Data files, son lo archivos en los cuales se almacenan los datos de las
aplicaciones.
• Redo Log Files, almacena los cambios hechos en la base de datos con
propósito de recuperarlos en caso de falla.
70
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Sesión
Conexión Creada
Establecida
Proceso
Usuario
Proceso
Servidor
USUARIO DE LA
BASE DE DATOS SERVIDOR ORACLE
1
2
CLIENTE
PROCESO QUE
ESCUCHA
71
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En todos estos tipos se indica el tamaño en paréntesis tras el nombre del tipo, este
tamaño, en el caso de los tipos VARCHAR(2), es obligatorio, en el caso de los tipos
CHAR son opcionales (si no se pone toma uno como default).
El tipo de dato Number es un tipo de dato versátil, que permite representar todo tipo
de números de entre 10E-130 y 9,99999999999 * 10E128. Fuera de estos rangos,
oracle devuelve un error.
Los números decimales, se indican con NUMBER (p, s), donde p es la precisión
máxima y s es la escala.
El tipo de dato DATE, permite almacenar fechas. Las fechas se puede escribir en
formato día, mes, año entre comillas. El separador puede ser /, - y casi cualquier
símbolo.
El tipo de dato TIMESTAMP, es una extensión del anterior, almacena valores de día,
mes, año, junto con la hora, minutos y segundos, con lo que representa un instante
concreto en el tiempo.
El tipo de dato INTERVAL representa intervalos de tiempo.
El tipo de dato RAW sirve para almacenar valores binarios de hasta 2000 bytes (se
puede especificar el tamaño máximo entre paréntesis).
LOB, son varios tipos de datos que permiten almacenar valores muy grandes. Incluye
BLOB, CLOB, NCLOB y BFILE.
El tipo ROWID, es un valor hexadecimal que representa la dirección única de una
fila en su tabla.
3.2.7 Transacciones
73
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
TIEMPO TIEMPO
intervienen en la intervienen en la
transacción transacción
3.2.7.2 Bloqueos
75
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Oracle tiene dos lenguajes procedimentales principales, PL/SQL y Java. PL/SQL fue
el lenguaje original de Oracle para los procedimientos almacenados y tiene una
sintaxis similar al utilizado en el lenguaje Ada. Java se soporta mediante una
76
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
máquina virtual Java dentro del motor de base de datos. Oracle proporciona un
paquete para encapsular procedimientos, funciones y variables relacionadas en
unidades únicas.
3.2.9 Disparadores
Cuando un objeto se crea dentro de un tablespace, este objeto adquiere todas las
propiedades antes descritas del tablespace utilizado.
Si creamos por ejemplo una tabla llamada Artículo, esta se almacena dentro del
tablespaceA, y que por lo tanto tendrá todas las propiedades del TableSpaceA que
pueden ser:
77
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
79
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Mysql Oracle
Nombre de la Empresa Mysql AB Oracle Corporation
1er Realease Público 1996 1977
Ultima versión estable 5.0 10g realease 2
Tipo de licenciamiento Gpl o Propietario Propietario
Fuente: Internet
Autor: Diego Burbano
Fuente: Internet
Autor: Diego Burbano
80
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Interfaces
Peso Mysql Peso Oracle Peso
C 10 Si 10 Si 10
C++ 10 Si 10 0
TCL 10 Si 10 0
Delphi 10 Si 10 Si 10
Perl 10 Si 10 Si 10
Python 10 Si 10 0
Php 10 Si 10 Si 10
Java 10 Si 10 Si 10
Ruby 10 Si 10 0
Conectores
.Net 10 Si 10 Si 10
Odbc 10 Si 10 Si 10
Jdbc 10 Si 10 Si 10
120 120 80
Fuente: Internet
Autor: Diego Burbano
Mysql ofrece los conectores indicados en la tabla que pueden ser usados para
desarrollar aplicaciones utilizando mysql como base de datos. Cuando una aplicación
es desarrollada con Php, Java, .net, perl, ODBC, Mysql dispone de un driver que se
encarga de realizar este trabajo.
Java.- es una plataforma independiente, es un lenguaje orientado a objetos
desarrollado por Sun Microsystems Inc. Un compilador java crea al código binario y
la maquina virtual Java (JVM) convierte el código binario en lenguaje de máquina.
Java al ser una plataforma independiente, los programas compilados en Java en una
81
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
82
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
83
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Aplicación Descripción
Mysql Migration Toolkit administra y realiza tareas de
Mysql Migration Toolkit migracion de datos a Oracle, Sql Server, Access, Jdbc
Generico .
Administra las instancias, backup, usuarios, performance,
Mysql Administrator
logs, replica
Es el nuevo dbDesigner con al cual se puede hacer el
Mysql Workbench
proceso de ingenieria inversa
Mysql Monitor Un Monitor del Servidor y manejador de las instancias
Administra las consultas Sql, creación de
Mysql Query Browser procedimientos, vistas, manipulación de sripts, ayuda
sobre la sintaxis de mysql
Plone Herramienta Case
Herramienta Case, Open Source Web framework que
optimiza la programación y productividad, es una
Ruby on Rails
herramienta que sirve para desarrollar aplicaciones Web
con bases de datos.
84
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Aplicación Descripción
Finanzas, proyestos, Rrhh, nominas, Mantenimiento,
Enterprice resource Planning (ERP)
distribución y manufactura.
Customer Relationship Management (CRM) Ventas, servicio, mercadotecnia, Call Centers
Administración de la cadena de suministro, desarrollo,
Supply Chain Management (SCM)
planeación, Procura, manufactura.
Balance Score Card, Activity Base Management,
Business Inteligence
Inteligencia Operativa, Portal ejecutivo.
Oracle Developer Forms Developer, Jdeveloper, Reportes
Oracle Designer Creación y desarrollo de la ingenieria de Software
Oracle WareHouseBuilder
Oracle Discoverer
Es una aplicación gráfica ue está incluida en todas las
Oracle Enterprice Manager (OEM) ediciones, los administradores la usan para manejar las
instancias de Oracle.
Oracle Express Server
People Soft
85
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
-1.8e308 a -2.2e308, 2.23- Sobre 38 digitos de Mysql Soporta enteros de punto flotante
Floating Point 10 10 8
308 a 1.83308' precisión. y de presición doble más grandes.
Fecha y hora con
Fecha y hora con precisión precisión de Oracle asegura que los valores de fecha
de segundos de Enero segundos de Enero sean fechas válidas y puede almacenar
Date 10 8 10
1,1000 a Diciembre 31, 1,4712 BCE a fechas antes de 1000 CE. Mysql puede
9999 Diciembre 31, 4712 almacenar fechas después de 4712 CE.
CE
Hora con presición de
Time 10 segundos. -838:59:59 a 10 N/A 10 Oracle no tiene un tipo de dato Time
838:59:59
Precisión de
Precisión de segundos sin Oracle soporta milisegundos y
TimeStamp 10 8 milisegundos con 10
local time zone. conversiones automáticas de time zone.
local time zone.
Oracle no tiene un tipo de dato para
Year 10 1901 a 2155 10 N/A 10
almacenar solo años.
Mysql no soporta identificadores de fila
Row Identifier 10 N/A 10 Local y universal 8 que son utiles para actualizaciones
rápidas.
Oracle no soporta este tipo de dato; sin
Sobre 65535 valores
Enumeration 10 10 N/A 10 embargo soporta constraints de chequeo
diferentes.
de multiples valores
Puede contener de cero a
Set 10 10 N/A 0 Oracle no tiene este tipo de dato.
64 valores.
Los desarrolldores
Tipos de dato definidos
10 N/A 0 pueden definir sus 10 Oracle soporta tipos de datos complejos.
por el usuario
propios tipos de datos
86
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
propietarias.
• Almacenamiento Físico.- esto abarca todo lo que tiene que ver con el
tamaño de página para tablas e índices, así como el formato usado para
guardar los datos físicamente en disco.
88
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Fuente: Mysql
Autor: Diego Burbano
Mysql ofrece varios tipos de almacenamiento propios de Mysql que han sido
diseñados de acuerdo a las necesidades de las aplicaciones, esto permite a los
profesionales de bases de datos, seleccionar un tipo de almacenamiento especializado
a las necesidades de una aplicación particular. Una ellas es Innodb, la cual permite el
manejo de transacciones, MyIsam es otra que contiene características y capacidades
que soportan alto tráfico en ambientes web. Al ser una herramienta Open Source, lo
clientes pueden crear su propia ingeniería de almacenamiento que se ajuste a sus
requerimientos.
Como se puede ver en la figura, tenemos varios tipos de almacenamiento que pueden
ser usados con el servidor de base de datos:
• MyIsam, es el default de los tipos de almacenamiento, usa indexamiento B-
tree, es uno de los más usados en aplicaciones web, data warehousing y otros
tipos de aplicación. Nótese que el tipo de almacenamiento puede ser
fácilmente cambiado alterando la configuración de la variable
STORAGE_ENGINE.
• InnoDb, usado para aplicaciones transaccionales, soporta algunas
89
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En la tabla # 14 tenemos un análisis más completo de lo que soporta cada uno de los
tipos de almacenamiento, esta tabla tiene algunas de las características más
importantes, pero en el manual de referencia existe más información.
Es posible utilizar varios tipos de almacenamiento en una aplicación, mysql no limita
el uso de un tipo de almacenamiento en una base de datos particular. Para que la
aplicación funcione siempre con el máximo rendimiento lo más importante es
seleccionar adecuadamente el tipo de almacenamiento a usar.
Por ejemplo, para una aplicación de Business Inteligente (BI), la aplicación tendría
los siguientes requerimientos:
• Pesadas consultas y lectura de datos con el mínimo tiempo entre lecturas.
• Las operaciones son solo de lectura por naturaleza, esto implica que no se
necesita altos niveles de concurrencia de datos, solamente el bloqueo
compartido puede ser usado entre lecturas .
• La aplicación puede usar un host en una interfase web que requiere la
capacidad de búsqueda full-text.
• El soporte de transacciones no es necesario.
• La integridad referencial de los datos es asumida por el código del sistema
transaccional.
• Los datos deben ser repicados a varios sitios geográficos.
Para este tipo de aplicación, la opción correcta puede ser MyIsam.
Oracle utiliza Espacios de tablas (tablespaces) que consiste en uno o más archivos de
datos (datafiles) en disco para cada una de las tablas creadas. Cada tablespace puede
90
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Sistema de Archivos:
Archivos de Control
TableSpaces
Archivos de datos
Segmentos de rollback
Grupos RedoLog
4.9.1 Oracle
Asistencia técnica a los problemas y preguntas de los clientes con relación a los
productos oracle. Se presta a través de su CSI (código de identificación de soporte)
desde el centro de soporte en Orlando, al cual se accede por llamada telefónica ó por
la conexión con Oracle MetaLink. Este proceso requiere el registro por parte del
cliente de las solicitudes de asistencia técnica (TAR’s) la cuales se transfieren
directamente y se resuelven por analistas técnicos que tienen acceso a un amplio
rango de herramientas de software de diagnóstico. Cada TAR recibe una prioridad
establecida por el analista y el cliente, en función del impacto que cause en el
negocio del cliente. Todas las solicitudes son registradas, procesadas, solucionadas y
sólo se cierran cuando el analista y cliente así lo acuerden.
Actualizaciones de productos (upgrades) y versiones de mantenimiento. Oracle
tiene el compromiso de la continua investigación y desarrollo de mejoras a sus
productos que aseguren a sus clientes cumplir con los continuos retos que enfrentan
es su negocio, por medio de las actualizaciones de productos.
4.9.2 Mysql
91
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Mysql Network Silver.- provee los mismos servicios que el básico en lo que se
refiere a software, pero en la parte de resolución de problemas, puede tener un
numero de incidentes ilimitado, acceso web, acceso telefónico 8x5 y un limite de 4
horas en el tiempo de respuesta. El costo es 1995.00 por servidor y por año.
Mysql Network Gold.- tiene las mismas particularidades del básico y plata, pero en
la resolución de problemas tiene numero de incidentes ilimitado, acceso web, acceso
telefónico 24x7, máximo tiempo de repuesta a incidencias 2 horas, además, en caso
de emergencias, tiene un tiempo máximo de respuesta de 30 minutos, también
dispone de resolución de problemas en forma remota. El costo es de 2995.00 por
servidor por año.
General Motors, General Electric, Intel Corporation, Hp, Philips, Nike, Banco de
crédito del Perú, Alcatel, British Gas, Andinatel Ecuador, Mercado Libre, Mastercard
Internacional, Boing, Sri Ecuador, Concep, Superintendencia de Bancos del Ecuador,
Toyota Casa Baca, Iess.
El mercado de la base de datos Oracle no está segmentado solo a un tipo de
aplicaciones, como se puede observar, existen entidades financieras, empresas de
comunicaciones
Comunicaciones, portales web.
Dentro de las empresas que utilizan Mysql en sus ambientes de producción tenemos
las siguientes:
Sonny, Suzuki, Lycos, Yahoo, Dell, PortaOne, Nasa, Unicef, Mcafee, Aizawa
Securities, Google.
Como se puede observar, la mayoría son empresas que tienen su aplicación en el
internet con base de datos, es decir, aplicaciones web.
93
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Update, Update,
Licencia y Licencia por Licencia y
Producto Usuario Nombrado Soporte procesador Soporte
Base de datos
Standard Edition One 149.00 32.78 4995 1098.90
Standard Edition 300.00 66.00 15000 3300.00
Enterprice Edition 800.00 176.00 40000 8800.00
Opciones de Enterprice
Edition
Real application Cluster 400 88.00 20000 4400.00
Partitioning 200 44.00 10000 2200.00
OLAP 400 88.00 20000 4400.00
Data Mining 400 88.00 20000 4400.00
Spatial 200 44.00 10000 2200.00
Advanced Segurity 200 44.00 10000 2200.00
Label Segurity 200 44.00 10000 2200.00
Aplicaciones para
Mantenimiento
Diagnostic Pack 60 13.20 3000 660.00
Tunning Pack 60 13.20 3000 660.00
Change Management Pack 60 13.20 3000 660.00
Configuration Management
Pack 60 13.20 3000 660.00
Data WareHouse
Express Server 800 176.00 40000 8800.00
Express Analizer 800 176.00 n/a n/a
Express Objects 5000 1100.00 n/a n/a
Dentro de los productos más vendidos de Oracle, tenemos los relacionados con la
base de datos, es decir,
94
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Claro está que cada uno de ellos tiene acogida en mercados muy diferentes.
Oracle Database Standar Edition One.- Este producto está orientado a empresas
pequeñas, para poder utilizar esta versión, el equipo sobre el que va a ser instalado no
puede contar con capacidad para más de dos procesadores. Como se puede apreciar
en la tabla, el costo de este producto es de $4995 por procesador (máximo dos), o de
$149 por usuario nombrado (mínimo 5).
Oracle Database Standar Edition.- Este producto cuenta con las mismas
características que la versión Standar Edition One, pero esta puede ser configurada
en un equipo con capacidad hasta 4 procesadores, el costo es de $15000 por
procesador (máximo 4) o de $300 por usuario nombrado (mínimo 5).
Los clientes de Oracle Database Enterprice Edition encuentran muy útil licenciar de
manera adicional opciones como:
Partitioning.- Una opción que permite administrar las tablas grandes de la base de
datos en diferentes tablespaces, para ayudar al rendimiento de la base de datos. Su
coso es de $10000 por procesador o $200 por usuario nombrado.
Otro de los productos que tienen buena salida es el Internet Application Server:
95
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Internet Application Server Standar Edition.- Para empresas un poco más grandes
cuyo servidor pueda escalar hasta 4 CPUs a un costo de $10000 por CPU (máximo
4), o de $200 por usuario nombrado (mínimo 5).
Mysql es Glp (General Public Licence) no tiene costo, en lo que gana la empresa
Mysql Ab es en el soporte y entrenamiento.
Al ser una empresa que maneja sus códigos con el tipo de licencia Gpl reduce los
costos de desarrollo, administración.
96
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Las pruebas realizadas sobre la base de datos Mysql (versión 5.0.18) se realizaron en
una notebook pentium 4 de 2.4 Ghz, 1 GB Ram, el sistema operativo es Xp
Professional.
Cabe señalar que para realizar un test más exhaustivo de los motores de base de datos
existen empresas que dedican sus recursos y tiempo solo a este tipo de análisis.
97
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
# Registros
Almacenamiento T1(s) T2(s) T3(s) T Promedio(s) T Promedio(min)
Insertados
Innodb 100 0,000 0,010 0,010 0,007 0,000
Innodb 1.000 0,030 0,040 0,030 0,033 0,001
Innodb 10.000 0,360 0,380 0,350 0,363 0,006
Innodb 1.000.000 132,750 124,415 116,020 124,395 2,073
Innodb 3.000.000 227,510 228,980 355,740 270,743 4,512
MyIsam 100 0,100 0,040 0,010 0,050 0,001
MyIsam 1.000 0,050 0,070 0,050 0,057 0,001
MyIsam 10.000 0,500 0,430 0,450 0,460 0,008
MyIsam 1.000.000 46,130 45,520 45,230 45,627 0,760
MyIsam 3.000.000 144,390 142,910 143,710 143,670 2,395
Oracle 100 0,200 0,200 0,200 0,200 0,003
Oracle 1.000 0,291 0,311 0,301 0,301 0,005
Oracle 10.000 3,155 3,157 3,194 3,169 0,053
Oracle 1.000.000 364,244 333,250 340,340 345,945 5,766
Oracle 3.000.000 1046,115 1134,270 1098,345 1092,910 18,215
Según los resultados obtenidos en las pruebas, 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 transaccciones), 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).
Si nos ponemos a analizar el porque de tanta diferencia entre Oracle y Mysql, esto se
debe a que Oracle realiza muchos más controles, por ejemplo, Oracle 10g tiene
98
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
99
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Las bases de datos están expuestas a problemas como fallas en comunicaciones, falla
del ups. En estos casos, que no son muy repetitivos pero que suceden en ambientes
reales es necesario proteger los datos.
100
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Las bases de datos manejan este problema con las llamadas transacciones y las
propiedades ACID.
101
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
102
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Peso
Peso T % Peso Mysql P1 P2
Oracle
Sistemas Operativos 110,00 12% 110,00 12,00% 100,00 10,91%
Apis 120,00 12% 120,00 12,00% 80,00 8,00%
Soporte 10,00 10% 10,00 10,00% 10,00 10,00%
Funcionalidad 150,00 10% 117,00 7,80% 150,00 10,00%
Rendimiento 10,00 10% 10,00 10,00% 9,00 9,00%
Características Fundamentales 110,00 8% 100,00 7,27% 110,00 8,00%
Tipos de Datos 140,00 8% 116,00 6,63% 126,00 7,20%
Acceso a Datos 160,00 8% 150,00 7,50% 160,00 8,00%
Seguridad 100,00 8% 80,00 6,40% 100,00 8,00%
Almacenamiento 50,00 7% 50,00 7,00% 30,00 4,20%
Alta Disponibilidad 30,00 7% 0,00 0,00% 30,00 7,00%
990,00 100% 863,00 86,60% 905,00 90,31%
Anexo # 2: Backups
Mysql puede ser respaldada con las utilidades en ambiente gráfico disponibles y
además tiene la capacidad de sacar respaldos en caliente, esto es permitido gracias a
online backup cuando la aplicación está en normal actividad.
Es la misma tecnología que mantiene seguros los datos de los números de tarjetas de
crédito cuando se realizan compras a través del internet.
103
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En las aplicaciones que almacenan datos muy delicados, como por ejemplo, registros
de cuentas bancarias, quizá es necesario almacenar estos datos con un formato
encriptado. Al hacer esto, resulta muy complicado para alguien tratar de utilizar los
datos y se asegura la privacidad y no divulgación de los mismos.
En aplicaciones que son menos delicadas, se usa la encriptación para proteger
algunas piezas de información, como por ejemplo la base de datos con las
contraseñas para otra aplicación. En realidad, las contraseñas nunca deberían
almacenarse en la base de datos sin encriptar.
A diferencia de la encriptación tradicional, que puede ser revertida, la serialización
es un proceso de un solo sentido que no puede ser revertido. La única forma de
averiguar la contraseña que generó una serialización en particular es utilizar un
ataque de cálculo por fuerza bruta ( probando todas las combinaciones para al
entrada).
Mysql ofrece cuatro funciones para serializar contraseñas: Password(), Encrypt(),
Sha1() y Md5(). La mejor forma de ver los resultados de cada función es probándolas
utilizando el mismo texto original
Anexo # 5: ACID
104
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
al SCN de la consulta.
En el modelo de concurrencia de Oracle las operaciones de lectura no bloquean las
operaciones de escritura y las operaciones de escritura no bloquean las operaciones
de lectura, una propiedad que permite alto grado de concurrencia.
Muchas veces una simple transacción necesita escalar entre múltiples servidores de
bases de datos. Esta situación es solventada por Mysql 5.0. Usando la ingeniería de
almacenamiento disponible llamada Innodb, asegurando la integridad de la
transacción. Mysql soporta Distributed Transaccions (XA), permite distribuir las
transacciones a través de los diferentes servidores.
Anexo # 8 : Unicode
Anexo # 9: Indices
Mysql con el uso de las tablas innodb soporta el estándar b-tree indexing.
Oracle soporta el tipo de indexamiento b-tree indexing, esta característica mejora el
rendimiento cuando accesa a una tabla,
Es una característica que permite visualizar los datos de una o varias tablas.
Mysql soporta esta característica desde la versión 5.
Oracle soporta esta característica que es un gran mecanismo para crear consultas con
cierto formato o con ciertos campos de la tabla, esto ayuda a proteger la información
que se presenta al usuario.
105
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Los disparadores ejecutan acciones antes o después de que se realice algún proceso
de DML, un ejemplo de uso puede ser para sacar datos de auditoria, o para encriptar
datos.
Mysql soporta esta característica desde la versión 5.
Es una herramienta que sirve para retornar al estado anterior las transacciones que
por error se ejecutaron sobre la base de datos.
Mysql no soporta esta característica.
En oracle, esta característica se la conoce como flashback query, que permite a un
usuario establecer un cierto número SCN o tiempo de reloj en su sesión y ejecutar
consultas sobre los datos que existían en esa fecha (supuesto que los datos todavía
existían en el segmento de retroceso). Normalmente en un sistema de bases de datos,
106
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
una vez realizado el cambio no hay forma de retroceder al estado anterior de los
datos a menos que se realicen restauraciones desde copias de seguridad, sin embargo,
realizar esto es bases de datos muy grandes, resulta ser muy costoso.
Oracle dispone de una herramienta que realiza el trabajo en forma casi automática
(necesita de un DBA para su correcta ejecución), Primero identifica la tabla afectada,
la operación realizada Inserción, actualización o borrado, luego examina los cambios
que realizó la transacción y si afectó a otras tablas, el dba examina el resultado del
análisis de oracle, copia el la sentencia SQL y la ejecuta. Además puede recuperar la
información con especifico time point.
Esta característica ayuda al balanceo de carga, la idea básica que está por detrás del
balanceo de carga es bastante sencilla. Se dispone de un cluster de dos o más
servidores y queremos compartir la carga de trabajo tanto como sea posible. Además
de unos servidores finales, un balanceador de carga (e menudo un elemento
especializado de hardware) se encarga de encaminar las conexiones entrantes a los
servidores disponibles que estén menos ocupados.
Este grupo de servidores independientes o nodos, conectados vía una red privada que
trabajan en grupo como un sistema unificado. Esta característica de la base de datos
garantiza la disponibilidad de los datos en caso de falla de hardware por ejemplo.
Mysql Cluster implementa recoverability automático del nodo para asegurar una
aplicación automáticamente, es decir, si uno o más nodos de la base de datos deja de
operar, pasa a otro nodo de la base de datos que contiene un set consistente de datos.
Mysql es usada para proveer el máximo tiempo en producción para sistemas de
negocio críticos. En particular, Mysql Cluster es especialmente utilizado para
proporcionar alta disponibilidad y respuesta rápida en búsquedas con sql. Mysql
Cluster utiliza el Query Cache, el cual es una especie de memoria de cache que
almacena consultas repetitivas, esto ayuda mucho a la respuesta rápida y al
performance de Mysql Cluster cuando consultas idénticas son enviadas al servidor.
Oracle utiliza Real Apllication Clusters (RAC) como una opción de la base de datos,
que soporta hardware clusters.
107
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Se trata de una característica del las bases de datos actuales que permite dividir
físicamente una tabla de la base de datos en particiones de acuerdo a la lógica del
negocio que se necesite, de forma que, reduce significativamente los tiempos de
respuesta de la aplicación.
En Oracle, la versión 10g soporta esta característica, permitiendo dividir los datos
por fecha por ejemplo. La aplicación afecta directamente al diccionario de datos,
creando la tabla interina de los datos e indicando qué datos se encuentran en una
partición. Este mismo aplicativo permite realizar cambio en la base de datos en
caliente sin reprogramar el aplicativo.
En Mysql, las tablas InnoDb manejan particiones, es decir, si las tablas son muy
grandes, las descompone en pequeñas y más manejables piezas llamadas particiones.
Esta característica en bases de datos tiene que ver con la posibilidad de acceder,
utilizar, modificar los datos de una base de datos utilizando propiedades de la
orientación a objetos: Hoy en día, ha aumentando uso de multimedios (la animación
de vídeo, audio) en aplicaciones, especialmente en aplicaciones de la Internet. Los
requisitos aumentados en la búsqueda, el índice por ejemplo, que optimiza
eficazmente la búsqueda de datos, se pone en duda al utilizar tipos de datos más
complejos.
108
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
En el caso de Mysql, soporta para los clientes que necesitan gran precisión en sus
cálculos matemáticos. Dispone de 56 dígitos de precisión.
Anexo # 25: Archive Engine
Esta herramienta permite almacenar de forma eficiente los datos históricos.
Esta utilidad permite comprimir los datos en un 80% y reducir el tamaño de
almacenamiento de los mismos.
5.1.1 Conclusiones
5.1.2 Recomendaciones
• 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.
• En este estudio se detallan buenas razones para usar bases de datos de código
110
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
• 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.
BDOO, 33
Base de Datos Orientada a Objetos
B-tree, 174
Arbol B son estructuras de datos que se encuentran comunmente en las
implementaciones de bases de daros y sistemas de archivos.
CAD/CAM, 50
Diseño asistido por computadora (Computer Aided Design); Fabricación asistida por
computadora (Computer Aided Manufacturing).
CKPT, 119
CheckPoint Process, proceso de la instancia Oracle.
Commit, 65
Sentencia SQL que indica confirmación de los cambios realizados.
DatawareHouse, 149
Es una colección de datos, un almacén de datos que varia en el tiempo y que ayuda a
la toma de decisiones.
DBA, 20
Data Base Administratos, administrador de la base de datos.
DBWR, 119
DataBase Writer, proceso de la instancia Oracle.
DDL, 22
Lenguaje de definición de datos, es el lenguaje proporcionado por el sistema gestor
de base de datos para llevar a cabo tareas de definición de estructuras de la base de
datos.
Deadlock, 86
Es un interbloqueo, traba mortal, ocaciona el bloqueo permanente de procesos en la
base de datos.
Diccionario de datos, 23
Es una estructura propia de la base de datos en la que se definen los elementos que
forman parte de la misma.
DBMS, 19
Sistema gestor de base de datos. ( DataBase Management System).
DML, 22
El lenguaje de manipulación de datos, permite a os usuarios llevar a cabo consultas y
manipulación de los datos.
E-R, 31
Diagrama Entidad - Relación, permite manejar en forma gráfica una estructura de
base de datos.
FSF, 58
Free Software Foundation, organización de software libre, promueve este
movimiento.
GPL, 63
Licencia pública general (General Public Licence), creada por la Free Sofware
Foundation orientada principalmente a los términos de distribución, modificación y
uso del software. Su propósito es declarar que el software para este tipo de licencia
es libre.
IBM, 28
International Business Machines Corporation
InnoDb, 94
194
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
Md5, 172
Algoritmo de resumen del mensaje 5, es un algoritmo de encriptación.
MysqlAB, 94
Empresa desarrolladora de la base de datos Mysql.
NFS, 14
Sistema de archivos de red ( Network File System), posibilita que distintos sistemas
conectados a una misma red accedan a ficheros remotos como si se tratara de locales.
ODBC, 47
Estándar de acceso a bases de datos (Open DataBase Conectivity), permite acceder a
los datos sin importar que sistema gestor de base de datos almacene los datos.
ODMG, 40
Es el acrónimo de Object DataBase Management Group, Se usa tanto para definir el
grupo de personas y empresas encargadas de desarrollar el modelo de objetos para
persistencia, así como para la definición de dicho estándar.
Este modelo especifica los elementos que se definirán, y en qué manera se hará, para
la consecución de persistencia en las BBDDOO que soporten el estándar. Consta de
un lenguaje de definición de objetos, ODL, que especifica los elementos de este
modelo.
OMG, 42
El Object Management Group u OMG (de sus siglas en inglés Grupo de Gestión
de Objetos) es un consorcio dedicado al cuidado y el establecimiento de diversos
estándares de tecnologías orientadas a objetos, tales como UML, XML, CORVA. Es
una organización NO lucrativa que promueve el uso de tecnología orientada a
objetos mediante guías y especificaciones para tecnologías orientadas a objetos
Php, 143
Es un lenguaje de programación usado generalmente para la creación de contenido
para sitios web. PHP es el (acrónimo recursivo de "PHP: Hypertext Preprocessor",
inicialmente PHP Tools, o, Personal Home Page Tools) es un lenguaje interpretado
usado para la creación de aplicaciones para servidores, o creación de contenido
dinámico para sitios web, y últimamente también para la creación de otro tipo de
programas incluyendo aplicaciones con interfaz gráfica.
PL/SQL, 116
195
MYSQL VS ORACLE
ANALISIS COMPARATIVO DE BASES DE DATOS DE CODIGO ABIERTO VS CODIGO CERRADO
(DETERMINACION DE INDICES DE COMPARACION)
196
MYSQL VS ORACLE