La humanidad ha necesitado y necesita almacenes para todo. La ropa, en armarios; la comida, en despensas; el petróleo, en depósitos. Los datos… en bases de datos.
Las bases de datos son recientes, la informática no es tan vieja. Allá por la década de los 70, en el siglo XX, comenzó la formalización de una tecnología que hoy en día continúa en pleno auge.
Para entendernos, una lista de la compra no es una base de datos. No hace falta matar moscas a cañonazos. Una tienda electrónica como es Amazon no podría existir sin bases de datos. Los cajeros electrónicos no existirían sin bases de datos. Hacienda sería un chiste sin bases de datos.
Si queremos “informatizar” nuestra lista de la compra nos basta con un procesador de textos, nos quedará más limpia y más bonita, eso sí, no todos tenemos la misma letra. Si queremos hacer cálculos, incluso mantener una cierta cantidad de datos, para eso están las hojas de cálculo. Si los datos que manejamos son muchos, con relaciones complejas entre ellos, necesitamos bases de datos.
Una base de datos es una colección estructurada de datos. Pensemos en los clientes de una tienda tipo Amazon. Son muchos, aunque de ellos no nos interesa poco más que su nombre, dirección, país y número de tarjeta de crédito.
Esos clientes compran artículos, productos. Pero no todos los artículos son iguales, unos son libros y otros son electrónica. Cada uno tiene un precio, pero ese precio cambia con el tiempo, yo compré hoy a un precio y, mañana… ese precio ha bajado; o subido. Y hay varios precios según quién lo ofrezca. Y empresas de transporte. Y opiniones y valoraciones, imágenes del producto, promociones… Un lío.
Mi base de datos es un almacén que guarda aquello que consideramos esencial de cada concepto, de cada objeto. Amazon no necesita saber nuestro color de pelo —de momento— pero sí nuestro email. Una base de datos esquematiza y estructura, modela la información a manejar. Una base de datos es un modelo a escala de una parte esencial de cualquier negocio u organización, el sistema de información.
Se necesitan años de experiencia para saber modelar bien. Pero no vayamos tan lejos. De una base de datos esperamos:
que describa cómo son nuestros datos
que no nos distraiga sobre cómo meter esos datos en discos duros
que permita acceder a varios usuario a la vez
que pueda recuperarse de fallos incluso catastróficos
Para manejar bases de datos existen programas diseñados para ello. Son los sistemas de gestión de bases de datos (SGBD, Database Management Systems, DBMS). A veces los llamamos simplemente base de datos, confundiendo contenido y contenedor. A partir de ahora tengamos claro que SGBD es el programa informático y BD los datos que guardamos en el programa informático.
Un SGBD es una central de datos, un servidor de datos. A ella acuden todos los “clientes”, los usuarios que necesitan información. La mayoría de las veces son programas, algunos de ellos “aplicaciones Web”, que hacen de interfaz entre nosotros, pobres humanos, y las máquinas.
Vale, somos un cliente y preguntamos por coches teledirigidos baratos. ¿Qué lenguaje usamos para ello?
Mencionamos la década de los 70 del siglo pasado. Fue entonces cuando el término “base de datos” empezó a tener consistencia, el origen de lo que conocemos hoy.
Por aquel entonces se dio nombre a una forma concreta de representar esquemas de datos y de, posteriormente, almacenar datos en ellos: el modelo relacional, la base de datos relacional. Hoy en día es, de largo, la que más se utiliza.
La pieza clave del modelo relacional es la relación o tabla. Porque ese aspecto tiene, con filas y columnas. Lo que hace el modelo es forzarnos a representar, a esquematizar, en forma de tablas.
Al mismo tiempo se diseñó un lenguaje especial para trabajar con ese modelo relacional de datos: SQL, que viene de Structured Query Language, lenguaje de consulta estructurado. Ha adquirido el estatus de estándar, todos utilizamos ese lenguaje y de la misma forma. O casi, el mundo no es perfecto.
Cuando apareció, el aporte principal de SQL fue una forma novedosa de “preguntar”. Si antes hacía falta un programador informático experto que generara cientos y miles de líneas de código, con SQL bastaba con preguntar ¿quiénes son los clientes de la provincia de Alicante?
Bueno, no tan fácil, de eso va este curso. Pero lo cierto es que sin tener conocimientos profundos de informática seremos capaces de interrogar a una base de datos relacional con frases, digamos, un poco forzadas, usando una sintaxis rígida, algo así como “dame nombre, apellidos y DNI desde tabla llamada clientes y cuando provincia sea Alicante”.
Empecemos...