IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Fichier table d'indexe


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut Fichier table d'indexe
    Bonjour ,

    J'ai lu une série de sujet à propos des fichiers , autre l'accès séquentiel , l'accès direct ou séquentiel-indexé.
    J'ai aussi vu qu'il existait une technique ( ou des ) pour les fichiers comme la création d'une table d'indexe mais je ne vois pas de quoi il s'agit et je trouve peu d'information.

    Si quelqu'un pourrait m'expliquer ou me donner des exemples de cas ou on fait appèle à ça.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Une table d'indexes (sous la forme d'un fichier supplémentaire OU intégrée au début du fichier que tu traites) te permet de connaître la position des enregistrements dans le fichier.

    Je prends l'exemple d'un bête fichier texte.

    Pour lire la n-ième ligne, tu n'as pas d'autre choix que de lire les n-1 premières (car les lignes sont à priori de longueur variable) et de lire, enfin, la ligne que tu veux. Si tu avais un moyen de savoir que la n-ième ligne se situe à tel ou tel offset, tu pourrais te positionner directement à cet endroit (un fseek bien senti) et ne lire que ce que tu veux.

    Une table d'indexes associée pourrait être créée en même temps que le fichier et mémoriser l'offset de chaque début de ligne.

    ligne 1 : offset 0
    ligne 2 : offset 53
    ligne 3 : offset 55
    etc ...

    Le premier exemple qui me vient à l'esprit, pour un format "assez" répandu, est le format shapefile. Ces fichiers contiennent des objets géographiques (points,arcs,polygones,etc...). Chaque objet (hormis les points) a plus ou moins de points/coordonnées et les enregistrements sont de taille variable. Tu as 2 fichiers d'extensions différentes (.shp et .shx). Le premier contient tes objets. Le second donne, pour chacun des objets, l'offset du début de l'enregistrement correspondant dans le premier fichier.

    Pour ce format, tu dois donc gérer 2 fichiers ce qui peut parfois être un peu pénible. Tu dois, notamment, toujours "trimballer" tes fichiers ensemble (copie, déplacement, ...).

    Dans bien d'autres cas, les fichiers peuvent contenir, au début, dans l'entête, ce type d'information afin d'exploiter les données/enregistrements écrits plus loin.

    Là, l'inconvénient est que, quand tu ajoutes des enregistrements, la table d'indexes grossit et comme elle est placée en début de fichier, tu es plus ou moins obligé de "tout" réécrire (décaler). Si la table d'indexes est dans un fichier à part, tu ajoutes les enregistrements ET les nouveaux indexes en ouvrant tes 2 fichiers en mode append.

Discussions similaires

  1. Où sont fichiers (tables) de Mysql ?
    Par __fabrice dans le forum Administration
    Réponses: 5
    Dernier message: 17/02/2005, 11h18
  2. [Oracle / Admin] - Deplacer de repertoire les fichiers table
    Par shaun_the_sheep dans le forum Administration
    Réponses: 4
    Dernier message: 03/11/2004, 10h20
  3. Tables paraodox ("Index out date") et controle sa
    Par belaid52 dans le forum Bases de données
    Réponses: 4
    Dernier message: 03/07/2004, 11h29
  4. SQL 2000 - Liste + taille des tables et index
    Par Fox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2004, 15h59
  5. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo