B-tree

  • Bob Hovious 24601 (10/26/2009)


    I'm late to the party on this one, but got it right from reading the Inside SQL Server 2005 books. Kalen Delaney stressed that it was balanced. A couple of comments.

    1. "Balanced" is significant because it means the structure of the indexes tries to keep accesses to different "leaves" as close to one another as possible. Some people give warnings about what particular data loads might do to a b-tree structure, but they aren't talking about "balanced" indexes.

    2. People who say that it is unknown should have the humility to say that it is unknown to them. Obviously if it is being published in official Microsoft publications, it's not being hidden.

    3. If things like this aren't in BOL, they ought to be.

    1. Nobody is disputing that fact that the indexes are balanced. We are disputing what the "B" means in B-Tree.

    2. Microsoft is not the creator of the technology so is not the authority on what the "B" means in B-Tree.

    A good example of this is the abbreviation PC. Most people would think PC means a computer that uses Microsoft operating systems or being IBM compatible. That is not what PC was originally created to mean. It means Personal Computer. Even a Mac computer is a PC. I don't care what Microsoft says about this, Mac computers are still PCs because Microsoft cannot change the meaning.

    So why do you think just because Microsoft says the "B" means Balanced that it is true?

  • I think that Microsoft is the sole authority on what B-Tree means in their systems, although like everyone else I learned that the "b" in b-tree stood for binary and find the use of the term a trifle misleading. However, the literature went to pains to explain the balanced tree and it's significance. To maintain that the MS-SQL 2005 indexes are binary tree indexes is incorrect. So yes, if they say b-tree in the context of MS-SQL means "balanced", it is pointless to argue otherwise.

    I have no idea if Microsoft is the creator of "balanced indexes", and I certainly don't think they invented b-trees as you and I otherwise understand the term. This makes no difference to me, because they are not asserting that all b-trees are balanced trees. Again, this is strictly in the context of MS-SQL 2005. I haven't read the 2008 books, and for all I know they may be calling them BBQ tree indexes now.

    Don't get me wrong. I understand why their use of the term is upsetting. But, I've actually noticed very little reference to the MS-SQL indexes as "b-tree" indexes. Usually they are simply referred to as indexes. But it's important to know that the indexes are NOT b-trees as the term is usually applied. That's why I agree that using that term at all is somewhat misleading, and it ought to be in BOL.

    Finally, although it is off the subject, the connection of the term "PC" with IBM goes back to when IBM first introduced it's microcomputer. They named it the IBM Personal Computer. It was a branding thing. Although IBM wasn't the first to coin that phrase, other microcomputers like the TRS-80 weren't generally referred to as personal computers. The "PC" term came into general use meaning IBM or IBM-compatible as the IBM-PC and its clones (machines based on the Intel chipset running MS-DOS) came to dominate the marketplace. Gradually, that evolved into machines running Microsoft Windows. That's why Apple can run their "I'm a Mac... I'm a PC" commercials and everyone knows who they are gunning for. 🙂

    __________________________________________________

    Against stupidity the gods themselves contend in vain. -- Friedrich Schiller
    Stop, children, what's that sound? Everybody look what's going down. -- Stephen Stills

  • something is wrong in the page for that question.

    My choice was "Binary" and I got wrong answer like if my choice was "Balanced"

  • Bob Hovious 24601 (10/26/2009)


    I think that Microsoft is the sole authority on what B-Tree means in their systems...

    Agreed. But the question was too generically stated. It could be read as simply "What does the B in B-tree stand for?". The SQL example can be taken as just that; an example...

    If the question had stated something like "When describing an SQL index as a B-tree, what does the B in B-tree stand for?", then the question is less ambiguous, and probably will make you think twice before you answer.

    Kelsey Thornton
    MBCS CITP

Viewing 4 posts - 31 through 33 (of 33 total)

You must be logged in to reply to this topic. Login to reply