ラベル Bento の投稿を表示しています。 すべての投稿を表示
ラベル Bento の投稿を表示しています。 すべての投稿を表示

2009/02/13

Bento 2: 関連データを使う

こんばんは。虐待弁当ってまだ続いているんですね。

簡単なデータなら表計算で十分と書いてきた。ではデータベースでないとできないことというのは何か? 「テーブル間の関連」はそのひとつで、「データベースに期待すること」であげた。

テーブル間の関連を用いた例として、予め用意してあるライブラリProjectsがある。ひとつのプロジェクトには、複数のメンバー (アドレスブックのレコード)、複数のタスク (iCalタスク)、複数のイベント (iCalイベント) が関連づけられる。iCalタスクというのは、今までそんな機能があることを知らなかったのだけれど、iCal の 「表示」メニュー > 「To Do リストを表示」で出てくる。

ここでは何の説明もなく「アドレスブックのレコード 」なんて書いたが、BentoではMac OS XのアプリケーションのアドレスブックとiCalのレコードが取り込まれ、BentoでアプデートするとこれらのMac OS Xに自動的に反映されるのだ。

さて関連データの話に戻ろう。今回はこの関連データを使ってみる。

複数のライブラリ (テーブル) を使う応用を考えるのだが、新たに複数のテーブルを使うのではなく、前回作った番組データベースを拡張し、新たに「タグ」テーブルを追加する。
これまで番組には「分類」フィールドをつけていたのだが、これだと一つの分類体系にしか対応できない。ある番組が、「技術」の側面と「ビジネス」の側面をあわせ持っている場合にどちらに分類するか困るのだ。そこで、一つの番組レコードに複数のタグを与える。

テキストフィールドにタグをコンマなどで区切って並べるという方法もあるのだが、そうすると同じタグを持つものを集めるのに検索を行う必要がある。また、全文検索を行うと部分一致になるので、"CM" タグがついたものを集めたい場合に、"SCM" とか "CMS" とかのタグがついたものも検索されてしまうのだ (そんなタグのついた番組はないけどね)。
そこで「タグ」を別テーブルとしてつくる。番組に対して複数のタグを関連データとして与えられるようにする。また、同じタグをもつ複数の番組が一覧できるように、タグのほうにも関連レコードとして番組を加えることにする。

新しいライブラリ「タグ」を作り、テキスト型フィールド「タグ」(これは名前をライブラリとは別にした方が分りやすかったかも) と、「関連レコードリスト」型でデータソースに「番組」を選択したフィールド「TV番組」を与える。

一方、ライブラリ「番組」には、フィールドに「関連レコードリスト」型でデータソースに「タグ」を選択したフィールドを加える。

こうやって相互に関連をもたせると、番組レコードにタグを追加すると、追加したタグの方にはその番組が関連データとして追加される。逆にタグレコードに番組を追加すると、番組レコードにタグが追加される。これは便利。

さて、さらに拡張する。「タグ」レコードの関連レコードとして「タグ」を追加するのだ。これはどういう意味があるかというと、関連するタグ、類似のタグとしてどのようなタグがあるかを知ることができるようになるのだ。例えば「環境」タグの関連タグとして、より細かい分類の「地球温暖化」タグを与える。これを充実させていくと、「環境」に関連する概念として、「地球温暖化」、「リサイクル」、「太陽光発電」、「風力発電」などがあることがわかり、この中からよりスペシフィックな話題を掘り下げた番組を選択することができるようになる (そんな膨大なビデオライブラリがある訳じゃないけどね)。

追記: タグを含んでいる番組のレコード数を、「計算フィールド」を使って計算している。計算の中にCountという関数があって、これはレコード数を出すのではなく、値の入っているフィールド数を出すので、必ず値の入っているレコードを選択する必要がある。ここでは「タイトル」フィールドを使って、計算式は"Count:TV番組:タイトル"としている。



現段階ではここまでだが、この後蔵書のデータベースやブックマークのデータベースを加え、タグレコードの関連データを増やすことが考えられる。そうすると、あるタグから関連する番組、書籍、Web上の情報源を一覧することができるようになる。

最後に画面のスナップショットを載せる。

タグのフォーム


番組のフォーム (レイアウトを変えた)


テンプレートは前回と同じところに、タグ+番組.bentoTemplateとして入れた。
http://www.zumodrive.com/share/vCMGZiMT

番組のフォームは、レイアウトを行っている段階が分るように部品を選択したままの状態でスナップショットをとった。うまく収まるように順番を変えたり、大きさを変えたりしてみた。はっ! このようにうまく詰め込むことが楽しくなるのが、"Bento" の由来だったんだね!

これでモニターのノルマとしてのレポート5本、テンプレート2種はクリアしたのだけど、もう少し使ってみてまとめを書こうと思います。

2009/02/08

Bento 2: フォームを作る

こんにちは。日本の高校生のお弁当って海外で大評判ですね! → 参考

Bento 2 レポート第4回。今日は「フォームを作る」です。

