[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Costello, Roger L." <costello@m...>
  • To: "xml-dev@l..." <xml-dev@l...>
  • Date: Tue, 28 Oct 2014 09:23:52 +0000

Michael Kay wrote:

> And for my next exciting revelation, I will announce the discovery of third normal form.

Hello Michael, I assume you are saying this: 

	Flat XML does not adhere to 3rd Normal Form 
	design and therefore is bad.

However, I would counter with this observation:

3rd Normal Form is a criteria for evaluating the design of relational databases. I am not talking about designing relational databases. I am talking about designing XML-based data exchange formats. It is not obvious to me that the criteria used to evaluate database designs should be the same criteria used to evaluate the design of XML-based data exchange formats.

In the grape vineyard example that I gave, a 3rd Normal Form design would yield this:

 <Lot id="1">
      <ripe-grapes>4</ripe-grapes>
</Lot>
<Lot id="2">
      <ripe-grapes>3</ripe-grapes>
</Lot>
<Picker id="John" locatedOn="1">
      <metabolism>2</metabolism>
      <grape-wealth>20</grape-wealth>
</Picker>
...

As a data exchange format, that is a horrible design: it is not well-suited to many operations that consumers want to make on the data and it is not in a format that is suitable for employing powerful parsing techniques.

3rd Normal Form is useful as a criteria for evaluating relational database designs, but it is a poor criteria for evaluating XML-based data exchange formats.

For an XML-based data exchange format, I want the format to possess these attributes:

1. It is in a neutral form with respect to modeling the world: Your vantage point is not necessarily the same as my vantage point.

2. It easily morphable: It is in a form that lends itself to manipulation by powerful parsing techniques (recursive descent, LL(1), etc.)

Flat XML provides those desirable attributes.

Comments?

/Roger


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member