miércoles, 27 de enero de 2010

Definiendo las Bases de Datos.



Un poco de Historia:



El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA.
Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada.

Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.

Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.





Uno de los objetivos fundamentales de un sistema de información es contar no sólo con sus recursos de información, sino también con los mecanismos necesarios para poder encontrar y recuperar estos recursos, en este caso la información, que para muchas empresas a nivel mundial esta información es oro puero.

Es por eso que las bases de datos hoy en dia se han convertido en un elemento indispensable no sólo para el funcionamiento de los grandes motores de búsqueda y la recuperación de información a lo largo y ancho de la Web, sino también para la creación de sedes web, Intranets y otros sistemas de información en los que se precisa manejar grandes o pequeños volúmenes de información.
La creación de una base de datos a la que puedan acudir los usuarios para hacer consultas y acceder a la información que les interese es, pues, una herramienta imprescindible de cualquier sistema informativo sea en red o fuera de ella, como ser una agenda electrónica, un directorio de contactos en un dipósitivo móvil, en nuestro reproductor de archivos multimedia, en las listas de reproducción de archivos multimedia de nuestra PC, en los sistemas de autenticación, etc.


Características

Entre las principales características de los sistemas de base de datos podemos mencionar:

  • Independencia lógica y física de los datos.
  • Redundancia mínima.
  • Acceso concurrente por parte de múltiples usuarios.
  • Integridad de los datos.
  • Consultas complejas optimizadas.
  • Seguridad de acceso y auditoría.
  • Respaldo y recuperación.
  • Acceso a través de un lenguaje de programación estándard.

Los modelos clásicos de tratamiento de los datos son:

  • Jerárquico: Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. Este modelo tiene forma de árbol invertido en el que una rama puede tener varios hijos, pero cada hijo sólo puede tener un padre.

  • En Red: Este modelo permite la representación de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. El modelo de red evita redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector. En el modelo en red se representa el mundo real mediante registros lógicos que representan a una entidad y que se relacionan entre sí por medio de flechas

  • Relacional: Desde los años 80 es el modelo más utilizado, ya que permite una mayor eficacia, flexibilidad y confianza en el tratamiento de los datos. La mayor parte de las bases de datos y sistemas de información actuales se basan en el modelo relacional ya que ofrece numerosas ventajas sobre los 2 modelos anteriores, como es el rápido aprendizaje por parte de usuarios que no tienen conocimientos profundos sobre sistemas de bases de dados. En el modelo relacional se representa el mundo real mediante tablas relacionadas entre sí por columnas comunes.

  • Las bases de datos que pertenecen a esta categoría se basan en el modelo relaciones, cuya estructura principal es la relación, es decir una tabla bidimensional compuesta por líneas y columnas. Cada línea, que en terminología relacional se llama tupla, representa una entidad que nosotros queremos memorizar en la base de datos. las características de cada entidad están definidas por las columnas de las relaciones, que se llaman atributos. Entidades con características comunes, es decir descritas por el mismo conjunto de atributos, formarán parte de la misma relación





Modelo de Base de Datos Relacional, creada en el SGBD Microsoft Access.


Pero antes de continuar debemos de tener en cuenta la diferencia que existe entre una Base de Datos y un Sistema Gestor de Base de Datos; como ya lo dije anteriormente una Base de Datos es un conjunto de información organizada y almacenada en disco, mientra que un Sistema Gestor de Base de Datos, también conocido como DBMS (Data Base Management System) es la aplicación encargada de centralizar los accesos a los datos y actúa de interfaz entre los datos físicos y los usuarios, así mismo es capaz de llevar a cabo funciones como la creación y gestión de la base de datos misma, el control de accesos y la manipulación de datos de acuerdo a las necesidades de cada usuario.

Por lo que en base a lo estudiado podemos decir que los SGBD tienen dos funciones principales que son:
  • La definición de las estructuras para almacenar los datos.

  • La manipulación de datos.


Antes de la existencia de las bases de datos, los ordenadores trabajaban en lo que se conoce como "Sistemas de procesamiento de Archivos" en los que se guardaban los datos para ser procesados por programas escritos especialmente para cada clase de archivo; esto conducía a un sistema monolítico y de difícil mantenimiento con una serie de inconvenientes como la dificultad de acceso a ciertos datos de información, el aislamiento de datos, la falta de integridad, los problemas de atomicidad en las operaciones, los problemas de acceso concurrente, la falta de seguridad, etc.

