Analytische Funktionen erfolgreich eingesetzt

Größe: px
Ab Seite anzeigen:

Download "Analytische Funktionen erfolgreich eingesetzt"

Transkript

1 Analytische Funktionen erfolgreich eingesetzt Dani Schnider Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Analytische Funktionen, SQL, Performance Optimierung, Data Warehousing Zusammenfassung Analytische Funktionen wurden mit Oracle8i Release 2 eingeführt und in Oracle9i erweitert. Obwohl ihre zahlreichen und mächtigen Möglichkeiten somit schon seit einigen Jahren zur Verfügung stehen, werden analytische Funktionen heute leider immer noch selten eingesetzt. Hier soll gezeigt werden, wie verschiedene Fragestellungen mit Hilfe dieser Oracle- Funktionalität elegant und effizient formuliert werden können und wo die Vorteile aber auch Grenzen gegenüber herkömmlichen SQL-Abfragen liegen. Einleitung Ein einfaches Beispiel mit der guten alten EMP-Tabelle zu Beginn: Für jeden Mitarbeiter soll der Name, sein Gehalt sowie die Gehaltsumme seiner Abteilung angezeigt werden: DEPTNO ENAME SAL SUM_SAL CLARK KING MILLER SMITH JONES SCOTT ADAMS FORD ALLEN WARD MARTIN BLAKE TURNER JAMES Diese Abfrage lässt sich nicht mit einem einfachen SELECT-Befehl formulieren, da Daten auf unterschiedlichen Verdichtungsstufen angezeigt werden. Während sich die Spalten ENAME und SAL auf einen einzelnen Mitarbeiter beziehen, ist die Spalte SUM_SAL eine Aggregation (= Verdichtung) pro Abteilung. Eine mögliche Lösung ist die Verwendung einer Inline-View:

2 SELECT e1.deptno, e1.ename, e1.sal, e2.sum_sal FROM emp e1, (SELECT deptno, SUM(sal) sum_sal FROM emp GROUP BY deptno) e2 WHERE e1.deptno = e2.deptno ORDER BY e1.deptno Solche Lösungen funktionieren bestens und werden auch oft angewendet. Der Nachteil besteht hier darin, dass die Tabelle EMP zweimal gelesen werden muss. Klar, bei 14 Datensätzen ist dies kein Problem, aber bei grösseren Datenmengen können solche Abfragen zu Performanceverlusten führen. Das gleiche Ergebnis lässt sich einfach und elegant mit einer analytischen Funktion ermitteln. Dabei muss die Tabelle nur einmal gelesen werden, da die Berechnung von analytischen Funktionen im gleichen Durchlauf sozusagen nebenbei erfolgt. SELECT deptno, ename, sal, SUM(sal) OVER (PARTITION BY deptno) sum_sal FROM emp Grundprinzip der analytischen Funktionen Jede analytische Funktion bezieht sich auf Teilmengen der Daten, auf sogenannte Partitionen (die nichts mit partitionierten Tabellen zu tun haben). Anhand der Partitionen wird definiert, wie die Resultate der analytischen Funktion gruppiert werden. Die Aufteilung der Partitionen wird durch die Klausel PARTITION BY angegeben. Wird sie weggelassen, bezieht sich die analytische Funktion auf die gesamte Resultatmenge. Durch die Klausel ORDER BY kann festgelegt werden, wie die Daten innerhalb der Partition sortiert werden. Für viele der analytischen Funktionen ist die Angabe der Reihenfolge zwingend, da sie für die Funktionsberechnung wesentlich ist. Die Reihenfolge der Ausgabe der Resultatmenge kann jedoch von der Reihenfolge der Berechnung abweichen und wird wie üblich in SQL mit einem ORDER BY am Ende des SELECT-Befehls definiert. Falls für eine analytische Funktion ein ORDER BY spezifiziert wurde, kann die Menge der für die Berechnung relevanten Datensätze durch die Definition eines Windows zusätzlich eingeschränkt werden. Normalerweise umfasst das Window die Datensätze vom Beginn der Partition bis zum aktuellen Datensatz, es kann aber auch explizit durch ROWS (physische Grenze) oder RANGE (logische Grenze) eingeschränkt werden. Kompliziert? Anhand eines weiteren einfachen Beispiels soll das Grundprinzip der analytischen Funktionen illustriert werden: Für jeden Mitarbeiter soll berechnet werden, wie viele Mitarbeiter der gleichen Abteilung ein Gehalt im Bereich von +/ Dollar des

