Вы находитесь на странице: 1из 12

Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X

JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

Un estudio comparativo sobre el Rendimiento


de los Top DBMS Sistemas

Youssef Bassil

LACSC - Asociacin Libanesa de Ciencias de la Computacin


Registrada bajo el N 957 de 2011, Beirut, Lbano

Abstracto

sistemas de gestin de bases de datos son la media ms fiable de hoy para organizar los datos en colecciones que se pueden buscar y actualizada. Sin embargo, muchos
sistemas DBMS estn disponibles en el mercado cada uno con sus ventajas y desventajas en trminos de fiabilidad, facilidad de uso, seguridad y rendimiento. En este trabajo se
presenta un estudio comparativo sobre el rendimiento de los sistemas DBMS superiores. Se trata principalmente de MS SQL Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 y MS
Access 2010. La prueba est dirigido a la ejecucin de diferentes consultas SQL con diferente nivel de complejidad en los diferentes DBMS cinco bajo prueba. Esto abrira el
camino para construir una evaluacin de la cabeza a cabeza comparativa que muestra el tiempo medio de ejecucin, uso de memoria, y la utilizacin de la CPU de cada DBMS
despus de la finalizacin de la prueba.

Palabras clave

DBMS, Estudio de rendimiento, SQL Server, MySQL, Oracle, DB2, Acceso

1. Introduccin

DBMS corto para el sistema de gestin de base de datos juega un papel importante en la mayora de los proyectos del mundo real que requieren almacenamiento, recuperacin y consulta

de datos digitales. Por ejemplo, los sitios web dinmicos, sistemas de informacin contable, los sistemas de nmina, sistemas de gestin de existencias, todos dependen de bases de datos

internas como un contenedor para almacenar y gestionar sus datos [1]. Muchas empresas de desarrollo de software son hoy en da el desarrollo y produccin de sistemas DBMS que

cuestan entre cero dlares en el caso de la libre y de cdigo abierto DBMS, y miles de dlares en el caso de los DBMS propietaria. En particular, cada DBMS se caracteriza por un conjunto

de diversas caractersticas funcionales y no funcionales y especificaciones de cada uno con sus ventajas y desventajas. Una de ellas es el rendimiento que determina qu tan rpido un

DBMS puede procesar y ejecutar consultas. En este trabajo se presenta un estudio comparativo desde una perspectiva de rendimiento entre cinco DBMS diferentes disponibles en la

actualidad en el mercado. Son saber, MS SQL Server 2008 [2], Oracle 11g [3], IBM DB2 [4], MySQL 5.5 [5], y MS Access 2010 [6]. Por esta razn, varias consultas SQL con diferente nivel

de complejidad fueron hechos a mano y probados en contra de todas estas DBMS conocidos. Adems, una referencia de rendimiento se utiliz para medir el tiempo de ejecucin de cada

consulta SQL ejecutada, adems de la utilizacin de la CPU, uso de memoria, uso de memoria virtual, y el recuento de hilos. A su debido tiempo, se elabor una comparacin

headto-cabeza, que presenta las diferencias en el rendimiento entre los diferentes DBMS bajo prueba. y MS Access 2010 [6]. Por esta razn, varias consultas SQL con diferente nivel de

complejidad fueron hechos a mano y probados en contra de todas estas DBMS conocidos. Adems, una referencia de rendimiento se utiliz para medir el tiempo de ejecucin de cada

consulta SQL ejecutada, adems de la utilizacin de la CPU, uso de memoria, uso de memoria virtual, y el recuento de hilos. A su debido tiempo, se elabor una comparacin

headto-cabeza, que presenta las diferencias en el rendimiento entre los diferentes DBMS bajo prueba. y MS Access 2010 [6]. Por esta razn, varias consultas SQL con diferente nivel de

complejidad fueron hechos a mano y probados en contra de todas estas DBMS conocidos. Adems, una referencia de rendimiento se utiliz para medir el tiempo de ejecucin de cada

consulta SQL ejecutada, adems de la utilizacin de la CPU, uso de memoria, uso de memoria virtual, y el recuento de hilos. A su debido tiempo, se elabor una comparacin headto-cabeza, que presenta las diferencias

2. Fondo
En esta seccin se discute la historia, versiones y caractersticas de los diferentes DBMS bajo prueba. Ellos son, respectivamente, MS SQL
Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 y MS Access 2010.

2.1. MS SQL Server 2008

Microsoft SQL Server es un sistema de gestin de bases de datos relacionales (RDBMS) producido por Microsoft. Su lenguaje de consulta primaria es de
Transact-SQL, una implementacin del estndar de lenguaje de consulta estructurado (SQL) ANSI / ISO utilizado por Microsoft y Sybase. Microsoft SQL Server
es compatible con las transacciones atmicas, consistentes, aislados y duraderos. Incluye soporte para la creacin de reflejo de base de datos y la agrupacin.
Un clster de servidores SQL es una coleccin de servidores configurados de forma idntica, que ayudan a distribuir la carga de trabajo entre varios servidores.
servidor SQL tambin soporta la particin de datos de bases de datos distribuidas, adems de la creacin de reflejo de base de datos que permite la creacin de
espejos de contenido de bases de datos, junto con los registros de transacciones, en otra instancia de SQL Server, basado en ciertos disparadores predefinidos
[7].

20
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

2.2. Oracle 11g

Oracle de base de datos (comnmente referido como Oracle RDBMS o simplemente como Oracle), es un sistema de gestin de base de datos relacional (RDBMS)
liberado por Oracle Corporation, y que comprende al menos una instancia de la aplicacin, junto con el almacenamiento de datos. Un ejemplo comprende un conjunto de
procesos del sistema operativo y las estructuras de memoria que interactan con el almacenamiento. Adems del almacenamiento, la base de datos se compone de
registros de rehacer en lnea que mantienen el historial de transacciones. Los procesos pueden a su vez archivar los registros de rehacer en lnea en registros de
archivos, que proporcionan la base para la recuperacin de datos y para algunas formas de replicacin de datos. El RDBMS de Oracle almacena los datos lgicamente en
forma de tabla-espacios y fsicamente en forma de archivos de datos. En el nivel fsico, archivos de datos comprenden uno o ms bloques de datos, donde el tamao de
bloque puede variar entre archivos de datos. Oracle cuenta con diccionario de datos, ndices, y racimos. Las versiones subsecuentes a 10g, las capacidades de
computacin distribuida introducidas en el que una aplicacin ejemplo puede utilizar los recursos de CPU de otro nodo en la red [8].

2.3. IBM DB2

DB2 es una de las lneas de base de datos relacional que se ejecuta en servidores UNIX, Windows o Linux de IBM. DB2 se puede administrar
ya sea de una lnea de comandos o una interfaz GUI. La interfaz de lnea de comandos requiere ms conocimiento del producto, pero puede
ser ms fcilmente guin y automatizado. La interfaz grfica de usuario es un cliente Java multiplataforma que contiene una variedad de
asistentes adecuados para los usuarios novatos. DB2 da soporte a SQL y XQuery. DB2 tiene aplicacin nativa de almacenamiento de datos
XML, donde los datos XML se almacena como XML para un acceso ms rpido usando XQuery. DB2 tambin soporta la integracin en los
entornos de desarrollo integrado de Visual Studio y Eclipse.

2.4. MySQL 5.5

MySQL es una, de cdigo abierto, multihilo, y el sistema de gestin de base de datos SQL multi-usuario, que tiene ms de 10 millones de instalaciones. El programa
bsico se ejecuta como un servidor que proporciona acceso multiusuario a una serie de bases de datos. MySQL incluye un amplio subconjunto de ANSI SQL 99, as
como extensiones, soporte multiplataforma, procedimientos almacenados, disparadores, cursores, vistas actualizables, y el apoyo de procesamiento de transaccin
distribuida X / Open XA. Adems, es compatible con confirmacin en dos fases del motor, los motores de almacenamiento independientes, soporte SSL,
almacenamiento en cach, la replicacin con un maestro por esclavo, muchos esclavos por maestra, la biblioteca de base de datos incorporado, y el cumplimiento de
cido usando los motores de racimo InnoDB [10].

2.5. MS Access 2010

