• 検索結果がありません。

OpenOffice.org Base とは?... 3 Base データベースファイル sampledb070.odb をダウンロードする... 3 Base データベースを登録する Base クエリーと SQL 文は表裏一体 Base から Access のデータベースに

N/A
N/A
Protected

Academic year: 2021

シェア "OpenOffice.org Base とは?... 3 Base データベースファイル sampledb070.odb をダウンロードする... 3 Base データベースを登録する Base クエリーと SQL 文は表裏一体 Base から Access のデータベースに"

Copied!
67
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

2 OpenOffice.org Base とは? ... 3 Base データベースファイル sampleDB070.odb をダウンロードする。 ... 3 Base データベースを登録する。 ... 10 Base クエリーと SQL 文は表裏一体。 ... 14 Base から Access のデータベースに接続する方法。 ... 21 Base フィールドとレコードについて。 ... 30 Base デザイン画面でクエリーを作成する方法。 ... 31 Base クエリーで性別を表示する方法。 ... 51

(3)

3 http://base.officehp.com/

OpenOffice.org Base とは?

Base は統合オフィスソフトである OpenOffice.org や StarSuite に含まれている、データベ

ースソフトです。この二つに含まれている Base は同じです。

Base は Microsoft Office の Access のようなデータベースソフトです。テーブル、クエリー、 フォーム、レポート、マクロなど、データベースソフトとして必要な機能は、一通りそろっていま す。 Access はとても操作性が優れたデータベースソフトで、解説書が多く情報が豊富です。しかし Access は新製品が出ると、買い換えるか、有料でアップグレードしなければなりません。またイ ンストールできるユーザー数に制限があったりもします。 Base を使う最大のメリットは、何といってもオープンソースソフトウェアであることです。Base は誰でもインターネットから無償で入手できます。また日々開発が続けられているので、無償で更 新することが可能です。 Access を使い慣れた人が、初めて Base を使うと、操作性や機能に満足できないかもしれませ んが、これからどんどん改良されていくと思います。

Access と Base の機能的な大きな違いは、Access がデータベース機能自体を持っているのに対

し、Base にはデータベース機能自体は無いことです。 Base は 標準で HSQLDB というデータベースを利用します。そのため Base にデータベース機 能が付いているように感じますが、あくまでデータベースのフロントエンド(クライアントまたは 窓口)なのです。 HSQLDB は利用できるデータベースの 1 つであり、同じように Access、MySQL、PostgreSQL など、他のデータベースに接続することもできます。 Base データベースファイル sampleDB070.odb をダウンロードする。 この講座は OpenOffice.org 初心者入門講座 の続編という位置付けです。まだの方は先にそちら

をご覧ください。 OpenOffice.org や StarSuite のインストールから、 Base の基本的な使い

方を掲載しています。

今回は Base の学習用に、データベースファイルを用意したので、ダウンロードしてください。 全国の郵便番号や住所が入っています。

動作確認は OpenOffice.org か StarSuite のどちらの Base でもかまいません。

(4)

4 *ファイルは圧縮されているので、解凍してください。 【2】ファイルを解凍すると「sampleDB070.odb」があります。 【3】Base を起動して、「sampleDB070.odb」を開き、テーブルを表示します。 すでに8 つのテーブルが作成済みで、データが入っています。 【4】クエリー、フォーム、レポートには以下のファイルが作成済みです。

(5)

5 ・Q01Prefecture ・F01PrefectureASC ・R01PrefectureASC これらは OpenOffice.org 初心者入門講座 で作成したものと同じです。詳しくはそちらをご覧く ださい。 【5】各テーブルのデザインとレコードを確認してください。 ・テーブルデザインを確認する方法 ・レコードを確認する方法

(6)