3 aktuellen Datensatzes haben. Die entsprechende SQL-Abfrage mit Verwendung der analytischen Funktion COUNT sieht folgendermassen aus: SELECT deptno, ename, hiredate, sal, COUNT(*) OVER (PARTITION BY deptno ORDER BY sal RANGE BETWEEN 1000 PRECEDING AND 1000 FOLLOWING) count_sal FROM emp Für jeden Datensatz der Resultatmenge wird nun die Spalte COUNT_SAL berechnet, ausgehend von der aktuellen Partition und dem aktuellen Window. Zu beachten ist dabei, dass die Partition und das Window wandern, d.h. für den jeweils aktuellen Datensatz (Current Row) neu festgelegt werden. Abb. 1: Partition, Window und Current Rows der analytischen Funktion Anwendungsbeispiel: Kumulierte Umsatzzahlen Eine typische Anwendung von analytischen Funktionen sind kumulierte Summierungen ( Year-to-date Abfragen), wie sie häufig in Data Warehouses vorkommen: Neben dem Umsatz pro Monat soll jeweils der gesamte Jahresumsatz bis zum entsprechenden Monat angezeigt werden. Das nachfolgende Beispiel zeigt, wie diese Problemstellung mittels einer analytischen Funktion gelöst werden kann. Dazu gruppieren wir die Umsatzzahlen nach Kalendermonat. Alle Monatsumsätze eines Jahres werden zu einer Partition zusammengefasst (PARTITION BY calendar_year) und nochmals summiert. Die Datensätze werden dazu nach Monat aufsteigend sortiert (ORDER BY calendar_month_desc). Dabei nützen wir die Tatsache aus, dass das für die Summierung verwendete Window jeweils alle Datensätze vom

4 Anfang der Partition (Januar des jeweiligen Jahres) bis zur Current Row (aktueller Monat) enthält. SELECT t.calendar_year year, t.calendar_month_desc month, SUM(s.amount_sold)/ millions, SUM(SUM(s.amount_sold)/ ) OVER (PARTITION BY t.calendar_year ORDER BY t.calendar_month_desc) millions_ytd FROM sales s, times t WHERE s.time_id = t.time_id GROUP BY t.calendar_year, t.calendar_month_desc Als Resultat wird jeweils der Monatsumsatz (Spalte MILLIONS) und der aufsummierte (=kumulierte) Umsatz innerhalb des Jahres (MILLIONS_YTD) ausgegeben: YEAR MONTH MILLIONS MILLIONS_YTD Das Beispiel basiert auf dem Sales History Beispielschema von Oracle10 g mit rund einer Million Einträgen in der SALES-Tabelle. Hier sind nun bereits deutliche Performanceunterschiede messbar. Der Execution Plan des ausgeführten SELECT-Befehls zeigt, dass die Tabelle SALES nur einmal gelesen und mit TIMES gejoined werden musste. Die Berechnung der analytischen Funktion wird am Schluss (nach dem GROUP BY) ausgeführt und ist im Execution Plan als WINDOW BUFFER dargestellt.

5 call count cpu elapsed disk query current rows Parse Execute Fetch total Rows Row Source Operation WINDOW BUFFER (cr=1773 pr=0 pw=0 time= us) 48 SORT GROUP BY (cr=1773 pr=0 pw=0 time= us) HASH JOIN (cr=1773 pr=0 pw=0 time= us) 1826 TABLE ACCESS FULL TIMES (cr=56 pr=0 pw=0 time=3896 us) PARTITION RANGE ALL PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) TABLE ACCESS FULL SALES PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) Im Vergleich dazu dauert die entsprechende Abfrage ohne Verwendung von analytischen Funktionen rund 10 mal länger und führt zu einem viel aufwändigeren Execution Plan, da mehrfach auf die Tabelle SALES zugegriffen werden muss: SELECT t.calendar_year year, t.calendar_month_desc month, SUM(s.amount_sold)/ millions, (SELECT SUM(s1.amount_sold)/ FROM sales s1, times t1 WHERE s1.time_id = t1.time_id AND t1.calendar_year = t.calendar_year AND t1.calendar_month_desc <= t.calendar_month_desc) millions_ytd FROM sales s, times t WHERE s.time_id = t.time_id GROUP BY t.calendar_year, t.calendar_month_desc ORDER BY t.calendar_year, t.calendar_month_desc call count cpu elapsed disk query current rows Parse Execute Fetch total Rows Row Source Operation SORT AGGREGATE (cr= pr=0 pw=0 time= us) TABLE ACCESS BY LOCAL INDEX ROWID SALES (cr= pr=0 pw=0 time= us) NESTED LOOPS (cr=21875 pr=0 pw=0 time= us) 9463 TABLE ACCESS FULL TIMES (cr=2688 pr=0 pw=0 time=57388 us) PARTITION RANGE ITERATOR PARTITION: KEY KEY (cr=19187 pr=0 pw=0 time= us) BITMAP CONVERSION TO ROWIDS (cr=19187 pr=0 pw=0 time= us) 9454 BITMAP INDEX SINGLE VALUE SALES_TIME_BIX PARTITION: KEY KEY (cr=19187 pr=0 ) 48 SORT GROUP BY (cr=1773 pr=0 pw=0 time= us) HASH JOIN (cr=1773 pr=0 pw=0 time= us) 1826 TABLE ACCESS FULL TIMES (cr=56 pr=0 pw=0 time=3736 us) PARTITION RANGE ALL PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) TABLE ACCESS FULL SALES PARTITION: 1 28 (cr=1717 pr=0 pw=0 time= us) Ranking-Funktionen Als analytische Funktionen können nicht nur die klassischen Gruppenfunktionen wie SUM, COUNT, MIN, MAX, AVG etc. verwendet werden, sondern es gibt auch weitere Funktionen, die speziell für die Verwendungs als analytische Funktionen konzipiert wurden.

6 Dazu gehört die Familie der Ranking-Funktionen, mit denen beispielsweise Ranglisten oder Top-n-Abfragen formuliert werden können. Die Funktionen RANK und DENSE_RANK berechnen die Ranglisten-Nummer für jede Zeile der Ausgabe, basierend auf der Sortierung innerhalb der Partition. Der Unterschied zwischen den beiden Funktionen besteht darin, wie nach mehreren gleichplatzierten Datensätzen die Nummerierung fortgesetzt wird: SELECT deptno, ename, sal, RANK() OVER (ORDER BY sal DESC) rank, DENSE_RANK() OVER (ORDER BY sal DESC) dense_rank FROM emp WHERE deptno IN (10, 20) DEPTNO ENAME SAL RANK DENSE_RANK KING SCOTT FORD JONES CLARK MILLER ADAMS SMITH Solche Ranglisten lassen sich über die ganze Datenmenge oder pro Partition berechnen, und das in einer einzigen Abfrage. Im nachfolgenden Beispiel wird anhand der Verkaufszahlen pro Produkt eine Rangliste über alle Produkte gebildet, und gleichzeitig eine Rangliste innerhalb jeder Produktkategorie. Unabhängig davon, wie viele verschiedene analytische Funktionen berechnet werden, die Basistabelle in diesem Fall die Tabelle PROD_SALES muss immer nur einmal gelesen werden. SELECT prod_category, prod_name, amount, RANK() OVER (ORDER BY amount DESC) rank_total, RANK() OVER (PARTITION BY prod_category ORDER BY amount DESC) rank_category FROM prod_sales ORDER BY prod_category Bei der ersten RANK-Funktion wurde kein PARTITION BY angegeben. Somit bezieht sich die Rangliste auf alle Daten. Im zweiten Fall wird durch Angabe PARTITION BY prod_category erreicht, dass für jede Produktkategorie eine separate Rangliste erstellt wird. Dieses Beispiel erweitern wir nun folgendermassen: Wir möchten für jede Produktkategorie das erfolgreichste Produkt mit seinem Umsatz anzeigen. Dazu kann wiederum die Funktion RANK verwendet werden. Der naheliegenste Ansatz wäre, die analytische Funktion in der WHERE-Klausel zu verwenden:

7 WHERE RANK() OVER (PARTITION BY ORDER BY ) = 1 Hier stossen wir allerdings auf eine Einschränkung: Analytische Funktionen können innerhalb eines SQL-Befehls im SELECT- und im ORDER BY-Teil verwendet werden, nicht jedoch in der WHERE- oder HAVING-Bedingung. Der Versuch führt zu einer Fehlermeldung: ORA-30483: window functions are not allowed here Die Einschränkung lässt sich aber einfach umgehen, indem die analytischen Funktionen in eine Inline-View verpackt werden, auf welche dann die Einschränkung erfolgt: SELECT prod_category, prod_name, amount FROM (SELECT prod_category, prod_name, amount, RANK() OVER (PARTITION BY prod_category ORDER BY amount DESC) ranking FROM prod_sales) WHERE ranking = 1 Sind wir nun wieder gleich weit wie am Anfang? Ein Vorteil von analytischen Funktionen besteht ja darin, dass man dadurch Inline-Views vermeiden kann. Und nun benötigen wir eine Inline-View, um die analytischen Funktionen anzuwenden. Wo soll da der Vorteil sein? Im Gegensatz zum Beispiel am Anfang dieses Beitrages muss hier die Basistabelle nur einmal gelesen werden, und auf das Resultat dieses SELECT-Befehls erfolgt dann die Einschränkung. Zwar wäre es aus Performancegründen noch besser, wenn die Einschränkung zu Beginn, also vor der Auswertung der gesamten Inline-View erfolgen könnte. Dies ist aber deshalb nicht möglich, weil für die Berechnung der Produkte mit dem höchsten Umsatz die Verkaufszahlen entsprechend aggregiert und sortiert werden müssen, bevor die Einschränkung erfolgen kann. Weitere Funktionen Das gleiche Resultat lässt sich auch ohne Inline-View erreichen, und zwar mit einer Erweiterung, die mit Oracle9i eingeführt wurde: FIRST bzw. LAST können verwendet werden, wenn eine analytische Funktion nur auf den ersten bzw. letzten Wert der Resultatmenge angewendet werden soll. In unserem Beispiel heisst das, dass der Name des ersten Produkts ermittelt werden soll, das aus einer sortierten Liste nach absteigendem Umsatz zurückgegeben wird. Weil wir die gesamte Abfrage nach Produktkategorie gruppieren, muss zusätzlich eine Gruppenfunktion (z.b. MIN oder MAX) angegeben werden. SELECT prod_category, MIN(prod_name) KEEP (DENSE_RANK FIRST ORDER BY amount DESC), MAX(amount) FROM prod_sales GROUP BY prod_category