Microsoft Office Access, anteriormente conocido como Microsoft Access, es un sistema de gestin de base de datos relacional de Microsoft que combina el motor
de base de datos Microsoft Jet relacional con unos grficos herramientas de interfaz de usuario y desarrollo de software. Es un miembro del sistema de Microsoft
Office 2010. Uno de los beneficios del acceso desde la perspectiva de un programador es su compatibilidad relativa con consultas SQL. A diferencia de un
RDBMS completo, el motor de jet carece de trigger y procedimientos almacenados. No obstante, proporciona una sintaxis especial que permite la creacin de
consultas con los parmetros, de una manera que se parece a la creacin de procedimientos almacenados, pero estos procedimientos se limitan a una
declaracin por procedimiento. Microsoft Access no permiten a las formas contienen cdigo que se activa cuando se realizan cambios a la tabla subyacente, y es
comn el uso de paso a travs de consultas y otras tcnicas de acceso para ejecutar procedimientos almacenados en los RDBMS que apoyan estos. MS Access
es utilizado por las pequeas empresas, dentro de los departamentos de grandes corporaciones y por los programadores aficionados para crear sistemas de
escritorio personalizados ad hoc para el manejo de la creacin y manipulacin de los datos. Algunos desarrolladores de aplicaciones profesionales utilizan
Access para el desarrollo rpido de aplicaciones, especialmente para la creacin de prototipos y aplicaciones independientes que sirven como herramientas para
vendedores en la carretera [11].

3. Pruebas y Evaluacin

3.1. DBMS bajo prueba

Hay tpicamente cinco DBMS bajo prueba, cuatro de los cuales son los DBMS cliente / servidor, adecuados para la construccin de bases de datos de
mediana y gran escala, y uno independiente DBMS adecuado para la creacin de bases de datos ad-hoc pequea escala. Ellos son, respectivamente, MS
SQL Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 y MS Access 2010. MS Access es el nico DBMS no cliente / servidor.

21
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

3.2. Plataforma de Pruebas

La prueba se lleva a cabo en un doble procesador, Intel Xeon E5649, Ncleos de 6x2, el procesador, velocidad de reloj de 2,53 GHz con 32 GB de memoria de
acceso aleatorio (RAM) y 2 TB de capacidad de almacenamiento secundario. El sistema operativo es MS Windows Server 2008 de 64 bits.

3.3. Ensayador

El probador es una aplicacin informtica desarrollada utilizando C # .NET bajo el .NET Framework 4.0. Se realiza dos tareas: La primera es para rellenar
automticamente las tablas de bases de datos con 1.000.000 de filas antes de la prueba de ejecucin. La segunda es para ejecutar las consultas SQL. La Figura 1
muestra la interfaz grfica de usuario principal del probador.

Figura 1 - Tester Interface

3.4. La evaluacin comparativa

El probador implementa un temporizador incorporado para medir el tiempo de ejecucin en milisegundos, desde el inicio de la ejecucin de una consulta SQL
determinada hasta que termine para arriba. En relacin con el consumo de memoria y la utilizacin, la herramienta de MS Windows Task Manager (WTM) se
utiliza lo que ya se incluye con todas las versiones de los sistemas operativos MS Windows [12]. La Figura 2 muestra la interfaz de la herramienta de WTM

Figura 2 - WTM Interfaz Principal

3.5. Diseo de base de datos

En esencia, la base de datos a ensayar sobre todas las diferentes DBMS comprende quince distintas relaciones o tablas asociados entre s por medio de
relaciones. Es una base de datos relacional modelo implementado bajo las diferentes DBMS cinco bajo prueba. La base de datos se ajusta a un sistema de
comercio al por menor. Incluye un sistema de interfaz para la creacin de facturas, recibos y rdenes de compra y un sistema de back-end para administrar los
elementos de valores. La Figura 3 representa el diseo lgico de la base de datos bajo prueba.

22
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

Figura 3 - Diseo lgico de la Base de Datos

4. El proceso de pruebas

Diferentes consultas SQL se ejecut a lo largo de los diferentes DBMS cinco bajo prueba. De hecho, estas consultas tienen diferente nivel de
complejidad; que van desde el tipo simple de tipo muy complejo. Vale la pena sealar que las cinco bases de datos se rellenan con ficticias 1.000.000 de
registros de datos antes de iniciar el proceso de prueba.

Consulta # 1

Esto es un muy simple consulta, cuya tarea consiste en recuperar filas sin ninguna condicin o uniones:

SELECT * FROM artculo;

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 18 ms + 3% + 3 MB + 1 MB +2
Orculo 23 ms + 4% + 7 MB + 1 MB +6
IBM DB2 18 ms + 3% + 11MB + 1 MB +2
MySQL 19 ms + 3% + 3 MB + 1 MB +2
MS Access 21 ms + 2% + 2MB + 1 MB +1

Consulta # 2

Esta consulta emplea el uso de condiciones sofisticados en conjuncin con operadores lgicos:

* SELECT de la factura

