User Tools

Site Tools

git_prostorove_databaze

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
git_prostorove_databaze [2018/05/28 12:41]
efox created
git_prostorove_databaze [2018/05/28 17:24] (current)
efox [funkce třídy geometry]
Line 14: Line 14:
  
 ====== databázové objekty ====== ====== databázové objekty ======
-  * pohledy (views)+  * **pohledy (views)**
         * SQL příkazy, pojmenované a uložené v databázovém systému         * SQL příkazy, pojmenované a uložené v databázovém systému
         * můžu select i na ně         * můžu select i na ně
-  * indexy (klíče)+  * **indexy (klíče)**
         * jsou pro každou tabulku         * jsou pro každou tabulku
         * fce: vést si v tabulkách rychlé lookup tables na sloupce, nad nimiž byly definovány (-> vyloučení duplicit v záznamech, zajištění fulltextového vyhledávání)         * fce: vést si v tabulkách rychlé lookup tables na sloupce, nad nimiž byly definovány (-> vyloučení duplicit v záznamech, zajištění fulltextového vyhledávání)
-    * triggery (spouštěče)+    * **triggery (spouštěče)**
           * mechanismus, který se vyvolá když změním nebo smažu rodičovskou tabulku           * mechanismus, který se vyvolá když změním nebo smažu rodičovskou tabulku
-    * uživatelem definované procedury a funkce+    * **uživatelem definované procedury a funkce**
           * pojmenovaný kus kódu -> uložím ho -> pak nad tabulkou provede určitou sekvenci příkazů (procedur) a vrátí nějaký výsledek (uživatelská funkce)           * pojmenovaný kus kódu -> uložím ho -> pak nad tabulkou provede určitou sekvenci příkazů (procedur) a vrátí nějaký výsledek (uživatelská funkce)
           * mohou mít parametry, obyvkle vstupní (IN), výstupní (OUT), vstupně-výstupní           * mohou mít parametry, obyvkle vstupní (IN), výstupní (OUT), vstupně-výstupní
-    * události (events)+    * **události (events)**
           * procerudy spouštěné v určitý čas (já si řeknu kdy) nebo opakovaně v určitý čas           * procerudy spouštěné v určitý čas (já si řeknu kdy) nebo opakovaně v určitý čas
           * pro údržbu, promazávání dočasného něčeho apod.           * pro údržbu, promazávání dočasného něčeho apod.
-    * formuláře+    * **formuláře**
           * pro vizuálně přívětivé prostředí pro přidávání hodnot           * pro vizuálně přívětivé prostředí pro přidávání hodnot
           * uživatelem nadefinované rozložení vstupních polí z dané tabulky, popisky           * uživatelem nadefinované rozložení vstupních polí z dané tabulky, popisky
-    * sestavy (reporty)+    * **sestavy (reporty)**
           * podobně jako u formulářů           * podobně jako u formulářů
           * definuju layout s políčky dané tabulky, kam se doplňují aktuální hodnoty           * definuju layout s políčky dané tabulky, kam se doplňují aktuální hodnoty
           * používají se pro výstup dat (tisk, prezentace, pouhé zobrazení)           * používají se pro výstup dat (tisk, prezentace, pouhé zobrazení)
           * i filtry           * i filtry
-    * uživatelská oprávnění+    * **uživatelská oprávnění**
           * úrovně přístupu a oprávnění pro uživatele           * úrovně přístupu a oprávnění pro uživatele
-    * procesy +    * **procesy** 
-    * proměnné nastavení +    * **proměnné nastavení** 
-    * vizuální ER schéma+    * **vizuální ER schéma**
           * vizuální reprezentace vtahů (relací) na sobě závislých polí (cizích klíčů) mezi tabulkami           * vizuální reprezentace vtahů (relací) na sobě závislých polí (cizích klíčů) mezi tabulkami
 +
 +
 +====== SQL (Structured Query language) ======
 +  * skládá se z:
 +        * DDL (data definition language)
 +              * definice relací, tabulek, atributů, vazeb, integritních omezení, indexů
 +        * DML (data manipulation language)
 +              * změna obsahu tabulek, vlastní dotazování na jejich obsah
 +        * DCL (data control language)
 +              * administrace databáze
 +              * kontrola transakcí
 +              * přidělování práv uživatelům, správa uživatelů
 +
 +====== SQL/MM (Multimedia) ======
 +  * standardizovaný soubor ADT, procedur a funkcí vytvořených dle SQL3 pro práci s multimediálním obsahem databáze
 +  * část standardu se zabývá prostorovými daty
 +  * definue:
 +        * ukládání, výběr, dotazování a aktualizaci jednoduchých prostorových objektů
 +        * reprezentaci prostorových objektů pomocí prostorových datových typů (spatial types)
 +        * funkce pro práci s prostorovými daty
 +  * St_Geometry -> St_Surface (CurvePolygon, Polygon), St_Curve (CircularString, LineString, CompoundCurve), St_Point, St_geomcollection (-> multisurface (multipolygon), -> multicurve (multilinestring), -> multipoint)
 +  * ST_geometry columns a spatial reference systems - obsahují popisky prostorových sloupců a souřadnicocých systémů použitých v databázi
 +  * st_units of measure: popisuje délkové a úhlové jednotky použité v databázi
 +  * st_sizings:. obsahuje hodnoty různých meta-proměnných
 +  * formáty: OGC well-known text representation for geometry, OGC well-known binary representation for geometry, GML
 +
 +====== oddělení dotazovacích a zobrazovacích instrukcí ======
 +  * 3 typy instrukcí:
 +        * vlastní uživatelský dotaz (user query)
 +        * další dotazy (display queries):. jiné barvy a další serepetičky
 +        * vlastní popis jak zobrazit data (display description)
 +  * prezentační jazyk: ukaž budovy z výsledku jako červená kolečka
 +
 +====== predikát PICK ======
 +  * výběr ukázáním
 +  * umožňuje formulovat dotazy s referencí na prostorové objekty viditelné na obrazovce
 +  * může kvalifikovat každý prostorový atribut ve WHERE klauzuli
 +  * například na jmeno mesta na ktere jsem klikla
 +
 +====== GPL (Graphical presentation language) ======
 +  * Spatial SQL obsahuje oddělený prezentační zobrazovací jazyk pro GPL pro manipulaci s grafickou prezentací výsledků dotazu
 +  * tvoří nadmnožinu dotazovací části spatial sql
 +  * **instrukce:**
 +        * set: nastavení konkrétních parametrů zobrazení
 +        * cancel: zrušení nastavení
 +        * show: ukáže aktuální hodnotu daného parametru
 +  * **modifikátory**
 +        * permanent: příslušné set/cancel se uloží pro příští práci se systémem
 +        * immediately: podle změny se překreslí aktuální výsledek dotazu (normálně se parametry použijí až pro jiný dotaz)
 +  * **parametry nastavitelné pomocí GPL**
 +        * display mode: udává, jak se zobrazují výsledky sekvence dotazů
 +              * grafické módy: new, overlay, remove, intersect, highlight
 +              * neprostorové selecty budou zobrazeny jako labels
 +        * graphical representation:. nastavení vizuálních proměnných - barva, vzorek, ...
 +              * buď jenom pro prostorovou relaci nebo pro její instance splňující nějaké její podmínky
 +              * zobrazení legendy, je to easy
 +        * měřítko (scale): SET Scale n;
 +        * výřez (window): SET Window, lze nastavit jako XY dvou protilehlých rohů nebo jako nejmenší obdélník ohraničující výsledky dotazu
 +        * kontext (spatial kontext): SET context - definice kontextu, který je při zpracování dotazu přidán k jeho výsledkům
 +        * zjištění obsahu kresby (examination of content): výsledká kresba může být kombinací mnoha dotazl (pomocí overlay, intersect, remove)
 +
 +====== geometrický objektový model dle OGC ======
 +{{::3_ogc.png?600|}}
 +  * třída geometry je ADT - každý geometrický objekt je asociován se souřadnicovým systémem, ve kterém je definován
 +  * point (0D), curve (1D), surface (2D)
 +  * GeometryCollection: několik klidně různých objektů, ale musí mít stejný SS
 +  * Curve: sekvence bodů
 +        * OGC 1.1. definuje podtřídu LineString odpovídající lineární interpolaci
 +        * Line: linestring se dvěma body
 +        * linearring: linestring odpovídající jednoduché (neprotíná se) a je uzavřená křivka
 +  * surface: libovolný 2D geometrický objekt
 +    * povrch je jednoduchý, lze li ho definovat jednou vnější hranicí a 0 až n vnitřními hranicemi (které se ale nesmí protínat, jsou tam od toho, aby definovaly díry)
 +  * multigeometrické typy:více geom typů stejné dimenze
 +        * multipoint, multilinestring, multipolygon
 +  * každá třída má definované svoje metody
 +  * pro geometry: dimension, geometrytype, srid
 +  * empty: definuje prázdnou geometrii
 +===== funkce třídy geometry =====
 +  * dimension
 +  * envelope: lomená čára typu BoundingBox
 +        * MBR (minimal bounding rectangle)
 +              * operace: MBRcontains, eithin, equal, intersect, overlaps, touches, joint
 +        * určuje nejmenší obdélník, do kterého lze daný geometrický útvar vepsat
 +  * geometrytype: point, linestring, polygon, ...
 +  * srid
 +
 +===== funkce objektu linestring =====
 +  * glenght
 +  * isclosed (1 nebo 0, shodnost koncového bodu a výchozího bodu)
 +  * numpoints 
 +  * strrtpoint, endpoint, point(g,N)
 +
 +===== funkce objektu polygon =====
 +  * area
 +  * exteriorring (vnější kružnice polygonu jako typ linestring)
 +  * interiorring (vnitřní blabla)
 +  * numinterrings (počet vnitřních kružnic - děr)
 +
 +===== funkce objektu geometryCollection =====
 +  * geometry(g,N)
 +  * numgeometries(g)
 +
 +===== přehled =====
 +  * point: x(), y(),m()
 +  * curve: lenght, startpoint, endpoint, isclosed, isring
 +  * linestring: numpoints, pointn
 +  * multicurve: isclosed, lenght
 +  * surface: area: centroid, pointonsurface
 +  * polygon: exterioring, numinrioring, interioringn
 +  * TIN: numpatches, patchn, boundingpolygon, isclosed
 +
 +
 +
 +
 +====== uložení dat v geodatabázi ======
 +  * OGC simple features
 +        * specifikuje uložení geografických dat v digitální podobě
 +        * založen na 2D geometrii s možností interpolace mezi lomovými body
 +        * prvek je považován za jednoduchý, pokud nedochází k překřížení prvku se sebou samým
 +        * definuje třeba envelope
 +  * WKT
 +        * textový značkovací jazyk pro popis vektorové geometrie geografických objektů prostorových referenčních systémů
 +        * objekty jsou reprezentovány pomocí ascii
 +        * body, linie, polygony, tin, polyhedrony
 +
 +====== prostorová doména ======
 +  * přidá se tam doméne "spatial"
 +  * pro zajištění vysoké úrovně abstrakce prostorových dat
 +  * atribut z domény "spatial" je spatial attribute, je i spatial relation
 +  * spatial_0 až 3 (pro dimenze)
 +  * v PC zachytím číslo jenom s omezenou přesností, tak proto 2 přístupy:
 +        * simplexy: 
 +              * skládání složitějších entit z jednodušších
 +              * simplelx = nejmenší nevyplněný objekt dané dimenze, 0-simplex je bod, 2-simplex je trojuhelník, 3-simplex je čtyřstěn atd...
 +        * úplné deskriptory:
 +              * komplexní popis modelované oblasti
 +              * množina bodů, úseček a případně vyyšších celků s následujícími vlastnostmi:
 +                    * každý (i koncový) bod je bodem sítě
 +                    * žádný vnitřní bod není zaznamenán v síti
 +                    * žádní dvě úsečky nemají průsečík a ani se nepřekrývají
 +
 +====== prostorové predikáty ======
 +  * relace mezi dvě prostorovými objekty
 +  * výsledek je 1 nebo 0
 +  * můžu na objekty dvou libovolných dimenzí
 +  * disjoint, meet, overlap, inside/contains, equal
 +  * predikáty: left/right, north/south, over/under
 +
 +====== prostorové operace ======
 +  * unární: jedna prostorová položka prostorové relace
 +  * topologické operátory:
 +        * dimension
 +        * boundary
 +        * interior - všechny části objektu, které nejsou v jeho hranici, boundingNodes a boundingEdges (určí ohraničující body a úsečky ploch), pro 1D a 2D je boundary, boundingNodes, boundingedges, interior, interiorNodes, interiorEdges, interiorAreas
 +  * aritmetické operátory:
 +        * lenght, area, volume
 +  * složené operátory:
 +        * perimetr (obvod) pro mnohoúhelník
 +        * extreme coordinates 
 +        * complement (doplněk)
 +        * convex hull (konvexní obal)
 +  * binární prostorové operátory (počítají hodnotu ze dvou položek)
 +        * distance
 +        * direction (úhel udávající azimut)
 +
 +====== geometrické funkce ======
 +  * převod geom formátů: astext, asbinary, geomgromtext, geomfromwkb
 +        * i point-linestrin-polygon as text apod
 +
 +====== prostorové analytické funkce ======
 +  * všechny funkce přidávají dvě geometrie
 +  * výsledek je boolean
 +  * contains (pokud leží BB úplně)
 +  * within (jako contains ale opačně)
 +  * crosses (BB se nekříží)
 +  * equals (stejné geometrie)
 +  * intersects (BB se dotýkají nebo překrývají)
 +  * overlaps (BB se překrývají)
 +  * touches (BB se dotýkají)
 +  * disjoint (BB se ani nedotýkají ani nepřekrývají)
 +
 +
 +
 +
 +
  
  
  
Permalink git_prostorove_databaze.1527504106.txt.gz · Last modified: 2018/05/28 12:41 by efox

oeffentlich