Grammaire
Fixés :
<fonctionCalculatoire>::= moyenne | somme | min | max
<opBooleen> ::= ET | OU
<operateurBinaire>::= union | difference | intersection | produit | division
Génériques :
- Terminaux :
<chiffre> ::= [ 0-9 ]
<caractère> ::= [ a-z ] | [ A-Z ]
<comparateur> :: = | < | > | = | # | <= | >=
<signe>::= | - |Epsilon- Non terminaux :
<decimal> ::= , <chiffre><suiteChiffre> | Epsilon
<suiteChiffre>::=<chiffre><suiteChiffre> | Epsilon
<nombre> ::= <signe><suiteChiffre><decimal>
<variable> ::= <caractere><suiteVar>
<suiteVar>::= <alphanum><suiteVar> | Epsilon
<alphanum>::= <caractere> | <chiffre>
<attribut>::= <variable>
<alias>::= <variable>
<demandeGenerale>::=
|
<demande> | <demandeGestion> |
<demandeGestion>::=
|
reinitialisationTotale // on efface toutes les relations temporaires créées et la base de travail | reinitialisationPartielle // on efface toutes les relations temporaires créées mais on garde la base de travail | baseDeTravail(<base>) // on indique aux autres groupes la base de travail choisie |stop // on indique aux autres groupes qu'ils doivent arrêter leur processus |demanderSchema(<relationDeBase>) // permet à un groupe de demander le schéma d'une relation de base (SQL)` |schemaRelation(<listeAttributs>) // permet de renvoyer à un groupe le schéma d'une relation
|
<demande>::= |
<agregat> | <relation> |
<relation> ::= | <relationAlgebrique> |<relationDeBase> |
<agregat> ::= | fonctionCalculatoire ( <relation> , <attribut> ) | comptage ( <relation>,<listeAttributs> ) |
<relationAlgebrique>::= | <operateurBinaire>(<relation>,<relation>) | selection(<relation>,<listeCritere>) | projection(<relation>,<listeAttributs>) | projectionSansEliminationDouble(<relation>,<listeAttributs>) | jointure (<relation> <alias>,<relation> <alias>,<listeCritereJointure>) |
<listeCritereJointure>::= | <critereJointure><suiteListeJointure> | ( <ListeCritereJointure> ) <suiteListeJointure> |
<suiteListeJointure>::= | <opBooleen><listeCritereJointure> | Epsilon |
<listeCritere>::= | <critere><suiteListe> | ( <ListeCritere> ) <suiteListe> |
<suiteListe>::= | <opBooleen><listeCritere> | Epsilon |
<listeAttributs>::= | <attribut><suiteAttribut> |
<suiteAttribut>::= | ,<listeAttribut> | Epsilon |
<critereJointure>::= | <alias>.<attribut><comparateur> <alias>.<attribut> |
<critere>::= | <attribut><comparateur><comparant> |
<comparant>::= |
|
<relationDeBase>::=
|
<variable>
|