De un modo simplificado, un SGBD (o DBMS. Microsoft SQL Server, MySQL y PostgreSQL



Documentos relacionados
Introducción a las redes de computadores

MANUAL COPIAS DE SEGURIDAD

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Capítulo 5. Cliente-Servidor.

WINDOWS : TERMINAL SERVER

HERRAMIENTAS DE ACCESS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Manual de NetBeans y XAMPP

Configuracion Escritorio Remoto Windows 2003

Aplicación para la gestión de prácticas en empresas. Memoria

Guía Rápida de Inicio

DEPARTAMENTO ADMINISTRATIVO NACIONAL DE ESTADÍSTICA. Oficina de Sistemas

La Digitalización del Ayuntamiento. Gestión Integral

Acronis License Server. Guía del usuario

Bechtle Solutions Servicios Profesionales

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Manual de Instalación. Sistema FECU S.A.

Internet Information Server

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Descripción. Este Software cumple los siguientes hitos:

Utilización del sistema operativo GNU/ Linux en las netbooks

BASES DE DATOS OFIMÁTICAS

Análisis de aplicación: Virtual Machine Manager

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

Toda base de datos relacional se basa en dos objetos

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

Maquinas virtuales Conceptos Básicos

INSTALACIÓN DE SQL SERVER 2008 Y SQL SERVER 2008 EXPRESS

FUENTES SECUNDARIAS INTERNAS

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

Base de datos relacional

Tutorial: Primeros Pasos con Subversion

APOLO GESTION INTEGRAL.

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14

Internet aula abierta

serra Access y SQL Server Qué es mejor en cada caso? Valentín Playá, Serra GTS 22 de enero de 2009 Bases de datos 1

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Popularidad comparada de PHP vs ASP, y posibles causas

Guía de uso del Cloud Datacenter de acens

Cómo instalar el software de CRM Personas en un alojamiento web remoto

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Sistema Operativo Linux

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Toda la potencia de AHORA para la micropyme

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

BASE DE DATOS RELACIONALES

GENERALIDADES DE BASES DE DATOS

#SoftwareLibre13 Reutiliza tu Antiguo PC con Linux

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

CÓMO MANEJAR SU NUEVO SITIO WEB SOBRE DRUPAL Manual técnico y de usuario. Pontificia Universidad Javeriana Grupo PSU CDI

Archivo de correo con Microsoft Outlook contra Exchange Server

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Conclusiones. Particionado Consciente de los Datos

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

Creación y administración de grupos de dominio

SLIDEFINDER: Una herramienta universal y gratuita para clasificar, buscar y compartir imágenes e información en la Web

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

Ventajas de Linux para. las empresas

Oficina Online. Manual del administrador

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Módulo 7: Los activos de Seguridad de la Información

Conceptos Generales en Joomla

Puesta en Marcha versión Monousuario

Qué es una máquina virtual?

SEMANA 12 SEGURIDAD EN UNA RED

ALERTA ANTIVIRUS: RECOMENDACIONES

IES Abyla. Departamento de Informática. Sistemas Operativos

Información de Producto:

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Optimizar base de datos WordPress

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Instalación Joomla. Instrucciones para instalar Joomla en un pc en la red local del instituto, o en un servidor en Internet

Capitulo 5. Implementación del sistema MDM

HOSTING TIPOS DE ALOJAMIENTO WEB EN INTERNET

CAPITULO 4. ANALISIS COMPARATIVO Y SELECCION DE LA PLATAFORMA EDUCATIVA.

DIAGNOSTICO SERVIDOR Y PLATAFORMA MOODLE

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores

Qué es una base de datos?

Análisis de aplicación: Cortafuegos de la distribución clearos

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

Solución GeoSAS. Otros módulos

PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

Antivirus PC (motor BitDefender) Manual de Usuario

Arquitectura de sistema de alta disponibilidad

Hostaliawhitepapers. Las ventajas de los Servidores dedicados. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC

Selección de los puntos de montaje

Administración de la producción. Sesión 2: Sistema Operativo (Microsoft Windows XP)

Sistema de SaaS (Software as a Service) para centros educativos

Transcripción:

Microsoft SQL Server, MySQL y PostgreSQL Santiago Gómez Ruiz La elección de un gestor de bases de datos en una empresa no es algo ni mucho menos trivial. De partida, puede llegar a ser una inversión tanto en hardware como en software muy cuantiosa, pero no sólo eso, además va a condicionar de manera determinante los desarrollos de aplicaciones que tengan que interactuar con el mismo. Un SGBD, o Sistema Gestor de Bases de Datos crea un entorno operativo que depende directamente de sus características, y en la mayoría de los casos, se convierte en el centro del entramado informático de la empresa. linux@software.com.pl De un modo simplificado, un SGBD (o DBMS en inglés) es una plataforma de software que almacena los datos que se le introduzcan, debiendo garantizar principalmente su disponibilidad, su seguridad y su integridad. Esto significa que es un conjunto de programas que permiten el almacenamiento de información, velando porque se pueda disponer de ella en cualquier momento, que la información sea correcta desde un punto de vista lógico y que sólo pueda ser accedida por las personas adecuadas. Y de un modo más directo, el SGBD es el guardián de los datos de la empresa. Ni más ni menos. De ahí que sea trascendental su correcta elección. Los productos que se analizan a continuación están creados en torno a un estándar en lenguajes de bases de datos, el SQL (Structured Query Language), proveniente del SE- QUEL (Structured English QUEry Language). Este último fue desarrollado durante la década de los 70 e implementado experimentalmente, ya que las máquinas comerciales de la época no tenían la suficiente potencia de cálculo como para ejecutar con rendimiento aceptable las operaciones del lenguaje. El lenguaje SQL se divide en tres sublenguajes: Lenguaje de definición de datos (DDL), que permite crear y alterar las estructuras en las que la información se almacena; Lenguaje de manipulación de datos (DML), que permite insertar, modificar, consultar y eliminar contenidos de la base de datos; Lenguaje de control de datos (DCL), que gestiona el acceso a los datos desde el punto de vista de la seguridad (usuarios), como desde el punto de vista de la integridad (concurrencia). En este artículo se revisarán tres gestores: Microsoft SQL Server, MySQL y PostgreSQL. Los dos últimos son multiplataforma, se encuentran implementaciones para varios Sobre el autor Santiago Gómez Ruiz es Director de Proyectos de Protalia, una consultoría española especializada en implantación y migración de Software Libre en entornos empresariales, docentes e institucionales. 52 Linux+ 4/2007

sistemas operativos, incluyendo GNU/Linux y Windows. Por el contrario, Microsoft SQL Server sólo funciona sobre Windows. Nuestra instalación será modesta, 25 puestos de trabajo. Se parte de la premisa de que se trata de una nueva instalación, sin ningún producto anterior instalado y por lo tanto, sin gastos de migración, que serían muy variables. La segunda parte de este artículo trata de cómo sería un proceso de migración. El que se evalúen estos tres SGBD no significa que sean los únicos o necesariamente los mejores para un propósito determinado. Hay productos magníficos como Oracle y DB2, ambos cerrados y de un precio considerablemente alto. Lamentablemente, todos los SGBD del mercado no caben en este artículo. Esto es importante, porque independientemente de las características propias de cada SGBD, éste a su vez va a correr sobre un sistema operativo, beneficiándose de sus puntos fuertes y viéndose perjudicado por sus debilidades. Por muy potente que sea un determinado aplicativo, si se implementa sobre un sistema operativo pobre, el resultado no puede ser excepcionalmente bueno. Por lo tanto, el primer extremo a considerar será el sistema operativo a elegir para hospedar a nuestro SGBD. Consideraremos GNU/Linux Debian 3.1 Sarge por una parte, y Microsoft Windows 2003 Server STD por otra. Microsoft Windows 2003 Server (www. microsoft.com/spain/windowsserver2003/default. mspx) es probablemente el sistema operativo más estable y seguro de Microsoft. Lamentablemente, eso no es mucho. Tanto en estabilidad como en seguridad deja mucho que desear, de hecho, la puesta en producción de una máquina con Windows nos va a obligar a la adquisición de un software antivirus. En cuanto a la estabilidad, un problema endémico de todos los sistemas operativos de Microsoft son sus bajas tasas de disponibilidad. Esto se debe fundamentalmente a dos motivos: Los sistemas se quedan colgados con una facilidad alarmante. Cada cuelgue y su posterior reinicio significan que se ha perdido tiempo, pero que además es posible que se haya perdido trabajo sin consolidar en los archivos. En un contexto de bases de datos, esto puede causar graves inconsistencias. El hecho de que cualquier alteración mínima en el hardware, hasta a veces en el más periférico (por ejemplo, simplemente al insertar un pendrive, situación que he experimentado yo personalmente), exija un reinicio del sistema no ayuda a mejorar la disponibilidad; Los tiempos de mantenimiento son elevadísimos, en parte causados por el deficiente sistema de ficheros utilizado, NTFS, que obliga a defragmentar los sistemas de archivo muy frecuentemente. Casi cada actualización del sistema operativo obliga a reiniciar el sistema. En cuanto a la seguridad, y aún con un buen antivirus actualizado, nada puede detener a un virus lo suficientemente reciente como para no constar en las bases de datos de nuestro antivirus. La cantidad de vulnerabilidades gravísimas que han afectado a los sistemas operativos de Microsoft, y que en alguna ocasión, como con los virus Sasser y Blaster, han llenado telediarios, no animan a confiar en la seguridad del sistema. En cuanto al rendimiento, es más pobre que el resto de los sistemas operativos. Si a esto le añadimos la muy intensa carga de trabajo del antivirus y la imposibilidad de desactivar la sesión gráfica, que es una auténtica devoradora de recursos, el rendimiento se ve muy seriamente mermado. En consecuencia, y por si todo lo anterior fuese poco, Microsoft Windows 2003 Server es muy exigente en cuanto a hardware. Finalmente, habría que hacer una consideración final sobre este sistema operativo de código cerrado: es prudente confiar todos los datos de nuestra empresa a un sistema operativo que sólo Microsoft sabe lo que hace por debajo de la interfaz gráfica? Esto es una cuestión subjetiva, y cada administrador deberá valorar su peso en la decisión. El precio de Microsoft Windows 2003 Server STD es de 490,24, más 4 paquetes de 5 licencias para uso de los puestos de trabajo: 457,36 * 4 = 1.829,44, sumando un total de 2319,68 euros. En cuanto al sistema operativo GNU/Linux Debian 3.1 Sarge, es un sistema operativo de código abierto, y totalmente libre y gratuito, que se puede descargar de la página principal del proyecto (http://www.debian.org) o desde cualquiera de sus mirrors. La estabilidad de Debian es legendaria. Salvo errores de hardware y lógicamente apagones, la probabilidad de tener que reiniciar un servidor basado en Debian es remotísima. La modularidad propia del sistema permite actualizarlo sin tener que reiniciar, ya que el mismo actualizador detiene el servicio que sea necesario, lo actualiza y vuelve a iniciarlo, en apenas un segundo. La seguridad de Debian es la propia de la mayoría de las distribuciones de GNU/Linux, salvo casos exóticos como Linspire. Políticas conservadoras de seguridad, perfecta delimitación de los usos del administrador y el usuario y perfecta compartimentación de los directorios que cada uno puede utilizar y su grado de utilización permiten al administrador de un servidor basado en Linux dormir tranquilo por las noches. Los virus no son un problema en Linux. Salvo experimentos en laboratorio, en los que expresamente se abren vulnerabilidades en el Figura 1. Administración de una base de datos mediante la herramienta MySQL Administrator www.lpmagazine.org 53

sistema, y posteriormente se aprovechan, o incluso extravagancias como emular un virus una suite de utilidades bastante completa. faz es clara e intuitiva y viene acompañado de de Windows con privilegios de administrador. En conclusión, incluso provocándolo Microsoft SQL Server (Microsoft SQL Server La herramienta de administración de expresamente, es muy difícil hacer funcionar Enterprise Manager) muestra la habitual disposición de este tipo de aplicativos de Micro- un virus para Linux. Vaya, que si lo que queremos es fastidiar soft, esto es, un árbol a la izquierda donde se nuestra máquina, es más fácil meterle fuego. muestra cada objeto clasificado por su tipo, Una ventaja común a todas las distribuciones de GNU/Linux es que son altamente per- las propiedades de dicho objeto. Esta dis- y un panel a la derecha donde se modifican sonalizables. Esto significa que se puede descargar al sistema de todo lo que no se necesiquier objeto de la base de datos, detener y reposición permite acceder fácilmente a cualta, incluyendo el sistema gráfico, dejando solamente las funcionalidades que se van a uticluidasiniciar el servicio y utilizar las utilidades inlizar. Lo anterior redunda en que el sistema Dentro de estas utilidades, aparte de bastante detallados programas de mantenimien- sea más liviano y más rápido, resumiendo, aumenta el rendimiento. to, podemos encontrar importadores/exportadores de datos y demás herramientas acce- De hecho, la interfaz gráfica se puede dejar desactivada, o se pueden instalar interfaces sorias al propio SGBD. gráficas sencillas e increíblemente ligeras, como Fluxbox, Xfce o Enlightenment, que apenas (triggers). Los disparadores son procedimien- Microsoft SQL Server posee disparadores impactan en los recursos. Yo personalmente tos que se ejecutan cuando ocurre un evento suelo dejarla desactivada, y sólo la utilizo por determinado, por ejemplo, que se inserte, modifique o elimine un registro. De esta manera, comodidad en algunos casos, ya que realmente, para qué necesita un servidor la interfaz parte de la lógica de la aplicación la realiza la gráfica la mayoría de su tiempo? base de datos. Como se ha comentado, la licencia de La utilización de disparadores es muy GNU/Linux Debian 3.1 Sarge es gratuita y su conveniente tanto por rendimiento como por descarga libre: precio 0. mantenibilidad de las aplicaciones cliente. Por A estas alturas, la comparativa perjudica rendimiento, porque el proceso se ejecuta en a Microsoft SQL Server, ya que únicamente el mismo servidor, evitando el trasiego de puede ejecutarse sobre Windows. consultas SQL y datos entre cliente y servidor. Por mantenibilidad porque de esta for- Microsoft SQL Server (https://www.microsoft.com/latam/sql/) en sí es un buen producto, ma, esta lógica es independiente de la aplicación, lo que asegura que la implementación probablemente de los mejor acabados por Microsoft. Su instalación es sencillísima, su inter- de la lógica no se vea alterada por diferentes Figura 2. Administración de una base de datos de MySQL mediante Webmin clientes de la base de datos, o por fallos de programación en los mismos clientes. Otra característica incluida en Microsoft SQL Server son los procedimientos almacenados (stored procedures). Estos procesos se ejecutan a petición de las aplicaciones cliente y tienen que estar escritos en lenguajes comprensibles por el motor de base de datos, por ejemplo, y tratándose de Microsoft SQL Server, se podrían escribir en.net. Las ventajas de los procedimientos almacenados son las mismas que las de los disparadores: rendimiento y mantenibilidad. Un uso eficaz de ambos elementos permite la creación de clientes de la base de datos ligeros, fáciles de depurar y de escribir y libres de errores. Operaciones tediosas y propensas a pequeños errores, como las validaciones de campo, se pueden implementar en base a disparadores, y otras operaciones complejas como ajustes de stock en una facturación se programarán una sola vez, garantizando su validez independientemente del cliente utilizado. Si bien la interfaz de usuario es muy buena y sobre el papel tiene muchas funcionalidades, Microsoft SQL Server adolece también de serios problemas. Las pruebas de rendimiento nunca son definitivas, los escenarios de ejecución son tan variopintos que cualquier productor de un SGBD puede acondicionar la prueba a un escenario propicio a su producto. Eso es posible hasta con Microsoft SQL Server, el producto de los tres evaluados con peor rendimiento en general, según la experiencia común de los administradores. Aunque se puedan encontrar estudios sufragados por Microsoft que demuestran que en un determinado ambiente ejecutando una determinada consulta con un hardware muy concreto Microsoft SQL Server puede superar a sus competidores en cuanto a rendimiento, la regla general es que es el SGBD más lento para la gran mayoría de las tareas. El hecho de que sólo pueda ejecutarse en el sistema operativo más pobre en rendimiento de los dos considerados tampoco ayuda. Otro aspecto que no favorece a Microsoft SQL Server es la estabilidad. Sus tablas tienden a corromperse fácilmente, permitiendo la duplicación de claves únicas y desastres de ese tipo. Es importante incluir una reconstrucción de tablas en el programa de mantenimiento diario de la base de datos para evitar su degeneración. De manera similar a Microsoft 2003 Server, Microsoft SQL Server funciona en un sistema de licencias en el cual se paga por el servidor, y luego por cada puesto que se sirve 54 Linux+ 4/2007

de él. En nuestro caso, el precio por implementar nuestra solución de base de datos con Microsoft SQL Server con 25 clientes sería de 6.411,90. Además, hay que tener en cuenta que al funcionar solamente sobre el sistema operativo de Microsoft, habría que añadir el importe de la licencia del servidor y los clientes, con lo que el precio final, sólo en licencias, sería de 8.731,58 (no es un error tipográfico). MySQL AB (www.mysql.com/) es una empresa sueca que lleva desde 1995 desarrollando el SGBD homónimo. El My que antecede al nombre de todos los productos de esta compañía coincide con el nombre de la hija de uno de los fundadores, Monty Widenius, lo que ha llevado a pensar que es el origen del nombre de los productos. El servidor de bases de datos MySQL es de código abierto. Se distribuye en dos versiones, una comercial, de pago y que incluye soporte, y otra gratuita, basada en el soporte de la comunidad. Hay que decir que este soporte comunitario es extensísimo. Este producto parece orientado a las necesidades de una organización media. Durante mucho tiempo, un argumento muy escrito en los foros que tratan el tema es si lo que quieres es velocidad, usa MySQL, si lo que quieres son funcionalidades, usa PostgreSQL. Eso hoy en día no es tan cierto. Si bien MySQL ha destacado por su velocidad en operaciones de lectura (no tanto en escritura) y se le han echado en falta funcionalidades, la versión 5 (actualmente la versión en producción) del SGBD incuye muchas de estas funcionalidades, incluyendo disparadores y procedimientos almacenados. Por otra parte, la optimización de PostgreSQL en cuanto a velocidad los ha dejado muy cerca, de hecho, en entornos multiprocesador, PostgreSQL escala mucho mejor que MySQL. Uno de los puntos fuertes de MySQL es su facilidad de uso y la documentación existente. Está tan extendido, que gran cantidad de plataformas web están construidas contando con MySQL. Estas son las llamadas plataformas LAMP (Linux+Apache+MySQL +PHP), que utilizan Linux como sistema operativo, Apache como servidor web, MySQL como base de datos y PHP como lenguaje de las páginas. Muchos de los gestores de contenidos que se utilizan hoy en día están basados en este modelo, como PHPNuke, Drupal, Post- Nuke, Joomla! y Mambo, y aunque desconozco las cifras, la combinación de estos gestores agrupará a una mayoría abrumadora de gestores de contenido actualmente en línea. Este hecho demuestra la fiabilidad y rapidez del Figura 3. Administración de una base de datos PostgreSQL mediante Webmin, obsérvese la similitud de los interfaces lenguaje y su aptitud para tareas de este tipo, es decir, muchas lecturas simultáneas, pocas escrituras proporcionalmente, y accesos más bien simples a los datos. En estos entornos, MySQL simplemente no tiene rival hoy en día. Además de un potente interfaz en modo consola, MySQL cuenta con diversas herramientas de administración, siendo tres los más populares: MySQL Administrator (desarrollado por la misma empresa), phpmyadmin (www.phpmyadmin.net) y el módulo de administración de MySQL para Webmin. MySQL Administrator es una utilidad muy completa que permite la administración de las bases de datos instaladas en el sistema. Puede conectarse a cualquier servidor, con las lógicas medidas de seguridad. De un modo gráfico permite crear y modificar bases de datos, tablas, relaciones, usuarios, programar tareas de mantenimiento, copias de seguridad, sincronizar varios servidores, ajustar los parámetros del servidor, etc. Es decir, que tiene poco que envidiar a Microsoft SQL Server Enterprise Manager. Webmin (www.webmin.com) es una plataforma web de administración de equipos muy popular entre administradores, ya que con un navegador se tiene un interfaz unificado para controlar cada aspecto de un servidor, incluyendo instalación y desinstalación de hardware, administración de discos y particiones, de servicios, usuarios y casi cada cosa que se pueda imaginar. Webmin es una herramienta deliciosa para cualquier administrador. El módulo de MySQL para Webmin permite el control detallado del gestor de bases de datos desde cualquier parte del mundo con un simple navegador, sin depender de ningún software ni ningún sistema operativo específico. PhpMyAdmin es otra herramienta de administración web de MySQL de mucho éxito. Es más completa y aún más fácil de usar que el correspondiente módulo de Webmin. Su desventaja se podría considerar que no está integrada en Webmin, junto al resto de las utilidades de administración del sistema, su principal ventaja respecto a este último es que es un interfaz totalmente pensado para MyS- QL y por lo tanto, mejor adaptado y potente. MySQL es un SGBD altamente configurable es sus parámetros físicos, ya que permite elegir el tipo de tabla para cada una de las que componen la base de datos, desde tablas orientadas a la lectura rápida y alojadas enteramente en RAM, hasta diferentes tipos de estructura de organización de ficheros. Del mismo modo, parámetros muy internos como el tamaño y uso de los búferes y la organización de la memoria están accesibles al administrador. De esta forma, un administrador puede constantemente ir ajustando el rendimiento de las bases de datos tabla a tabla, conforme el volumen de los datos va evolucionando. Con un administrador cuidadoso, se pueden alcanzar grandes rendimientos. MySQL es multiplataforma, se puede instalar igualmente sobre Windows que sobre GNU/Linux. De hecho, según la wikipedia, MySQL funciona sobre múltiples plataformas, www.lpmagazine.org 55

incluyendo AIX, BSD, FreeBSD, HP-UX, GNU/ Linux, Mac OS X, NetBSD, Novell Netware, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista y otras versiones de Windows. También existe MySQL para OpenVMS. Si fuese necesario un ejemplo de lo que es multiplataforma, sería difícil encontrar uno mejor. Como se ha comentado antes, MySQL se puede descargar libremente desde la web del fabricante, bien como código fuente, bien en forma de binarios. Además, la gran mayoría de las distribuciones de Linux incorporan en sus repositorios los paquetes precompilados y configurados para instalarse sobre la marcha limpiamente. Para Windows, sólo hay que descargarse el instalador de la página de MySQL AB. La versión con soporte oscila en precio entre los 595$ y 4995$, dependiendo del nivel de soporte ofrecido por la empresa creadora del producto. Se puede obtener soporte de otras muchas empresas a precios muy diferentes. El soporte para cada uno de estos productos requiere una cualificación muy parecida, ya que tanto conceptualmente como en sus interfaces son muy parecidos y la curva de aprendizaje es mínima. Por lo tanto, no se tienen en cuenta los gastos de administración y mantenimiento, que serían prácticamente los mismos. Precio de MySQL 0 PostgreSQL (www.postgresql.org/) es un SG- BD que hunde sus raíces en los desarrollos de la Universidad de Berkeley, como tantas otras magníficas creaciones de software. El proyecto nace con el nombre de Ingres, y tras una primera descontinuación por parte de su creador, Michael Stonebraker, el proyecto se retoma como un proyecto post-ingres. El resultado es llamado entonces Postgres. Tras unos años de desarrollo en el seno de la Universidad, el proyecto se estabiliza y se abandona por parte de ésta. En ese momento (1993), y gracias a su licencia libre, se retoma por la comunidad convirtiéndose ya en PostgreSQL. Por lo tanto, a diferencia de los dos anteriores, no hay una compañía tras el producto, es creado y mantenido exclusivamente por la comunidad. Eso no quiere decir que no haya soporte comercial, en la misma página del proyecto se puede acceder a multitud de empresas que ofrecen soporte de pago para el producto. Desde siempre, PostgreSQL ha estado arropado por la fama de ser un producto muy profesional, completo y serio, aunque no excesivamente rápido comparado con MySQL. Como expuse antes, eso ya no es cierto. PostgreSQL es tremendamente eficiente, sobre todo en entornos multiprocesador y MySQL se le ha acercado mucho en funcionalidades. Si MySQL ha ocupado el nicho de las aplicaciones web y aquellas con un moderado tamaño, PostgreSQL es la elección tradicional para aplicaciones serias, de la dimensión de servidores de dominios raíz de DNS, y de empresas con volúmenes realmente grandes de datos. De todas formas, cada vez este uso viene siendo determinado más por la tradición y las herramientas existentes que han surgido alrededor de este tipo de proyectos que por la imposibilidad de usar MySQL en un proyecto realmente grande, o una excesiva complejidad de PostgreSQL. Porque la desventaja clásica que se aduce al hablar de PostgreSQL es la complejidad, al ser más grande es más complicado. Realmente no tiene por qué ser así. Además del clásico interfaz de consola, existen utilidades libres e igualmente multiplataforma para la administración de servidores PostgreSQL. Tres ejemplos a considerar podrían ser pgadmin III (www.pgadmin.org/), Pg Access (www.pgaccess.org/) y phppgadmin (http://phppgadmin.sourceforge.net/). Las dos primeras herramientas siguen el esquema del árbol de objetos a la izquierda y el panel de propiedades a la derecha, y permiten la gestión de usuarios y grupos, uno de los temas complejos de Postgre- SQL. Son aplicaciones gráficas intuitivas a la altura de las correspondientes a los dos SGBD anteriormente evaluados. En cuanto a phppg- Admin, es la contrapartida funcional a phpmyadmin, aunque manteniendo la estructura típica de árbol a la izquierda y panel a la derecha, un producto muy profesional. Además, también existe un módulo de Webmin para PostgreSQL, lo que aporta idénticas ventajas que su homólogo para My- SQL. Al ser un producto abierto y gratuito, y al igual que con MySQL, también se pueden descargar de la página de PostgreSQL tanto fuentes como binarios y ejecutables para Windows. Por supuesto, también están disponibles paquetes preconfigurados en los repositorios de las principales distribuciones de GNU/Linux. Precio de PostgreSQL: 0 Los sistemas gestores de bases de datos son piezas de software tan complejas que los análisis anteriores son simples orientaciones. Para tener una idea más detallada de todas y cada una de las características que poseen y las que no poseen cada uno de estos tres productos, una buena idea es visitar esta comparativa de la página de MySQL: http://dev. mysql.com/tech-resources/features.html. La comparativa, a pesar de estar alojada en la página de MySQL es más que razonablemente objetiva, y podrá ayudar a determinar, basado en las necesidades concretas, el SGBD que mejor se ajuste a nuestras necesidades. Otra historia es intentar encontrar una comparativa de rendimiento. Como ya expuse anteriormente, son infinitos los escenarios de desempeño posibles, y siempre habrá algún escenario que beneficie particularmente a un SGBD (consecuentemente, hay casi infinitas comparativas de rendimiento con casi infinitos resultados contradictorios). La opinión de quien sufra cada uno de estos productos puede orientar mucho más que cualquier benchmark. Resumiendo, las conclusiones serían: Windows + Microsoft SQL Server: 8.731, 58 : Recomendable si por alguna razón el software a utilizar no puede funcionar con otra plataforma. Es muy caro, menos estable, menos eficiente, menos seguro y no aporta nada fundamental que no aporte cualquier otra opción; Windows + MySQL/PostgreSQL: 2319, 68 : Si el gestor de bases de datos es libre y multiplataforma, la única razón para utilizar un sistema operativo propietario, caro e inestable es que sea necesario para cualquier otra cosa además de soportar la base de datos. Parece un poco absurdo a priori; GNU/Linux Debian 3.1 Sarge+ MySQL: 0 : Solución estable, gratuita, rápida y segura. Muy recomendable para desarrollos medios, ya que hay mucha documentación al respecto. Es conveniente revisar las funcionalidades necesarias para nuestra aplicación, y verificar que todas son cubiertas por MySQL. Especialmente indicado para aplicaciones web; GNU/Linux Debian 3.1 Sarge + Postgre- SQL: 0 : Marco ideal para desarrollos gran des y con un tratamiento de datos extensivo. La combinación es estable, gratuita, segura y muy potente. Haciendo este tipo de análisis se entiende perfectamente la política de Microsoft de cerrar formatos y provocar incompatibilidades: es la única manera de mantener sus produc- 56 Linux+ 4/2007

Figura 4. Administración de una base de datos PostgreSQL mediante PgAccess tos en el mercado, puesto que individualmente suelen ser poco recomendables. Cambiar un SGBD por otro no es una Qué coste va a tener la migración de los datos? Esta es la pregunta más difícil de responder. tarea trivial. En primer lugar, hay que tener muy buenas razones para hacerlo. Las migraciones suelen ser de propietario a libre, y antes siquiera de proponer la migración, hay que tener claros ciertos conceptos. Es normal asumir el cargo de una instalación y encontrarse con que la misma está implantada sobre Windows. Eso en principio no es motivo suficiente para migrarla antes de hacer ciertas consideraciones: Existen muchas herramientas de migración entre distintos SGBD. Sorprendentemente, Microsoft ha dotado a su SQL Server de una herramienta de exportación bastante buena que facilita la tarea, pero además se pueden utilizar distintas aplicaciones de migración gratuitas que aportan diferentes grados de inteligencia al migrar. Pero aunque son útiles en la migración de bases de datos sencillas, Están mínimamente amortizadas las licencias? Si bien no es una consideración técnica, que el nuevo administrador proponga tirar a la basura una millonada en licencias casi por estrenar no es una buena forma de empezar a hacer amigos. Aunque consideraciones de rendimiento, disponibilidad y seguridad lo aconsejen, si la situación no es escandalosamente crítica, normalmente la empresa optará por aguantar un tiempo el sistema propietario recién implantado que cambiar a uno libre. con tipos de datos poco complicados y poco relevantes en sí, no pueden sustituir el conocimiento del administrador sobre las características de los datos que van a ser necesarias. Porque migrar una base de datos no es copiar unas tablas de un formato a otro. Es muy recomendable disponer de una instalación paralela con al menos un servidor y un cliente para estudiar la migración. En este laboratorio, se documentarán todos los pasos hasta lograr la migración exitosa, de modo que al aplicarlo a la instalación real, los problemas sean mínimos o ninguno. En primer lugar, es muy conveniente estudiar los tipos de datos que soportan tanto Cuántas horas de trabajo efectivo se están perdiendo por utilizar un sistema operativo inseguro? Eso es un argumento muy pesado. el SGBD origen como el destino, y establecer un mapeo de tipos, tabla por tabla. Si es posible, generar las tablas vacías en el SGBD destino con los tipos de datos correctos para nuestra Qué riesgos de seguridad se están corriendo con una instalación de ese tipo? El peso de este argumento es proporcional a la confidencialidad o valor de los datos almacenados. aplicación. Mucho ojo con los tipos de datos numéricos, de tipo fecha y booleanos, suelen dar sorpresas. También hay que estudiar el comportamiento de los valores nulos y autoincrementales en ambos sistemas. El siguiente paso es copiar los contenidos de las tablas desde el origen al destino. Este procedimiento en sí no debe ser complicado. A continuación, se deben reproducir las relaciones de forma que funcionen exactamente igual en el sistema de origen y el destino. Definir correctamente los índices, y ajustar los parámetros que afecten al rendimiento de cada tabla. Finalmente, habrá que migrar los scripts, esto es, procedimientos almacenados y disparadores, verificando que uno a uno funcione y adaptando o reescribiendo el código. Supuestamente en este punto ya debería de funcionar perfectamente, se conecta el cliente a la base de datos nueva y se prueban a fondo las funcionalidades de la aplicación. Para este paso es un factor de ayuda muy importante a efectos de depuración el contar con el código fuente de la aplicación cliente, de forma que se pueda controlar perfectamente qué estaba pidiendo la aplicación a la base de datos en el momento en que surgió el fallo. Es posible que haya que ajustar distintos parámetros o incluso que modificar ligeramente el código de la aplicación cliente. Si se verifica el correcto funcionamiento de la aplicación cliente, es el momento de pasar a la implementación en la instalación real. Por muy documentado y probado que esté el proceso, el mundo real está lleno de amargos sinsabores, lo que aconseja realizar la migración en fin de semana, o en el espacio de tiempo más largo de que se disponga entre los períodos de uso de la aplicación, y asegurarse siempre de que podemos dar marcha atrás y dejar la instalación tal como estaba mientras volvemos al laboratorio a investigar cual ha sido el fallo. Raramente se sobrepasan dos intentos hasta que el sistema funciona de forma fluida. No obstante, los primeros días de utilización, incluso con toda una batería de pruebas a las espaldas, hay que estar muy vigilante, intentando anticiparse a problemas que puedan surgir, que es la mejor manera de solucionarlos. Siendo cuidadosos y dejando a un lado las prisas y los plazos se puede lograr una migración exitosa. Idealmente, los usuarios saldrán el viernes a disfrutar del fin de semana, y el lunes volverán al trabajo, y sólo notarán que su aplicación funciona más rápido y no se cuelga. La dirección de la empresa notará a corto plazo un aumento de la productividad y a medio plazo un descenso en los gastos derivados del mantenimiento informático. Y el informático sentirá que ha hecho un buen trabajo, que ha optimizado costes, evitado riesgos a su empresa y facilitado la vida a los usuarios. Y ese es un sentimiento de satisfacción difícilmente igualable. www.lpmagazine.org 57