EDDI : [name, price, qnt] are part of the value of ‘apple’
The set of tuple values alone doesn’t define the relation
Are X+Y and Y+X the same relation if they are only compatible wrt domains not wrt attributes?
If YES, there are unpleasant implications ...
Consider the unnatural join: ‘apple * allfruits’
Joining [name, price, qnt] and [name, begin, end] leads to [name_1, price, qnt, name_2, begin, end]
Issue: is name_1 of the same type as name? etc
To implement unnatural join as an algebraic operator would like to ensure e.g. (X*Y)*Z X*(Y*Z), or at very least that the two expressions are union-compatible
Issue: how to process the attribute names?
It’s no longer pure algebra
Implications of loose type checking and unnatural join:
values of algebraic expressions aren’t definable in a context-dependent way e.g. can’t determine how to name attributes without considering other issues, such as the context and the order of evaluation
laws of relational algebra and substitution properties that we expect of pure algebra (e.g. if X=3, then X*2 is the same thing as 3*2 = 6) no longer operate
Practical implications for implementing standard SQL?
A variant of the SQLEDDI environment that supports the translation of a richer subset of standard SQL according to the conventions outlined above can be derived from the basic SQL0 interface by modifying the SQL_to_EDDI translator and setting the evaluation conventions for the EDDI interpreter appropriately. The resulting ‘toysql’ interpreter can be studied by invoking tkeden with the startup configurations Run1.eden / Run4.eden in the ~empublic/projects/sqleddiBeynon2002 directory