jueves, 3 de octubre de 2013

HISTORIA DE LA BASE DE DATOS


El término bases de datos fue escuchado por primera vez en un simposio celebrado en California en 1963.

En una primera aproximación, se puede decir que 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 manipulen ese conjunto de datos.

Por su parte, un sistema de Gestión de Bases de datos es un tipo de software muy específico 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.

Actualmente, las bases de datos están teniendo un impacto decisivo sobre el creciente uso de las computadoras.

Pero para poder entender más profundamente una base de datos cabe entender su historia.

Orígenes

Los orígenes de las bases de datos se remontan a la Antigüedad donde ya existían bibliotecas y toda clase de registros. Además también se utilizaban para recoger información sobre las cosechas y censos. Sin embargo, su búsqueda era lenta y poco eficaz y no se contaba con la ayuda de máquinas que pudiesen reemplazar el trabajo manual.

Posteriormente, el uso de las bases de datos se desarrolló a partir de las necesidades de almacenar grandes cantidades de información o datos. Sobre todo, desde la aparición de las primeras computadoras, el concepto de bases de datos ha estado siempre ligado a la informática.

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.





Ante esta situación, Hollerith comenzó a trabajar en el diseño de una maquina tabuladora o censadora, basada en tarjetas perforadas.



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
Posteriormente en la época de los sesenta, las computadoras bajaron los precios para que las compañías privadas las pudiesen adquirir; dando paso a que se popularizara el uso de los discos, cosa que fue un adelanto muy efectivo en la época, debido a que a partir de este soporte se podía consultar la información directamente, sin tener que saber la ubicación exacta de los datos.

En esta misma época se dio inicio a las primeras generaciones de bases de datos de red y las bases de datos jerárquicas, ya que era posible guardar estructuras de datos en listas y árboles.

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.

Y, posteriormente, en esta misma década, se llevó a cabo el desarrollo del IDS desarrollado por Charles Bachman (que formaba parte de la CODASYL) supuso 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 llevó 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, definió el modelo relacional a la par que publicó una serie de reglas para los sistemas de datos relacionales a través de su artículo “Un modelo relacional de datos para grandes bancos de datos compartidos”.





Este hecho dio paso al nacimiento de la segunda generación de los Sistemas Gestores de Bases de Datos.

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.

Pero cabe destacar que ORACLE es considerado como uno de los sistemas de bases de datos más completos que existen en el mundo, y aunque su dominio en el mercado de servidores empresariales ha sido casi total hasta hace relativamente poco, actualmente sufre la competencia del SQL Server de la compañía Microsoft y de la oferta de otros Sistemas Administradores de Bases de Datos Relacionales con licencia libre como es el caso de PostgreSQL, MySQL o Firebird que aparecerían posteriormente en la década de 1990.

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.





Así se creó la tercera generación de sistemas gestores de bases de datos.

Fue también en esta época cuando se empezó a modificar la primera publicación hecha por ANSI del lenguaje SQL y se empezó a agregar nuevas expresiones regulares, consultas recursivas, triggers y algunas características orientadas a objetos, que posteriormente en el siglo XXI volverá a sufrir modificaciones introduciendo características de XML, cambios en sus funciones, estandarización del objeto sequence y de las columnas autonuméricas. Y además, se creará la posibilidad de que SQL se pueda utilizar conjuntamente con XML, y se definirá las maneras de cómo importar y guardar datos XML en una base de datos SQL. Dando asi, la posibilidad de proporcionar facilidades que permiten a las aplicaciones integrar el uso de XQuery (lenguaje de consulta XML) para acceso concurrente a datos ordinarios SQL y documentos XML. Y posteriormente, se dará la posibilidad de usar la cláusula order by.

Aunque el boom de la década de los noventa será es el nacimiento del World Wide Web a finales de la década, ya que a través de este se facilitará la consulta a bases de datos.


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.

