Abbildung 9: Deklaration von MDSYS.SDO GEOMETRY

Größe: px
Ab Seite anzeigen:

Download "Abbildung 9: Deklaration von MDSYS.SDO GEOMETRY"

Transkript

1 Tabelle wird für jede geometrische Instanz eine eigene Zeile angelegt. Das Spatial zugrunde liegende Datenmodell ist hierarchisch aufgebaut und besteht aus Elementen, Geometrien und Layern. Räumliche Daten werden als Layer abgespeichert, die aus Geometrien zusammengesetzt sind, die wiederum aus Elementen bestehen. Der Objekttyp SDO GEOMETRY ist in Spatial wie in Abbildung 9 definiert: CREATE TYPE sdo geometry AS OBJECT ( SDO GTYPE NUMBER, SDO SRID NUMBER, SDO POINT SDO POINT TYPE, SDO ELEM INFO MDSYS.SDO ELEM INFO ARRAY, SDO ORDINATES MDSYS.SDO ORDINATE ARRAY); Abbildung 9: Deklaration von MDSYS.SDO GEOMETRY Das erste Attribut SDO GTYPE ist ein numerischer Wert, der den Typ der Geometrie angibt. Möglichen Attributwerte und ihre Bedeutung sind der Tabelle aus Abbildung 10 zu entnehmen (d steht für die Zahl der Dimensionen; Oracle 8i unterstützt bisher nur höchstens zweidimensionale Objekte). Der Geometrietyp Collection kann Wert Geometrieart Beschreibung d000 UNKNOWN GEOMETRY wird ignoriert d001 POINT Punkt d002 LINESTRING Streckenzug d003 POLYGON Polygon mit oder ohne Loch d004 Collection heterogene Sammlung von Elementen d005 MULTIPOINT mehrere Punkte d006 MULTILINESTRING mehrere Streckenzüge d007 MULTIPOLYGON mehrere disjunkte Polygone Abbildung 10: Mögliche Werte für SDO GTYPE in Oracle 8i zusätzlich zu den primitiven elementaren Figuren noch aus 2-D Arc- Line-Strings (durch Kreisbögen zusammengesetzte Streckenzüge), 2-D Arc-Polygons (durch Kreisbögen zusammengesetzte Polygone), 2-D Circles (Kreise) sowie 2-D Optimized Rectangles (Rechtecke) zusammengesetzt sein. Das Attribut SDO SRID ist für zukünftige Zwecke reserviert. Es soll als Fremdschlüssel für eine Referenztabelle von räumlichen Bezugssystemen dienen. Das Attribut SDO POINT ist ein Objekttyp mit drei numerischen Attributen X, Y und Z. Sind die beiden folgenden Attribute SDO ELEM INFO und SDO ORDINATES beide null und ist dieser Wert ungleich null gesetzt, so werden die Werte von X und Y als Koordinaten einer Punktgeometrie aufgefasst. Ist eines der beiden folgenden Attribute nicht null, so wird dieser Wert von Spatial ignoriert. Das Attribut SDO ELEM INFO ist ein Array von Zahlen, dessen Grösse variiert. Die in diesem Array angegebenen Werte bestimmen die Interpretation der Werte des Attributs SDO ORDINATES. DieGrösse dieses Arrays ist ein Vielfaches von 3, da für jedes Element der Geometrie, die abgespeichert wird, drei Zahlen in diesem Attribut angegeben werden müssen. Diese drei Zahlen sind: 16

2 1. SDO STARTING OFFSET bestimmt den Offset des ersten Punktes eines Elementes in SDO ORDINATES relativ zum Anfang. Der erste Punkt im Array hat den Offset SDO ETYPE bestimmt den Typ des Elementes. Ist dieser durch SDO GTYPE bereits festgelegt, so wird hier redundante Information abgespeichert. Ist allerdings in SDO GTYPE angegeben, dass eine heterogene Menge an geometrischen Elementen vorliegt, so spezifiziert dieser Wert den genauen Typ der einzelnen Elemente. Erlaubt sind Werte von 1 bis 5. Die Werte 1, 2 und 3 stehen wie in Abbildung 10 für einfache Elemente. Die Werte 4 und 5 repräsentieren zusammengesetzte Elemente. Für diese hat das Attribut SDO ETYPE mindestens einmal drei Werte als header und anschliessend je drei Werte für jedes der einfachen Elemente. Ein Beispiel findet sich in Abbildung SDO INTERPRETATION ist ein von SDO ETYPE abhängiger Wert. Ist in SDO ETYPE angegeben, dass es sich um ein zusammengesetztes Element handelt, so gibt dieser Wert die Anzahl der Untertypen an, aus denen das Element besteht. Hat SDO ETYPE einen der Werte 1, 2 oder 3, so bestimmt SDO INTERPRETATION,wie die Werte in SDO ORDINATES zu diesem Element zu interpretieren sind. Beispielsweise wird für ein durch SDO ETYPE als Polygon definiertes Objekt durch SDO INTERPRETATION bestimmt, ob die einzelnen Punkte in SDO ORDINATES durch Geraden oder Kreisbögen miteinander verbunden werden. Eine vollständige Beschreibung der Kombinationsmöglichkeiten und Werte der Attributefindetsichin[Ora99b]. Das letzte Attribut SDO ORDINATES ist ein Array variabler Länge von Zahlen, die die Koordinaten der Eckpunkte der einzelnen Elemente bestimmen, aus denen das Geometrieobjekt besteht. Die Werte in diesem Array sind immer nach Dimensionen geordnet. Bisher unterstützt Oracle 8i allerdings nur zweidimensionale Objekte. Die Koordinaten der Elemente werden in diesem Array direkt nacheinander ohne bestimmte Trenn- oder Steuerungszeichen aufgelistet. Abbildung 11 zeigt ein Beispiel für das Anlegen eines geometrischen Objektes vom Objekttyp SDO GEOMETRY y (2,6) (5,6) (1,5) (6,5) (3,4) (4,4) (3,3) (4,3) (1,2) (6,2) (2,1) (5,1) x SDO_GEOMETRY column = ( SDO_GTYPE = 3 SDO_SRID = NULL SDO_POINT = NULL SDO_ELEM_INFO = (1,3,1, 19,3,1) SDO_ORDINATES = (1,2, 2,1, 5,1, 6,2, 6,5, 5,6, 2,6, 1,5, 1,2, 3,3, 4,3, 4,4, 3,4, 3,3 ) ) Abbildung 11: Polygon mit Loch (Inselpolygon) Das erzeugte Objekt kann nun in der Spalte einer Tabelle abgelegt werden, die vom Typ MDSYS.SDO GEOMETRY ist. Die Definition einer Tabelle mit einem räumlichen 17

