http://www.heig-vd.ch HEIG-VD Route de Cheseaux 1 CH - 1401 Yverdon-les-Bains Interpréteur d'algèbre relationnelle walker se charge de parcourir cet arbre et de générer le code correspondant. Introduction L’apprentissage de l’algèbre relationnelle constitue une étape importante pour tout développeur informatique. Créée par E. F. Codd en 1970, elle se compose de plusieurs opérateurs permettant d’extraire des données présentes dans un model relationnel. L’interpréteur d’algèbre relationnelle servira de support d’exercices aux étudiants du cours de bases de données. Le module de traduction du programme a été réalisé à l’aide du framework ANTLR et de son IDE ANTLRWorks. Ce framework permet de générer des compilateurs depuis un simple fichier de grammaire qui décrit comment doit être formé une phrase issue du langage à traduire. Résumé L’interpréteur permet de vérifier la validité syntaxique d’une requête écrite en algèbre relationnelle et de la traduire en requête SQL. L’application permet également d’exécuter les requêtes SQL générées sur une base de données choisie au préalable par l’utilisateur et d’en afficher le résultat sous forme de tableau. Ce programme, réalisé en Java, apporte ainsi aux étudiants une vision plus pragmatique des notions décrites par l’algèbre relationnelle. Bases de données Traduction L’application permet d’exécuter les requêtes SQL générées sur une base de données choisie au préalable. L’utilisateur a le choix entre plusieurs SGBD, à savoir MySQL, Oracle et PostgreSQL. Interface utilisateur L’interface utilisateur du programme a été réalisée à l’aide de la librairie Java Swing permettant une meilleure compatibilité entre les différents systèmes d’exploitation utilisés par les étudiants. La traduction d’un langage s’effectue en plusieurs étapes. En premier lieu, l’analyseur lexical (ou lexer) se charge de reconnaître les « mots » (tokens) entrés par l’utilisateur. Ensuite, l’analyseur syntaxique (ou parser) vérifie l’enchaînement de ces tokens tout en les réarrangeant sous forme d’arbre. Enfin, le Auteur: Répondant externe: Prof. responsable: Sujet proposé par: Rayot Gaël Fatemi Nastaran IICT HEIG-VD © 2007 - 2008, filière Informatique