4. Das Preference SQL - System

Größe: px
Ab Seite anzeigen:

Download "4. Das Preference SQL - System"

Transkript

1 4. Das Preference SQL - System 4.1 Preference SQL Middleware 4.2 Preference SQL Syntax Präferenz-Konstruktoren Qualitätsfunktionen für Bewertung Top-k Schnittstelle zum Auffüllen BUT ONLY als Nachfilter 4.3 Anwendungsbeispiele 4.4 Erweiterung um GROUPING Prof. Kießling

2 4.1 Preference SQL Middleware Server Client SQL-DB: Oracle, MySQL, JDBC-Treiber Preference SQL- Implementierung Preference SQL- JDBC-Treiber Java-Applikation oder SQL-Client Mitarbeit bei Preference SQL in jeder Form erwünscht! Prof. Kießling

3 Beispiel: DbVisualizer als (P)SQL-Client Prof. Kießling

4 Benötigte Daten für Treiber-Konfiguration: Preference SQL-JDBC-Treiber: PreferenceSQLJDBCClient.jar (per Download von Homepage) Driver: psql.connector.client.psqldriver URL: Login: Näheres dazu auf Übungsblatt Prof. Kießling

5 4.2 Preference SQL Syntax Vorbemerkungen: Preference SQL = Standard SQL + Präferenzen Per Default verwendet Preference SQL reguläre SV-Semantik. Bei jeder numerischer Präferenz ist der d-parameter (im Folgenden d) optional. Dokumentation findet sich unter Prof. Kießling

6 Preference SQL-Abfrageblock: 10. SELECT <projection_list> 1. FROM <table_references> 2. WHERE <hard_conditions> PREFERRING <pref_constructor> 6. GROUP BY <attribute_list> 7. HAVING <hard_conditions> 8. ORDER BY <attribute_list> 9. LIMIT <number>; Prof. Kießling

7 Auswertungsreihenfolge 1. R := R 1 x x R n kartesisches Produkt 2. T 1 := σ H (R) H ist eine harte Bedingung auf dem kart. Produkt T 4 :=...σ [P] (T 1 ) Präferenzauswertung auf dem Ergebnis der harten Selektion; Verfeinerung auf der nachfolgenden Folie; 6. T 5 := Γ AGG (T 4 ) Gruppierung nach Aggregationsattributen 7. T 6 := σ HAVING (T 5 ) Selektion pro Gruppe durch Agg.attribut / Agg.funktion 8. T 7 := SORT A (T 6 ) Sortierung nach Attributen 9. T 8 := LIMIT n (T 7 ) Begrenzung der Ergebnismenge 10. T 9 := π A (T 8 ) Projektion von Attributen, Präferenzauswertung stellt weitere Funktionen für Projektion zur Verfügung! Prof. Kießling

8 Bemerkungen: In SQL gruppiert GROUP BY HAVING die Ergebnismenge nach der harten Selektion in Partitionen, die durch die Gruppierungsattribute charakterisiert sind und den HAVING-Bedingungen genügen müssen. In Preference SQL gruppiert GROUP BY HAVING die BMO-Menge, die durch die Präferenzauswertung resultiert, nach den Gruppierungsattributen. Zudem gelten die HAVING-Bedingungen. Prof. Kießling

9 Präferenz-Selektion: 3. PREFERRING <soft_conditions> 4. TOP <number> 5. BUT ONLY <but_only_conditions> 3. T 2 := σ [P] (T 1 ) Präferenzauswertung nach harter Selektion 4. T 3 := TOP k (T 2 ) Top-k Schnittstelle, siehe später 5. T 4 := σ BO (T 3 ) BO ist eine harte Bedingung (Nachfilter). Beachte: Die gleichzeitige Verwendung von TOP K und BUT ONLY sollte semantisch durch Anwendung begründbar sein! Prof. Kießling

10 4.2.1 Präferenz-Konstruktoren Mit Hilfe von Basispräferenzen, die sich aufteilen in Kategorielle Präferenzen und Numerische Präferenzen werden induktiv komplexe Präferenzen aufgebaut. Prof. Kießling

11 Numerische Basispräferenzen 1.) SCORE (A, f, d, SV) Preference SQL-Syntax: <column> SCORE <string_literal> [, <number> ] [<SV-Relation>] Beispiele: alter SCORE 'sqrtscoref' preis SCORE 'preisfunktion', 5 Prof. Kießling

12 SCORE-Funktionen in Preference SQL: Die Definition einer SCORE-Präferenz erfolgt über CREATE [OR REPLACE] SCORE '<name>' AS BEGIN <Java-Anweisungen> END; Vordefinierte SCORE-Funktionen in Preference SQL: - absscoref : Betrag, z.b. 'absscore' - identityscoref : Identität, z.b. 'identityscoref', 2 - negscoref : Negation, z.b. 'negscoref' - powtwoscoref : Quadrat, z.b. 'powtwoscoref', 10 - powthreescoref : Kubik, z.b. 'powthreescoref', 4 - sqrtscoref : Quadratwurzel, z.b. 'sqrtscoref' Details zum Schreiben von eigenen SCORE- bzw. RANK-Funktionen Prof. Kießling

13 2.) BETWEEN (A, [low, up], d, SV) Preference SQL-Syntax: PREFERRING <column> BETWEEN <low>, <up> [, <number> ] [<SV-Relation>] Beispiele: alter BETWEEN 10, 16 preis BETWEEN 5000, 6000, 100 Prof. Kießling

14 3.) AROUND (A, z, d, SV) Preference SQL-Syntax: <column> AROUND <number> [, <number> ] [<SV-Relation>] Beispiele: leistung AROUND 90 verbrauch AROUND 6.5, 0.5 Prof. Kießling

15 4.) HIGHEST (A, d, SV) Preference SQL-Syntax: <column> HIGHEST [<number>, <number> ] [<SV-Relation>] Das 1. <number>-element ist das Supremum. Das 2. <number>-element ist der d-parameter. Beispiele: leistung HIGHEST jahresgehalt HIGHEST , 1000 Prof. Kießling

