Logo Grupo SID Logo Grupo SID Logo Observer Logo Observer

OBSERVER


Mapping Information Grammar


      <concept-mapping> ::= <basic-concept-mapping >
                          | <basic-concept-mapping> <concept-mapping>

      <basic-concept-mapping> ::= <relation> [<list-of-attr>] [<list-of-types>]

      <role-mapping> ::= <basic-role-mapping >
                       | <basic-role-mapping> <role-mapping>

      <basic-role-mapping> ::= <relation> [<list-of-attr>] [<list-of-types>]
                                          [<list-of-attr>] [<list-of-types>]  trans-function

      <relation> ::= entity-name 
                   | [ projection <relation> [<list-ofattr>] ]
                   | [ selection <relation> <condition> ]
                   | [ aggr-function <relation> <list-of-attr> [<aggr-function> <list-of-attr> ] ]
                   | [ join <relation> <relation> <join-condition> ]
                   | [ union <relation> <relation> ]
                   | [ intersection <relation> <relation> ]
                   | [ difference <relation> <relation> ]
                   | [ division <relation> <relation> ]

      <list-of-attr> ::= [ attr-name
                       | attr-name [<list-of-attr>] ]

      <condition> ::= [ not <condition> ]
                    | [ and <condition> <condition> ]
                    | [ or <condition> <condition> ]
                    | [ is-null attr_name ]
                    | [ > <term> <term> ]
                    | [ < <term> <term> ]
                    | [ => <term> <term> ]
                    | [ <= <term> <term> ]
                    | [ = <term> <term> ]
                    | [ <> <term> <term> ]
      
      <term> ::= attr_name 
               | constant 

      <join-condition> ::= [ and <join-condition> <join-condition> ]
                         | [ < attr_name attr_name ]
                         | [ > attr_name attr_name ]
                         | [ => attr_name attr_name ]
                         | [ <= attr_name attr_name ]
                         | [ = attr_name attr_name ]
                         | [ <> attr_name attr_name ]
      
      <aggr_function> ::= count 
                        | avg 
                        | sum 
                        | max 
                        | min 

      <list-of-types> ::= [ type-name
                        | type-name [<list-of-types>] ]