Cabe destacar que Visual Studio es un entorno de desarrollo integrado para sistemas operativos Windows que soporta varios lenguajes de programación tales como Visual C++, Visual#, Visual J#, ASP.NET y Visual Basic.NET, aunque se están desarrollando las extensiones necesarias para otros, cuyo objetivo es permitir crear aplicaciones, sitios y aplicaciones web, así como servicios web a cualquier entorno que soporte la plataforma .Net, creando así aplicaciones que intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles.




BASE DE DATOS VS FICHEROS : VENTAJAS E INCONVENIENTES DE ELLOS


                      







 
vs 




Ventajas de la base de datos.
  • Control sobre la redundancia de datos. Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. 
  • Consistencia de datos. Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. 
  • Más información sobre la misma cantidad de datos. Al estar todos los datos integrados, se puede extraer información adicional sobre los mismos. 
  • Compartición de datos. En los sistemas de ficheros, los ficheros 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. Además, las nuevas aplicaciones que se vayan creando pueden utilizar los datos de la base de datos existente. 
  • Mantenimiento de estándares. Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. 


Desventajas de la base de datos.
  •  Complejidad
  • Vulnerable a los fallos 
  • Instalaciones costosas


Ventajas de los ficheros
  • Coherencia de los resultados: Debido a que la información de la base de datos se recoge y se almacenan una sola.
  • Independencia de los datos.
  • Disponibilidad: Es la eficiencia de los datos para el conjunto de los usuarios.
  • Mayor eficiencia en recogida, validación de la entrada de los datos al sistema.
  • Reducción del espacio de almacenamiento


Desventajas de los ficheros
  • Instalación costosa
  • Personas especializadas para el manejo de la información
  • Ausencia real de normas: Es la ausencia estandarizada que facilite el manejo de las bases de datos.

LOS SISTEMAS DE GESTIÓN DE BASE DE DATOS (SGBD)


Qué es un SGBD

Es un programa orientado a la gestión y diseño de bases de datos, permitiendo su creación, modificación, atributos e interfaz. Además de permitir el desarrollo y construcción de las bases de datos, un SGBD permite operar directamente en las tablas de la base de datos, haciendo posible la navegación y visualización de los registros almacenados en las tablas de la misma, su edición, búsqueda, inserción y eliminación. En sí mismo el SGBD no sólo actúa como una herramienta de construcción de BD sino como un interfaz que permite interactuar y explotar sus contenidos. Para ello un SGBD está compuesto por diversos subsistemas a saber; el motor de la base de datos, el sistema de definición de datos, el sistema de manipulación y gestión, el sistema de herramientas y aplicaciones y el módulo de administración.

Componentes de un SGBD
  • Motor de la base de datos. Es el programa del SGBD que construye las consultas y peticiones que se realizan en el sistema para que sean procesadas por el sistema de BD. Por ejemplo el SGBD PhpMyAdmin consta de un motor de base de datos basado en MySQL por lo tanto las peticiones y operaciones que se realicen serán procesadas y convertidas a un formato SQL interpretable por la base de datos gestionada. Con Microsoft Access sucede lo mismo, el programa en sí mismo es un SGBD que transforma todas las peticiones y operaciones sobre la base de datos, también en formato SQL no percibido por el usuario. De esta forma la base de datos interpreta correctamente que el usuario desea insertar una nueva fila en la tabla o editar una serie de valores. 
  • Sistema de definición de datos. Programa especializado en crear los ficheros inversos, ficheros diccionarios, realizar los procesos de indexación de campos de las tablas y aplicar los ficheros de palabras vacías.
  • Sistema de manipulación y gestión. Es la parte del SGBD dedicada a la manipulación de registros en las tablas de la base de datos. Hace posible la navegación a través de sus contenidos, la inserción de nuevos registros, su modificación, eliminación, importación o exportación mediante un interfaz sencillo destinado al usuario, evitándole la programación de sus consultas, sustituyendo procesos complejos por funciones almacenadas en un botón o un enlace.
  • Sistema de herramientas y aplicaciones. Lo constituyen todas las herramientas y subprogramas orientados a facilitar la creación de interfaces de edición y consulta en la base de datos. Esto significa que el SGBD ayuda a construir aplicaciones para manipular de forma eficiente las tablas de la base de datos, permitiendo al usuario diseñar los formularios de entrada de datos, las pantallas de visualización de registros, las pantallas de búsqueda y recuperación, etc. Por ejemplo Microsoft Access y Filemaker son SGBD que integran tales herramientas con las que es posible construir una aplicación un sistema de información especializado con un interfaz adaptado a las necesidades del usuario. En el caso de MySQL y PhpMyAdmin esto no es así, ya que el interfaz personalizado por el usuario debe ser desarrollado por él mismo en forma de formularios web basados en un servidor Apache y programados en lenguaje PHP. Este aspecto que a priori podría ser una desventaja, hace posible que sea el método de diseño de interfaz más avanzado, personalizado y profesional, dado que es posible modificar todos los parámetros de funcionamiento del sistema, aspecto que a diferencia de SGBD no es posible encontrar, debido a la limitación de las herramientas que proporcionan.
  • Administración. Lo constituye aquella parte del programa destinada a gestionar las funciones de almacenamiento, los procesos generales del sistema, los privilegios de acceso a la base de datos, gestionar las operaciones de mantenimiento con las bases de datos creadas, modificar las propiedades del interfaz, editar la configuración de los demás componentes del SGBD.


Funciones

  • Capacidad para almacenar datos en la BD, acceder a ellos, insertar otros nuevos, modificarlos y eliminarlos.
  • El SGBD oculta a ojos del usuario la apariencia real de las tablas de la BD, mostrando un interfaz sencillo. La apariencia real lo constituye un conjunto de códigos fuente sobre los que se almacenan las cadenas de datos que componen la información del registro.
  • Debe automatizar las funciones de consulta, de forma tal que las peticiones del usuario sean transformadas a un lenguaje identificable y entendible por la BD, generalmente este lenguaje es SQL.
  • El SGBD y especialmente la base de datos gestionada deben asegurar el acceso de múltiples usuarios manipulando o editando sus contenidos mediante un control de la concurrencia. Esto es que el sistema debe proporcionar un orden de prioridad en los procesos que se llevan a cabo en el sistema. Al conjunto de procesos que llevan a cabo múltiples usuarios se le denomina "transacciones". 
  • Un SGBD debe permitir la gestión de los privilegios de acceso al sistema para gestionar el acceso y las restricciones del mismo a diversos tipos de usuarios. 
  • Debe proporcionar las herramientas de mantenimiento necesarias para mantener la consistencia de los datos de la base de datos, esto es el proceso de compactación y desfragmentación de los datos, la optimización de las tablas, su reparación, la eliminación de residuos o información residual en cache como resultado de una transacción finalizada con algún tipo de error, etc.
ARQUITECTURA DE UNA 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 SGBD (software que gestiona BDD y suministra mecanismos de acceso que hace la distribución transparente al usuario) cuyo objetivo principal era el de separar los programas de aplicación de la BD física
Al describir La Arquitectura De Una Base De Datos nos encontramos con distintos Niveles de un SBD.

Los SBD pueden ser estudiados desde 3 niveles distintos:

1-El nivel interno que también se conoce como nivel físico: tiene relación con lo que es la forma en que los datos están almacenados físicamente.


2-El nivel externo o nivel lógico: esta relacionado con la forma en que los usuarios ven la base de datos.


3-El nivel conceptual: es un nivel de mediación entre los otros dos.
Los 3 niveles vistos, componen lo que conocemos como arquitectura de base de datos a 3 niveles.
A menudo el nivel físico no es facilitado por muchos DBMS, esto es, no permiten al usuario elegir como se almacenan sus datos y vienen con una forma estándar de almacenamiento y manipulación de los datos.




*Con la arquitectura a tres niveles se introduce el concepto de independencia de datos, se definen dos tipos de independencia:

· Independencia lógica: la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos ni los programas de aplicación.

· Independencia física: la capacidad de modificar el esquema interno sin tener que alterar ni el esquema conceptual, ni los externos.

La independencia física es más fácil de conseguir que la lógica, pues se refiere a la separación entre las aplicaciones y las estructuras físicas de almacenamiento.



