\r\n\r\n
無料のオープンソースLibreOfficeスイートで利用できるアプリケーションの1つに、データベース(Microsoft Accessで作成したものを含む)の作成、接続、読み込みのためのフロントエンド・アプリケーションであるBaseというものがあります。このガイドでは、Baseを使ってシンプルで便利なデータベースを作成し、データの入力を開始するまでの手順を説明します。
LibreOfficeスイートは、Microsoft Officeスイートの代替品で、Windows、macOS、Linuxで利用できます。システムにインストールする方法はいくつかありますが(特にLinuxユーザーの場合)、libreoffice.org/でダウンロードすることができます。今回は、LibreOfficeのバージョン7.0.2.2を使用します。
Baseを開くと、必ずこのダイアログボックスが表示され、新しいデータベースを開始するか、既存のデータベースを開くかを尋ねられます。Createanewdatabase ラジオボタンを選択します。
BaseにはHSQLDB(HyperSQLデータベース管理システム)というリレーショナルデータベース管理システムが付属しており、いつでも使用可能で、デフォルトのオプションになっている。
HSQLDBはシンプルで扱いやすいので、最初のプロジェクトに最適です。リストから「HSQLDB Embedded」オプションが選択されていることを確認し、「Next>」ボタンをクリックします。
Baseは、データベースを登録するかどうかを尋ねます。登録すると、お使いのデバイスにある LibreOffice スイートの他のアプリケーション (Calc や Writer など) からのみ、データベースにアクセスできるようになります。この機能は、あなたのデバイスにネイティブなものなので、他の人がアクセスできることを心配する必要はありません。
新しいデータベースにアクセスするために他のアプリケーションを絶対に使いたくないという確信がなければ、「はい、データベースを登録します」を選択することができます。
Baseは、データベースをODFファイルとして保存するよう促します。保存場所とファイル名を選択し、[保存]をクリックします。
新しいデータベースの場合、まずテーブルを作成する必要があります。これはデータベースの最も基本的な部分であり、どんな作業を行うにも少なくとも1つのテーブルが必要になります。
データベースを開いたときのデフォルトのビューは、「テーブル」セクションです。「タスク」メニューから「デザインビューでテーブルを作成...」を選択してください。
テーブルデザイン」ダイアログボックスが開き、「フィールド名」「フィールドタイプ」「説明」のラベルの下にいくつかの空のセルが表示されます。ここでは、テーブルの必須フィールドを選択し、名前を付けることができます。
これらは、データベースに入力する予定のデータのさまざまな「カテゴリー」です。例えば、映画コレクションのデータベースを作る予定なので、タイトル、監督、発売年などのフィールドを入れる予定です。
ただし、最初に作るべきフィールドは、番号やUPCコードなど、何らかのユニークな識別子であるべきです。このフィールドは、他のすべてのフィールドに重複したデータがある場合でも、各エントリーを区別することができます。この例では、最初のフィールドをMovieIDと名付け、フィールドタイプをInteger [整数]にして、フィールドを単純な数値にすることにしました。
いずれにせよ、その行を右クリックし、ドロップダウンメニューから「主キー」のボックスをチェックします。主キーとしてフィールドを選択しない場合、Baseはテーブルを保存しようとする際にエラーを投げます。
この例では、フィールドプロパティで、主キーフィールドのAutoValueオプションをYesに設定して、エントリーが作成されるたびに新しいID番号を手動で選択する必要がないようにしています。AutoValue 機能を使用すると、Base は新しい入力に対して次の増分の数値を自動的に入力します。
必要な数のフィールドを追加し、適切なフィールドタイプを選択することを確認してください。最も基本的な使い方として、テキストにはVARCHAR、数値にはINTEGER、カレンダーの日付にはDATEが必要です。
データベースにインポートする予定のスプレッドシートまたは.csvファイルにすでにデータがある場合、フィールドを追加する際に、フィールド名がデータファイルのフィールド名と容易に一致することを確認すると便利です。
テーブルの初期作成時に作成されたフィールドは並べ替えることができますが、テーブルを保存した後にフィールドを並べ替えることはできませんので、ご注意ください。しかし、これによって大きな問題が生じることはなく、後からフィールドを追加したり削除したりすることも可能です。
SAVE ボタンをクリックするか、Ctrl+S を押してテーブルを保存すると、Base がテーブルの名前を尋ねるプロンプトを表示します。好きな名前を選んでください(この例では、デフォルトのTable1という名前にしています)。
テーブルを保存した後は、データベースファイル自体を保存して、今までの作業を失わないようにしましょう。テーブル、クエリー、フォーム、レポートが作成または編集されるたびに、.ODF ファイルを保存する必要があります。
テーブルのフィールドを編集する必要がある場合は、テーブルを右クリックし、ドロップダウンメニューから「編集」をクリックする必要があります。
さて、テーブルができたので、テーブルにはデータが必要です。データベースにデータを取り込む方法はいくつかありますが、今日はテーブルビューにデータを手入力する方法と、スプレッドシートからデータを取り込む方法について説明します。
テーブルをダブルクリックするか、右クリックで「開く」を選択します。このダイアログボックスには、先ほど作成したすべてのフィールドが表示されます。1フィールドずつデータを入力することで、表計算ソフトのセルに情報を入力するような感覚で、手入力でエントリーを作成することができます。
入力項目の最後のフィールドに到達したら、Tabキーを押して次の入力項目に進みます。Baseは入力したデータを自動的に保存するので、データを入力するたびにSaveボタンをクリックする必要はありません。また、IDフィールドをAutoValueに設定すると、次のエントリに切り替わったときにBaseが自動的にIDフィールドを入力するようになります。
必要なデータがすべて入力されるまで、続けてください。
表計算ソフトに入力するデータがすでにある場合は、いくつかのルールに従う必要がありますが、簡単に表にインポートすることができます。
スプレッドシートからインポートするには、フィールドが「AutoValue」に設定されている場合や、まだデータがない場合でも、テーブルの各フィールドにカラムがある必要があります。また、ターゲットがAutoValueに設定されていないインポートするすべての列のすべての行にデータが存在する必要があります。
この例では、テーブルの各フィールドにほぼ同じ名前のカラムがあり、IDフィールドを除くすべての行に入力されていますが、これはBaseがインポート時に自動的に入力するものです。名前は正確に一致する必要はなく、列はデータベースのフィールドと同じ順序である必要はありません; インポート中にデータを並べ替えることができます。
インポートを開始するには、インポートするスプレッドシートのデータを、各列のラベルを含めてすべてハイライトし、Ctrl+Cでコピーします。
次に、Baseを開き、Tableビューの画面になっていることを確認します。編集 >貼り付け] をクリックするか、Ctrl+V を押して、[表のコピー] ダイアログボックスを開きます。オプションは変更せず、[次へ]ボタンをクリックします。
列の指定]ダイアログボックスで、インポートする列をテーブルのフィールドに揃える必要があります。上へ」「下へ」ボタンで各列の位置を調整し、コピーした列のうちインポートしたくない列のチェックを外してください。完了したら、[作成]ボタンをクリックしてください。
インポート中にエラーがなければ、ダイアログは閉じられ、メインのテーブルビューに戻ります。テーブルをダブルクリックしてデータを表示し、エラーなくインポートされていることを確認します。
おめでとうございます。これで、データベースの作成、テーブルの構築、データの入力が完了し、使用可能なデータベースファイルが完成しました。Baseでできる他の作業としては、SQLでのクエリーの実行、データベースを使ったフォームのデザイン、レポートの作成などがあります。