Übung Datenbanksysteme I SQL

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

[01] - ERM Modellierung I Basiselemente von E-R-Diagrammen kennen
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Übung Datenbanksysteme SQL-Anfragen (2)
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Hierarchische DBMS
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
OQL-Anfragen (1) Alle Punkte, die auf der Null-Ebene liegen: selectstruct (ex : x, ey : y) fromallePunkte wherez = 0 Rückgabetyp: bag > Alle Kanten, die.
SQL - Structured Query Language AIFB SS (1/3) Bildung von Gruppen (Group)(1/3) Zusammenfassung von Zeilen mit demselben Wert in einer vorgegebenen.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
SQL-Datentypen INTEGER
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Datenbankentwicklung IV-LK
Datenbankentwicklung IV-LK
PCs und Zubehör.
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Erläuterung der wichtigsten Befehle
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Mengenoperationen (1/3)
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Aggregatsfunktion mit Group by und having SQL = Structured Query Language.
Am Beispiel der Tabelle Crew des Raumschiffes Enterprise
Relationale Datenbanken IV
Verdichten von Daten mit Gruppenfunktionen
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Naturwissenschaftlich-technologische Ausbildungsrichtung in der 8., 9. und 10. Jahrgangsstufe.
Structured Query Language
Vorlesung #5 SQL (Teil 2).
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Gruppierung, Aggregierung und Sortierung (1) Finde für jeden Flugzeugtyp die Zahl aller von Frankfurt abgehenden Flüge und sortiere Ergebnis nach Flugzeugtyp:
Datenbanken abfragen mit SQL
Exotisches SQL Author: Sven Weller.
Objektorientierte Datenbanken zBeim vorigen Mal: yDer Object Data Standard der ODMG-Group xKurz: ODMG-Standard yDie POET-Implementierung FastObjects (t7)
Übung Datenbanksysteme I Transaktionen, Selektivität, XML
Azure Backup, Azure Backup Server und Azure Site Recovery
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Übung Datenbanksysteme I Relationale Algebra
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Übung Datenbanksysteme I Besprechung
Aggregatfunktionen bei mehreren Tabellen
Sortierte Datenbankabfragen
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Textmuster.
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Nutzung und Modellierung von Datenbanken
(Structured Query Language)
 Präsentation transkript:

Übung Datenbanksysteme I SQL Thorsten Papenbrock G-3.1.09, Campus III Hasso Plattner Institut

Einleitung Virtuelle Maschine Zugriff: Kopieren vom Share Ausführen mit VMware Zugangsdaten: Nutzername: db2inst1 Passwort: ws2011 Arbeit mit SQL: Kommandozeile IBM Data Studio DBSI - Übung SQL Beachte: VM ist schreibgeschützt Thorsten Papenbrock

Übersicht SQL DBSI - Übung SQL Thorsten Papenbrock

Übersicht SQL SELECT <Attributliste> FROM <Relationenliste> WHERE <Bedingungen> GROUP BY <Gruppierungsattribute> HAVING <Bedingungen auf Gruppierungsattribute> ORDER BY <Attributliste>; Weitere Schlüsselwörter: DISTINCT, AS, JOIN AND, OR MIN, MAX, AVG, SUM, COUNT NOT, IN, LIKE, ANY, ALL, EXISTS UNION, EXCEPT, INTERSECT … DBSI - Übung SQL Thorsten Papenbrock

Übersicht: Relationale Übungsschemata Modellnummer Prozessorgeschwindigkeit [MHz] Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Festplattengröße [GB] Geschwindigkeit und Typ des Laufwerks Bildschirm- auflösung DBSI - Übung Typ (laser, ink-jet, bubble) Preis [Euro] SQL Thorsten Papenbrock

model(speed≥1000(PC)) Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Welche PC-Modelle haben eine Geschwindigkeit von minde- stens 1000 MHz?“ DBSI - Übung SQL model(speed≥1000(PC)) Thorsten Papenbrock

model(speed≥1000(PC)) SELECT model FROM PC WHERE speed >= 1000; Lösung: Deutsch  SQL SELECT model FROM PC WHERE speed >= 1000; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Welche PC-Modelle haben eine Geschwindigkeit von minde- stens 1000 MHz?“ DBSI - Übung SQL model(speed≥1000(PC)) Thorsten Papenbrock

maker(hd≥10(Product ⋈ Laptop)) Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Welche Hersteller bauen Laptops mit einer Harddisk von mindestens 10 GB Größe?“ DBSI - Übung SQL maker(hd≥10(Product ⋈ Laptop)) Thorsten Papenbrock

maker(hd≥10(Product ⋈ Laptop)) Lösung: Deutsch  SQL a) SELECT maker FROM Product, Laptop WHERE Product.model = Laptop.model AND hd >= 10; b) SELECT maker FROM Product NATURAL JOIN Laptop WHERE hd >= 10; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Welche Hersteller bauen Laptops mit einer Harddisk von mindestens 10 GB Größe?“ NATURAL JOIN geht allerdings nicht in DB2! DBSI - Übung SQL maker(hd≥10(Product ⋈ Laptop)) Thorsten Papenbrock

model(color=true ∧ type=‘laser‘ (Printer)) Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde die Modellnummern aller Farblaserdrucker.“ DBSI - Übung SQL model(color=true ∧ type=‘laser‘ (Printer)) Thorsten Papenbrock

model(color=true ∧ type=‘laser‘ (Printer)) Lösung: Deutsch  SQL SELECT model FROM Printer WHERE color=true AND type='laser'; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde die Modellnummern aller Farblaserdrucker.“ DBSI - Übung SQL model(color=true ∧ type=‘laser‘ (Printer)) Thorsten Papenbrock

