Historia de Las Bases de Datos

11

Click here to load reader

description

las bases de datos

Transcript of Historia de Las Bases de Datos

Page 1: Historia de Las Bases de Datos

Historia de las Bases de Datos 

una base de datos es un conjunto de información relacionada que se encuentra

agrupada o estructurada.

Desde el punto de vista informático, una 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 lo manipulen.

Por su parte, un sistema de Gestión de Bases de datos es un tipo de software

muy especifico dedicado a servir de interfaz entre la base de datos, el usuario y las

aplicaciones que la utilizan; o lo que es lo mismo, una agrupación de programas

que sirven para definir, construir y manipular una base de datos, permitiendo así

almacenar y posteriormente acceder a los datos de forma rápida y estructurada.

Origenes

En 1884 Herman Hollerith creó la máquina automática de tarjetas perforadas,

siendo nombrado así el primer ingeniero estadístico de la historia. En esta época,

los censos se realizaban de forma manual.

Posteriormente, en la década de los cincuenta se da origen a las cintas

magnéticas, para automatizar la información y hacer respaldos. Esto sirvió para

suplir las necesidades de información de las nuevas industrias. Y a través de este

mecanismo se empezaron a automatizar información, con la desventaja de que

solo se podía hacer de forma secuencial.

Década de 1960

Otro de los principales logros de los años sesenta fue la alianza de IBM y

American Airlines para desarrollar SABRE, un sistema operativo que

manejaba las reservas de vuelos, transacciones e informaciones sobre los

pasajeros de la compañía American Airlines.

Page 2: Historia de Las Bases de Datos

Y, posteriormente, en esta misma década, se llevo a cabo el desarrollo del IDS

desarrollado por Charles Bachman la creación de un nuevo tipo de sistema de

bases de datos conocido como modelo en red que permitió la creación de un

standard en los sistemas de bases de datos gracias a la creación de nuevos

lenguajes de sistemas de información.

CODASYL (Conference on Data Systems Languages) era un consorcio de

industrias informáticas que tenían como objetivo la regularización de un

lenguaje de programación estándar que pudiera ser utilizado en multitud

de ordenadores.

Los miembros de este consorcio pertenecían a industrias e instituciones

gubernamentales relacionadas con el proceso de datos, cuya principal meta era

promover un análisis, diseño e implementación de los sistemas de datos más

efectivos; y aunque trabajaron en varios lenguajes de programación como COBOL,

nunca llegaron a establecer un estándar fijo, proceso que se llevo a cabo por ANSI.

Década de 1970

Por lo que respecta a la década de los setenta, Edgar Frank Codd, científico

informático ingles conocido por sus aportaciones a la teoría de bases de datos

relacionales,

Como consecuencia de esto, durante la década de 1970, Lawrence J. Ellison, más

conocido como Larry Ellison, a partir del trabajo de Edgar F. Codd sobre los

sistemas de bases de datos relacionales, desarrolló el Relational Software System,

o lo que es lo mismo, lo que actualmente se conoce como Oracle Corporation,

desarrollando así un sistema de gestión de bases de datos relacional con el mismo

nombre que dicha compañía.

Posteriormente en la época de los ochenta también se desarrollará el SQL

(Structured Query Language) o lo que es lo mismo un lenguaje de consultas o

lenguaje declarativo de acceso a bases de datos relacionales que permite efectuar

consultas con el fin de recuperar información de interés de una base de datos y

hacer cambios sobre la base de datos de forma sencilla; además de analiza

grandes cantidades de información y permitir especificar diversos tipos de

operaciones frente a la misma información, a diferencia de las bases de datos de

los años ochenta que se diseñaron para aplicaciones de procesamiento de

transacciones.

Page 3: Historia de Las Bases de Datos

Década de 1980

Por su parte, a principios de los años ochenta comenzó el auge de la

comercialización de los sistemas relacionales, y SQL comenzó a ser el estándar de

