Вы находитесь на странице: 1из 2

How many books do you see here?

Today's Thing is an Application of the Rainbow Syndrome to what I (and my former PhD advisor on
my unfinished second PhD) consider the keystone of Information Systems: the data model. (Which,
with NoSQL and other non relational databases of the Big Data era, with their toilet-paper-one-big-
table-pseudo-data-model, is an Art which is disappearing... but I digress).

Have a look at the image below (from a delightful, old fashioned, quixotic course on data modeling in
French) and try to say, how many books do you see? (There is a similarity - apart from the discrete
nature of books - with looking at a rainbow and asking "how many colors do you see"?)

The (author's) answer - on a pragmatic level, based on the fact that "book" is a polysemic word - is "it
depends". If you're a librarian, there are five books, each one is an independent one, as they have
different IDs. If you're a library user, there are four books - the two editions of Hamlet are one book,
but the fact that Les Miserables (who reads Les Miserables in 2015, anyway?) is in two volumes, is
relevant because you're limited to the number of "books" you borrow. If you are a literature professor,
there are three books, the fact that Les Miserables is in two volumes is irrelevant (you could take into
account the number of pages when you assign readings to your students, but you're probably a
sadistic bastard and anyway your students will read some summary or watch a Youtube video and not
bother with the thousand pages). However I have to say that the author also presents a (conceptual)
data model that allows to represent all three points of view:
Interestingly, the linguistics course I followed on Coursera also has a (rather semantic) discussion of
what a book is - with a student trying to define a book and the professor socratically showing the limits
of the definition (how do you differentiate a book from a newspaper or magazine, is a book a physical
object and other cheap tricks).

So what?
Data modeling is (was?) involved with how to divide a complex, (almost) continuum reality into a
special grammar of discrete categories (entities and relationships, just like the above model). As long
as we followed a pragmatic approach (what is the data model that would be appropriate for our
information system?) rather than a semantic approach (what is the TRUE data model), it could really
be a useful tool. The analogy with the rainbow is that different cultures (not only national, but also
maybe occupational) will see a different number of colors in the rainbow, just like for different
information systems the same "reality" can be modeled differently (while - like in the case above - a
"total" data model might exist, it's probably overkill for a system that does not need to serve all
cultures).

Вам также может понравиться