model,price(maker=‘Apple‘(Product ⋈ ( Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde die Modellnummer und den Preis aller Produkte (jeden Typs), die von Hersteller ‘Apple‘ gebaut werden.“ DBSI - Übung SQL model,price(maker=‘Apple‘(Product ⋈ ( model,price(PC)  model,price(Laptop)  model,price(Printer)))) Thorsten Papenbrock

model,price(maker=‘Apple‘(Product ⋈ ( Lösung: Deutsch  SQL (SELECT Product.model, price FROM Product JOIN PC ON Product.model = PC.model WHERE maker = 'Apple') UNION FROM Product JOIN Laptop ON Product.model = Laptop.model FROM Product JOIN Printer ON Product.model = Printer.model WHERE maker = 'Apple'); Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde die Modellnummer und den Preis aller Produkte (jeden Typs), die von Hersteller ‘Apple‘ gebaut werden.“ DBSI - Übung SQL model,price(maker=‘Apple‘(Product ⋈ ( model,price(PC)  model,price(Laptop)  model,price(Printer)))) Thorsten Papenbrock

model,price(maker=‘Apple‘(Product ⋈ ( Lösung: Deutsch  SQL WITH Price AS ( (SELECT model, price FROM PC) UNION (SELECT model, price FROM Laptop) (SELECT model, price FROM Printer) ); Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde die Modellnummer und den Preis aller Produkte (jeden Typs), die von Hersteller ‘Apple‘ gebaut werden.“ SELECT Price.* FROM Product NATURAL JOIN Price WHERE maker = ‘Apple‘; DBSI - Übung SQL model,price(maker=‘Apple‘(Product ⋈ ( model,price(PC)  model,price(Laptop)  model,price(Printer)))) Thorsten Papenbrock

δ(maker(Product ⋈ Laptop)) – δ(maker(Product ⋈ PC)) Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Hersteller, die Laptops, aber keine PCs herstellen.“ DBSI - Übung SQL δ(maker(Product ⋈ Laptop)) – δ(maker(Product ⋈ PC)) Thorsten Papenbrock

δ(maker(Product ⋈ Laptop)) – δ(maker(Product ⋈ PC)) Lösung: Deutsch  SQL (SELECT DISTINCT maker FROM Product, Laptop WHERE Product.model = Laptop.model) EXCEPT FROM Product, PC WHERE Product.model = PC.model); Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Hersteller, die Laptops, aber keine PCs herstellen.“ DISTINCTs sind nicht nötig wegen Mengensemantik von EXCEPT! DBSI - Übung SQL δ(maker(Product ⋈ Laptop)) – δ(maker(Product ⋈ PC)) Thorsten Papenbrock

hd(Anzahl>2(hd,count(model) → Anzahl(PC))) Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Harddisk-Größen, die in mehr als zwei PCs vorkommen.“ DBSI - Übung SQL hd(Anzahl>2(hd,count(model) → Anzahl(PC))) Thorsten Papenbrock

hd(Anzahl>2(hd,count(model) → Anzahl(PC))) Lösung: Deutsch  SQL SELECT hd FROM PC GROUP BY hd HAVING COUNT(model) > 2; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Harddisk-Größen, die in mehr als zwei PCs vorkommen.“ DBSI - Übung SQL hd(Anzahl>2(hd,count(model) → Anzahl(PC))) Thorsten Papenbrock

Product(maker, model, type) PC(model, speed, ram, hd, rd, price) Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Paare von PCs mit gleicher Festplatten- und Hauptspeichergröße. Vermeide dabei doppelte Paare.“ DBSI - Übung SQL (PC1(PC)) ⋈PC1.HD=PC2.HD ∧ PC1.RAM=PC2.RAM ∧ PC1.model<PC2.model (PC2(PC)) Thorsten Papenbrock

AND PC1.model < PC2.model; Lösung: Deutsch  SQL SELECT * FROM PC PC1, PC PC2 WHERE PC1.hd = PC2.hd AND PC1.ram = PC2.ram AND PC1.model < PC2.model; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Paare von PCs mit gleicher Festplatten- und Hauptspeichergröße. Vermeide dabei doppelte Paare.“ DBSI - Übung SQL (PC1(PC)) ⋈PC1.HD=PC2.HD ∧ PC1.RAM=PC2.RAM ∧ PC1.model<PC2.model (PC2(PC)) Thorsten Papenbrock

Aufgabe: Deutsch  SQL Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Hersteller, die mindestens einen Laptop und einen PC mit derselben Prozessorgeschwindigkeit anbieten.“ DBSI - Übung SQL D.a(A.b=B.b ∧ A.a=C.g ∧ B.a=D.g ∧ C.a=D.a ( A(a,b,c,d,e,f)(Laptop)×B(a,b,c,d,e,f)(PC)×C(a,g,h)(Product)×D(a,g,h)(Product))) Thorsten Papenbrock

Lösung: Deutsch  SQL SELECT D.a FROM (SELECT model AS a, speed AS b, ram AS c, hd AS d, screen AS e, price AS f FROM Laptop) A, (SELECT model AS a, speed AS b, ram AS c, hd AS d, rd AS e, price AS f FROM PC) B, (SELECT maker AS a, model AS g, type AS h FROM Product) C, (SELECT maker AS a, model AS g, type AS h FROM Product) D WHERE A.b = B.b AND A.a = C.g AND B.a = D.g AND C.a = D.a; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Hersteller, die mindestens einen Laptop und einen PC mit derselben Prozessorgeschwindigkeit anbieten.“ DBSI - Übung SQL D.a(A.b=B.b ∧ A.a=C.g ∧ B.a=D.g ∧ C.a=D.a ( A(a,b,c,d,e,f)(Laptop)×B(a,b,c,d,e,f)(PC)×C(a,g,h)(Product)×D(a,g,h)(Product))) Thorsten Papenbrock

FROM Laptop A, PC B, Product C, Product D WHERE A.speed = B.speed Lösung: Deutsch  SQL SELECT D.maker FROM Laptop A, PC B, Product C, Product D WHERE A.speed = B.speed AND A.model = C.model AND B.model = D.model AND C.maker = D.maker; Product(maker, model, type) Beispieltupel: (‘Lenovo‘, 1005, ‘pc‘) PC(model, speed, ram, hd, rd, price) Beispieltupel: (1005, 1000, 128, 20, ‘12xDVD‘, 1499) Laptop(model, speed, ram, hd, screen, price) Beispieltupel: (2008, 650, 64, 10, 12.1, 1249) Printer(model, color, type, price) Beispieltupel: (3005, true, ‘bubble‘, 200) Anfrage: „Finde alle Hersteller, die mindestens einen Laptop und einen PC mit derselben Prozessorgeschwindigkeit anbieten.“ DBSI - Übung SQL D.a(A.b=B.b ∧ A.a=C.g ∧ B.a=D.g ∧ C.a=D.a ( A(a,b,c,d,e,f)(Laptop)×B(a,b,c,d,e,f)(PC)×C(a,g,h)(Product)×D(a,g,h)(Product))) Thorsten Papenbrock

Übung Datenbanksysteme I SQL Thorsten Papenbrock G-3.1.09, Campus III Hasso Plattner Institut