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 TABLE
permet la création de nouvelles tables dans la base de données. - Commande RESETDB : La commande
RESETDB
réinitialise la base de données, supprimant toutes les données existantes et rétablissant un état initial. - Commande INSERT : La commande
INSERT
permet l'ajout de données dans une table existante. - Commande SELECT : La commande
SELECT
récupère des données d'une table en fonction de certaines conditions. - Commande IMPORT : La commande
IMPORT
permet l'insertion de données en masse dans une table (insertion par lot). - Commande DELETE : La commande
DELETE
supprime 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.git
Pour 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)'
RESETDB
INSERT INTO nomRelation VALUES (val1, val2, ..., valn)
SELECT * FROM nomRelation WHERE condition1 AND condition2 AND ... AND conditionN
IMPORT INTO nomRelation nomFichier.csv
DELETE FROM nomRelation WHERE condition1 AND condition2 AND ... AND conditionN
SELECT * FROM nomRel1, nomRel2 WHERE condition1 AND condition2 AND ... AND conditionN
Le 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.