dbTalk Databases Forums  

teaching relational basics to people, questions

comp.databases.theory comp.databases.theory


Discuss teaching relational basics to people, questions in the comp.databases.theory forum.



Reply
 
Thread Tools Display Modes
  #51  
Old   
Jan Hidders
 
Posts: n/a

Default Re: teaching relational basics to people, questions - 12-18-2009 , 03:23 AM






On 16 nov, 20:42, Sampo Syreeni <de... (AT) iki (DOT) fi> wrote:
Quote:
Right now it is to be expected that I will be spreading the good
relational word among my peers, in the near future. That is an
opportunity one doesn't want to fuck up; many enough have gone down
that road already. So I've been going over, and over, and over the
basics. Don't want them to be able to catch me off guard with the
minutiae, after all...

So now I bump into my first real surprise, and the chills immediately
go down my spine. That's Date et al.'s answer regarding the
implications between 6NF and DK/NF, athttp://www.dbdebunk.com/page/page/621935.htm
. In there they flat out state that DK/NF doesn't imply 6NF.

So, my first question is, can this really be true? I mean, this seems
highly suspect to me: since 6NF is a normal form like any other and is
as such defined by the constraints it upholds by design, and on the
other hand DK/NF is by definition a normal form where any constraint
whatsoever follows from the domain and key ones, shouldn't it be self-
evident that DK/NF logically implies 6NF, and in fact any other form?
Can I ask whether your question has been answered yet? I'm a bit
puzzled by it because this is basically a mathematical theorem and as
such the answer to it lies in understanding the math. But in your
additional text you seem to question more the philosophical /
intuitive foundations of these notions. Is that correct? And what is
exactly your problem with that? FWIW I'd certainly agree that the
justification of 6NF is suspect and weak, maybe even based on
misunderstanding the relational model, and it is certainly not widely
accepted.

Please be brief. ;-)

-- Jan Hidders

Reply With Quote
  #52  
Old   
vldm10
 
Posts: n/a

Default Re: teaching relational basics to people, questions - 12-21-2009 , 03:24 PM






On Dec 15, 1:37*pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote:
Quote:
"paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message

news:O_aVm.55874$Db2.49482 (AT) edtnps83 (DOT) ..





Mr. Scott wrote:
"paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message
newsASUm.55772$Db2.7870 (AT) edtnps83 (DOT) ..
Mr. Scott wrote:
...
In a typical table,

CTRS {COURSE, TEACHER, ROOM, STUDENT},

each row states that a particular COURSE is taught by a particular
TEACHER
in a particular ROOM to a particular STUDENT.

Now, while it can be argued that there can't be a course without a
teacher,
or that there can't be a course without a student, or that there can't
be a
student without a teacher, the room exists independent of whether there
is a
course, or a teacher or a student. *It therefore follows that locating
the
fact that 'there is a room <ROOM>' only in table CTRS is a problem
because
then there could only be a room whenever there is at least one course
and at
least one teacher and at least one student. *When one inserts a row
into an
empty CTRS, one effectively asserts

* * ...
* * that 'there is a room <ROOM>,' ...
This presumes that the predicate for a table R { ROOM } is the same as
the predicate of CTRS { ROOM } but from the dbms perspective it's patent
they can't be, since R and CTRS don't even have the same heading. *If
CTRS is not base, maybe you can say such but if it is base, one can only
assert that there exists some teacher, student and course such that room
ROOM> is involved.

There is no table R. *The only place in the database to record assertions
that there is a particular room is in CTRS, but one cannot assert that
there is a particular room without also asserting that there is a
particular teacher, that there is a particular student, and that said
teacher is teaching a particular course to said student in that room.

If you disagree that all of these assertions are a consequence of
inserting a single row, then how is it that there can be an answer to
the query, "is course <COURSE> held in room <ROOM>?" *Unless thereis
the possibility that 'course <COURSE> is held in room <ROOM>,' there
can be no answer (at least not a yes or a no) to the query.
...
If CTRS is base, that question is strictly not answerable.

Yes, it is answerable. *The fact that a particular teacher is teaching a
particular student a particular course in a particular room implies the
fact that that particular course is held in that particular room.

I suspect that the man in the street might think such a query is
possible (not to mention many db designers) but to be precise I think
it's important to distinguish what is from what could be, otherwise we
lapse into mysticism. *A query that is answerable from CTRS is "are
there some teachers and students such that course <COURSE> and room
ROOM> are involved?".

I think you're assuming that it is possible for there to be courses in
rooms even if there aren't any students or teachers, but that hasn't been
established, and in fact since there is no place in the database for such
assertions, there cannot be courses in rooms without students or
teachers. The queries that are answerable are therefore not limited to
just those that involve all four attributes.

