http://www.heig-vd.ch
HEIG-VD
Route de Cheseaux 1
CH - 1401 Yverdon-les-Bains
Auteur:
Répondant externe:
Prof. responsable:
Sujet proposé par:
Rayot Gaël
Fatemi Nastaran
IICT
HEIG-VD © 2007 - 2008, filière Informatique
Interpréteur d'algèbre relationnelle
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.
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.
Traduction
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
walker se charge de parcourir cet arbre et de
générer le code correspondant.
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.
Bases de données
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.
1 / 1 100%