6 *T03Town はレコード数が 12 万件以上あるので、表示にかなり時間がかかります。気長にお待 ちください。 Base と Access でフィールドのデータ型を比較する。 【6】データを確認したら、データベースを閉じてください。 【ワンポイント】 テーブル T03Town のようにレコード数が多くなると、データベースが HSQLDB の場合、処理 に時間がかかるようです。 まったく同じものを、データベースを Access にして、 Base からリンクした場合は、それほど 時間がかかりません。 したがって Base が遅いというわけではなく、 HSQLDB 側で時間がかかっているようです。 大量のレコードを扱うシステムの場合は、データベースを MySQL などにして、Base はデータ ベースのフロントエンドとして使うほうが効率がよさそうです。

(7)

7 データだったものを、 Base にインポートしたものです。 テーブルのデザイン(構造)は、インポートの時に自動的に設定されるため、Base ではフィールド の並び順がバラバラです。 Access の並び順の方がわかりやすいですね。でも今の段階では気にしないでください。表示順は あとからクエリーでいくらでも加工できます。 Access はテーブルにレコードを入力した後でも、簡単にフィールドの順番を入れ替えることがで きますが、Base はできないようなので、そのままにしました。 (1)Access では「データ型」と言いますが、Base では「フィールドの種類」と言います。 (2)Access のデータ型 に対応する HSQLDB のフィールドの種類 今回のデータベースで使っているのは、以下の型だけです。 整数型 = 整数[INTEGER] テキスト型 = テキスト[VARCHAR] 通貨型 = 数値[NUMRIC] 日付/時刻型 = 日付/時刻[TIMESTAMP]

(8)

8 フィールドの種類は他にもいろいろありますが、必要なときに説明します。 (3)Access のオートナンバー型に相当する機能は ・Access Base ではフィールドの種類を 整数[INTEGER] にした後、「自動入力値」を「はい」に設定する ことで可能です。 ・Base 【ワンポイント】 「HSQLDB のフィールドの種類」と書いたのは、Base では使うデータベースによって種類が変 わるからです。 ・Base から標準の HSQLDB を使った場合

(9)

9

・Base からリンクで Access を使った場合

(10)

10 Base データベースを登録する。 Base で デ ー タ ベ ー ス ウ ィ ザ ー ド を 使 っ て 、 新 し い デ ー タ ベ ー ス を 作 成 し た 時 に は 、 OpenOffice.org(または StarSuite) への「データベースの登録」は自動的に行われます。 しかし既存の odb ファイル をダウンロードして入手した場合などは、データベースを手動で登録 する必要があります。 データベースの登録は、Base 起動後にメニューの「ツール → オプション」から設定することが できます。

OpenOffice.org にデータベースを登録すると、OpenOffice.org の Calc や Writer からデー タベースを参照することができます。この機能を「データソース」と言います。 データソースを使うと、データベースのデータを Calc や Writer へ挿入したり、差し込み印刷す ることができるので便利です。 データベースを登録しなくても、 odb ファイル は使うことができますが、他のアプリケーション と連携できると用途が広がるので、手順を説明しておきます。 【1】Base を起動して、「sampleDB070.odb」を開きます。 * Calc や Writer からも登録できます。

(11)

11

【2】メニューから「ツール → オプション」を選択します。

【3】ダイアログボックスが表示されたら、「OpenOffice.org Base」(または StarSuite)から「デ ータベース」を選択すると、登録されたデータベースの管理が行なえます。

(12)

12

【4】新しくデータベースを登録する時は、「新規作成」ボタンをクリックします。

【5】「検索」ボタンでデータベースファイルを指定します。「登録名」が自動的に表示されるので、

「OK」ボタンをクリックします。

(13)

13

ファイルの場所や登録名を変更したい時には、このダイアログボックスの「編集」で行なえます。

また登録を「削除」しても、 odb ファイル自体は削除されませんので安心してください。

【7】データベースを登録すると「データソース」から利用できるようになります。 ・Calc の例

(14)

14 テーブルのデータを挿入した様子 テーブルだけでなく、クエリーのデータも利用できます。またデータソース画面で、データベース 上のデータを追加したり、更新することもできます。 Base クエリーと SQL 文は表裏一体。 Base にはクエリーという機能があります。クエリー(query)はデータベース管理システムに対し て、問い合わせ(検索、追加、更新、削除など)を行ないます。

