<Insert Picture Here>
Oracle
Direct Seminar
位置ゲー基盤からGISまで!Oracle Spatial入門
日本オラクル株式会社 データベースソリューション本部 2011年2月
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文 中の社名、商品名等は各社の商標または登録商標である場合があります。
<Insert Picture Here>
Agenda
•
Oracle Spatialとは
•
オンライン地図との違い
•
Oracle Spatialのアーキテクチャ
•
データモデル
•
空間索引
•
空間演算子
•
Appendix
•
事例
•
関連URL
位置情報活用の兆し
•
従来の主体
•
官庁・公共・防衛など膨大な
インフラ情報を管理
•
GISによる高度な分析
•
ユーザー数は少なめ
•
専門知識を有する技術者に
よる長期間開発
•
近年
•
民間ベンチャー発のGPSを使っ
た位置ゲーム
•
短期スクラッチ開発
•
流行るとユーザー、データともに
激増
•
他社と競争しながらの短期開発
http://oracledatabase.jp/data-integrator/entry_000134.html も御覧ください
これからの位置情報基盤に求められること
短期開発 (しかもなるべく簡単に
…)
ユーザー / データ増への柔軟な対応
Oracle Spatialとは
•
spatial (スペイシャル) = 空間の、空間的な
•
Oracle Databaseで、緯度・経度・測地座標系を
解釈するための仕組み(データ型、関数、プロシージャ)を
提供するオプション
•
点、線、ポリゴン(多角形)の情報を、DBの表で管理
•
距離、面積、体積の算出、ジオメトリ間の包含関係の判別などを
行う関数を提供
• 座標系変換の係数を事前定義済みであるため、異なる座標系間でも これらの操作が可能•
Oracle 7.3の実装以来、継続して機能追加 / 強化あり
Oracle Spatialの歩み
1995~ Oracle7 Spatialの初リリース ポイント情報、ポリゴン Spatial演算子 1999~ Oracle8i オブジェクト・サポート 円、円弧 R-Tree索引 Spatial関数のサポート 2001~ Oracle9i 空間参照システム (座標系のサポート) 線形参照システム Spatial Partitioning Spatial Replication(Adv.rep) 2004~ Oracle Database 10g ラスター・データのサポート トポロジのサポート ネットワーク・データ・モデル ジオコーディングとルーティング 2007~ Oracle Database 11gR1 3Dデータサポート Spatial Webサービス Oracle Database 11gR2 Google Maps対応スケーラビリティ
可用性
Oracle Spatialが無いと…
• 緯度経度:数値で格納 • 距離計算、面積計算 • 緯線に沿って経度が1度違うと… • 赤道付近…111km • 北極点、南極点…0に近似 • 座標系の変換 • WGS84(GPS)で取得した座標を、日本測地系の地図上に表示させるには… • チューニング • 要件通りの性能が出ない場合、コードの見直しが必要 • Oracle Spatialが提供するデータ型/関数がこれらの煩雑さを解消 • 地球の丸みを考慮した距離計算 • 旧測地系(日本測地系)/新測地系(世界測地系)を含む、全世界の測地系の変換 • Oracle Databaseと同じチューニングアプローチ 地球は丸いので複雑 座標系が増えるたびに変換式を手作り プログラマーの長期拘束オンライン地図とOracle Spatial
•
オンライン地図で事足りるのでは?
• 静的な地図情報の表示(東京都、埼玉県 etc / 店舗情報)としてはオンラ イン地図で十分 • 動的な位置情報を基にした検索を行う場合Oracle Spatialが必要•
ジオゲーム等で取得したユーザーの位置情報を基に、広告メールを
送信したいときは?
• [例] 渋谷ハチ公像から半径500メートル以内にいる人のリストを作る • 必要なデータ • ユーザー個々人の位置情報…動的な情報 • ジオゲームを介して緯度・経度を取得 • 渋谷ハチ公像の緯度経度…静的な情報 • 主要なランドマークの位置情報集を地図ベンダーから購入可能ハチ公から半径500メートル以内にいる人の
リストを作る
– データの格納
•
SDO_GEOMETRYデータ型を用いて格納
•
Oracle Spatialが提供するデータ型
create table user_data( -- ユーザー個々人の位置情報を格納 user_id number,
user_mail varchar2(320), datetime date,
user_loc
sdo_geometry
);create table landmark( -- ランドマークの位置情報を格納 id number,
lm_name varchar2(500),
ハチ公から半径500メートル以内にいる人の
リストを作る
– データの検索
•
SQLで記述
• 空間検索とそれ以外の検索(時刻、IDなど) を1つのSQL文で記述可能 • Oracle Spatialが提供する関数群を使用 declare hachi_loc landmark.lm_loc%TYPE; beginselect lm_loc into hachi_loc from landmark where lm_name='ハチ公'; declare
cursor mail_cur is
select user_mail from user_data ud where sdo_within_distance(
ud.user_loc, hachi_loc, 'distance=500 unit=M') = 'TRUE'; mail_rec mail_cur%ROWTYPE; begin open mail_cur; ... landmark表より、ハチ公の位置情報を取得 user_data表より、sdo_within_distance空間演 算子を用いてハチ公の半径500m以内にいるユ ーザのメールアドレスを取得
ハチ公から半径500メートル以内にいる人の
リストを作る
– 検索結果の描画
•
左図にオンライン地図を
重ね合わせる
•
500メートル以内にいる人
を赤で表示
©INCREMENT P CORP.オンライン地図とOracle Spatial
•
位置情報を扱うシステムにおいて、両者は補完関係
•
位置情報を基にした検索はOracle Spatialで実現できる
•
検索結果を地図画像上に表示したい場合、オンライン地図
または地図画像が必要
• オンライン地図のASP契約 • 地図画像の購入 • SDO_GEORASTER型を使用してDBへ格納<Insert Picture Here>
Agenda
•
Oracle Spatialとは
•
オンライン地図との違い
•
Oracle Spatialのアーキテクチャ
•
データモデル
•
空間索引
•
空間演算子
•
Appendix
•
事例
•
関連URL
Spatialのデータ型 SDO_GEOMETRY
•
Oracle Databaseで位置情報を扱うために”必要な項目”
をオブジェクト型を用いて格納
•
“必要な項目”とは
•
位置情報の形状
• 点、直線、円弧、多角形、円、これらの組み合わせ、など • サポートする形状については後述•
緯度経度、座標系
• 緯度経度の情報はVARRAY(可変長配列)として格納する • 形状が点の場合に限り、VARRAYでなくSDO_POINTTYPE (NUMBER型)として格納することも可能 • 座標系とは、地球上の位置を緯度・経度・高度で特定するとき、前提 となる条件のことSDO_GEOMETRY型の構造
•
SDO_GEOMETRY
• SDO_POINT_TYPE...点オブジェクト用座標情報 X NUMBER Y NUMBER Z NUMBER VARRAY (1048576) OF NUMBER VARRAY (1048576) OF NUMBER • SDO_ELEM_INFO_ARRAY...各座標点の解釈情報 • SDO_ORDINATE_ARRAY...各座標点の集合 SDO_GTYPE NUMBER SDO_SRID NUMBER SDO_POINT SDO_POINT_TYPE SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY SDO_ORDINATES SDO_ORDINATE_ARRAY 基本形状情報 座標系緯経度そのものを格納
円弧+直線、ドーナツ型などは 複数の解釈情報を定義。 配列は0でなく1から数えるサポートされる位置情報の形状
点(ポイント) 線(ライン) ポリゴン(多角形) 穴空きポリゴン 自己交差するライン 自己交差するポリゴン サポートされない 円弧線ストリング 複合線ストリング 円弧ポリゴン 複合ポリゴン 円 最適化された矩形 点クラスタ 店舗、目的地 などの地点 道路、河川、鉄道など線系の構造物、地形の表現など 地域、公園、区画、湖、池など特定の場所の表現 ポリゴンの 特殊例 滋賀県など ネスト不可 CADでの利用 特定の地点 から周囲 xxメートル という表現など CADでの利用 整理された 区画での 矩形表現など 2つの三角形として、 表では2行で定義Oracle Spatial データモデル
レイヤー 点 ライン ポリゴン 複合ライン 複合ポリゴン ジオメトリ ジオメトリ……
……
ジオメトリ 要素……
……
要素 要素例)全国市区町村
例)小笠原村
例)父島、母島
要素を描画する形状空間索引とは
•
空間検索を高速に行うために作成する索引
•
空間演算子を使用した問合せに必要
•
R-Tree索引と呼ばれ、内部的に空間索引表が作成される
•
索引作成やメンテナンスは通常の索引と同様CREATE /
ALTER INDEX文で可能
CREATE INDEX <index-name>
ON <table-name> (<column-name>)
空間索引とは
•
空間索引表と順序が実体
• CREATE INDEX文で指定した索引名で索引セグメントが作られるわけ ではない•
空間索引作成ユーザーで以下のオブジェクトが生成される
• MDRT_xxxx$ という命名規則で、座標やrowidの 情報を格納する 空間索引表 • MDRS_xxxx$ という命名規則で順序•
空間索引と、空間索引表の組み合わせの確認
• USER_SDO_INDEX_METADATA ビュー の SDO_INDEX_TABLE と SDO_INDEX_NAME空間索引の考え方
•
ジオメトリの位置関係を、最小境界矩形(MBR)を基に
木構造で管理する
•
最小境界矩形
(MBR)…ジオメトリを囲む最小の長方形のこと
MBRはMinimum Bounding Rectangleの略
a b c d a b c d ジオメトリへのポインタ R S R S root R-tree root
空間索引を用いた検索例
•
点a-gのうち、埼玉県内にある点を検索する
•
一次フィルタ
• 空間索引を使ってMBRを基に、候補を点bと点cに絞り込む•
二次フィルタ
• 県の形の凹凸も考慮した 厳密なマッチングを行う•
点cが結果として返る
MBR
a
bc
d
f
e
g
空間演算子
• クエリのwhere句内で用いる関数で、対象の表に、空間索引が必要 • SDO_NN • ある地点から最も近いジオメトリを検索(最近傍探索) • ex) 外苑前から最も近い蕎麦屋 • SDO_WITHIN_DISTANCE • ある地点から指定した距離内にあるジオメトリを検索 • ex) ハチ公から500メートル以内にいる人 • SDO_RELATE • 指定した位置関係に合致するジオメトリを検索 • ex) 国道246号線を横切る河川、港区内を走行中のタクシー•
空間演算子以外の条件句(時刻、ID、文字列)も1文で記述可能
• パーティションプルーニングによる検索の高速化データ加工、管理用パッケージ
•
空間集計ファンクション
•
SDO_AGGR_UNION
• 指定したジオメトリの和集合(OR)を取る•
パッケージ
•
SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT
• 空間データを検証し、無効なデータを返す。大量ロード後などに使用•
SDO_GEOM.SDO_LENGTH
• 線の長さを返す•
SDO_UTIL.FROM_KMLGEOMETRY
• KMLをSDO_GEOMETRYへ変換•
その他多数...
Oracle Database 他機能の活用
•
Databaseの他機能とOracle Spatialはもちろん併用可能
• Real Application Clusters、Partitioning、パラレル実行、Automatic Storage Management...
•
エンジニアはOracle Databaseに関する知識をそのまま流用可能
• Oracle Master取得者数20万人(2009/07時点) • 新たに習得すべきは地図や位置情報に関わる若干の知識のみOracle Database
トランザクション管理 セキュリティ、権限管理 領域管理 チューニング パーティション トランスポータブル表領域 バックアップ / リカバリ Enterprise Managerによる監視Oracle Spatial
空間データ型 空間関数 空間索引 座標系変換 地図データだけでなく、 契約者住所座標も 同じDBへ格納する場合 セキュリティは特に重要Oracle Spatial利用のメリット - 開発から
•
空間索引 + Oracle Database機能を併用した高パフォー
マンスアーキテクチャ
•
定義済みの空間演算子、豊富なパッケージの活用で
工数削減
•
通常の検索と空間検索を1つのSQLで記述可能
•
Oracle Databaseのスキルセットをそのまま流用可能
•
Spatial用のプロセスが上がるわけではなく、内部的にはOracle
Databaseの仕組みを組み合わせて実装されている
Oracle Spatial利用のメリット - 用途から
•
標準化団体へのコミットメント
• オラクルは、空間およびロケーション・サービス分野における最新のオー
プン標準の構築、推進、実施、およびサポートを一貫して支援
• Open Geospatial Consortium(OGC)の主要メンバーで、積極的に技 術委員会に参加
•
先進のSpatial機能をいち早くサポート
• ラスターデータ(画像データ)のサポート • 画像の圧縮も可能 • 3Dデータモデル•
多数のGISベンダーがOracle Spatialをサポート
• Autodesk, ESRI, Geoconcept, Intergraph, インフォマティクス…
•
Spatial対応製品ベンダー
日本国内のOracle Spatialパートナー
• http://www.oracle.com/technology/global/jp/products/spatial/index.html
ベンダー名 製品名
Autodesk
Autodesk MapGuide Autodesk Map Series Autodesk OnSite
Bentley Systems MicroStation GeoGraphicsBentley PowerMap
ESRIジャパン ArcGIS / ArcView / ArcSDE / ArcIMS
株式会社ジオプラン Geoconcept
Intergraphジャパン GeoMedia / GeoMedia WebMap GeoMedia Professional / IntelliWhere 株式会社インフォマティクス 空間情報システムSIS
MapInfo ジャパン MapXtreme / MapMarkerMapX / MapInfo Professional GEスモールワールド株式会社 Smallworld
まとめ
•
位置情報システム基盤は、
Oracle Spatial + Oracle Databaseで!
•
短期開発 を実現
•
豊富なパッケージ、空間演算子を提供
• これらの実装に必要だった、位置情報に関する高度な知識は不要•
ユーザー / データ増への柔軟な対応 を実現
•
空間索引による高速な空間検索
• データが急に増えても性能劣化なし•
Oracle Databaseの機能を併用可能
• チューニングアプローチはOracle Databaseと同様 • RAC、パーティション、ASM、パラレルクエリ... これからの位置情報基盤に求められること
短期開発 (しかもなるべく簡単に…)
ユーザー / データ増への柔軟な対応
伊Cotral
•
イタリアのラーツィオ州内の
都市近郊公共交通を業務とする株式会社
• 所有バス1600台 • 1日20時間、のべ9000往復 • 376の自治体をカバー • 1年当たりの乗客1億400万人、走行距離8100万km•
サービス管理基盤をOracle製品で構築
• 空間データとしてバスルート、バス停、バス時刻表、営業所情報を格納 • 携帯電話網を使用しバスの位置情報を逐次センターサーバーへ送信 • 走行監視 • 運行状況、乗客の行き先などを監視 • サービス計画 • 時刻表の改変、季節やイベントによる運行ルート変更など伊Octo Telematics / 米OnStar
•
車載テレマティクスのセンターサーバーでOracle Spatial
を使用し、位置情報の格納および問合せを実現
•
車載テレマティクスとは
• カーナビ + 移動体通信システムにより、地図更新、渋滞回避ルートの 案内、オペレーターによる目的地設定、ニュースなどの情報配信に加 え、エアバッグと連動した緊急通報、盗難車の追跡などリアルタイム なサービスを提供•
スクラッチ開発だった従来のサービス基盤をOracle
Spatialで刷新
•
新サービスのリードタイムを短期化
•
システム管理コストの削減
Oracle Spatial 関連URL
•
マニュアル
•
11gR2
• http://download.oracle.com/docs/cd/E16338_01/nav/portal_3.htm
• 上記内、「Spatial Developer„s Guide(英語)」
•
11gR1
• http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc _dvd/nav/portal_3.htm • 上記内、「Spatial開発者ガイド」•
製品情報
•
http://www.oracle.com/technetwork/jp/database/options/spatia
l/index.html
OTN×ダイセミ でスキルアップ!!
※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。 ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。
Oracle Technology Network(OTN)
を御活用下さい。
・一般的な技術問題解決方法などを知りたい!
・セミナ資料など技術コンテンツがほしい!
一般的技術問題解決にはOTN掲示版の
「データベース一般」
をご活用ください
http://forums.oracle.com/forums/main.jspa?categoryID=484
過去のセミナ資料、動画コンテンツはOTNの
「OTNセミナー オンデマンド コンテンツ」
へ
http://www.oracle.com/technetwork/jp/testcontent/index-086873-ja.html ※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。OTNセミナー オンデマンド コンテンツ
ダイセミで実施された技術コンテンツを動画で配信中!!
ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。
※掲載のコンテンツ内容は予告なく変更になる可能性があります。 期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。OTN オンデマンド
最新情報つぶやき中
oracletechnetjp
・人気コンテンツは? ・お勧め情報 ・公開予告 などOracle エンジニアのための技術情報サイト
オラクルエンジニア通信
http://blogs.oracle.com/oracle4engineer/
•
技術資料
• ダイセミの過去資料や製品ホワイト ペーパー、スキルアップ資料などを 多様な方法で検索できます • キーワード検索、レベル別、カテゴ リ別、製品・機能別•
コラム
• オラクル製品に関する技術コラムを 毎週お届けします • 決してニッチではなく、誰もが明日 から使える技術の「あ、そうだったん だ!」をお届けします こんな資料が人気です 6か月ぶりに資料ダウンロードランキングの首位が交代! 新王者はOracle Database構築資料でした。 データベースの性能管理手法について、Statspack派も Enterprise Manager派も目からウロコの技術特集公開中オラクルエンジニア通信
最新情報つぶやき中
oracletechnetjp
■パフォーマンス診断サービス •Webシステム ボトルネック診断サービス •データベースパフォーマンス 診断サービス
オラクル社のエンジニアが 直接ご支援します
お気軽にご活用ください!
オラクル 無償支援
検索
NEW ■システム構成診断サービス •Oracle Database構成相談サービス •サーバー統合支援サービス •仮想化アセスメントサービス •メインフレーム資産活用相談サービス •BI EEアセスメントサービス •簡易業務診断サービス ■バージョンアップ支援サービス •Oracle Databaseバージョンアップ支援サービス •Weblogic Serverバージョンアップ支援サービス •Oracle Developer/2000(Froms/Reports) Webアップグレード相談サービス ■移行支援サービス •SQL Serverからの移行支援サービス •DB2からの移行支援サービス •Sybaseからの移行支援サービス •MySQLからの移行支援サービス •Postgre SQLからの移行支援サービス •Accessからの移行支援サービス•Oracle Application ServerからWeblogicへ
移行支援サービス
ITプロジェクト全般に渡る無償支援サービス
Oracle Direct Conciergeサービス
NEW NEW
インストールすることなく、すぐに体験いただけます
製品無償評価サービス
http://www.oracle.com/jp/direct/services/didemo-195748-ja.htmlWeb問い合わせフォーム
「ダイデモ」をキーワードに検索することで申し込みホームページにアクセスできます 提供シナリオ一例 ・データベースチューニング ・アプリケーション性能・負荷検証 ・無停止アップグレード ・Webシステム障害解析1日5組限定!
※サービスご提供には事前予約が必要です サービスご提供までの流れ 1. お問合せフォームより「製品評価サービス希望」と必要事項を明記し送信下さい 2. 弊社より接続方法手順書およびハンズオン手順書を送付致します 3. 当日は、弊社サーバー環境でインターネット越しに製品を体感頂けますhttp://www.oracle.com/jp/direct/inquiry-form-182185-ja.html