DONDE Invoice.in_id> 50 Y Invoice.in_date> 1/1/2006 Y Invoice.in_date <1/1/2007 Y Invoice.in_description LIKE '% ohp%' y
Invoice.in_totalinletter LIKE '% USD' Y Invoice.in_total = Invoice.in_totalafterdiscount Y Invoice.in_total <> 100 O NO Invoice.in_cu_id> = 5 Y
Invoice.in_id ENTRE 1 Y 10 000 O Invoice.in_id> 49 + 1 Y Invoice.in_total + 33 <> 5 Y Invoice.in_total = factura. in_totalafterdiscount * 2;

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 124 ms + 9% + 3 MB + 1 MB +2
Orculo 125 ms + 14% + 7 MB + 1 MB +6
IBM DB2 125 ms + 12% + 11MB + 1 MB +2
MySQL 126 ms + 12% + 3 MB + 1 MB +2
MS Access 170 ms + 6% + 2MB + 1 MB +1

23
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

Consulta # 3

Esta consulta se utiliza para probar la unin cooperacin entre diferentes tablas:

SELECT Customer.cu_id , Invoice.in_id , InvoiceDetail.ind_qty , Item.it_serialnumber ,


Movement.mo_description , Movement_Details.mo_it_id , Users.us_id , Users.us_code ,
PurchaseOrder.po_description, Supplier.su_name DE cliente, Factura, LineaFactura, Artculo, Movimiento
, Movement_Details, usuarios, PurchaseOrder, surtidor
DONDE Supplier.su_name = "Mike" Y Customer.cu_id = Invoice.in_cu_id Y InvoiceDetail.ind_in_id = Invoice.in_id Y InvoiceDetail.ind_it_id =
Item.it_id Y Movement_Details.mod_mo_id = Movement.mo_id Y Movement.mo_us_id = Users.us_id Y PurchaseOrder .po_us_id = Users.us_id
Y PurchaseOrder.po_us_id = Users.us_id Y PurchaseOrder.po_su_id Y Supplier.su_id;

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 123 ms + 3% + 33MB + 3 MB +2
Orculo 122 ms + 4% + 37MB + 4MB +6
IBM DB2 123 ms + 3% + 43MB + 5 MB +2
MySQL 126 ms + 3% + 27MB + 3 MB +2
MS Access 231 ms + 3% + 26MB + 3 MB +1

Consulta # 4

Esta consulta se utiliza para probar la clasificacin operacin para cada DBMS:

SELECT Customer.cu_id , Customer.cu_name , Customer.cu_telephone , Customer.cu_fax ,


Customer.cu_email desde el pedido del cliente AL Customer.cu_id, Customer.cu_name DESC, Customer.cu_telephone DESC,
Customer.cu_fax, Customer.cu_email DESC;

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 429 ms + 29% + 3 MB + 1 MB +2
Orculo 431 ms + 41% + 7 MB + 1 MB +6
IBM DB2 423 ms + 38% + 11MB + 1 MB +2
MySQL 428 ms + 18% + 3 MB + 1 MB +2
MS Access 440 ms + 17% + 2MB + 1 MB +1

Consulta # 5

El propsito de esta consulta es poner a prueba capacidades computacionales de la DBMS mediante la ejecucin de diferente funciones aritmticas:

SUM SELECT (Invoice.in_total) , AVG (Invoice.in_totalafterdiscount) , MAX (Invoice.in_total) ,


COUNT (Customer.cu_id), SUM (InvoiceDetail.ind_qty) del Cliente, Factura, LineaFactura DONDE Customer.cu_id = Invoice.in_cu_id Y
Invoice.in_id = InvoiceDetail.ind_in_id GROUP BY Invoice.in_id;

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 777 ms + 54% + 13MB + 1 MB +2
Orculo 801 ms + 70% + 16MB + 2MB +6
IBM DB2 650 ms + 55% + 21MB + 2MB +2
MySQL 732 ms + 35% + 13MB + 1 MB +2
MS Access 1234 ms + 33% + 10MB + 1 MB +1

Consulta # 6

Esta consulta se suma a las condiciones de la consulta anterior despus de la TENIENDO clusula:

SUM SELECT (Invoice.in_total) , AVG (Invoice.in_totalafterdiscount) , MAX (Invoice.in_total) ,


COUNT (Customer.cu_id), SUM (InvoiceDetail.ind_qty) del Cliente, Factura, LineaFactura DONDE Customer.cu_id = Invoice.in_cu_id Y
Invoice.in_id = InvoiceDetail.ind_in_id GROUP BY Invoice.in_id
TENIENDO COUNT (Invoice.in_id)> 0 Y SUM (Invoice.in_total) =
AVG (factura, in_totalafterdiscount);