Base や Access などのデータベースアプリケーションでは、GUI で視覚的に作成したクエリー を保存しておいて、何度でも実行することができます。

クエリーをデザインすると、SQL(Structured Query Language)文が自動的に作成されます。逆

に SQL 文でクエリーをデザインすることもできます。この二つの関係は密接で切り離せないもの

です。

(15)

15

(16)

16 この Q01Prefecture は OpenOffice.org 初心者入門講座 で作成したものです。作り方はそち らをご覧ください。 これからクエリーを編集しますが、保存はしないでください。 【3】「Q01Prefecture」を選択し、「編集」ボタンをクリックします。 【4】クエリーのデザインビュー(画面)が表示されました。「並べ替え」が「昇順」になっているこ とを覚えておいてください。

(17)

17

*昇順なので「1 北海道 → 47 沖縄」の順になります。

(18)

18 【6】SQL 文が表示されました。 デザインビューでクエリーを視覚的に作成すると、裏方でSQL 文が自動的に作成されます。 【7】SQL 文の最後を ASC から DESC に変更します。 *DESC は降順という意味 【8】もう一度「デザインビューのオン / オフ切り換え」ボタンをクリックします。

(19)

19

【9】クエリーのデザイン画面に戻りました。「並べ替え」が「降順」に変わっています。

SQL 文を直接書くと、それがデザインビューに反映されます。つまりクエリーと SQL 文は表裏一 体なのです。

(20)

20

【11】降順に設定したので「47 沖縄 → 1 北海道」の順になりました。

(21)

21 【13】変更は保存しないので、「いいえ」ボタンをクリックします。 Base や Access などで完結するシステムを作る場合は、クエリーをデザインするだけで済みま す。SQL 文の知識は必ずしも必要ではありません。 しかし Java や PHP など、他のプログラミング言語からデータベースを操作する場合は、プログ ラムの中でSQL 文を組み立てて発行します。そのため SQL 文の知識が必要になってきます。 今の段階では、SQL 文の詳しい意味はわからなくてもよいのですが、クエリーをデザインする時 に、どんなSQL 文が作成されているか見る習慣を付けてください。あとできっと役立ちます。 Base から Access のデータベースに接続する方法。 Base はデータベースのフロントエンド(クライアントまたは窓口)なので、標準の HSQLDB 以 外のデータベースにも接続することができます。

今回は Access のデータベースに接続しますが、MySQL や Oracle などに接続する手順もほと

(22)

22 Base には Access 用のドライバが最初から用意されているので、簡単な手順で接続できます。 【1】 SampleDB071.zip をダウンロードします。 *ファイルは圧縮されているので、解凍してください。 【2】ファイルを解凍すると「SampleDB071.mdb」があります。これは Access のファイルで す。 【3】Base を起動します。 【4】「データベースウィザード」が表示されました。

(23)

23

【5】「既存のデータベースに接続」をチェックし、「Microsoft Access」を選択したら、「次へ」

(24)

24

【6】「ブラウズ」ボタンをクリックして、解凍した Access のファイル「SampleDB071.mdb」

を指定し、「次へ」ボタンをクリックします。

*解凍した場所により表示が異なります。

(25)

25

【8】保存する場所を選択して、ファイル名に「AccessLink.odb」と入力し、「保存」ボタンをク

(26)

26

【9】AccessLink.odb が表示されました。

(27)

27

これはリンクした状態なので、Base 側でデータを変更すると、Access 側(SampleDB071.mdb)

のデータも変わります。クエリーは表示だけで、編集したりすることはできません。

またリンクしたテーブルから、クエリー、フォーム、レポートを新規作成することができます。 【11】テーブル「T03Town」を開いてください。

(28)

28

【12】最後のレコードを表示するまでの時間を、 HSQLDB の場合(sampleDB070.odb)と比べ てみてください。

(29)

29

接続しているデータベースによって、スピードが違うことが実感できると思います。

