La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 - Organisations et modes d’accès 1 – 1 - Le choix d’un mode d’organisation 1 – 2 - La méthode de choix d’un mode d’organisation 2 - Les fichiers d’organisation.

Présentations similaires


Présentation au sujet: "1 - Organisations et modes d’accès 1 – 1 - Le choix d’un mode d’organisation 1 – 2 - La méthode de choix d’un mode d’organisation 2 - Les fichiers d’organisation."— Transcription de la présentation:

1 1 - Organisations et modes d’accès 1 – 1 - Le choix d’un mode d’organisation 1 – 2 - La méthode de choix d’un mode d’organisation 2 - Les fichiers d’organisation séquentielle 2 – 1 - Définition 2 – 2 - Les méthodes de construction des programmes 2 – 3 - La méthode de Jackson 2 – 4 - La mise à jour d’un fichier séquentiel 2 – 5 - La fusion de plusieurs fichiers séquentiels 2 – 6 - Le tri externe (Tri des fichiers) a) Tri du fichier dans la mémoire interne (tri interne) b) Amélioration de la méthode de tri interne : (Heaopsort) c) Tri par fusion multiple Plan...

2 Objectif: Bien organiser les données dans un fichier pour diminuer au maximum le temps d’accès au support externe. Question: Comment retrouver à l’intérieur d’un fichier un enregistrement donné?’ Réponse: Dépend de comment sont organisées les données les unes par rapport aux autres => Organisation des fichiers ou le mode d’organisation des fichiers. Il y’a plusieurs modes: - L’organisation séquentielle. - L’organisation directe (ou relatif). - L’organisation indexée. Organisations et modes d’accès...

3 Pour chaque d’organisation, on a une façon d’accès aux données. Cette façon est appelée ‘mode ou technique d’accès’ Organisations et modes d’accès... Mode d’organisation SéquentielRelatif ou directSéquentiel indexé Mode d’accès séquentiel Mode d’accès direct Hashing Mode d’accès séquentiel Mode d’accès indexé

4 Le choix de l’organisation dépends de l’application qui va manipuler les données. Elle dépend aussi d’autres critères: : - Le type de périphérique de stockage secondaire disponible. - Le type de requêtes associées à un fichier. - Le mode de traitement (temps réel ou temps différé : batch) - La fréquence d’utilisation du fichier. - Le taux d’évolution de la taille du fichier (volume). - Le mode d’organisation supporté par le système de gestion des fichiers. - La nature du langage de programmation disponible. -etc… Le choix d’un mode d’organisation...

5 Pour choisir un mode d’organisation, on peut faire une évaluation comparative entre tous les modes existants puis décider quel mode on va adopter. Pour faire cette évaluation comparative, on doit tenir compte des points suivants : -le volume de stockage requis -le temps d’accès à un enregistrement quelconque -le temps de lecture de l’enregistrement suivant -le temps d’ajout d’un nouvel enregistrement -le temps nécessaire à la modification d’un enregistrement -le temps de lecture de tout un fichier temps requis pour la réorganisation Évaluation des modes d’organisation...

6 1. Déterminer les besoins de traitement d’un fichier compte tenu de l’application considérée. 2. Retenir le mode d’organisation qui semble le plus approprié compte tenu des besoins mis en évidence en 1. 3. Le mode d’organisation retenu peut-il être supporté par l’environnement (matériel et logiciel) disponible ? 4. Si oui, « fin » (On retient le mode d’organisation du point 2). 5. Sinon, choisir (temps de développement admissible ?) parmi les trois alternatives suivantes : a) acquérir un système qui supporte le mode d’organisation retenu en 2 b) développer un système « maison » capable de supporter ce mode d’organisation c) choisir le mode d’organisation le plus satisfaisant supporté par un système de programmation disponible Méthode de choix d’un mode d’organisation... OU

7 Un fichier d’organisation séquentielle est un fichier dans lequel les données (enregistrements) sont stockées les unes après les autres selon leur ordre d’arrivée ou de création, sans mémoriser l’endroit où elles ont été écrites. Les fichiers séquentiels peuvent être stockés sur tout type de mémoire secondaire. L’organisation séquentielle ne permet que l’accès séquentiel (dans un ordre linéaire). Les fichiers d’organisation séquentielle...

8 Propriétés d’un fichier séquentiel: Les enregistrements sont triés sur une valeur de clé primaire. Une clé primaire est une ou plusieurs rubriques qui identifient un enregistrement de façon unique. Problème: Le maintient de cet ordre lors de toute mise à jour du fichier. Solution: Adopter une méthode qui prend en compte les contraintes de structure d’un fichier séquentiel. Il existe plusieurs méthodes: * Logique de construction de programme LGP. * La méthode de Jackson. Les méthodes de construction de programmes...