データベースは表形式で一覧表示するほかに、1つのレコードを1画面に表示することができる。そのレイアウトを決めるのがフォーム。一つのデータベースに複数のフォームを割り当てることができる。例えばレコードの全部のフィールドが表示されるフォームと重要なフィールドのみ表示するフォームという組み合わせが可能になる。

テキスト、数値、URLなどは表形式で良いが、写真などは表形式では表せない。また、まだ試していないが、(メールの) メッセージリストやファイルリストなどリスト形式のものも表形式では表せない。このようなフィールドを表示するのにフォームが必要になる。そうでなくとも長いテキストを保持するフィールドがある場合には、入力の際にも表示の際にもレコード全体を一覧できる方が望ましいだろう。これは表計算にはない利点だ。

せっかくなので、Excelで整理していた「録画した番組のリスト」をインポートしてデータベース化したものに、写真や動画に対応したメディア型のフィールドを加えてフォームを作った。まず最終形を示す。


テンプレート: http://www.zumodrive.com/share/vCMGZiMT

作成手順は「テーマ」を選んで、フィールド部品をその上に並べていく。

テーマというのはPowerPointやバックグラウンドイメージと文字のフォントや色をセットにしたようなもので、「そよ風」や「メモ帳」などの名前が付けられている。予めデザインされているので、配色などで悩む必要がない。最終形は「アイスブルー」を使っているが、例えば「ハンドバッグ」を用いた場合には次のようになる。このスナップショットにはツール類も含めているが、下の方にあるテーマというアイコンでテーマを選択する。


ただし、数が少ないし、フォントもテーマで制限されてしまうので、自分の好みのものはそれほど選べる訳ではない。このあたりは選択だけでなく追加も出来るようにしてあると良いと思う。

フィールド部品の配置は、左下のフィールドリストからドラッグアンドドロップする。フィールド部品はフィールドの型によりカスタマイズされており、選択フィールドはメニューになるし、日付フィールドには右にカレンダーメニューが出てカレンダーから選択することもできる。

部品は好きなところに置ける訳ではなく、他の部品と適当な隙間をとって重ならないように配置される。これは良い点ではあるのだが、見て頂くと分るようにその隙間は結構大きいので、密度を高く配置することはできないし、配置場所はスペーサや区切り線で調整できるもののそれほど自由になる訳でもない。また、フィールド名のラベルはフィールドの上に置くか横に置くか選べ、また、大きさも3段階から選べるのだが、非表示にすることはできない。

現在AppleWorksのデータベースで住所録を管理し、宛名を印刷するためのレイアウトを作っているのだが、この代替には使えないことになる。

とはいえ、画面でみるのに限定すれば、このような制限を加えたフォーム設計の方が使いやすいと思う。

2009/01/31

Bento 2: Excelからインポート

こんにちは。OpenDocって覚えてる?

Bento 2レポート3回目。今日はExcelファイルからのインポートについて。

前回書いたように、簡単なデータ集合だったら、表計算ソフトを使って管理するので十分だ。既にそうやって作られたデータ集合があれば活用したい。Bento 2には表計算ソフトからインポートする機能が備わっている。表計算からCSVファイルにエクスポートしてからインポートするのではなく、直接アプリケーションファイルからインポートできるのはありがたい。対応するアプリケーションには、デファクトスタンダードになっているExcelのほか、iWorkの表計算Numbersも入っている。

表形式で管理している場合、第一行に項目名を書いていることが多いと思われる。読み込み時にこれをデータベースのフィールド名とみなすことができる。その場合、第一行目はデータとしては読み込まれない。

実際に読み込みを始める前にその項目が列挙されるので、それぞれのフィールドのタイプを指定することができる。テキスト型、数値型、日付型/時間型以外に、通貨、レート、経過時間などがある。また、アドレスブック用のフィールドである、アドレスやメールアドレス、URLやIMアカウントも選べる。アドレスやIMアカウントは勤務先、自宅、その他の3種類が選べる。

それから「作成しない」というのも選べて、この場合は第一行に項目名はあるけれどもデータベースにする時にフィールドにしないということができる。

実際にやってみたところ、以下のようなことがわかった。