16 5.) LOWEST (A, d, SV) Preference SQL-Syntax: <column> LOWEST [<number>, <number> ] [<SV-Relation>] Das 1. <number>-element ist das Infimum. Das 2. <number>-element ist der d-parameter. Beispiele: preis LOWEST verbrauch LOWEST 2.0, 0.5 Prof. Kießling

17 Kategorielle Basispräferenzen 1.) LAYERED m (A, L, SV) Preference SQL-Syntax: PREFERRING <column> LAYERED ( ( (<string_literal> [, <string_literal>]* ) OTHERS) [, (<string_literal> [, <string_literal>]* ), OTHERS ]* ) [<SV-Relation>] Zudem gilt: es darf nur ein OTHERS geben. Beispiel: farbe LAYERED ( ('blau', 'gelb'), ('weiß', 'schwarz'), OTHERS, ('lila', 'rosa') ) Prof. Kießling

18 2.) POS/POS (A, POS 1 -set, POS 2 -set, SV) Preference SQL-Syntax: PREFERRING <column> IN (<string_literal> [, <string_literal>]* ) ELSE (<string_literal> [, <string_literal>]* ) [<SV-Relation>] Beispiele: modell IN ('Kombi', 'Limousine') ELSE ('SUV', 'Van') farbe IN ('blau', 'gelb') ELSE ('rot', 'grün') Prof. Kießling

19 3.) POS (A, POS-set, SV) Preference SQL-Syntax: PREFERRING <POS> [<SV-Relation>] <POS> ::= <column> = <string_literal> <column> IN (<string_literal> [, <string_literal>]* ) Beispiele: farbe IN ('gelb', 'grün', 'blau') amtsbezeichnung = 'Bundespräsident' modell = 'Kombi' Prof. Kießling

20 4.) POS/NEG (A, POS-set, NEG-set, SV) Preference SQL-Syntax: PREFERRING <column> IN (<string_literal> [, <string_literal>]* ) NOT IN (<string_literal> [, <string_literal>]* ) [<SV-Relation>] Beispiele: modell IN ('Kombi', 'Limousine') NOT IN ('SUV', 'Van') farbe IN ('blau', 'gelb') NOT IN ('pink', 'rosa', 'lila') Prof. Kießling

21 5.) NEG (A, NEG-set, SV) Preference SQL-Syntax: PREFERRING <NEG> [<SV-Relation>] <NEG> ::= <column>!= <string_literal> <column> <> <string_literal> <column> NOT IN (<string_literal> [, <string_literal>]* ) Beispiele: farbe NOT IN ('gelb', 'grün', 'blau') amtsbezeichnung <> 'Bundespräsident' modell!= 'Kombi' Prof. Kießling

22 6.) EXPLICIT (A, E-Graph) Preference SQL-Syntax: PREFERRING <column> EXPLICIT ( <string_literal> < <string_literal> [, <string_literal> < <string_literal> ]* ) Die Implementierung sichert Zyklenfreiheit im E-Graph zu. Die Explicit- Präferenz hat keinen SV-Parameter. Es gilt triviale SV-Semantik. Beispiel: modell EXPLICIT ( 'LKW' < 'Van', 'Van' < 'Kombi', 'Van' < 'Limousine', 'Kombi' < 'Limousine' ) Prof. Kießling

23 Folgende Produktionen gelten für SV-Relation: <SV-Relation> ::= REGULAR TRIVIAL // benutzerdefiniert // Default-SV-Relation, siehe unten // Reguläre SV-Semantik // Triviale SV-Semantik // Implementierung sichert disjunkte SV-// Mengen zu SV ( (<string_literal> [, <string_literal>]*) [, (<string_literal> [, <string_literal> ]*) ]* ) Für SCORE und Subkonstruktoren ist reguläre SV-Semantik der Default. Für EXPLICIT (und später GROUPING) gilt triviale SV-Semantik als Default. Prof. Kießling

24 Beispiel für benutzerdefinierte SV-Semantik: SELECT id FROM car PREFERRING color IN ('blue', 'yellow', 'white') ELSE ('green', 'red', 'pink') SV ( ('blue', 'yellow'), ('green', 'red') ) AND price LOWEST; Prof. Kießling

25 Beispiele zu Preference SQL-Anfragen: (elementare Präferenzkonstruktoren) SELECT * FROM trips PREFERRING duration AROUND 14, 1; SELECT * FROM apartments PREFERRING area HIGHEST 400, 10; SELECT PREFERRING SELECT PREFERRING * FROM programmers experience IN ('java', 'C++'); * FROM hotels location <> 'downtown'; Prof. Kießling

26 SELECT make, age FROM car PREFERRING age AROUND 5, 2; -- Gruppierung obiger BMO-Tupel nach Marke SELECT make, count(*) FROM car PREFERRING age AROUND 5, 2 GROUP BY make; -- zusätzliche Anforderung: Mindestanzahl pro Gruppe SELECT make, count(*) FROM car PREFERRING age AROUND 5, 2 GROUP BY make HAVING count(*) > 2; Prof. Kießling

27 Komplexe Präferenzen Komplexe Präferenzen setzen sich aus den bereits bekannten Basispräferenzen zusammen. 1.) Pareto ({A 1, A 2 }, < P1 P 2 ) Preference SQL-Syntax: PREFERRING <preference> AND <preference> Beispiel: preis AROUND 5000, 500 AND farbe = 'blau' Prof. Kießling

28 2.) Priorisierung ({A 1, A 2 }, < P1 & P 2 ) Preference SQL-Syntax: PREFERRING <preference> PRIOR TO <preference> Beispiele: price AROUND 5000 PRIOR TO color = 'blue' price AROUND 5000, 100 PRIOR TO (color IN ('blue', 'green', 'red') SV( ('blue', 'green') ) ) Prof. Kießling

29 Beispiele zu Preference SQL-Anfragen: (komplexe Präferenzkonstruktoren) SELECT PREFERRING SELECT WHERE PREFERRING * FROM computers main_memory HIGHEST AND cpu_speed HIGHEST; * FROM car brand = 'Opel' (category IN ('roadster') ELSE ('passenger') AND price AROUND 40000, 2000 AND power HIGHEST) PRIOR TO color = 'red' PRIOR TO mileage LOWEST 0, 10000; Prof. Kießling

