Benchmarking prostornih baza

=Cilj= Napraviti funkcionalnu analizu i performace testove na najčešče korištenim RDBMS sa prostornim ekstenzijama.
 * Rok realizacije: 06.2011

=Metodologija=

Prostorne baze

 * Oracle XE **
 * PostgrSQL/Postgis ( POSTGIS="1.5.2" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.6.31" USE_STATS) **
 * Informix C Edition **
 * SQLite/SpatiaLite


 * DB2?
 * MySQL?
 * Ingres (http://community.ingres.com/wiki/GeoDemoLinuxSetup)?
 * MSSQL Server (ako bude bilo Win mashina)?

-- ** instalirano

Prostorni upiti i test performansi

 * Load (time)
 * Database size (size)
 * Create spatial index (size | time)
 * ST_Intersect (+ overlap filter 3 velicine polygona)(Vertical polyline, Diagonal polyline, Multi-polyline) - sve ovo t select count(*) - sa result object Ovaj dio je glavi -razraditi!
 * St_Within
 * ST_Lenght
 * ST_Area
 * ST_Distance
 * ... pogledati funkcionalnu analizu pa raspisati do kraja

Funkcionalana analiza (tri kategorije funkcija)

 * data type component access (Point, LineString, Polygon, GeomCollection, MultiPoint, MultiLineString, MultiPolygon),
 * operatori za topološke odnose (Equals, Disjoint, Intersects, Touches, Crosses, Within, Contains, Overlaps, Relate)
 * geometrijske operacije (Distance, ConvexHull, Intersection, Union, Difference, SymDifference) - funkcije prostorne analize i
 * agregatne funkcije (napraviti spatial joine na tablicama).

Podaci

 * Polygoni
 * 50 000 recorda
 * 100 000 recorda
 * 1 000 000 recorda


 * Rectangular area (za geometrijske i topološke operacije)
 * mali polygon
 * srednji polygon
 * veliki polygon

Izvori podataka:


 * 1. OSM podaci
 * 2. napraviti triangulaciju nekom setu podataka (OSM POI? .. a da bi se dobio veliki broj polygona)

Scenariji

 * Scenarij 1: Presjecanje dijagonalnom multilinijom na tri seta podatak (+select count(*))
 * Scenarij 2: Presjecanje okomitom multilinijom na tri seta podataka (+ select count(*))
 * Scenarij 3: Presjecanje sa malim, srednjim i velikim poligonom na tri seta podataka (+ select count(*))
 * Scenarij 4: Transformacijaizmeđu referentnih sustava
 * Scenarij 5: Pronađi sve objekte koji se preklapaju sa danim poligonom (na tri poligona različitih veličina).
 * Scenarij 6: Pronađi i izreži sve objekte unutar zadanog polygona
 * Scenarij 7: Union većeg broja polygona

=Hardware=
 * Mljac server (mama): za sada raspoloziva dvije virtualne masine 193.198.207.15 i 193.198.207.16 na kojima je ubuntu (ima nesto instaliranog sw-a)
 * Dell Poweredge 2950: 2GB RAM, Intel Xeon 3.0 quad core, 2x120GB HDD (RAID0), Ubuntu 8.04 Server Edition, Oracle XE 10.2.0.1.0

=Sustav i konfiguracija sustava=
 * OS: Trenutno ubuntu 8.04 LTS (Upgrade?)
 * Otvoreno pitanje: Da li za svaku bazu postaviti isti, cist i isto konfiguriran OS ili sve stavljati na isti OS i ubijati deamone/procese i ine nametnike?

=Zadaci= Sami možete preuzimati obaveze sa popisa zadataka.
 * 1. Konceptualno dogovoriti koje i kakve prostorne upite koristiti u benchmarkingu.


 * 2. Napisati SQL upite korištenjem ST_funkcija (definirane u t.1))
 * Upiti za Oracle: (???)
 * Upiti za Postgres/PostGIS: (???)
 * Upiti za Informix: (???)


 * 3. Priprema podataka
 * OSM:
 * Područje: Njemačka (shapefile download)
 * Podaci: POI, ceste/ulice
 * Napraviti triangulaciju na POI-ima kako bi dobili što veći broj polygona.
 * Razdvojiti polygone dobivene triangulacijom na tri dataset-a (cca 50000/100000/1000000 objekata)
 * Na odabranom području napraviti tri polygona "Rectangular area" za preklope.

=Korisni linkovi:=
 * http://www.gdmc.nl/publications/2002/Testing_current_DBMS.pdf - Odlično!!!
 * http://www.bostongis.com/PrinterFriendly.aspx?content_name=sqlserver2008r2_oracle11gr2_postgis15_compare (usporedba postgis/mssql/oracle)
 * http://wiki.oracle.com/page/Database+Benchmarking
 * http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.30.5401&rep=rep1&type=pdf
 * http://dmap.nrlssc.navy.mil/dmap/pubs/documents/benchmarking.pdf