【13】テーブル「T03Town」を編集で開くと、フィールドの種類が HSQLDB の時と違うことが

(30)

30 あとは「AccessLink.odb」からいつでも開くことができます。 Base がデータベースのフロントエンドだということが、実感できたのではないでしょうか。 今回は Access に接続したので、あまりメリットを感じないかもしれません。Access 自体にも クエリー、フォーム、レポートを作成する機能があるからです。 しかし Base を MySQL のフロントエンドとして使うと、一般ユーザーが利用するシステムを簡 単に作ったり、プログラマーが開発の時に MySQL のデータを簡単に扱えるので、とてもメリッ トがあります。 MySQL については MySQL 初心者入門講座 をご覧ください。 【ワンポイント】 Access へは「ODBC」でも接続できます。 また接続するデータベースによっては、インストールはもちろん、専用の ODBC ドライバを用意 しておく必要があります。 Base フィールドとレコードについて。 Base、Access、Oracle、SQL Server、MySQL、PostgreSQL などはリレーショナルデータベ ース管理システム(RDBMS)です。 現在もっともよく利用されているリレーショナルデータベースでは、データは表のような構造で管 理されています。表計算ソフトの行や列と似ているので、何となく分かるのではないでしょうか。

(31)

31 データベースで使う用語は、解説書によって呼び方に違いがあります。Base で初めてデータベー スを学ぶ初心者のために、最も基本的なことをまとめておきます。 データベースでは、上記のような表を「テーブル」といいます。フィールドは「列」とか「column」 といい、レコードは「行」とか「row」と言うことがあります。 ・フィールド 列 column ・レコード 行 row フィールド(列)には、同じ種類のデータが入ります。また 1 つのレコードで、1 件のデータを表し ます。 例えば顧客マスターのテーブルでは、顧客名のフィールドには必ず文字列が入り、数字や日付が入 ることはありません。そして1 件のレコードは顧客 1 人分のデータになるということです。 Base デザイン画面でクエリーを作成する方法。 Base には視覚的にクエリーを作成する機能があります。SQL 文がわからなくても、マウスでド ラッグ&ドロップするだけで、自由自在にクエリーが作成できます。 OpenOffice.org 初心者入門講座 で最も基本的なクエリーの作り方(Q01Prefecture)は解説しま したので、今回はその続きになります。まだの方は先にそちらをご覧ください。 今回は 2 つのテーブルを共通のフィールドで関連付けて、まるで 1 つのテーブルのように表示す る方法を解説します。これがリレーショナルデータベースでクエリーを活用する基本となります。 クエリーがわかれば、Base はわかります。 【1】Base を起動して、「sampleDB070.odb」を開きます。

(32)

32

(33)

33

【3】「デザイン表示でクエリーを作成」をクリックします。

【4】「テーブルまたはクエリーの追加」ダイアログボックスで、「表」を選択すると、テーブルの 一覧が表示されます。

(34)

34

【6】「表」を選択し、「T02City」を選択したら、「追加」ボタンをクリックします。

(35)

35

【8】クエリーデザイン画面に、「T02City」が追加されました。

(36)

36

【10】「CITY_CD」が画面下に選択されました。

(37)

37

【12】「クエリーの実行」ボタンをクリックします。

(38)

38

しかし都道府県名は表示されていません。有名な都市ならわかりますが、日本全国には市町村が 1900 以上あります。都道府県も一緒に表示されていたほうがわかりやすいです。

そこで次は都道府県も表示してみましょう。

(39)

39

(40)

40

*この戻る操作を覚えてください。

(41)

41

【17】ダイアログボックスで、「T01Prefecture」を追加します。

(42)

42

【19】マウスで T02City の「PREF_CD」を、T01Prefecture の「PREF_CD」にドラッグ&ド

(43)

43

*逆でも同じです。

(44)

44

(45)

45

【22】「クエリーの実行」ボタンをクリックします。

(46)

46

(47)

47

ここまでの作業を保存しましょう。

【25】「保存」ボタンをクリックします。

【26】クエリー名に「Q02City」と入力し、「OK」ボタンをクリックします。