30 3.) Numerisches Ranking ({A 1, A 2 }, < rankf, d) Preference SQL-Syntax: PREFERRING ( <score_preference> <rank_preference> [ <score_preference> <rank_preference > ]* ) RANK <string_literal> [ <string_literal> ] [ <number> ] Die Definition einer RANK-Präferenz erfolgt analog zu SCORE über CREATE [OR REPLACE] RANKFUNCTION '<name>' AS BEGIN <Java-Anweisungen> END; Details zur Einbindung von Java-Code für RANK-Präferenzen Prof. Kießling

31 Vordefinierte RANK-Funktionen in Preference SQL, Beispiele: - avgrankf : gewichteter Durchschnitt, z.b. 'avgrankf' '0.2, 0.5' - sumrankf : ungewichtete Summe, z.b. 'sumrankf' - maxrankf : Maximum, z.b. 'maxrankf' - minrankf : Minimum, z.b. 'minrankf' - productrankf : gewichtetes Produkt, z.b. 'productrankf' '3, 5' Beispiel: ( leistung SCORE 'f1' ( alter SCORE 'f2' preis LOWEST 0, 500 ) RANK 'sumrankf' id SCORE 'f4' ) RANK 'avgrankf' '0.20, 0.50, 0.10' Fkt.name Parameter d-parameter Prof. Kießling

32 Qualitätsfunktionen DISTANCE (<preference_alias>) berechnet die Distanz zwischen einem Attributwert v und den perfekten Treffern bezüglich einer numerischen Basispräferenz über der Domäne von A. Beispiel: DISTANCE : dom(a) R 0 + DISTANCE (v, [low, up]) := if v [low, up] then 0 else if v < low then low - v else v - up SELECT id, DISTANCE(p_age) FROM car PREFERRING (age AROUND 40 AS p_age) Prof. Kießling

33 LEVEL (<preference_alias>) berechnet das Level eines Attributwerts v einer diskretisierten Basispräferenz über der Domäne von A. Perfekte Attributwerte haben das Level 0. LEVEL : dom(a) G 0 + Numerische Domäne A mit d-parameter: LEVEL (v, [low, up]) := DISTANCE (v, [low, up]) / d Kategorielle Domäne A: LEVEL (v) = layer m (v) Prof. Kießling

34 Qualitätsfunktionen können benutzt werden in der Projektion wie Attribute z.b. SELECT id, LEVEL(p_age), DISTANCE(p_price) FROM car PREFERRING (age LOWEST 0, 2 AS p_age) AND (price LOWEST AS p_price) in der BUT ONLY-Klausel als boolescher Ausdruck z.b. wie oben BUT ONLY DISTANCE(p_price) < 5000 AND LEVEL(p_age) < 5 Prof. Kießling

35 Hinweis: Bezeichne pref_alias eine Basispräferenz P über einem Attribut A. Mit Hilfe der booleschen Ausdrücke LEVEL(pref_alias) = 0 DISTANCE(pref_alias) = 0.0 kann überprüft werden, ob ein Tupel einen perfekten Attributwert bezüglich P(A) hat. Prof. Kießling

36 Beispiel: Qualitätsfunktionen in Projektion SELECT ident, color, age, LEVEL(pc) AS lvl, DISTANCE(pa) AS dist FROM oldtimer PREFERRING (color IN ('white') ELSE ('yellow') AS pc) AND (age AROUND 40 AS pa); oldtimer ident color age Maggie white 19 Bart green 19 Homer yellow 35 Selma red 40 Smithers red 43 BMO: ident color age lvl dist Selma red Homer yellow Maggie white Prof. Kießling

37 Top-k Schnittstelle Motivation Das BMO-Query-Modell liefert die bestmögliche Ergebnismenge. Vorab ist aber unbekannt, wie groß die Menge ist. Das Top-k-Query-Modell soll genau k beste Ergebnisse liefern. k < BMO zufällige Auswahl der BMO-Ergebnisse k >= BMO BMO-Ergebnisse und weitere nächstbeste Ergebnisse, so dass k Ergebnisse zurückgeliefert werden. Eine Erweiterung des BMO-Modells zu einem Multi-Level-BMO-Modell liefert pro Schicht die nächstbesten Ergebnisse. Prof. Kießling

38 Theorem Jede strikt partielle Ordnung lässt sich auf eine spezielle schwache Ordnung, die sogenannte Multi-Level-BMO-Ordnung abbilden. Diese Ordnung wird durch die iterierte Anwendung der Präferenzselektion, der jeweils ihre iterationsspezifisches BMO i -Menge zugeordnet ist, generiert. Prof. Kießling

39 Multi-Level-BMO Beispiel 2-SV aus Kap. 3: POS/POS(color, {white}; {yellow}, ~) AROUND(age, 40, ~) erzeugt eine strikt partielle Ordnung, die auf eine schwache Ordnung (Multi-Level-BMO- Ordnung) abgebildet werden kann: i dent col or age Maggie white 29 Bart green 19 Homer yellow 35 Selma red 40 Smithers red Skinner yellow BMO 0 BMO 1 BMO 2 (white, 29) (green, 19) (yellow, 35) (yellow, 51) (red, 40) (red, 43) Prof. Kießling

40 Beispiel: SELECT * FROM oldtimer PREFERRING TOP 3 color IN ('red') AND age BETWEEN 40, 45, 5 BMO 0 := σ[p](oldtimer) = BMO 1 := σ[p](oldtimer \ BMO 0 ) = oldtimer ident color age Maggie white 19 Bart green 19 Homer yellow 35 Selma red 40 Smithers red 43 Ergebnis: ident color age Selma red 40 Smithers red 43 Homer yellow 35 Prof. Kießling

41 BUT ONLY Kontrolle der Qualität der Ergebnismenge: BUT ONLY schränkt durch harte Bedingungen das bisherige Ergebnis ein. Dabei können auch die Qualitätsfunktionen für Präferenzen als Qualitätsfilter eingesetzt werden. Die Verwendung von anderen booleschen Ausdrücken als Selektion auf den Tupeln der Ergebnismenge - syntaktisch analog zur WHERE-Klausel - verursacht eine Nachfilterung der BMO-Menge. Bemerkung: Bei Verwendung des gleichen booleschen Ausdrucks kann die Ergebnismenge unterschiedlich sein, je nachdem ob der Ausdruck in der Vorfilterung (WHERE) bzw. in der Nachfilterung (BUT ONLY) verwendet wird. Prof. Kießling

