Re: Designing DB in accordance with the relational model

From: Clifford Heath <no_at_spam.please.net>
Date: Wed, 10 Nov 2010 21:29:27 +1100
Message-ID: <4cd9e5cd$0$3034$afc38c87_at_news.optusnet.com.au>


Kentauros wrote:
> There are entities with attributes (yes, very trivial).

Trivial, but wrong. Things don't have attributes. Things exist in relationship to other things. Relationships between things can be defined through predicates, and sometimes, the population constraints over those predicates allows contraction of the relationship into the form we call "an attribute". We further require that attributes should not have attributes of their own.

The existence of an attribute therefore depends on the cardinalities of a relationship, and the most frequent sources of disruptive change in real information systems isn't change in the relationships, but change in the cardinalities involved, and in the addition of "attributes of attributes" leading to reification (new tables).

Fact-oriented information modeling separates the definition of the predicates which define fact types from the population constraints over those fact types. This allows *dynamic* mapping to efficient normalised relation structures.

The procedure for constructing relational models using the fact-oriented approach is defined and taught in Terry Halpin's book "Information Modeling and Relational Databases".

> But what do I do if I have D DBMS, implemented strictly by The Third
> Manifesto? I just can't imagine. I can't use NULLs.

You shouldn't need NULLs in your conceptual model. They are an efficiency feature, added to allow a reduction in the number of physical tables required, as a concession to the physical access characteristics of mechanical storage devices.

A competent D would allow you to directly implement your conceptual model without NULLs, and would hide any actual use of NULLs in its physical layer. To my knowledge, this has never been properly done in a generalised commercial product... but I'm working on it.

Clifford Heath, Data Constellation, http://dataconstellation.com Agile Information Management and Design. Received on Wed Nov 10 2010 - 11:29:27 CET

Original text of this message