Cours générale de bases de données pour débutant
Cours générale de bases de données pour débutant
...
La gestion des informations se faisait jadis à partir de fiches manuscrites puis dactylographiées, classées bien souvent selon un index
Exemple : Cas d’une gestion de personnels par ordre alphabétique sur le nom, avec un index ou coche sur la première lettre du nom, pour améliorer le classement et la recherche.
Ces fiches regroupaient des informations se reportant à un même sujet.
Exemple : Selon l’exemple précédent : le nom, le prénom, la date de naissance, l’adresse, les qualifications, l’emploi tenu, l’indice de rémunération …), avec éventuellement une information particulière qui servait à identifier plusieurs personnels ayant le même nom et le même prénom, soit un code ou un numéro matricule.
Ces principes de regroupement d’informations, d’identifiant, de fiche et de fichier servirent de modèle aux premiers fichiers informatiques : notion qui apparut dans les années cinquante.
Avec l'informatique, un certain nombre d'opérations ont été automatisées et l'enregistrement des informations est donc passé de la fiche manuelle à un support informatique (bande magnétique, disque dur, disquette etc...). Ces informations ont été organisées dans des fichiers.
La problématique générale est alors la suivante : comment, à partir d'un simple ordinateur, réussir à gérer toutes les informations d'une entreprise ?
Les connaissances en architecture système, en analyse et en programmation ne suffisent pas à elles seules à résoudre le problème du stockage des données et de leur traitement. Mais l'on peut, pour commencer, se servir des structures et des mécanismes propres à la gestion des fichiers pour organiser le stockage des données.
- Rappels sur les fichiers
- Rappels sur les fonctions du Système d'Exploitation
Tout Système d’Exploitation dispose d'un Système de gestion des fichiers, responsable de l'organisation et de l'accès aux informations.
Fichier : Ensemble organisé de regroupements d'informations de même nature, appelés articles ou enregistrements, susceptibles de faire l'objet de traitements par des programmes, ou produits par ces mêmes programmes.
Parmi les fichiers que gère un système d'exploitation, on peut distinguer : les fichiers de données, les fichiers programmes ou les fichiers textes.
On ne s'intéresse ici qu'aux fichiers de données.
Ces fichiers de données sont destinés à faire l'objet de traitements par des programmes dans le but de création, de modification, de suppression et/ou de consultation des informations qu'ils contiennent.
En conséquence le SE considère un fichier comme une unité logique qu'il doit pouvoir gérer en fonction des espaces physiques disponibles sur les supports périphériques alors que l'utilisateur le considère comme une identité de dimension arbitraire qui forme un tout.
La notion de fichier physique (contenant) s'oppose donc à la notion de fichier logique (contenu) et il faut bien comprendre ces deux notions pour savoir gérer les informations.
- La structure logique des fichiers
Structure logique : Ordre de consultation des enregistrements de façon à n'obtenir que des enregistrements d'un même fichier
- Structure logique de longueur fixe
Avant même de commencer à stocker des informations, on doit créer une structure pour le fichier :
Nom fichier : STAGIAIRE.DAT
Longueur enregistrement : 75
Date de création : 01/07/1997
Date dernière modification : 04/07/2000
….
NOM GRADE CODE_GRADE NUM_STAGE CLAIR_STAGE
DUPONT sergent 89 99SB3 CT1 MSI
MARTIN sergent 89 99SB2 CT1 MSI
UNTEL sergent-chef 91 99SA3 BSTAT MSI
BERNARD sergent-chef 91 00LA1 BSTAT MSI T S ML
En-tête (ou header): ensemble de données décrivant un fichier avec le détail de ses caractéristiques (organisation, longueur des enregistrements, date de création, date de dernière modification etc…).
Enregistrement logique (ou Article): unité de base directement accessible par le programme utilisateur ; Ensemble structuré de rubriques se rapportant à un même sujet.
Exemple : L'article STAGIAIRE comporte les rubriques NUM_STAGE, CLAIR_STAGE…
Chaque enregistrement se voit attribuer un numéro d'ordre (numéro ou clé).
Rubrique (attribut ou champ ou donnée (datum)) : le nom attribué à chaque zone contenant une valeur en clair ou codifiée.
Exemple : La rubrique GRADE contenant la valeur "sergent" et la rubrique CODE_GRADE contenant la valeur 89.
Caractère : le plus petit élément de donnée dans une rubrique. On peut dire que c'est le plus petit groupement de bits (BInary digiT) contigus et significatifs.
Clé : est constituée d'une (ou de plusieurs) donnée(s) qui permet(tent) le rangement et la localisation de l’article dans le fichier de manière optimisée. La clé appartient généralement à l’article. Primaire, elle identifie l'article ; secondaire elle peut tolérer des valeurs multiples (doublons) et permet un accès plus rapide à tous les enregistrements pour lesquels la clé secondaire aurait la valeur recherchée.
La clé primaire est toujours renseignée. Elle a un contenu unique pour chaque enregistrement logique, elle appartient à l’article en tant que rubrique, son contenu est ou non numérique. La clé primaire est utilisée par le SGF pour la construction des tables d’index.
1.1. Structure logique séquentielle classique
On accède à un enregistrement après avoir lu tous ceux qui le précèdent.
IDENT
NOM COEF
1 DUPONT 30
2 MARTIN 23
3 UNTEL 28
4 BERNARD 12
Les enregistrements sont rangés dans l'ordre logique de lecture. Pour respecter cet ordre, on est souvent amené à trier les enregistrements, en les déplaçant. Ce type de tri est long et fastidieux ; le risque d'erreur important. Le tri ne peut se faire que sur un seul critère.
1.2. Structure logique séquentielle chaînée
Dans ce type de structure, les enregistrements peuvent être dans n'importe quel ordre.
Pour conserver un ordre logique des enregistrements, on ajoute une rubrique spéciale à la structure pour indiquer la position de l'enregistrement logique suivant ; cette rubrique contient l'adresse de cette enregistrement : c'est un « pointeur ».
IDENT NOM COEF Suivant
1
UNTEL 28 @4
2 = début DUPONT 30 @3
3 MARTIN 23 @1
4 BERNARD 12 Fin
Cette fois-ci, pour effectuer des tris, il suffit simplement de reconstruire le "chaînage" entre les différents articles à partir des "pointeurs", ce qui est plus rapide et plus sûr.
Cette structure a aussi l'avantage de proposer la notion de suppression logique des articles (l'enregistrement est présent dans le fichier, mais aucun pointeur ne permet d'y accéder).
1.3. Structure logique indexée
Pour accéder encore plus vite aux enregistrements, on ajoute au fichier de données un fichier index, trié en fonction de la rubrique la plus intéressante (la clé primaire par exemple).
Ce fichier index ne comporte plus que le numéro d'enregistrement, la rubrique servant d'index et l'adresse de l'enregistrement logique suivant (selon le critère d’indexation).
IDENT NOM COEF N° NOM Adresse
1 UNTEL 28 1 BERNARD @4
2 DUPONT 30 2 DUPONT @2
3 MARTIN 23 3 MARTIN @3
4
BERNARD 12 4 UNTEL @1
Fichier de données Fichier d'index (sur le nom)
Le fichier de données ne contient que des données, le fichier d'index peut être généré à n'importe quel instant, les accès se font par l’intermédiaire du fichier index, plus petit et plus maniable.
On peut, en outre, créer plusieurs fichiers index pour un même fichier de données (tri sur le nom, sur la date, sur un ensemble d'articles…).
- Structure logique de longueur variable
Pour éviter le gaspillage d'espace on peut utiliser un fichier à structure variable :
- Les champs sont séparés par un séparateur spécifique : \00 par exemple 00(16) ;
- Les enregistrements sont séparés par un autre séparateur : \n par exemple 13(16).
Le gain de place n'est pas négligeable mais la gestion devient plus complexe.
- La structure physique des fichiers
Si l'on se penche maintenant sur la structure physique des fichiers (contenant), on se rend compte que des principes similaires à ceux énoncés précédemment sont mis en application, mais les mécanismes sont intimement liés aux possibilités de gestion des entrées-sorties du SE présent.
Structure physique : Ordre physique des enregistrements.
Bloc : est constitué de un à plusieurs enregistrements logiques traités comme un tout au niveau des entrées-sorties.
L'intérêt de ce principe réside, en tenant compte de la taille des buffers, dans la diminution du nombre d'entrées-sorties physiques.
De plus, les principes mis en place pour la gestion des mémoires secondaires autorisent le fractionnement d'un fichier physique en plusieurs endroits.
- Enregistrement logique, enregistrement physique
Enregistrement physique (ou bloc) : ensemble des caractères transférés par le système d'exploitation au cours d'une entrée-sortie.
Enregistrement logique : unité de base directement accessible par le programme utilisateur.
Les tailles de ces différents enregistrements ne sont pas obligatoirement compatibles : le SE doit permettre de faire la correspondance entre physique et logique.
Facteur de groupage (ou facteur de blocage) : Nombre d’enregistrements logiques contenus dans un enregistrement physique.
Schéma récapitulatif
Enregistrement physique 1
Enregistrement logique 1 Enregistrement logique 2 Enregistrement logique 3
Article ou enregistrement logique
N° Matricule Nom Prénom Adresse N° téléphone
Clé primaire Rubrique :
MICHEL
M I C H E L
- Structure physique des fichiers
2.1. Structure physique séquentielle
Ceci est le cas des bandes magnétiques : les enregistrements sont écrits les uns à la suite des autres.
Il est donc logique que la structure logique correspondante soit aussi séquentielle, ce qui rend les accès et les opérations de recherche très longs.
Ce type de structure est utilisé pour la sauvegarde et l'archivage des informations.
2.2. Structure physique adressée (ou adressable)
La tête de lecture peut se positionner directement à n'importe quel endroit du fichier.
Les fichiers peuvent être fragmentés (découpés en plusieurs parties logiquement chaînées mais physiquement situées à des endroit différents du support).
Cette structure est compatible avec toutes les structures logiques citées.
- Les organisations et les accès
- Les organisations
Organisation : Méthode permettant d'attribuer (écrire) un emplacement physique sur le support à tout enregistrement logique
On peut donc distinguer 4 grands types d'organisations :
1.1. Organisation séquentielle (heap)
Telle une série de fiches dans un bac, sans repères particuliers, une organisation séquentielle est basée sur un fichier séquentiel dont les enregistrements sont répartis sur plusieurs pages de données.
L’impression de désordre que laisse ce type d’organisation explique le nom qui lui est donné (heap veut dire tas).
Les accès sont relativement longs mais si les enregistrements sont triés selon un attribut couramment sollicité (organisation heap triée), cet inconvénient est moins sensible.
Cette organisation a pour avantage de considérer indifféremment chaque attribut de l'enregistrement ; on peut donc accéder aux informations en utilisant comme point d'entrée chaque attribut ou combinaison d'attributs de l'enregistrement, avec des performances équivalentes.
1.2. Organisation à accès direct
Dans ce type d’organisation, la valeur de la clé d’un enregistrement suffit à retrouver l’emplacement physique de celui-ci.
La zone de données (data file) est découpée en pages.
1.2.1. Adresse physique d’un enregistrement
Plusieurs cas de figure peuvent se présenter :
- a) l'adresse de l'enregistrement est l'adresse physique réelle du début de l'enregistrement (le 1er octet) ;
- b) l’adresse de l’enregistrement correspond à l’adresse physique du début de la page de données dans laquelle se trouve l’enregistrement recherché ;
- c) l’adresse de l’enregistrement est composée de l’adresse physique du début de la page de données et du déplacement qu’il faut effectuer dans la page pour trouver le début de l’enregistrement (offset).