Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Can relvars be dissymetrically decomposed? (vadim and x insight demanded on that subject)
Cimode wrote:
> [snip]
> > > [snip]
> > > For instance, if you consider the function F(X) = A(X) and you add
> > > the value B to F(X), you are basically doing a translation making a new
> > > function T(X) = F(X) + B = A(X) + B In this case, the result of adding
> > > B to the function can be expressed (characterized) as a mathematical
> > > translation (jumping from F(X) to T(X)). It says a lot about the
> > > function F(X) behavior and may help describe it better over time.
> >
> > But F isn't changing. You're creating a new function, not changing an
> > existing one. Assuming the expression F(X)+B makes sense, T has the
> Now that's finally getting interesting... If I follow your reasoning
> that would mean that once an INSERT is done, there would be necessarily
> a new relation resulting from the INSERT operation performed?
Well, the INSERT does an assignment after evaluating a relational expression - so doing an INSERT to a relvar R is the same as assigning to R the result of a relational expression involving R's current value.
So the "new relation" you speak of is a new relation value, which is (as the very last step) assigned to variable R.
Note that constraints complicate this - the assignment to R can fail because of database constraint violations. The evaluation of the expression can (unless decent type-checking is used) fail if it's not a valid value of type TYPE(R).
> > > The
> > > challenge of this thread is to do a similar effort on relations. For
> > > instance, an interesting question raised would be: is an INSERT
> > > operation equivalent to a translation in relational perspective?
> I rephrase then : is an INSERT operation equivalent to a translation in
> relational perspective resulting in a new relation?
Any relational expression produces a relation value. If that's what you mean by the "new relation," then yes. If it's an UPDATE/INSERT/DELETE, that value is then assigned to the relvar, so the relvar has a new value - maybe that's what you mean.
> > > Overall, how does a relation R1 *changes* when an INSERT, UPDATE,
> > > DELETE operation is made on it? Characterizing such change would help
> > > describe better relations themselves.
> Are operations in general performed on relations create new relations.?
Expressions (relational or otherwise) evaluate to values, which in the case of relational expressions are relations. "Create new" doesn't have much meaning in that context.