la industria, ya que las bases de datos relacionales con su sistema de tablas

(compuesta por filas y columnas) pudieron competir con las bases jerárquicas y de

red, como consecuencia de que su nivel de programación era sencillo y su nivel de

programación era relativamente bajo.

Década años 1990

En la década de 1990 la investigación en bases de datos giró en torno a las bases

de datos orientadas a objetos. Las cuales han tenido bastante éxito a la hora de

gestionar datos complejos en los campos donde las bases de datos relacionales no

han podido desarrollarse de forma eficiente. Así se desarrollaron herramientas

como Excel y Access del paquete de Microsoft Office que marcan el inicio de las

bases de datos orientadas a objetos.

SIGLO XXI

En la actualidad, las tres grandes compañías que dominan el mercado de las bases

de datos son IBM, Microsoft y Oracle. Por su parte, en el campo de internet, la

compañía que genera gran cantidad de información es Google. Aunque existe una

gran variedad de software que  permiten crear y manejar bases de datos con gran

facilidad, como por ejemplo LINQ, que es un proyecto de Microsoft que agrega

consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET. El

objetivo de este proyecto es permitir que todo el código hecho en Visual Studio

sean también orientados a objetos; ya que antes de LINQ la manipulación de datos

externos tenía un concepto más estructurado que orientado a objetos; y es por eso

que trata de facilitar y estandarizar el acceso a dichos objetos.

Page 4: Historia de Las Bases de Datos

Los SGBDs jerárquicos  fueron los primeros en aparecer. Una base de datos jerárquica se puede visualizar como una estructura en árbol. Una vez diseñada la base de datos, es complejo cambiarla y, además, es necesario un conocimiento amplio de la forma en la que se han almacenado los datos para poder recuperarlos de forma efectiva.

Los SGBDs en red  fueron una evolución del modelo jerárquico. cada uno de los registros están enlazados entre si pero no necesariamente siguiendo una estructura en árbol. El modelo en red elimina parte de las rigideces del modelo jerárquico, pero aumenta la complejidad para modificar la estructura de la base de datos

Los SGBDs relacionales. En una base de datos relacional, se representan los datos como un conjunto de tablas bidimensionales compuestas de filas y columnas. Cada fila representa una relación entre un conjunto de valores y está identificada por una clave única. Los SGBDs relacionales son muy flexibles y de fácil manejo, lo que los ha convertido en el modelo dominante en la actualidad. Un factor decisivo en la implantación de los SGBDs relacionales, ha sido el lenguaje SQL (Structured Query Language) para la interrogación y el manejo de datos del modelo relacional.

A pesar de que los avances en el campo de los SGBDs han sido muy grandes y de que los SGBDs actuales proporcionan un rendimiento muy elevado, aún están lejos de satisfacer todas las demandas de las aplicaciones más avanzadas. Siguen existiendo hoy en día numerosas áreas científicas e industriales, en las que los SGBDs relacionales están escasamente introducidos. Muchos de estos campos exigen la manipulación de nuevos tipos de información o suponen unos volúmenes de datos de difícil manejo por los sistemas actuales.

Page 5: Historia de Las Bases de Datos

2.6.2.1 Definiciones de Base de Datos y Sistema de Gestión de Bases de Datos

Base de datos (BD)

Es un conjunto de datos no redundantes, almacenados en un soporte informático, organizados de forma independiente de su utilización y accesibles simultáneamente por distintos usuarios y aplicaciones.

Es decir, la diferencia de una BD respecto a otro sistema de almacenamiento de datos, es que éstos se almacenan de forma que cumplan tres requisitos básicos:

No redundancia. Los datos se almacenan una sola vez. Si varias aplicaciones necesitan los mismos datos, no crearán cada una su propia copia sino que todas accederán a la misma.

Independencia. Los datos se almacenan teniendo en cuenta la estructura inherente a los propios datos y no la de la aplicación que los crea. Esta forma de trabajar es la que permite que varias aplicaciones puedan utilizar los mismos datos.

Concurrencia. Varios usuarios, ejecutando la misma o diferente aplicación, podrán acceder simultáneamente a los datos.

Arquitectura de un SGBD

Esta arquitectura divide la base de datos en tres niveles :

El nivel externo es la representación de los datos, tal y como los ve el usuario. Cada usuario tendrá una visión distinta de la base de datos dependiente del subconjunto de datos, que está autorizado a ver según sus privilegios de acceso y también, del formato en que se le presentan, que dependerá de las herramientas que utilice

El nivel lógico, es una representación abstracta (no física como en el nivel interno) del contenido total de la base de datos. Contiene la definición de todos los datos existentes más otras informaciones como restricciones de seguridad, controles de integridad, etc.

El nivel interno es el más cercano a la máquina. Es una representación a bajo nivel de la BD, en la que se define la forma en que los datos se almacenan físicamente en la máquina. Se definen características como los dispositivos en donde se almacenan los datos, el espacio que se reserva, las estrategias de acceso, la creación de ficheros de índices, etc. Es dependiente de la máquina en que se vaya a instalar la BD, del sistema operativo que exista, etc.

Sistema de Gestión de Bases de Datos (SGBD)

Es el conjunto de programas que permiten definir, manipular y utilizar la información que contienen las bases de datos, realizar todas las tareas de administración necesarias para mantenerlas operativas, mantener su integridad, confidencialidad y seguridad. Una BD nunca se accede o manipula directamente sino a través del SGBD. Se puede considerar al SGBD como la interfase entre el usuario y la BD.

Funciones de un SGBD

Un SGBD debe proporcionar un amplio surtido de funcionalidades para poder cumplir adecuadamente su misión. Normalmente se clasifican en definición, manipulación y utilización.

Page 6: Historia de Las Bases de Datos

Función de definición . Permite describir los elementos de datos, sus estructuras, sus interrelaciones y sus validaciones a nivel externo, lógico e interno.

Función de manipulación . Permite buscar, añadir, suprimir y modificar los datos de la BD. Función de utilización . Incluye otras funcionalidades tales como: modificar la capacidad de

los registros, cargar archivos, realizar copias de seguridad, rearranque, protección frente a accesos no autorizados, gestión de la concurrencia, estadísticas de utilización, etc.

2.6.2.2 Conceptos y funcionalidades básicos

Diccionario de datos. Reúne la información sobre los datos almacenados en la BD

Repositorio.  Permiten describir y registrar las características o atributos de cada componente u objeto de un Sistema o Base de Datos.

Directorio de datos. Es un subsistema del SGBD que describe dónde y cómo se almacenan los datos de la BD

Modelo de datos. Es un conjunto de conceptos, reglas y convenciones que permiten describir y manipular los datos.

Modelo relacional.introduce la teoría de las relaciones en el campo de las BD. En este modelo, los datos se estructuran en tablas manteniendo la independencia de esta estructura lógica, respecto al modo de almacenamiento u otras características físicas. Las tablas se manejan mediante operaciones de la teoría de conjuntos y el álgebra relacional.

DDL (Data Definition Language). Lenguaje de definición de datos, se utiliza para crear y mantener la base de datos y los elementos que contiene a nivel externo, lógico e interno. Es propio de cada SGBD.

DML (Data Manipulation Language). Lenguaje de manipulación de datos, se utiliza para la actualización y consulta de los datos almacenados en la base de datos. Permite añadir, seleccionar, suprimir o modificar los datos de la BD, respetando las reglas establecidas por el DDL.

SQL (Structured Query Language). El SQL es un lenguaje de alto nivel, no procedural, normalizado, que permite la consulta y actualización de los datos de BD relacionales.

Transacción.  si se realiza alguna de las modificaciones deben realizarse todas, en caso contrario no debe realizarse ninguna

Commit. Los SGBDs ofrecen sentencias especializadas para la gestión de transacciones. COMMIT WORK, finalizar una transacción y ROLLBACK, deshacerla.

Two-Phase Commit. Proceso necesario para realizar Commit en BD distribuidas. Para garantizar que todas las BD involucradas quedarán correctamente modificadas, el Commit se divide en dos fases. Primero, se comprueba que todos los nodos involucrados están listos para realizar la actualización. Segundo, se modifican las bases de datos si, y sólo, si todos los nodos están preparados.

Bloqueo. Cuando una transacción necesita asegurarse de que el contenido de un recurso de la BD (un archivo, un registro u otro) no cambiará hasta que la transacción finalice, se bloquea. El bloqueo impide que otras transacciones lo modifiquen. Existen dos tipos principales de bloqueos: bloqueos exclusivos y bloqueos compartidos. Si una transacción realiza un bloqueo exclusivo sobre un recurso, ninguna otra podrá ejecutar ningún tipo de bloqueo contra el recurso.

Page 7: Historia de Las Bases de Datos

Se utilizan cuando la transacción va a actualizar el recurso. Si una transacción realiza un bloqueo compartido, otras transacciones podrán realizar bloqueos compartidos (pero no exclusivos) sobre ese mismo recurso. Esta última técnica se utiliza cuando la transacción no va a actualizar los datos, pero desea evitar que otras transacciones puedan modificarlo.

Interbloqueos. Los interbloqueos se producen cuando dos transacciones que acceden a una base de datos, se bloquean mutuamente al intentar realizar un bloqueo exclusivo sobre los mismos recursos. Todo SGBD debe implementar técnicas automáticas para evitar los interbloqueos, ya que si se producen, ninguna de las transacciones puede continuar y permanecerán en ese estado, hasta que el SGBD lo resuelva. Por ejemplo:

Inconsistencia. Una base de datos está inonsistente si dos datos que deberían ser iguales no lo son. Por ejemplo, un empleado aparece en una tabla como activo y en otra como jubilado.

Integridad. Se refiere a la exactitud y precisión de la información. El dato debe permanecer como fue colocado inicialmente, sin ser modificado sin no cuenta con la respectiva autorización.

Redundancia. Se llama redundancia al hecho de que los mismos datos estén almacenados más de una vez en la base de datos.

Redundancia controlada. En ocasiones, es necesario introducir voluntariamente redundancia en la BD por consideraciones de rendimiento.

Confidencialidad. Consiste en proteger la BD contra accesos no autorizados. Debe asegurarse no sólo que los usuarios no autorizados no consigan acceso a la BD sino, también, que los usuarios legítimos acceden sólo a los datos autorizados.

Recuperación. Su objetivo es proteger a la BD contra fallos (lógicos o físicos) que destruyan su contenido parcial o totalmente. Los SGBDs suelen incluir los llamados "ficheros de log", en los que se almacenan todos los cambios antes de almacenarlos en la BD, así como, marcas de comienzo y final de transacción.

Normalización. Según el modelo relacional, las tablas deben definirse siguiendo una serie de reglas precisas, para asegurarse de que no se producirán anomalías en la actualización de la base de datos. Para ello, es habitual que se necesite descomponer las tablas iniciales en otras más simplificadas que no presenten dichos problemas

Middleware es un módulo intermedio que actúa como conductor entre dos módulos de software. Para compartir datos, los dos módulos de software no necesitan saber cómo comunicarse entre ellos, sino cómo comunicarse con el módulo de middleware.

2.6.2.2.2 Los SGBDs relacionales

Basados en el modelo relacional, los datos se describen como relaciones que se suelen representar como tablas bidimensionales,consistentes en filas y columnas. Cada fila (tupla, en terminología relacional) representa una ocurrencia. Las columnas (atributos) representan propiedades de las filas. Cada tupla se identifica por una clave primaria o identificador. Por ejemplo:

Esta organización de la información, permite recuperar de forma flexible los datos de una o varias tablas, así como combinar registros de diferentes tablas para formar otras nuevas. No todas las definiciones posibles de tablas son válidas según el modelo relacional. En él, deben emplearse

