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 :

Mini SGBDR en C


Sujet :

C

  1. #1
    Membre confirmé Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Par défaut Mini SGBDR en C
    Salut à tout le monde!

    Notre prof de BD nous a soumis un projet. Il s'agit de developper en C un mini SGBDR avec possibilité de faire select,delete,insert. Le fichier de stockage est un fichier à accès direct et constitué de pages de 50Ko. Chaque page contient plusieurs nuplets et un entête, l'entête contient autant de bit que de nuplet qu'une page peut contenir. A travers l'entête on peut savoir s'il y a une place libre dans la page pour inserer un nuplet.

    Supposons que j'ai des nuplets de 10 Ko et des pages de 50 Ko donc on aura 5 nuplets par page, l'entête aura 5 bits.

    Comment faire en C des pages de 50 Ko? Comment ecrire en C un nuplet dans une page? comment manipuler l'entête? Comment faire un fichier à accès direct en C?

    Tout explication,source,liens,suggestions serait bienvenu.

    Merci de m'aider.

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Grossièrement, une base de données c'est un ensemble de tables. Une table regroupe des enregistrements. On peut donc faire une table avec un tableau de structures (une structure = un enregistrement). Mais les tableaux montrent peu de souplesse devant les opérations d'ajout (insertion) et de suppression c'est pourquoi on préfèrera à leur place les listes chaînées. Si on se résume à une base de données constituée uniquement d'une table, au démarrage, le programme charge la liste (initialement vide ...) depuis un fichier. Il laisse ensuite l'utilisateur faire des modifications comme ajout, suppression, ou modification d'un enregistrement (ainsi que des opérations comme vider la liste, etc.). On fait donc le modifications sur la liste (donc en mémoire), pas directement dans le fichier. Lorsque l'utilisateur sauvegarde, c'est à ce moment seulement qu'on met à jour le fichier.

    Tu peux trouver une source de liste chaînée ici mais si tu trouves l'utilisation des listes trop compliquée et que t'es pas trop maniac de performances, tu peux toujours te contenter d'un simple tableau.

    Tu en as peut-être aussi besoin : [Tutoriel] Les fichiers.

    Quant à l'organisation de ton fichier (pages, en-têtes et tout ça), c'est à toi de faire comme bon te semble.

Discussions similaires

  1. Optimisation de votre SGBDR et de vos requêtes...
    Par SQLpro dans le forum Langage SQL
    Réponses: 35
    Dernier message: 11/01/2013, 11h49
  2. [Débutant] SGBDR gratuites pour .NET?
    Par P@t dans le forum Débuter
    Réponses: 2
    Dernier message: 29/06/2004, 19h22
  3. choix sgbdr (encore!)
    Par _Gabriel_ dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 23/03/2004, 10h39
  4. Alimentation d'un SGBDR depuis un autre SGBR
    Par samyl dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 17/09/2003, 15h57
  5. LES TECHNIQUES DES SGBDR / MySQL rapide ???
    Par SQLpro dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2003, 11h16

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