*Existen algunos tipos de transformaciones como:

· La transformación conceptual/interna se define como la correspondencia entre la vista conceptual y la base datos almacenada, y especifica cómo están representados los registros y los campos conceptuales en el nivel interno.

· La transformación externa/conceptual define la correspondencia entre una vista externa en particular y la vista conceptual.


PARADIGMAS ARQUITECTURALES EN BASE DE DATOS

Arquitecturas Disponibles:

1. Centralizada

2. Cliente-Servidor

3. Distribuidas

4. Paralelas


1. Arquitectura Centralizada

Los datos y las aplicaciones están en una única máquina.

Ventajas:

a) Se evita la redundancia de datos.

b) Se evita la inconsistencia.

c) Pueden aplicarse restricciones de seguridad.

d) El procesamiento delos datos ofrece un mejor rendimiento y resulta más confiable que en los sistemas distribuidos.

Desventajas:

a) Cuando una BD centralizada falla se pierde toda la disponibilidad y sobre todo de la información confiada al sistema.

b) En caso de un desastre o catástrofe la recuperación es difícil de sincronizar.

c) Las cargas de trabajo no se pueden difundir en diferentes computadoras.





2. Arquitectura Cliente-Servidor 

Es un modelo para el desarrollo de sistemas de información, en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. (Es el modelo de interacción más común entre aplicaciones en una red).

· Cliente: al proceso que inicia el diálogo o solicita los recursos

· servidor: al proceso que responde a las solicitudes.




Características: 

a) Mejor aprovechamiento de la potencia de cómputo (Reparte el trabajo).
b) Reduce el tráfico en la Red. (Viajan requerimientos).
c) Opera bajo sistemas abiertos.
d) Permite el uso de interfaces gráficas variadas y versátiles.
e) Le cliente no necesita conocer la lógica del servidor, solo su interfaz externa.




3. Arquitectura distribuida

Un sistema de base de datos distribuido consiste en un conjunto de bases de datos lógicamente relacionadas y distribuidas sobre una red de ordenadores. Un SGBD-D es el software que gestiona BDD y suministra mecanismos de acceso que hace la distribución transparente al usuario

Ventajas:

a) Integración NO centralización:
• Los datos se almacenan donde se gestionan
• Compartición de los datos pero con control local
• Se refleja la organización de la empresa

b) Mejora en la fiabilidad y disponibilidad.
• Más vulnerables a los fallos, pero se evita fallo total aunque baja el rendimiento

c) Rendimiento:
• Si una consulta comprende datos de varias sedes, puede ser posible dividir la consulta en varias sub consultas que se ejecuten en paralelo en distintas sedes

d) Facilidad de expansión.

Desventajas:
a) Aumento de costos
b) Mantenimiento, red, licencias, etc.
c) Falta de estándares
d) Las empresas ya tienen sus BD centralizadas

Aplicaciones:
a) Aerolíneas
b) Gestión de viajes
c) Gestión financiera (sistemas interbanca)
d) Manufactura
e) Cadenas hoteleras
f) Etc.





4. Arquitectura Paralelas

Varias unidades de almacenamiento de datos y procesadores operan en paralelo para incrementar el rendimiento.

Inconvenientes:
a) Costo de Inicio: Tiempo para iniciar un proceso.

b) Interferencia: Cuellos de botella para acceder a los recursos compartidos.

c) Sesgo: La partición de las tareas en procesos paralelos no siempre es uniforme


Ayuda audio-visual











USUARIOS DE BASE DE DATOS.

Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que éste se diseña, elabora, termina y se usa.





Ingenuo

Es el usuario más básico o aquel que interactúa con el sistema a través de las interfaces que proveen las aplicaciones (estructuradas). Ejemplo: un cajero de un banco.



Programador de Aplicaciones

Es el constructor de los programas.



Administrador de Base de Datos

Es el responsable de la definición lógica y física de los datos almacenados y de su contenido. Otra clasificación mejor explicada sería:



Programadores de aplicaciones

Los profesionales en computación que interactúan con el sistema por medio de llamadas DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.)



