| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: On view updating
mAsterdam <mAsterdam_at_vrijdag.org> wrote in message news:<41540767$0$568$e4fe514c_at_news.xs4all.nl>...
> > Reference (pointer) types don't exist in relational databases.
>
> Forgetting this (by DBMS vendors even) has led to many problems.
> Remember the pointer/FK "discussion" a while ago?
Indeed, but this is a very basic principle.
> Both that deceptively simple looking overloading of the
> 'type'-concept, and (D&D's) in some ways similar attempts
> to reduce 'object' to 'type' lead to many vocabulary based,
> camp generating non-problems.
I don't understand this.
> > Non sequitur. Of course views are not a syntactic shorthand.
>
> What if they are syntactic shorthands - as long as it is clearly
> defined what they are shorthands for, I don't see a problem?
They are intended to be shorthands for expressions, but they are not syntactic shorthands because they are database objects. Views exist in the database catalog.
For instance:
Database A:
var r relation{ a integer } key { a };
var v view r where a > 10;
delete v;
Database B:
var r relation{ a integer } key { a };
delete r where a > 10;
Database A has two defined variables while Database B has one. Both databases are different.
Both groups of statements have different semantics therefore a view is not a syntactic shorthand.
A syntactic shorthand is something like this:
a++;
This is a syntactic shorthand for:
a = a + 1;
Both statements have identical semantics.
BTW here it is clear that we can delete from a relational expression: (r where a > 10), so relational expressions are nameless variables, and we can update relational expressions without using views.
A view is an expression and a variable at the same time.
This could be a legal syntax in a relational language:
delete a union b;
or
var r relation { a integer }
key { a }
foreign key { a } references a union b;
Regards Received on Fri Sep 24 2004 - 19:06:13 CDT
![]() |
![]() |