Oracle Direct Seminar <Insert Picture Here> 60 分 で 見 て 分 かる! テーブル 設 計 とデータベース アプリ 開 発 の 基 礎 日 本 オラクル 株 式 会 社
アジェンダ データベース 表 の 準 備 表 の 設 計 表 の 作 成 データのローディング Demonstration:やってみよう!データベース 表 の 作 成 アプリケーションの 作 成 アプリケーションの 作 成 レポートの 作 成 グラフの 作 成 Demonstration:やってみよう!アプリケーションの 作 成 2
データベース 表 の 準 備 データベース システムを 構 築 する 上 で 必 要 なこと 1. 必 要 なデータベース 表 を 作 成 必 要 な 表 の 設 計 表 名 / 列 名 の 検 討 必 要 な 制 約 の 検 討 2. 必 要 な 関 連 オブジェクトを 作 成 索 引 順 序 トリガー 3. データのローディング 後 から 表 の 定 義 を 変 えることは 難 しいので 最 初 にしっかり 設 計 することが 重 要! 3
データベースの 設 計 データベース 設 計 ( 論 理 設 計 )とは システム 化 の 範 囲 となるデータを 整 理 し 誰 にでも 分 かる 形 式 で 明 確 化 する 業 務 要 件 を 論 理 モデルに 変 換 し 最 適 なテーブル 構 成 を 設 計 する どんなデータ 項 目 があるかな? どんな 表 を 作 ればいいかな? 商 品 社 員 顧 客 商 品 顧 客 売 上 社 員 売 上 売 上 表 には 顧 客 や 商 品 の 情 報 があるよね 社 員 の 情 報 も 必 要 かな? 4
受 注 表 の 設 計 例 受 注 伝 票 から 受 注 表 と 受 注 明 細 表 を 設 計 繰 り 返 し 項 目 を 省 き 複 数 の 表 に 分 けることを 正 規 化 という 受 注 伝 票 -------------- 受 注 番 号 :12345678 受 注 日 : 2011 年 04 月 11 日 顧 客 番 号 : 1230 顧 客 氏 名 : キャンディ キャンディ 住 所 : 107-0001 東 京 都 港 区 北 青 山 X-X-X 受 注 表 顧 客 の 名 前 や 住 所 は 顧 客 表 にあるよね 受 注 番 号 受 注 日 顧 客 番 号 受 注 情 報 の 中 に 出 てくる 繰 り 返 し 項 目 は 別 の 表 に! お 買 い 上 げ 明 細 商 品 番 号 商 品 名 単 価 個 数 価 格 A00 いちご 500 10 1000 M02 さくらんぼ 800 2 5600 ------------------------------------------------------------------------- 計 8500 合 計 金 額 のように 計 算 で 導 出 できるものは 表 に 入 れなくてもいいね 受 注 明 細 表 受 注 番 号 明 細 番 号 商 品 番 号 個 数 受 注 番 号 がないと どの 注 文 の 明 細 か 分 からないから 受 注 番 号 が 必 要 だね! 5
表 定 義 の 決 定 表 を 作 成 する 前 に 決 めておくこと 表 名 / 列 名 列 のデータ 型 :どんなタイプのデータを 格 納 するか 列 の 制 約 : 格 納 するデータに 対 するビジネス ルール 6
表 定 義 の 決 定 表 名 / 列 名 データ 型 表 名 / 列 名 命 名 規 則 に 従 って 決 定 30バイト 以 内 英 数 字 日 本 語 記 号 (_,$,#) 先 頭 は 数 字 以 外 の 文 字 Oracleの 予 約 語 ( SELECT FROM 等 のキーワード) 日 本 語 を 使 うこともできるけど 移 行 時 の 文 字 化 けを 避 けるためにも シングルバイト 文 字 が 推 奨! データ 型 列 ごとに 格 納 するデータのタイプ Oracleで 使 用 可 能 なデータ 型 で 実 装 データ サイズも 指 定 可 能 Oracleの 代 表 的 なデータ 型 個 数 は0より 大 きい 数 字 NUMBER数 字 (CK) 文 字 VARCHAR2( 可 変 長 ) CHAR( 固 定 長 ) 日 付 DATE TIMESTAMP( 時 差 含 む) 詳 細 はマニュアル データベース 概 要 7
表 定 義 の 決 定 列 の 制 約 列 の 制 約 表 の 列 に 指 定 する ビジネス ルール 表 に 対 して 定 義 することで アプリケーションに 依 存 せずルールを 統 一 することが 可 能 Oracleで 使 用 可 能 な 制 約 タイプから 選 択 して 実 装 Oracleで 使 用 可 能 な 制 約 表 に 定 義 しておけば どんなアプリケーションから データを 挿 入 しても 必 ずチェックされるよ! PRIMARY KEY 主 キー: 行 を 一 意 に 特 定 する( 一 意 + 必 須 ) NOT NULL FOREIGN KEY UNIQUE CHECK 必 須 : 必 ずデータが 入 る (データを 入 力 しない 場 合 にはエラー) 外 部 キー: 他 の 表 との 参 照 関 係 を 定 義 ( 関 連 表 の 間 でデータの 整 合 性 を 保 証 ) 一 意 :データが 重 複 しない 条 件 : 給 与 が0 以 上 など 任 意 の 条 件 を 指 定 可 能 8
その 他 の 関 連 オブジェクトの 設 計 表 以 外 にも データの 管 理 をするためのオブジェクトを 計 画 索 引 (インデックス): 早 く 検 索 をするためのオブジェクト 順 序 (シーケンス): 一 意 の 数 を 生 成 するオブジェクト トリガー: 表 に 何 らかの 操 作 が 加 えられた 時 に 連 動 して 実 行 される プログラム データベース オブジェクトとは データベースの 中 で データを 格 納 したり 管 理 したりするために 作 成 される 個 々の 要 素 の 総 称 表 以 外 のオブジェクトは 必 ずしも 作 成 する 必 要 はないが 検 索 のパフォーマンスを 上 げたり 処 理 を 効 率 化 したりすることができるため 必 要 に 応 じて 作 成 することが 推 奨 される データベース 内 でできることは データベースでしたほうが 効 率 的! 9
索 引 (インデックス) 索 引 とは 表 データの 格 納 場 所 を 格 納 することにより 検 索 のパフォーマンスを 向 上 させるオブジェクト 索 引 で 検 索 対 象 データの 格 納 場 所 を 特 定 し 対 象 データ ブロックのみを 読 み 込 むため データが 多 くても 高 速 に 検 索 することが 可 能 CUST_NAME_IDX( 顧 客 名 索 引 ) あおき いしだ いのうえ うちだ あ~ さ~ さいとう さかもと しみず すずき あ~ は~ はしもと はらだ ひろた ふじた は~ や~ やまおか やまもと やまもと ゆあさ CUSTOMERS( 顧 客 表 ) CUST_ID CUST_NAME CUST_ADDRESS 100 たなか 東 京 都 101 よしだ 大 阪 府 102 あおき 福 岡 県 498 すずき 山 形 県 499 やまもと 北 海 道 索 引 がないと すべてのデータを 読 み 込 んで 検 索 しなければならないので データが 多 くなるに つれてパフォーマンスが 低 下 することも 10
順 序 (シーケンス) 順 序 (シーケンス)とは 一 意 の 数 を 生 成 するオブジェクト 複 数 のユーザーが 処 理 をする 際 に 自 動 的 に 一 意 の 整 数 を 入 力 する ために 使 用 する 一 意 性 を 保 証 する 主 キー 列 に 使 用 することが 多 い 順 序 がないと 一 意 の 値 をプログラム 側 で 生 成 したり 順 序 表 を 作 成 したりする 必 要 があり パフォーマンス 劣 化 につながる 可 能 性 も データベースの 順 序 を 使 うのがおススメ! 11
トリガー トリガーとは データベースに 格 納 されたプログラム 表 に 何 らかの 操 作 が 加 えられた 時 (イベント)に あらかじめ 指 定 した 処 理 を 自 動 的 に 起 動 する 機 能 複 数 のアプリケーションで 共 通 する 処 理 などをトリガー 設 定 することに より 個 別 のアプリケーションをシンプルに 記 述 できる イベント データの 追 加 (INSERT) ORDERS ( 注 文 表 ) STOCKS ( 在 庫 表 ) トリガーを 使 うと 関 連 した 処 理 が 自 動 的 に 実 行 されるから 便 利! アプリケーション 側 で 処 理 を 書 かなくていいから 冗 長 なコーディングも 回 避 できるね! トリガー 注 文 があったら 在 庫 を 減 らす 12
データのローディング データをロードする 代 表 的 な 方 法 SQL*Plus:SQLのINSERTコマンドを 使 って1 件 ずつデータを 挿 入 SQL*Loader: 専 用 コマンドラインから 一 度 にたくさんのデータをロード APEX:GUI 画 面 から 一 度 にたくさんのデータをロード APEXを 使 うと CSV 等 にまとめた データを 簡 単 にロードしたり アンロードしたりすることができるよ! CSVファイル 13
Oracle Application Express (APEX)とは Oracleデータベースを 軸 としたWebアプリケーション 開 発 ツール 簡 単 かつ 迅 速 に 充 実 したアプリケーションが 開 発 可 能 ブラウザベースでアプリケーション 開 発 ができる コードを 書 かずにアプリケーションを 開 発 可 能 Oracleデータベース 機 能 とSQL PL/SQLを 生 かした 開 発 ができる Oracleデータベース 標 準 機 能 で サポート 体 制 も 充 実 エクセルシートのWeb 化 エクセルシートを 同 時 に 表 示 編 集 できるWeb アプリケーションに 変 換 オンライン レポート 既 存 のデータベースに SQLベースのレポート アプリケーションを 構 築 データ 駆 動 型 アプリケーション 暫 定 的 な 部 門 向 け アプリケーションを 開 発 14
Demo オブジェクト 作 成 とデータローディング 受 注 表 や 受 注 明 細 表 などのオブジェクトを 作 成 し サンプルデータをロードします オブジェクト 作 成 画 面 の 一 例 どちらもSQLを 書 かなくても できるから とてもカンタンだなぁ データローディング 画 面 の 一 例 15
アジェンダ データベース 表 の 準 備 表 の 設 計 表 の 作 成 データのローディング Demonstration:やってみよう!データベース 表 の 作 成 アプリケーションの 作 成 アプリケーションの 作 成 レポートの 作 成 グラフの 作 成 Demonstration:やってみよう!アプリケーションの 作 成 16
Demo アプリケーションの 作 成 今 回 は 受 注 表 と 受 注 明 細 表 を 基 に 受 注 管 理 アプリケーション を 作 成 します Oracle APEXなら 受 注 管 理 などの マスター ディテールタイプのアプリケーションを ウィザード 形 式 でカンタン 作 成!! 17
参 考 アプリケーションの 作 成 完 成 イメージ 受 注 一 覧 画 面 受 注 データ 入 力 画 面 18
Demo レポートの 作 成 受 注 一 覧 画 面 に 合 計 受 注 額 を 表 示 するようにSQL 文 を 変 更 します リージョンの 編 集 からSQLソースを 書 き 換 え 変 更 の 適 用 をクリック! 19
参 考 レポートの 作 成 完 成 イメージ 受 注 一 覧 画 面 20
Demo チャートの 作 成 商 品 別 受 注 金 額 チャートと 月 別 受 注 金 額 の 積 上 げチャートを 作 成 します 棒 グラフや 円 グラフ 以 外 にも ゲージやガントチャートも 作 れるんだぁ! 21
参 考 円 グラフの 作 成 完 成 イメージ 商 品 別 受 注 金 額 の 円 グラフ 月 別 商 品 受 注 金 額 の 積 上 げグラフ 22
参 考 各 グラフの 問 合 せSQL SQL( 商 品 別 受 注 金 額 の 円 グラフ) SELECT NULL LINK, P.PRODUCT_NAME LABEL, P.PRICE*SUM(D.QUANTITY) VALUE FROM ORDER_DETAIL D JOIN PRODUCT P ON D.PRODUCT_ID = P.PRODUCT_ID GROUP BY P.PRODUCT_NAME,P.PRICE ORDER BY VALUE DESC SQL( 月 別 商 品 受 注 金 額 の 積 上 げグラフ) SELECT NULL LINK, TO_CHAR(ORDER_DATE,'YYYY-MM'), SUM(DECODE(D.PRODUCT_ID,1,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,1,QUANTITY,0)) "りんご", SUM(DECODE(D.PRODUCT_ID,2,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,2,QUANTITY,0)) "いちご", SUM(DECODE(D.PRODUCT_ID,3,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,3,QUANTITY,0)) "パイナップル", SUM(DECODE(D.PRODUCT_ID,4,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,4,QUANTITY,0)) "さくらんぼ", SUM(DECODE(D.PRODUCT_ID,5,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,5,QUANTITY,0)) "みかん", SUM(DECODE(D.PRODUCT_ID,6,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,6,QUANTITY,0)) "バナナ", SUM(DECODE(D.PRODUCT_ID,7,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,7,QUANTITY,0)) "ぶどう", SUM(DECODE(D.PRODUCT_ID,8,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,8,QUANTITY,0)) "なし", SUM(DECODE(D.PRODUCT_ID,9,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,9,QUANTITY,0)) "もも", SUM(DECODE(D.PRODUCT_ID,10,PRICE,0)) * SUM(DECODE(D.PRODUCT_ID,10,QUANTITY,0)) "マンゴ-" FROM ("FRUIT_ORDER" F JOIN ORDER_DETAIL D ON F.ORDER_ID = D.ORDER_ID ) JOIN PRODUCT P ON D.PRODUCT_ID = P.PRODUCT_ID GROUP BY TO_CHAR(ORDER_DATE,'YYYY-MM') ORDER BY TO_CHAR(ORDER_DATE,'YYYY-MM') 23
まとめ データベース 表 の 準 備 表 の 設 計 表 の 作 成 データのローディング Demonstration:やってみよう!データベース 表 の 作 成 アプリケーションの 作 成 アプリケーションの 作 成 レポートの 作 成 グラフの 作 成 Demonstration:やってみよう!アプリケーションの 作 成 24
オラクルエンジニア 通 信 ~ APEX まとめサイトのご 紹 介 検 索 エンジンで オラクルエンジニア 通 信 検 索 APEX と 検 索 してください 日 本 語 チュートリアル ( 手 順 書 ) 最 新 バージョンの ダウンロード など インストールの 方 法 使 い 方 を 説 明 した 日 本 語 の 手 順 書 を 取 り 揃 えました! インストールガイド データベース アプリケーションの 作 り 方 グラフ ガント チャート マップの 作 り 方 ダウンロード 先 のご 案 内 や システム 要 件 など ご 利 用 いただくために 必 要 な 情 報 がまとめられています http://blogs.oracle.com/oracle4engineer/entry/apexoracle_application_express 25
OTN ダイセミ でスキルアップ!! 一 般 的 な 技 術 問 題 解 決 方 法 などを 知 りたい! セミナ 資 料 など 技 術 コンテンツがほしい! Oracle Technology Network(OTN)を 御 活 用 下 さい http://forums.oracle.com/forums/forum.jspa?forumid=1381 一 般 的 技 術 問 題 解 決 にはOTN 掲 示 版 の Oracle Application Express をご 活 用 ください OTN 掲 示 版 は 基 本 的 にOracleユーザー 有 志 からの 回 答 となるため100% 回 答 があるとは 限 りません ただ 過 去 の 履 歴 を 見 ると 質 問 の 大 多 数 に 関 してなんらかの 回 答 が 書 き 込 まれております http://www.oracle.com/technetwork/jp/ondemand/index.html 過 去 のセミナ 資 料 動 画 コンテンツはOTNの OTNセミナー オンデマンド コンテンツ へ ダイセミ 事 務 局 にダイセミ 資 料 を 請 求 頂 いても お 受 けできない 可 能 性 がございますので 予 めご 了 承 ください ダイセミ 資 料 はOTNコンテンツ オン デマンドか セミナ 実 施 時 間 内 にダウンロード 頂 くようお 願 い 致 します 26
OTNセミナー オンデマンド コンテンツ ダイセミで 実 施 された 技 術 コンテンツを 動 画 で 配 信 中!! ダイセミのライブ 感 はそのままに お 好 きな 時 間 で 受 講 頂 けます 最 新 情 報 つぶやき 中 oracletechnetjp 人 気 コンテンツは? お 勧 め 情 報 公 開 予 告 など OTN トップページ http://www.oracle.com/technetwork/jp/index.html ページ 左 基 本 リンク > OTN セミナー オンデマンド 掲 載 のコンテンツ 内 容 は 予 告 なく 変 更 になる 可 能 性 があります 期 間 限 定 での 配 信 コンテンツも 含 まれております お 早 めにダウンロード 頂 くことをお 勧 めいたします 27
Oracle エンジニアのための 技 術 情 報 サイト オラクルエンジニア 通 信 http://blogs.oracle.com/oracle4engineer/ 最 新 情 報 つぶやき 中 oracletechnetjp 技 術 資 料 ダイセミの 過 去 資 料 や 製 品 ホワイト ペーパー スキルアップ 資 料 などを 多 様 な 方 法 で 検 索 できます キーワード 検 索 レベル 別 カテゴ リ 別 製 品 機 能 別 コラム オラクル 製 品 に 関 する 技 術 コラムを 毎 週 お 届 けします 決 してニッチではなく 誰 もが 明 日 から 使 える 技 術 の あ そうだったん だ! をお 届 けします オラクルエンジニア 通 信 28
Oracle Databaseの 価 格 ご 存 知 ですか? 1 問 題 : Oracle Databaseの 最 小 構 成 はいくらでしょうか? ヒント: Oracle Standard Edition Oneを 5Named User Plus( 指 名 ユーザ) というのが 最 小 構 成 です 2 問 題 : Real Applications Clusters(RAC) Optionはいくらでしょうか? ヒント: RACはOracle Database Enterprise EditionのOptionです 答 えはこちら ログイン 不 要 の 簡 単 見 積 もり ライセンス 見 積 もりヘルプ 検 索 29
ITプロジェクト 全 般 に 渡 る 無 償 支 援 サービス パフォーマンス 診 断 サービス Webシステム ボトルネック 診 断 サービス データベースパフォーマンス 診 断 サービス 移 行 支 援 サービス SQL Serverからの 移 行 支 援 サービス DB2からの 移 行 支 援 サービス Sybaseからの 移 行 支 援 サービス MySQLからの 移 行 支 援 サービス Postgre SQLからの 移 行 支 援 サービス Accessからの 移 行 支 援 サービス Oracle Direct Conciergeサービス NEW Oracle Application ServerからWeblogicへ 移 行 支 援 サービス NEW システム 構 成 診 断 サービス Oracle Database 構 成 相 談 サービス サーバー 統 合 支 援 サービス 仮 想 化 アセスメントサービス メインフレーム 資 産 活 用 相 談 サービス BI EEアセスメントサービス 簡 易 業 務 診 断 サービス バージョンアップ 支 援 サービス Oracle Databaseバージョンアップ 支 援 サービス Weblogic Serverバージョンアップ 支 援 サービス Oracle Developer/2000(Froms/Reports) Webアップグレード 相 談 サービス NEW オラクル 社 のエンジニアが 直 接 ご 支 援 します お 気 軽 にご 活 用 ください! オラクル 無 償 支 援 検 索 30
Oracle Enterprise Cloud Summit 開 催 ~クラウド 環 境 のための 強 固 な 情 報 基 盤 内 容 基 調 講 演 2 個 別 セッション 12 基 調 講 演 Roadmap to Cloud 定 員 400 名 対 象 入 場 料 CIO 経 営 企 画 情 報 システム 部 門 マネージャ 開 発 者 管 理 者 情 報 システムアーキテクト 無 料 主 催 日 本 オラクル 株 式 会 社 ソフトバンクモバイル 株 式 会 社 取 締 役 専 務 執 行 役 員 兼 CISO 阿 多 親 市 様 お 申 込 み >>> http://www.oracle.co.jp/oecs2011/ 日 本 オラクル 株 式 会 社 常 務 執 行 役 員 クラウド&EA 統 括 本 部 長 三 澤 智 光 31
1 日 5 組 限 定! 製 品 無 償 評 価 サービス 提 供 シナリオ 一 例 データベースチューニング 無 停 止 アップグレード アプリケーション 性 能 負 荷 検 証 Webシステム 障 害 解 析 インストールすることなく すぐに 体 験 いただけます サービスご 提 供 までの 流 れ 1. お 問 合 せフォームより 製 品 評 価 サービス 希 望 と 必 要 事 項 を 明 記 し 送 信 下 さい 2. 弊 社 より 接 続 方 法 手 順 書 およびハンズオン 手 順 書 を 送 付 致 します 3. 当 日 は 弊 社 サーバー 環 境 でインターネット 越 しに 製 品 を 体 感 頂 けます Web 問 い 合 わせフォーム サービスご 提 供 には 事 前 予 約 が 必 要 です ダイデモ をキーワードに 検 索 することで 申 し 込 みホームページにアクセスできます http://www.oracle.com/jp/direct/services/didemo-195748-ja.html 32
あなたにいちばん 近 いオラクル Oracle Direct まずはお 問 合 せください Oracle Direct 検 索 システムの 検 討 構 築 から 運 用 まで ITプロジェクト 全 般 の 相 談 窓 口 としてご 支 援 いたします システム 構 成 やライセンス/ 購 入 方 法 などお 気 軽 にお 問 い 合 わせ 下 さい Web 問 い 合 わせフォーム 専 用 お 問 い 合 わせフォームにてご 相 談 内 容 を 承 ります https://secure.oracle.co.jp/direct/inquiry-form.php こちらから 詳 細 確 認 のお 電 話 を 差 し 上 げる 場 合 がありますので ご 登 録 さ れている 連 絡 先 が 最 新 のものになっているか ご 確 認 下 さい フリーダイヤル 0120-155-096 月 曜 ~ 金 曜 9:00~12:00 13:00~18:00 ( 祝 日 および 年 末 年 始 除 く) 33
以 上 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的 とするものであり いかなる 契 約 にも 組 み 込 むことは できません 以 下 の 事 項 は マテリアルやコード 機 能 を 提 供 することをコミットメン ト( 確 約 )するものではないため 購 買 決 定 を 行 う 際 の 判 断 材 料 になさらないで 下 さ い オラクル 製 品 に 関 して 記 載 されている 機 能 の 開 発 リリースおよび 時 期 につい ては 弊 社 の 裁 量 により 決 定 されます Oracle PeopleSoft JD Edwards 及 びSiebelは 米 国 オラクル コーポレーション 及 びその 子 会 社 関 連 会 社 の 登 録 商 標 です その 他 の 名 称 はそれぞれの 会 社 の 商 標 の 可 能 性 があります 34