8 Weitere interessante analytische Funktionen sind LAG und LEAD. Damit ist es möglich, ausgehend vom aktuellen Datensatz auf vorhergehende oder nachfolgende Datensätze zuzugreifen: SELECT ename, hiredate, sal, LAG(sal, 2) OVER (ORDER BY hiredate) lag_sal, LEAD(sal, 3) OVER (ORDER BY hiredate) lead_sal FROM emp Das Resultat dieser Abfrage zeigt für jeden Mitarbeiter nicht nur sein Gehalt an, sondern auch das Gehalt des vorletzten Mitarbeiters, der eingestellt wurde und jenes des Mitarbeiters drei Anstellungsdaten später: Abb. 2: Analytische Funktionen LAG und LEAD Anwendungsbeispiel: Vorjahresvergleich Immer wieder besteht die Anforderung, dass zum Beispiel Verkaufszahlen mit den entsprechenden Werten der Vorperiode verglichen werden sollen. Im nachfolgenden Beispiel soll der Umsatz des aktuellen Monats dem Umsatz des gleichen Monats im Vorjahr gegenübergestellt werden. Dazu wird jeweils die Summe der Umsätze aus der 12-letzten Zeile übernommen. Das funktioniert natürlich nur, wenn in jedem Monat Verkäufe gemacht wurden.

9 SELECT t.calendar_month_desc, SUM(s.amount_sold)/ millions, LAG(SUM(s.amount_sold), 12) OVER (ORDER BY t.calendar_month_desc)/ millions_ly FROM sales s, times t WHERE s.time_id = t.time_id GROUP BY t.calendar_month_desc Neben den hier vorgestellten analytischen Funktionen gibt es zahlreiche weitere Möglichkeiten, insbesondere statistische Funktionen, auf die hier nicht im Detail eingegangen wird. Einen Eindruck von der Mächtigkeit der analytischen Funktionen soll das letzte Beispiel geben, in welchem verschiedene Funktionen kombiniert in einer SQL-Abfrage verwendet werden. Pro Produktkategorie und Jahr werden folgende Werte berechnet: TOTAL_AMOUNT: Gesamtumsatz der Produktkategorie im entsprechenden Jahr CHANGE_LY: Prozentuale Veränderung gegenüber Vorjahresumsatz der Kategorie PCT_YEAR: Prozentualer Anteil der Produktkategorie am gesamten Jahresumsatz CAT_RANK: Platzierung des Jahres innerhalb der Produktkategorie YEAR_RANK: Platzierung der Produktkategorie innerhalb des Jahres SELECT p.prod_category category, t.calendar_year year, SUM(s.amount_sold) total_amount, 100 * SUM(s.amount_sold) / LAG(SUM(s.amount_sold)) OVER (PARTITION BY p.prod_category ORDER BY t.calendar_year) -100 change_ly, 100 * RATIO_TO_REPORT (SUM(s.amount_sold)) OVER (PARTITION BY t.calendar_year) pct_year, RANK () OVER (PARTITION BY t.calendar_year ORDER BY SUM(s.amount_sold) DESC) cat_rank, RANK () OVER (PARTITION BY p.prod_category ORDER BY SUM(s.amount_sold) DESC) year_rank FROM sales s JOIN times t USING (time_id) JOIN products p USING (prod_id) GROUP BY t.calendar_year, p.prod_category ORDER BY p.prod_category, t.calendar_year Sollten Sie nun der Meinung sein, dass dieser SQL-Befehl kompliziert ist, versuchen Sie die gleiche Abfrage ohne Verwendung von analytischen Funktionen zu implementieren. Spätestens danach werden Sie die Einfachheit der analytischen Funktionen zu schätzen wissen. Fazit Mit den analytischen Funktionen hat Oracle eine SQL-Erweiterung eingeführt, die sehr vielseitig und hilfreich ist, wenn es um die Formulierung von komplexen Auswertungen und Berechnungen geht. Aufgrund der guten Performance eignen sie sich insbesondere auch für

10 Abfragen auf grossen Datenmengen hauptsächlich, aber nicht nur im Umfeld von Data Warehouses. Hat man die vielfältigen Möglichkeiten von analytischen Funktionen einmal entdeckt, möchte man dieses Oracle-Feature nicht mehr missen. Literatur Oracle9i SQL Reference, Release 2 (9.2), Part No. A , Chapter 6 Oracle9i Data Warehousing Guide, Release 2 (9.2), Part No. A , Chapter 19 Oracle Database SQL Reference 10g Release 1 (10.1), Part No. B , Chapter 7 Oracle Database Data Warehousing Guide, 10g Release 1 (10.1), Part No. B , Chapter 21 Weitere Informationen zu analytischen Funktionen werden in den Trivadis-Kursen SQL-B (SQL für Fortgeschrittene) und O-DWH (Data Warehousing mit Oracle) vermittelt. Kontaktadresse: Dani Schnider Trivadis AG Europa-Strasse 5 CH-8152 Glattbrugg Telefon: +41(0) Fax: +49(0) Internet:

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

Oracle Analytic Functions

Oracle Analytic Functions Mittwoch, 13.02.2008, 17:00 Uhr Regionaltreffen München/Südbayern Oracle Analytic Functions Seit Jahren auf dem Markt (8.1.6), jedoch unbekannt und selten im Einsatz S e i t e 1 Agenda Einsatzmöglichkeiten

Mehr

Model Klausel - Der Excel-Killer von Oracle?

Model Klausel - Der Excel-Killer von Oracle? Model Klausel - Der Excel-Killer von Oracle? Andrea Kennel Trivadis AG Glattbrugg, Schweiz Schlüsselworte: Model Klausel, SQL, Data Warehousing, OLAP Zusammenfassung Ein Data Mart kann als ein Würfel mit

Mehr

Art der Info: Technische Background Info Teil 2 (April 2002)

Art der Info: Technische Background Info Teil 2 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 2 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

SQL Intensivpraktikum SS 2008

SQL Intensivpraktikum SS 2008 SQL Intensivpraktikum SS 2008 Aggregation von Daten Arbeit mit Gruppen SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved. Gruppenfunktionen Gruppenfunktionen verarbeiten

Mehr

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services 531 27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services Im zweiten Teil dieses Buches haben wir die Eigenschaften der Transact-SQL- Sprache in Bezug auf die Bearbeitung von operativen Daten gezeigt.

Mehr

Prakt. Datenbankprogrammierung. Sommersemester 2005

Prakt. Datenbankprogrammierung. Sommersemester 2005 Prakt. Datenbankprogrammierung Sommersemester 2005 A,2: Hierarchische Anfragen Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg Wann ist eine hierarchische Anfrage

Mehr

SQL Optimizer und SQL Performance

SQL Optimizer und SQL Performance SQL Optimizer und SQL Performance Schlüsselworte SQL, Optimizer, Explain Plan, SQL Trace Marco Mischke Robotron Datenbank Software GmbH Dresden Einleitung Dieser Vortrag beschäftigt sich mit grundlegenden

Mehr

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002)

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Betrifft Autör: GROUPING_ID Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem Oracle9i Data Warehousing Guide und den Kursen New Features Oracle9i

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P Index- und Zugriffsstrukturen für Data Warehousing Holger Brämer, 05IND-P Index- und Zugriffstrukturen für Data Warehousing Materialisierte Sichten Bitmap-Indexe Verbundindexe Materialisierte Sichten gehören

Mehr

Art der Info: Technische Background Info Teil 1 (April 2002)

Art der Info: Technische Background Info Teil 1 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 1 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH Oracle 8i und 9i New Features DOAG November 200 Peter Jensch, Trivadis GmbH Facts & Figures Über 300 Mitarbeiter (D und CH) Über 200 Oracle Consultant Über 300 Kunden (ohne Schulung) Über 000 Projekte

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

Einstellungen zur Verwendung von Flashback-Abfragen

Einstellungen zur Verwendung von Flashback-Abfragen Thema Autor REISE IN DIE VERGANGENHEIT Kamel Bouzenad (kamel.bouzenad@trivadis.com) Art der Info Infos für Entwickler und DBAs (April 2002) Quelle Oracle-Dokumentation sowie beratende Aktivitäten Überblick

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Datenschätze heben: Data Mining Carsten Czarski Leitender Systemberater Business Unit Database ORACLE Deutschland GmbH

<Insert Picture Here> Datenschätze heben: Data Mining Carsten Czarski Leitender Systemberater Business Unit Database ORACLE Deutschland GmbH Datenschätze heben: Data Mining Carsten Czarski Leitender Systemberater Business Unit Database ORACLE Deutschland GmbH Agenda Data Mining... erste Schritte... Der Data Mining-Ansatz

Mehr

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)

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

IT-Symposium 2008 05.06.2008

IT-Symposium 2008 05.06.2008 Selftuning Database Ein Traum oder Wirklichkeit Ralf Durben Oracle Deutschland GmbH www.hp-user-society.de 1 Die Arbeitswelt des Gestern, heute und morgen Früher Ein für wenige Datenbanken

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

Merge und andere schnelle Statements

Merge und andere schnelle Statements Merge und andere schnelle Statements Dr. Andrea Kennel InfoPunkt Kennel GmbH CH-8600 Dübendorf Schlüsselworte: Merge, Multitable Insert, Analytische Funktionen, hilfreiche Befehle für DWH und ETL Einleitung

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

Nutzung der Oracle Database InMemory Option für SAP BW

Nutzung der Oracle Database InMemory Option für SAP BW Nutzung der Oracle Database InMemory Option für SAP BW Schlüsselworte Oracle, SAP-BW, InMemory, Star-Schema. Jörn Bartels Oracle München Einleitung In SAP BW wurde bisher ein erweitertes Snow Flake Schema

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Optimale Performance durch Constraints im Data Warehouse

Optimale Performance durch Constraints im Data Warehouse Optimale Performance durch Constraints im Data Warehouse Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Die Frage, ob und in welchem Umfang Datenbankconstraints in einem Data Warehouse

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

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

Die Datenmanipulationssprache SQL

Die Datenmanipulationssprache SQL Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify

Mehr

Datawarehouses, Materialized Views, Materialized View Logs, Query Rewrite

Datawarehouses, Materialized Views, Materialized View Logs, Query Rewrite Betrifft DWH1: Materialized Views für Data-Warehouses Art der Info Technische Info, Oracle8i Quelle Aus dem AI8-EF Kurs der Trivadis (Enterprise Features) Autor Andri Kisseleff (andri.kisseleff@trivadis.com)

Mehr

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5. Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.1 im Internet: www.datenbanken-programmierung.de... 3.0 SQL nach

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Abfragen: Grundbausteine

Abfragen: Grundbausteine Abfragen: Grundbausteine Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen Operation ist eine. Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:

Mehr

Skripte schreiben. Überblick SQL*Plus. Einloggen in SQL*Plus. Tabellenstrukturen anzeigen

Skripte schreiben. Überblick SQL*Plus. Einloggen in SQL*Plus. Tabellenstrukturen anzeigen Skripte schreiben Überblick Login in. Beschreiben der Tabellenstrukturen. Editieren der SQL-Anweisung Ausführen von SQL aus. SQL-Anweisungen in Dateien speichern bzw. SQL-Anweisungen anhängen. Ausführen

Mehr

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski Aufgabe 1 Erstellen Sie eine Abfrage, die aus der EMP/DEPT-Tabelle die Felder Empno, Ename, Deptno und dname aller Mitarbeiter mit einem Gehalt von > 2500 ausgibt. select EMPNO, ENAME from EMP where SAL

Mehr

bersicht Datenbanken und Datawarehouses Datenbank Datenbanksysteme Niels Schršter

bersicht Datenbanken und Datawarehouses Datenbank Datenbanksysteme Niels Schršter bersicht Niels Schršter EinfŸhrung GROUP BY Roll UpÔs Kreuztabellen Cubes Datenbank Ansammlung von Tabellen, die einen ãausschnitt der WeltÒ fÿr eine Benutzergruppe beschreiben. Sie beschreiben die funktionalen

Mehr

Views erzeugen. Datenbank - Objekte. Wozu braucht man Views? Was ist eine View?

Views erzeugen. Datenbank - Objekte. Wozu braucht man Views? Was ist eine View? Datenbank - Objekte Views erzeugen Objekt Tabelle View Sequence Index Synonym Objekt Beschreibung Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen von

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner Speed up your Query Strategien zur Optimierung von SQL-Queries Juni 2012 Ulrike Brenner Ulrike Brenner Seit 1999 Oracle Entwicklerin Oracle DB 8-11gR2 SQL PL/SQL Oracle Forms/Reports APEX Entwicklerin