9 Idée de base: La structure d'un programme est dérivée de la structure de tous les fichiers qu'il exploite. Il y’a une relation entre les données et les traitements (par exemple une relation entre une itération et un tableau est très claire). => La structure des traitements est calquée sur la structure des données (fichiers). Principe: Les données sont décrites en termes de structures reliées aux constructions élémentaires de programmation que sont la séquence, la sélection et l'itération. La méthode de Jackson...

10 Les données séquentielles peuvent être représentées comme suit : X est constitué d’un A suivi d’un B suivi par C. La flot de contrôle correspondant: La méthode de Jackson: La séquence... X CBA A B C

11 La notation est presque similaire à la notation de la séquence, mais, en ajoutant un petit rond (symbole de choix) près des symboles pour signifier la sélection. X est constituée soit d’un A, soit d’un B soit d’un C Le flux de contrôle correspondant: On peut exécuter soit A, soit B, soit C, tout dépend de la valeur de X La méthode de Jackson: La sélection... X CC BB AA F1(x) true A F2(x) true B Else C

12 La notation utilisée pour représenter le fait qu’un X est constitué de 0 ou plusieurs occurrences d’un A est la suivant : Le flux de contrôle: A est exécuté tant que la condition C est vraie La méthode de Jackson: L’itération... X A* C A

13 Principe: Il s’exprime à travers les 3 points suivants : 1. Structuration des données d’entrée et de sortie sous forme de diagramme. 2. Déduction de la structure de programme (structure de flux de contrôle) permettant d’obtenir les « sorties » (résultats) à partir des « entrées » de telle sorte qu’il y ait correspondance : Éléments des structures de données Éléments de la structure des traitements 3. Identification des opérations à effectuer sur les données et localisation de celles-ci aux différents nœuds de la structure des traitements. La méthode de Jackson: Le principe...

14 Fichier séquentiel contenant les informations sur les étudiants. Chaque étudiant dans plusieurs examens et travaux. La structure du fichier: nombre: le nombre d’enregistrements qui suivent dans le fichier nom: Le nom de l’étudiant qui peut être suivi par 0 ou plusieurs informations sur l’étudiant. Chacun de ces enregistrements doit contenir soit un examen, soit un travail. La méthode de Jackson: Exemple... …... zzz

15 . La méthode de Jackson: 1 - La structure des données en entrée...

16 Le fichier de sortie: est constitué d’une ligne pour chaque étudiant. Cette ligne doit contenir le nom, le nombre de scores compté et un poids total. La description du fichier sortie selon la méthode de Jackson: La méthode de Jackson: 2 - La structure des données en sortie...

17 Dériver une structure de contrôle basée sur les structure des données en entrée et en sortie. L’objectif: Arriver à une structure de contrôle tel que tous les éléments de la structure de données auront des correspondances avec un élément de la structure de contrôle. Jackson suggère de commencer avec la structure de données et de faire la correspondance. La méthode de Jackson: 2 - La structure des données en sortie... Correspondance Fichier entréeFichier sortie

18 La correspondance est la suivante : La méthode de Jackson: 2 - La structure des données en sortie... EntréeSortie Entête (nombre d’enregistrements) Rapport étudiant* TotalNombre de notes Nom Groupe étudiants* Valeur sentinelle zzz NomLigne info* Note  travaux Note  examen

19 - Production d’un fichier ayant la structure suivante: nom, le nombre de notes obtenues et le le total de toutes les notes obtenues - À chaque « groupe étudiant » du fichier d’entrée correspond un « rapport étudiant » dans le fichier de sortie - Nombre d’enregistrements du fichier d’entrée : utilisé à des fins de vérification (aucune correspondance en sortie) - valeur sentinelle : utilisée pour détecter la fin du fichier d’entrée (aucune correspondance en sortie) - squelette du programme à réaliser La méthode de Jackson: 3 - La nature du traitement...

20 - Le niveau immédiatement inférieur à « groupe étudiant » dans la structure des données en entrée contient une itération (ligne info) - Aucune itération correspondante dans la structure des données en sorte puisque « nombre_de_notes » et « total » sont calculés à partir d’un ensemble de lignes info - Le prochain niveau de la structure des traitements sera constitué par une séquence qui consiste à traiter un « groupe étudiant » en entrée et à produire un « rapport étudiant » en entrée et à produire un « rapport étudiant » en sortie - La structure de programme: La méthode de Jackson: 3 - La nature du traitement...

