Una base de dades és un conjunt d’informació, relacionada, estructurada i emmagatzemada de manera sistemàtica. L’objectiu és poder accedir a aquesta informació de manera fàcil, tant per a consultar-la com per a afegir-hi noves dades. Dels programes que s’encarreguen de gestionar bases de dades se’n diu sistemes de gestió de bases de dades (SGBD) i són una peça important en l’entramat de la web.
Fa uns anys (el març del 2004), vam escriure un article per a la revista Mosaic titulat Páginas web estáticas vs páginas web dinámicas. Las bases de datos en Internet en què fèiem una explicació breu sobre què és una pàgina web dinàmica i les diferències amb les pàgines web estàtiques. Us recomanem que llegiu aquest article abans de continuar amb aquest, perquè el farem servir com a referència.
Si el 2004 les bases de dades ja eren importants, avui dia gairebé totes les webs tenen al darrere un gestor de continguts, que, al seu torn, fa servir un SGBD per a emmagatzemar la informació de la web. Sigui com sigui, si es vol crear una web que sigui fàcil d’actualitzar, l’opció més senzilla és personalitzar un gestor de continguts i la més complicada crear-lo i, en tots dos casos, és important tenir coneixements de la manera de funcionar de les bases de dades i d’accedir a la informació en el llenguatge que l’SGBD faci servir.
Encara que la situació dels diferents SGBD usats a la web ha canviat una mica des del 2004, els canvis no són, ara mateix, gaire importants. Així, SQL continua essent el llenguatge de consulta d’SGBD més habitual i, a la web, MySQL, PostgreSQL i SQLite[4] són les solucions obertes més usades i Microsoft SQL Server i Oracle Database, les solucions privades més comunes.
A partir d’aquí, ens centrarem en un d’aquests gestors de bases de dades (MySQL) per explicar de quina manera accedeixen a les dades les aplicacions web. L’elecció de MySQL no és casual. Segons un estudi de Gartner fet el 2008, MySQL era llavors el tercer SGBD més usat al món, el primer de codi obert. Des de llavors i malgrat que la compra de MySQL per part d’Oracle va fer que hi hagués alguns desenvolupadors que pensessin a passar-se a PostgreSQL, la seva presència a la web no ha deixat de créixer.
D’altra banda, hi ha moltes aplicacions web que fan servir una combinació de MySQL com a base de dades, PHP com a llenguatge de programació, Apache com a servidor web i Linux com a sistema operatiu. Aquesta combinació de tecnologies rep el nom de LAMP (Linux, Apache, MySQL i, habitualment, PHP) i és una de les més usades en servidors web.
En una aplicació web com ara un gestor de continguts o una botiga en línia o qualsevol altra web que faci ús de bases de dades, hi podem trobar fins a quatre tipus de desenvolupament:
- Desenvolupament d’HTML + CSS
- Desenvolupament JavaScript
- Desenvolupament en PHP
- Consultes SQL
D’aquests quatre tipus, els dos primers s’executen en el navegador, i els altres dos en el servidor aproximadament de la manera següent:
- En el servidor, un arxiu .php conté el programa PHP amb les instruccions SQL per a accedir a les dades, amb el codi HTML i CSS necessari per a poder-les visualitzar correctament i amb el JavaScript necessari per a interactuar amb l’usuari.
- El servidor executa les instruccions PHP i les consultes SQL, obté les dades i envia al client un arxiu amb l’HTML, el CSS, el JavaScript i les dades obtingudes.
- El navegador presenta les dades a l’usuari i executa les instruccions JavaScript.
- El navegador envia al servidor les dades que proporciona l’usuari.
- El servidor rep aquesta informació i la desa a la base de dades.
A la pràctica PHP, SQL i HTML solen anar en un arxiu, mentre que CSS i JavaScript van en arxius a part, de manera que el navegador rep un arxiu HTML amb les dades, un arxiu CSS amb el disseny i un arxiu JavaScript amb el programa que s’ha d’executar.
En general, les diferents tecnologies que podem trobar en una aplicació web requereixen diferents persones amb diferents competències. Tornant a la base de dades, el seu disseny no és una tasca trivial. Depenent de si està més ben fet o més mal fet, el nombre de transaccions (consultes o modificacions) que s’han de fer pot variar considerablement. En aplicacions senzilles o per a llocs que no tenen gaire moviment la importància pot ser relativa, però en aplicacions complexes i, sobretot, en llocs amb moltes visites el fet de reduir el nombre de consultes a la base de dades també pot reduir considerablement el cost en maquinari del lloc. I és que, en llocs web amb moltes visites, la importància de la base de dades és tan grossa que se sol situar en un servidor a part del servidor de l’aplicació.