Para resolver estos problemas se desarrollaron los Sistemas de Gestión de Bases de Datos cuyas características hacen al sistema mucho más eficiente que los sistemas de procesamiento de archivos. Algunas de estas mejoras se basan en la existencia de una sola copia de los datos para que todos los programas trabajen con ella, lo que se denominado obtención de redundancia mínima, para de esta manera poder eliminar la inconsistencia de los datos; o la capacidad de interactuar en un ambiente cliente/servidor donde los clientes o usuarios (ya sea en una intranet o desde Internet) puedan trabajar con un un conjunto único de datos alojados en un servidor y donde varios clientes podrían estar trabajando al mismo tiempo. Estas son sólo algunas de las características con que cuenta el modelo de base de datos relacional y existen diversos motores de base de datos que permiten trabajar ya sea con bases de datos existentes o creando nuevas con todas las capacidades de trabajo en red.

Numerosas empresas se han volcado al desarrollo de sistemas de gestión de bases de datos como Oracle, Informix, PostgreSQL, Sybase, Microsoft, etc. y existen tanto soluciones comerciales de pago, como soluciones de acceso libre (GNU).

Pero todos estos gestores se unen en el uso de un lenguaje de programación stándard, siendo el más popluar SQL (Structured Query Languaje), que es un lenguaje de consulta estructurada.
Algunos ejemplos de este tipo de lenguaje,
entre los que destacan:
  • MySQL(GNU): Se trata de la base de datos relacional de código abierto más popular en Internet. Existen distribuciones para distintas plataformas (Win32/NT, Unix/Linux), y en muchas de ellas, como Red Hat Linux, se instala por defecto. Actualmente es propiedad de una empresa sueca llamada MySQL AB, que se encarga de su desarrollo y ofrece servicios auxiliares de consultoría y soporte técnico. El software es gratuito, pero, su uso en algunas aplicaciones está sujeto a licencia de pago.

  • mSQL (Mini SQL)(GNU): Se trata de un gestor de bases de datos ligero, diseñado para proporcionar acceso rápido a conjuntos relativamente pequeños de datos almacenados en sistemas con poca memoria. Implementa un subconjunto de SQL e inicialmente fue desarrollado como un proyecto académico en código abierto. http://www.hughes.com.au

  • PostgreSQL(GNU): Es un gestor de bases de datos Relacional-Objetual. Es uno de los sistemas de gestión de bases de datos relacional de código abierto más antiguos, pues la primera versión data de 1985. Está muy extendido en el mundo Unix/Linux ya que muchas distribuciones Linux, como Red Hat lo instalan por defecto, aunque existen versiones para plataformas Windows. Soporta casi todas las construcciones SQL, tiene una amplia conectividad y una gran diversidad de herramientas disponibles. http://www.postgresql.org

  • Microsoft SQL Server: Aunque Microsoft cuenta con productos de escritorio para gestión de bases de datos como Access, este es el sistemas de gestión de bases de datos más potente. Se integra en la nueva plataforma .NET y funciona sobre Windows NT/2000. http://www.microsoft.com/sql/default.asp

  • Informix: Las herramientas y productos de Informix han estado presentes en el mercado de bases de datos de forma constante, pero hoy esta empresa ha sido adquirida por IBM. http://www.informix.com

  • Sybase Adaptative Server: Proporciona una plataforma diseñada para soportar aplicaciones que utilizan transacciones de manera intensiva. http://www.sybase.com

  • Sistemas Oracle: Existen un gran número de sistemas desarrollados por la empresa Oracle, una de las compañías que desarrollan bases de datos que tienen una mayor presencia en la Web actual. Se trata de sistemas muy potentes, configurables, escalables y confiables y que proporcionan bastantes funcionalidades, muchas de ellas no soportadas por los sistemas de gestión de bases de datos de código libre. Sin embargo, no son gratuitos y debido a las grandes posibilidades de configuración que ofrecen, y sólo pueden ser utilizados por expertos. http://www.oracle.com/



Ventajas y Desventajas.



Ventajas de las Bases de Datos:


  • Control sobre la redundancia de datos:

Los sistemas de archivos almacenan varias copias de los mismos datos en archivos distintos, y asi evitar el desperdicio de espacio de lamacenamiento.
  • Consistencia de datos:

Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias.

  • Compartición de datos:

En los sistemas de archivos, los archivos pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados.

  • Mejora en la seguridad:

La Seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de archivos.

  • Mejora en la accesibilidad a los datos:

Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea.

  • Mejora en la productividad:

El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de archivos. A nivel básico, el SGBD proporciona todas las rutinas de manejo de archivos típicas de los programas de aplicación.

El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel.

  • Mejora en el mantenimiento de la misma:

En los sistemas de archivos, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan.

Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados.

Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos.

  • Aumento de la concurrencia:

En algunos sistemas de archivos, si hay varios usuarios que pueden acceder simultáneamente a un mismo archivo, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo.

  • Mejora en los servicios de copias de seguridad:

Muchos sistemas de archivos dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos.

En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.


Desventajas de las Bases de Datos:

  • Complejidad:

Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos.

  • Coste del equipamiento adicional:

Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.

  • Vulnerable a los fallos:

El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).