21 1. Ouverture des fichiers 2. Fermeture des fichiers 3. Initialisation du nbre_enregts_lus 4. Lire un enregistrement du fichier d’entrée et incrémenter nbre_enregistrement du fichier d’entrée et incrémenter nbre_enregts_lus 5. Initialisation du nombre_de_notes 6. Incrémenter nombres_de_notes (dans le fichier résultat) 7. Écrire nombre_de_notes (dans le fichier résultat) 8. Initialisatioon du total (des notes obtenues par chaque étudiant) 9. Ajouter note_examen à total 10. Ajouter note_tp à total 11. Écrire total (dans le fichier résultat) 12. Lecture initiale du nombre d’enregistrements (nbre_enregts_a_lire) à lire dans le fichier d’entrée 13. Vérifier si le nombre d’enregistrements lus correspond bien au nombre d’enregistrements indiqué 14. Écrire le nom de l’étudiant (dans le fichier résultat) La méthode de Jackson: 4 – L’identification des opérations...

22 . La méthode de Jackson: 4 – La localisation des opérations...

23 DébutOuverture fichiers (1) Lecture initiale (12) nbre_enregts_lus 0 (3) Lecture courante et nbre_enregts_lus +1 (4) Tant que non valeur sentinelle Faire écrire nom étudiant (14) nombre_de_notes 0 (5) Lecture courante et nbre_enregts_lus +1 (4) Total 0 (8) Tant que enregistrement de type « note » (TP ou examen) Faire nombre_de_notes +1 (6) Si note de type « examen » alors Total total + note_examen (9) Sinon Total total + note_tp (10) Fin si Lecture courante et nbre_enregts_lus +1 (4) Fin faire Écrire nombre_de_notes (7) Écrire total ( 11) Fin faire (* fin du fichier d’entrée *) Si nbre_enregts_lu ¹ nbre_enregts_à_lire alors (13) Imprimer un message d’erreur Fin si Fermeture fichiers (2) Fin La méthode de Jackson: 5 – L’élaboration de l’algorithme...

24 Écrire le programme correspondant à l’algorithme dans un langage bien déterminé (exp: C, C++ ou Java). La méthode de Jackson: 6 – L’élaboration du programme...

25 . La mise à jour d’un fichier séquentiel...

26 Ajout La mise à jour d’un fichier séquentiel... Modification Suppression

27 On distingue deux modes de traitement pour la mise à jour : - temps réel (ex : réservation de billets) : Car le programme qui accède au fichier peut exécuter continuellement. - différé (batch): Dans quelques situations on accepte d’avoir un délais entre la réception de nouvelles valeurs et le changement des enregistrements car les fichiers ne sont pas fréquemment accessibles Mode de traitement de MAJ...

28 L’opération de mise à jour en différé se fait à travers un programme qui a comme entrée : - Un fichier maître qui contient les données à mettre à jour. - Un fichier de transactions qui contient les différentes transactions à effectuer sur les données du fichier maître. En résultat, on peut trouver un fichier qui contient une liste d’erreurs de transactions (s’il y’en a) et une nouvelle version du fichier maître mis à jour. La mise à jour différée...

29 Dans les enregistrements de transaction les caractères suivants indiquent les opérations de mise à jour. On suppose que ces caractères suivent la clé de l’enregistrement de transaction: ‘M’ pour une modification ‘I’ pour un ajout (insertion) ‘S’ pour une suppression La codification de mise à jour...

30 Algorithme de M.A.J. {Signification des identificateurs : clé_courante :Clé en cours de traitement OK :indique l’état de la clé courante (booléen) enr_temp :enregistrement fichier temporaire (transaction) enr_perm:enregistrement fichier permanent avant M.A.J. Tampon :contient l’enregistrement à ranger dans le fichier permanent mis à jour } Ouverture fichiers (transaction, ancien et nouveau permanent) Lecture initiale transaction et ancien_permanent clé_courante  min (clé (enr_perm), clé (enr_temp)) Tant que clé_courante  valeur sentinelle Faire L’algorithme de mise à jour...

31 (* Détermination de l’état initial de cette clé *) OK  (clé courante = clé (enr_perm)) Si OK alors Tampon  enr_perm Lire (enr_perm) Fin si Tant que clé (enr_temp) = clé courante Faire { traitement d’une transaction } Tampon  enr_temp lire (enr_temp) Fin faire { Vérification de l’état final de la clé } Si OK alors Écrire tampon dans nouveau fichier permanent Fin si clé_courante  min (clé (enr_perm), clé (enr_temp)) Fin faire Écrire valeur sentinelle dans nouveau fichier permanent Fermeture des fichiers L’algorithme de mise à jour...