42 Beispiel zum Unterschied zwischen Vorfilterung und Nachfilterung durch gleichen booleschen Ausdruck: car id price age SELECT id FROM car WHERE price < PREFERRING age AROUND 5, 2 {2, 3} SELECT id FROM car PREFERRING age AROUND 5, 2 BUT ONLY price < { } Prof. Kießling

43 Beispiel: Qualitätsfunktionen in BUT ONLY SELECT FROM PREFERRING BUT ONLY t.*, LEVEL (p_start_day) AS delta_start, DISTANCE (p_duration) AS delta_duration trips t (start_day AROUND date ' ', INTERVAL '1' DAY AS p_start_day) AND (duration AROUND 14 AS p_duration) DISTANCE (p_duration) <= 2 AND LEVEL (p_start_day) < 3; Hinweis: Datentypen und Preference SQL Prof. Kießling

44 4.3 Anwendungsbeispiele Designhinweise für personalisierte Suchmaschinen: Harte Selektionen (WHERE) gegen weiche (PREFERRING)? Welche Kontrolle bzgl. der Qualität der Ergebnismenge (BUT ONLY-Einschränkung)? Bedeutung von Multi-Attribut-Präferenzen (AND contra PRIOR TO contra RANK)? Präsentation der Ergebnismenge (Einsatz von LEVEL(p_alias), DISTANCE(p_alias))? Woher stammen Präferenzen? Fest verbunden mit der Suchmaske durch den Bereitsteller des E- Services (Benutzermodell)? Explizit eingegeben von den E-Business-Kunden? Implizit eingetragene Verkäufer-Präferenzen? Implizit eingetragenes anwendungsspezifisches Domänen- / Kontextwissen? Prof. Kießling

45 4.3.1 Gebrauchwagenhandel Prof. Kießling

46 SELECT *, LEVEL(p_manu), LEVEL(p_model), LEVEL(p_price), LEVEL(p_mileage), LEVEL(p_regyear), LEVEL(p_diesel), LEVEL(p_airbag), LEVEL(p_autotransmission), LEVEL(p_aircondition) FROM used_cars PREFERRING ((manufacture = 'BMW' AS p_manu) AND (model = '7' AS p_model)) PRIOR TO ((price BETWEEN 0, 75000, 7500 AS p_price) AND (mileage BETWEEN 0, 30000, 3000 AS p_milage) AND (regyear BETWEEN 1997, 1999, 2 AS p_regyear) AND (diesel = 'yes' AS p_diesel) AND (airbag = 'yes' AS p_airbag) AND (autotransmission = 'yes' AS p_autotransmission) AND (aircondition = 'yes' AS p_aircondition)); Prof. Kießling

47 Prof. Kießling

48 4.4 Gruppierende Präferenzen Präferenzen lassen sich gruppieren mit dem Schlüsselwort GROUPING, wodurch ausgedrückt wird, dass die Präferenz pro Gruppe ausgewertet werden soll. Wie von GROUP BY gewohnt, können auch Aggregatsfunktionen in der Projektion bzw. in der HAVING-Klausel verwendet werden. Bemerkung: Die SQL-Schlüsselwörter GROUP BY HAVING und die Preference-SQL-Schlüsselwörter GROUPING HAVING dürfen nur exklusiv genutzt werden! Prof. Kießling

49 Deklarative Semantik der gruppierenden Präferenz- Selektion: Gegeben seien eine Relation R, eine Menge von Attributen G attrib(r) und eine Äquivalenz-Relation (als Spezialfall: SV- Relation) G auf dom(g). Die gruppierende Präferenzselektion bezüglich G ist definiert als: σ[p GROUPING G ](R) := {t R v R: t[g] G v[g] t[a] < P v[a]} Die Präferenzselektion wird also jeweils pro Gruppe ausgewertet. Prof. Kießling

50 Gruppierender Preference SQL-Abfrageblock: 9. SELECT <projection_list> 1. FROM <table_references> 2. WHERE <hard_conditions> 3'. - 6'. PREFERRING <group_pref_constructor> 7. ORDER BY <attribute_list> 8. LIMIT <number>; Prof. Kießling

51 Syntax der gruppierenden Präferenz-Selektion: 3'. PREFERRING <soft_conditions> 4'. TOP <number> 5'. BUT ONLY <but_only_conditions> 3'. GROUPING <grouping_attributes> 6'. HAVING <having_condition> Der Default der SV-Relation G ist TRIVIAL. Prof. Kießling

52 Verarbeitungsreihenfolge der gruppierenden Präferenz- Selektion: 3'. T 2 := σ [P GROUPING G ] (T 1 ) Präferenzauswertung pro Gruppe 4'. T 3 := σ TOP (T 2 ) Top-k Schnittstelle 5'. T 4 := σ BO (T 3 ) BO ist eine harte Bedingung (Nachfilter). 6'. T 5 := σ HAVING (T 4 ) HAVING ist eine harte Bedingung für Gruppen mittels Gruppierungsattribute oder Aggregationsfunktionen. Prof. Kießling

53 Bemerkungen: GROUPING HAVING verhält sich wie GROUP BY HAVING : Nur Gruppierungsattribute und Aggregatsfunktionen sind in dieser Klausel zulässig und schließen ganze Gruppen aus. Aliase, die in der GROUPING-Klausel definiert werden, dürfen in der Projektion und in Aggregatsfunktionen benutzt werden. TOP erzeugt die gewünschte Mengengröße pro Gruppe (Multimengensemantik). Nicht aggregierte Attribute können nur durch BUT ONLY nachgefiltert werden, wodurch Tupel evtl. gelöscht werden. Qualitätsfunkionen können in BUT ONLY verwendet werden. Prof. Kießling

54 Beispiele zur Auswertung von GROUPING: Gegeben sei: car make color price chevrolet brown chevrolet green 4000 chevrolet green 4000 chevrolet green chevrolet silver 7000 porsche brown porsche green Prof. Kießling

55 Beispiel 1: SELECT make, color, price FROM car PREFERRING price LOWEST GROUPING make ORDER BY make, color; car make color price chevrolet brown chevrolet green 4000 chevrolet green 4000 chevrolet green chevrolet silver 7000 porsche brown porsche green Prof. Kießling

56 Beispiel 2: SELECT make, color, price FROM car PREFERRING price LOWEST GROUPING color ORDER BY color, make; car make color price chevrolet brown porsche brown chevrolet green 4000 chevrolet green 4000 chevrolet green porsche green chevrolet silver 7000 Prof. Kießling

57 Beispiel 3: SELECT color, count(color) as counter FROM car PREFERRING price LOWEST GROUPING color ORDER BY color; ==> color counter brown 1 green 2 silver 1 car make color price chevrolet brown porsche brown chevrolet green 4000 chevrolet green 4000 chevrolet green porsche green chevrolet silver 7000 Prof. Kießling

58 Beispiel 4: SELECT make, color, price FROM car PREFERRING price LOWEST TOP 3 GROUPING make ORDER BY make, color; ==> Alle nicht durchgestrichenen Tupel gehören zur Ergebnismenge. Blaue Tupel gehören zu BMO 1. car make color price chevrolet brown chevrolet green 4000 chevrolet green 4000 chevrolet green chevrolet silver 7000 porsche brown porsche green Prof. Kießling

59 Beispiel 5: SELECT make, color, price FROM car PREFERRING price LOWEST TOP 3 GROUPING make HAVING make <> 'porsche' ORDER BY make, color; ==> Alle nicht durchgestrichenen Tupel Gehören zur Ergebnismenge. car make color price chevrolet brown chevrolet green 4000 chevrolet green 4000 chevrolet green chevrolet silver 7000 porsche brown porsche green Prof. Kießling

60 Beispiel 6: SELECT make, color, price FROM car PREFERRING price LOWEST TOP 3 BUT ONLY price < 2000 GROUPING make HAVING make <> 'porsche' ORDER BY make, color; ==> Leere Ergebnismenge. car make color price chevrolet brown chevrolet green 4000 chevrolet green 4000 chevrolet green chevrolet silver 7000 porsche brown porsche green Prof. Kießling

61 Beispiel 7: SELECT make, color, price FROM car PREFERRING price LOWEST TOP 3 GROUPING make HAVING make <> 'porsche' ORDER BY make, color LIMIT 1; ==> Nur 1 grünes Tupel car make color price chevrolet brown chevrolet green 4000 chevrolet green 4000 chevrolet green chevrolet silver 7000 porsche brown porsche green Prof. Kießling

62 GROUPING mit benutzerdefinierter SV-Semantik: A, B, seien Attribute einer Relation R, wobei a i, b i, deren Domänenwerte seien. In der GROUPING-Klausel steht für benutzerdefinierte SV-Semantik folgende Syntax zur Verfügung: GROUPING A SV ((a 1, a 2, ) [AS 'KlasseA1'],, [OTHERS [AS...]]) [AS A-Alias]], B SV ((b 1, b 2, ) [AS 'KlasseB1'],, [OTHERS [AS...]]) [AS B-Alias]], Bei fehlenden Klassennamen wird ein Default-Name generiert wie '(a 1, a 2 )' bzw. 'OTHERS'. Prof. Kießling

63 Beispiel 3-SV1: SELECT my_color, count(color) as counter FROM car PREFERRING price LOWEST GROUPING color SV (('green'), OTHERS AS 'old_fashioned') AS my_color ORDER BY my_color desc; ==> my_color counter old_fashioned 1 (green) 2 car make color price chevrolet brown porsche brown chevrolet green 4000 chevrolet green 4000 chevrolet green porsche green chevrolet silver 7000 Prof. Kießling

64 Beispiel 3-SV2: SELECT prod_country, count(color) as counter FROM car PREFERRING price LOWEST GROUPING make SV (('vw', 'porsche') AS 'Inland', OTHERS AS 'Ausland') AS prod_country ORDER BY prod_country desc; ==> prod_country counter (Inland) 1 (Ausland) 1 car make color price chevrolet brown porsche brown vw green 4000 chevrolet green 4000 chevrolet green porsche green chevrolet silver 7000 Prof. Kießling

65 Beispiel zu unterschiedlichen Ergebnissen von GROUP BY im Vergleich zu GROUPING: Anzahl der möglichst billigen Autos, aufgeschlüsselt nach Marke SELECT make, count(*) FROM car PREFERRING price LOWEST GROUP BY make; ==> make count(*) vw 1 chevrolet 1 car make color price chevrolet brown porsche brown vw green 4000 ; chevrolet green 4000 chevrolet green porsche green chevrolet silver 7000 Prof. Kießling

66 Beispiel zu unterschiedlichen Ergebnissen von GROUP BY im Vergleich zu GROUPING: Marke und Anzahl der markenspezifisch möglichst billigen Autos SELECT make, count(*) FROM car PREFERRING price LOWEST GROUPING make; ==> make vw 1 chevrolet 1 porsche 1 count(*) car make color price chevrolet brown porsche brown vw green 4000 chevrolet green 4000 chevrolet green porsche green chevrolet silver 7000 Prof. Kießling ;

67 Beispiele zu Preference SQL-Anfragen mit GROUPING (GROUPING mit Aggregation in Projektion oder HAVING) SELECT make, count(*) AS best_model FROM car PREFERRING price LOWEST AND age LOWEST GROUPING make; SELECT make, count(*) AS best_model FROM car PREFERRING price LOWEST AND age LOWEST GROUPING make HAVING count(*) > 5 AND make <> 'chevrolet'; Prof. Kießling

68 Beispiel zu Preference SQL-Anfragen mit GROUPING: (GROUPING mit Vorfilterung und Nachfilterung) SELECT make, count(*) AS best_model FROM car WHERE age < Vorfilterung PREFERRING price LOWEST AND age LOWEST BUT ONLY color <> 'red' -- Nachfilterung GROUPING make HAVING count(*) > 5 and make <> 'chevrolet'; Prof. Kießling

Seminar : Benutzerzentrierte Datenbankanfragen. Referent : Axel Schön

