Le projet du Mini Système de Gestion de Base de Données (SGBD) développé en Java vise à fournir une implémentation simplifiée mais fonctionnelle des principaux composants d'un SGBD, offrant des fonctionnalités de gestion du stockage, des tampons mémoire et des commandes SQL de base.
L'objectif principal de ce SGBD est d'offrir une base solide pour comprendre les concepts fondamentaux de la gestion de base de données. Il comprend des composants tels que le gestionnaire de tampon, le gestionnaire de disque, le gestionnaire de fichiers et des commandes SQL essentielles.
- Commande CREATE TABLE : La commande
CREATE TABLEpermet la création de nouvelles tables dans la base de données. - Commande RESETDB : La commande
RESETDBréinitialise la base de données, supprimant toutes les données existantes et rétablissant un état initial. - Commande INSERT : La commande
INSERTpermet l'ajout de données dans une table existante. - Commande SELECT : La commande
SELECTrécupère des données d'une table en fonction de certaines conditions. - Commande IMPORT : La commande
IMPORTpermet l'insertion de données en masse dans une table (insertion par lot). - Commande DELETE : La commande
DELETEsupprime des enregistrements d'une table en fonction de certaines conditions. - Commande Jointure : La commande de jointure permet de combiner les données de deux tables en fonction de certaines conditions.
Pour installer et exécuter le SGBD suivez les étapes ci-dessous :
- Git : Le système de contrôle de version Git est utilisé pour cloner le dépôt. Vous pouvez installer Git à partir de git-scm.com.
- Python : Si vous souhaitez utiliser le script Python, assurez-vous d'avoir Python installé. Vous pouvez télécharger Python sur python.org.
Clonez le dépôt GitHub du projet en utilisant la commande suivante dans votre terminal :
git clone https://github.com/jbhochet/Projet_BDDA.gitPour exécuter le projet, utilisez le script Python pour compiler et exécuter le programme (sur tous les systèmes d'exploitation) :
python manager.py ./DB
Voici comment utiliser les commandes dans le Mini SGBD. Assurez-vous de suivre le format général spécifié pour chaque type de commande.
CREATE TABLE NomRelation (NomCol_1:TypeCol_1, NomCol_2:TypeCol_2, ..., NomCol_NbCol:TypeCol_NbCol)'RESETDBINSERT INTO nomRelation VALUES (val1, val2, ..., valn)SELECT * FROM nomRelation WHERE condition1 AND condition2 AND ... AND conditionNIMPORT INTO nomRelation nomFichier.csvDELETE FROM nomRelation WHERE condition1 AND condition2 AND ... AND conditionNSELECT * FROM nomRel1, nomRel2 WHERE condition1 AND condition2 AND ... AND conditionNLe projet est organisé en plusieurs répertoires et fichiers :
Note : manager.py contient le script Python pour la compilation et l'exécution.
src : Code source du projet
| Répertoire | Description |
|---|---|
| main | Contient les classes principales du projet |
| test | Contient les tests pour évaluer les différentes classes |
main : Classes principales du projet
| Fichier | Description |
|---|---|
| BufferManager.java | Gestion du tampon mémoire |
| ColInfo.java | Information sur les colonnes d'une table |
| ConditionUtil.java | Utilitaire pour évaluer les conditions |
| CreateTableCommand.java | Commande de création de table |
| DBParams.java | Paramètres de la base de données |
| DataType.java | Types de données pris en charge |
| DatabaseInfo.java | Informations sur la base de données |
| DatabaseManager.java | Gestionnaire de base de données |
| DeleteCommand.java | Commande de suppression d'enregistrements |
| DiskManager.java | Gestion du disque |
| FileManager.java | Gestionnaire de fichiers |
| Frame.java | Représentation d'une page dans le tampon mémoire |
| ICommand.java | Interface pour les commandes |
| ImportCommand.java | Commande d'importation de données |
| InsertIntoCommand.java | Commande d'insertion de données |
| Main.java | Classe principale avec la fonction main |
| PageId.java | Identifiant de page |
| Record.java | Représentation d'un enregistrement |
| RecordId.java | Identifiant d'enregistrement |
| RecordIterator.java | Itérateur sur les enregistrements |
| ResetDBCommand.java | Commande de réinitialisation de la base de données |
| SelectCommand.java | Commande de sélection de données |
| TableInfo.java | Informations sur une table |
test : Tests pour évaluer les différentes classes
| Fichier | Description |
|---|---|
| TestBufferManager.java | Test pour évaluer le fonctionnement du gestionnaire de tampon mémoire |
| TestDatabaseInfo.java | Test pour évaluer le fonctionnement des informations de base de données |
| TestDiskManager.java | Test pour évaluer le fonctionnement du gestionnaire de disque |
| TestFileManager.java | Test pour évaluer le fonctionnement du gestionnaire de fichiers |
| TestRecord.java | Test pour évaluer le fonctionnement des enregistrements |
Projet_BDDA (Mini SGBD) est sous licence MIT.