home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.databases.theory
- Path: sparky!uunet!haven.umd.edu!darwin.sura.net!Sirius.dfn.de!chx400!bernina!neptune!nugget.inf.ethz.ch!marti
- From: marti@nugget.inf.ethz.ch (Robert Marti)
- Subject: Re: Any example of actual implementations of B-Tree's?
- Message-ID: <1992Jul31.141004.26043@neptune.inf.ethz.ch>
- Keywords: b-tree indexes indexing
- Sender: news@neptune.inf.ethz.ch (Mr News)
- Nntp-Posting-Host: nugget.inf.ethz.ch
- Organization: Dept. Informatik, Swiss Federal Institute of Technology (ETH), Zurich, CH
- References: <naran.712476183@sfu.ca>
- Date: Fri, 31 Jul 1992 14:10:04 GMT
- Lines: 36
-
- In article <naran.712476183@sfu.ca>, naran@fraser.sfu.ca (Travers Naran) writes:
- |> I am writing a database program for myself and is going to be mostly
- |> disk-based. But now, I have the theory for B-Trees (Not binary trees, the B
- |> stands for something else) but no algorithms or any books that even talk about
- |> using it. All the books I have found so far are concerned about normalization
- |> and other stuff I already know about.
- |>
- |> How are B-Trees actually implemented? Data structures, algorithms, etc.
- |> Any examples by FTP or on the Net in general? Pieces of code, database sourcee
- |> codes, etc.
-
- As far as I know, the B stands for Boeing, the company where Rudolf Bayer
- and Ed McCreight worked for when they invented this data structure. (Of
- course, it could also stand for balanced, or Bayer, too ... )
-
- Niklaus Wirth's "Algorithms and Data Structures" book contains the code
- for inserting, searching, and deleting entries in a B-tree which resides
- entirely in main memory. (Depending on the edition, this code is written
- in Pascal or Modula-2.)
-
- As for disk-based B-tree code, it becomes somewhat more tricky. Usually,
- each node of a B-tree is mapped to a disk block (page). As a result,
- you need to know the interface to the underlying buffer manager which
- will typically provide you with procedures like RequestPage, DropPage,
- ReadPage, WritePage, FixPage, ReleasePage, and maybe a few others.
-
- You may want to study the code of some of the available storage systems
- (e.g. WiSS, the Wisconsion Storage System) or database management systems
- (e.g., REQUIEM, University INGRES, or Postgres), although I don't know
- off the top of my head which ones provide B-trees.
-
- --
- Robert Marti | Phone: +41 1 254 72 60
- Informationssysteme | FAX: +41 1 262 39 73
- ETH-Zentrum | E-Mail: marti@inf.ethz.ch
- CH-8092 Zurich, Switzerland |
-