Seminar : Benutzerzentrierte Datenbankanfragen. Referent : Axel Schön Kapitel 1 : Prolog Kapitel 2 : Preference SQL Kapitel 3 : Chomicki Framework Kapitel 4 : Epilog Was sind präferenzgestützte Datenbankanfragen? Beispiel: Familie Vielflieger will in den Urlaub fliegen

Mehr

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2016

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2016 Universität Augsburg, Institut für Informatik Sommersemester 2016 Prof. Dr. W. Kießling 12. Juli 2016 Dr. F. Wenzel, L. Rudenko Suchmaschinen Vorlesung Suchmaschinen Semesterklausur Sommersemester 2016

Mehr

Semi-Skylines und Skyline Snippets

Semi-Skylines und Skyline Snippets Skyline von Manhattan, NY, USA Semi-Skylines und Skyline Snippets Markus Endres Universität Augsburg 10. Februar 2011 Skyline Queries Finde preiswerte Hotels in Strandnähe! Distance to the beach [km] 2.0

Mehr

5. Implementierung von Präferenz- Querysprachen

5. Implementierung von Präferenz- Querysprachen 5. Implementierung von Präferenz- Querysprachen Es werden Implementierungsdetails zu folgenden Themen vorgestellt: 5.1 Integration mit SQL-Datenbanken 5.2 Algebraische Präferenz-Optimierung 5.3 Auswertung

Mehr

5.3 Auswertung der Präferenz-Selektion

5.3 Auswertung der Präferenz-Selektion . Auswertung der Präferenz-Selektion Klassifizierung: Algorithmen ohne vordefinierte Indexstruktur mit vordefinierter Indexstruktur: effizient, jedoch nicht geeignet im Allgemeinen Algorithmen für allgemeine,

Mehr

3. Präferenz-Theorie. 3.1 Präferenzen. 3.2 Formales Präferenzmodell. 3.3 Präferenz-Anfragen mit BMO-Semantik. 3.4 SV-Semantik. 3.

3. Präferenz-Theorie. 3.1 Präferenzen. 3.2 Formales Präferenzmodell. 3.3 Präferenz-Anfragen mit BMO-Semantik. 3.4 SV-Semantik. 3. 3. Präferenz-Theorie 3. Präferenzen 3.2 Formales Präferenzmodell 3.3 Präferenz-Anfragen mit BMO-Semantik 3. SV-Semantik 3.5 Literatur 3- 3. Präferenzen Die Verwendung von Präferenzen: Präferenzen tauchen

Mehr

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2015

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2015 Universität Augsburg, Institut für Informatik Sommersemester 2015 Prof. Dr. W. Kießling 15. Juli 2015 F. Wenzel, L. Rudenko Suchmaschinen Vorlesung Suchmaschinen Semesterklausur Sommersemester 2015 Hinweise:

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

Mehr

Klausur. Universität Augsburg, Institut für Informatik Sommersemester 2007 Prof. Dr. Werner Kießling 21. Juli (Suchmaschinen) Hinweise:

Klausur. Universität Augsburg, Institut für Informatik Sommersemester 2007 Prof. Dr. Werner Kießling 21. Juli (Suchmaschinen) Hinweise: Universität Augsburg, Institut für Informatik Sommersemester 2007 Prof. Dr. Werner Kießling 21. Juli 2007 Dr. A. Huhn Datenbanksysteme II (Suchmaschinen) Klausur Hinweise: Die Bearbeitungszeit beträgt

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

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

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov. 2007 Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Aufgabe 1: SQL-Queries Datenbanksysteme I a) Geben Sie

Mehr

Aggregatfunktionen in der Relationenalgebra?

Aggregatfunktionen in der Relationenalgebra? Aggregatfunktionen in der Relationenalgebra? Dieter Sosna Aggregatfunktionen in der Relationenalgebra p.1/23 Gliederung Motivation Begriffe Definitionen Anwendungen Zusammenfassung Aggregatfunktionen in

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

Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14

Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14 Universität Augsburg, Institut für Informatik Wintersemester 2013/14 Prof. Dr. W. Kießling 10. Oktober 2013 F. Wenzel, D. Köppl Suchmaschinen Vorlesung Suchmaschinen Semesterklausur Wintersemester 2013/14

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

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

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

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

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007 PRG2 Folien Zicari Teil 5 Einführung in Datenbanken SS 2007 Prof. Dott. Ing. Roberto Zicari Johann Wolfgang Goethe-Universität Frankfurt am Main PRG2 V-1 Fachbereich Informatik und Mathematik SQL SQL =

Mehr

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

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

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

dbis Praktikum DBS I SQL Teil 2

dbis Praktikum DBS I SQL Teil 2 SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP

Mehr

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL - Grundlagen Datenbanksysteme Kapitel 5: SQL - Grundlagen Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Prof. Peter Dr. Chamoni Peter

Mehr

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1 Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1 Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Prof. Dr. Dr. Peter Peter

Mehr

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar Abfragen aus einer Tabelle mit Hilfe der Datenbank-Sprache SQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine

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

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

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 Schlüssel Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 und t 2 r gilt: - t 1 (K) t 2 (K) und - keine echte Teilmenge K'

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

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries SQL 2 Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Fortgeschrittene SQL-Konstrukte groupby having union / intersect / except Aggregatfunktionen revisited Subqueries Korrelierte

Mehr

Universität Augsburg, Institut für Informatik WS 2005/2006 Prof. Dr. Werner Kießling 21. Nov M. Endres, A. Huhn, P. Preisinger Lösungsblatt 4

Universität Augsburg, Institut für Informatik WS 2005/2006 Prof. Dr. Werner Kießling 21. Nov M. Endres, A. Huhn, P. Preisinger Lösungsblatt 4 Universität Augsburg, Institut für Informatik WS 2005/2006 Prof. Dr. Werner Kießling 21. Nov. 2005 M. Endres, A. Huhn, P. Preisinger Lösungsblatt 4 Datenbanksysteme I Aufgabe 1: Relationale Vollständigkeit

Mehr

7.3 XML-Anfragesprache XQuery

