Aller au contenu

C’est quoi une base de données ? – Partie 2

C’est quoi une base de données ? – Partie 2

Suite de : C’est quoi une base de données ? – Partie 1

base de données  

Continuons ensemble de regarder comment peuvent être stockées les données, avant d’étudier les bases de données.

En y regardant de plus près, nous verrons que bien des notions et définitions utilisées dans les bases de données viennent des anciens modes de stockage.

Voici quelques notions utilisées en base de données :

  • Table
  • Champ (rappel)
  • Enregistrement (rappel)
  • Clé
  • Index
  • Tri primaire
  • Tri secondaire

Comment stocker les données ?

Dans la partie 1, nous venons de voir qu’il était possible de stocker les données en utilisant un fichier texte ou un fichier structuré.

Mais il fallait trier ces données, c’est pourquoi a été créé :

le séquentiel indexé ISAM (Indexed Sequential Access Method)

Le premier système de tri qui vient à l’esprit avec une liste des employés, c’est le tri par ordre alphabétique.

Vous pouvez donc enregistrer tous vos employés sur des fiches et mettre ces fiches dans des classeurs avec des intercalaires ayant la première lettre du nom (tous les noms commençant par « A » ensemble, …) comme on peut le voir encore  :

archive

Avec ce système vous allez créer un ordre bien défini. Cet ordre est appelé « primaire ». C’est lui qui donne l’ordre de classement des fiches. (c’est à dire que les fiches des noms commençant par A se trouvent avant les fiches des noms commençant par B, etc).

Il ne peut y avoir qu’un seul  tri « primaire ». (Les fiches ne peuvent être triées que dans un seul ordre. si vous changez l’ordre de tri, c’est que vous changez le tri primaire)

 

Maintenant, si on vous demande la liste des employés du plus vieux au plus jeune, alors l’ordre alphabétique ne vous servira à rien. Ce que vous devrez faire, c’est lire l’ensemble des fiches et recopier sur une feuille de papier à côté, l’ensemble des dates de naissance que vous allez trier par ordre chronologique.

Pour cela,

  • Il n’est pas nécessaire modifier physiquement l’ordre des fiches.
  • Il faudra au moins écrire la valeur qui permet le tri : la date de naissance.
  • Il n’est pas nécessaire de recopier toutes les informations de la fiche (mais il vous faudra un moyen d’accéder à la fiche donc sans doute le nom et le prénom).
  • Et ensuite, si on ajoute une nouvelle fiche (à l’arrivée d’un nouvel employé), il faudra mettre à jour la feuille de papier de tri par date de naissance. Cela évitera de refaire le tri si on vous le demande à nouveau.

Cette feuille de papier nous donne donc un ordre de tri différent. Ce tri est appelé « secondaire ».

 

A l’aide de cette feuille, vous allez aussi pouvoir faire des recherches plus rapides sur des valeurs qui ne sont pas celles de l’index primaire. En effet, si je vous dit : » qui est né le 3/11/1986 ? », vous allez rechercher sur la feuille des dates de naissances, plutôt que sur les fiches triées par ordre alphabétique.

Contrairement au tri primaire, il peut y avoir autant de tri secondaire que vous le souhaitez (il suffit de mettre d’autres ordres de tris)

 

Cette notion de tri primaire et tri secondaire est parfois un peu difficile à comprendre, c’est pourquoi je vais un peu insister dessus.

 

Notions de bases

Avant d’aller plus loin, étudions quelques définitions utilisées en base de données et que retrouverez partout dès lors que vous utiliserez une base de données.

  • Champ (rappel)

Un champ est une zone permettant le stockage des données.
Dans une vue en liste, le champ correspond à la colonne.

  • Enregistrement (rappel)

Un enregistrement est l’ensemble des valeurs pour une même fiche.
Dans une vue en liste, un enregistrement correspond à une ligne.

  • Table

Une table va contenir l’ensemble des enregistrements
C’est la zone de stockage.

  • Clé

Une clé est composée de 1 ou plusieurs champs. Cette clé compose un index et permet le tri et la recherche sur les enregistrements.

  • Tri primaire / Clé primaire

Le tri primaire est comme son nom l’indique, le 1er tri d’un fichier. C’est ce tri qui va positionner les données. C’est avec cet ordre que l’on va retrouver directement les données.

Attention, les valeurs des clés primaires doivent être unique car ces valeurs doivent nous permettre de retrouver une fiche et une seule. (nous y reviendrons plus bas)

  • Tri secondaire / clés secondaires

Le ou les tris secondaires, car on peut en créer plusieurs, permettent d’afficher ou de rechercher les données d’une autre manière qu’avec le tri primaire. A la différence du tri primaire, les clés n’ont pas l’obligation d’être unique et le tri ne modifiera pas l’ordre d’enregistrement des données.

  • Index

 Un index est le conteneur des clés.

Exemple

Pour bien comprendre, rien ne vaut un exemple : reprenons l’exemple de l’article précédent.

Voici notre liste des employés.

Pas de tri

Nom Prénom Dte Naiss. Profession Adresse Code postal Ville
Durand Michel 15/11/1971 Directeur Rue des Mouettes 75016 Paris
Dupond Karine 18/02/1981 Secrétaire Avenue des Champs 92000 Courbevoie
Mensoif Gérard 06/06/1962 Commercial Impasse de la Bière 75001 Paris
Monauto Alphonse 01/04/1991 Commercial Rue Nationale 75002 Paris
Emarre Jean 03/11/1986 Employé Rue de Berlin 75015 Paris
Abois Nicole 25/12/1984 Secrétaire Impasse de la forêt 95000 St Denis
Dupond Antoine 08/02/1996 Assistant commercial Rue Ampère 75014 Paris

Dans le tableau ci-dessus, nos données ne sont pas triées.

 

Tri primaire

Maintenant, nous allons créer un tri primaire (je vous rappelle que le tri primaire, joue sur le positionnement des données). Pour ce tri primaire, nous allons prendre l’ordre alphabétique et donc le nom et le prénom. (même si cela est une mauvaise idée, je vous expliquerai cela plus loin).

Voici donc notre tableau avec une clé primaire (nom, prénom). ( Regardez au passage la notation d’une clé primaire : les champs de la clé primaire sont soulignés. )

Ce n’est pas bien spectaculaire, c’est juste la même liste triée par ordre alphabétique.

Nom Prénom Dte Naiss. Profession Adresse Code postal Ville
Abois Nicole 25/12/1984 Secrétaire Impasse de la forêt 95000 St Denis
Dupond Antoine 08/02/1996 Assistant commercial Rue Ampère 75014 Paris
Dupond Karine 18/02/1981 Secrétaire Avenue des Champs 92000 Courbevoie
Durand Michel 15/11/1971 Directeur Rue des Mouettes 75016 Paris
Emarre Jean 03/11/1986 Employé Rue de Berlin 75015 Paris
Mensoif Gérard 06/06/1962 Commercial Impasse de la Bière 75001 Paris
Monauto Alphonse 01/04/1991 Commercial Rue Nationale 75002 Paris

 

Tri secondaire

Maintenant, nous allons créer un fichier d’index par date de naissance. (pour information : je parle de « fichier d’index » pour un ficher isam, alors que l’on parle d' »index » pour une base de données)

Notre clé sera uniquement le champ « Dte Naiss ». Cela est suffisant pour trier par date de naissance.

Dans ce fichier, il n’est pas nécessaire de recopier toutes les données de nos employés car toutes ces données sont déjà écrites dans les fiches. Ces fiches étant triées par nom et prénom (tri primaire), la seule chose que nous devons réécrire, c’est le moyen d’accéder à la fiche si nous en avons besoin et donc d’écrire les valeurs de la clé primaire.

Voici ce que cela donne :

Fichier d’index par date de naissance, il faut noter que :

  • Le fichier d’index est trié en fonction de la clé (date de naissance)
  • Toutes les données ne sont pas inclus dans le fichier d’index, seul les valeurs nécessaires pour retrouver l’enregistrement sont stockées (ici, le nom et le prénom).

 

Dte Naiss. Nom Prénom
06/06/1962 Mensoif Gérard
15/11/1971 Durand Michel
18/02/1981 Dupond Karine
25/12/1984 Abois Nicole
03/11/1986 Emarre Jean
01/04/1991 Monauto Alphonse
08/02/1996 Dupond Antoine

Idéalement, il faudrait prévoir ce genre de feuille de tri dès le départ et mettre à jour les feuilles de tri en même temps que l’on met à jour les données dans le classeur principal.

En informatique, c’est pareil, on va créer un fichier appelé fichier d’index (en base de données, on dirait que l’on va créer un Index) qui va contenir la liste des fiches dans un autre ordre que l’ordre primaire. A l’aide de ce fichier d’index, on va pouvoir faire des tris et des recherches directes sur des valeurs différentes .

Si pose maintenant, la question : « Ou habite celui qui est né le 25/12/1984 » ?

Voici ce que vous allez faire :

  1. Faire une recherche dans l’index de cette date (cette recherche sera pratiquement instantanée, avec votre index sur les dates de naissance).
  2. Vous allez ensuite pouvoir retrouver la fiche de la personne née à cette date.
  3. Vous pouvez lire, les informations de la fiche.

Sans index, vous auriez dû lire l’ensemble des fiches !

 

Contre-Exemple

Comme je vous le disais plus haut, le tri primaire par Nom, Prénom n’est pas une bonne idée, voici pourquoi :

Un nouveau salarié arrive dans l’entreprise, il s’agit de « Antoine Dupond » :

  1. Vous saisissez la fiche,
  2. vous mettez à jour votre index sur les dates de naissances
  3. et vous voulez stocker la fiche : et là, c’est le drame : Il y a déjà un « Antoine Dupond »

Il ne peut pas y avoir plusieurs fiches avec la même clé primaire ! Comment faire ? Ou vais-je stocker cette fiche, avant l’autre, après l’autre.
Pour des employés, ça va car il y a peu de chance d’avoir beaucoup d’employés avec le même nom, mais dans certains cas il peut y avoir beaucoup de doublon. (comme pour des articles dans un magasin, cela peut vite devenir le bazar). Il faut donc trouver une autre solution.

Voici la solution :

Quand il est possible d’avoir plusieurs clés primaires identiques (ce n’est possible qu’avec des fiches cartonnées mais pas en informatique), il faut utiliser un autre système : un identifiant unique. Il s’agit bien souvent d’un n° unique qui servira à repérer nos données.

Voici donc les données avec un nouveau champ en clé primaire : id_salarié (colonne jaune)
Id_salarié est un champ qui est forcément unique, il s’agit d’un n° d’ordre. Ce champ ne va servir que pour avoir identifiant unique pour chacun des salariés.
(notez au passage la notation de la clé primaire toujours en souligné)

id_salarié Nom Prénom Dte Naiss. Profession Adresse Code postal Ville
1 Durand Michel 15/11/1971 Directeur Rue des Mouettes 75016 Paris
2 Dupond Karine 18/02/1981 Secrétaire Avenue des Champs 92000 Courbevoie
… etc
6 Abois Nicole 25/12/1984 Secrétaire Impasse de la forêt 95000 St Denis
7 Dupond Antoine 08/02/1996 Assistant commercial Rue Ampère 75014 Paris
8 Dupond Antoine 15/04/1974 Employé Rue de la foudre 75013 Paris

 

Deux tris secondaires

    • Un tri sur le Nom Prénom 
Nom Prénom id_salarié
Abois Nicole 6
Dupond Antoine 7
Dupond Antoine 8
Dupond Karine 3
etc …
  • Un tri sur la Date de naissance
Dte Naiss. id_salarié
06/06/1962 3
15/11/1971 1
etc …

 

 

En conclusion et à retenir

Voila, vous êtes prêts !

Nous venons de voir des concepts qui ont commencé à être utilisés bien avant la création des bases de données. Les notions de clés, d’index, de clé primaire, … se retrouvent au coeur des bases de données. Il était important d’introduire tous ces concepts avant de rentrer dans le vif du sujet.

Vous voila maintenant prêt pour comprendre le fonctionnement des bases de données, dans l’article suivant :

C’est quoi une base de données – Partie 3 ?

 

Voici tous les articles liés aux bases de données :

C’est quoi une base de données ?

C’est quoi une base de données ? – partie 2 

C’est quoi une base de données ? – partie 3 

et

Comment ça marche une base de données ?

 

 

Comme d'habitude, tous les commentaires sont les bienvenus.
Inscrivez-vous à la lettre d'information. Celle-ci vous parviendra dès la parution de nouveaux articles. Vous trouverez la zone d'inscription à la lettre d'information en haut à droite de l'écran.
 
Et enfin, pour toutes vos questions techniques, utilisez le forum. D 'autre utilisateurs pourront vous répondre et vous aider. Cliquez ici pour accéder au forum...
Étiquettes:

13 commentaires sur “C’est quoi une base de données ? – Partie 2”

    1. Bonjour Moubarak,
      oui, je n’ai pas évoqué toutes les possibilités des bases de données (clé étrangères, triggers, etc …) : j’ai voulu rester simple et compréhensible pour tous.
      A bientôt

  1. Du coup, si dans la partie 3 on ajoutais une sous-directrice? J’ai rien contre les secrétaires mais j’ai un égo fragile et là je suis vexée…
    Chouette site sinon, à bientôt!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO