Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

BASEでデータ処理の幅を広げよう

320 vues

Publié le

LibreOffice BASEを使ったデータ処理で、知っておきたい事項をまとめました。

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

BASEでデータ処理の幅を広げよう

  1. 1. ワープロでも表計算でもない 第三のツールを活用しよう Dec 8 OSC2018 Fukuoka LibreOffice BASE で データ処理の幅を広げよう Koutarou Watanabe CC-BY-SA4.0
  2. 2. Agenda   ~アジェンダ~ 講師紹介 LibreOffice BASE って? BASE を起動してみよう! 各オブジェクトを理解しよう データ型を理解しよう(データの型を意識しよう) Access の構成と比べてみる データインポートとエクスポート マクロを使った処理のあれこれ   などなど 
  3. 3. 講師紹介   ~ Lecturer Profiles ~ 渡 浩太郎(邊 Koutarou Watanabe ) 福岡市出身 某団体 2011 年 LibreOffice 導入時の メイン担当&マニュアル作成 + 苦情処理係 (現在はシステム担当ではありません) LibreOffice 日本語チーム( 2018/11 ~) 質問や悩み事等は直接本人まで! 今日もプライベート参加です このプレゼンは渡辺の個人的見解であり、所属団体の見解ではございません   
  4. 4. 本セミナーはこんな内容です 事務職やシステム運用担当者など 非開発職の方々を対象とした ノンプログラマー向けです。 BASE の使い方を細かく説明する、使い方講習会では ありません。 BASE でデータ処理を始める時に押さえておきたい事 項について説明します。 大多数の人が「よくわからない」データベース。 使いこなせば、仕事をラクにできる事 100 倍です。 BASE で新しいデータ処理に触れてみましょう。 処理 SQL 等は自学でお願いします!
  5. 5. 本セミナーの対象バージョン 本セミナーは LibreOffice : Ver 6 . 1 . 3 OS : Windows10 ー 64 ビット で動作確認できた内容についてお話ししています。 他のバージョンや OS では、セミナー内容とは違う場 合がありますのでご了承ください。 ちなみに Ver6.1.3 の BASE ではレポートフッターにページや日付を挿入 しようとすると LibreOffice がクラッシュします!
  6. 6. LibreOffice-BASE って知ってる? 1.LibreOffice-BASE とは?(ざっくり言うと) ・データベース統合開発環境である ・ RDB (リレーショナル DB )がメインである 2.Ms-Office で言うところの? ・ Access に該当(機能分類では) ・ファイル互換性は無いに等しい 3.LibreOffice インストール後スグ使える? ・ BASE を使うには JAVA 環境が必要 Writer - WORD Calc - EXCEL BASE -???? JRE : Java Runtime Environment JDK : Java Development Kit 私の場合 Windows10 JRE10 では動かなかった
  7. 7. LibreOffice-BASE のデータベース? 1.BASE では埋込データベースを選択可能 ・埋込 (Embedded)DataBase(DB) って? ・ HSQLDB と Firebird とは? ・ HyperSQL-DataBase ( Java100 %) ・ Firebird- 旧 Borland の InterBASE が土台 2.BASE で埋込 DB を選ぶなら? ・ Firebird を選択すべき理由 ・ LibreOffice5.4 から Firebird が Ver 3に! 市販されていた DB なので 動作が非常に安定している 安定している・対応 SQL が多い・ ANSI SQL 標準に準拠・ネット上に情報が多い LOVer 4.2から Firebird を選択可能になったが FB2.5 だった
  8. 8. 1.何か分からない BASE の起動画面 ・ Writer や Calc との違いとは? 2.データベースソフト (BASE) とは? 3.代表的なオブジェクトは4つだけ! ・テーブル ・・・ データ保管 ・クエリー ・・・ 仮想表(多様な切り口) ・フォーム ・・・ 画面(インターフェース) ・レポート ・・・ 帳票(多様な見せ方) LibreOffice-BASE を起動してみる データを整理して蓄積し、さまざまな組み合わせで取り出せるソフト 表計算:数値データの集計・分析に使用するソフト ここではビューとかストアドプロシージャは意識しないってことで
  9. 9. BASE の起動画面 何をやればよいのか さっぱりわからない オブジェクト 切り替え
  10. 10. 各 OBJECT の役割を理解しよう 1.テーブル ・データを格納する単位 ・データの論理的な集まり 2.クエリー ・問い合わせと結果( SQL 含む) : 仮想表 3.フォーム ・データの表示方法(一覧表・カード型 etc ) 4.レポート ・見やすい印刷物を設計 / 表示
  11. 11. データ型を理解しよう 1.テーブルに格納されるデータは項目毎に設定され たデータ型に従います ● 日付型の項目には「日付」以外、登録できない。 ● 数値型の項目には「数字」以外、登録できない。 ● データベースではデータを「型」で分類する。 ● しっかりした「型」分類によりデータの整合性を保 持している。 ● データ型はデータインポート時に意識する必要が 出てくる。
  12. 12. BASE ( Firebird )のデータ型を知ろう  ~ 多いと感じますが ~ 分類 データ型名 範囲 文字列 CHAR(m) VARCHAR(m) 半角英数( ASCII )  1 ~ 32767 文字 全角( SJIS_0208 )  1 ~ 16383 文字 CHAR(m) は m 文字の固定長 VARCHAR(m) は最大 m 文字の可変長 整数 SMALLINT INTEGER -32,768 ~ 32,767 -2,147,483,648 ~ 2,147,483,647 長整数 BIGINT 符号付 64 ビット整数 Dialect3/FB1.5 以降で使用可能 実数 FLOAT DOUBLE PRECISION 3.4×10 の -38 乗~ 3.4×10 の 38 乗 有効桁数 7 桁 1.7×10 の -308 乗~ 1.7×10 の 308 乗 有効桁数 15 桁 固定小数点 NUMERIC ( m,n ) DECIMAL ( m,n ) 有効桁数 m = 1 ~ 15 小数点以下の桁数 n=1 ~ 15 ( m >= n ) 最高 m 桁の有効数字を格納 有効桁数 m = 1 ~ 15 小数点以下の桁数 n=1 ~ 15 ( m >= n ) 最低 m 桁の有効数字を格納 日付 DATE TIME TIMESTAMP 西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日 00:00:00 ~ 23:59:59 までの時分秒 西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日と時分秒 その他 BLOB グラフィック,文字などの大量データに使用 : 可変長 論理型 BOOLEAN 真理値の「真 = true 」と「偽 = false 」
  13. 13. BASE のデータ型を知ろう ~ 普段使うのは赤枠内くらい ~ 分類 データ型名 範囲 文字列 CHAR(m) VARCHAR(m) 半角英数( ASCII )  1 ~ 32767 文字 全角( SJIS_0208 )  1 ~ 16383 文字 CHAR(m) は m 文字の固定長 VARCHAR(m) は最大 m 文字の可変長 整数 SMALLINT INTEGER -32,768 ~ 32,767 -2,147,483,648 ~ 2,147,483,647 長整数 BIGINT 符号付 64 ビット整数 Dialect3/FB1.5 以降で使用可能 実数 FLOAT DOUBLE PRECISION 3.4×10 の -38 乗~ 3.4×10 の 38 乗 有効桁数 7 桁 1.7×10 の -308 乗~ 1.7×10 の 308 乗 有効桁数 15 桁 固定小数点 NUMERIC ( m,n ) DECIMAL ( m,n ) 有効桁数 m = 1 ~ 15 小数点以下の桁数 n=1 ~ 15 ( m >= n ) 最高 m 桁の有効数字を格納 有効桁数 m = 1 ~ 15 小数点以下の桁数 n=1 ~ 15 ( m >= n ) 最低 m 桁の有効数字を格納 日付 DATE TIME TIMESTAMP 西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日 00:00:00 ~ 23:59:59 までの時分秒 西暦 100 年 1 月 1 日~ 32768 年 2 月 29 日までの年月日と時分秒 その他 BLOB グラフィック,文字などの大量データに使用 : 可変長 論理型 BOOLEAN 真理値の「真 = true 」と「偽 = false 」
  14. 14. Access の構成と比べてみる システムイメージ Access テーブル (TABLE) フ ォ ー ム Form ク エ リ ー Query レ ポ ー ト Report フ ォ ー ム Form BASE ク エ リ ー Query レ ポ ー ト Report Firebird (TABLE) DataSource Writer Firebird 埋込 Embedded→ Access の方が各オブジェクト間の連携が強力で気軽に利用しやすい反面、実際の DB 開発に近い環境を意識しにくい。その点はBASE に分がある
  15. 15. BASE を使ったデータ処理 1.BASE (データベース)の利点って? ・仮想的にデータを表示できる - クエリー ・仮想だから元データに影響が及ばない ・印刷設定も元データに影響しない - レポート ・処理パターンを保存できる - クエリー / レポート 2.データベースが得意な処理とは? ・データの連結 ・集計(グループ化) ・一定の条件によるデータ抽出
  16. 16. BASE へのデータ移動 ~ データインポート ~ 1.BASE へデータを移すには? ・テーブルにデータを移すには? ・ Calc を中継するパターンが簡単便利 ➢範囲選択+コピー & ペースト(コピペ)で完了 ➢連結用コードは Calc で生成しておこう! 2.データ型を意識しよう ・意識すべきデータ型は3つだけ! ・主キー(プライマリキー)は自動付与で! ※ 自動付与しない場合はデータ登録後でも付与可能 日付? 数値? 文字列?
  17. 17. BASE Calc で事前に型指定してしまう! ●Calc のセルの書式設定でデータ型を決める ・日付型で保存したいとき ➢Calc : 1999-12-31 形式で指定しておく ➢BASE :取込時に日付 DATE 型で指定 ・数値型で保存したいとき ➢Calc :数で指定しておく ➢BASE :取込時に数値 BIGINT/INT 型で指定 ・文字列型で保存したいとき   ➢Calc :テキストで指定しておく ➢BASE :特に指定しなくても OK データ インポート作業
  18. 18. BASE 貼り付けテーブルがある?ない? ●貼り付け先テーブルがない場合 ・テーブル欄の空きスペースに貼り付け ➢テーブル作成ウィザードが起動する ➢画面遷移に従って処理をすすめると OK ●既存のテーブルに貼り付ける場合 ・貼り付けるテーブル名を選択→貼り付け ・オートナンバー型項目があるテーブルへ  貼り付ける場合の注意点 データ インポート作業 ※ オートナンバー型はテーブル作成時から指定しておく必要あり ※ オートナンバー型項目の送りデータ側のチェックを外す
  19. 19. インポート画面 オートナンバー型が ある既存テーブルへ のインポート ソース側の チェックを外す
  20. 20. BASE 連結コードは Calc で生成しておこう ●2 つのデータを連結する連結コードは Calc で項目 連結して作成しよう データ インポート作業 •データ照合には両データ共通の連結コードが必須。 •実際は、ほぼ連結用のコードを作成する必要がある。 •名簿であれば、「カナ氏名」と「生年月日」を連結しコー ドを生成する方法がある。 •セル式に =trim( として余計なスペースを削除すれ ば、かなり識別度の高いコードを生成できる。 •データ照合は「目」チェックが重要ですが、検証とし て、連結コードによる「機械照合」もあれば、事務負担 が軽減されるのではないかと思う。
  21. 21. BASE 連結コードとリレーション ●2 つのデータを連結する連結コード同士をリレー ション(関係付け)する(クエリー作成時で OK ) ● 2つのデータにある識別用コードをリレーションする ● 連結コード同士の連結でデータ照合が可能となる ● リレーションには4つの種類がある ➔ 内部結合・・・ 両方に共通存在するデータ ➔ 右結合 ・・・ 右側の全データ+左側で合致するデータ ➔ 左結合 ・・・ 左側の全データ+右側で合致するデータ ➔ クロス結合・・・ 全データを全ての組み合わせで結合 データ処理の場合、処理の内容に応じてリレーションを使い分ける必要があるの で、実際にクエリーを作成する段階でリレーションを張れば良い 不一致データを探す場合は、右結合か左結合を利用する
  22. 22. リレーション テーブル間の連結 コード同士を接続 ソース側の 識別用 CD から テーブル側へ ドラッグ この例はデータ A にあって データ B には無い不一致 データを抽出しています リレーション後 右クリック編集で 結合方法を選定 不一致検索は赤枠のようにデータ B のデータを検索するのがポイント
  23. 23. BASE でのデータ処理事例 ●具体的なデータ処理例 ~クエリー&レポート~ ・ 2 つのデータを照合する ①データ A にもデータ B にも存在する(内部結合) ②データ A にあってデータ B には無い(左結合) ③データ B にあってデータ A には無い(右結合) ・グループ単位で集計する(複数指定可) ・指定範囲内にあるデータを抽出する ・処理と結果データを保存し出力可能とする ・見映え良い印刷物として出力する
  24. 24. SQL (クエリー)の実行ボタンは2つある ●クエリーの実行とは? ・ SQL は SELECT 文だけに対応 ・ LibreOffice-BASE が処理を実行する(らしい) SELECT 文・ SQL ステートメントのシンタックスエラー・システム テーブル (RDB$) へのアプローチ ●SQL コマンドを直接実行とは? ・ほとんどの SQL を実行可能 ・利用している DataBase が処理を実行  (動作はデータベースに依存) Select 文以外の SQL を流す場合は「SQL コマンドを直接実行」を有効にする必要 がある、複雑なSelect 文でエラーが出る場合、直接実行で解決する時もある SQL コマンドを直接実行ボタンを有効にした後、クエリーの実行ボタンを押します
  25. 25. BASE からデータ出力 ~ データエクスポート ~ ●データ出力時の留意点 ・コピー&ペースト(コピペ)だと文字化けします ・文字化けしない方法 ①Calc の新規シートを開きます ②BASE のオブジェクト一覧を開きます ③出力したいオブジェクトを選択 ④そのまま①の Calc 画面上へ Drag&Drop ⑤Calc シート上にデータ展開される BUG ですね
  26. 26. 文字化け テーブル名を選択しコピー シートに貼り付け(コピペ) ドラッグ&ドロップ コピペを行うと文字化けする、ドラッグ& ドロップだと文字化けしない
  27. 27. BASE でマクロを使う ●OpenBasic がメイン言語 ・ Calc データのインポート / エクスポート ・テキストファイルのインポート / エクスポート ・出力するデータの文字コード指定 ・フォームやレポートの動作制御(コントロール) ・フォームの入力値を条件に持つクエリー実行    などを自動化できます ●クエリー上で Function 関数が使えない Access との大きな違い!ユーザー関数を気軽に利用できない BASE マクロにはインポート・エクスポートコマンドはないが、処理マクロで実装 可能、Access のフォーム的な運用の実装もマクロで実現できます。 Access のようにクエリーにフォームの値を直接パラメーターとして読ませることはでき ないので、マクロでSQL を直接書き換え、その後クエリー実行という流れになる。
  28. 28. There is no time like the present! 今が最適時です! さあ!これで  あなたも BASE 使い! ~データベース?  使ってみたことあるよ と言おう~
  29. 29. 今日の講演を聞いたから きっと大丈夫!! There is no time like the present! SlideShare にも色々上げてるから見てね! CALC の DB 機能?、あんなの飾りです BASE を知らない人にはそれがわからんのですよ
  30. 30. ご清聴ありがとうございました CC-BY-SA4.0

×