7.3 XML-Anfragesprache XQuery 7.3 XML-Anfragesprache XQuery XQuery 1.0 hat folgende Eigenschaften: Ist die Abfragesprache für XML-Daten analog zu SQL bei relationalen DBs. XQuery- Anfragen werden unter *.xq gespeichert. XQuery ist

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

Universität Augsburg, Institut für Informatik Sommersemester 2009 Prof. Dr. Werner Kießling 16. Juli Semesterklausur

Universität Augsburg, Institut für Informatik Sommersemester 2009 Prof. Dr. Werner Kießling 16. Juli Semesterklausur Universität Augsburg, Institut für Informatik Sommersemester 2009 Prof. Dr. Werner Kießling 16. Juli 2009 Dr. A. Huhn, M. Endres Suchmaschinen Semesterklausur Hinweise: Die Bearbeitungszeit beträgt 90

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

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2014

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2014 Universität Augsburg, Institut für Informatik Sommersemester 04 Prof. Dr. W. Kießling 5. Juli 04 Dr. M. Endres, F. Wenzel Suchmaschinen Vorlesung Suchmaschinen Semesterklausur Sommersemester 04 Hinweise:

Mehr

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) Kapitel 6 Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) 1 Datenmanipulationssprache (DML) SQL Einfügen: Insert-Statement Ändern: Update-Statement Löschen:

Mehr

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: Inhaltsverzeichnis Bernd Müller, Harald Wehr Java Persistence API 2 Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42693-1

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

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

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

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

GROUP BY, HAVING und Sichten

GROUP BY, HAVING und Sichten GROUP BY, HAVING und Sichten Tutorübungen 09/33 zu Grundlagen: Datenbanken (WS 14/15) Michael Schwarz Technische Universität München 11.11 / 12.11.2014 1/12 GROUP BY HAVING Sichten Eine Tabelle studenten

Mehr

Semesterklausur Datenbanksysteme 1 SS 2015

