SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Oracle使いが語る、FileMakerを利用した新たなソリューションの可能性

Oracle with FileMaker:必要なデータは現場で管理させるというアプローチ

Oracle使いが語る、FileMakerを利用した新たなソリューションの可能性 (1)


  • X ポスト
  • このエントリーをはてなブックマークに追加

FileMakerとOracleとの連携

 このように、現場の担当者でもデータ入力用のシステムを容易に開発することができ、そしてそれが自動的にデータベースとして構築されるため、複数のユーザーで同時に利用できるのは魅力的です。しかし、マスターと呼ばれるデータは、社内全体で使用しているデータベースシステムで共通管理したいはずです。つまり、やはりOracleのデータとして扱いたいと思うでしょう。

 先述した通り、Oracleには外部表という機能があり、OS上のテキストファイル(フラットファイル)をそのまま読み込むことができます。もう一度言い換えれば、テキストファイルのデータをOracleにローディングして取り込まずに、そのままOS上に置いたまま利用できるのです。

Oracleでの外部表の読み込み

 10gでは、外部表に対して、ORACLE_LOADERアクセスドライバとORACLE_DATAPUMPアクセスドライバの2つが用意されています。ORACLE_LOADERアクセスドライバは、フィールド間がカンマ(,)で区切られたいわゆるcsv形式のファイルを読み込むことができます。ただし、そのためにはOracle側で次の準備が必要です。

  1. 外部表用ディレクトリの作成
  2. 外部表所有者、利用者に対するアクセス権の付与

 「c:\temp」ディレクトリを外部表用ディレクトリ「fm_dir」と名づけ、educユーザーに権限を付与する手順を以下に示します。

-- 外部表用ディレクトリfm_dirの作成
CREATE OR REPLACE DIRECTORY fm_dir
AS 'C:\TEMP';

-- 権限付与
GRANT READ ON DIRECTORY fm_dir TO educ;

 次に、educユーザーで外部表を作成しましょう。データとなるレコードの区切りは改行で行われ、フィールドの区切りはカンマ(,)で行われているものとします。

CREATE TABLE course
(COURSE_ID  VARCHAR2(8) , COURSE_NM  VARCHAR2(100)
,COURSE_PRIOD  NUMBER , COURSE_PRICE  NUMBER
,COURSE_TYPE  VARCHAR2(30) , COURSE_OUTLINE  VARCHAR2(4000)
,COURSE_OBJECT  VARCHAR2(100) , COURCE_KNOWLEDGE  VARCHAR2(400)
,COURSE_TARGET  VARCHAR2(4000) )
ORGANIZATION EXTERNAL
           (TYPE ORACLE_LOADER
            DEFAULT DIRECTORY fm_dir
            ACCESS PARAMETERS
           (RECORDS DELIMITED BY NEWLINE
                    NOBADFILE
                    NOLOGFILE
            FIELDS TERMINATED BY ','
            OPTIONALLY ENCLOSED BY ' " ')
    LOCATION ('course.csv'));

FileMakerからのテキストファイルのエクスポート

 しかし、もう一つ大事なことがあります。FileMakerに登録したデータをテキストファイルに変換しなければなりません。しかし、これも簡単にできるのです。[ファイル]-[レコードのエクスポート]を選択すると、指定したファイル書式に変換し出力してくれます(図10)。

図10
図10

 以上で準備は整いましたので、実際に外部表を検索してみましょう。(図11)

図11
図11

 これなら担当者は、マスターとして公開してよい状態になった段階でcsvファイルに変換すればいいし、データを追加/修正中で、まだマスターとして公開したくない場合は、変換せずに以前に提供したcsv形式のファイルを社内で使ってもらえばいいのです。

現場担当者が自らデータベースを構築するメリット

 いかがですか?

 従来、DB設計者がヒアリングして、表(テーブル)や列(項目)を設計し、画面を作ってシステムを完成させ、現場の担当者に提供してきました。DB設計者は、「この項目のサイズは何バイトにしておけばよいか?」と一つ一つ頭を悩ませ、しかも、その結果定義したサイズも運用と共に不足するような事態が多々あったことでしょう。DB上のサイズ変更は容易にできても、プログラムの修正にはいろいろな障壁があって、すぐには対応できないことが起こりえていました。

 しかし、FileMakerでは、そんなことを気にして作成する必要がないことがお分かりいただけたことでしょう。

 そして、「FileMakerで新規に画面を作成してください」と言われると抵抗があるかもしれませんが、Excelで運用しているファイルをFileMaker形式に変換するだけで、簡単に基となるDBMSを作れてしまうこともご理解いただけたことでしょう。これであれば、現場の担当者レベルでの修得も容易です。

 使い勝手がよければ、DBMSとしての規模は広がって行くでしょうし、現場の担当者や部内のメンバーだけでなく、全社的に活用したいデータが蓄積されていくことでしょう。そうなると、「データは一元管理したい」「管理はSEが行いたい」という思いが当然出てきます。

現場の生のデータを基に、SEが全体のシステムを構築していく

 だったら、そこからでよいではないでしょうか?

 DB設計者はヒアリングではなく、FileMaker内のデータ定義、画面、帳票をもとに設計すればよいのです。これは、関係者が机上で予測した内容ではなく、生のデータ、実状です。また、これをもとに、設計、開発、構築している間も、現場の担当者は日々の作業を中断することなく、FileMakerというDBMSにデータを蓄積し、活用し続けることができます。

 外部表は実際のデータをOracle内に持つわけではないので、現場の担当者が提供するテキストファイルの形式が変われば、外部表を再度作成しなおすだけです。外部表のデータは更新ができない点のみが、普通の表と異なるだけですから、他の表と結合することもできますし、外部表のデータをソースとして(基データとして)、別表を作成することも可能です。

次回予告

 しかし、まったく何も無いところからデータを起こすことよりも、既に、Oracle内にマスターデータが存在し、新たなニーズからトランザクションデータが新規に発生する場合もあるでしょう。いえ、このケースの方がむしろ多いのかもしれません。

 そこで、次回はこの逆、つまりOracle内のデータをFileMakerからアクセスする方法について考えてみます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Oracle使いが語る、FileMakerを利用した新たなソリューションの可能性連載記事一覧

もっと読む

この記事の著者

林 優子(ハヤシ ユウコ)

日本オラクル株式会社の教育ビジネスのスタートアップを全面的に支援し、バージョン5の頃からOracleに携わるベテラン講師として知る人も多い。Oracle認定講師を表彰するExcellent Instructorを連続受賞。1ランク上のITスペシャリスト育成を目標に、データベース分野にとどまらず「プレゼンテーション」、「ロジカルシンキング」などのトレーニングも手がけている。著書に『オラクルマスター教科書』シリーズ(翔泳社)、『プロとしてのデータモデリング入門』(SBクリエイティブ)など。その他、雑誌執筆、著書・メディア出演も多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1766 2008/08/22 19:31

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング