Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

"compound data" - is there a more standard term?

0 views
Skip to first unread message

metaperl

unread,
Apr 22, 2010, 11:45:53 AM4/22/10
to
When a database designer / developer packs conceptually separate
values into a single column, what is this called?

For example, if I had a person table and I had a VARCHAR column with
this:

female:05/11/77

I would be squeezing gender and date of birth into a single column.

In a recent rant ( http://perlmonks.org/?node_id=835894 ) I referred
to this as 'compound data' but Google does not back me up in that
terminology use. Is there a more standard term for this violation of
database (and system) design principle?

steve lefevre

unread,
Apr 22, 2010, 11:52:08 AM4/22/10
to
On Apr 22, 11:45 am, metaperl <metap...@gmail.com> wrote:

> In a recent rant (http://perlmonks.org/?node_id=835894) I referred


> to this as 'compound data' but Google does not back me up in that
> terminology use. Is there a more standard term for this violation of
> database (and system) design principle?

I was going to say "complex data", but google doesn't back me up
either. I think the type is so shunned there is no common name. I
would call it "Breaking 1st Normal Form" :)

Jasen Betts

unread,
Apr 24, 2010, 6:13:42 AM4/24/10
to
On 2010-04-22, metaperl <meta...@gmail.com> wrote:
> When a database designer / developer packs conceptually separate
> values into a single column, what is this called?
>
> For example, if I had a person table and I had a VARCHAR column with
> this:
>
> female:05/11/77

I call it serialalisation

--- news://freenews.netfront.net/ - complaints: ne...@netfront.net ---

paul c

unread,
Apr 24, 2010, 8:31:54 PM4/24/10
to

Looks like a trick question since most present products don't have any
serious support for user defined domains. If a developer did that, I'd
say it'd be called a blunder. If a db designer did it, it might be
called grounds for termination. Why would anybody want a specific label
for such a mistake? Tempts me to ask why not put all of a db's
'conceptual' values into a single column.

Luuk

unread,
Apr 25, 2010, 10:48:38 AM4/25/10
to
Op 25-4-2010 2:31, paul c schreef:


I dont think its always a mistake, or a blunder, to store data in the
way that was given, especially when these data are just stored as
'data', and not as 'information'

It might become a mistake if you need to retrieve the gender, or the
birthday of someone often.

--
Luuk

paul c

unread,
Apr 25, 2010, 11:30:21 AM4/25/10
to

So including it is not a mistake if it's not needed. The next question
should be obvious.

metaperl

unread,
Apr 26, 2010, 9:57:55 AM4/26/10
to
On Apr 24, 8:31 pm, paul c <toledobythe...@oohay.ac> wrote:

> > --- news://freenews.netfront.net/ - complaints: n...@netfront.net ---


>
> Looks like a trick question since most present products don't have any
> serious support for user defined domains.  If a developer did that, I'd
> say it'd be called a blunder.  If a db designer did it, it might be
> called grounds for termination.

lol

metaperl

unread,
Apr 26, 2010, 10:00:56 AM4/26/10
to
On Apr 25, 10:48 am, Luuk <l...@invalid.lan> wrote:

>
> It might become a mistake if you need to retrieve the gender, or the
> birthday of someone often.

most database tools (e.g. db visualizer) and programming APIs (e.g.
JDBC, DBI) have something called a "dsn" (data source notation) that
they need to retreive parts of, yet nonetheless they pack it into a
single string:

'dbi:Sybase:server=production;port=4403'

it seems a mistake to pack all of those separate values into a single
string instead of them being separate parameters.

But as contrast, we have the URL, where we pack protocol, domain, and
query string into a single datum... hmm.

Luuk

unread,
Apr 26, 2010, 1:41:10 PM4/26/10
to
Op 26-4-2010 16:00, metaperl schreef:

But, what has an URL to do with databases?

The way an URL is build might be the best way to solve the problem for
communitations via HTTP...

And, i said, it MIGHT become a mistake, i did not say it was (or is)
Some people, who believe in *1st normal things*, might object to this.

--
Luuk

Ben Finney

unread,
Apr 26, 2010, 7:53:35 PM4/26/10
to
metaperl <meta...@gmail.com> writes:

> When a database designer / developer packs conceptually separate
> values into a single column, what is this called?

Short answer: It violates one of the conditions for first normal form
(1NF). That condition has conflicting definitions, though, so you will
need to be clear on what definition you're referring to.


You will also hear the term “multi-valued” or more formally
<URL:http://en.wikipedia.org/wiki/First_normal_form#Repeating_groups>.
This is what many people think of first when asked to come up with an
example of a database that violates 1NF.

Your example, though, is just as good even though it has nothing to do
with repeating groups. So this term is too narrow and doesn't help
describe the practice you're asking about.


That practice violates what E.F. Codd termed 1NF (first normal form),
because it uses values that are not “atomic”. (There are a number of
other conditions for a database to be in 1NF, but this condition of
atomic values is the one relevant to your question.)

So, on that basis, attributes that do not meet this condition could be
called “non-atomic” attributes. The trouble is, “atomic” has no absolute
meaning.


C.J. Date criticises this term for its unclear definition and unclear
application, and suggests the following phrasing of the condition as a
way of avoiding the ambiguity of “atomic”:

“Every row-and-column intersection contains exactly one value from
the applicable domain (and nothing else).”

He further criticises the condition itself as Codd defined it, for
excluding tuple-valued attributes and relation-valued attributes, which
he considers important and valid in the relational model.

So, on that basis, attributes that do not meet this condition could be
called “domain-violating” attributes. The trouble is, “domain” can be
defined by the DBA to mean whatever they like and allow any arbitrary
values for a particular attribute.

For more, see the Wikipedia page for 1NF, especially the discussion of
<URL:http://en.wikipedia.org/wiki/First_normal_form#Atomicity>.

--
\ “An idea isn't responsible for the people who believe in it.” |
`\ —Donald Robert Perry Marquis |
_o__) |
Ben Finney

Luuk

unread,
Apr 27, 2010, 1:40:43 PM4/27/10
to
Op 27-4-2010 1:53, Ben Finney schreef:

Luckily i'm not bound to 1NF...., and i will take the consequences when
i make a wrong judgement about violating these 1NF's...

;-)

--
Luuk

0 new messages