32 Exemple d'un fichier ma î tre ou principal CLE NOM PROGRAMME ADRESSE 21023 Jones, L. Math. 123 rue Courte 24019 Webster, P. Info. 9092 Grande Allee 24909 Able, C. Phys. 8291 Chemin Ste-Foy 27301 Carter, F. Math. 123 de la Montagne 29976 Reed, A. Info. 457 rue Marly 35879 Freeman, J. Biol. 120 rue de la prairie 36212 Dyson, R. Phys. 189 rue Rougement 37450 McNeil,K. Psch. 209 rue de Norvege 37900 Jones, A. Info. 177 rue Alain Organisations et modes d’accès... Exemple d'un ensemble de transactions Supprimer 35879 Modifier le programme de 24019 pour Math Inserer 37450 Blanc, W. Psch 17 rue de Norvege Modifier l'adresse de 29974 pour 18938 rue de la Montagne Inserer 24750 Green, J. Chem 120 rue Courlis Le fichier de transaction CLE TYPE PARAMETRE 24019 M 3 Math 24750 I Green, J. Chem 120 rue Courlis 29974 M 4 18938 rue de la Montagne 35879 S 37450 I Blanc, W. Psch 17 rue de Norvege Le nouveau fichier ma î tre ou principal CLE NOM PROGRAMME ADRESSE 21023 Jones, L. Math 123 rue Courte 24019 Webster, P. Math 9092 Grande Allee 24750 Green, J. Chem 120 rue Courlis 24909 Able, C. Phys 8291 Chemin Ste-Foy 27301 Carter, F. Math 123 de la Montagne 29976 Reed, A. Info 457 rue Marly 36212 Dyson, R. Phys 189 rue Rougement 37450 McNeil, K. Psch 209 rue de Norvege 37900 Jones, A. Info 177 rue Alain Le fichier des erreurs issue du traitement de mise à jour CLE TYPE D'ERREUR 29974 modification d'un enregistrement inexistant 37450 insertion d'un enregistrement deja existant

33 La figure suivante montre une opération de fusion de deux fichiers d’entiers pour produire un fichier résultat qui contient, dans l’ordre, tous les entiers des fichiers en entiers. Lorsque le nombre de fichiers d’entrée à fusionner est égal à deux, on retrouve exactement le même cas que précédemment (i.e. mise à jour d’un fichier séquentiel) La fusion de N (avec N > 2) fichiers peut se rencontrer dans des cas assez fréquents d’applications La fusion de plusieurs fichiers...

34 z1, z2, z3, z4,...,zn: zones mémoires contenant respectivement un enregistrement courant des fichiers F1, F2, F3, F4,...,Fn à fusionner v1, v2, v3, v4,...,vn: valeurs de clé des enregistrements respectivement de F1, F2, F3, F4,...,Fn À chaque itération de l’algorithme, l’enregistrement correspondant à la valeur de clé minimale (Min (Vi), i = 1, n) est écrit dans le fichier résultat et un autre enregistrement est lu dans le fichier d’entrée approprié Lorsqu’un fichier Fi est épuisé la zone Zi correspondante en mémoire centrale est remplie par la valeur Vi = + oo L’algorithme se termine lorsque la valeur minimale retournée est égale à + oo (i.e. tous les fichiers d’entrée sont épuisés) L’algorithme de la fusion...

35 DÉBUT (*N :Nombre de fichiers d’entrée à fusionner Buffer :Tableau d’enregistrements (1 cellule / fichier d’entrée) S :Indice de tableau et de fichier d’entrée (1 à N) Fin :Indicateur de fin de fusion *) Ouverture des N fichiers d’entrée (* Fichiers à fusionner *) Ouverture d’un fichier de sortie (* Résultat de la fusion *) (* Initialisation du buffer *) Pour i = 1 à N Si fichier i vide alors Buffer [i] + oo Sinon Lecture initiale du fichier i dans buffer [i] Fin si (* Fusion *) L’algorithme de la fusion...

36 Fin Faux Répéter recherche du (* résultat supposé buffer [s] *) Si buffer [s] = + oo alors Fin Vrai Sinon Écrire buffer [s] dans le fichier de sortie Si fin du fichier s alors Buffer [s] + oo Sinon Lecture courante du fichier s dans buffer [s] Fin si Jusqu'à fin Fermeture des fichiers FIN L’algorithme de la fusion...

