MANEJADORES DE BASES DE DATOS
El sistema manejador de bases de datos es la porcin ms importante del software de un sistema de base de datos. Un DBMS es una coleccin de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea especfica. Las funciones principales de un DBMS son: Crear y organizar la Base de datos. Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rpidamente. Manejar los datos de acuerdo a las peticiones de los usuarios. Registrar el uso de las bases de datos. Interaccin con el manejador de archivos. Esto a travs de las sentencias en DML al comando del sistema de archivos. As el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperacin. Consiste en contar con mecanismos implantados que permitan la recuperacin fcilmente de los datos en caso de ocurrir fallas en el sistema de base de datos. Control de concurrencia. Consiste en controlar la interaccin entre los usuarios concurrentes para no afectar la inconsistencia de los datos. Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos. El DBMS es conocido tambin como Gestor de Base de datos.
La figura anterior muestra el DBMS como interface entre la base de datos fsica y las peticiones del usuario. El DBMS interpreta las peticiones de entrada/salida del usuario y las manda al sistema operativo para la transferencia de datos entre la unidad de memoria secundaria y la memoria principal. En s, un sistema manejador de base de datos es el corazn de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar.
MySQL
Qu es MySQL?
MySQL es un sistema de gestin de bases de datos relacional, licenciado bajo la GPL de la GNU. Su diseo multihilo le permite soportar una gran carga de forma muy eficiente. MySQL fue creada por la empresa sueca MySQL AB, que mantiene el copyright del cdigo fuente del servidor SQL, as como tambin de la marca. Aunque MySQL es software libre, MySQL AB distribuye una versin comercial de MySQL, que no se diferencia de la versin libre ms que en el soporte tcnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de no ser as, se vulnerara la licencia GPL. Este gestor de bases de datos es, probablemente, el gestor ms usado en el mundo del software libre, debido a su gran rapidez y facilidad de uso. Esta gran aceptacin es debida, en parte, a que existen infinidad de libreras y otras herramientas que permiten su uso a travs de gran cantidad de lenguajes de programacin, adems de su fcil instalacin y configuracin.
Caractersticas de MySQL
Las principales caractersticas de este gestor de bases de datos son las siguientes: 1. Aprovecha la potencia de sistemas multiprocesador, gracias a su implementacin multihilo. 2. Soporta gran cantidad de tipos de datos para las columnas. 3. Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc.). 4. Gran portabilidad entre sistemas. 5. Soporta hasta 32 ndices por tabla. 6. Gestin de usuarios y passwords, manteniendo un muy buen nivel de seguridad en los datos.
Qu es lo que le falta?
MySQL surgi como una necesidad de un grupo de personas sobre un gestor de bases de datos rpido, por lo que sus desarrolladores fueron implementando nicamente lo que precisaban, intentando hacerlo funcionar de forma ptima. Es por ello que, aunque MySQL se incluye en el grupo de sistemas de bases de datos relacionales, carece de algunas de sus principales caractersticas:
1. Subconsultas: tal vez sta sea una de las caractersticas que ms se echan en falta, aunque gran parte de las veces que se necesitan, es posible reescribirlas de manera que no sean necesarias. 2. SELECT INTO TABLE: Esta caracterstica propia de Oracle, todava no est implementada. 3. Triggers y Procedures: Se tiene pensado incluir el uso de procedures almacenados en la base de datos, pero no el de triggers, ya que los triggers reducen de forma significativa el rendimiento de la base de datos, incluso en aquellas consultas que no los activan. 4. Transacciones: a partir de las ltimas versiones ya hay soporte para transacciones, aunque no por defecto (se ha de activar un modo especial). 5. Integridad referencial: aunque s que admite la declaracin de claves ajenas en la creacin tablas, internamente no las trata de forma diferente al resto de campos. Los desarrolladores comentan en la documentacin que todas estas carencias no les resultaban un problema, ya que era lo que ellos necesitaban. De hecho, MySQL fue diseada con estas caractersticas, debido a que lo que buscaban era un gestor de bases de datos con una gran rapidez de respuesta. Pero ha sido con la distribucin de MySQL por Internet, cuando ms y ms gente les estn pidiendo estas funcionalidades, por lo que sern incluidas en futuras versiones del gestor.
Lo mejor de MySQL...
Es evidente que la gran mayora de gente usa este gestor en Internet, por lo que encontrar opiniones favorables no ha resultado en absoluto complicado: 1. Sin lugar a duda, lo mejor de MySQL es su velocidad a la hora de realizar las operaciones, lo que le hace uno de los gestores que ofrecen mayor rendimiento. 2. Su bajo consumo lo hacen apto para ser ejecutado en una mquina con escasos recursos sin ningn problema. 3. Las utilidades de administracin de este gestor son envidiables para muchos de los gestores comerciales existentes, debido a su gran facilidad de configuracin e instalacin. 4. Tiene una probabilidad muy reducida de corromper los datos, incluso en los casos en los que los errores no se produzcan en el propio gestor, sino en el sistema en el que est. 5. El conjunto de aplicaciones Apache-PHP-MySQL es uno de los ms utilizados en Internet en servicios de foro (Barrapunto.com) y de buscadores de aplicaciones (Freshmeat.net).
Lo peor de MySQL
Debido a esta mayor aceptacin en Internet, gran parte de los inconvenientes se exponen a continuacin, han sido extrados de comparativas con otras bases de datos: 1. Carece de soporte para transacciones, rollback's y subconsultas. 2. El hecho de que no maneje la integridad referencial, hace de este gestor una solucin pobre para muchos campos de aplicacin, sobre todo para aquellos programadores que provienen de otros gestores que s que poseen esta caracterstica. 3. No es viable para su uso con grandes bases de datos, a las que se acceda continuamente, ya que no implementa una buena escalabilidad.
PostGreSQL
Lo mejor de PostGreSQL ...
Las caractersticas positivas que posee este gestor segn las opiniones ms comunes en Internet, son: 1. Posee una gran escalabilidad. Es capaz de ajustarse al nmero de CPUs y a la cantidad de memoria que posee el sistema de forma ptima, hacindole capaz de soportar una mayor cantidad de peticiones simultneas de manera correcta (en algunos benchmarks se dice que ha llegado a soportar el triple de carga de lo que soporta MySQL). 2. Implementa el uso de rollback's, subconsultas y transacciones, haciendo su funcionamiento mucho ms eficaz, y ofreciendo soluciones en campos en las que MySQL no podra. 3. Tiene la capacidad de comprobar la integridad referencial, as como tambin la de almacenar procedimientos en la propia base de datos, equiparndolo con los gestores de bases de datos de alto nivel, como puede ser Oracle.
Lo peor PostGreSQL...
Por contra, los mayores inconvenientes que se pueden encontrar a este gestor son: 1. Consume gran cantidad de recursos. 2. Tiene un lmite de 8K por fila, aunque se puede aumentar a 32K, con una disminucin considerable del rendimiento. 3. Es de 2 a 3 veces ms lento que MySQL.
Microsoft Access
Microsoft Access es un sistema de gestin de bases de datos relacionales para los sistemas operativos Microsoft Windows, desarrollado por Microsoft y orientado a ser usado en un entorno personal o en pequeas organizaciones. Es un componente de la suite ofimtica Microsoft Office. Permite crear ficheros de bases de datos relacionales que pueden ser fcilmente gestionadas por una interfaz grfica simple. Adems, estas bases de datos pueden ser consultadas por otros programas. Este programa permite manipular los datos en forma de tablas (formadas por filas y columnas), crear relaciones entre tablas, consultas, formularios para introducir datos e informes para presentar la informacin.
Apache Derby
Apache Derby es un sistema gestor de base de datos relacional escrito en Java que puede ser empotrado en aplicaciones Java y utilizado para procesos de transacciones online. Tiene un tamao de 2 MB de espacio en disco. Inicialmente distribuido como IBM Cloudscape, Apache Derby es un proyecto open source licenciado bajo la Apache 2.0 License. Actualmente se distribuye como Sun Java DB.
Caractersticas
APIs para JDBC y SQL. Soporta todas las caractersticas de SQL92 y la mayora de SQL99. La sintaxis SQL usada proviene de IBM DB2. Su cdigo mide alrededor de 2000KB comprimido. Soporta cifrado completo, roles y permisos. Adems posee SQL SCHEMAS para separar la informacin en un nica base de datos y control completo de usuarios. Soporta internamente procedures, cifrado y compresin. Trae soporte multilenguaje y localizaciones especficas. A partir de la versin 10.4 trae un sistema simple de replicacin maestro-esclavo. Transacciones y recuperacin ante errores ACID. Posee tres productos asociados a la marca: o Derby Embedded Database Engine: El motor propiamente dicho. o Derby Network Server: Permite convertir Derby en una base de datos que sigue el modelo cliente-servidor tradicional. o Database Utilities: Un paquete de utilidades.
PostgreSQL
PostgreSQL es un sistema de gestin de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD. Como muchos otros proyectos de cdigo abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
Caractersticas de PostgreSQL
Algunas de sus principales caractersticas son, entre otras:
Alta concurrencia
Mediante un sistema denominado MVCC (Acceso concurrente multiversin, por sus siglas en ingls) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visin consistente de lo ltimo a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas comn en otras bases, eliminando la necesidad del uso de bloqueos explcitos.....
Amplia variedad de tipos nativos
PostgreSQL provee nativamente soporte para:
Nmeros de precisin arbitraria. Texto de largo ilimitado. Figuras geomtricas (con una variedad de funciones asociadas). Direcciones IP (IPv4 e IPv6). Bloques de direcciones estilo CIDR. Direcciones MAC. Arrays.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.
Otras caractersticas
Claves ajenas tambin denominadas Llaves ajenas o Claves Forneas (foreign keys). Disparadores (triggers): Un disparador o trigger se define como una accin especfica que se realiza de acuerdo a un evento, cuando ste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecucin de un procedimiento almacenado basado en una determinada accin sobre una tabla especfica. Ahora todos los disparadores se definen por seis caractersticas: o El nombre del disparador o trigger o El momento en que el disparador debe arrancar o El evento del disparador deber activarse sobre... o La tabla donde el disparador se activar o La frecuencia de la ejecucin o La funcin que podra ser llamada
Entonces combinando estas seis caractersticas, PostgreSQL le permitir crear una amplia funcionalidad a travs de su sistema de activacin de disparadores (triggers).
Vistas. Integridad transaccional. Herencia de tablas. Tipos de datos y operaciones geomtricas.
Soporte para transacciones distribuidas. Permite a PostgreSQL integrase en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el xito ("commit") de la transaccin globlal es el resultado del xito de las transacciones locales.
Funciones
Bloques de cdigo que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones bsicas de programacin, tales como bifurcaciones y bucles, hasta las complejidades de la programacin orientada a objetos o la programacin funcional. Los disparadores (triggers en ingls) son funciones enlazadas a operaciones sobre los datos. Algunos de los lenguajes que se pueden usar son los siguientes:
Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de oracle). C. C++. Java PL/Java web. PL/Perl. plPHP. PL/Python. PL/Ruby. PL/sh. PL/Tcl. PL/Scheme. Lenguaje para aplicaciones estadsticas R por medio de PL/R.
PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en ingls). Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros DBMS, son muchas veces referidas como "procedimientos almacenados" (stored procedures en ingls).
Productos alrededor de PostgreSQL
El PGDG solo desarrolla el Motor de Datos y un nmero pequeo de utilidades, para potenciar el trabajo con PostgreSQL suele ser necesario aadir utilidades externas creadas especialmente para este motor, algunas de estas herramientas son:
...
Alternativas Comerciales
Gracias a su licencia BSD, se permite la utilizacin del cdigo para ser comercializado. Uno de los casos ejemplo es la de Enterprise DB (Postgresql Plus), la cual incluye varios agregados y una interfaz de desarrollo basada en Java. Entre otras empresas que utilizan Postgresql para comercializar se encuentra CyberTech (alemania), con su producto CyberCluster.
GIS
PostGIS Extensin que aade soporte de objetos geogrficos a PostgreSQL y permite realizar anlisis mediante consultas SQL espaciales o mediante conexin a aplicaciones GIS (Sistema de Informacin Geogrfica). Replicacin PgCluster Replicacin multi maestro. Slony-I Replicacin maestro esclavo.
PyReplica Replicacin maestro esclavo y multi maestro asincrnica.
Herramientas de administracin PgAdmin3 Entorno de escritorio visual. PgAccess Entorno de escritorio visual.
PhpPgAdmin Entorno web. Psql Cliente de consola. Database Master Entorno de escritorio visual.
Bsqueda de texto
Full text search Incluido en el ncleo a partir de la versin 8.3. Via Tsearch2 y OpenFTS para versiones anteriores a la 8.3.
XML XML/XSLT soporte.
Firebird
Firebird es un sistema de administracin de base de datos relacional (o RDBMS) (Lenguaje consultas: SQL) de cdigo abierto, basado en la versin 6 de Interbase, cuyo cdigo fue liberado por Borland en 2000. Su cdigo fue reescrito de C a C++. El proyecto se desarrolla activamente, el 18 de abril de 2008 fue liberada la versin 2.1 y el 26 de diciembre de 2009 fue liberada la versin 2.5.0 RC1.
Caractersticas
Es multiplataforma, y actualmente puede ejecutarse en los sistemas operativos: Linux, HP-UX, FreeBSD, Mac OS, Solaris y Microsoft Windows. Ejecutable pequeo, con requerimientos de hardware bajos. Arquitectura Cliente/Servidor sobre protocolo TCP/IP y otros (embedded). Soporte de transacciones ACID y claves forneas. Es medianamente escalable. Buena seguridad basada en usuarios/roles. Diferentes arquitecturas, entre ellas el Servidor Embebido1 (embedded server) que permite ejecutar aplicaciones monousuario en ordenadores sin instalar el software Firebird. Bases de datos de slo lectura, para aplicaciones que corran desde dispositivos sin capacidad de escritura, como cd-roms. Existencia de controladores ODBC, OLEDB, JDBC, PHP, Perl, .net, etc. Requisitos de administracin bajos, siendo considerada como una base de datos libre de mantenimiento, al margen de la realizacin de copias de seguridad. Pleno soporte del estndar SQL-92, tanto de sintaxis como de tipos de datos. Completo lenguaje para la escritura de disparadores y procedimientos almacenados denominado PSQL. Capacidad de almacenar elementos BLOB (Binary Large OBjects). Soporte de User-Defined Functions (UDFs). Versin autoejecutable, sin instalacin, excelente para la creacin de catlogos en CDRom y para crear versiones de evaluacin de algunas aplicaciones.
Open Access (software)
Open Access (OA), desarrollado por la compaa estadounidense Software Products International (SPI) entre 1984 y 1992, era un conjunto de aplicaciones de escritorio orientadas a la gestin administrativa de pequeas y medianas empresas. Se ejecutaba en modo texto bajo entorno MS-DOS. A diferencia de las aplicaciones de lnea de comandos de aquella poca, el acceso a todas las funciones se poda llevar a cabo mediante seleccin de opciones de men, y tambin por reasignacin de teclas de funcin. Aunque en principio no dispona de soporte para ratn, ofreca mens contextuales similares a los de un botn secundario. Adems, todos los mdulos se integraban en un centro de control, compartan una interfaz similar y facilitaban el intercambio de datos entre s. Este diseo compacto y unitario utilizaba de modo ms eficiente los recursos de hardware y superaba las limitaciones del sistema operativo DOS para la multitarea.
Compartan el mismo enfoque otros productos rivales de aquella poca (segunda mitad de los aos ochenta), como Framework (de Ashton-Tate), Lotus Symphony y, ms tarde, Microsoft Works. Se englobaban en la categora de los paquetes integrados, que ms tarde seran desplazados por las suites ofimticas. OA inclua cuatro mdulos principales: gestor de bases de datos, hoja de clculo, procesador de textos y entorno de desarrollo, adems de utilidades para el trabajo de oficina en colaboracin, como soporte de comunicaciones, funciones de red, creacin y edicin de macros, generacin de grficos, cliente de correo, presentaciones y agenda.
Gestor de bases de datos
Basado en el modelo relacional, era extraordinariamente avanzado para su poca. No era preciso memorizar largas listas de rdenes como en dBase o FoxPro: a travs de seleccin de opciones de men simples, con sucesivos niveles de profundidad, el usuario poda llegar a generar tablas complejas y, partir de ellas, bases de datos sumamente eficientes. Entre sus prestaciones destacan:
Capacidad para resolver consultas SQL. Actualizacin de subconjuntos de registros (vistas). Integridad referencial de entrada. Manipulacin de una amplia variedad de tipos de datos, incluidos campos memo e imgenes. Integracin de grficos en formato PCX. Bloqueo de registros y de ficheros para trabajo en red. Tamao de tablas de hasta 2 GB.
Hoja de clculo
Conectada con el mdulo de gestin de bases de datos, la herramienta idnea para confeccionar informes econmicos, proyecciones financieras o balances anuales. De funcionamiento similar a su competidor Lotus 1-2-3, ofreca utilidades adicionales como:
Funciones estadsticas avanzadas Simulacin de objetivos con manejo de constantes, variables dependientes y variables independientes Importacin y exportacin a formato wk1-wk4 de Lotus 1-2-3
Procesador de textos
Con una interfaz no tan vistosa como los procesadores WYSIWYG que le seguiran, manejaba con solvencia la correspondencia con clientes y proveedores. Para ello, adems de las funciones bsicas, contaba con las siguientes:
Plantillas Corrector ortogrfico Modo vista previa Etiquetado (tagging) de texto para mayor control de la salida impresa Fusin de datos para correspondencia Reconocimiento de documentos de WordPerfect, Word y WordStar
Entorno de programacin
Brindaba un completo entorno de desarrollo para disear aplicaciones personalizadas. A partir de un lenguaje accesible de cuarta generacin, que podra considerarse un dialecto de Q-Basic, se poda escribir cdigo robusto y ajustado a los cnones de la programacin estructurada. Desde el propio editor de textos se podan interpretar y depurar las rutinas a medida que se iban escribiendo. Finalmente, una vez finalizada la codificacin se compilaba en un fichero compacto con extensin .cmd, que poda o bien incorporarse como un mdulo ms del centro de control de entrada a Open Access, o bien ejecutarse directamente desde el sistema operativo mediante una macro. En su versin 4, el Entorno programador era ya capaz de procesar subrutinas escritas en C, y se poda obtener del fabricante el runtime para compilar aplicaciones ejecutables (ficheros .exe) independientes.
Oracle
Oracle es un sistema de gestin de base de datos objeto-relacional (o ORDBMS por el acrnimo en ingls de Object-Relational Data Base Management System), desarrollado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos ms completos, destacando:
soporte de transacciones, estabilidad, escalabilidad y Soporte multiplataforma.
Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco, recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySql o Firebird. Las ltimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.
Adaptive Server Enterprise
Adaptive Server Enterprise (ASE) es el motor de bases de datos (RDBMS) insignia de la compaa Sybase. ASE es un sistema de gestin de datos, altamente escalable, de alto rendimiento, con soporte a grandes volmenes de datos, transacciones y usuarios, y de bajo costo, que permite:
Almacenar datos de manera segura Tener acceso y procesar datos de manera inteligente Movilizar datos
Principales caractersticas de Adaptive Server Enterprise
La versin 15 de ASE incluye caractersticas nuevas como:
Un optimizador de consultas completamente renovado y ms inteligente Tcnicas de particionamiento semntico de tablas que aumentan la velocidad de acceso a los datos Columnas cifradas para mayor seguridad de los datos Columnas computadas "virtuales" y materializadas, e ndices funcionales, que brindan mayor rendimiento Mejoras al lenguaje Transact-SQL, para mayor productividad Mejoras a los servicios de Java y XML en la base de datos Mejoras a los servicios para consumo y publicacin de Servicios Web Herramientas mejoradas para la administracin y el monitoreo Ms rendimiento y menor costo total de propiedad
Otras caractersticas generales:
Arquitectura VSA de Sybase Administrador lgico de recursos y tareas Mltiples esquemas de bloqueo de datos Copias de respaldo en lnea y de alto rendimiento Integracin transparente con orgenes de datos remotos Programador de tareas Conexiones seguras con SSL Soporte a LDAP para autenticacin de usuarios y conectividad cliente/servidor Soporte a mltiples herramientas de desarrollo y lenguajes de programacin, como PowerBuilder, Visual Basic, Java, C, PHP, etc. Soporte a mltiples protocolos de conectividad, como Open Client (propio de Sybase), ODBC, OLE DB, ADO.NET y JDBC. La siguiente tabla resume los diferentes componentes opcionales disponibles para las ediciones de ASE, y algunos de los lmites de escalabilidad.
Disponible en las siguientes ediciones: Opciones adquiridas por Enterprise Small Business Developer separado Edition Edition Edition Security and Opcional No disponible Incluido directory services High Availability Distributed
Express Edition No disponible No disponible No disponible
Opcional Opcional
No disponible No disponible
Incluido Incluido
Transaction Management (DTM) SQL Expert Opcional
Opcional
No disponible No disponible
BMC DBXray Disaster Recovery option Partitions Enhanced Full Text Search Lmites Nmero de usuarios: Nmero de CPUs: Capacidad mxima de almacenamiento: Memoria mxima:
Opcional Opcional
Opcional No disponible
No disponible No disponible No disponible No disponible Incluido No disponible No disponible No disponible
Opcional Opcional
No disponible Opcional
Ilimitado Ilimitadas Ilimitada
256 4 Ilimitada
25 1 Ilimitada
Ilimitado 1 5 GB
Ilimitada
Ilimitada
Ilimitada
2 GB
Plataformas soportadas ASE est soportado para la mayora de plataformas comerciales, incluyendo:
Windows Linux Sun Solaris IBM AIX HP-UX Mac OS Silicon Graphics IRIX Silicon Graphics IRIX2