Archives of the TeradataForum
Message Posted: Sat, 04 Nov 2001 @ 00:27:14 GMT
OK, lets start working with some facts then.
This is something that really bothers me, that people still think 3NF is some sort of "pure" model. It's not. It only requires that the design meets the ACID test, not that it's valid or even practical. So this notion that 3NF guarantees some sort of safe harbor when you don't know your requirements is nonsense. When Codd coined the word "normal" back in the early 70's, it was a JOKE, a play on words. He was trying to find a way to get people to use the relational idea, but the performance of the databases was atrocious. So he came up with the ACID formula for building "relations" (his formal term for tables) that could be updated as fast as non-relational systems. In searching for an appropriate name, he said, "Nixon was normalizing relations with China, so I guess that's what I was doing, normalizing relations."
So the word normal has no special, or ideal, status in the relational algebra. Likewise, the word "de-normalize" is meaningless.
Now lets getg back to the question. Here's a surprise for you. If you look at it carefully, you will see that a fully snowflaked dimensional model IS IN FACT 3NF. So technically, Microstrategy always could handle 3NF. Just not all kinds of 3NF, and it still can't (I can come up with a zillion different 3NF designs for the same set of data, there isn't one "pure"? one). It still can't handle recursive dimensions, for example. So what is different in version 7? BTW, I've had my firm implementing Microstrategy applications since 1994, so this isn't brochure information.
Version 7 relaxed a lot of the physical modeling constraints of the data warehouse, making it easier to build metamodels (what the user sees) from databases that aren't designed perfectly for the tool. It is a step in the right direction, but it is totally false to assume that it can read any database design, or even any 3NF design. And even if it can, performance is another issue.
This is a vendor-led industry. Most of the information, including the information coming from the analysts like Gartner et al, is coming straight from the MARCOMM departments of the vendors. There is precious little good information out there. We (the consultants) have a lot of good information, but we share it mostly with our clients. You, practitioners in companies, have a lot of good information too, you just don't have a good mechanism for sharing it. Forums like these are good, but I've been reading it for a few years now, and only rarely is there a thread that gets beyond, "How do you use the SQLrowcount function in ODBC?"
The reason I bring this up is to implore you to resist the temptation to take certain sweeping proclamations as gospel, such as 3NF is the best place to start, Microstrategy can read 3NF, or a thousand other "rules of thumb." NCR will advise you to use 3NF rather than Star design because its engine will perform better - it doesn't understand a dimensional schema, EVEN IF IT'S IN 3NF. That's a pretty good argument, but it makes it devilishly difficult to use most OLAP tools against it, including Microstrategy 7, because I'm of the opinion that requiring a view to get a query processed is a failure. And if someone tells you that Microstrategy can read a 3NF schema, ask them to prove it, without views.
I could write a lot more here, but I'm trying to keep it short.
|Copyright 2016 - All Rights Reserved|
|Last Modified: 28 Jun 2020|