Path: utzoo!attcan!uunet!lll-winken!cert!netnews.upenn.edu!grad2.cis.upenn.edu!aaron From: aaron@grad2.cis.upenn.edu (Aaron Watters) Newsgroups: comp.databases Subject: Re: Outerjoin implementation? Message-ID: <30357@netnews.upenn.edu> Date: 1 Oct 90 12:56:06 GMT References: <5803@plains.NoDak.edu> <30203@netnews.upenn.edu> Sender: news@netnews.upenn.edu Reply-To: aaron@grad2.cis.upenn.edu.UUCP (Aaron Watters) Distribution: comp Organization: University of Pennsylvania Lines: 40 In response to my claim that difficulties with nulls show that... >>the relational paradigm is inadequate, NOT that nulls are ``bad.'' In article cimshop!davidm@uunet.UU.NET (David S. Masterson) writes: > >No, it indicates that current relational implementations are not complete, not >that NULLs don't fit the paradigm. ... >This is better known as 3-valued logic which is a part of the relational model >(as is 4-valued logic). Both answers (to both problems) are syntactically >correct, the true answer is determined by the semantics of the problem (which >you touched on at the end). To paraphrase Codd's terminology, is the first >question: > > all people who definitely have an age = 24 > or > all people who MAYBE have an age = 24 ? > First, why do you say these are not different aspects to the correct answer to a single query? Imagine, if you will, that I pose a very complex query built up from complex views whose definitions I do not know. Suppose I want to know those tuples known to satisfy the query and those not-known to not-satisfy the query. Do I have to pose two queries? Do each of the views I use have to be defined twice, once for definiteness and once for maybeness? Why? Roughly, I would argue that it's okay if the system allows the user to ask for maybes and definites, but if s/he doesn't specify s/he should get both. Second, note that according to the `semantic completeness' metric no reasonable database system will fill the bill -- because the problem is NP-complete for a fixed query and varying data. (Teaser.) I disagree that the `relational paradigm' includes `three valued logic' any more sensibly than Pascal `includes Prolog.' (IE, you can certainly implement one in the other, but that's beside the point.) -aaron.