380 likes | 527 Views
A Data Model and Data Structures for Moving Objects Databases. Luca Forlizzi , Ralf Hartmut G ű ting , Enrico Nardelli , and Markus Schneider ACM SIGMOD 2000 5/00 Dallas, TX, USA. 2000年8月11日 金子研究室所属 修士課程1年 長野 英彦. 発表手順. 研究の背景 ・ abstract model, discrete model 研究の目的 abstract model
E N D
A Data Model and Data Structuresfor Moving Objects Databases Luca Forlizzi , Ralf Hartmut Gűting , Enrico Nardelli , and Markus Schneider ACM SIGMOD 2000 5/00 Dallas, TX, USA 2000年8月11日 金子研究室所属 修士課程1年 長野 英彦
発表手順 • 研究の背景 ・ abstract model, discrete model • 研究の目的 • abstract model • discrete model • discrete modelからデータ構造へのマッピング • まとめ
背景(1) • データベースの応用分野の拡大 • 時間の経過に従って位置や形状が変化する空間オブジェクト • タクシー、飛行機、オイルタンカー、洪水の地域など • どのような抽象化のレベルでデータタイプやオペレーションを記述すべきか?[EGSV98] [EGSV98] M.Erwig, R.H.Güting, M.Schneider, and M.Vazirgiannis. Abstract and Discrete Modeling of SpatioTemporal Data Types. In Proc. 6th ACM Symp. on Geographic Information Systems, pages 131-136, Washington, D.C., November 1998.
背景(2) 抽象化のレベル • abstract model • 比較的表現がシンプルなので重要な概念に注目することができる • discrete model • abstract modelよりも表現できる範囲が狭い • 有限な表現のみに制限 • abstract modelでの曲線や領域は、線分の集合や多角形として近似して表現 • 移動しているオブジェクトmoving(α)は、断片に分割して表現 • 全体的に表現がabstract modelよりも複雑になる • データ構造に直接的に変換することができる
研究の目的 • 連続して位置や形状が変化する時空間データベース上での、データ表現と問い合わせを提供 • 現在提案されているabstract model[GBE+00]に対応するdiscrete modelの定義 [GBE+00] R.H. Gűting, M.H.Böhlen, M.Erwig, C.S.Jensen, N.A.Lorentzos, M.Schneider, and M.Vazirgiannis. A Foundation for Representing and Querying Moving Objects. ACM Transactions on Database Systems, 25(1), 2000.
point , points, line , region • point • 2次元空間中の点 • points • 有限個の点の集合 • line • 2次元空間中の有限個の曲線の集合 • region • 互いに重なりのない有限個のfaceの集合 • faceとは平面の部分集合で連結なもの • faceには穴があっても構わない
instant , range • instant • 時間を表わす実数 • range • 引数 BASE または TIME • 引数のタイプと同じタイプの区間の集合
intime , moving • intime • 引数 BASE または SPATIAL • 時間とその時間における引数のタイプの値 • moving • 引数 BASE または SPATIAL • 時間から引数のタイプへの関数 • 例えば moving( region )は時間(instant)から regionへの関数を表わす
v t UNIT y x t UNIT abstract modelからdiscrete modelへ • 主な変更点 • moving type constructor をsliced representationで表現 • 時間変化をsliceと呼ばれる断片に分割 • slice中で時間変化は簡単な関数として表現 • 各断片をUNITと呼び、( i , v )で表現 • iは時区間 • vは簡単な関数
discrete model • const • 引数であるBASEまたはSPATIALの値が時間によって変化しないUNITを構築 • ureal ,upoint ,upoints ,uline ,uregion • それぞれreal, point, points, line, regionのUNITタイプ • mapping • 時区間が重ならないUNITの集合を構築
carrier set • それぞれのタイプに対してcarrier setを定義 • タイプαに対するcarrier setをDαとする • Dαは、discrete modelでのそれぞれのデータタイプに対する制限を表わす Dint = int ∪ {⊥} Dreal = real ∪ {⊥} Dstring = string ∪ {⊥} Dbool = bool ∪ {⊥} Dinstant = instant ∪ {⊥} (ただし intstant = real ) D’αは{⊥}と{Φ}を除いたDαを表す
Dpoint , Dpoints • Dpoint = Point ∪ {⊥} • Point = real × real • p , q ∈ Pointp < q ⇔ ( p.x < q.x ) ∨ ( p.x = q.x∧p.y < q.y ) • Dpoints = 2Point • pointsはpointの集合
abstract modelでのline discrete modelでのline Dline • Seg = { ( u, v ) | u, v ∈ Point, u < v } • Dline = { S ⊂ Seg | ∀s, t ∈ Seg : s≠t ∧ collinear( s, t ) ⇒ disjoint( s, t ) } • collinear( s, t )はs, tが同じ直線上にあるとき真 • disjoint( s, t )はs, tが重ならないとき真
Dregion • Discrete modelでのregionは多角形の集合 • 多角形には多角形の穴が空いていてもよい • Dregion = { F ⊂Face | f1, f2∈ F ∧f1≠ f2⇒ edge-disjoint( f1, f2 )} abstract modelでのregion discrete modelでのregion
Cycle • Cycle={S ⊂Seg| |S|=n, n≧3, such that ( i ) ∀s,t ∈S: s≠t ⇒ ¬p-intersect( s, t )∧¬touch( s, t ) ( ii ) ∀p∈points( S ) : card( p, S ) =2 ( iii ) ∃〈s0 ,..., sn-1 〉:{s0 ,..., sn-1 }= S∧ (∀i∈{0,…,n-1}:meet(si,s(i+1) mod n ))}
Face • Face={(c,H) | c∈Cycle, H⊂Cycle, such that ( i ) ∀h∈H : edge-inside(h, c ) ( ii ) ∀h1,h2∈H : h1≠ h2⇒edge-disjoint( h1,h2 ) ( iii ) any cycle that can be formed from the segments of c or H is either c or one of the cycles of H
Drange(α) • Sは全順序の適切なタイプ(BASEかTIME)の集合 • Intervals(S) = {(s, e, lc, rc | s, e ∈ S,lc, rc ∈ bool, s ≦ e, ( s = e ) ⇒ (lc = rc = true )} • IntervalSet(S) = { V ⊆ Interval(S) |(u,v∈S ∧ u≠v )⇒disjoint(u,v)∧ ¬adjacent(u,v)} • Drange(α)=IntervalSet(D’α) ∀α∈BASE∪TIME
Dintime(α) • Dintime(α) = Dinstant× Dα∀α∈BASE∪SPATIAL
Sliced Representation • mapping type constructorによって提供される • mapping type constructorはunitの集合としてsliced representationを提供 • unitは、タイプαの値が簡単な関数で表現できる最大の時区間 • Unit(S) = Interval( Instant ) × S (Sは集合) unitは( i,v )と表わすことができるi : unit interval v : unit function
mapping • mapping type constructorは、必要とされる制約を満たすようなunitの集合 • Mapping(S) = {U⊆Unit(S) | ∀(i1,v1)∈U,∀(i2,v2)∈U: ( i ) i1 = i2⇒ v1 = v2 ( ii ) i1≠i2 ⇒( disjoint( i1,i2 )∧(adjacent( i1,i2 )⇒ v1≠v2 ))} • Dmapping(α) = Mapping( Dα) ∀α ∈ UNIT
空間データタイプに対するunit • unit中でタイプの値がどんな振る舞いをしてよいのかを記述するために制約を作る必要がある • 時区間の両端では変化が起こるので、開の時区間中でのみ制約を満たすようにする
Dupoint • Mpointは2次元空間の移動している点を、3次元空間の線で表現する • Mpoint = {(x0,x1,y0,y1) | x0,x1,y0,y1∈ real } • Dupoint = Interval( Instant ) × Mpoint • ι(( x0,x1,y0,y1 ), t ) = ( x0+x1・t, y0+y1・t ) ∀t ∈ Instant • ι( v, t )は時間 t でのunit function vの値を計算する
Dupoints • Dupoints = {(i,M) | i ∈ Interval(Instant), M ⊂ Mpoint, |M| ≧ 1, ( 1 ) ∀t∈σ’( i ),∀l,k∈M : l≠k⇒ι(l,t)≠ι(k.t) ( 2 ) i = (s,e,lc,rc) ∧ s=e ⇒ (∀l,k∈M : l≠k ⇒ ι(l,s)≠ι(k,s))} • σ’( i )は開のunit interval(時区間)中の時間の集合 • ( 1 )の制約は、開のunit interval中で移動している点は交差しないことを意味する • ( 2 )の制約は、unit intervalがある一瞬を表わしているとき、その瞬間で全ての点は識別可能でなければならないことを意味する
Moving Lines • lineに対応するunitタイプ ulineを定義する • 2次元空間中で移動している線分を表現 • 「回転」の動きはできない • 表現の簡単さ、値の計算の簡単さ、表現力とのバランス • 多くの面によってより正確な近似を行なうことができる
Duline • Mseg = {(s,e) | s,e ∈Mpoint, s≠e, s is coplanar with e } • Duline = {( i, M) | i ∈Interval(Instant), M ⊂Mseg, |M| ≧1, such that ( 1 ) ∀t ∈σ’( i ) : ι(M, t) ∈D’line ( 2 ) i = (s,e,lc,rc) ∧ s = e ⇒ ι(M,s) ∈ D’line }
Moving Regions • regionに対応するunitタイプ uregionを定義する • ulineと同様、線分は「回転」できない • faceは時区間中で交差してはならない
Duregion • MCycle = {{s0 ,..., sn-1 } | n ≧3, ∀i ∈ {0, … , n-1} : si∈ Mseg } • MFace = {(c,H) | c ∈ Mcycle, H ⊂ Mcycle } • MCycle, MFaceはそれぞれCycle, Faceの条件も持つ • Duregion = {(i, F) | i ∈ Interval( Instant ), F ⊂ MFace, such that ( 1 ) ∀t ∈ σ’(i) : ι( F,t ) ∈ D’region ( 2 ) i = ( s,e,lc,rc ) ∧ s = e ⇒ ι( F,s )∈D’region}
discrete modelからデータ構造へのマッピング • Secondo extensible DBMS[DG99, GDF+99]上で、このモデルを実装中 • 1つのタイプは1つの「ルートレコード」で表現 • ルートレコードはタプル中に表現される • ルートレコードは複数の(データベース)配列への参照を持つ • 集合(モデルの表現に使われる)は配列中に表現される [DG99] S.Dieker and R.H.Güting. Plug and Play with Query Algebras: Secondo. A Generic DBMS Development Environment. Technical Report Informatik 249, Fern Universität Hagen, 1999. [GDF+99] R.H.Güting, S.Dieker, C.Freundorfer, L.Becker, and H.Schenk. SECONDO/QP: Implementation of a Generic Query Processor. In Proc. 10th Intl. Conf. on Database and Expert Systems Applications, pages 66-87, Italy, September 1999.
Non-Temporal Data Types(1) • BASEタイプはプログラミング言語の型を直接使用して表現 • pointは2つのreal型と1つのboolean型で表現(boolean型は値が定義されているかを表す) • pointsは点を表すレコードを要素とする1つの配列で表現 • 点は辞書式順序で格納されている • ルートレコードにはpointの数が格納されている
Non-Temporal Data Types(1) • lineはhalfsegmentの配列と、その他の情報で表現 • halfsegment • 1つのレコードは4つのrealと1つのboolean型 • 1つの線分を2回格納 • 1度目は左の端点のため、2度目は右の端点のため • 辞書式順序で格納されている • plane sweep algorithmを使用するため • その他の情報 • 線分の数、全ての線分の合計の長さ、バウンディングボックスなど
Non-Temporal Data Types(3) • regionは付加的な情報を加えたhalfsegmentの配列、cycles配列、faces配列とその他の情報で表現 • 付加的な情報 • halfsegmentは自分の属するcycleとfaceの次のhalfsegmentへの参照を持つ • cycles配列は自分を構成する最初のhalfsegmentへの参照と、自分の属するfaceの次のcycleへの参照を持つ • faces配列はそれぞれのfaceに対して、そのfaceの最初のcycleへの参照を持つ • その他の情報 • バウンディングボックス、faceの数、cycleの数、全面積、外周の長さ など
Non-Temporal Data Types(4) • range(α)はintervalの配列で表現 • interval( s, e, lc, rc )は対応する型で表現される • lc, rcはboolean型、s, eはBASEかTIMEの対応する型 • intime(α)は対応する型で表現 • αはBASEかSPATIAL
Fixed Size Units • unitを表すタイプの内、const(α), ureal, upointは大きさが決まっている • 時区間(Interval(Instant))とunit functionの組で表現
Variable Size Units • upoints, uline, uregionは大きさが変化する • これらは全て、時区間とその時区間でのunit functionを表わす配列への参照を持つ配列で表現される ルートレコード 時区間 unit function
まとめ • 「spatio-temporal extensible package」実現の基礎を提案 • [GBE+00]にある abstract modelを実現するためのdiscrete modelを提案し、正式に定義した • discrete modelが、現実的なDBMS上のデータ構造でどのように実現できるかを示した • このデータ構造で演算をどのように行なうかを示した [GBE+00] R.H. Gűting, M.H.Böhlen, M.Erwig, C.S.Jensen, N.A.Lorentzos, M.Schneider, and M.Vazirgiannis. A Foundation for Representing and Querying Moving Objects. ACM Transactions on Database Systems, 25(1), 2000.
今後の計画 • [GBE+00]にあるオペレーションの設計と実装 • このpackageとSecondo system[DG99],[GDF+99]との結合 [DG99] S.Dieker and R.H.Güting. Plug and Play with Query Algebras: Secondo. A Generic DBMS Development Environment. Technical Report Informatik 249, Fern Universität Hagen, 1999. [GDF+99] R.H.Güting, S.Dieker, C.Freundorfer, L.Becker, and H.Schenk. SECONDO/QP: Implementation of a Generic Query Processor. In Proc. 10th Intl. Conf. on Database and Expert Systems Applications, pages 66-87, Italy, September 1999.