Sei sulla pagina 1di 9

Historia de las Bases de Datos

Publicado el 4 enero, 2011 Publicado en Historia

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 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.

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.

Origenes

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 arboles.

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 llevo 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 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, 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 clausula 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.

https://histinf.blogs.upv.es/2011/01/04/historia-de-las-bases-de-datos/

Conceptos sobre la escalabilidad


RECU-0220 (RECURSO REFERENCIA)
Tabla de contenidos
1. Descripción
1.1. Escalabilidad Vertical
1.2. Escalabilidad Horizontal
1.2.1. Balance de carga
1.2.1.1. Balance de Carga por Hardware
1.2.1.2. Balance de carga por Sotfware
1.3. Cluster sobre servidores
1.3.1. Tipos de Cluster
2. Enlaces externos
3. Contenidos relacionados
Área: Arquitectura Tecnológica
Carácter del recurso: Recomendado
Descripción
Se entiende por escalabilidad a la capacidad de adaptación y respuesta de un sistema con respecto al
rendimiento del mismo a medida que aumentan de forma significativa el número de usuarios del
mismo. Aunque parezca un concepto claro, la escalabilidad de un sistema es un aspecto complejo e
importante del diseño.

La escalabilidad esta íntimamente ligada al diseño del sistema. Influye en el rendimiento de forma
significativa. Si una aplicación esta bien diseñada, la escalabilidad no constituye un problema.
Analizando la escalabilidad, se deduce de la implementación y del diseño general del sistema. No es
atributo del sistema configurable.
La escalabilidad supone un factor crítico en el crecimiento de un sistema. Si un sistema tiene como
objetivo crecer en el numero de usuarios manteniendo su rendimiento actual, tiene que evaluar dos
posibles opciones:

Con un hardware de mayor potencia o


Con una mejor combinación de hardware y software.
Se pueden distinguir dos tipos de escalabilidad, vertical y horizontal:

El escalar verticalmente o escalar hacia arriba, significa el añadir más recursos a un solo nodo en
particular dentro de un sistema, tal como el añadir memoria o un disco duro más rápido a una
computadora.
La escalabilidad horizontal, significa agregar más nodos a un sistema, tal como añadir una
computadora nueva a un programa de aplicación para espejo.
Escalabilidad Vertical
El escalar hacia arriba un sistema viene a significar una migración de todo el sistema a un nuevo
hardware que es mas potente y eficaz que el actual. Una vez se ha configurado el sistema futuro, se
realizan una serie de validaciones y copias de seguridad y se pone en funcionamiento. Las
aplicaciones que estén funcionando bajo la arquitectura hardware antigua no sufren con la
migración, el impacto en el código es mínimo.

Este modelo de escalabilidad tiene un aspecto negativo. Al aumentar la potencia en base a


ampliaciones de hardware, llegara un momento que existirá algún tipo de limitación hardware.
Además a medida que se invierte en hardware de muy altas prestaciones, los costos se disparan
tanto de forma temporal (ya que si se ha llegado al umbral máximo , hay componentes hardware
que tardan mucho tiempo en ampliar su potencia de forma significativa) como económicos. Sin
embargo a nivel estructural no supone ninguna modificación reseñable, lo que la convierte en una
buena opción si los costos anteriores son asumibles.

Escalabilidad Horizontal
La escalabilidad horizontal consiste en potenciar el rendimiento del sistema desde un aspecto de
mejora global, a diferencia de aumentar la potencia de una única parte del mismo. Este tipo de
escalabilidad se basa en la modularidad de su funcionalidad. Por ello suele estar conformado por
una agrupación de equipos que dan soporte a la funcionalidad completa. Normalmente, en una
escalabilidad horizontal se añaden equipos para dar mas potencia a la red de trabajo.

Con un entorno de este tipo, es lógico pensar que la potencia de procesamiento es directamente
proporcional al número de equipos de la red. El total de la potencia de procesamiento es la suma de
la velocidad física de cada equipo transferida por la partición de aplicaciones y datos extendida a
través de los nodos.

Si se aplica un modelo de escalabilidad basado en la horizontalidad, no existen limitaciones de


crecimiento a priori. Como principal e importante defecto, este modelo de escalabilidad supone una
gran modificación en el diseño, lo que conlleva a una gran trabajo de diseño y reimplantación. Si la
lógica se ha concebido para un único servidor, es probable que se tenga que estructurar el modelo
arquitectónico para soportar este modelo de escalabilidad.

El encargado de como realizar el modelo de partición de datos en los diferentes equipos es el


desarrollador. Existen dependencias en el acceso a la aplicación. Es conveniente, realizar una
análisis de actividad de los usuarios para ir ajustando el funcionamiento del sistema. Con este
modelo de la escalabilidad, se dispone de un sistema al que se pueden agregar recursos de manera
casi infinita y adaptable al crecimiento de cargas de trabajo y nuevos usuarios.
La escalabilidad cuenta como factor crítico el crecimiento de usuarios. Es mucho más sencillo
diseñar un sistema con un número constante de usuarios (por muy alto que sea este) que diseñar un
sistema con un número creciente y variable de usuarios. El crecimiento relativo de los números es
mucho más importante que los números absolutos.

Balance de carga
A la hora de diseñar un sistema con compartición de recursos, es necesario considerar como
balancear la carga de trabajo. Se entiende este concepto, como la técnica usada para dividir el
trabajo a compartir entre varios procesos, ordenadores, u otros recursos. Esta muy relacionada con
lo sistemas multiprocesales, que trabajan o pueden trabajar con mas de una unidad para llevar a
cabo su funcionalidad . Para evitar los cuellos de botella, el balance de la carga de trabajo se reparte
de forma equitativa a través de un algoritmo que estudia las peticiones del sistema y las redirecciona
a la mejor opción

Balance de Carga por Hardware


Presenta las siguientes características:

A partir de un algoritmo (Round Robin, LRU), examina las peticiones HTTP entrantes y selecciona
el más apropiado entre los distintos clones del sistema.
La selección del clon del sistema esta basada en el algoritmo de sustitución y es aleatoria.
Esto último punto provoca problemas en el diseño, ya que no garantiza que si un usuario realiza
varias peticiones sean atendidas por el mismo clon del sistema. Por lo tanto, no hay mantenimiento
de la sesión del usuario en servidor y condiciona el diseño.
La sesión debe de ser mantenida por el desarrollador.
Al ser un proceso hardware, es muy rápido.
Balance de carga por Sotfware
Examinan el paquete a nivel del protocolo HTTP para garantizar el mantenimiento de la sesión de
usuario.
Distintas peticiones del mismo usuario son servidas por el mismo clon del servidor.
Más lentos que los balanceadores Hardware
Normalmente son soluciones baratas.
Cluster sobre servidores
El concepto de clustering introduce la capacidad de unir varios servidores para que trabajen en un
entorno en paralelo. Es decir, trabajar como si fuera un solo servidor el existente. En las etapas
primigenias del clustering, los diseños presentaban graves problemas que se han ido subsanando
con la evolución de este campo. Actualmente se pueden crear clusters en función de las necesidades

Unión de Hardware
Clusters de Software
Alto rendimiento de bases de datos
En resumen, cluster es un grupo de múltiples ordenadores unidos mediante una red de alta
velocidad, de tal forma que el conjunto es visto como un único equipo, más potente . Con ello se
pretende mejorar los siguientes parámetros de la arquitectura:

Alto rendimiento
Alta disponibilidad
Equilibrio de carga
Escalabilidad
El clustering no presenta dependencias a nivel de hardware (no todos los equipos necesitan el
mismo hardware ) ni a nivel de software (no necesitan el mismo sistema operativo). Este tipo de
sistemas dispones de una interfaz que permite dirigir el comportamiento de los clusters. Dicha
interfaz es la encargada de la interactuación con usuarios y procesos, realizando la división de la
carga entre los diversos servidores que compongan el cluster.

Tipos de Cluster
Alta Disponibilidad (HA) y Failover. Enfocados a garantizar un servicio ininterrumpido, al duplicar
toda la infraestructura e introducir sistemas de detección y re-enrutamiento (Servicios Heart-Beat),
en caso de fallo. El propósito de este tipo de clusters es garantizar que si un nodo falla, los servicios
y aplicaciones que estaban corriendo en ese nodo, sean trasladados de forma automática a un nodo
que se encuentra en stand-by. Este tipo de cluster dispone de herramientas con capacidad para
monitorizar los servidores o servicios caídos y automáticamente migrarlos a un nodo secundario
para garantizar la disponibilidad del servicio. Los datos son replicados de forma periódica, o a ser
posible en tiempo real, a los nodos en Stand-by.
Cluster Balanceado. Este tipo de cluster es capaz de repartir el tráfico entrante entre múltiples
servidores corriendo las mismas aplicaciones. Todos los nodos del cluster pueden aceptar y
responder peticiones. Si un nodo falla, el tráfico se sigue repartiendo entre los nodos restantes.
Enlaces externos
Pagina de IBM sobre la escalabilidad
Pagina de Oracle sobre la escalabilidad y rendimiento

http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/220

Historia de la nube: qué es y cómo empezó todo


17 abril, 2019

autor

Holded
Historia de la nube: qué es y cómo empezó todo
En este texto nos proponemos explicar los orígenes de un concepto tan revolucionario como «la
nube«, un término que ha dejado de ser de uso técnico para saltar al dominio público. En la
explicación nos serviremos de las cinco preguntas básicas que toda buena historia ha de responder,
las famosas 5 W (what, how, when, where & why).

Índice de Contenidos
Qué es la nube
Empecemos por explicar qué es la nube y qué no. Obviamente no es lo que te estropea las
vacaciones de Semana Santa ni tampoco el vehículo en el que se desplazaba Goku al encuentro de
sus enemigos en Dragon Ball. Quizás si Goku fuera un puñado de dato la imagen serviría como
metáfora. La nube, en términos informáticos, tiene que ver con la red de servidores alojada en
Internet.

La nube hace referencia a los softwares y servicios de almacenaje y transferencia de datos que se
ejecutan en Internet, en lugar de hacerlo localmente en tu ordenador. Sirve para operar con estos
datos en la red sin necesidad de acumular discos duros en casa. A estos servicios se puede acceder a
través de la mayoría de navegadores y entre los más populares están: Google Drive, Apple iCloud,
Netflix, Dropbox y Microsoft OneDrive.

Una de las grandes ventajas de la nube es que el usuario puede acceder a esta información, la que él
mismo ha generado o recibido, desde cualquier dispositivo con conexión a Internet. Puede escribir
un documento en Google Docs desde el portátil de casa, editarlo en el tren a través del teléfono
móvil y terminarlos en el hotel mediante el ordenador de la estancia. Y lo más importante, en la
escritura de ese documento puede participar tanta gente como se quiera.

Lo mismo sirve para las fotos, la música, etc. Libre manipulación y navegación a través de los datos
mediante cualquier lugar del mundo con conexión a Internet.

Cómo se creó la nubé


Para entender el funcionamiento de la nube, −su arquitectura− merece la pena pensar en este
sistema como dos partes separadas, el front end y el back end. Ambas partes necesitan trabajar en
sinergia dentro de Internet.

See also:
En el front end se sitúa el ordenador o la red de ordenadores del usuario y el programa que usa para
acceder a la nube. Cuando se trata de los correos electrónicos es fácil acceder, porque basta con un
navegador de Internet, tipo Google Chrome, Internet Explorer o Mozilla. En otros casos, sin
embargo, sí que es necesario contar con una aplicación especializada para poder acceder.

LEER MÁS: Por qué es más seguro Holded que Windows para almacenar tus datos

En el back end, en cambio, tenemos los ordenadores, servidores y sistemas de almacenamiento de


datos que conforman la nube; cada aplicación suele contar con su propio servidor. Un servidor se
encarga de controlar y administrar el tráfico para que la demanda de los clientes quede satisfecha.
Por último, para asegurar que los datos siempre estarán accesibles, los sistemas de computación en
nube tienen al menos el doble de los dispositivos necesarios para almacenarlos y realizan copias de
seguridad en diferentes lugares.

Cuándo se creó la nube


Para localizar los inicios de la nube hemos de remontarnos a la prehistoria de Internet. Pese a que
este concepto nación en 1990, algunos pioneros de la computación anticiparon el destino de las
redes computacionales en la década de los 60. J.C.R. Liclkider, que participó en el desarrollo de
ARPANET, −red de computadoras creada por encargo del Departamento de Defensa de los Estados
Unidos−, y John McCarthy, padre del término Inteligencia Artificial, fueron dos de los principales
previsores de lo que se convertiría en la nube.

Licklider trazó las primeras ideas de una red computacional global allá por 1962, en discusiones
sobre el concepto de ‘Red Computacional Intergaláctica’. Estas ideas contenían gran parte del
sustrato de lo que hoy conocemos como Internet. El estadounidense describió en diversos
documentos algunas aplicaciones en la red, y predijo el uso de las redes para soportar comunidades
de intereses comunes sin importar la ubicación de sus usuarios. Por su parte, MacCarthy opinaba lo
siguiente: “La computación algún día estará organizada como un servicio público, así como la luz o
el agua”.

Ese es el germen, pero la aplicación de la nube tal y como la conocemos hoy comenzó en los años
80, cuando algunas tareas empezaron a tomar cuerpo en una red de computadoras en lugar de
hacerlo en un único computador. De esta manera, la tarea se reparte entre varias máquinas,
exigiendo menos del sistema para entregar el servicio a los usuarios.

LEER MÁS: Tecnología cloud: ventajas de los servicios con tecnología cloud para pymes

De este modo, el término empezó a usarse para aludir primero a las redes telefónicas, como una
manera de referirse a algo de lo que el usuario no necesita preocuparse, para después trasladarse a la
infraestructura computacional. Aquí, la palabra “nube” fue empleada por primera vez dentro del
entorno académico en 1997 por el profesor Ramnath Chellappa, quien lo definió como “un nuevo
paradigma de computación”. Después, en 1999, la compañía Salesforce.com fue la primera en
introducir el término “software como servicio”, entregando aplicaciones para empresas a través de
un sitio web.

Dónde empezó la nube


El símbolo de la nube se utilizó por primera vez en Estados Unidos, concretamente en el sistema
ARPANET. Como hemos anticipado antes, este sistema es el precedente más claro de Internet, y
consistía en una red de ordenadores creada por encargo del Departamento de Defensa de los Estados
Unidos entre las diferentes instituciones académicas y estatales.

Por qué se creó la nube


Por puro progreso. El Cloud Computing es conectividad, flexibilidad, ligereza. Es un concepto
revolucionario que permite que el mundo avance, que lo haga dejando a un lado el ruido y el humo
de las máquinas. La nube hoy lo es todo. Y aunque no lo sepas: tú también estás en la nube.

https://www.holded.com/es/blog/historia-de-la-nube/

Potrebbero piacerti anche