FLAGS

MENU

NOTICE

2008年7月31日木曜日

(技術メモ)B-TREE からノードを削除する (mixi05-u459989-200807310947)

ミクシ内で書かれた旧おかあつ日記を紹介します。
(技術メモ)B-TREE からノードを削除する
2008年07月31日09:47
先日に引き続き、僕はB-treeというデータベースでとても重要なデータ構造について研究している。 昨日までは追加について研究していたが、今日は削除について検索している。 わかったのだが、削除は追加・検索に比べてはるかに難しい要素があるということがわかった。

これを「リバランシング」と呼ぶ。

追加は実にシンプルで単純なのだが、削除の方はケース分岐が必要みたいだ。
英語版 wikiに非常に詳細なことが書いてあるのだけど、完璧ではないということも判明してきた。

http://people.ksp.sk/~kuko/bak/index.html

このアプレットはどうやら wiki の説明文を元にして作られたもののようだ。
逐一説明文が出てきて、わかりやすい。
チェコ人が書いたらしい。 素晴らしい。

でも、きちんと原典にあたって調べたい。
B-treeには論文の著者の系列によって、色々な流派があるらしいということがわかってきたからだ。

どこかにきちんと原理が書かれた本があるに違いないと思うのだけど...。
アマゾンで取り寄せるか...。

さて....。

--

追記:

その本とは、クヌースの本だということが判明した。
これは、読むしかないかもしれない...。日本では入手が難しいみたいだ。
訳本は手に入るみたいだけど、訳がまずそうな気がする。 B-treeが B木とか訳されてると、なんかそれだけで嫌な気分になるな...。

しかし、この書評のおっちゃん、いいことかくなぁ...

http://www.amazon.com/Art-Computer-Programming-Sorting-Searching/dp/0201896850

First the basics: it's great, it provides wide-ranging and deep analysis, it shows many views and variants of each problem, and its bibliography is helpful, though not exhaustive. The historical notes, including sorts for drum storage, may seem quaint to modern readers. And sorting has been done, right? You just run a shell program or call a function, and tap into the best technology. Does it need to be done again?

Yes, if you're on the edge of technology, it does need to be done again, and again, and again. That's because technology keeps expanding, and violating old assumptions as it does. Memories got big enough that the million-record sort is now a yawn, where it used to be a journal article. But, at the same time, processor clocks got 100-1000x ahead of memory speeds. All of a sudden, those drum-based algorithms are worth another look, because yesteryear's drum:memory ratios are a lot like today's memory:cache ratios of size and speed - and who doesn't want a 100x speedup? Parallel processing is moving from the supercomputing elite into laptops, causing more tremors in the ground rules. GPU and reconfigurable computing also open whole new realms of pitfalls as well as opportunities.

Knuth points out that the analyses have beauty in themselves, for people with eyes to see it. His analyses also demonstrate techniques applicable way beyond the immediate discussion, too. Today, though, I have nasty problems in technologies that no one really knows how to handle very well. I have to go back and check all the assumptions again, since so many of them changed. If that's the kind of problem you have, too, then this is the place to start.

//wiredweird

追記2:

日本語の本はこっちだ。
http://www.ascii.co.jp/books/books/detail/4-7561-4614-7.shtml

こっちはすぐに入手できるみたいだ。

だけど、翻訳が...。交換ソート、最適ソート、か...。 なんか英語で最初に覚えたので、こうやって訳されると、すごい違和感を覚えるなぁ...。 どれがどれなのか、判別つかないよ...。



コメント一覧
 
出展 2008年07月31日09:47 『(技術メモ)B-TREE からノードを削除する』

著者オカアツシについて


小学生の頃からプログラミングが趣味。都内でジャズギタリストからプログラマに転身。プログラマをやめて、ラオス国境周辺で語学武者修行。12年に渡る辺境での放浪生活から生還し、都内でジャズギタリストとしてリベンジ中 ─── そういう僕が気付いた『言語と音楽』の不思議な関係についてご紹介します。

特技は、即興演奏・作曲家・エッセイスト・言語研究者・コンピュータープログラマ・話せる言語・ラオ語・タイ語(東北イサーン方言)・中国語・英語/使えるシステム/PostgreSQL 15 / React.js / Node.js 等々




おかあつ日記メニューバーをリセット


©2022 オカアツシ ALL RIGHT RESERVED