Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Structures de données avancées : Principales structures de fichiers
Chap. 4 Recherche en Table
Portée des variables VBA & Excel
C.
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
Chap. 1 Structures séquentielles : listes linéaires
FLSI602 Génie Informatique et Réseaux
Algorithme et programmation
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Initiation à la conception des systèmes d'informations
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Créer une animation simple Gif avec ImageReady.
Section XI Traitement de fichiers
Initiation à la conception de systèmes d'information
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les fichiers indexés (Les B-arbres)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Introduction et Motivation
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers GF-1: Introduction à la Géstion des Fichiers et Opérations de Base.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 4 L’inertie et le mouvement à deux dimensions
Organisation des Fichiers pour la Performance
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Gestion de Fichiers GF-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Paradigmes des Langages de Programmation
Environnement informatique
Réaliser par : Moh Fakhri Slama
Gestion de Fichiers GF-14: Acces Sequentiel et Indexe aux Fichiers et Arbres B+ Prefixes (Base sur le Chapitre 10 de Folk, Zoellick & Riccardi, File Structures,
Gestion des fichiers et dossiers
Gestion de Fichiers GF-16: Addressage Disperse Extensible (Extendible Hashcoding) (Base sur le Chapitre 12 de Folk, Zoellick & Riccardi, File Structures,
Amélioration de la Performance des Systèmes d’Information de Routine (SISR) et de l’Utilisation de l’Information pour la Gestion des Systèmes de Santé.
Gestion de Fichiers GF-1: Introduction a la Gestion des Fichiers et Operations de Base.
Aide-mémoire Et procédures. Dans une tâche de compétence 1, vous trouverez: Un cahier d’informations Un cahier de trace dans lequel vous écrirez vos calculs.
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: II. Arbres B (Base sur les Sections de.
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Gestion de Fichiers GF-6: Storage Secondaire: CD-ROMs & 2 Questions sur la Gestion des Donnees (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File.
Procédures et fonctions Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Gestion de Fichiers GF-9: Construction d’Indexes (Base sur le Chapitre 7 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Créer des packages.
Exemples complexes Impression à partir d’autres applications (non-windows) On doit imprimer des étiquettes avec des contenus variables automatiquement.
Programmation linéaire en nombres entiers
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Présentation du marché obligataire
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
GF-11: Tri Interne Efficace et Tri Externe
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Structure de stockage et relations
Les fichiers 1ère partie
GF-4: Storage Secondaire: Disques
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Gestion de Fichiers Construction d’Indexes. 2 Plan du cours de la semaine Vue Générale Un indexe pour les fichiers à entrées séquentielles Opérations.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres 4 & 5 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++)

Resume du Cours d’Aujourd’hui Types de Representation pour les champs d’un objet dans un fichier. Types de Representation pour les objets dans un fichier. Lecture et Ecriture d’objets a taille fixe dans un fichier en C++. Acces Sequentiel vs. Acces Direct. Examples en C++.

L’Organisation de Fichiers la plus Simple: Fichiers “Stream” L’organisation de fichiers la plus simple consiste a ecrire l’information qui nous interesse a la suite, dans un fichier, sans separation entre les differents types de donnees presentes. Cette organisation a l’avantage d’etre tres simple a implementer et de ne pas gaspiller de memoire. Cependant, a moins, que toutes les donnees soient des donnees simples, du meme type, et aient exactement la meme taille (pas des donnees tres interessantes!), cette organisation ne permet pas de recuperer les donees du fichier car on ne sait pas ou se trouve le debut et la fin de chaque donnee.

Meilleure Solution: Une Organisation avec Enregistrements et Champs L’unite logique de base dans le traitement des fichiers est le champ qui contient une seule donnee. Les champs sont organises dans des structures d’ensembles: soit dans des structures qui regroupent plusieures copies du meme champ (les tableaux), soit dans des structures qui regroupent des champs differents (les enregistrements). Lorsqu’un enregistrement est sauvegarde en memoire on l’appelle un objet et on appele ses champs, ses membres. Comme nous allons le voir, il y existe beaucoup de moyens pour representer les objets et leurs membres dans des fichiers.

La Structure des Champs Il existe plusieurs moyens d’ajouter de la structure aux fichiers de facon a distinguer les differents champs et maintenir leur identite. On peut: Forcer le champ a maintenir une certaine longueur. Ajouter au debut de chaque champ une indication de sa longueur. Separer les champs avec des separateurs. Utiliser des exressions “mot_cle = valeur” afin d’identifier chaque champ et son contenu.

Les Champs ne suffisent pas: Il faut aussi des Enregistrements Un programme peut facilement lire une suite de champs et imprimer  Bien que cette solution preserve la notion de champs, elle ne distingue pas entre deux objets differents  De plus des champs il est necessaire d’utiliser la notion d’objets Last Name: ‘Ames’ First Name: ‘Mary’ Address: ‘123 Maple’ City: ‘Stillwater’ State:’OK’ Zip Code: ‘74075’ Last Name: ‘Mason’ First Name:’Alan’ Address:’90 Eastgate’ City:’Ada’ Zip Code: ‘74820’

La Structure des Enregistrements Il existe plusieurs moyens d’organiser les enregistrements. On peut: Forcer les enregistrements a avoir une certaine longueur. Forcer les enregistrements a avoir un certain nombre de champs. Ajouter au debut de chaque enregistrement un indicateur de longueur. Utiliser un second fichier permettant de conserver l’addresse de chaque enregistrement. Placer un separateur entre chaque enregistrement.

Acces au Enregistrements: Mots Cles Lorsque l’on est a la recherche d’un enregistrement particulier, il est utile d’identifier cet enregistrement avec un mot cle qui represente le contenu de l’enregistrement (par example l’enregistrement Ames). Les mots cles sont definis de maniere unique et ne doivent pas changer. Il est aussi possible de chercher un enregistrement base sur un mot-cle secondaire. Typiquement, les mots cles secondaires n’identifient pas les enregistrements de maniere unique.

Recherche Sequentielle I Si on suppose que chaque lecture d’enregistrement demande 1 allee au disque (chaque allee prenant beaucoup de temps), la recherche sequentielle d’un fichier avec n enregistrements dedans demande, en moyenne, n/2 allees au disque. La recherche sequentielle, neanmoins, peut etre amelioree si on utilise la notion de blocs: plutot que d’amener un enregistrement par chaque allee au disque, on peut en ramener un nombre b (ou [b * taille d’un enregistrement] represente la taille d’un bloc.

Recherche Sequentielle II Bien que la recherche sequentielle ne soit pas, habituellement, tres pratique, il existe certains cas dans lesquels, il est raisonnable de l’utiliser: Lorsque l’on cherche un motif dans un fichier ASCII (example: grep) Lorsqu’il y a peu d’enregistrements Dans les fichiers qui sont rarement l’objet de recherches. Dans les fichiers dans lesquels vous desirez tous les enregistrements contenant une certaine cle secondaire (et s’il y en a beaucoup)

Acces Direct On a acces direct a un enregistrement s’il est possible de trouver directement le debut de cet enregistrement et de le lire. Avec un acces direct, on n’a besoin que d’un acces au disque, quelle que soit la taille du fichier. Neanmoins, comment sait-on ou se trouve le debut de l’enregistrement qui nous interesse? L’information se trouve dans un index, ou On connait le numero d’enregistrement relatif (NER)

Numero d’Enregistrement Relatif (NER) NERs ne sont pas utiles lorsque l’on travaille avec des enregistrement a longueur variable. Dans ce cas, l’acces doit rester sequentiel. Avec des enregistrements a longueur fixe, les NERs sont utiles car on peut calculer le nombre d’octets a survoler et utiliser les commandes seekg ou seekp. Comme nous l’avons déjà vu, on peut choisir l’un de deux types d’enregistrement a longueur fixe: Les enregistrements a champs de longueur fixe Les enregistrements a separateurs de champs a positions variees.

Enregistrement d’Entete Il est coutumier et utile d’utiliser un enregistrement d’entete (dans le fichier contenant les donnees) qui contient un certain nombre d’information concernant le fichier. De telles informations incluent le nombre d’enregistrements dans le fichier, leur longueur, etc. L’interet d’une telle approache est de liberer le programme de ce type d’information et de rendre le fichier self-suffisant.

Quelques Remarques sur l’Organisation et l’Acces des Fichiers L’Organisation de Fichiers depend de l’usage que l’on veut en faire. Puisque l’utilisation d’un fichier implique son acces, l’organisation et l’acces de fichiers sont intimement lies. Par example: bien que l’utilisation d’enregistrements a longueur fixe rend l’acces direct possible, si les documents ont des longueurs tres variables, les enregistrements a longueur fixe ne sont pas une bonne idee  L’application determine donc notre choix d’acces et d’organisation.