Page 8: Historia de Las Bases de Datos

diseños normalizados que garantizan que no se producirán anomalías en la actualización de la BD. En un diseño normalizado para cada tabla:

No pueden existir tuplas duplicadas. El orden de las tuplas es irrelevante. La tabla es plana, es decir, en el cruce de un atributo y una tupla sólo puede haber un

valor (el orden de los atributos no es significativo).

2.6.2.2.3 Arquitectura de implantación de un SGBD

La arquitectura centralizada  el SGBD está implantado en una sola plataforma u ordenador desde donde se gestiona directamente, de modo centralizado, la totalidad de los recursos

En la arquitectura distribuida, el SGBD y la BD no están asociados a un determinado ordenador sino a una red, cuyos nodos se reparten las funciones. Una base de datos distribuida es vista por las aplicaciones igual que si fuera centralizada. una base de datos es distribuida si permite lecturas y modificaciones remotas, independientemente de que éstas sean transparentes o no, para las aplicaciones.

Se suele distinguir entre sistemas homogéneos y heterogéneos. Un sistema es homogéneo si el SGBD usado en todas las máquinas es el mismo. Si existe más de un SGBD distinto el sistema se denomina heterogéneo.

La arquitectura cliente/servidor 

Esta arquitectura se basa, al igual que el caso anterior, en varias plataformas interconectadas, una de las cuales actúa como "servidor" de la BD, en la que los datos están físicamente localizados y centraliza las funciones de administración. Las plataformas denominadas "clientes"  realizan funciones de manejo de los interfases de usuario, logical de aplicación, etc.

2.6.2.2.4 Ventajas e inconvenientes de los SGBD

La instalación de un SGBD en un sistema que está funcionando sin él, normalmente proporciona una amplia serie de ventajas. Entre las más importantes se pueden destacar:

Eliminan las inconsistencias en los datos. Algo especialmente difícil sin un SGBD, cuando los mismos datos se utilizan y actualizan en diferentes procesos.

Permiten compartir los mismos datos entre diferentes aplicaciones con distintas necesidades. Por ejemplo: aplicaciones transaccionales junto con aplicaciones de soporte a la dirección.

Se adaptan mejor a la existencia de aplicaciones rápidamente cambiantes. En estos casos con los enfoques tradicionales se puede requerir la conversión de los datos cada vez. Un SGBD proporcionará independencia de los datos respecto a las aplicaciones.

Ahorran espacio de almacenamiento al no existir redundancia o ser ésta escasa. También porque muchos SGBDs utilizan mecanismos de compresión para almacenar los datos.

Mejoran la seguridad de los datos pues, normalmente, incorporan mecanismos de seguridad en el propio SGBD.

Permiten la creación de entornos de alta disponibilidad. Los SGBDs modernos suelen permitir realizar gran parte (a veces todo) del mantenimiento del sistema sin necesidad de parar las aplicaciones. Por tanto, con algunos SGBDs es posible llegar a disponer de aplicaciones funcionando ininterrumpidamente.

Page 9: Historia de Las Bases de Datos

Por otra parte, si se escoge adecuadamente el SGBD, no suelen presentarse problemas de tipo técnico que no se presenten con los sistemas anteriores de almacenamiento de datos, sino que los problemas suelen ser los típicos de cualquier equipo lógico complejo:

La puesta en funcionamiento puede ser larga. Pues antes de obtener los primeros resultados se necesita un período de formación y adaptación variable, según la complejidad del entorno.

Se necesita personal especializado para su mantenimiento. En principio un diseñador de la BD y un administrador permanente de la BD.

2.6.2.3 Tendencias tecnológicas y del mercado

Evolución de los SGBDs relacionales

En la tecnología actual de SGBDs relacionales se observan las siguientes tendencias.

