CENTRO DE INVESTIGACIONES Y DESARROLLO FACULTAD DE INGENIERA
VENTANA INFORMTICA No. 12 Universidad de Manizales, enero junio / 2005 pp 277-286
Bases de datos con software libre
Diego Samir Melo Solarte 1
Resumen
En el presente artculo ilustra diferentes opciones de Sistemas Gestores de Bases de Datos, desde la perspectiva del software libre, mostrando un listado de las diferentes opciones existentes y breves caractersticas de cada uno de ellos que le permitirn a los desarrolladores de software tener a su disposicin una gama de opciones ms amplia y econmica. Adems, se plantea varias caractersticas que se deben tener en cuenta a la hora de elegir una herramienta para administrar y desarrollar sistemas de informacin. Por ltimo se realiza una breve comparacin entre PostgreSQL y MySQL como las herramientas ms comunes dentro del desarrollo WEB.
Hoy en da, todas las empresas ya sean grandes, medianas o pequeas y sin importar su tipo (acadmicas, comerciales, industriales, etc.) requieren de un buen sistema de informacin (SI) que de soporte a la toma de decisiones ya sea a nivel Administrativo, Tctico e incluso el Operativo.
Ahora bien, el trabajo de los desarrolladores est orientado al anlisis, diseo y construccin de un sistema de informacin acorde a las necesidades de la empresa, de tal forma que satisfaga en gran medida los requerimientos de software planteados por una organizacin, adems de las caractersticas propias de la Ingeniera de Software como son: la escalabilidad, usabilidad, desempeo, seguridad, disponibilidad, tolerancia a fallos, estabilidad y la robustez del sistema entre otras. Si se piensa en ello, es muy comn que el desarrollador oriente sus esfuerzos en buscar una herramienta SGBD 2 , que
1 Ingeniero de Sistemas, Facultad de Ingeniera, Universidad de Manizales. mdiego@athenea.umanizales.edu.co
2 Sistema Gestor de Base de Datos (SGBD): se puede definir como todo el conjunto de herramientas que acompaan al motor de base de datos y permiten a los diferentes tipos de usuarios interactuar con la BD. recuerde que el motor de BD es la arquitectura lgica o mejor dicho el algoritmo que permite - Universidad de Manizales, enero junio / 2005
2 pueda dar el mejor soporte y la garanta de poder cubrir las exigencias de funcionamiento y calidad que requiere el sistema.
A la hora de implementar sistemas de informacin de alto desempeo ya sean OLTP 3 o OLAP 4 , los SGBD elegidos por la mayora de los desarrolladores son Oracle, Informix o DB2, entre otros. Pero surge un interrogante. Qu costo implica utilizar una herramienta de este nivel?; tal vez si se realiza una evaluacin de todas las consideraciones que implica el desarrollo de un sistema de informacin, se detecta que de todo el presupuesto del proyecto, la herramienta que sustentar la Base de Datos BD 5 , se lleva un porcentaje considerable y no todas las organizaciones o empresas disponen de una solvencia econmica suficiente como para elegir un SGBD de los mencionados anteriormente; esto ha llevado a diferentes grupos desarrolladores, a buscar nuevas alternativas en el mercado que adems de respaldar un SI, tambin permita cubrir todas las necesidades del diseo. Como alternativa, las organizaciones de software libre y sus herramientas se ha convertido en una gran posibilidad de hacer buenos desarrollos a un menor costo y quiz con muchas ms posibilidades; es muy alta la oferta que existe de SGBD con software libre, fcilmente se puede conseguir en Internet SGBD para todos los gustos (Tabla 1), todo depende de las necesidades que se tenga y la disposicin para evaluar diferentes alternativas que a continuacin se presentan.
acceder los datos. Los SGBD tambin se conocen como sistemas administradores de BD con su sigla en ingles DBMS(Data Base Management System). 3 On Line Transaction Processing OLTP: El procesamiento transaccional se realiza para manipular poco volumen de informacin y alto nivel de concurrencia, tal es el caso de los sistemas bancarios, donde una consignacin es una transaccin que solo necesita Nmero de Cuenta y Valor a consignar. 4 On Line Analitical Process OLAP: El Procesamiento Analtico esta orientado a solo consultas basadas el estudio de grandes volmenes de informacin histrica y donde la operacin es lenta, las consultas realizadas en una BD OLAP tienen un alto nivel de complejidad y no son predecibles 5 Bases de Datos (BD): Coleccin de datos almacenados en un dispositivo informtico no voltil, los datos deben estar disponibles en todo momento para actualizaciones, adiciones, borrados y consultas, esttos datos siempre deben mantener su integridad y coherencia. Es muy comn encontrar personas que hablan de bases de datos cuando se refieren a un listado, pero no hay que confundir el producto de una base de datos con la misma base de datos, por ejemplo: un directorio telefnico, no es una base de datos ya que en l no se podr ni actualizar, ni borrar y mucho menos agregar datos CENTRO DE INVESTIGACIONES Y DESARROLLO FACULTAD DE INGENIERA
3 Tabla 1. Listado de algunos SGBD que se inclinan por la filosofa del software libre
Los anteriormente listados, no son los nicos SGBD; desde el punto de vista acadmico o comercial, se han desarrollado otros, quizs no tan comunes o difundidos como los anteriores pero que hacen parte de la gran oferta que se puede encontrar en la familia del software libre, como lo muestra la Tabla 2.
Nombre Generalidades Interfaces Sistema Operativo mSQL Mini SQL o MSQL es un ligero motor de bases de datos orientado principalmente a trabajar en maquinas de poca velocidad C, ESL, Tcl, Perl, Python, NextSTEP, X11 y SQL como lenguaje de consulta SunOS, Solaris, HP-UX, AIX, Linux, FreeBSD-2, SCO, SVR4, NeXT, Cray Unicos, OSF/1, Ultrix. MySQL Quizs el SGBD ms popular hoy en da para WEB, su principal caracterstica es la velocidad aunque carece de grandes posibilidades de administracin. SQL92, ODBC, C, Perl, JAVA, C++, Python BSDOS, SunOS, Solaris, Linux, IRIX, AIX, OSF1, BSD/OS, FreeBSD, Windows University INGRES SGBD que parte del uso bsico que tena el antiguo INGRES Corporation, aunque no tiene todas las bondades del producto comercial actual QUEL, EQUEL SunOS, Linux Qddb Se basa en la versin comercial de Qddb, su principal caracterstica es la velocidad aunque no tiene un amplio soporte en el tipo de datos. Tcl/Tk, SQL Ultrix, OSF/1, BSD/386, Linux, SunOS, Solaris. Exodus Un SGBD orientado a objetos, permite el manejo de transacciones y la construccin de BD distribuidas, no soporta SQL GNU E, C++ MIPS/Ultrix, SPARC/SunOS, HP 7xx/HP-UX, Linux Berkely DB De la misma familia de Postgres, es un SGBD de alto desempeo, rpido y una de las grandes ventajas es que permite una buenahttps://athenea.umanizales.e du.co/mail2/src/webmail.php puesta a punto para cada caso de negocio. dbm, ndbm, hsearch, DB 1.85 Linux, MacOS X, QNX, UNIX, VxWorks y Windows. PostgreSQ L Un SGBD objeto relacional orientado principalmente a bases de datos grandes, tiene muy buen soporte de administracin y auditoria SQL, C API, C++ API, Tcl API, Perl5 API, Python API, WWW Gateway, JDBC driver, X11 Linux, Solaris, Digital Unix, BSD, Windows Ozone Es un nuevo SGBD orientado a objetos cuya objetivo principal es soportar desarrollos WEB JAVA, XML Cualquiera que soporte la maquina virtual de java - Universidad de Manizales, enero junio / 2005
PostgreSQL y MySQL son los SGBD de mayor representacin dentro del mundo de Software Libre, principalmente por su alta integracin con herramientas de programacin WEB como PHP 6 o JAVA 7 . al confrontarlas, surgen varias inquietudes, entre ellas las ms frecuentes son: cul es mejor? o tambin la pregunta que se hace todos los DBA 8 a la hora de implementar un sistema de informacin: qu SGBD debo escoger, MySQL o PostgreSQL?.
Pues bien, desde un punto de vista objetivo, hacer la comparacin de PostgreSQL y MySQL se podra considerar inadecuado; ya que si se realiza una pequea analoga, sera como comparar un camin, frente a una tractomula, cada uno fue desarrollado con un propsito y un tipo de servicio diferente. Esto de paso permite responder la segunda inquietud, cul escoger?, bien cuando el DBA se responda para qu lo necesita y que resultados espera, podr elegir fcilmente entre un SGBD u otro.
A continuacin se plantean algunos puntos de comparacin, no con el fin de determinar cual SGBD es mejor, sino para ayudar a los analistas,
6 Preintrprete de Hipertexto PHP: Lenguaje de programacin de alto nivel, orientado a la WEB http://www.php.net
7 JAVA: Lenguaje de programacin orientado a objetos, desarrollado por SUN Microsystem, sus principales caractersticas son: portabilidad, seguridad y multitarea. http://www.sun.com
8 Administrador de Bases de Datos DBA: son los encargados de velar por el correcto funcionamiento de la BD, en trminos generales, son las personas que garantizan que la BD que soporta al Sistema de Informacin esta disponible en cualquier momento para cualquier usuario que desee usar el Sistema. CENTRO DE INVESTIGACIONES Y DESARROLLO FACULTAD DE INGENIERA
5 diseadores y desarrolladores a tomar una decisin, de acuerdo a las necesidades propias del SI y las caractersticas que cada SGBD tenga.
En resumen, PostgreSQL y MySQL tienen muy buen soporte web, actualmente es para lo que ms se les utiliza, aunque si se piensa en desarrollar aplicaciones WEB, donde el factor principal es la velocidad, se puede inclinar por MySQL ya que este es ms rpido debido a que no hace ningn tipo de control y/o auditora; mientras, si el objetivo es desarrollar una
9 Struct Query Language SQL: el lenguaje de consulta estructurado es una herramienta estndar dentro de las interfaces existentes para interactuar con una BD.
10 Triggers: se denominan disparadores, su principal objetivo es ejecutar algn procedimiento en el momento que ocurra un evento en la BD o tabla asociada a l. Caracterstica MySQL PostgreSQL Definicin de Esquema Relacional Objeto / Relacional SQL 9 para Consulas SQL92 SQL92 y SQL99 Herramientas de Administracion Grafica PhpMyAdmin, perlDBDmysql y herramientas que soporten java o jdbc PgAccess y herramientas que soporten java o jdbc Tipos de Datos Soportados en la versin 4. soporta aproximadamente 27 tipos de datos entre carcter, numricos y fecha en la versin 7.4 soporta 62 tipos de datos entre carcter, numricos, fecha y otros de tipo administrativo como aclitem, oid, xid etc. Procedimientos almacenados No tiene soporte de procedimientos almacenados Triggers 10 y Funciones Elementos adicionales (Vistas, Sinnimos, Secuencias, etc. ) No soporta Vistas, no soporta sinnimos, pero si soporta algunas secuencias. soporta vistas, dominios, tipos de objetos nuevos, secuencias, reglas, no soporta sinnimos Backup en Caliente mysql_dump pg_dump Integridad de Datos No tiene soporte de constraint Buen manejo de constraint Joins No tiene soporte Soporta, natual join, inner join, cross join sin ningn inconveniente, adems permite manejar subconsultas con unin, interseccin y excepciones. Recursos Bajo consumo de recursos como memora RAM y hardware el consumo de memoria aumenta aproximadamente en 25% ms que MySQL Interfaz bsica de comandos mysql psql PHP buena integracin con php Buena integracin con php, en las ltimas versiones ha aumentado el soporte de funciones. Rendimiento alta velocidad Buena velocidad pero menor que la ofrecida por mysql - Universidad de Manizales, enero junio / 2005
6 aplicacin a la medida donde predomine la estabilidad, integridad y seguridad del sistema, la orientacin es PostreSQL. Tenga en cuenta que PostgreSQL es un SGBD de alto desempeo orientado a la construccin de SI distribuidos, Clusters 11 , o Mineras de informacin, es decir esta orientado al manejo de grandes volmenes de informacin, y MySQL esta orientado a la realizacin de transacciones rpidas con el fin de agilizar la respuesta de una WEB.
Un DBA cul elegira?. Bien, para ello se requieren evaluar algunos factores importantes que involucra el desarrollo de cualquier sistema de informacin, entre los cuales se tienen:
Factores Tcnicos: Es necesario determinar el tipo de sistema de informacin a construir, Cliente/Servidor, Distribuido, Data Mining, entre otros. La Interfaz de usuario a usar. Tipos de Lenguaje que puede soportar un SGBD. La disponibilidad de hardware.
Factores Econmicos Costo de licenciamiento Costo de desarrollo e implementacin Determinar el costo de capacitacin Costo de operacin
Otros factores: La seguridad de los datos Estabilidad Velocidad Mecanismos de respaldo Mecanismos de Control Cantidad de Peticiones Mecanismos de seguridad
Por ltimo, se requiere un anlisis minucioso que permita determinar la relacin costo/beneficio 12
11 Cluster: tipo de arquitectura paralela distribuida que consiste de un conjunto de computadores independientes interconectados operando de forma conjunta como un nico recurso computacional Sin embargo, cada computador puede utilizarse de forma independiente o separada. http://www.ac.uma.es/educacion/cursos/informatica/ArqDist/pdfs/05-ClustersBW.pdf
12 costo/beneficio Valorizacin de evaluacin que relaciona las utilidades en el capital invertido o el valor de la produccin con los recursos empleados y el beneficio generado. http://www.definicion.org/costo-beneficio CENTRO DE INVESTIGACIONES Y DESARROLLO FACULTAD DE INGENIERA
7 Evaluando la alternativas del software libre, se puede encontrar SGBD que se ajusten a cualquier necesidad que involucran los factores tcnicos; en los factores econmicos se podr obtener una muy buena reduccin de costos ya que el software libre por lo general es muy econmico y en muchas ocasiones tiende a cero, para el caso, MySQL y PostgreSQL se los consigue de manera gratuita en cualquier distribucin de Linux o en la red.
Algunos DBA's consideran que el dinero que se ahorra en el licenciamiento, se hace necesario invertirlo en capacitacin, pero hay que tener en cuenta que quin desarrolla el SI es conocedor de las diferentes herramientas y en los usuarios finales no es necesario invertir, ya que para ellos existen sus propias interfaces, totalmente transparentes para el manejo e interaccin con la BD.
Las BD con software libre claramente se ve que son una muy buena opcin, pero, por qu existe desconfianza para usar esta tecnologa?. Generalmente, las personas argumentan que no usan software libre simple y llanamente porque no hay soporte, porque el cdigo fuente lo conoce todo el mundo y es peligroso, lo barato puede salir caro; en fin, varios argumentos que producen desconfianza y temor pero la razn primordial es el desconocimiento lo cual ha llevado a generar juicios si fundamento y de paso justificar el miedo que produce probar algo nuevo.
El soporte si lo existe, basta con adquirir cualquier distribucin de Linux (Debian, Suse, RedHat, entre otras), adems si existe inconveniente, fcilmente se podr recurrir a Internet y en cuestin de horas alguna persona en el mundo le facilitar ayuda.
Lo del cdigo abierto es la esencia de GNU 13 , es decir del software Libre, y en vez de ser un riesgo se convierte en una fortaleza ya que cualquier usuario, como en este caso los desarrolladores, pueden adecuar la herramienta de acuerdo a las necesidades mejorando en cierta forma el desempeo de un Sistema de Informacin; ahora bien, esto es lo que ha permitido que la aparicin de bugs 14 sea rpidamente corregida y esa correccin rpidamente difundida por la red.
Por ltimo el ahorro obtenido en el software libre no puede ser juzgado como riesgo, sino como una oportunidad de hacer viable un proyecto de software.
El software libre existe y con l los SGBD libres, siendo estos, herramientas
13 GNU: Nombre otorgado por la Free Sosftware Fundation a todo software que se distribuye con su cdigo fuente y que el usuario puede adecuarlo de acuerdo a sus necesidades. http://www.gnu.org
14 Bugs: Denominacin dada a los diferentes agujeros de seguridad encontrados en un software. - Universidad de Manizales, enero junio / 2005
8 que ofrecen una diferente pero excelente alternativa para poder construir sistemas de informacin a muy bajo costo, con igual o mejor desempeo y dinamismo que los soportados en herramientas propietarias.
Bibliografa
DE MIGUEL Adoracin.; et. al. Fundamentos y modelos de bases de datos, Alfaomega, Mxico, 1999.
ULLMAN Jefrey, WIDOM Jennifer; Introduccin a los sistemas de bases de datos, Prentice Hall, Mxico, 1999.
PIATTINI Mario G; Anlisis y diseo detallado de aplicaciones informticas de gestin, Alfaomega, Mxico, 2000.
University of California at Berkeley Computer Science Department, PostgreSQL, On Line, California USA, 2005, (http://www.postgresql.org/) About History. Disponible en: http://www.postgresql.org/about/history
Mysql AB Founders, The World's Most Popular Open Source Database, On Line, Octubre 12 2001, (http://www.mysql.com) About. Disponible en http://www.mysql.com/company/
FirebirdSQL Foundation, Relational Database for the New Millenium, On Line, 2005, (http://firebird.sourceforge.net/) documentation history. Disponible en: http://firebird.sourceforge.net/index.php?op=history
Open Source Development Network, On Line, 2005, (http://sourceforge.net) opcin about souceforge.net, busquedas SGBD, DBMS.
Hughes Technologies, The home of Mini SQL (mSQL), On Line, Febrero 3 de 2005, (http://http://www.hughes.com.au/) products Mini SQ. Disponible en: http://www.hughes.com.au/products/msql/