If there were a place in the database for such assertions, such as a
table

CR {COURSE,ROOM}

Then what is in the database would consist of the logical sum of all
courses in rooms without students or teachers and all courses in rooms
with students and teachers. *The query "Is course <COURSE> held in room
ROOM>?" would involve both CR and CTRS, unless there is an inclusion
dependency from CTRS[COURSE,ROOM] to CR[COURSE,ROOM], in which case the
query could be answered without involving CTRS.

Just because SQL and the like might not be expressive enough to prevent
the query doesn't mean the most basic condition, ie., the definition of
CTRS, can be ignored. *A language that might reflect this might have two
sets of operands for projection instead of one.

(I also realize that the usual explanations of projection operators
don't make this clear. *Not that table/relvar names carry any
significance other than as a device to segregate rows/tuples according
to predicate but it might be more suggestive of the actual situation if
the name of CTRS were changed to 'EXPELLED'.)

Table names are significant. *There can be more than one table with the
same set of columns. *The closest logical analog to a table name is a
predicate symbol. *Predicate symbols are significant.

P(X) may be true for a given X even if Q(X) is false for the same X.

Perhaps the most remarkably bald of these assertions is that a 'particular
ROOM' has 'independent' 'existence' when a 'particular' STUDENT or TEACHER
or COURSE doesn't. *I've never even liked the word 'exists'... 'forall' is
okay but 'is present' would help keep one's eye on the ball. *To avoid the
chronic mystical persuasion, basically all we really need to be concerned
with is the presence of symbols.

The idea that symbols can be 'present' is very strange. *For each tablein a
database there is a collection of assertions that can be represented by a
row in the table. *Some of those assertions may be true, and some may be
false, but the symbols from which those assertions are composed are always
'present' regardless of whether the assertions are true or not. *They are
part of the language. *The non-logical symbols of a typical first-order
language consists of a set of predicate symbols of various arities, a setof
function symbols of various arities, and a set of variable names. *Arbitrary
propositions are 0-ary predicate symbols. *Constants are 0-ary function
symbols. *The idea that those sets of symbols can somehow change undermines
the basis of the logic. *Moreover, the unique name assumption demands that
everything that has a name has one and only one name for all time, but if
the pool of names can change, then there's no longer any guarantee that the
name of something won't be different at some future time.

I think you're continual reference to mysticism is misplaced. *Ignorance may
be bliss, but it has no place in database theory. *It is a mistake to
deliberately ignore the fact that since databases can change, the
propositions represented by the rows that can be in the database must
concern concrete rather than abstract objects, since abstract objects are
independent of time. *Propositions that concern abstract objects are either
necessarily true or necessarily false, so they have no place in a
time-varying relation. *Think:

