1.Introduction aux base de données

1.1.Présentation

1.1.1.A quoi ça sert?

Une base de données sert essentiellement à stocker des informations (comme des noms, prénoms, adresses, numéros de téléphone ou autre) pour ensuite être capable de les traiter, les filtrer, les trier, etc. afin d'en extraire des statistiques, de récupérer les données d'un individu à partir de son nom, etc.

1.1.2.Comment ça marche?

Une base de données peut-être assimilée à un ensemble de fichiers (dans lesquels sont stockées les informations). Ces fichiers sont gérés par un logiciel serveur aussi appelé démon ou service (qui doit donc tourner pour pouvoir accéder à la base). L'utilisateur quant à lui, devra utiliser un programme client (qui s'adressera au serveur) pour pouvoir manipuler les données.
Schéma d'une base de données
C'est donc cet ensemble fonctionnel que fournissent les logiciels suivant MySQL[c'est quoi?], PostgreSQL[c'est quoi?], Oracle, ...
D'autres proposent un sous-ensemble comme SQLite[c'est quoi?] ou Access, pour lesquels la notion de serveur n'existe pas.

1.1.3.Comment manipuler les données de la base de données?

Pour accéder aux données, l'utilisateur devra soumettre une requête au programme client[comment?] en utilisant le langage SQL[c'est quoi?] (que nous présentons plus loin).

1.1.4.Comment sont rangées les données?

La base de données travaille avec des tables (que l'on peut assimiler à des fichiers). Chaque table est composée de champs (la table étant assimilable à un tableau, un champ est une colonne de ce tableau). Chaque table contient de 0 à plusieurs enregistrements (les informations) pour lesquels les champs de la table prennent telle ou telle valeur (les enregistrements sont donc les lignes du tableau).
Schéma d'une structure d'une table:
Champ 1 Champ 2 ... Champ N
Enregistrement 1 Valeur 1,1 Valeur 1,2 ... Valeur 1,N
Enregistrement 2 Valeur 2,1 Valeur 2,2 ... Valeur 2,N
... ... ... ... ...
Enregistrement M Valeur M,1 Valeur M,2 ... Valeur M,N

1.1.5.Mais encore?

Chaque champ est typé[en savoir plus], c'est a dire que pour chaque champ d'une table, on doit définir si celui-ci prends des valeurs de type numérique[en savoir plus], alphanumérique[en savoir plus] (texte), date[en savoir plus] ou autre...
On pourra également définir des contraintes pour certains champs (par exemple, on pourra refuser que certains champs ne soient pas renseignés) voire des contraintes entre les tables. On parle alors de contraintes d'intégrité[en savoir plus]

1.2.Les différents serveurs de bases de données

Il existe de nombreux type de serveurs de bases de données, parmi eux:
  • MySQL[en savoir plus]: Sous licence GPL (gratuite) performante quoique légèrement incomplète
  • PostgreSQL[en savoir plus]: Egalement Open Source performante et offrant de nombreuses fonctionnalités
  • Oracle: La base de données professionnelle
  • DB2 (IBM): Une autre base de données professionnelle
  • SQL Server (MS): La solution proposée par Microsoft (A ne pas confondre avec SQL[c'est quoi?]: Le langage!!)
  • etc..
Et quelques bases de données sans serveur, dont: