japan.internet.com The Internet & IT Network


RSSニュース検索
カテゴリ
> トップページ
> Webビジネス
> Eコマース
> Webファイナンス
> Webマーケティング
> パブリック
> Webテクノロジー
> 携帯・ワイヤレス
> Linux Today
> Linux Tutorial
> J.I.C.ブログ
キャリア
> 転職ならen
> 派遣ならen
> アルバイトならen
> IT求人情報
ヘッドライン
> 今日のヘッドライン
> 週間ヘッドライン
Special Link
> フォトコミュニティ
> ストックフォト
> クリップアート
> イラスト
> フェリカ
> Web2.0
> 写真
イベント&セミナー
> イベントカレンダー
> 書評「IT の耳」
> 出張・接待検索
> ニュースガジェット 注目
無料ニュースメール
> 新規登録
> 変更・解除
> オプトインメールの登録・変更・解除
インフォメーション
> パートナーサイト
転職ならエン
就職ならen
求人ならen
履歴書ならen
アルバイトならエン
CRM/SFAならオラクル
> グループ会社
株式会社アエリア
(株)サンゼロミニッツ
株式会社エアネット
> お問い合わせ
> 広告掲載について
> リンクについて
> 著作権について
> その他お問い合わせ
> 利用規約
> 個人情報保護方針
> 会社概要地図
コラム コラム一覧へ戻る

佐藤剛宣 佐藤剛宣(さとうたけのり)
db4objects, Inc. 日本支社支社長。日本の組み込み開発者に使ってもらえるデータベースを創り上げようと奮闘中。JavaOne2007 でテレマティクス分野での成果を発表するなど、現在はテレマティクスに集中して活動している。

 メール  著者にメールする
 ホーム  http://www.db4o.com/japan/

最新コラム

表計算ソフトの計算を支える仕組

著者: 佐藤剛宣 プリンター用 記事を転送
2008年7月24日 10:00 付の記事
□国内internet.com発の記事

PC と言えば表計算。ワープロソフトは PC でなくてもワープロでできましたからね。

最近では表計算ソフトの機能も膨大になってしまって、ほとんどの人はせいぜい1割ぐらいの機能しか使っていないのではないでしょうか?

表計算のデータって、セル単位の複雑な計算が絡んでいるので、一般的なデータベースには入らないですよね。しかもデータってぱっと見ただけでは、何を意味するのか分からない。

さらに言うと、現代の検索エンジンは、文章はうまく検索できますが、データは難しいですよね。

仮になんとか Web 上で検索したとしても、どこの情報を参照してできあがっているのか、信憑性を確かめるのがまた一苦労。

そんなこんなで、とあるプロジェクトで、表計算ソフトの仕組みを、特定の用途向けに一からデザインしなおして作ってしまおうということをやっています。

その過程で最近はいろいろと表計算を支える仕組みを考えています。

表計算ソフトで最もよく使う機能は、計算式ではないでしょうか? 他のセルを参照して、四則演算などの計算をします。例えば、C1 というセル(C という列の1行目)の計算式が、「D1+E1」だったら、D1 と E1 のセルの値を足したものになります。

E1 の値が変更されると、そこの値を参照して計算している C1 の値も自動的に計算してくれるので便利ですよね。

ところで、どうやって自動的に計算をしていると思いますか? ここでいう「どうやって」というのは、どうやって四則演算をしているか、ではなくて、どういう順番で計算しているか、です。例えば次のような少し複雑なケースを考えてみてください。

C1 = 10, D1 = C1, E1 = C1 + D1, F1 = C1 + D1 + E1

横一列に並んだセルが、自分より左にあるセルを全て参照しているようなケースです。C1 の値を20に変更した場合、どうしたら正しい値を計算して表示できるのでしょうか?

実はこのような依存関係を解きほぐすアルゴリズムというのが存在していて、面白いことに、結構身近な問題解決に使えるなものです。例えば次のケースを考えてみてください。

1.    ふとんを取り込む
2.    掃除機をかける
3.    雑巾がけをする
4.    はたきをかける
5.    便所掃除をする

これらの家事はどの順番でやったら最も効率が良いでしょうか? そうです、ある作業は、別のある作業のあとでなければならない、またはある作業は同時にやっても良い、というような依存関係がここにもあります。

表計算の自動計算を支えている、正しい順序を割り出すアルゴリズムは、トポロジカルソートと呼ばれるもので、面白いことに、このような作業の順序を割り出すのにも使えるのです。

さて、元々このアルゴリズムは表計算ソフトのために作られたのではなく、もちろん主婦のために家事を効率化しようとして作られたのでもありませんが、よろしければ身近な問題でお試しになってはいかが。

前回予告した、HyperTable と MySQL との性能比較は、次回に結果を報告します。

記事提供:db4objects

過去コラム集
Google の巨大テーブル
タイムマシン
全記録時代への挑戦
嘘をつくコンピュータ――2
嘘をつくコンピュータ
考えるデータベース
エコプログラミング
次世代ファイルシステムの行方
サイボーグの脳=夢のデータベース
働き方を変えるか、次世代ファイルシステム
海外のインターネットコム アメリカ韓国ドイツトルコ
関連企業のサイト:ストックフォト イラスト ネットストリート ホテル予約サイト タウン情報 出張 事業継承 シミュレーション トランクルーム 優待映画チケット 田舎暮らしガイド オリジナルデザインTシャツ ニタコエ
Copyright 2008 Jupitermedia Corporation All Rights Reserved. http://www.internet.com/
space.gif space.gif