Une base de données est un logiciel qui permet de manipuler des données.
Pour employer une image, disons qu'une base de données est assimilable à un grand placard muni de différentes étagères et différents tiroirs, pouvant eux-aussi contenir des classeurs et des dossiers, eux mêmes séparés par des intercalaires.
Il est possible de nommer ces tiroirs, classeurs et intercalaires et d'y ajouter ou supprimer des informations.
La grande différence par rapport au monde "physique" est qu'une base de données permet de traiter les informations, de les manipuler, de les classer et d'en sortir des statistiques, des calculs ou encore de déménager tout un paquet de dossiers d'un placard à un autre construit instantanément.
Imaginez que vous désiriez sortir tous les dossiers des personnes née en Mars entre l'année 1930 et 1960, cela exigerait de la part d'un employé des journées de travail.
A l'aide d'un logiciel de base de données, il est possible, en choisissant les bons critères d'effectuer l'opération en quelques minutes.
De plus, une base de données (selon les éditeurs) permet d'effectuer des opérations lorsqu'un événement survient.
Par exemple, avertir l'administrateur de la base en sortant régulièrement et sans manipulation la liste des clients qui n'ont pas passé de commande depuis plus de 6 mois, de sortir un état imprimable d'étiquettes pour des enveloppes ainsi qu'une lettre type, remplie avec toutes les coordonnées des destinataires.
Magique n'est ce pas ?
Suivant les logiciels, certaines fonctionnalités sont ou ne sont pas disponibles ce qui explique notamment les différences dans les coûts de licences entre des bases de données de type bureautique et les serveurs de bases de données d'entreprise.
Actuellement, la majorité des bases de données utilisent le modèle relationnel.
En clair cela signifie que plutôt que de copier les mêmes données à plusieurs endroits dans la base, on les stocke dans une table (un tiroir) et on fait appel à ce tiroir quand on en a besoin.
Ce processus de segmentation des données s'appelle la normalisation à savoir ne pas répéter l'information dans la base.
Le premier atout étant de pouvoir modifier à un endroit seulement les données, toutes les requêtes se rapportant à cette information étant automatiquement à jour.
Le fait de pouvoir stocker les données est un atout énorme et notamment sur le Web.
Vous avez grâce à ces systèmes la possibilité de séparer le contenu du contenant : le design du site de l'information qui sera actualisable grâce à la mise en place de programmes permettant la mise à jour de la base de données (voir nos guides langages).
Les bases de données utilisent maintenant une norme, un langage pour manipuler les données.
Celui-ci se nomme SQL et permet l'interrogation de la base à travers des intitulés compréhensibles.
Ainsi, pour sélection tous les clients qui ont 20 ans : SELECT * FROM clients WHERE age = 20.
Ce langage permet le tri des données, la modification, l'insertion ou encore le calcul de moyennes, de sommes, d'écart type., ...
Il en existe plusieurs versions (SQL89 et SQL92 ou SQL) dont l'implémentation est très variable suivant les bases de données.
Les éditeurs rajoutent d'ailleurs souvent des fonctions propriétaires qui facilitent la vie mais rendent néanmoins le code moins portable d'un logiciel à l'autre.
D'autre part, au delà de la reconnaissance de SQL, les logiciels se différencient par leurs performances et notamment le nombre d'utilisateurs concurrents (le nombre d'utilisateurs qui peuvent se connecter en même temps sur le système) et donc leur résistance aux "fortes charges".
Enfin, il est aussi intéressant de pouvoir utiliser les triggers ou "déclencheurs" c'est à dire demander à la base de données d'effectuer une opération lorsqu'un événement survient.
Par exemple, lorsque la somme des commandes d'un client sur 6 mois dépasse ''x'' Euros, lui envoyer un e-mail lui indiquant qu'il dispose de 10% de remise sur ses prochains achats.
Ceci permet autant des opérations ciblées marketing que des opérations de maintenance sur la base de données elle-même comme la suppression automatique de compte clients trop vieux.
D'autres opérations comme les procédures stockées donnent la possibilité de créer des requêtes et de les pré-compiler dans le serveur de base de données.
Résultat : les requêtes sont optimisées donc de meilleures performances, on ne fait appel à la requête que par son nom et en passant des paramètres donc moins de transfert de données sur le réseau, un code plus lisible sur la page (la requête de 15 lignes que vous avez créée est uniquement appelée) et enfin une meilleure sécurité.
En terme de sécurité justement, les possibilités varient fortement d'une base à l'autre.
Ainsi, rien à voir entre Oracle ou SQL Server et Access par exemple.
Les serveurs de bases de données permettent une meilleure gestion des sauvegardes.
Ainsi, toutes les opérations sont inscrites dans un fichier journal, lui même en général contenu sur un disque séparé.
En conséquence, en cas de crash serveur, il est possible de revenir à l'état initial.
De plus, ces bases gèrent les transactions atomiques (une requete est effectuée ou non, pas d'état indéfini) et le RollBack, à savoir, l'annulation d'une opération reste possible sous certaines conditions.
Bref, le prix des bases est bien souvent justifié par certaines fonctionnalités très spécifiques.
Il convient donc de choisir en fonction de ses besoins.
Les nombreux problèmes qui surviennent généralement et surtout en terme de performance tiennent surtout à la mauvaise modélisation de la base.
S'improviser administrateur de bases de données n'est pas une très bonne idée sur des projets complexes car revenir en arrière sur un mauvais découpage d'une base est un calvaire (les administrateurs de métiers savent de quoi nous parlons !).
Bien souvent les utilisateurs installent le logiciels et suivent quelques assistants.
Dans le cas d'une base avec quelques tables très bien, dans le cas de quelques tables et de quelques Mo de données de plus chaque mois cela devient plus difficile voire suicidaire ...
Pensez donc bien à l'avance au futur de votre système et utilisez nos autres guides pour découvrir la base de données qui répondra le plus à vos besoins et votre budget pour votre prochain site.
AKL-Communication.com est spécialisée dans l'audit et l'analyse de situations complexes.