sábado, 11 de septiembre de 2010

HISTORIA BASE DE DATOS

Hablando dentro del contexto de Arquitecturas de Información, el diseño de las bases de datos es un elemento fundamental para el éxito de cualquier producto. Pero ¿qué es una base de datos?, en su definición más básica podríamos decir que una base de datos es un almacén que guarda datos. Un sistema de base de datos es un almacén de datos y también es un mecanismo para acceder esos datos.


Las bases de datos han existido desde los comienzos de las civilizaciones y de echo define a las civilizaciones.

Cuando el hombre necesita guardar conocimiento o seguir el rastro de la información, lo escribe, y lo cataloga usando índices de papel. Así el libro fue el primer tipo de base de datos. Estos no eran bases de datos electrónicas, sin embargo servían para el mismo propósito. Eran usados para seguir el rastro de libros de contabilidad, conocimiento científico e histórico. Hoy cuando pensamos en bases de datos, pensamos en bases de datos electrónicas, no en estos objetos que definieron a la civilización hace varios miles de años.

Las bases de datos sirven para solucionar algunos problemas:

1.Compensan el hecho de una memoria terrible, si se olvida algo simplemente se busca.

2.Compensan el hecho de que los humanos solo podemos analizar pequeñas piezas de información, las BD agrupan los datos por nosotros.

3.Permiten compartir hechos y eventualmente conocimiento. Por ejemplo en los burós de crédito varias compañías pueden revisar el historial crediticio de las personas.

El nacimiento de las Bases de Datos relacionales

Cuando la gente habla de Bases de Datos, regularmente se refieren a Bases de datos electrónicas mas estructuradas tales como Relacionales, Objetos, OLAP o espaciales.

Este tipo de Bases de datos tienen sus orígenes en el año de 1970 cuando E.F. Codd de IBM introdujo la idea de un modelo relacional de Bases de datos en un documento titulado “A Relational Model of data for Large Shared Banks” , antes de eso la mayoría de bases de datos estaban basadas en un modelo de red o una simple estructura de archivo plano.

El modelo relacional estaba basado en una teoría de conjuntos matemáticos que servía para múltiples propósitos:

Abstraer la representación de datos de su almacenaje físico y manipularlos.

Minimizar la redundancia de datos, dividiéndolos en distintos grupos no duplicados que pueden ser relacionados en un infinito numero de maneras para producir un infinito número de representaciones.

Incrementar la consistencia de datos, por ejemplo si se cambia el nombre de un cliente, este cambiara en todos los reportes que se hagan acerca de ese cliente, porque esa parte es guardada en una sola parte pero genera varias vistas o representaciones del dato.

Posteriormente un lenguaje llamado SQL (Lenguaje estructurado de consultas) también desarrollado por IBM, fue creado para generar reportes y actualizar datos en este nuevo modelo relacional.

El Sistema R de IBM nació de este trabajo, pero fue ignorado por IBM, y poco después Oracle saco su versión comercial de BD basada en la teoría relacional de Codd, y el Berkely Ingres.

El proyecto de investigación Berkely Ingres fue también comenzado por este tiempo y consistía en extender el modelo relacional para que trabajara con modelos mas complejos de datos, muchos modelos de Objetos y Objetos relacionales tienen sus principios en Ingres.

Otros modelos relacionales de BD empezaron a brotar de estos modelos pioneros, Informix, Sybase y el proyecto Ingres dieron nacimiento al Postgres el cual consiste en agregar mas características Orientadas a Objetos al modelo relacional, después se transformó en PostgreSQL. El sistema R dio nacimiento a DB2.

TIPOS DE BASE DE DATOS

Al igual que cuando se habla, p.ej., de coches no existe un único modelo, ni una sola marca,

ni siquiera una sola tecnología sobre su funcionamiento, cuando se trabaja con bases de datos ocurre
una cosa parecida: no existe una sola marca, sino varias, y además cada marca puede tener diferentes
productos cada uno de ellos apropiado a un tipo de necesidades.
Sin embargo, la división que vamos a hacer aquí de las bases de datos será en función de la
tecnología empleada en su funcionamiento. Hablando de coches tenemos los tradicionales de motor
a gasolina, los de gasóleo, los turbodiesel, los que funcionaban con gasógeno, y mucho menos
frecuentes los coches solares o incluso los de propulsión a chorro; pues bien, hablando de bases de
datos tenemos que las más utilizadas son la bases de datos relacionales, las más antiguas son las
jerárquicas y en red, y las más avanzadas son las orientadas a objetos, y las declarativas. Estas se
diferencian como hemos dicho, en la forma de trabajar con los datos y en la concepción o mentalidad
que el usuario debe adoptar para interactuar con el sistema.

Al igual que en el caso de los coches, unos sistemas consumen más recursos que otros. P.ej.,
los sistemas declarativos consumen tanta memoria y tiempo de funcionamiento como queroseno un
coche de propulsión a chorro; una base de datos en red puede resultar tan penosa de manejar como
un coche antiguo con gasógeno. En el término medio podemos decir que lo más empleado actualmente
(aunque algunos pueden decir que lo más contaminante) es el sistema relacional, al igual que los coches
de gasolina o gasóleo.

Para describir cada uno de los modelos o paradigmas en que se basan las bases de datos,
vamos a seguir un criterio histórico, estudiando primero los sistemas más antiguos para pasar por último
a los sistemas más avanzados.

MODELO DE BASE DE DATOS

Un modelo de base de datos o esquema de base de datos es la estructura o el formato de una base de datos, descrita en un lenguaje formal soportada por el sistema de gestión de bases de datos. En otras palabras, un "modelo de base de datos" es la aplicación de un modelo de datos usado en conjunción con un sistema de gestión de bases de datos.


Los esquemas generalmente son almacenados en un diccionario de datos. Aunque un esquema se defina en un lenguaje de base de datos de texto, el término a menudo es usado para referirse a una representación gráfica de la estructura de la base de datos.

MANEJO BASICO DE UNA BASE DE DATOS

Manejo básico de base de datos:


Unas de las capacidades de Excel es la de trabajar con listas o tablas de
información: nombres, direcciones, teléfonos, etc. Excel puede trabajar con tablas
de información sencillas o puede trabajar con tablas más complejas, también
conocidas como bases de datos. Una base de datos en Excel no es más que una lista
o una tabla que contiene una o más columnas, cada una de estas identificadas por
un rótulo como cabezal denominado campo.

Con las capacidades que ofrece Excel, la información de la tabla se puede
ordenar según diversos criterios, se pueden buscar datos específicos, y se puede
incluso extraer copias de información de grandes bases de datos ubicadas en una
red. Sin embargo, a diferencia de Microsoft Access, Excel no permite trabajar con
bases de datos relacionales.

COMPONENTES DE UNA BASE DE DATOS

•Hardware: constituido por dispositivo de almacenamientocomo discos, tambores, cintas, etc.

•Software:que es el DBMS o Sistema Administrador de Base de Datos.
•Datos: los cuales están almacenados de acuerdo a la estructura externa y van a ser procesados para convertirse en información.

TIPOS DE USUARIO

•Usuario Final: es la persona que utiliza los datos, esta persona ve datos convertidos en información:


•Desarrollador de Aplicaciones: es la persona que desarrolla los sistemas que interactuàn con la Base de Datos.

•DBA: es la persona que asegura integridad, consistencia, redundancia, seguridadeste es el Administrador de Base de Datos quien sed encarga de realizar el mantenimiento diario o periòdico de los datos.

Las personas tienen acceso DBMS se clasifican de la siguiente manera:

USUARIOS INGENUOS. – Son aquellos que interactuan con el sistema por medio de aplicaciones permanentes.

USUARIOS SOFISTICADOS.- son aquellos con la capacidad de acceder a la información por medios de lenguajes de consulta.

PROGRAMADORES DE APLICACIÓN.- son aquellos con un amplio dominio del DML capaces de generar nuevos módulos o utilerias capaces de manejar nuevos datos en el sistema.

USUARIOS ESPECIALIZADOS.- son aquellos que desarrollan módulos que no se refieren precisamente al manejo de los datos, si no a aplicaciones avanzadas como sistemas expertos, reconocimientos de imágenes, procesamiento de audio y demás.

ARQUITECTURA DE UNA BASE DE DATOS

Hay tres características importantes inherentes a los sistemasde bases de datos: la separación entre los programas de aplicación y los datos, el manejo de múltiples vistas por parte de los usuarios y el uso de un catálogo para almacenar el esquema de la base de datos. En 1975, el comité ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee) propuso una arquitectura de tres niveles para los sistemas de bases de datos, que resulta muy útil a la hora de conseguir estas tres características.

La definición de un sistema de información es la descripcióndetallada de la arquitectura del sistema. Las arquitecturas de bases de datos han evolucionado mucho desde sus comienzos, aunque la considerada estándar hoy en día es la descrita por el comité ANSI/X3/SPARC ( Standard Planning and Requirements Committee of the American National Standards Institute on Computers and Information Processing), que data de finales de los años setenta. Este comité propuso una arquitectura general para DBMSs basada en tres niveles o esquemas: el nivel físico, o de máquina, el nivel externo, o de usuario, y el nivel conceptual. Así mismo describió las interacciones entre estos tres niveles y todos los elementos que conforman cada uno de ellos.