Semesterklausur Datenbanksysteme 1 SS 2015 Universität Augsburg, Institut für Informatik Sommersemester 2015 Prof. Dr. W. Kießling 10. April 2015 F. Wenzel, L.Rudenko Datenbanksysteme 1 Semesterklausur Datenbanksysteme 1 SS 2015 Hinweise: Die Bearbeitungszeit

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

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung Rückblick SQL bietet viele Möglichkeiten zur Anfrageformulierung mathematische Funktionen (z.b. ABS(A) und SIGN(A)) Aggregatfunktionen (z.b. MIN(A) und SUM(A)) Boole sche Operatoren (AND, OR, EXCEPT) Verknüpfungen

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

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

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung) 1 Relationenalgebra Gegeben seien die folgenden Relationenschemata: [8 P.] Hafen(HNR, Ort, Grundsteinlegung) Matrose(MNR, Nachname, Geburtsdatum, Ausbildungsort Hafen.HNR) Schi(SNR, Name, Bruttoregistertonnen,

Mehr

Übung Datenbanken in der Praxis. Anfragen an Datenbanken mit SQL

Übung Datenbanken in der Praxis. Anfragen an Datenbanken mit SQL Anfragen an Datenbanken mit SQL Folie 28 Syntax einer Anfrage SFW-Anfrage (Select-From-Where-Anfrage) SELECT Projektion π FROM Kart. Produkt WHERE Selektion

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

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB Zugriff auf Tupel mit Tupel-Variablen Kapitel 6.3 SQL als Anfragesprache Kap. 6.3.1 Allgemeine Begriffe Identifiers: Var-Name ~ Tupel-Variable Table-Name ~ Rel., View Field-Name ~ Attribut-Bez. Key-Words: select where key is integer string

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

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

Mehr

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität Datenbanken Unit 4: Das Relationale Modell & Datenintegrität 15. III. 2016 Outline 1 Organisatorisches 2 SQL 3 Relationale Algebra Notation 4 Datenintegrität Organisatorisches Erster Zwischentest: nach

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

Einführung in Datenbanken. Kapitel 8: Nullwerte in SQL

Einführung in Datenbanken. Kapitel 8: Nullwerte in SQL Stefan Brass: Einf. in Datenbanken 8. Nullwerte in SQL 1/32 Einführung in Datenbanken Kapitel 8: Nullwerte in SQL Prof. Dr. Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2018/19

Mehr

Praktische SQL-Befehle 2

Praktische SQL-Befehle 2 Praktische SQL-Befehle 2 Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Functions Views Triggers Voraussetzung: Laptop + MySQL/ MariaDB + Workbench! DB1 WS2018 2 Airport

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

5. Implementierung von PräferenzQuerysprachen

5. Implementierung von PräferenzQuerysprachen . Implementierung von PräferenzQuerysprachen Es werden Implementierungsdetails zu folgenden Themen vorgestellt:. Integration mit SQL-Datenbanken. Algebraische Präferenz-Optimierung. Auswertung der Präferenz-Selektion

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 30.5.2016 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Datentypen character (n),

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 2009 Kapitel : Datenbanksysteme Vorlesung:

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

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

4. Aufgabenblatt - Auswertung -

4. Aufgabenblatt - Auswertung - 4. Aufgabenblatt - Auswertung - Patrick Schäfer Berlin, 22. Januar 2017 patrick.schaefer@hu-berlin.de Agenda Aufgabe 4 Aufgabe 5: Naïve Bayes Daten (Wettbewerbsaufgabe!) - Gegeben sei eine Datenbank aller

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

1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken

1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken XQuery 1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken Inhalt des Moduls: Grundlagen, Herkunft, Einsatz Basis-Syntax, FLWOR Anwendungsfälle/

Mehr

Datenbankabfragen und Datenmanipulation

Datenbankabfragen und Datenmanipulation Datenbankabfragen und Datenmanipulation Datenbankabfragen auf einer Tabelle...1 SELECT Abfrage...1 Projektion...2 Wertausdrücke...3 Numerische Wertausdrücke...3 Zeichenkettenwertausdrücke...3 Datums und

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

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. 07 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing (gdb@in.tum.de

Mehr

Kapitel 5: Der SQL-Standard

Kapitel 5: Der SQL-Standard Kapitel 5: Der SQL-Standard 5. Der SQL-Standard 5. Ein Anfrageausdruck in SQL besteht aus einer SELECT-Klausel, gefolgt von einer FROM-Klausel, gefolgt von einer WHERE-Klausel. Grundform eines SFW-Ausdruck

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

Oracle Analytic SQL. o Anderer Name: Window functions o Ab 8i o Einfache Ansätze für komplexe Problemstellungen. o Anwendung:

Oracle Analytic SQL. o Anderer Name: Window functions o Ab 8i o Einfache Ansätze für komplexe Problemstellungen. o Anwendung: 1 Analytic SQL Oracle Analytic SQL Anderer Name: Windw functins Ab 8i Einfache Ansätze für kmplexe Prblemstellungen Mit Standard-SQL meist nicht der nicht elegant zu lösen Effizientere Abarbeitung als

Mehr

Der probabilistische Ansatz

Der probabilistische Ansatz Seminar Imperfektion und Datenbanken Wintersemester 2003/2004 Der probabilistische Ansatz Ying Zou Universität Karlsruhe Fakultät für Informatik Institut für Programmstrukturen und Datenorganisation Lehrstuhl

Mehr

Einführung in die Spezialisierungsrichtungen

Einführung in die Spezialisierungsrichtungen Einführung in die Spezialisierungsrichtungen SQL Dr. Matthias Baumgart 23. November 2012 Einführung Logische Datenbankorganisation Die logische Datenbankorganisation erfolgt in drei Schritten: 1 Aufstellen

Mehr

Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit

Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit 23. IV. 2018 Outline 1 Organisatorisches 2 Relationale Algebra Notation 3 Datenintegrität 4 Funktionale Abhängigkeit 5 SQL Outline 1 Organisatorisches

Mehr

Aufgabe 12.1: JDBC - Datenbankzugriff in Java

Aufgabe 12.1: JDBC - Datenbankzugriff in Java Aufgabe 12.1: JDBC - Datenbankzugriff in Java Beispielquery Schema: Wie ist der Name des Landes, für welches der Wert der nicht ausgelieferter Bestellungen maximal ist? 17.Mai 2014 Martin Kaufmann ETH

Mehr

Diskussion: Personal (1)

Diskussion: Personal (1) Diskussion: Personal (1) ER-Diagramm: Abteilung ist beschäftigt in [0, n] [0, 1] Person Umsetzung ins Relationenmodell? Diskussion: Personal (2) Zusätzliche Regel: In jeder Abteilung (Person) muss mindestens

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

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

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

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

7. XML-Datenbanksysteme und SQL/XML

7. XML-Datenbanksysteme und SQL/XML 7. XML-Datenbanksysteme und SQL/XML Native XML-DBS vs. XML-Erweiterungen von ORDBS Speicherung von XML-Dokumenten Speicherung von XML-Dokumenten als Ganzes Generische Dekomposition von XML-Dokumenten Schemabasierte

Mehr

4.14 Integrität und Trigger

4.14 Integrität und Trigger 4.14 Integrität und Trigger Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen können

Mehr

Teil VIII. Weitere Datenbanksprachen

Teil VIII. Weitere Datenbanksprachen Teil VIII Weitere Datenbanksprachen Weitere Datenbanksprachen 1 Programmiersprachenanbindung 2 QBE 3 Änderungen in QBE 4 Anfragen in Access Sattler / Saake Datenbanksysteme Wintersemester 2010/11 8 1 Programmiersprachenanbindung

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

Data Cubes PG Wissensmangement Seminarphase

Data Cubes PG Wissensmangement Seminarphase PG 402 - Wissensmangement Seminarphase 23.10.2001-25.10.2001 Hanna Köpcke Lehrstuhl für Künstliche Intelligenz Universität Dortmund Übersicht 1. Einführung 2. Aggregation in SQL, GROUP BY 3. Probleme mit

Mehr

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort. 1 Relationenalgebra Gegeben seien die folgenden Relationenschemata: [8 P.] Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.ONR) Jugendherberge(JNR, Name, Ort Ort.ONR, Manager Person.PNR) Ort(ONR,

Mehr

Domänen: Grundtypen, alle vordefiniert, z.b. INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc.

Domänen: Grundtypen, alle vordefiniert, z.b. INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc. Kapitel 6 Relationale DB-Sprache SQL SEQUEL: Structured English Query Language, 70er Jahre SQL: System R, SQL/DS, TransBase, Oracle... ANSI Standards 1, 2, 3 6.1 Daten-Definitionssprache DDL Domänen: Grundtypen,

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

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

Kommunikation und Datenhaltung. Übungsblatt D1. (Relationale Algebra & SQL)

Kommunikation und Datenhaltung. Übungsblatt D1. (Relationale Algebra & SQL) Kommunikation und Datenhaltung Übungsblatt D1 (Relationale Algebra & SQL) Ausgabe: 18.05.2009 Besprechung: 25.05.2009 Alle Aufgaben auf diesem Übungsblatt beziehen sich auf ein leicht abgewandeltes Datenbankschema

Mehr

Wirtschaftsinformatik Jgst. 9/10. Fortbildung am in Ansbach

Wirtschaftsinformatik Jgst. 9/10. Fortbildung am in Ansbach Wirtschaftsinformatik Jgst. 9/10 Fortbildung am 19.03.2010 in Ansbach Manuel Friedrich info@manuel friedrich.de www.manuel friedrich.de Arbeitsblatt Wirtschaftsinformatik 9 Arbeiten mit Datenbanken Kunde

Mehr

Einführung in Datenbanken. Kapitel 11: Relationale Algebra in SQL

Einführung in Datenbanken. Kapitel 11: Relationale Algebra in SQL Stefan Brass: Einf. in Datenbanken 11. Relationale Algebra in SQL 1/48 Einführung in Datenbanken Kapitel 11: Relationale Algebra in SQL Prof. Dr. Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Nested Tables Types als Ergänzung zu Pivot XML

Nested Tables Types als Ergänzung zu Pivot XML Nested Tables Types als Ergänzung zu Pivot XML Thomas Strub Logica Deutschland GmbH & Co. KG Frankfurt Schlüsselworte Nested Tables, pivot, pivot xml, unpivot, collect, PL/SQL Einleitung Die Verknüpfung

Mehr

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data

Mehr