Projet personnel de 22 mois

En deuxième année d'I.U.T., nous devions réaliser un projet informatique en équipe de quelques étudiants (pour ce projet, nous étions 7). Nous disposions de 6 mois pour finaliser et présenter notre travail.

A la fin du projet, les fonctionnalités élémentaires ont été identifiées et définies et nous avons présenté un prototype (non finalisé ...).

Pris de passion pour ce projet, j'ai poursuivi ce projet pour le finaliser plus d'un an après.

  • Idées : Élaborer une bibliothèque en langage C offrant une partie significatives des fonctionnalités d'un Système de Gestion de Bases de Données Relationnelles (création et modification de la structure des tables, vérification des intégrités fonctionnelles, interrogation et interfaces simplifiées).
  • Technique : Développement en Borland C avec la norme ANSI pour être compatible avec le GNU C sous Linux.
  • Principes : Tous les champs des tables sont indexés afin d'exploiter la dichotomie et d'éviter la redondance des informations.

Les champs d'une table sont stockés dans 2 fichiers (un fichier d'index et un fichier de données); le fichier d'index contient la position de la valeur dans le fichier de données ainsi que le nombre de fois que cette valeur est pointée dans l'ensemble de la base de données (table et références).

Dans une table et dans un champ, la donnée ne figure qu'une seule fois (il n'y a pas de redondances d'informations). Les contraintes référentielles sont toujours contrôlées. Une contrainte référentielle est l'équivalent d'une référence d'un champ A sur un champ B, c'est à dire, que les fichiers de données et d'index du champ A sont les fichiers de données et d'index du champ B.

Le langage SQL utilisé est limité (SELECT champs FROM Tables [ WHERE conditions ] [ ORDER BY liste ]). Le résultat d'une requête définit un curseur (Déclaration, ouverture, parcours, récupération des données, fermeture) permettant une souplesse d'utilisation indéniable pouvant palier les limites du langage utilisé.

  • Remarques : Mode mono-utilisateur, mono-base. Les fonctions d'ajout, de modification ou de suppression sont disponibles pour tous les objets (TABLES, CHAMPS, SQL, ...).
  • Sources et documentation : Ces informations sont consultables dans la section Projets scolaires et personnels de mon site personnel.

Structure physique de la base de données