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

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 :

  • 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.

  • 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

NomPrénomDte Naiss.ProfessionAdresseCode postalVille
DurandMichel15/11/1971DirecteurRue des Mouettes75016Paris
DupondKarine18/02/1981SecrétaireAvenue des Champs92000Courbevoie
MensoifGérard06/06/1962CommercialImpasse de la Bière75001Paris
MonautoAlphonse01/04/1991CommercialRue Nationale75002Paris
EmarreJean03/11/1986EmployéRue de Berlin75015Paris
AboisNicole25/12/1984SecrétaireImpasse de la forêt95000St Denis
DupondAntoine08/02/1996Assistant commercialRue Ampère75014Paris

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.

NomPrénomDte Naiss.ProfessionAdresseCode postalVille
AboisNicole25/12/1984SecrétaireImpasse de la forêt95000St Denis
DupondAntoine08/02/1996Assistant commercialRue Ampère75014Paris
DupondKarine18/02/1981SecrétaireAvenue des Champs92000Courbevoie
DurandMichel15/11/1971DirecteurRue des Mouettes75016Paris
EmarreJean03/11/1986EmployéRue de Berlin75015Paris
MensoifGérard06/06/1962CommercialImpasse de la Bière75001Paris
MonautoAlphonse01/04/1991CommercialRue Nationale75002Paris

 

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.NomPrénom
06/06/1962MensoifGérard
15/11/1971DurandMichel
18/02/1981DupondKarine
25/12/1984AboisNicole
03/11/1986EmarreJean
01/04/1991MonautoAlphonse
08/02/1996DupondAntoine

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éNomPrénomDte Naiss.ProfessionAdresseCode postalVille
1DurandMichel15/11/1971DirecteurRue des Mouettes75016Paris
2DupondKarine18/02/1981SecrétaireAvenue des Champs92000Courbevoie
… etc       
6AboisNicole25/12/1984SecrétaireImpasse de la forêt95000St Denis
7DupondAntoine08/02/1996Assistant commercialRue Ampère75014Paris
8DupondAntoine15/04/1974EmployéRue de la foudre75013Paris

 

Deux tris secondaires

    • Un tri sur le Nom Prénom 
NomPrénomid_salarié
AboisNicole6
DupondAntoine7
DupondAntoine8
DupondKarine3
etc …  
  • Un tri sur la Date de naissance
Dte Naiss.id_salarié
06/06/19623
15/11/19711
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 ?

 

 

Comme d’habitude, tous les commentaires sont les bienvenus.

N’hésitez pas à vous inscrire à la lettre d’information pour être informé de la parution de nouveaux articles. (vous trouverez la zone d’inscription à la lettre d’information sur la droite de l’écran).

 

Vous aimez ? Dites-le ...

10 thoughts on “C’est quoi une base de données ? – Partie 2

  1. Répondre fritz Août 6,2016 6 h 18 min

    c’est tellement bon , dans combien de temps ,on va avoir la suite ?

    • Répondre Administrateur du site Août 6,2016 7 h 17 min

      Bonjour,
      oups : j’avais un peu oublié. Je vais m’y remettre quand j’aurai fini ceux qui sont commencés actuellement.
      A bientôt

  2. Répondre Tom Jan 6,2017 14 h 39 min

    Effectivement, l’article s’arrête pile au mauvais moment. Vivement la suite et fin. Merci pour ce site d’une très grande utilité.

  3. Répondre Abois Nicole Jan 15,2017 16 h 31 min

    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!

  4. Répondre Agnès Fév 5,2017 18 h 42 min

    J’attends la suite également
    Merci beaucoup pour tous vos articles
    Tout parait tellement simple avec vous

  5. Répondre Francine A Agueh Fév 17,2017 13 h 24 min

    Vraiment genial. Bravo.
    Moi aussi j’attends la suite
    Fra

Laisser une réponse