250 likes | 357 Views
The DEDALE System for Complex Spatial Queries. S.Grumback, P.Rigaux, and L.Segoufin In Proc. ACM SIGMOD Intl. Conf. on Management of Data, pp. 213-224, 1998. 2000å¹´1月19æ—¥ 金åç ”ç©¶å®¤ 修士課程1年 長野 英彦. ã“ã®è«–文を発表ã™ã‚‹ç†ç”±.
E N D
The DEDALE System for Complex Spatial Queries S.Grumback, P.Rigaux, and L.SegoufinIn Proc. ACM SIGMOD Intl. Conf. on Management of Data, pp. 213-224, 1998 2000年1月19日金子研究室 修士課程1年長野 英彦
この論文を発表する理由 ・ 自分の研究 - 空間データベースシステムHawksに 個々の図形の位相構造(点や線など)のつながり方 を求めるOperatorを追加した・ この論文は、エキスパートなユーザでなくても複雑な 問い合わせを記述できる 問い合わせ言語 を提案 ・ Hawksに定義されているOperatorは、十分な記述力をもつ?
背景(1) • 空間データの量は著しく増大している • ・ 空間データの取り扱いは重要な研究分野の1つ • 一般的な使用を目的としたDBMSは 空間データを扱うには適さない ・ 空間データは複雑な構造を持つことが有る ・ 空間データのための問い合わせ機能が必要 • ・ 空間インデックスが用意されていない
背景(2) • 地理情報システムの分野 ・ 多くのシステムはリレーショナルDBMS上に実装 ・ 空間データを扱うための特別な機能を提供 ・ 例:ARC/INFO[S.Morehouse. The Architecture of ARC/INFO. In Proc. Intl. Symp. on Computer-Assisted Cartography(Auto-Carto 9), pages 266-277, 1989.]しかし、 ・ 空間データとそれ以外のデータの扱い方に大きな 違いがある - ARC/INFOでは空間データ用のデータベースと 空間データの属性用のデータベースに分かれている ・ ユーザがシステムのエキスパートでなければ、 高い性能を得ることが困難
DEDALEシステムの目的(1) • 空間データとその他のデータを統一的に表現 ・ 1つのリレーションに空間データ、 文字列、数字を混在 ・ 空間データを一次方程式、一次不等式の集合で表現 ・ 入れ子型のリレーションを使用 (値として集合を許す) ・ relational algebraを空間データ用に拡張
DEDALEシステムの目的(2) • 問い合わせ言語の設計 ・ エキスパートなユーザでなくても使用できる ・ 空間データが入れ子型になっていることを意識させない ・ 空間データの表現方法(図形が式の集合であること。DNFかCHNFで図形を現すこと)をユーザに意識させない ・ ユーザは空間データを式の集合として扱うのではなく 一つの値として扱う ・ operatorはDEDALE algebra(relational algebraを 空間データ用に拡張したもの)に容易に変換可能 ・ DEDALE algebraで問い合わせ最適化を行なうため
図形の表現 2種類の表現方法 ・ DNF ( disjunctive normal form ) - 互いに重なりのない凸図形の和集合 ・ CHNF( convex with holes normal form ) - 凸図形の差集合 1長1短ありどちらが優れているとは言えない ・ データ量の問題 ・ 計算量の問題 式(half-plane)の数に対して DNF : 和集合constant、差集合 quadratic CHNF: 和集合、積集合、直積、射影 quadratic 選択linear、差集合constant p2 p3 p1 DNF: p1∨p2∨p3 q1 q2 CHNF: q1ーq2
データモデル(1) • 空間データは図形を構成する点集合 (有限個とは限らない) ・ 連立1次方程式、不等式(凸図形)の和集合(DNF)または差集合(CHNF)で表現 • 入れ子型(値として集合を許す)のリレーションを用いて、 空間データをデータベースに格納 • 文字列、数字は入れ子ではない属性 • 空間データは一次方程式、一次不等式の集合 • ユーザは空間データを文字列や数字のように1つの値として扱う • 空間データを1つの値として扱うこととデータモデルとは無関係 であると思う(このようなデータモデルでなくとも空間データを 1つの値として扱うことができるはず) select c.population, c.geo from c in Cities where c.name = “Fukuoka” geoは空間データ
データモデル(2) GO-A GO-B GO={ [ name:string, ground-type:string, owner:string, geometry:{Q2} ] }
relational algebra ・ リレーションに対するデータ操作を提供する代数演算子 を用いて、目的とするリレーションを導出 〇 基本的リレーショナル代数演算子 ・ union リレーションR(A1,...,An), S(B1,...,Bn)に対してR∪S={t|t∈R∨t∈S} ・ difference リレーションR(A1,...,An), S(B1,...,Bn)に対して R-S={t|t∈R∧¬t∈S} ・ cartesian product リレーションR(A1,...,An), S(B1,...,Bm)に対して R×S={t*u|t∈R∧u∈S} ・ projection リレーションR(A1,...,An)に対して πA1’,...,Am’(R)={t[A1’,...,Am’]|t∈R}ただし、 {A1’,...,Am’}⊆ {A1,...,An} ・ selection リレーションR(A1,...,An)に対して σF(R)={t|t∈R∧PF(t)}ただし、PF(t)はtが選択条件Fを満足するときに真となる述語 〇 その他のりれーしょなる代数演算子としてjoin, natural join, intersection, divisionがある
DEDALE algebra (1) • relational algebraをDEDALE用に拡張したもの
DEDALE algebra (2) MAPλX.[‘Alice’,X.2](R) R unionest i (R)
問い合わせ言語 • データモデルの複雑さを隠蔽 - 入れ子構造をユーザに意識させない 「入れ子型」:空間データを表わす属性値が 一次方程式、一次不等式の集合 - ユーザは空間データを一つの値として扱う 例えば、 のように population:数字, name:文字列, geo:空間データを 同じように扱わせる • DEDALE algebraへ容易に変換可能 - DEDALE algebraで最適化処理の設計を行なうため select c.population, c.geo from c in Cities where c.name = “Fukuoka”
Algebraic Operator (1) g : 空間データ y=3 g2 g1 g2 g1 g2 g1 g g1 INTER g2 g1 UNION g2 g1 MINUS g2 RESTRICT g WITH(y>3)
Algebraic Operator (2) g : 空間データR : リレーション R R g2 g2 g g1 g1 y=0 g3 g3 GROUP-INTER R ON a2 PROJ g ON ( x1 ) GROUP-UNION R ON a2
Algebraic Operator (3)真偽を返すもの g : 空間データR : リレーション
問い合わせの例 97年9月22日月曜日にSt Maloから10km以内にあるボートを求めよ Boats = {[ name:string, traj:{Q3} ]}Cities = {[ name:string, geo:{Q2} ]} select s.namefrom s in Boats, c in CitieswhereDIST( PROJ( RESTRICT b.trajWITH( x3=‘ 22/09/97 ’ ))ON( x1, x2 ) , c.geo ) < ‘ 10KM ’and c.name = ‘ St Malo ’
その他のOperator p1,p2,p3 : 点(空間データ)g : 空間データ p3 p3 p2 p2 p1 p1 MEDIAN(p1 ,p2 ,p3 ) AXIS(p1 ,p2 ,p3 )
問い合わせの例 それぞれのcityから最も近いwater-pointを求めよ Waterpoints = {[ name:string, geo:{Q2} ]}Cities = {[ name:string, geo:{Q2} ]} select s.name, w.name, w.geofrom c in Cities, w in Waterpointswhere c.geo INTER? GROUP-INTER( select MEDIAN( v.geo, w.geo, v.geo ) from v in Waterpoints) ON a1
その他のOperator g, g1, g2 : 空間データ
発表のまとめ(1) • 空間データとその他のデータを統一的に表現 • ・ 入れ子になっている式の集合を一つの属性値として扱う • 例えば、 のように population:数字, name:文字列, geo:空間データを同じように扱う select c.population, c.geo from c in Cities where c.name = “Fukuoka”
発表のまとめ(2) ‐ 問い合わせ言語の設計 ・ ユーザは のオペレータを使用して問い合わせを記述 ・ 空間データがどのような形式で保存されているかを意識 する必要がない ・ 問い合わせの最適化はDEDALE algebraに変換して行なう ・ ユーザは問い合わせがどのような手順で行なわれるかを 意識する必要がない ・ ユーザは問い合わせの処理手順を決定できない INTER, UNION, MINUS, CROSS, RESTRICT WITH, PROJ ONGROUP-UNION ON, GROUP-INTER ON, IS NOT EMPTYINTER?, UNION? MINUS? CROSS? RESTRICT? WITH, PROJ? ONGROUP-UNION? ON, GROUP-INTER ON, AXIS, MEDIAN, DIST
発表のまとめ(3) • 問い合わせ言語を独自に開発 • ・ 問い合わせの空間データに関係のない部分はOQLとしてDBMSに渡すという処理を実装 • ・ 問い合わせをDEDALE algebraに変換する処理を実装 • ・ 空間データを処理する関数群を実装(詳細不明) • - 2つのアプリケーションをDEDALE上で動作させた • - IGNのデータ [http://www.ignfi.fr ] • - SEQUOIA projectのデータ [ http://s2k-ftp.cs.berkeley.edu:8000/index.html ] • - 問い合わせ処理の最適化部分は実装中
発表のまとめ(4) • DEDALE - 図形の構成要素のつながり方を求めるOperatorを 幾つか定義 ・ CONNECT? 、BOUNDARY?・ 解析幾何計算が必須 • 空間データベースシステムHawks - Hawksでは、C++埋込みOQLで問い合わせを記述 - 論文中のほとんどの問い合わせはHawksで記述可能 - Hawksに図形の構成要素のつながり方を求める メソッドを追加 ・ これらは解析幾何計算を行なわずに求める ことができる