3 Attribut folgt der üblichen Syntax von create table (Ein Beispiel steht in Abbildung 12). Ist eine solche Tabelle angelegt worden, so muss in einer weiteren, vom System CREATE TABLE country ( name VARCHAR2(50), shape MDSYS.SDO GEOMETRY); Abbildung 12: Defintion einer Tabelle mit räumlichem Attribut in Oracle 8i-Spatial angelegten Sicht, ein Eintrag für diese Tabelle und ihr räumliches Attribut vorgenommen werden, um Anfragen an und Operationen auf den geometrischen Daten durchführen zu können. Diese Sicht enthält Metadaten über Tabellen mit Attributen vom Typ MDSYS.SDO GEOMETRY und wird mit USER SDO GEOM METADATA bezeichnet. Dieser Name ist fest vorgegeben. Die Sicht enthält die Zeilen einer globalen Relation, die dem Benutzer zugeordnet sind. Es gibt auch die Sichten ALL SDO GEOM - METADATA sowie DBA SDO GEOM METADATA. Der Aufbau dieser Relation ist in Abbildung 13 angegeben. Für jede Relation mit räumlichen Daten muss in dieser Relati- CREATE TABLE mdsys.sdo geom metadata ( table name VARCHAR2(30), column name VARCHAR2(30), diminfo MDSYS.SDO DIM ARRAY, srid NUMBER); INSERT INTO user sdo geom metadata VALUES ( country, shape, MDSYS.SDO DIM ARRAY(MDSYS.SDO DIM ELEMENT( X, , ,1), MDSYS.SDO DIM ELEMENT( Y, , ,1)),NULL); Abbildung 13: Metadatentabelle für räumliche Attribute on ein Tupel angelegt werden. Dabei gibt DIMINFO den Koordinatenbereich der räumlichen Informationen an. Dieses Attribut ist vom Objekttyp SDO DIM ARRAY, der als VARRAY(4) of SDO DIM ELEMENT definiert ist. Der Aufbau der Informationen über eine einzelne Dimension ist in Abbildung 14 angegeben. Dabei gibt SDO DIMNAME CREATE TYPE sdo dim element AS OBJECT ( sdo dimname VARCHAR2(64), sdo lb NUMBER NOT NULL, sdo ub NUMBER NOT NULL, sdo tolerance NUMBER NOT NULL); Abbildung 14: Definition der Dimensionselemente den Namen und SDO LB bzw. SDO UB die untere bzw. obere Grenze der Koordinaten bezüglich der Dimension an. Die Toleranz bestimmt, um welchen Wert sich Koordinaten maximal unterscheiden dürfen, damit sie von Spatial noch als gleich angesehen werden. Die Reihenfolge der Dimensionen im DIMINFO-Array muss mit der Reihenfolge der Koordinaten in SDO ORDINATES übereinstimmen. Es sind hier auch mehr Dimensio- 18

4 nen möglich, die Methoden von Spatial unterstützen allerdings nur zweidimensionale Daten Anfragemodell Spatial benutzt ein Zwei-Ebenen-Anfrage-Modell (two-tier query model), um räumliche Anfragen zu bearbeiten(siehe Abb.15).Eine räumliche Anfrage wird dabei in zwei Operationen (Primärfilter und Sekundärfilter) aufgeteilt. Aufgabe des Primärfilters ist es, aus der Gesamtmenge der geometrischen Daten in möglichst kurzer Zeit eine Teilmenge (Kandidatenmenge) herauszufiltern, die als Eingabe an den Sekundärfilter übergeben wird. Diese indexbasierte Primärfilter-Operation benutzt als Eingabe approximierte Geometrieinformationen, um den Rechenaufwand zu verringern. Das Ergebnis der Operation des Primärfilters ist eine Obermenge des exakten Resultats. Der Sekundärfilter führt anschliessend exakte und daher meist teure Operationen auf der vom Primärfilter übergebenen Kandidatenmenge aus und liefert die exakte Ergebnismenge der Anfrage. Menge geometrischer Daten Menge an Kandidaten Primärfilter Sekundärfilter exakte Ergebnismenge Enthält mindestens die Menge des exakten Ergebnisses Abbildung 15: two-tier query model Ein wesentlicher Faktor für die Bearbeitungszeit räumlicher Anfragen ist die Selektivität des Primärfilters, da die Zeit, die Primärfilter-Operationen im Vergleich zu den Sekundärfilter-Operationen benötigen, sehr gering ist. Es ist also ein Optimum zwischen den gegenläufigen Faktoren Laufzeit und Grösse der ermittelten Kandidatenmenge (relaitv zum Endergebnis der Anfrage) zu bestimmen. Durch Indexe auf den geometrischen Daten erhofft man sich eine gute Approximation des Optimums Indexe für räumliche Daten Die Güte eines Index hängt auch von den zu erwartenden Anfragen ab. Typische Anfragen, für deren Bearbeitung räumliche Indexe benötigt werden, sind: Bereichsanfragen (window-query): Welche Objekte liegen in einem bestimmten Bereich? Räumlicher Verbund (spatial join): In welcher räumlichen Beziehung stehen Objekte zueinander? 19

5 In Oracle 8i werden beide Anfragearten durch den gleichen Index unterstützt. Die Einträge des räumlichen Index sind allerdings nicht mehrdimensional, sondern angeordnete Integer-Werte. Dies bedeutet, dass den integer-wertigen Indexeinträgen Teilflächen des gesamten Raumes (Kacheln) zugeordnet werden. Bei der Erstellung eines räumlichen Index mit Oracle 8i wird der Koordinatenraum, der alle Geometrien enthält, in kleinere Teilflächen zerlegt, die den Raum partitionieren. Dieser Zerlegungsprozess wird als tessellation bezeichnet. In einem ersten Schritt wird der gesamte Koordinatenraum entlang der Seitenhalbierenden in vier gleich grosse Kacheln zerlegt. Spatial bietet zwei mögliche Vorgehensweisen an: Festes Indexieren (Fixed Indexing): alle Kacheln haben gleiche Grösse und Form Hybrides Indexieren (Hybrid Indexing): Grösse und Form der Kacheln variieren an den Rändern der Geometrien Beim festen Indexieren wird der erste Schritt mit den entstandenen kleineren Kacheln wiederholt, bis ein Abbruchkriterium erfüllt ist. Das Ergebnis ist eine Zerlegung des Koordinatenraumes in Kacheln, die alle dieselbe Grösse und Form haben (siehe Abb. 16). Im Index wird für jede Kachel abgespeichert, welche Geometrien aus Abbildung 16: Zerlegung einer Fläche und Zuordnung des z-codes der Datentabelle sie schneiden. Beim hybriden Indexieren wird zunächst der Prozess des festen Indexierens durchgeführt; zusätzlich wird aber noch eine zweite Zerlegung vorgenommen, die immer nur diejenigen Kacheln weiter teilt, die den Rand einer Geometrie schneiden (siehe Abbildung 17). Auch dies wird wiederholt, bis ein Abbruchkriterium erfüllt ist. Der Vorteil dieser Methode ist eine nahezu unveränderte Rechenzeit gegenüber dem festen Indexieren, aber eine wesentlich genauere Approximation der Geometrien, was den Rechenaufwand für die nachfolgenden Methoden verringert. Mögliche Abbruchkriterien des Zerlegungsprozesses sind beispielsweise die Grösse der Kacheln oder eine maximale Anzahl von Kacheln, die für die Überdeckung einer Geometrie verwendet werden. Für die Indexerstellung und Indexverwaltung bietet Oracle 8i-Spatial die üblichen SQL-Kommandos an. Der Typ des räumlichen Index ist MDSYS.SPATIAL INDEX. Das Anlegen eines räumlichen Index erfolgt wie in Abbildung 18. Die zu übergebenden Parameter bestimmen die Größe der bei der Indexierung erzeugten Kacheln und die Art der Indexierung. Entscheidend hierfür sind die Werte der Parameter SDO LEVEL 20

