dbTalk Databases Forums  

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

comp.databases comp.databases


Discuss "compound data" - is there a more standard term? in the comp.databases forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
metaperl
 
Posts: n/a

Default "compound data" - is there a more standard term? - 04-22-2010 , 10:45 AM






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?

Reply With Quote
  #2  
Old   
steve lefevre
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-22-2010 , 10:52 AM






On Apr 22, 11:45*am, metaperl <metap... (AT) gmail (DOT) com> wrote:

Quote:
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"

Reply With Quote
  #3  
Old   
Jasen Betts
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-24-2010 , 05:13 AM



On 2010-04-22, metaperl <metaperl (AT) gmail (DOT) com> wrote:
Quote:
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: news (AT) netfront (DOT) net ---

Reply With Quote
  #4  
Old   
paul c
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-24-2010 , 07:31 PM



Jasen Betts wrote:
Quote:
On 2010-04-22, metaperl <metaperl (AT) gmail (DOT) 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: news (AT) netfront (DOT) 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. 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.

Reply With Quote
  #5  
Old   
Luuk
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-25-2010 , 09:48 AM



Op 25-4-2010 2:31, paul c schreef:
Quote:
Jasen Betts wrote:
On 2010-04-22, metaperl <metaperl (AT) gmail (DOT) 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: news (AT) netfront (DOT) 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. 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.


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

Reply With Quote
  #6  
Old   
paul c
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-25-2010 , 10:30 AM



Luuk wrote:
Quote:
Op 25-4-2010 2:31, paul c schreef:
Jasen Betts wrote:
On 2010-04-22, metaperl <metaperl (AT) gmail (DOT) 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: news (AT) netfront (DOT) 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. 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.



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.



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

Reply With Quote
  #7  
Old   
metaperl
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-26-2010 , 08:57 AM



On Apr 24, 8:31*pm, paul c <toledobythe... (AT) oohay (DOT) ac> wrote:

Quote:
--- news://freenews.netfront.net/ - complaints: n... (AT) netfront (DOT) 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

Reply With Quote
  #8  
Old   
metaperl
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-26-2010 , 09:00 AM



On Apr 25, 10:48*am, Luuk <l... (AT) invalid (DOT) lan> wrote:

Quote:
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.

Reply With Quote
  #9  
Old   
Luuk
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-26-2010 , 12:41 PM



Op 26-4-2010 16:00, metaperl schreef:
Quote:
On Apr 25, 10:48 am, Luuk <l... (AT) invalid (DOT) 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.
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

Reply With Quote
  #10  
Old   
Ben Finney
 
Posts: n/a

Default Re: "compound data" - is there a more standard term? - 04-26-2010 , 06:53 PM



metaperl <metaperl (AT) gmail (DOT) com> writes:

Quote:
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

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.