37 A chaque itération de l’algorithme précédent on constate que seule une valeur de ‘buffer’ ne peut être modifiés (au plus) Remarque: répétitions inutiles de comparaisons identiques à celles de l’itération précédente Solution : Utilisation d’un arbre binaire au-dessus de buffer c’est-à-dire dont les cellules (ou éléments) buffer [i] (Pour i = 1 à N) seraient les nœuds terminaux (ou feuilles) Gains dans la recherche de la valeur minimale de clé : log 2 N comparaisons au lieu de N-1 Optimisation de l’algorithme...

38 L’ arbre des perdants: Optimisation de l’algorithme: Arbre des perdants...

39 DÉBUT (*T : pointeur sur un noeud interne cime :indicateur booléen permettant de détecter que l’on a atteint la racine de l’arbre (i.e. fin de l’algorithme) *) T père de buffer [s] cime faux Répéter Si clé (buffer (perdant (T))) < clé (buffer[s]) alors intervenir perdant (T) et s Fin si Si T = racine alors cime vrai sinon T père du noeud pointé par T Fin si Jusqu’à cime FIN Algorithme des mise à jour de l’arbre des perdants...

40 DÉBUT (*N :nombre de fichiers à fusionner buffer :tableau d’enregistrements (1 enregistrement par fichier) s :index de tableau et d’un fichier d’entrée fin :indicateur booléen de fin de fusion T :pointeur sur un noeud interne de l’arbre des « perdants » cime :indicateur booléen d’atteinte de la racine *) Ouverture fichiers (* N en entrée et 1 en sortie *) (* Initialisation du buffer *) Pour i = 1 à N si fichier i vide alors buffer [i] + ¥ Sinon Lecture initiale fichier i dans buffer [i] Fin si Algoritme de fusion optimisée...

41 Première solution: Transférer tout le contenu du fichier dans la mémoire interne (dans un tableau) en faisant un parcours séquentiel du fichier (tout le contenu du fichier). Puis utiliser une des méthodes de tri interne (tri des tableaux) pour trier les données dans la mémoire, et enfin réécrire le contenu trié du tableau vers le fichier d’origine. Cette opération de tri se compose de 3 étapes : - La lecture du fichier entier dans la mémoire centrale. - Le tri des enregistrements en utilisant une procédure de tri standards. - L’écriture du fichier trié dans le support externe (fichier trié). Tri des fichiers séquentiels: Tri externe d’une manière interne...

42 Avantages : Cette procédure est plus rapide que de la procédure de tri sur place, car : - Les opérations de lecture-écriture sont des opérations séquentielles et elles se font une seule fois (chaque enregistrement et lu et écrit une seule fois). - Si on a choisit une bonne méthode de tri interne, cette opération ne va pas prendre du temps, car elle se fait dans la mémoire interne. Inconvénients : On doit attendre le transfert de tout le fichier en mémoire pour le trier. Une fois il est trié, on doit le transférer sur le support externe. La taille des enregistrement à transférée peut être énorme, mais dans ce cas, on peut transférer seulement les clés des enregistrements. Tri des fichiers séquentiels: Tri externe d’une manière interne...

43 Le Heap Tri des fichiers séquentiels: Tri externe d’une manière interne (Heapsort)... ABCEHIDGF A BC F G HID E

44 . L’algorithme de tri: Heapsort... Mémoire centrale Heap Tableau Buffers Mémoire secondaire

45 . Tri par fusion multiple... Fusion Tri Blocs triés Fichier source Fichier source trié Division

46 Si on prend le niveau de fusion d’ordre 2 (Fusion de deux fichiers) : Soit le fichier texte qui contient les enregistrement Caractères suivant : CLASSEMENTPARFUSION On suppose que notre partition peut contenir 2 caractères, après la phase de division, on trouve les partitions suivantes: CL, AS, SE, ME, NT, PA, RF, US, IO, N Les phases de tri et fusion sont les suivantes : CL, AS, ES, EM, NT, AP, FR, SU, IO, N ACLS, EEMS, ANPT, FRSU, INO Fusion-tri ACEELMSS, AFNPRSTU, INO Fusion-tri AACEEFLMNPRSSSTU, INO Fusion-tri AACEEFILMNNOPRSSSTU Fusion-tri Tri par fusion multiple: Exemple...


Télécharger ppt "1 - Organisations et modes d’accès 1 – 1 - Le choix d’un mode d’organisation 1 – 2 - La méthode de choix d’un mode d’organisation 2 - Les fichiers d’organisation."

Présentations similaires


Annonces Google