Arquitectura ANSI

La arquitectura de sistemas de bases de datos de tres esquemas fue aprobado por la ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee) en 1975 como ayuda para conseguir la separación entre los programas de aplicación y los datos, el manejo de múltiples vistas por parte de los usuarios y el uso de un catálogo para almacenar el esquema de la base de datos.

•Nivel interno: Tiene un esquema interno que describe la estructura física de almacenamiento de base de datos. Emplea un modelo físico de datos y los únicos datos que existen están realmente en este nivel.

•Nivel conceptual: tiene esquema conceptual. Describe la estructura de toda la base de datos para una comunidad de usuarios. Oculta los detalles físicos de almacenamiento y trabaja con elementos lógicos como entidades, atributos y relaciones.

•Nivel externo o de vistas: tiene varios esquemas externos o vistas de usuario. Cada esquema describe la visión que tiene de la base de datos a un grupo de usuarios, ocultando el resto.

El objetivo de la arquitectura de tres niveles es el de separar los programas de aplicación de la base de datos física.

La mayoría de los SGBD no distinguen del todo los tres niveles. Algunos incluyen detalles del nivel físico en el esquema conceptual. En casi todos los SGBD que se manejan vistas de usuario, los esquemas externos se especifican con el mismo modelo de datos que describe la información a nivel conceptual, aunque en algunos se pueden utilizar diferentes modelos de datos en los niveles conceptual y externo.

Hay que destacar que los tres esquemas no son más que descripciones de los mismos datos pero con distintos niveles de abstracción. Los únicos datos que existen realmente están a nivel físico, almacenados en un dispositivo como puede ser un disco. En un SGBD basado en la arquitectura de tres niveles, cada grupo de usuarios hace referencia exclusivamente a su propio esquema externo. Por lo tanto, el SGBD debe transformar cualquier petición expresada en términos de un esquema externo a una petición expresada en términos del esquema conceptual, y luego, a una petición en el esquema interno, que se procesará sobre la base de datos almacenada. Si la petición es de una obtención (consulta) de datos, será preciso modificar el formato de la información extraída de la base de datos almacenada, para que coincida con la vista externa del usuario. El proceso de transformar peticiones y resultados de un nivel a otro se denomina correspondencia o transformación. Estas correspondencias pueden requerir bastante tiempo, por lo que algunos SGBD no cuentan con vistas externas.

La arquitectura de tres niveles es útil para explicar el concepto de independencia de datos que podemos definir como la capacidad para modificar el esquema en un nivel del sistema sin tener que modificar el esquema del nivel inmediato superior.

Se pueden definir dos tipos de independencia de datos:

•La independencia lógica es la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos ni los programas de aplicación. Se puede modificar el esquema conceptual para ampliar la base de datos o para reducirla. Si, por ejemplo, se reduce la base de datos eliminando una entidad, los esquemas externos que no se refieran a ella no deberán verse afectados.

•La independencia física es la capacidad de modificar el esquema interno sin tener que alterar el esquema conceptual (o los externos). Por ejemplo, puede ser necesario reorganizar ciertos ficheros físicos con el fin de mejorar el rendimiento de las operaciones de consulta o de actualización de datos. Dado que la independencia física se refiere sólo a la separación entre las aplicaciones y las estructuras físicas de almacenamiento, es más fácil de conseguir que la independencia lógica.

En los SGBD que tienen la arquitectura de varios niveles es necesario ampliar el catálogo o diccionario, de modo que incluya información sobre cómo establecer la correspondencia entre las peticiones de los usuarios y los datos, entre los diversos niveles. El SGBD utiliza una serie de procedimientos adicionales para realizar estas correspondencias haciendo referencia a la información de correspondencia que se encuentra en el catálogo. La independencia de datos se consigue porque al modificarse el esquema en algún nivel, el esquema del nivel inmediato superior permanece sin cambios, sólo se modifica la correspondencia entre los dos niveles. No es preciso modificar los programas de aplicación que hacen referencia al esquema del nivel superior.

Por lo tanto, la arquitectura de tres niveles puede facilitar la obtención de la verdadera independencia de datos, tanto física como lógica. Sin embargo, los dos niveles de correspondencia implican un gasto extra durante la ejecución de una consulta o de un programa, lo cual reduce la eficiencia del SGBD. Es por esto que muy pocos SGBD han implementado esta arquitectura completa.