Mehr

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung

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

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

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

Enrico Genauck 37327 IN04

Enrico Genauck 37327 IN04 ANFRAGEOPTIMIERUNG IN ORACLE Enrico Genauck 37327 IN04 An!ageoptimierung in Oracle 1 ANFRAGEOPTIMIERUNG IN ORACLE Enrico Genauck 37323 IN04 Einleitung Die Optimierung einer Anfrage an eine relationale

Mehr

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL UnternehmensDatenbanken im Netzwerk Teil 3: SQL Programmierung - Grundlagen SQL-Befehle Funktionen Operatoren Datentypen Datenbank erstellen Tabellen SQL-Abfragen Autor: Rainer Egewardt Copyright Kompaktes

Mehr

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH Dani Schnider Principal Consultant Business Intelligence BI Trilogie, Zürich/Basel 25./26. November 2009 Basel Baden Bern Lausanne Zürich

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Datenbankprogrammierung

Datenbankprogrammierung Datenbankprogrammierung Arbeiten mit DB2 Server DB2- Befehlszeilenprozessor ausführen SQL-Skript-Datei bearbeiten Editor SSH Client Linux SSH-Konsole für Befehlszeilenproz. (ssh) X-Weiterleitung für Editor

Mehr

Fortgeschrittene OLAP Analysemodelle

Fortgeschrittene OLAP Analysemodelle Fortgeschrittene OLAP Analysemodelle Jens Kübler Imperfektion und erweiterte Konzepte im Data Warehousing 2 Grundlagen - Datenanalyse Systemmodell Datenmodell Eingaben System Schätzer Datentypen Datenoperationen

Mehr

Oracle Warehouse Builder 3i

Oracle Warehouse Builder 3i Betrifft Autoren Art der Info Oracle Warehouse Builder 3i Dani Schnider (daniel.schnider@trivadis.com) Thomas Kriemler (thomas.kriemler@trivadis.com) Technische Info Quelle Aus dem Trivadis Technologie

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Oracle OLAP 11g: Performance für das Oracle Data Warehouse

Oracle OLAP 11g: Performance für das Oracle Data Warehouse Oracle OLAP 11g: Performance für das Oracle Data Warehouse Marc Bastien Oracle BI Presales Agenda Performanceprobleme in Oracle DWH: gibt s das überhaupt? Mögliche Gründe und Lösungen

Mehr

Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index

Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index Inhalt 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index 2. Indexverwendung Vergleich von B*Baum und Bitmap Steuerung der Indexverwendung Richtlinien für die Indizierung

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 bibjah@bg.bib.de, holger@jakobs.com 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

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. SELECT-FROM SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. Inhaltsverzeichnis 1 Der grundlegende Aufbau 2 Doppelte

Mehr

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen Andrea Held Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken Partitionierung Komprimierung ILM Assistant Flashback Data Archive Empfehlungen 1 Datenwachstum Wachsende Kosten Schlechtere

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

SQL. Structured Query Language

SQL. Structured Query Language SQL Structured Query Language Grundlagen zu Abfrage SQL Jede SQL-Abfrage enthält die drei Hauptbefehle: select (engl. auswählen), from (engl. von) und where (engl. wo). Mit select gibt man an, welche Spalten

Mehr

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

Indexing und Performance Tuning

Indexing und Performance Tuning Indexing und Performance Tuning Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig PostgreSQL Indexing - Jeder hat schon einmal ein Telefonbuch Benutzt - Jeder hat schon einmal Suchen durchgeführt CREATE

Mehr

Projektion. Projektion. Operation: Projektion

Projektion. Projektion. Operation: Projektion Projektion einfache Abfragen Aufbereiten der Ergebnisse von Abfragen Ausdrücke und Formeln Abfragen im Verbund aggregierende Abfragen gruppierende Abfragen Angabe der zu bearbeitenden Tabelle(n) Angabe

Mehr

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Performance by Design Wie werden performante ETL-Prozesse erstellt?

Performance by Design Wie werden performante ETL-Prozesse erstellt? Performance by Design Wie werden performante ETL-Prozesse erstellt? Reinhard Mense ARETO Consulting Bergisch Gladbach Schlüsselworte: DWH, Data Warehouse, ETL-Prozesse, Performance, Laufzeiten, Partitionierung,

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum: Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung Stefan Maihack Dipl. Ing. (FH) Datum: 28.10.2005 1 einfachste SELECT-Anweisung Alle Inhalte einer Tabelle holen: SELECT * FROM land; 2 DML - SELECT

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

4. ArcView Anwendertreffen Datenbankanbindung mit ArcView. Daniel Fuchs

4. ArcView Anwendertreffen Datenbankanbindung mit ArcView. Daniel Fuchs 4. ArcView Anwendertreffen Daniel Fuchs Gliederung Teil 1: Grundbegriffe zu Datenbanken Teil 2: SQL menügesteuerte Datenabfragen aus ArcView Teil 3: SQL und Avenue Einstieg in die Programmierung Teil 4:

Mehr

Data Warehousing Grundbegriffe und Problemstellung

Data Warehousing Grundbegriffe und Problemstellung Data Warehousing Grundbegriffe und Problemstellung Dr. Andrea Kennel, Trivadis AG, Glattbrugg, Schweiz Andrea.Kennel@trivadis.com Schlüsselworte Data Warehouse, Cube, Data Mart, Bitmap Index, Star Queries,

Mehr

SQL Server 2008 Performance-Optimierung

SQL Server 2008 Performance-Optimierung Holger Schmeling SQL Server 2008 Performance-Optimierung Das Praxisbuch für Entwickler und Administratoren ^ ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England

Mehr

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL Carsten Czarski ORACLE Deutschland B.V. & Co KG München Einleitung Jede Suche in den Tabellen im Data Warehouse ist eine SQL-Abfrage

Mehr

3.17 Zugriffskontrolle

3.17 Zugriffskontrolle 3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man

Mehr

Die relationale Abfragesprache SQL Structured Query Language

Die relationale Abfragesprache SQL Structured Query Language Die relationale Abfragesprache SQL Structured Query Language Übersicht Einfache Abfragen SQL*Plus Auswahlbedingungen (where-klausel) Ein-Zeilen-Funktionen, Gruppenfunktionen Gruppierung von Daten Unter-Abfragen

Mehr

Aktuelle Entwicklungen

Aktuelle Entwicklungen PostgreSQL Aktuelle Entwicklungen (Hans-Jürgen Schönig), [HACKERS] Are we losing momentum? Bruce Momjian: August 2003 Momjian Blog: Postgres Is Hot Bruche Momjian Blog: June 7, 2008 I have attended or

Mehr

Erstellen einer Datenbank. Datenbankabfragen

Erstellen einer Datenbank. Datenbankabfragen Erstellen einer Datenbank Datenbankabfragen Überblick Die fünf Stationen Semantisches Modell Logisches Modell Prüfung auf Redundanz Abfragen Softwaremäßige Implementierung Zur Erinnerung: Semantisches

Mehr

SQL als Zugriffssprache

SQL als Zugriffssprache SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl

Mehr

4. Datenabfrage mit QBE 11

4. Datenabfrage mit QBE 11 Informationsbestände analysieren Datenabfrage mit QBE 4. Datenabfrage mit QBE 11 4.1. QBE vs. SQL Relationale Datenbanken haben schon früh den Anspruch gestellt, auch für Nicht- Informatiker nutzbar zu

Mehr

Objektorientierte Datenbanken

Objektorientierte Datenbanken OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz

Mehr

ORACLE DATENBANKOPTIMIERUNG (BASICS)

ORACLE DATENBANKOPTIMIERUNG (BASICS) ORACLE DATENBANKOPTIMIERUNG (BASICS) INHALT 1 Motivation... 1 2 Automatische, regelmäßige DB-Optimierung... 2 2.1 Index-Rebuild... 2 2.2 Tabellen-Reorganisation... 2 2.3 Statistiken ermitteln... 3 2.4

Mehr

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA Aktionsabfragen lassen sich bequem mit der Entwurfsansicht für Abfragen zusammenstellen. Sie können damit Daten an Tabellen anfügen, bestehende Daten ändern oder löschen und sogar gleich die passende Tabelle

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 11 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

MySQL Performance Tuning für Entwickler

MySQL Performance Tuning für Entwickler MySQL Performance Tuning für Entwickler Cebit 2015, Hannover Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 18 FromDual GmbH Support Beratung remote-dba Schulung

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion. SQL,Teil 2: SELECT W. Spiegel Übersicht SELECT Mehrfache Werte vermeiden: SELECT DISTINCT Ausgabe ordnen: ORDER BY Projektion Selektion: WHERE Join mit SELECT Beispiel Aufgaben 1 SELECT Die SELECT-Anweisung

Mehr

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-1) Januar, 2005 1

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-1) Januar, 2005 1 ORACLE ORACLE-SQL für Profis Tuning von ORACLE-SQL (Einführung-1) 1 1. Einführung ORACLE erlaubt eine Vielzahl von Tuning-Optionen, unter anderem: Optimierung der DB-Server für diverse Rechnerarchitekturen.

Mehr