24
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 2304 ms + 60% + 13MB + 1 MB +2
Orculo 2700 ms + 77% + 16MB + 2MB +6
IBM DB2 2001 ms + 61% + 21MB + 2MB +2
MySQL 2732 ms + 46% + 13MB + 1 MB +2
MS Access 3001 ms + 41% + 10MB + 1 MB +1

Consulta # 7

Esta consulta prueba las capacidades de cada DBMS cuando interior SELECTs anidados se utiliza:

SELECT Customer.cu_name DE DONDE cliente Customer.cu_name = (SELECT Users.us_name de los usuarios DONDE Users.us_class =
"administrador") Y Customer.cu_fax = (SELECT Supplier.su_fax desde el proveedor DONDE Supplier.su_phone = "123456") y el Cliente
.cu_email = (SELECT Supplier.su_email de proveedores DONDE Supplier.su_address LIKE "% h%");

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 292 ms + 3% + 17MB + 2MB +2
Orculo 290 ms + 4% + 24MB + 2MB +6
IBM DB2 650 ms + 3% + 27MB + 3 MB +2
MySQL 340 ms + 3% + 19MB + 2MB +2
MS Access 698 ms + 2% + 15MB + 1 MB +1

Consulta # 8

Ahora viene la prueba definitiva que ser combinar todas las consultas anteriores en una sola consulta SQL atmica:

SELECT Customer.cu_id , Invoice.in_id , InvoiceDetail.ind_qty , Item.it_serialnumber ,


Movement.mo_description , Movement_Details.mo_it_id , Users.us_id , Users.us_code ,
PurchaseOrder.po_description, Supplier.su_name, SUM (Invoice.in_total), AVG (Invoice.in_totalafterdiscount)
, MAX (Invoice.in_total), COUNT (Customer.cu_id), SUM (InvoiceDetail.ind_qty) del Cliente, Factura, LineaFactura, punto, el movimiento,
Movement_Details, Usuarios, PurchaseOrder, surtidor DONDE Invoice.in_id
> us_id Y PurchaseOrder.po_su_id Y Supplier.su_id; ORDER BY Customer.cu_id, Customer.cu_name DESC, Invoice.in_id DESC,
Users.us_name, Invoice.in_description DESC; GRUPO POR Customer.cu_id, Invoice.in_id, InvoiceDetail.ind_qty, Item.it_serialnumber,
Movement.mo_description

, Movement_Details.mo_it_id , Users.us_id , Users.us_code ,


PurchaseOrder.po_description , Supplier.su_name HAVING COUNT (Invoice.in_id)> 0 Y
SUM (Invoice.in_total) = AVG (factura, in_totalafterdiscount);

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 6790 ms + 99% + 41MB + 3 MB +2
Orculo 8100 ms + 100% + 51MB + 4MB +6
IBM DB2 6071 ms + 99% + 59MB + 5 MB +2
MySQL 7520 ms + 99% + 38MB + 3 MB +2
MS Access 12678 ms + 99% + 31MB + 3 MB +1

Consulta # 9

Esta consulta prueba la capacidad de los DBMS bajo prueba para ejecutar ACTUALIZAR declaraciones con condiciones complicadas:

25
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

Actualizar el artculo SET Item.it_price = Item.it_price * 0,1 = 10 Y Item.it_qtity Y Item.it_description = "TV" DONDE Item.it_id> 10 Y
Item.it_expirydate> 1/1/2007 Y Item.it_expirydate <1/1 / 2008 Y Item.it_manufacturer = "Philips" OR Item.it_manufacturer = "Sharp" OR
Item.it_manufacturer = "Toshiba";

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 45 ms + 7% + 3 MB + 1 MB +2
Orculo 21 ms + 11% + 7 MB + 1 MB +6
IBM DB2 102 ms + 8% + 11MB + 1 MB +2
MySQL 52 ms + 8% + 3 MB + 1 MB +2
MS Access 201 ms + 7% + 2MB + 1 MB +1

Consulta # 10

Esta consulta final ejecuta una BORRAR consultar sobre el DBMS seleccionado:

DELETE FROM Factura DONDE Invoice.in_date> 1/1/2006 Y Invoice.in_date <1/1/2007 Y Invoice.in_description LIKE '% VTT%' y
Invoice.in_totalinletter LIKE '% USD' Y Invoice.in_total = Invoice.in_totalafterdiscount Y Invoice.in_ totalafterdiscount <> 33,1 O NO
Invoice.in_cu_id> = 5 Y Invoice.in_id ENTRE 1 Y 10 000 O Invoice.in_id <71/2 Y Invoice.in_total + 33 <> 5 Y Invoice.in_total =
Invoice.in_totalafterdiscount - 112;

Ejecucin Uso de la Utilizacin de la Memoria virtual hilos


Hora CPU memoria Utilizacin utilizados
servidor SQL 111 ms + 7% + 3 MB + 1 MB +2
Orculo 140 ms + 11% + 7 MB + 1 MB +6
IBM DB2 160 ms + 8% + 11MB + 1 MB +2
MySQL 148 ms + 8% + 3 MB + 1 MB +2
MS Access 182 ms + 7% + 2MB + 1 MB +1

5. Resultados y Conclusiones

Los resultados del ensayo se representan utilizando diagramas grficos e histogramas estadsticos. Obviamente, no hay un ganador definitivo. Los grficos
muestran claramente que IBM DB2 es el DBMS ms rpido, sin embargo MS Access tiene una menor utilizacin de la CPU y otras bases de datos IBM DB2 es
la mayor cantidad de DBMS que consume memoria primaria. La Figura 4 representa el tiempo medio de ejecucin, la figura 5 representa el promedio de
utilizacin de la CPU, y la Figura 6 representa la utilizacin media de memoria.

2000 1885.6

1800

1600

1400 1275.3 SQL Server 10g


1222.3
Promedio de tiempo de ejecucin

1200 1101.3 de Oracle IBM


1032.3
1000 DB2 MySQL 5.0

800 ms Access

600

400

200

DBMS

Figura 4 - Promedio de tiempo de ejecucin

26
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

34%
35%
29%
30% 27%
24% 22% SQL Server 10g
25%
de Oracle IBM
La utilizacin media 20%

de la CPU DB2 MySQL 5.0


15%
MS Access
10%

5%

0%

Figura 5 - Utilizacin media de CPU

Servidor SQL,
10.2MB 13.2MB

MySQL 5.0,
12.5MB MS Access,

Oracle 10g,
17.9MB
IBM DB2,
22.6MB

Figura 6 - Uso medio de memoria

Reconocimiento
Esta investigacin fue financiada por la Asociacin Libanesa de Ciencias de la Computacin (LACSC), Beirut, Lbano, en el marco del Proyecto de
Investigacin de Evaluacin y Rendimiento - EPRP2012.

referencias

[1] Jeffrey A. Hoffer, Mary Prescott, Heikki Topi, Base de Datos moderna, 9 edicin, Prentice Hall, 2008. [2] MS SQL Server 2008,

http://www.microsoft.com/sqlserver/en/us/default.aspx [3] Oracle Database 11g Release 2,

http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html [4] IBM DB2 base de datos, http://www-01.ibm.com/software/data/db2/ [5] MySQL

base de datos de 5,5, http://www.mysql.com/products/enterprise/database/ [6] Microsoft Access Home Page,

http://office.microsoft.com/en-us/access/default.aspx [7] Ray Rankins, Paul T. Bertucci, Chris Gallelli, Alex T. Silverstein, Microsoft SQL Server 2008 R2

Unleashed, Sams, primero

ed, 2010. [8] Kevin Loney, base de datos Oracle 11g The Complete Reference, McGraw-Hill Osborne Media, ed 1o., 2008. [9] Paul Zikopoulos, George

Baklarz, Leon Katsnelson, Leon Katsnelson, IBM DB2 9 Nuevas caractersticas, McGraw-Hill

Medios Osborne; ed 1 Tes., 2007. [10] Michael Kofler, la gua definitiva a MySQL 5, Apress, 3 ed, 2005. [11] Jeff Conrad, John Viescas, Microsoft Access

2010 Inside Out, Microsoft Press, 2010. [12] Mark Russinovich, David A. Solomon, Alex Ionescu, Windows Internals: Incluyendo Windows Server 2008 y

Windows Vista, 5 edicin, Microsoft Press, 2009.

27
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

Apndice A
Este apndice incluye las diferentes consultas DDL que se utilizaron para construir e implementar la base de datos relacional, junto con sus relaciones
y restricciones.

DROP DATABASE IF EXISTS `uniDB`;


CREAR BASE DE DATOS `` uniDB / 40100 * DEFAULT CHARACTER SET latin1 * /!; Usar `` uniDB;

CREATE TABLE `category` (


`Int ca_id` (11) auto_increment NOT NULL,` ca_description`
varchar (50) NULL predeterminada, `varchar ca_code` (50)
NULL predeterminada, PRIMARY KEY (` ca_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `` del cliente (


`Int cu_id` (11) auto_increment NOT NULL,` cu_name` varchar
(50) NULL predeterminada, `varchar cu_telephone` (50) NULL
predeterminada,` varchar cu_fax` (50) NULL predeterminada,
`varchar cu_email` (50) NULL predeterminada , PRIMARY KEY
( `cu_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `invoice` (


`Int in_id` (11) auto_increment NOT NULL,` in_cu_id` int (11)
NULL predeterminada, `in_date` NULL predeterminada de fecha y
hora,` Char in_description` (50) NULL predeterminada, `int
in_total` (11) NULL predeterminada,` in_discount `char (50) NULL
predeterminada,` in_totalafterdiscount` int (11) NULL
predeterminada, PRIMARY KEY ( `in_id`), tecla` in_cu_id` (
`in_cu_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1 ROW_FORMAT = fijo;

CREATE TABLE `invoicedetail` (` int ind_id` (11) NOT NULL


AUTO_INCREMENT, `int ind_in_id` (11) NULL por defecto,`
ind_it_id` int (11) NULL por defecto, `ind_qty` int (11) NULL
por defecto,` ind_total` flotador (53,10) NULL
predeterminada, PRIMARY KEY ( `ind_id`), tecla` ind_in_id`
( `ind_in_id`), tecla` ind_it_id` ( `ind_it_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `item` (


`It_id` int (11) NOT NULL AUTO_INCREMENT,` it_ca_id` int (11)
NULL predeterminada, `it_lo_id` int (11) NULL predeterminada,`
Char it_serialnumber` (50) NULL predeterminada, `Char it_code`
(50) NULL predeterminada , `Char it_barcode` (10) NULL
predeterminada,` it_expirydate` NULL predeterminada de fecha y
hora, `Char it_description` (50) NULL predeterminada,` Char
it_manufacturer` (50) NULL predeterminada, `flotador it_price`
(53,10) NULL predeterminada, `it_qtity` int (11) NULL
predeterminada, PRIMARY KEY (` it_id`), tecla `it_ca_id` (`
it_ca_id`), tecla `it_lo_id` (` it_lo_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1 ROW_FORMAT = fijo;

CREATE TABLE `location` (

28
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

`Int lo_id` (11) auto_increment NOT NULL,` lo_description`


varchar (50) NULL predeterminada, `varchar lo_code` (50)
NULL predeterminada, PRIMARY KEY (` lo_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `movement` (


`Int mo_id` (11) auto_increment NOT NULL,` int mo_us_id` (11)
NULL predeterminada, `mo_description` char (50) NULL
predeterminada,` mo_date` NULL predeterminada de fecha y
hora, PRIMARY KEY ( `mo_id`), tecla` mo_us_id` ( `mo_us_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1 ROW_FORMAT = fijo;

CREATE TABLE `movement_details` (` int mod_id` (11) NOT


NULL AUTO_INCREMENT, `int mod_mo_id` (11) NULL por
defecto,` mod_it_id` int (11) NULL por defecto, `mod_qtity` int
(11) NULL por defecto,` mod_fromlocation` char (50) NULL
predeterminada, `mod_tolocation` char (50) NULL
predeterminada, PRIMARY KEY (` mod_id`), tecla `mod_it_id`
(` mod_it_id`), tecla `mod_mo_id` (` mod_mo_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1 ROW_FORMAT = fijo;

CREATE TABLE `purchaseorder` (` int po_id` (11) no


auto_increment NULL, `int po_us_id` (11) NULL
predeterminada,` int po_su_id` (11) NULL predeterminada,
`Char po_description` (50) NULL predeterminada,`
po_dateofissue` fecha y hora NULL predeterminada,
`po_recievedate` NULL predeterminada de fecha y hora,` Char
po_status` (50) NULL predeterminada, PRIMARY KEY (
`po_id`), tecla` po_us_id` ( `po_us_id`), tecla` po_su_id` (
`po_su_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1 ROW_FORMAT = fijo;

CREATE TABLE `purchaseorder_details` (` int pod_id` (11)


NOT NULL AUTO_INCREMENT, `int pod_po_id` (11) NULL
por defecto,` pod_it_id` int (11) NULL por defecto, `pod_qtity`
int (11) NULL por defecto,` pod_remainingqtity` int (11) NULL
predeterminada, PRIMARY KEY ( `pod_id`), tecla`
pod_po_id` ( `pod_po_id`), tecla` pod_it_id` ( `pod_it_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `reciept` (


`Int re_id` (11) auto_increment NOT NULL,` re_cu_id` int (11) NULL
predeterminada, `re_date` NULL predeterminada de fecha y hora,` int
re_amount` (11) NULL predeterminada, `varchar re_modeofpayment`
(50) NULL predeterminada,` re_checknumber `varchar (50) NULL
predeterminada,` re_bank` varchar (50) NULL predeterminada,
PRIMARY KEY ( `re_id`), tecla` re_cu_id` ( `re_cu_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `stockcount` (

29
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

`Int st_id` (11) auto_increment NOT NULL,` st_us_id` int (11)


NULL predeterminada, `st_description` varchar (50) NULL
predeterminada,` st_date` NULL predeterminada de fecha y
hora, `varchar st_status` (50) NULL predeterminada, PRIMARY
KEY ( `st_id`), tecla` st_us_id` ( `st_us_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `stockcount_details` (` int std_id` (11) NOT


NULL AUTO_INCREMENT, `int std_st_id` (11) NULL por
defecto,` std_it_id` int (11) NULL por defecto, `std_qtity` int
(11) NULL por defecto,` std_remainingqtity` int (11) NULL
predeterminada, PRIMARY KEY ( `std_id`), tecla` std_st_id`
( `std_st_id`), tecla` std_it_id` ( `std_it_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `supplier` (


`Int su_id` (11) auto_increment NOT NULL,` su_name` varchar
(50) NULL predeterminada, `varchar su_phone` (50) NULL
predeterminada,` varchar su_address` (50) NULL
predeterminada, `su_fax` varchar (50) NULL predeterminada ,
`varchar su_email` (50) NULL predeterminada, PRIMARY KEY (`
su_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

CREATE TABLE `` de los usuarios (

`Int us_id` (11) auto_increment NOT NULL,` us_code` varchar


(50) NULL predeterminada, `varchar us_name` (50) NULL
predeterminada,` varchar us_password` (50) NULL
predeterminada, `us_class` varchar (50) NULL predeterminada ,
PRIMARY KEY ( `us_id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1;

ALTER TABLE `invoice`


ADD FOREIGN KEY ( `in_cu_id`) Referencias` `del cliente (` cu_id`);

ALTER TABLE `invoicedetail`


ADD FOREIGN KEY ( `ind_it_id`) REFERENCIAS` item` ( `it_id`), ADD FOREIGN KEY (`
ind_in_id`) Referencias `invoice` (` in_id`);

ALTER TABLE `item`


ADD FOREIGN KEY ( `it_ca_id`) REFERENCIAS` category` ( `ca_id`), ADD FOREIGN KEY
(` it_lo_id`) Referencias `location` (` lo_id`);

ALTER TABLE `movement`


ADD FOREIGN KEY ( `mo_us_id`) REFERENCIAS` `de los usuarios (` us_id`);

ALTER TABLE `movement_details`


ADD FOREIGN KEY ( `mod_mo_id`) Referencias` movement` ( `mo_id`), ADD FOREIGN KEY (`
mod_it_id`) REFERENCIAS `item` (` it_id`);

ALTER TABLE `purchaseorder`


ADD FOREIGN KEY ( `po_su_id`) REFERENCIAS` supplier` ( `su_id`), ADD FOREIGN KEY
(` po_us_id`) Referencias `` de los usuarios ( `us_id`);

ALTER TABLE `purchaseorder_details`


ADD FOREIGN KEY ( `pod_po_id`) REFERENCIAS` purchaseorder` ( `po_id`),

30
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la

Computacin e Investigacin
Los autores,

ADD FOREIGN KEY ( `pod_it_id`) REFERENCIAS` item` ( `it_id`);

ALTER TABLE `reciept`


ADD FOREIGN KEY ( `re_cu_id`) REFERENCIAS` `del cliente (` cu_id`); ALTER TABLE
`stockcount`
ADD FOREIGN KEY ( `st_us_id`) REFERENCIAS` `de los usuarios (` us_id`);

ALTER TABLE `stockcount_details`


ADD FOREIGN KEY ( `std_st_id`) REFERENCIAS` stockcount` ( `st_id`), ADD FOREIGN KEY
(` std_it_id`) Referencias `item` (` it_id`);

31

Вам также может понравиться