P -> (~#~P /\ ~#P): P implies possibly P but not necessarily P.

Every proposition that can be represented by a row in the database has to
have a similar form. *If the contents of a table can change, then the
propositions that can be represented by a row in the table must be possible
but not necessary, and the only way they can be possible but not necessary
is if they concern concrete rather than abstract objects.

Probably the most important property of concrete objects is that they have
lifetimes. *They can come into existence and they can cease to exist. *This
is not mysticism: it is a logical consequence of the fact that the contents
of a table can change. *But I understand your dislike of 'exists' as a
quantifier. *I prefer to use 'there is' instead of 'there exists,' not
because there is something mystical about actual existence, but because a
fixed domain is easier to work with, especially for temporal data. *A fixed
domain includes everything that ever was, everything that actually is, and
everything that can ever be. *When the domain is fixed, the collection of
assertions that can be represented in the database is also fixed, so the
determination of which are represented at a given time is as simple as
assigning a truth value to each. *There is no need to extend every time
there is an update. *For example, suppose that someone tries to insert a row
for part '123455,' but there actually is no part '123455.' *The row is
inconsistent with the database because there is no part '123455' in the
domain of parts, so there wouldn't be any propositions in the extension that
concern part '123455,' but what if someone at some later time defines a part
'123455?' *At that time the row would be consistent because the part
'123455' would be in the domain of parts. *How would the information that
'123455' is in the domain of parts be maintained so that consistency can be
ensured? *Domains are not tables. *One can't insert values into a domain
without altering the database scheme. *However, with a fixed domain, itis
always the case that '123455' can be a part, and the fact that '123455'
actually is a part would have to be recorded in a table somewhere in the
database. *It is also a simple matter with a fixed domain to represent
something in the database that no longer actually exists or something that
may occur in the future.- Hide quoted text -

- Show quoted text -

I would appreciate it if you could give a definition of abstract and
concrete objects. Any definition, or rough description of abstract
objects can clarify these important things in your message which was
interesting.
As far as I know the following questions don’t have good answers:
What abstract objects are; how we know that they exist?
What is the distinction between concrete and abstract objects – what
is the criterion of distinction?

The notation of objects is also questionable. As far as I know this
notation was first introduced by G. Frege.

If you use the terms abstract and concrete objects in the context of a
certain theory it might be interesting to know which framework you
used. I get the impression that these themes are becoming very
important in modern mathematics and some other sciences.

Vladimir Odrljin

Reply With Quote
  #53  
Old   
Mr. Scott
 
Posts: n/a

Default Re: teaching relational basics to people, questions - 12-22-2009 , 08:59 AM



"vldm10" <vldm10 (AT) yahoo (DOT) com> wrote


<snip>

Quote:
I would appreciate it if you could give a definition of abstract and
concrete objects. Any definition, or rough description of abstract
objects can clarify these important things in your message which was
interesting.

As far as I know the following questions don’t have good answers:
What abstract objects are; how we know that they exist?

What is the distinction between concrete and abstract objects – what
is the criterion of distinction?
Time is the criterion. Abstract objects are independent of time. Concrete
objects aren't. Concrete objects can come into existence or can cease to
exist. Abstract objects just are. The integer three just is.

Quote:
The notation of objects is also questionable. As far as I know this
notation was first introduced by G. Frege.

If you use the terms abstract and concrete objects in the context of a
certain theory it might be interesting to know which framework you
used. I get the impression that these themes are becoming very
important in modern mathematics and some other sciences.

Vladimir Odrljin

Reply With Quote
  #54  
Old   
vldm10
 
Posts: n/a

Default Re: teaching relational basics to people, questions - 12-25-2009 , 09:09 PM



On Dec 22, 12:13*am, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:


Quote:
Whether you can call it a normal form or not is of course largely a
matter of definition, but it clearly is different from the other ones.
It does for example not remove redundancy or update anomalies, which
was pretty much the whole point of the other normal forms.

-- Jan Hidders- Hide quoted text -


Hello Jan. As I told you a few years ago, my “simple form” is the way
in which db design should be done. Now you can see it as part of a
“bigger picture” at
http:// www.dbdesign11.com

Vladimir Odrljin

Reply With Quote
  #55  
Old   
vldm10
 
Posts: n/a

Default Re: teaching relational basics to people, questions - 12-27-2009 , 05:41 AM



On Dec 26, 3:09*am, vldm10 <vld... (AT) yahoo (DOT) com> wrote:
Quote:
On Dec 22, 12:13*am, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:

Whether you can call it a normal form or not is of course largely a
matter of definition, but it clearly is different from the other ones.
It does for example not remove redundancy or update anomalies, which
was pretty much the whole point of the other normal forms.

-- Jan Hidders- Hide quoted text -

Hello Jan. As I told you a few years ago, my “simple form” is the way
in which db design should be done. Now you can see it as part of a
“bigger picture” at
http://www.dbdesign11.com

Vladimir Odrljin
Sorry, the address is
http://www.dbdesign11.com

Reply With Quote
  #56  
Old   
vldm10
 
Posts: n/a

Default Re: teaching relational basics to people, questions - 12-27-2009 , 09:36 AM



On Dec 22, 2:59*pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote:


Quote:
Time is the criterion. *Abstract objects are independent of time. *
This statement may imply strong consequences, but it seems to be
correct.

Quote:
Concrete objects aren't. *Concrete objects can come into existence or can cease to
exist. *Abstract objects just are. *The integer three just is.
In fact, here we have the following three abstract objects:
1. integer;
2. the particular number 3;
3. a triad, for example three cars.

For G. Frege “3” in “3 + 5 = 8” is a name. Or “three” in “There are
three cars on the street” is a name.
Frege’s notation of an object is characterized as the kind of thing
which can be the referent of a name. So a number is an object.
Also there are the different kinds of abstract objects regarding
universal and existential quantification (for example numbers and
relations).
As far as I know Frege’s model is the only general model or framework
for abstract objects.

There are some other views. “Some say that what is true or false is
not the sentence, but the meaning or thought expressed by the
sentence.”

There is group of mathematicians and philosophers named “Platonists”
who “believes that there are abstract objects not perceptible to our
senses that exist independently of us. Such objects can be perceived
by us only through our intellect.”
I write about these things because your post in fact is about the
fundamentals.

I use abstract objects in my DB design. I treat abstractions of
properties, attributes, entities, etc. as abstract objects. I pay
attention to identification of objects as crucial
question related to objects. So I have identification of pluralities,
entities, attributes, states etc.

Vladimir Odrljin

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.