・ 一覧表形式になるだけでなく、レコードごとの表示 (「フォーム」も作られる。
・ URL型を指定したフィールド以外に「URLリスト」というフィールドが作られる。これは表形式では2つ出て来る訳ではないが、フォームでは2つのフィールドが表示され、同じ値が入っている。
・ Excelで時間を”hh:mm:ss”の形式で入れていたものを経過時間型にマップしたが、変換されていない。Excelは実際は時間でなく時刻なので、形式的にあわないのかもしれない。また、経過時間は”hh:mm:ss”の形式ではなく、「2週3日11時間23分」という形式かw, d, hなどの省略形式しか選べないので、使い勝手はあまりよくない。

2009/01/25

データベースに期待すること

こんにちは。茜さんです (ウソ)。

今回は、前回の予告どおり、データベースに期待することをまとめてみたい。

表計算ソフトでもデータ整理はできる。最初の行のそれぞれの列には項目名を書いて、その後の行には項目名に対応した列に値を入れて行く。ソートができるし、オートフィルタで絞り込みができる。検索はシート全体からでも選択範囲からでもできる。フィルタを組み合わせると複数項目の組み合わせ検索もできる。計算で値をいれることもできる。レコード間の集計もできる。簡単なデータだったら表計算ソフトで十分だ。なによりスキーマをちゃんと設計しなくても始められるのが、ハードルが低くて良い。

ただMac版のExcelは重いようだ。特にソートは全部メモリに読み込んでいるようで、ソートのオプションがでるまでにかなり時間がかかる。Google Docsのスプレッドシートのほうが、ソートキーが一つだけという限定は出て来るものの高速だ。

Google Docsはネットにつながっていれば複数のコンピュータで使えるという利点をもつ。いちいち移動させなくて良いし、なによりも複数のコンピュータにアプリケーションをインストールする必要がない。Excelよりも機能は低いのだが、簡単にデータ整理を行うというには十分だ。

今回データベースを使おうというのだから、これら表計算ソフトに比べたメリットが必要だと思う。

・ 検索が充実していること: 表計算のフィルタは複数項目の組み合わせができると言っても全一致になる。表計算の検索は部分一致ができるが複数項目の組み合わせができない。組み合わせ (ブール演算) と部分一致ができるのが理想。

・ スキーマの設計が容易なこと: 後からフィールドを追加するのが簡単にできると良い。

・ 入力が容易: レコード入力画面を出して、1件1件入力して行くのではなく、コピー&ペーストができるのが望ましい。(Bento 2では表計算のように複数セルまとめて入力ができるようだ)

・ 画面設計が容易 (表計算との比較ではない): 特に画面ごとに用紙サイズまで変えないといけないのでは不便で、画面は常に大きく使えて印刷時だけ画面と連動した大きさになって欲しい。

・ テーブル間の関連: (これはデータベースにしかできないことだが) あるテーブルのひとつのレコードに、他のテーブルの複数のレコードが対応づけられる。JOIN操作まではできなくても良い。

・ ネットワークで複数のコンピュータから使える。専用のクライアントは不要でWebブラウザでアクセスできるのだとなお良い。

・ APIがあってアプリが組める。Ruby on RailsやGoogle App EngineのようにSQL文を使う必要がないのが望ましい。

最後のほうはBento 2ではできないと分っているし、低価格データベースなので出来ないことも容認できるのだが、ネットワークアクセスはGoogle Docsとの比較で考えればあって欲しいフィーチャーだ。

次回は表計算からのインポートを題材にする。

2009/01/18

Bento 2 体験モニターに当選した

こんにちは。山田太郎です (ウソ)。ってにも使ってましたよ。

先日、Mac Fanで募集していたBento 2 体験モニターに当選したというメールが来ていました。

Bentoに関しては、バージョン1で無料評価版をダウンロードして使ってみたのですが、無料評価版だと、
・もし買わないことにした場合に入力したデータが無駄になるので、本腰を入れて使う気になれない。
一方で
・本格的に使わないと良さが分らない。
というジレンマがあって、結局本格的に使わず、試用期間が終わってしまっていたのでした。

モニターになると期間終了後も使えるので、このジレンマが解消されて本格的に使えそうです。

結局その後いろいろな情報の整理は、以下のようなものを使っています。
・ AppleWorksのデータベース: ClarisWorksの時に住所録を作ってそのまま使っている。葉書の宛名印刷のときにフォームを切り替えてさらに「用紙設定」で葉書サイズに変更しなければいけないのが不便で時々間違える。
・ ExcelまたはGoogleスプレッドシート: 項目が揃っていて表形式で整理できるものには向いている。また同じフィールド値をもつものはコピーしやすい。長いテキストは入れにくい (入れられはするが、見にくくなる)。
・ Google SitesやEvernote:自由形式でテキストを入れるもの。添付ファイルがあるもの。レコード間の関係づけをしたいもの (パーマリンク、タグなど)。
・ メディアマーカー: 書籍やDVDなど専用に特化されている。
当然ながらどれも一長一短があって、満足できるものになっていないのですよね。この点でBentoがどのように使えるのか考えて行きたいと思います。次回はデータベースに期待することをまとめてみたいと思います。

追記: 書きました。→ データベースに期待すること

ところでモニターの義務ですが、
・ 最低5回のレポートを制作、公開。1記事あたり最低500文字以上とします。
・ テンプレートを2点制作、公開。
通常最後にレポート書けばよいというのが多いので、結構義務が大きいように思います。
「サンゴ礁の島の管理人」に応募した方がよかったかもしれません。

これは1回目のレポートにするつもりですが、Bentoの内容には触れていないのでカウントされないかもしれません。

それからレポートとして参照されるので、コメントも一緒に読まれると思います。コメントを下さる方はその点お含みおき下さい。