tags:

views:

64

answers:

2

Hi all

Over the years i have followed the techniques of DB normalization to atleast identify the relationships and entities of my object models , it always got me closer to a very reasonable design.

Recently i came across this research paper, which actually deals with the same

http://www.decodephp.com/oo-design-normlization.pdf

how do you all feel about this technique? do you find it useful? do u find any major problems with it?

A: 

that paper is quite funny. the authors' notion of relational is quite off, and the code they show is not object-oriented by any means: they just show a couple of structs glorified with getters and setters. again, that's not OOP.

buy C. J. Date's books for seriously in-depth, readable, well-argumented treatise of the relational data model, and... someone clue in with similarly respectable sources on OOP.

just somebody
+3  A: 

This is garbage.

Object Oriented Design deals with the fact that normalizing state and "normalizing" behavior (via functional decomposition) produce incompatible and poorly aligned structures. Systems that do this separately have the problem that, although data normalization and functional decomposition do a nice job of minimizing complexity in their respective domains, a high degree of complexity is created between the state structures and behavioral structures when they need to interoperate within the same program.

In general, think of an optimally designed state space and an optimally designed behavioral space as existing on opposite poles of a sphere. The closer your system gets to reaching one pole, the farther it gets from the other. This is simply because behavior is often orthogonal to state.

The authors seem oblivious to this as evidenced by the fact that the operations in their class diagrams are exclusively getters and setters of state information, which is why the state optimization (data normalization) techniques fit so nicely.

Doug Knesek