Integración de la tecnología de orientación a objetos con la tecnología relacional. Los datos siguen estando centralizados en cuanto a modelado y administración, mientras

que el desarrollo de aplicaciones se descentraliza. Los usuarios finales acceden a las BDs con mayor facilidad (existencia de productos en el

mercado). El ordenador central pasa de soportar los procesos de manera centralizada a ser un

servidor de datos. El proceso en paralelo va madurando, apareciendo en el mercado SGBDs adaptados a

estas arquitecturas.

En cuanto a los SGBDs distribuidos, aunque no hay estándares definidos, existen en el mercado algunos productos que incorporan características de estos SGBDs.

Los SGBD post - relacionales

El modelo post-relacional es de una estructura tridimensional , es decir, los campos o grupos de éstos pueden aparecer varias veces, una vez, o nunca, sin limitación y sin necesidad de definición. Reduce el número de tablas y elimina la duplicación de datos. El modelo relacional tradicional (1NF) es un subgrupo del modelo post-relacional.

Los SGBD orientados a objetos

la idea fundamental es la integración de dos conceptos que tradicionalmente se han venido tratando de forma separada: datos y procesos. Cada objeto encapsula tanto datos como procesos. Los objetos se comunican entre sí mediante mensajes. Cada objeto se percibe por los demás como el encapsulamiento de una serie de servicios que se pueden invocar externamente. De esta forma, el encapsulamiento es una abstracción que permite ocultar a los usuarios la instrumentación del objeto, ofreciéndoles una interfase externa mediante la cuál interactúa con él. Esta orientación es muy adecuada para el manejo de elementos complejos como, por ejemplo, gráficos.

Los SGBD orientados a objetos ofrecen varias ventajas sobre los sistemas relacionales:

Manejan más efectivamente tipos de datos complejos como imágenes. Son más sencillos de mantener gracias al encapsulamiento. Proveen un acceso más sencillo a los datos.

En cuanto a las desventajas:

Page 10: Historia de Las Bases de Datos

El modelo orientado a objetos no está totalmente desarrollado, ni académicamente ni en cuanto a investigación y desarrollo comerciales.

Aún no dispone de un lenguaje normalizado como SQL, ni otro tipo de estándares.

Los SGBD activos

los SGBD activos son un refinamiento de los sistemas existentes que intenta almacenar la semántica de los datos, además de los propios datos. Podemos definir un SGBD activo como aquel que, cuando se producen ciertas condiciones predefinidas, ejecuta de forma automática, es decir, sin la intervención del usuario, una serie de acciones (denominadas disparadores, reglas, etc.) especificadas de antemano en la fase de definición de la base de datos.

Los SGBD activos están, en parte, "dirigidos por los datos" en lugar de estar dirigidos exclusivamente por programas como los actuales. La lógica de control se codifica en reglas almacenadas en la base de datos en lugar de en los propios programas.

Las principales ventajas de los SGBD activos son las siguientes:

Simplifican los programas al descargarlos de aquellos controles que, en realidad, forman parte de la semántica de los datos.

Consiguen una mayor productividad y un menor mantenimiento ya que las reglas se almacenan y, si es necesario, se modifican una sola vez en el diccionario de la base de datos, en lugar de hacerlo en cada programa.

Reducen el tráfico de red, pues al almacenar parte de los procedimientos en los servidores se limita la cantidad de información que éstos deben solicitar y/o devolver.

Facilitan el acceso a la base de datos por los usuarios finales, al almacenar las reglas de actualización en el propio SGBD. Este podrá preservar la integridad de los datos independientemente de cuál sea el método de acceso empleado, lo que permite a los usuarios finales acceder sin peligro de dañar la base de datos.

SQL3

SQL3 es, como se ha mencionado, la próxima versión de SQL. Está en estudio por el grupo correspondiente de ISO (ISO/IEC JTC1/SC21 WG3 DBL). SQL3 soportará, entre otras, las extensiones necesarias para bases de datos orientadas a objeto y bases de datos activas.