![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
other hand DK/NF is by definition a normal form where any constraint whatsoever follows from the domain and key ones |
#3
| |||
| |||
|
|
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, at http://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? No matter the fact that there might well be databases which could be put into 6NF which cannot attain DK/NF? I think at the very least said implication should follow at the price of making it a vacuous truth (i.e. all (non-trivial?) 6NF databases could be such that they cannot be put into DK/NF)? In particular I suspect that the seeming lack of implication follows from not treating the time dimension(s) on an equal footing with the rest of the attributes in a relation. That, then, would at least to me seem like a rather grave violation of the information principle. The second point ain't as much a rebuke as a retort: I wonder whether Date and Darwen chose their model of time -- which 6NF is defined on top of -- based on convenience and familiarity, instead of some deeper theoretical reasoning. To me the idea that time in a relational database should be treated as a discrete, countably infinite set of disjoint moments at a preset temporal granularity seems just unnatural, and unnecessarily limiting. To me it would seem much more natural to model time as a full continuum of precise moments in time, and to constrain such real life models using a finite (but otherwise unlimited cardinality) set of FOPL constraints, relying on the full linear order on top of the reals, on top. I.e. to model time using CW-complexes over the real line (i.e. finite unions of open, closed and semi-closed intervals of reals), in a fully discrete but also fully variable precision approximation. Model-wise, 6NF as D&D define it immediately generalizes to this -- all that needs to be changed is to quantify every defining formula over the corresponding nondenumerable set -- yet the possibility of rigorously modelling the interaction between open and closed intervals as well is a considerable plus when dealing with general intersection queries. I also consider the the fact that imputing any kind of chosen- ahead granularity parameter into the basic model suddenly becomes unnecessary a huge plus. So, do you think this sort of approach is sound? Finally, I of course have the firm intention of covering the essentials, including the basics of dependency and normalization theory at least upto 6NF and DK/NF. If my audience proves to be game, I'd also like to mention in passing some of the lesser known, more esoteric, and less fully researched topics in dependency theory like (E)(B)MVD's (cf. e.g. http://www2.cs.uregina.ca/~butz/publications/ipmu00.pdf ), just to make sure people don't accidentally think they've mastered the subject after what is a mere, hurried, introduction. I'd hope to pique some genuine interest in the relational way of thought, among people who perhaps haven't been exposed to the mindset, eventhough otherwise more than capable in modelling data. If you could suggest other ways to accomplish the feat, I would greatly appreciate a hint. -- |
#4
| |||
| |||
|
|
Go read a definition carefully. Eg wiki dknf. It's in DK/NF iff all constraints follow from the domain and key ones. So it's not in DK/NF iff some constraint doesn't follow from the domain and key ones, In other words, if there other constraints is just isn't *in* DK/NF. |
|
(It's not a very useful concept.) |
#5
| |||
| |||
|
|
we *assumed* DK/NF, so there cannot be any other constraints. 6NF should logically be subsumed, if not else then vacuously. Personally I find it very useful, at least as a mental aid, because it forces one to concentrate on the possibility of constraining your schema just a little bit further. |
#6
| |||
| |||
|
|
But the relation in the example has more than one non-key attribute. So that collection of relations and constraints is not in 6NF. |
|
It would probably help if you didn't use vague and/or suggestive (thus, meaningless) phrases like "logically subsumed". |
#7
| |||
| |||
|
|
As I see it, the condition that there be at most one non-prime attribute is a constraint on the relation in the usual sense. (thus, meaningless) phrases like "logically subsumed". At least that one has a perfectly standard meaning in mathematics. It's strictly the same as "is implied by". |
#8
| |||
| |||
|
|
To me it would seem much more natural to model time as a full continuum of precise moments in time, and to constrain such real life models using a finite (but otherwise unlimited cardinality) set of FOPL constraints, relying on the full linear order on top of the reals, on top. I.e. to model time using CW-complexes over the real line (i.e. finite unions of open, closed and semi-closed intervals of reals), in a fully discrete but also fully variable precision approximation. |
#9
| |||
| |||
|
|
Doesn't this make it a bit hard to predict how long queries on time-valued domains may take? *The amount of time required for manipulating a value will greatly vary. *My guess is that why Date and Darwen rule it out for this reason. *Then again, Date defines the use of essentially arbitrary domains elsewhere. |
#10
| |||
| |||
|
|
[snip] And since one would have to have a bona fide range datatype, building in handling for infinite ranges would also be easy; that'd get rid of one of the most persistent reasons why people incorporate nulls into designs. |
![]() |
| Thread Tools | |
| Display Modes | |
| |