Tip:
Highlight text to annotate it
X
Hola, bienvenidos al video "Modelo relacional, contexto". Mi nombre es Armando Suárez y
soy profesor de Informática en la Universidad de Alicante. Este es un video perteneciente
al curso Introducción al Desarrollo Web.
Veremos el contexto histórico y la evolución de la tecnología hasta la llegada del modelo
relacional de la mano de Edgar Codd. Este modelo de datos es la base de las llamadas
bases de datos relacionales vigentes desde aproximadamente 1970.
Empezamos. Mucho, mucho tiempo atrás, el hombre comenzó a tener tiempo para pensar.
Se dio cuenta de que podía "CONTAR" con los dedos de la mano. Nació la "base 10".
Y ya que cuentas, ¿por qué no sumar y restar?
Ya no hace tanto, se inventó la primera calculadora, el ábaco.
Pero tuvieron que pasar muchos siglos hasta que Pascal pudo construir la primera sumadora
semiautomática.
Bastante tiempo después, a alguien se le ocurrió usar la lógica de Boole e inventar
la tarjeta perforada, y utilizarla para acelerar la publicación del censo de los Estados Unidos.
Más o menos por la misma época, un paisano nuestro se hizo famoso por considerársele
el responsable primero de la calculadora electrónica que llegó años después.
Ya entrado el siglo XX aparecieron las supercalculadoras como la ENIAC.
Y poco después los superordenadores ("super" para la época, claro).
Por fin, en 1981 la informática se hizo doméstica; si tenías la pasta, eso sí.
Pero la paz no dura, y un tal Steve Jobs hizo su aparición estelar. Ya se notaba que los
precios no le preocupaban mucho.
Todos estos ordenadores necesitan almacenar la información para que no se pierda. En
un disco duro, por ejemplo.
Pero no siempre han sido tan pequeños ni tan capaces.
Incluso, antes de esto, lo único que se podía usar era la cinta perforada, la cinta magnética
y hasta hace poco, los discos "floppy".
El problema es que las necesidades de almacenaje crecían y crecían y la tecnología disponible
no daba abasto.
Por si fuera poco, están naciendo los sistemas operativos y los lenguajes de programación,
entes incomprensibles y harto difíciles de manejar.
Cuando la informática casi no la entendía ni los informáticos, vino un personaje cuya
influencia en la gestión de datos ha sido enorme. Edgar Codd, con la publicación de
un artículo infinitamente citado, es el padre del modelo relacional. Y no hace tanto de
esto, la fregona, sin ir más lejos, no es tan antigua como parece.
La contribución de Codd fue simplificar la representación de los datos, facilitar un
lenguaje para manejarlos, SQL, más "humano", y centralizarlo todo en una única máquina
accesible por muchos usuarios.
Veamos qué pasaba antes del modelo relacional. La información a tratar por un programa cualquiera
se repartía por el disco duro en campos y registros dentro de ficheros.
Para representar que unos registros se relacionan con otros se utilizan campos especiales llamados
punteros. Estos mantienen valores que son, en realidad, direcciones físicas dentro del
fichero, la posición donde se encuentra el dato.
Lo malo de estas estructuras es que, a poco que crezcan y se compliquen, se hace harto
difícil manejarlas y hasta entenderlas.
Sin ir más lejos, pensemos en insertar un registro en medio de un fichero. Hay que hacerle
sitio y, posiblemente, recalcular los punteros para mantener la calidad de la información.
Y ahora vas y lo programas en Cobol.
Algo más concreto. Sea departamentos, profesores y asignaturas.
Para representar que los unos imparten las otras y que pertenecen a departamentos necesitamos
un fichero más y los consabidos punteros.
Alguien tiene que producir un programa de ordenador que recorra los caminos marcados
por esos punteros para llegar de un registro a otro y saber quién imparte qué en el departamento
de Lenguajes. Así...
Bueno, igual ha sido muy rápido. Otra vez.
Nada. Que no. Que es un lío hasta para un programador experto.
Y así era, la cantidad de datos crecía y crecía y los programas se hacían más complicados
por ello. Las empresas cada vez gastaban más dinero en mantener sus aplicaciones. El lío
se iba haciendo más y más grande.
Pues llega Codd con su modelo relacional y dice que nada de punteros, que ya que casi
todo lo manejamos con listas en esta vida, ¿por qué no representar la información
como un conjunto de tablas?
Y cuando quieras saber que imparte Luis MA, que es del departamento de Lenguajes, pues
te vas a la tabla docencia y buscas su clave, "lma".
Y no lo haces tú sino que el gestor del sistema recibirá una orden tuya, incluso comprensible
para ti, con lo que quieres, de qué tablas obtenerlo y cómo están relacionadas esas
tablas. El sistema se pelea con registros, campos y ficheros y tú, ni enterarte, solo
del resultado final que es lo que querías.
En resumen.
Es la década de los 70 y la tecnología aún está aún muy limitada, el almacenamiento
secundario es caro y de poca capacidad mientras que las necesidades de tratamiento de datos
son exponencialmente crecientes.
Además, los lenguajes de programación no son los más adecuado y se basa en ficheros,
con organizaciones y métodos de acceso poco desarrollados. El resultado solía ser una
miríada de ficheritos donde la información está distribuida, atomizada y mal relacionada.
Se producen redundancias, falta de seguridad y datos incorrectos o confusos. Al final,
los programas son difíciles de mantener o ampliar, ya que no existe una metodología
de generación de software fiable, rápida y rentable. Tampoco hay modelos de datos claros,
eficientes y... simples.
Es entonces cuando Codd propone el modelo relacional. Codd separa la representación
física de los datos de la representación lógica. Es más, oculta esa representación
física, el usuario solo ve y trabaja con tablas, no hay punteros sino valores que hacen
de referencia a otros datos. Por otra parte, la definición de los datos se centraliza
y se comparte, y se proporciona un lenguaje de definición y manipulación de datos no
procedimental, SQL, con el que se dice lo que se quiere, y del "cómo" ya se encarga
el sistema.
Los sistemas de gestión de bases de datos relacionales siguen siendo la referencia en
cuanto a la administración de la información electrónica.
Hoy en día hay otros sistemas no relacionales pero tienen aplicaciones concretas o no han
desbancado al modelo relacional de datos.
Ejemplos de ellos son las bases de datos XML, documentales, geográficas, deductivas, o
las NOSQL.
Y ya para terminar, nombremos algunos Sistemas de Gestión de Bases de Datos, relacionales
por supuesto, o RDBMS en sus siglas en inglés.
A pesar de que ciertos nombres puedan dar susto, todos tienen sus versiones gratis o
licencias especiales para uso personal. En realidad, el negocio de las bases de datos
está en otra parte.
El sistema de "Oracle", como lo pronunciamos los amigos, es el más utilizado en el mundo,
y curiosamente MySQL es otro gestor, conocidísimo, que pertenece a la misma empresa desde hace
poco. Microsoft tiene su SQL Server y... Access.
Y, la verdad, es que hay muchos, muchos más sistemas de gestión de bases de datos.
Hasta aquí este video sobre el Modelo Relacional y su contexto histórico. Espero que te haya
sido de utilidad. Este video forma parte del curso Introducción al Desarrollo Web, y si
quieres contactar conmigo lo puedes hacer en armando@dlsi.ua.es. Muchas gracias.