(48)

48

【28】保存したらクエリーは閉じてください。

(49)

49

(50)

50

【31】復習を兼ねて、「Q02City」を編集で開き、CITY_CD の並べ替えを「昇順」に設定してく ださい。

設定したら保存します。 【解説】

(1) PREF_CD は両方のテーブルにありますが、必ず T02City 側の PREF_CD を選択します。

これはとても重要なポイントです。クエリー Q02City の主役となるテーブルは、 T02City です。 しかし T02City だけでは都道府県名が表示できないので、T01Prefecture を追加しました。つ まり T01Prefecture は脇役です。 もし T01Prefecture 側の PREF_CD を選択した場合、このクエリーから作成したフォームでは、 データが入力できないなどの不具合の原因となります。 (2)クエリーを使うと、フィールドの並び順は自由に入れ替えることができます。また目的のフィ ールドだけを選んで表示することができます。 (3)クエリーを使うと、複数のテーブルを関連付けて、まるで一つのテーブルのように、データを

(51)

51 表示することができます。 (4)レコードは必ずしも番号順に表示されるとは限りませんので、並べ替えを設定するようにして ください。 【ワンポイント】 余裕のある方は、今回のようなクエリーをデザインした場合、どのような SQL 文ができるのか見 てください。今はSQL 文の意味がわからなくても結構です。SQL 文を見慣れることが大事です。 Base クエリーで性別を表示する方法。 ・「T04Customer」(顧客マスター)には、性別に関する番号が保存されています。 ・「T05Sex」(性別マスター)には、番号と「男」「女」という文字が保存されています。

(52)

52

この顧客マスターと性別マスターを関連付けることで、顧客マスターに文字で性別を表示すること ができます。

要領はクエリ Q02City で都道府県名を表示した時と同じです。

(53)

53

(54)

54

【3】「デザイン表示でクエリーを作成」をクリックします。

(55)

55

(56)

56

(57)

57 【7】クエリーの実行結果が表示されました。 しかしこれでは性別が分かり難いです。性別を文字で表示するように、クエリーのデザインを変更 します。 クエリーのデザイン画面に戻します。 【8】メニューから「表示 → プレビュー」をクリックします。

(58)

58

*プレビューのチェックを外す

(59)

59

(60)

60

(61)

61

(62)

62

フィールドの順番は、簡単に入れ替えることができます。

【13】フィールド上部をマウスで ドラッグ&ドロップ すると移動できます。

(63)

63

クエリーのデザイン画面でフィールドを移動する方法は、よく使いますので覚えてください。 【15】ついでに「CST_CD」の並べ替えを「昇順」にします。

(64)

64

*レコードは番号順に表示されるとは限らないため

(65)

65

このほうがわかりやすいですね。

ここまでの作業を保存しましょう。

(66)

66

【18】クエリー名に「Q04Customer」と入力し、「OK」ボタンをクリックします。

【19】保存したらクエリーは閉じてください。

(67)

67

【ワンポイント】

参照

関連したドキュメント

Notice that for the adjoint pairs in corollary 1.6.11 conditions (a) and (b) hold for all colimit cylinders as in (1.93), since (F ? , F ∗ ) is an equipment homomorphism in each

Our ultimate object being to classify quadratic forms over free modules with unique base, in this paper we study quadratic forms in terms of orthogonal de- compositions of such

From (3.2) and (3.3) we see that to get the bound for large deviations in the statement of Theorem 3.1 it suffices to obtain a large deviation bound for the continuous function ϕ k

Note that the Gysin isomorphism [20, Theorem 4.1.1] commutes with any base extension. The assertion follows from induction on the dimension of X by a similar method of Berthelot’s

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

(自分で感じられ得る[もの])という用例は注目に値する(脚注 24 ).接頭辞の sam は「正しい」と

基準の電力は,原則として次のいずれかを基準として決定するも

なお,ドイツの PRA データベースである ZEDB や,スウェーデン及びフィン ランドの PRA データベースである T-book