Usuarios sofisticados

Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos.



Usuarios especializados

Algunos usuarios sofisticados escriben aplicaciones de base de datos especializadas que no encajan en el marco tradicional de procesamiento de datos.





TIPOS Y MODELOS 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.


  MODELOS DE BASES DE DATOS


Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos.

Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.

Algunos modelos con frecuencia utilizados en las bases de datos:


Bases de datos jerárquicas

En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.

Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.

Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos.




Base de datos de red

Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es lamodificación del concepto de nodo: se permite que un mismo nodo tenga varios padres(posibilidad no permitida en el modelo jerárquico).Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solucióneficiente al problema de redundancia de datos; pero, aun así, la dificultad que significaadministrar la información en una base de datos de red ha significado que sea unmodelo utilizado en su mayoría por programadores más que por usuarios finales.



Bases de datos relacionales

Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos
dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).




En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.

El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query
Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales.




TIPOS DE BASE DE DATOS

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, la utilidad de las mismas o las necesidades que satisfagan

Según la variabilidad de los datos almacenados

Bases de datos estáticas

Son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial.






Bases de datos dinámicas 

Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de un supermercado, una farmacia, un videoclub o una empresa.






Según el contenido
Bases de datos bibliográficas 

Sólo contienen un subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque si no, estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias —ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras.



Bases de datos de texto completo 

Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.



Directorios

Un ejemplo son las guías telefónicas en formato electrónico.



Bases de datos o "bibliotecas" de información química o biológica

Son bases de datos que almacenan diferentes tipos de información proveniente de la química, las ciencias de la vida o médicas. Se pueden considerar en varios subtipos:
Las que almacenan secuencias de nucleótidos o proteínas.



Las bases de datos de rutas metabólicas. 

Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de biomoléculas.









miércoles, 2 de octubre de 2013


BASE DE DATOS EN LA NUBE

Una base de datos en la nube es una base de datos que se ejecuta en la nube. Hay dos modelos de implementación: los usuarios pueden ejecutar la bases de datos en la nube de forma independiente, utilizando una imagen de máquina virtual, o pueden comprar el acceso a un servicio de base de datos, gestionada por un proveedor de base de datos en nube. De las bases de datos disponibles en la nube, algunas son basadas en SQL y algunos utilizan un modelo de datos NoSQL.



 

Implementación del modelo:

Existen dos métodos principales para ejecutar una base de datos en la nube:
·         Imagen de máquina virtual: Las plataformas en la nube permiten a los usuarios comprar instancias de máquinas virtuales por un tiempo limitado. Es posible ejecutar una base de datos en estas máquinas virtuales. Los usuarios pueden subir su imagen propia con una base de datos instalada en ella, o utilizar imágenes prefabricadas de máquinas que ya incluyen una instalación optimizada de una base de datos. Por ejemplo Oracle provee una imagen prefabricada con una instalación de Oracle Database 11g Enterprise Edition on Amazon EC2.
·         Base de datos como servicio: Algunas plataformas en la nube ofrecen opciones para el uso de bases de datos como servicio, sin lanzar físicamente una instancia de máquina virtual para la base de datos. En esta configuración, los propietarios de aplicaciones no tienen que instalar y mantener la base de datos por su cuenta. En cambio, el proveedor de servicios de base de datos se encarga de la instalación y el mantenimiento de la base de datos, y los propietarios de aplicaciones pagan de acuerdo a su uso. Por ejemplo, Amazon Web Services provee dos servicios de base de datos como parte de su oferta en la nube, SimpleDB que almacena pares llave-valor en formato NoSql y Amazon Relational Database Service que está basado en SQL con una interfaz MySql.
Una tercera opción es administrar el alojamiento de una base de datos en la nube, donde la base de datos no se ofrece como un servicio, pero el proveedor de la nube aloja la base de datos y administra en nombre del propietario de la aplicación. Por ejemplo, el servicio en la nube de Rackspace ofrece alojamiento gestionado para bases de datos MySQL.

 Arquitectura y características en común