6 1. Teilung 2. Teilung 3. Teilung 4. Teilung Abbildung 17: Variable Kachelgröße bei hybrider Indexierung CREATE INDEX idx country shape ON country(shape) INDEXTYPE IS mdsys.spatial index PARAMETERS ( sdo level=6, sdo numtiles=25 ); Abbildung 18: Anlegen eines räumlichen Index für die Anzahl der Teilungen beim fixed indexing und SDO NUMTILES für die Anzahl der Kacheln pro Geometrie bei der hybriden Indexierung. Für die Bestimmung dieser Werte bietet Oracle 8i Spatial einige Hilfsmethoden an, die in [Ora99b] genauer beschrieben sind. Hier wird als ein Beispiel die Methode SDO TUNE.ESTIMATE TILING LEVEL vorgestellt: SDO TUNE.ESTIMATE TILING LEVEL(<Tabellenname>, <Spaltenname>, <Maximalzahl Kacheln>, <Schätzart>) Diese Methode schätzt einen Wert für SDO LEVEL, der bei der Erstellung eines räumlichen Index auf der angegebenen Spalte der genannten Tabelle benutzt werden kann. Der dritte Parameter gibt die maximale Anzahl an Kacheln an, die bei der Indexerzeugung gebildet werden dürfen, die Schätzart bestimmt das der Schätzung zugrunde liegende Modell. Es kann die Kachelungstiefe dabei entweder basierend auf der Layer-Grösse, der Grösse des tatsächlich räumlich belegten Bereiches oder der durchschnittlichen Grösse eines räumlichen Objekts geschätzt werden. Der durch diese Methode ermittelte Wert für die Kachelungstiefe ist allerdings nur ein Schätzwert und sollte in der Praxis als Ausgangspunkt dienen, um einen endgültigen Wert zu bestimmen, der leicht von diesem Wert abweichen kann. In der neuesten Version (Oracle 8.1.6) werden die Indexinformationen automatisch in globale Indextabellen eingetragen. Auf diese Indextabellen erhält der Benutzer mithilfe der Sichten USER SDO INDEX METADATA, ALL SDO INDEX METADATA und DBA SDO INDEX METADATA lesenden Zugriff. Diese Sichten haben alle den gleichen Aufbau und unterscheiden sich je nach Nutzerzugriffsberechtigung lediglich in der Anzahl der zur Verfügung gestellten Informationen. Für jeden Index findet man hier Informationen wie Name der Tabelle mit Indexinformationen, Kachelungstiefe des Index, Speicherparameter und den Namen der indexierten Spalte. Jede der räumlichen Indextabellen besitzt wiederum die Spalten SDO CODE (Kodierung einer Kachel), SDO ROWID (ROWID des die Kachel schneidenden Objekts in der Geometrietabelle), SDO STATUS (gibt an, ob die Kachel im Inneren oder auf dem 21

7 Rand der Geometrie liegt) sowie SDO GROUPCODE (Verfeinerung der Kodierung für hybride Indexe). Details können in [Ora99f] nachgelesen werden. In früheren Oracle- Versionen waren diese Informationen nicht für den Benutzer zugänglich Operationen von Oracle 8i Spatial In diesem Unterabschnitt werden kurz die von Spatial zur Verfügung gestellten räumlichen Operatoren und Funktionen vorgestellt. Geometrische Funktionen des objektrelationalen Modells Die geometrischen Funktionen bilden den Kern der von Spatial für die Verwaltung geometrischer Daten zur Verfügung gestellten Methoden. Im Einzelnen sind dies: SDO GEOM.SDO AREA(<Geometrie>, <Dimfeld>) Berechnet die Fläche einer zweidimensionalen Geometrie. Dabei bestimmt Geometrie das zu untersuchende Objekt vom Typ MDSYS.SDO GEOMETRY und Dimfeld das zugehörige Array mit den Dimensionsinformationen. Dieses wird üblicherweise aus der Tabelle SDO GEOM METADATA ausgelesen. SDO GEOM.SDO LENGTH(<Geometrie>, <Dimfeld>) Berechnet die Länge bzw. den Umfang einer Geometrie. Die Parameter entsprechen denen der Methode SDO GEOM.SDO AREA() SDO GEOM.RELATE(<Geom 1 >, <Dimfeld 1 >, <Maske>, <Geom 2 >, <Dimfeld 2 >) Untersucht die zwei gegebenen Geometrien mit ihren Dimfeldern, um ihre räumliche Beziehung zueinander zu bestimmen. Mithilfe der Maske können dieser Methode verschiedene räumliche Beziehungen übergeben werden, die getestet werden sollen. Möglich sind ANYINTERACT, CONTAINS, COVEREDBY, COVERS, DISJOINT, EQUAL, IN- SIDE, OVERLAPBDYDISJOINT 2,OVERLAPBDYINTERSECTund TOUCH. SDO GEOM.SDO BUFFER(<Geometrie>, <Dimfeld>, <Abstand>) Liefert ein Polygon vom Typ MDSYS.SDO GEOMETRY zurück, das aus der übergebenen Geometrie zuzüglich dem übergebenen Abstand darum berechnet wird. SDO GEOM.SDO CENTROID(<Geometrie>, <Dimfeld>) Berechnet den Schwerpunkt des übergebenen Polygons; für alle anderen Geometriearten wird NULL zurückgegeben. SDO GEOM.SDO CONVEXHULL(<Geometrie>, <Dimfeld>) Gibt ein Polygon als Geometrieobjekt zurück, das die konvexe Hülle der übergebenen Geometrie beschreibt, d. h. das kleinste einfache Polygon, das die Geometrie enthält. SDO GEOM.SDO POLY DIFFERENCE(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Berechnet die Differenz (A\B) derübergebenen Polygone und liefert das Ergebnis dieser Differenzbildung zurück (vom Typ MDSYS.SDO GEOMETRY). 2 Es liegt kein Druckfehler vor: die Abkürzung steht für overlapping-and-boundary-disjoint, d. h. überlappend ohne Schnitt der Ränder 22

8 SDO GEOM.SDO POLY INTERSECTION(<Geom 1 >, <Dimfld 1 >, <Geom 2 >, <Dimfld 2 >) Berechnet den Durchschnitt zweier Polygone und gibt diesen zurück. SDO GEOM.SDO POLY UNION(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Berechnet die Vereinigung zweier Polygone und gibt diese zurück. SDO GEOM.SDO POLY XOR(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Berechnet die symmetrische Differenz zweier Polygone und gibt diese zurück. SDO GEOM.SDO DIFFERENCE(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Neuere Version von SDO POLY DIFFERENCE für allgemeine räumliche Objekte. SDO GEOM.SDO INTERSECTION(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Neuere Version von SDO POLY INTERSECTION für allgemeine räumliche Objekte. SDO GEOM.SDO XOR(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Neuere Version von SDO POLY XOR für allgemeine räumliche Objekte. SDO GEOM.SDO UNION(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Neuere Version von SDO POLY UNION für allgemeine räumliche Objekte. SDO GEOM.SDO DISTANCE(<Geom 1 >, <Dimfeld 1 >, <Geom 2 >, <Dimfeld 2 >) Berechnet den kürzesten Abstand zweier allgemeiner Geometrien. Der kürzeste Abstand ist dabei das Minimum über alle AbständevonjezweiPunktenaufdemRand der beiden Geometrien. SDO GEOM.SDO POINTONSURFACE(<Geometrie>, <Dimfeld>) Berechnet ein punktförmiges Geometrieobjekt, das garantiert auf der Oberfläche der übergebenen Geometrie liegt. SDO GEOM.VALIDATE GEOMETRY (<Geometrie>, <Dimfeld>) Überprüft die Gültigkeit der übergebenen Geometrie durch Vergleich mit der Typdefinition. Rückgabewert ist entweder true, falls die Geometrie ihrer Definition entspricht, false, falls die Geometrie fehlerbehaftet ist, Spatial den Fehler aber nicht bestimmen kann oder eine Fehlernummer, falls Spatial den Fehlertyp erkennt. SDO GEOM.VALIDATE LAYER(<Tabelle>, <Spalte>, <Primärschlüsselspalte>, <Ergebnistabelle>) Überprüft alle Geometrien einer Tabelle mit der Spalte vom Typ MDSYS.SDO GEOME- TRY und schreibt das Ergebnis dieser Überprüfung in die Ergebnistabelle. Die Ausgangstabelle muss die angegebene Primärschlüsselspalte besitzen. SDO GEOM.WITHIN DISTANCE(<Geom 1 >, <Dimfld 1 >, <dist>, <Geom 2 >, <Dimfld 2 >) Überprüft, ob zwei Geometrien innerhalb eines bestimmten Abstandes voneinander liegen und liefert im positiven Fall true zurück. Ist der Abstand der Geometrien größer als angegeben, ist der Rückgabewert false. Weitere Details und ausführlichere Beschreibungen zu allen Funktionen findet man in [Ora99b]. 23

9 Räumliche Operatoren Räumliche Operatoren unterscheiden sich von den räumlichen Funktionen durch die Art ihrer Rückgabewerte. Sie liefern im Gegensatz zu den differenzierten Werten der Funktionen lediglich true oder false zurück. Sie können daher in where-klauseln eines select-statements als Filter eingesetzt werden, um die Anzahl der aufwendigeren Funktionsaufrufe zu reduzieren. In Oracle 8i-Spatial existieren vier räumliche Operatoren: SDO FILTER(<Geometrie 1 >, <Geometrie 2 >, <Parameter>) Dieser Operator wird eingesetzt, um eine Kandidatenmenge von räumlichen Objekten für weitere Untersuchungen zu identifizieren. Basierend auf dem räumlichen Index überprüft dieser Operator, ob die übergebenen Geometrien gemeinsame Kacheln besitzen. Ist dies der Fall, so wird true zurückgeliefert, andernfalls false. SDO RELATE(<Geometrie 1 >, <Geometrie 2 >, <Parameter>) Mit diesem Operator wird getestet, ob die übergebenen Geometrie-Objekte in einer bestimmten räumlichen Beziehung zueinander stehen. Die zu untersuchende Beziehung wird als Parameter angegeben. Beziehungen, die überprüft werden können, entsprechen denen der Funktion SDO GEOM.RELATE(). Dieser Operator liefert true zurück, falls die angegebene Beziehung zwischen den Objekten besteht, andernfalls false. Er bestimmt im Gegensatz zu SDO FILTER() kein approximiertes, sondern das exakte Ergebnis. SDO WITHIN DISTANCE(<Tabelle>.<Spalte>, <Geometrie>, <Parameter>) Dieser Operator überprüft, ob der Abstand zweier Objekte kleiner als ein vorgegebener Wert ist. Die erste Geometrie muss aus einer räumlich indexierten Tabelle stammen, die zweite kann ein beliebiges Objekt vom Typ MDSYS.SDO GEOMETRY sein.ist der Abstand kleiner als der vorgegebene Wert,so ist der Rückgabewert true, andernfalls false. SDO NN(<Tabelle>.<Spalte>, <Geometrie>, <Parameter>) Berechnet die n nächsten Nachbarn von <Geometrie> aus der als erstes Argument angegebenen Tabellenspalte. Das erste Argument muss eine Tabellenspalte vom Typ MDSYS.SDO GEOMETRY sein, das zweite eine feste Geometrie. Der Operator kann nur in der where-klausel einer Anfrage verwendet werden und mit = TRUE abgefragt werden. Der Parameter sdo num res spezifiziert, wieviele nächste Nachbarn gefunden werden sollen. DetailszuallenOperatoreninsbesondereeineausführliche Beschreibung der Parameter findet man in [Ora99b]. Beispiele für die Verwendung der Funktionen und Operatoren in Anfragen: 1. Gib alle Länder mit ihrem Namen und ihrer Fläche aus: SELECT c.name, SDO GEOM.SDO AREA(c.shape, m.diminfo) as flaeche FROM country c, user sdo geom metadata m WHERE m.table name = COUNTRY AND m.column name = SHAPE ; 24

10 2. Vereinige die BRD und die DDR: INSERT INTO country VALUES ( Deutschland,MDSYS.SDO GEOMETRY( SELECT SDO GEOM.SDO UNION(c1.shape,m.diminfo,c2.shape,m.diminfo) FROM country c1, user sdo geom metadata m, country c2 WHERE m.table name = COUNTRY AND m.column name = SHAPE AND c1.name = BRD AND c2.name = DDR )); 3. Welche Länder mit K grenzen an Länder mit R? SELECT c.name, d.name FROM country c, country d WHERE SDO RELATE(c.shape, d.shape, mask=touchjjoverlapbdyintersect, querytype=join ) = TRUE AND c.name like K% AND d.name like R% ; 4. Ermittle die drei Hannover am nächsten liegenden Länder (ausser Deutschland): SELECT c.name FROM country c WHERE SDO NN(c.shape,mdsys.sdo geometry(2001, NULL, mdsys.sdo point type(hannover x,hannover y,null), NULL, NULL), sdo num res=4 ) = TRUE AND c.name not like Deutschland ; Anfrageoptimierung In der einschlägigen Dokumentation finden sich keine Hinweise, dass spezielle Statistiken sowie Selektivitäts- und Kostenschätzungen verwendet werden. Tests haben diese Vermutung erhärtet, da der Optimierer dazu neigt, den räumlichen Index nur bei sehr kleinen Selektivitäten zu verwenden. 4.2 Benutzerdefiniertes Data Cartridge für räumliche Daten In diesem Abschnitt wird das Ergebnis einer Studienarbeit ([Klo99]) vorgestellt. Es wurden nur Teile eines Data Cartridge implementiert, da das Ziel der Studienarbeit die Implementierung eines speziellen räumlichen Index (R -Baum) war. Es werden daher keine speziellen räumlichen Funktionen oder Operatoren (außer den direkt index-unterstützten) angeboten. Außerdem ist eine Statistikberechnung sowie Selektivitäts- und Kostenschätzung noch nicht implementiert Objekttypen für räumliche Daten Es werden Objekttypen für zweidimensionale Punkte und Rechtecke deklariert. Die Definition der Typrümpfe (create type body) ist hier nicht abgedruckt. Sie steht online zur Verfügung. Der Objekttyp point dient lediglich als Hilfstyp für die beiden Eckpunkte eines Rechtecks. Er stellt daher auch nur die üblichen get- und set-methoden zur Verfügung. Der Objekttyp Rect hat zwei Attribute zur Aufnahme des linken unterern bzw. rechten oberen Endpunkts. Es werden Methoden zur Berechnung von räumlichen Beziehungen zwischen zwei Rechtecken sowie einige zur Berechnung erforderlicher Eigenschaften eines Rechtecks zur Verfügung gestellt. Hierbei können 25

Speicherung und Verarbeitung von Geodaten mit Oracle Spatial

Speicherung und Verarbeitung von Geodaten mit Oracle Spatial Speicherung und Verarbeitung von Geodaten mit Oracle Spatial DOAG Webinar am 10.02.2017 Andreas Jordan, ORDIX AG [email protected] http://www.ordix.de Agenda Einführung Der Datentyp Spatial Queries ohne Index

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

Geodaten mal ohne Karte

Geodaten mal ohne Karte Geodaten mal ohne Karte Was man mit SQL alles machen kann Carsten Czarski Business Unit Database Oracle Deutschland B.V. & Co KG Oracle: Offene Geodaten-Plattform Native Datentypen in der Datenbank Vektordaten

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Oracle native json Support. Erste Schritte

Oracle native json Support. Erste Schritte Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale

Mehr

Java-Bibliothek oracle.sdoapi

Java-Bibliothek oracle.sdoapi Java-Bibliothek oracle.sdoapi Der Zugriff auf SQL-Objekte ist ein wenig umständlich und sollte unbedingt in entsprechenden Klassen gekapselt werden. Zur Arbeitserleichterung stellt aber Oracle seit dem

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware. *HVFKDFKWHOWH$QIUDJHQ In einer SQL-Anweisung können in der where-klausel, from-klausel, select-klausel wieder SQL-Anweisungen auftreten. Man spricht dann auch von einer geschachtelten Anfrage oder Unteranfrage.

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Geodatenbanksysteme in Theorie und Praxis

Geodatenbanksysteme in Theorie und Praxis 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Thomas Brinkhoff Geodatenbanksysteme in Theorie und Praxis Einführung

Mehr

Geodaten und Karten in APEX

Geodaten und Karten in APEX Geodaten und Karten in APEX So einfach wie noch nie! Carsten Czarski ORACLE Deutschland B.V. & Co KG Follow me on Twitter: @cczarski Geodaten und Karten in Anwendungen Geodaten in Tabellen: Wie speichert

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach [email protected] http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Erzeugen von Constraints

Erzeugen von Constraints Erzeugen von Constraints Was sind Constraints? Durch Constraints werden Regeln auf einem bestimmtem Tabellen-Level erzwungen. Die folgenden Constraint-Typen sind in Oracle integriert: NOT NULL UNIQUE Key

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist

Mehr

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen

Mehr

Indizes B+Bäume in Oracle. Jörg Winkler

Indizes B+Bäume in Oracle. Jörg Winkler Indizes B+Bäume in Oracle Vortragende: Conrad Kobsch Jörg Winkler Inhalt Allgemeines Aufbau / Eigenschaften von B+Bäumen Vorteile / Nachteile B+Baum-Indexe Kriterien für Indizes Anlegen eines Indizes Anfrageoptimierung

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Objekt-relationales Datenbanksystem Oracle

Objekt-relationales Datenbanksystem Oracle Objekt-relationales Datenbanksystem Oracle 1 Benutzerdefinierte Datentypen 1.1 Unvollständige Typen create-incomplete-type OR 1.2 Kollektionstypen REPLACE TYPE type-name create-varray-type OR TYPE type-name

Mehr

Strukturierte Objekttypen

Strukturierte Objekttypen Strukturierte Objekttypen Der Typ t approxmatch row des letzten Beispiels ist ein sogenannter Objekttyp. Definition: Ein Objekttyp ist ein Datentyp, bei dem (u.u. verschiedene) bekannte Datentypen zu einem

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 10 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing ([email protected])

Mehr

Verbunde (Joins) und mengentheoretische Operationen in SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL Verbunde (Joins) und mengentheoretische Operationen in SQL Ein Verbund (Join) verbindet zwei Tabellen Typischerweise wird die Verbindung durch Attribute hergestellt, die in beiden Tabellen existieren Mengentheoretische

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

Verbunde (Joins) und mengentheoretische Operationen in SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL Verbunde (Joins) und mengentheoretische Operationen in SQL Ein Verbund (Join) verbindet zwei Tabellen Typischerweise wird die Verbindung durch Attribute hergestellt, die in beiden Tabellen existieren Mengentheoretische

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

Geodatenbanksysteme in Theorie und Praxis

Geodatenbanksysteme in Theorie und Praxis Themas Brinkheff Geodatenbanksysteme in Theorie und Praxis Einführung in objektrelationale Geodatenbanken unter besonderer Berücksichtigung von Grade Spatial 2., überarbeitete und erweiterte Auflage @

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell Datenbanken Unit 3: Das relationale Modell 7. III. 2017 Outline 1 SQL 2 Das ER Modell Zusammenfassung 3 Das Relationale Modell Termin zweiter Zwischentest UE-Tests (Thema: SQL) zweiter Zwischentest findet

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen Explizite Jedes SQL Statement, das der Oracle Server ausführt, hat einen individuellen, der verbunden ist mit: Implizitem : Declariert für alle DML-Statements und PL/SQL SELECT Statements. Explizitem :

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen 4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,

Mehr

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

FachPraktikum 1590 Erweiterbare Datenbanksysteme. Aufgaben Phase 1

FachPraktikum 1590 Erweiterbare Datenbanksysteme. Aufgaben Phase 1 FachPraktikum 1590 Erweiterbare Datenbanksysteme Aufgaben Phase 1 Wintersemester 2004/2005 Ralf Hartmut Güting, Dirk Ansorge, Thomas Behr, Markus Spiekermann Praktische Informatik IV, Fernuniversität Hagen

Mehr

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int Informatik Eph IFG1/2 (GA) Bearbeitungszeit: 90 min. Seite 1 Aufgabe 1: Kniffel Modellierung und Implementierung Im Folgenden sollen Teile eines kleinen "Kniffel"-Spiels modelliert, analysiert und implementiert

Mehr

C-Programmierung: Ausdrücke und Operatoren#Division.2F

C-Programmierung: Ausdrücke und Operatoren#Division.2F C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF

Mehr

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse

Mehr

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell Datenbanken Unit 3: Das relationale Modell 8. III. 2016 Outline 1 Das ER Modell Zusammenfassung 2 Das Relationale Modell 3 SQL Organisatorisches Wissensüberprüfung: heute zwei Aufgaben statt nur einer

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 4 Prof. R. Westermann, A. Lehmann,

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Raumbezogene Datenbanken (Spatial Databases)

Raumbezogene Datenbanken (Spatial Databases) Raumbezogene Datenbanken (Spatial Databases) Ein Vortrag von Dominik Trinter Alexander Christian 1 Inhalte Was ist ein raumbezogenes DBMS? Modellierung Abfragen Werkzeuge zur Implementierung Systemarchitektur

Mehr

GEODATENBANKSYSTEME KAPITEL 3: SPEICHERUNG VON GEODATEN

GEODATENBANKSYSTEME KAPITEL 3: SPEICHERUNG VON GEODATEN GEODATENBANKSYSTEME KAPITEL 3: SPEICHERUNG VON GEODATEN 3-1 Speicherung von Geodaten Inhalte des Kapitels Anforderung an die Speicherung Verschiedene Speichervarianten Relationale Speicherung Speicherung

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs [email protected], [email protected] 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

Mehr

Aggregatfunktionen in SQL

Aggregatfunktionen in SQL Aggregatfunktionen in SQL Michael Dienert 14. April 2008 1 Definition von Aggregatfunktionen Ihren Namen haben die Aggregatfunktionen vom englischen Verb to aggregate, was auf deutsch anhäufen, vereinigen,

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen ([email protected])

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

Mehr

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36 Vorwort 11 1 Einleitung 15 1.1 Datenbanken 21 1.2 Tabellen 29 1.3 SQL und die Befehlseingabe 29 1.4 Beispieldatenbank 36 2 Am Anfang 38 2.1 Aufrufen der SQL-Eingabemaske 38 2.2 Schließen der SQL-Eingabemaske

Mehr

Überblick: Oracle Spatial 3D

Überblick: Oracle Spatial 3D ORACLE PRODUCT LOGO Quelle: TeleAtlas Überblick: Oracle Spatial 3D Karin Patenge / Carsten Czarski Oracle Deutschland B.V. & Co KG Agenda 3D Daten: Wo werden sie genutzt...? 3D Daten: Welche Varianten

Mehr

Oracle SQL*Loader. Der Oracle SQL*Loader ist Programm zum Einladen von Daten aus Dateien in die Datenbank.

Oracle SQL*Loader. Der Oracle SQL*Loader ist Programm zum Einladen von Daten aus Dateien in die Datenbank. Oracle SQL*Loader file://c:\lokal\lehre\schulungen\geodatenbanken2007\ausgewähltethemen\import\o... Seite 1 von 2 Oracle SQL*Loader Der Oracle SQL*Loader ist Programm zum Einladen von Daten aus Dateien

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Grundlagen der OO- Programmierung in C#

Grundlagen der OO- Programmierung in C# Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3

Mehr

BMW ConnectedDrive. Life is in motion.

BMW ConnectedDrive. Life is in motion. Folie 1 BMW ConnectedDrive. Life is in motion. BMW ConnectedDrive München Monat 2007 Freude am Fahren Geodaten in der Oracle-Datenbank Native Datentypen Vektordaten und Rasterdaten (Satellitenbilder) Offene

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) ArrayList 0 1 2 Obj0 Obj1 size() - 1 15.12.2014 CuP - VO 2 Auer 1 ArrayList import java.util.arraylist; ArrayList buchliste; buchliste = new ArrayList();

Mehr

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB

Mehr

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Seminarunterlage Version: 12.05 Version 12.05 vom 29. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-

Mehr

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien Kapitel 5 Dr. Jérôme Kunegis SQL: Grundlagen WeST Institut für Web Science & Technologien Lernziele Kenntnis der Grundkonzepte von SQL Fähigkeit zur praktischen Anwendung von einfachen SQL-Anweisungen

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Grundlagen von Datenbanken

Grundlagen von Datenbanken Agenda: Grundlagen von Datenbanken SS 2010 3. Relationale Algebra Prof. Dr. Stefan Böttcher Universität Paderborn mit Material von Prof. Dr. Gregor Engels Grundlagen von Datenbanken - SS 2010 - Prof. Dr.

Mehr

SQL: Weitere Funktionen

SQL: Weitere Funktionen Vergleich auf Zeichenketten SQL: Weitere Funktionen LIKE ist ein Operator mit dem in Zeichenketten andere Zeichenketten gesucht werden; zwei reservierte Zeichen mit besonderer Bedeutung sind hier % (manchmal

Mehr

Geoinformation Abbildung auf Tabellen

Geoinformation Abbildung auf Tabellen Folie 1 von 32 Geoinformation Abbildung auf Tabellen Folie 2 von 32 Abbildung auf Tabellen Übersicht Motivation des relationalen Datenmodells Von Objekten zu Tabellen Abbildung von Objekten Schlüssel Abbildung

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

Zusammengesetzte Datentypen

Zusammengesetzte Datentypen Zusammengesetzte Datentypen.1 Records... -4.1.1 Implizite Typdeklaration mit %ROWTYPE... -6.1.2 Referenzierung eines Records... -6.2 PL/SQL Tables... -8.2.1 Deklaration einer PL/SQL Table... -8.3 Referenzierung

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 8 Hausaufgabe 1 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe ([email protected])

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr