# Re: Extending my question. Was: The relational model and relationalalgebra - why did SQL become the industry standard?

Date: Thu, 13 Feb 2003 18:21:30 -0500

Message-ID: <b2h96p$ma2$1_at_slb9.atl.mindspring.net>

Mikito,

It's pointless to talk about the limit of a set S without setting forth some context. If you are talking about sets, the limit of {0,x} as the real number x goes to zero is {0}. Why is the change of cardinality "nasty"? There is no mathematical reason to think that the cardinality function must be continuous.

You could, if you chose, define the limit of a multiset, and you would
have a different discussion. If you defined things in the most natural way,
the limit of {0,x} as x goes to zero would be {0,0}. Discussing continutity
is pointless without context. If f is a function from the collection of
multisets

of reals to the collection of multisets of reals, then you need a topology
on multisets of reals to be able to discuss continuity (relative to that
topology). Without thinking it all through, I suspect a good topology
is the

smallest one containing all open intervals (a,b) (these being sub_sets_ of
reals.

To make the limit {0} make sense for multisets, you'd need every open set
around {0} to contain {e, e} for some e <> 0, and probably for it to
contain {e,e,e,e,...} as well. Maybe it has nice properties, too. But
the {0}

limit is exactly the correct one for sets, of course, under the usual
topology

on the real numbers. Change of cardinality on projection is nothing at all
difficult. Project a line onto a plane in the direction of the line,
and you've

gone from an uncountable set to a finite one. Not changing cardinality is
more trouble.

Be careful not to make claims about good and bad properties of operations
on multisets (or sets) without specifying the context in which you are
making

these statements.

Steve Kass

Drew University

>Suppose we have a set {0,1}. Let's move the "second" set member a little

*>bit: {0,1/2}. So far so good, the set still has 2 elements. Let's move it
**>one more time: {0,1/4}. We still have set cardinality 2. In the limit,
**>however, we have the set with only one element {0}. This change of
**>cardinality is very nasty from math perspective, because it presents a break
**>of continuity. This is why matematians would consider the limit to be
**>multiset {0,0} rather than just a set {0}. Mathematical definitions do
**>contain multiset concept explicitly within their definitions, for example,
**>"a spectrum is a *multiset* of eigenvalues". Break of continuity manifests
**>itself in relational theory as a change of row set cardinaly after
**>projection is applied. On the contrary, in multiset model, projection
**>doesn't change number of rows. (Selection -- being dual to projection --
**>doesn't change number of columns in both set and bag models).
**>
**>In short, logic and set theory together are only a tiny part of mathematics.
**>Don't evangelize them.
**>
**>"Lauri Pietarinen" <lauri.pietarinen_at_atbusiness.com> wrote in message
**>news:3E4B9E59.4080207_at_atbusiness.com...
**>
**>
**>>>Well, I think that even for end results duplicates can be useful.
**>>>It is the difference between the set theory and query results in
**>>>
**>>>
**>practice.
**>
**>
**>>>For instance: a set doesn't have an order but it would be impossible to
**>>>
**>>>
**>present
**>
**>
**>>>results to a user of our database if we cannot order the end result.
**>>>
**>>>
**>>>
**>>I agree that ordering is needed to present data and that a "set" such
**>>ordered rows are not
**>>relations anymore.
**>>
**>>
**>>
**>>>To give an example of the use of duplicates:
**>>>Suupose we have a table that holds text (letters for instance).
**>>>We would probably have a line number field and a text field.
**>>>To improve readability we will have several occurrences of blank lines.
**>>>If we then select the text column ordered by the line number, we will
**>>>
**>>>
**>have
**>
**>
**>>>(meaningful) duplicates in the end result.
**>>>
**>>>
**>>>
**>>However, you would include the line number column to get the rows
**>>in the correct order. You would just disregard the column in your program
**>>or report generator.
**>>
**>>So the end result of the query would _not_ have duplicates!
**>>
**>>regards,
**>>Lauri Pietarinen
**>>
**>>
**>>
**>
**>
**>
**>
*

Received on Fri Feb 14 2003 - 00:21:30 CET