Drafts

@cm3 の草稿置場 / 少々Wikiっぽく使っているので中身は適宜追記修正されます。

データベースエディタとしてのエクセル

身の回りを調査した結果、データベース作成に使えるツールMicrosoft Office Excel (以下エクセル)一択だった。もともと、面接の際に「情報系と組むとマニアックなツールの使用を強制させる」問題が指摘されていて、自作のツールやマニアックなツールは最小限にすべきだというポリシーを持っている旨を説明していた。要はインタフェースの完成度をあげたりメンテしたり、開発が停止しまったり、あまりサステイナブルとは言えないからだ。

エクセルというのはとかく情報系の人間の目の敵にされがちであるが、マニアックなツールを使ってもらうくらいなら、エクセルを「うまく」使ってもらった方が開発側にとっても良いことずくめだと思っている。「うまくない」使い方というのは、セルを結合したり、列の幅行の幅背景色といった見た目に重要な意味を持たせたりするやつだ。開発とは関係なく、申請書でそういったファイルへの記入を押し付けられて、目の敵にするに至った研究者も多いだろう(笑)

また、LODの5段階を説明するときにも、エクセルは2段階目のオープンな規格のファイルかどうかという点で、PDFと並んでプロプライエタリで扱いにくい代表格みたいな扱いを受けているが、xlsx のフォーマットになった時点でオープンな規格に基づいたものに変わっているし、PDFほどレイアウト重視の構造をしていない。各プログラム言語のライブラリで扱うことも可能なのだ。

表(シート)の集合で表現できるようなデータなのなら、はじめにエクセルなり Google SpreadSheet なりのフォーマットを与え、それに合わせて記入してもらうというのは非常に有効な方法なのである。LinkData.orgが実際にそういうインタフェースを提供している。あれは、名前のせいで「全然 Linked Data としての要件を満たしていない!」と批判されることもあるが、このような文脈でエクセルで作ったデータベースを生かすという観点からはなかなか良くできたプラットフォームだと思っている。

csv ではなく xlsx ?

別に csv でも構わない。むしろ、csv の有用性は至る所で主張され認識されているので述べなかったまでである。ただし、以下の2点がデメリットになるし、プログラムから扱う場合はどうせライブラリを使うべきなので、csvにすることのメリットはあまり大きくないと考えている。

1.エクセルで扱う場合文字コードは Shift JIS 限定となる

 csv を使うことを唱道している人の多くは、そのエディタとしてエクセルの活用を想定している。しかし、xlsx 内の xml は UTF-8 である一方、エクセルはUTF-8CSV出力も入力も未だにサポートしていない。

2.csv は単独の表しか扱えない

Access どうですかとの質問を受けた

新しく入ってきた助教の方は結構データベース作成に関する関心が高いそうで、Access でデータベース作ってみたいけれど、どうですかとおっしゃった。

要件は、少々複雑なクエリが書けることとかで、それは確かにデータベースが強みとするところだ。僕は Access を使ったことがほぼないが、それはプログラムでいじることを前提としているからで、別に Access は悪くないと思ったので、肯定的に反応をした。

Microsoft Accessを見ると、最近はウェブアプリまで作れること、Microsoft Access 2013 Runtimeを使えば、Access持ってない人にも使える。でも、ウェブアプリの方はSharePoint使えって書いてあるから、そう簡単には使えないんじゃないかな。

ちゃんとデータ見せてもらいながら相談した方がいいかも。