·         La mayoría de los servicios de bases de datos ofrecen consolas web, que el usuario final puede utilizar para aprovisionar y configurar las instancias de la base de datos. Por ejemplo, la consola web de Amazon Web Services permite a los usuarios lanzar instancias de bases de datos, crear instantáneas (similar a las copias de seguridad) de bases de datos y realizar un seguimiento de las estadísticas de la base de datos.4
·         Los servicios de las bases de datos consisten en un componente de administración que controla las instancias de cada base de datos subyacente utilizando una API de servicios. La API de servicios se expone al usuario final, y permite a los usuarios realizar operaciones de mantenimiento y ampliar sus instancias de la base de datos. Por ejemplo, el servicio de Amazon Relational Database provee una API que permite crear una instancia de una base de datos, modificar los recursos disponibles de cada instancia, eliminar una instancia, la creación de una instantánea (similar a una copia de seguridad) de una base de datos y restauración de una base de datos a partir de una instantánea.5
·         Los servicios de las bases de datos mantienen la pila del software subyacente, transparente al usuario - la pila normalmente incluye el sistema operativo, base de datos y el software de terceros utilizado por la base de datos. El proveedor de servicios es responsable de la instalación, parches y actualización de la pila de software subyacente.
·         Los servicios de las bases de datos cuidan la escalabilidad y la alta disponibilidad de la base de datos. Características de escalabilidad difieren entre los proveedores - algunos ofrecen auto-escala, mientras que otros permiten al usuario ampliar mediante una API, pero no escalar automáticamente. Normalmente hay un compromiso para un cierto nivel de alta disponibilidad (por ejemplo, 99,9% o 99,99%).
Modelo de Datos:
 También es importante diferenciar entre bases de datos en la nube que son relacionales en oposición a las no relacionales (NoSQL):
·         Bases de datos SQL, son un tipo de base de datos que se puede ejecutar en la nube (ya sea como una imagen de máquina virtual o como un servicio, dependiendo del proveedor). Las bases de datos SQL poseen baja escalabilidad, ya que no fueron nativamente diseñadas para entornos en la nube, aunque los servicios en la nube de base de datos basado en SQL están tratando de hacer frente a este desafío.
·         Bases de datos NoSQL, son otro tipo de base de datos que puede ejecutarse en la nube. Las bases de datos NoSQL están diseñados para servir cargas pesadas de lecto-escritura y son capaces de escalar hacia arriba y hacia abajo con facilidad. y por lo tanto son más adecuadas para funcionar de forma nativa en la nube. Sin embargo, la mayoría de las aplicaciones actuales se construyen en torno a un modelo de datos SQL, así que trabajar con bases de datos NoSQL con frecuencia requiere una reescritura completa del código de la aplicación.8
Proveedores:
La siguiente tabla muestra los principales proveedores base de datos en la nube, clasificada por su modelo de implementación y el modelo de datos. Véase las referencias para más información de cada proveedor.

  
Proveedores de base de datos en la nube por implementación del modelo y modelo de datos
Máquina virtual
Base de datos como servicio
Modelo de datos SQL
·         Oracle Database1 9
·         IBM DB210
·         Ingres (Base de datos)11
·         PostgreSQL12
·         MySQL13
·         NuoDB14
·         GaianDB15
·         Amazon Relational Database Service (MySQL)
·         Microsoft SQL Azure (MS SQL)16
·         Heroku PostgreSQL como servicio (compartido o dedicado)17
·         Clustrix Base de datos como servicio18
·         Xeround Cloud Database - MySQL front-end2
·         EnterpriseDB Postgres Plus Cloud Database19
·         GaianDB20
Modelo de datos NoSQL
·         CouchDB en Amazon EC221
·         Hadoop en Amazon EC222
·         Apache Cassandra en Amazon EC223
·         Neo4J en Amazon EC224 or Microsoft Azure25
·         MongoDB en Amazon EC226 o Microsoft Azure27
·         Amazon DynamoDB
·         Amazon SimpleDB
·         Cloudant Data Layer28 (CouchDB)
·         Database.com por SalesForce29
·         Google App Engine Almacenamiento de datos
·         MongoDB Base de datos como servicio30