Relationale Anfragesprachen

Größe: px
Ab Seite anzeigen:

Download "Relationale Anfragesprachen"

Transkript

1 Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE UniSchema MatrNr Studenten Semester N N voraus setzen Nachfolger Vorgänger hör en M N M M N SWS Titel Note prüfen lesen Kapitel PersNr Assistenten N arbeit enfür Rang Raum 1 Fachgebiet PersNr SQL standardisierte Datendefinitions (DDL) Datenmanipulations (DML) Anfrage (Query)Sprache derzeit aktueller Standard ist SQL 99 objektrelationale Erweiterung Die Syntax ist in Kap. des DatenbankSkripts von Prof. Wegner spezifiziert siehe Vorlesungshomepage PersNr Rang Raum MatrNr Xenokrates Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss

2 (Einfache) Datendefinition in SQL Datentypen character (n), char (n) character varying (n), varchar (n) numeric (p,s), integer blob oder raw für sehr große binäre Daten clob für sehr große StringAttribute date für Datumsangaben Anlegen von Tabelle create table (PersNr integer not null, varchar (0) not null Rang character () ); MatrNr Studenten Theophrastos Feuerbach Archimedes Semester NullWert 5 Veränderung am Datenbestand Einfügen von Tupeln insert into hören select MatrNr, from Studenten, where Titel= `Logik ; Veränderungen am Datenbestand Löschen von Tupeln delete Studenten where Semester > 1; insert into Studenten (MatrNr, ) values (811, `Archimedes ); Verändern von Tupeln update Studenten set Semester= Semester + 1; 6 8

3 Einfache SQLAnfrage Duplikateliminierung select PersNr, from where Rang= ; PersNr select distinct Rang from Rang C 16 1 Curie In der relationalen Algebra werden Duplikate automatisch eliminiert, aufgrund der Mengensemantik In SQL wird dies aus Effizienzgründen standardmäßig nicht gemacht. Auf Wunsch kann die Eliminierung mit distinct erzwungen werden Einfache SQLAnfragen Sortierung select PersNr,, Rang from order by Rang desc, asc; PersNr 16 Curie Augustinus 1 Kopernikus 1 Popper Rang C C C 10 PersNr Rang Raum MatrNr Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss

4 Anfragen über mehrere Relationen PersN 15 r 15 Rang Raum 6 6 Titel SWS gelesen Von 1 15 Welcher Professor liest ""? select, Titel from, where PersNr = gelesenvon and Titel = ` ; Die Kritiken ,Titel ( PersNr=gelesenVon Titel=` (Professor )) PersNr Anfragen über mehrere Relationen Rang Raum 6 Titel SWS 1 gelesen Von 1 15 PersN r 15 Rang Auswahl Raum Projektion Titel Titel SWS Kanonische Übersetzung in die relationale Algebra Allgemein hat eine (ungeschachtelte) SQLAnfrage die Form: gelesen Von 15 Übersetzung in die relationale Algebra: A1,..., An ( P (R 1 x... x R k )) Die Kritiken Verknüpfung 15 1 select A 1,..., A n from R 1,..., R k where P; A1,..., An P x x R k x R 1 R 1 R 16

5 Anfragen über mehrere Relationen Welche Studenten hören welche? select, Titel from Studenten, hören, where Studenten.MatrNr = hören.matrnr and hören. =.; Alternativ: select s., v.titel from Studenten s, hören h, v where s. MatrNr = h. MatrNr and h. = v. 1 PersNr Rang Raum MatrNr Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss Query Plan Execution select, Titel 1 from Studenten, hören,,5,6 where Studenten.MatrNr = hören.matrnr and hören. =.; HSJOIN () RETURN (1) HSJOIN () TBSCAN (6) Mengenoperationen und geschachtelte Anfragen Mengenoperationen union, intersect, minus ( select from Assistenten ) union ( select from ); TBSCAN () TBSCAN (5) Table: STUDENTEN Table: HÖREN Table: VORLESUNGEN 18 0

6 Existenzquantor exists select p. from p where not exists ( select * from v where v.gelesenvon = p.persnr ); Mengenvergleich Unkorrelierte Unteranfrage: meist effizienter, wird nur einmal ausgewertet select from where PersNr not in ( select gelesenvon from ); 1 Existenzquantor exists Der Vergleich mit "all" Kein vollwertiger Allquantor! select p. from p where not exists ( select * from v where v.gelesenvon = p.persnr ); Korrelation select from Studenten where Semester >= all ( select Semester from Studenten);

7 Aggregatfunktion und Gruppierung Aggregatfunktionen avg, max, min, count, sum select avg (Semester) from Studenten; select gelesenvon, sum (SWS) from group by gelesenvon; Besonderheiten bei Aggregatoperationen SQL erzeugt pro Gruppe ein Ergebnistupel Deshalb müssen alle in der selectklausel aufgeführten Attribute außer den aggregierten auch in der group byklausel aufgeführt werden Nur so kann SQL sicherstellen, dass sich das Attribut nicht innerhalb der Gruppe ändert select gelesenvon,, sum (SWS) from, where gelesenvon = PersNr and Rang = group by gelesenvon, having avg (SWS) >= ; PersNr Rang Raum MatrNr Xenokrates Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss Ausführen einer Anfrage mit group by Vorl Nr Titel... Die Kritiken Vorlesung x SWS... select gelesenvon,, sum (SWS) from, where gelesenvon = PersNr and Rang = group by gelesenvon, having avg (SWS) >= ; gelesen Von PersNr wherebedingung... Rang Raum

8 Titel Erkenntnistheori e Logik Wissenschaftsthe orie Bioethik Die Kritiken SWS select gelesenvon,, sum (SWS) from, where gelesenvon = PersNr and Rang = group by gelesenvon, having avg (SWS) >= ; gelesen Von PersNr Rang Raum gelesenvon 15 1 select gelesenvon,, sum (SWS) from, where gelesenvon = PersNr and Rang = group by gelesenvon, having avg (SWS) >= ; sum (SWS) 10 8 Gruppierung 9 1 Titel Logik 50 Erkenntnistheorie 505 Wissenschaftstheo. 516 Bioethik 60 Die Kritiken VorlN r Titel Logik SWS SWS gelesenvon PersNr havingbedingung gelesenvon PersNr Rang Rang Raum Raum Geschachtelte Anfrage (Forts.) Unteranfrage in der whereklausel Welche Prüfungen sind besser als durchschnittlich verlaufen? select * from prüfen where Note < ( select avg (Note) from prüfen ); 60 Die Kritiken Aggregation (sum) und Projektion 0

9 Geschachtelte Anfrage (Forts.) Unteranfrage in der selectklausel Für jedes Ergebnistupel wird die Unteranfrage ausgeführt Man beachte, dass die Unteranfrage korreliert ist (greift auf Attribute der umschließenden Anfrage zu) select PersNr,, ( select sum (SWS) as Lehrbelastung from where gelesenvon=persnr ) from ; Unkorrelierte versus korrelierte Unteranfragen korrelierte Formulierung select s.* from Studenten s where exists (select p.* from where p.gebdatum > s.gebdatum); PersNr Rang Raum MatrNr Xenokrates Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss Äquivalente unkorrelierte Formulierung select s.* from Studenten s where s.gebdatum < (select max (p.gebdatum) from p); Vorteil: Unteranfrageergebnis kann materialisiert werden Unteranfrage braucht nur einmal ausgewertet zu werden 5 6

10 Entschachtelung korrelierter Unteranfragen Forts. select a.* from Assistenten a where exists ( select p.* from p where a.boss = p.persnr and p.gebdatum>a.gebdatum); Entschachtelung durch Join select a.* from Assistenten a, p where a.boss=p.persnr and p.gebdatum > a.gebdatum; DecisionSupportAnfrage mit geschachtelten Unteranfragen select h., h.anzprovorl, g.gesamtanz, from h.anzprovorl/g.gesamtanz as Marktanteil ( select, count(*) as AnzProVorl from hören group by ) h, ( select count (*) as GesamtAnz from Studenten) g; 9 Verwertung der Ergebnismenge einer Unteranfrage Das Ergebnis der Anfrage select tmp.matrnr, tmp., tmp.vorlanzahl from (select s.matrnr, s., count(*) as VorlAnzahl from Studenten s, hören h AnzProVorl GesamtAnz Marktanteil where s.matrnr=h.matrnr group by s.matrnr, s.) tmp 8.5 where tmp.vorlanzahl > ; MatrNr Carnap Theophrastos VorlAnzahl 8 0

11 Weitere Anfragen mit Unteranfragen Quantifizierte Anfragen in SQL ( select from Assistenten ) union ( select from ); select from where PersNr not in ( select gelesenvon Existenzquantor: exists select from where not exists ( select * Von = PersNr ); from where gelesen from ); select from Studenten where Semester > = all ( select Semester from Studenten ); 1 PersNr Rang Raum MatrNr Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss

12 Allquantifizierung SQL9 hat keinen Allquantor Allquantifizierung muß also durch eine äquivalente Anfrage mit Existenzquantifizierung ausgedrückt werden Kalkülformulierung der Anfrage: Wer hat alle vierstündigen gehört? {s s Studenten v. (v.sws= h hören. (h.=v. h.matrnr=s.matrnr)) Elimination von und Dazu sind folgende Äquivalenzen anzuwenden t R (P(t)) = ( t R( P(t))) R T = R T Umformung des KalkülAusdrucks... Wir erhalten {s s Studenten ( v ( (v.sws=) h hören (h.=v. h.matrnr=s.matrnr)) Anwendung von DeMorgan ergibt schließlich: {s s Studenten ( v (v.sws= ( h hören (h.=v. h.matrnr=s.matrnr)))) 5 SQLUmsetzung folgt direkt: select s.* from Studenten s where not exists (select * from v where v.sws = and not exists (select * from hören h where h. = v. and h.matrnr=s.matrnr ) ); Allquantifizierung durch countaggregation Allquantifizierung kann immer auch durch eine count Aggregation ausgedrückt werden Wir betrachten dazu eine etwas einfachere Anfrage, in der wir die (MatrNr der) Studenten ermitteln wollen, die alle hören: select h.matrnr from hören h group by h.matrnr having count (*) = (select count (*) from ); 6 8

13 PersNr Rang Raum MatrNr Xenokrates Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen MatrNr Studenten Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss Nullwerte unbekannter Wert wird vielleicht später nachgereicht Nullwerte können auch im Zuge der Anfrageauswertung entstehen (Bsp. äußere Joins) manchmal sehr überraschende Anfrageergebnisse, wenn Nullwerte vorkommen select count (*) from Studenten where Semester < 1 or Semester > =1 Wenn es Studenten gibt, deren SemesterAttribut den Wert null hat, werden diese nicht mitgezählt Der Grund liegt in folgenden Regeln für den Umgang mit null Werten begründet: 51 Auswertung bei NullWerten Herausforderung Wie formuliert man die komplexere Anfrage Wer hat alle vierstündigen gehört?? Grundidee besteht darin, vorher durch einen Join die Studenten/VorlesungsPaare einzuschränken und danach das Zählen durchzuführen. ( Übung) 1. In arithmetischen Ausdrücken werden Nullwerte propagiert, d.h. sobald ein Operand null ist, wird auch das Ergebnis null. Dementsprechend wird z.b. null + 1 zu null ausgewertetaber auch null * 0 wird zu null ausgewertet.. SQL hat eine dreiwertige Logik, die nicht nur true und false kennt, sondern auch einen dritten Wert unknown. Diesen Wert liefern Vergleichsoperationen zurück, wenn mindestens eines ihrer Argumente null ist. Beispielsweise wertet SQL das Prädikat (PersNr=...) immer zu unknown aus, wenn die PersNr des betreffenden Tupels den Wert null hat.. Logische Ausdrücke werden nach den folgenden Tabellen berechnet: 50 5

14 Diese Berechnungsvorschriften sind recht intuitiv. Unknown or true wird z.b. zu true die Disjunktion ist mit dem true Wert des rechten Arguments immer erfüllt, unabhängig von der Belegung des linken Arguments. Analog ist unknown and false automatisch false keine Belegung des linken Arguments könnte die Konjunktion mehr erfüllen.. In einer wherebedingung werden nur Tupel weitergereicht, für die die Bedingung true ist. Insbesondere werden Tupel, für die die Bedingung zu unknown auswertet, nicht ins Ergebnis aufgenommen. 5. Bei einer Gruppierung wird null als ein eigenständiger Wert aufgefaßt und in eine eigene Gruppe eingeordnet. Spezielle Sprachkonstrukte ("syntaktischer Zucker") select * from Studenten where Semester > = 1 and Semester < = ; select * from Studenten where Semester between 1 and ; select * from Studenten where Semester in (1,,,); 5 55 not true unknown false false unknown true select * from Studenten where like `T%eophrastos ; and true true true unknown unknown false false select distinct s. unknown false unknown false unknown false false false from v, hören h, Studenten s where s.matrnr = h.matrnr and h. = v. and or true unknown false v.titel like `%thik% ; true true true true unknown true unknown unknown false true unknown false 5 56

15 Das casekonstrukt select MatrNr, ( case when Note < 1.5 then sehr gut from prüfen; when Note <.5 then gut when Note <.5 then befriedigend when Note <.0 then ausreichend else nicht bestanden end) Die erste qualifizierende whenklausel wird ausgeführt Joins in SQL9 cross join: Kreuzprodukt natural join: natürlicher Join Join oder inner join: ThetaJoin left, right oder full outer join: äußerer Join union join: VereinigungsJoin (wird hier nicht vorgestellt) select * from R 1, R where = R 1.A = R.B; select * from R 1 join R on R 1.A = R.B; 5 59 Vergleiche mit like Platzhalter "%" ; "_" "%" steht für beliebig viele (auch gar kein) Zeichen "_" steht für genau ein Zeichen select * from Studenten where like T%eophrastos ; select distinct from v, hören h, Studenten s where s.matrnr = h.matrnr and h. = v. and Äußere Joins select p.persnr, p., f.persnr, f.note, f.matrnr, s.matrnr, s. from p left outer join (prüfen f left outer join Studenten s on f.matrnr= s.matrnr) on p.persnr=f.persnr; PersNr p. Curie f.persnr f.note 1 f.matrnr s.matrnr s. Carnap Jonas Schopenhauer v.titel = %thik% ; 58 60

16 Äußere Joins select p.persnr, p., f.persnr, f.note, f.matrnr, s.matrnr, s. from p right outer join (prüfen f right outer join Studenten s on f.matrnr= s.matrnr) on p.persnr=f.persnr; PersNr p. f.persnr f.note f.matrnr s.matrnr s Carnap Jonas p.persnr p Curie f.persnr f.note 1 f.matrnr s.matrnr s. Carnap Jonas Schopenhauer Schopenhauer Fichte 610 Fichte 61 6 Äußere Joins select p.persnr, p., f.persnr, f.note, f.matrnr, s.matrnr, s. from p full outer join (prüfen f full outer join Studenten s on f.matrnr= s.matrnr) on p.persnr=f.persnr; Rekursion select Vorgänger from voraussetzen, where Nachfolger= and Titel= `Der Wiener Kreis 6 6

17 PersNr Rang Raum MatrNr Xenokrates Kopernikus Popper Augustinus Curie C C C voraussetzen Vorgänger Nachfolger MatrNr PersNr Note prüfen Der Wiener Kreis MatrNr Studenten Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören Semester PerslNr Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Titel SWS Erkenntnistheorie Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und Natur gelesen Von Boss Rekursion select v1.vorgänger from voraussetzen v1, voraussetzen v, v where v1.nachfolger= v.vorgänger and v.nachfolger= v. and v.titel=`der Wiener Kreis Vorgänger des Wiener Kreises der Tiefe n 6 Wissenschaftstheorie Bioethik select v1.vorgänger from voraussetzen v1 voraussetzen vn_minus_1 voraussetzen vn, Erkenntnistheorie v where v1.nachfolger= v.vorgänger and vn_minus_1.nachfolger= vn.vorgänger and 66 vn.nachfolger = v. and v.titel= `Der Wiener Kreis 68

18 Transitive Hülle trans A,B (R)= {(a,b) k IN ( t 1,..., t k R ( t 1.A= t.b t k1.a= t k.b t 1.A= a t k.b= b)) Die connect byklausel select Titel from where in (select Vorgänger from voraussetzen connect by Nachfolger= prior Vorgänger start with Nachfolger= (select from where Titel= `Der Wiener Kreis )); Die transitive Hülle ist mit relationaler Algebra (und daher auch mit relationalem Kalkül) nicht zu realisieren. Datalog 69 1 Der Wiener Kreis Wissenschaftstheorie Bioethik Erkenntnistheorie Wissenschaftstheorie Erkenntnistheorie 0

19 Rekursion in DB/SQL99: gleiche Anfrage with TransVorl (Vorg, Nachf) Veränderung am Datenbestand as (select Vorgänger, Nachfolger from voraussetzen union all Einfügen von Tupeln select t.vorg, v.nachfolger from TransVorl t, voraussetzen v where t.nachf= v.vorgänger) insert into hören select MatrNr, from Studenten, select Titel from where in where Titel= `Logik ; (select Vorg from TransVorl where Nachf in (select from insert into Studenten (MatrNr, ) where Titel= `Der Wiener Kreis ) ) values (811, `Archimedes ); 5 zuerst wird eine temporäre Sicht TransVorl mit der with Klausel angelegt MatrNr Studenten Semester Diese Sicht TransVorl ist rekursiv definiert, da sie selbst in der Definition vorkommt Theophrastos Feuerbach Archimedes Aus dieser Sicht werden dann die gewünschten Tupel extrahiert Ergebnis ist natürlich wie gehabt 6

20 Veränderungen am Datenbestand Vorgänger vorausssetzen Nachfolger Löschen von Tupeln delete Studenten where Semester > 1; Verändern von Tupeln update Studenten set Semester= Semester + 1; Ohne einen Markierungsschritt hängt das Ergebnis dieser Anfrage von der Reihenfolge der Tupel in der Relation ab. Eine Abarbeitung in der Reihenfolge der Beispielausprägung würde das letzte Tupel (505, 59) fälschlicherweise erhalten, da vorher bereits alle Tupel mit 505 als Nachfolger entfernt wurden. 9 Zweistufiges Vorgehen bei Änderungen Sichten die Kandidaten für die Änderung werden ermittelt und ''markiert''. die Änderung wird an den in Schritt 1. ermittelten Kandidaten durchgeführt Anderenfalls könnte die Änderungsoperation von der Reihenfolge der Tupel abhängen, wie folgendes Beispiel zeigt: delete from voraussetzen where Vorgänger in (select Nachfolger from voraussetzen); für den Datenschutz create view prüfensicht as select MatrNr,, PersNr from prüfen 8 80

21 Sichten... für die Vereinfachung von Anfragen create view StudProf (Sname, Semester, Titel, Pname) as select s., s.semester, v.titel, p. from Studenten s, hören h, v, p where s.matr.nr=h.matrnr and h.=v. and v.gelesenvon = p.persnr select distinct Semester from StudProf where P=` ; create view as select * from Angestellte a, ProfDaten d where a.persnr=d.persnr; create view Assistenten as select * from Angestellte a, AssiDaten d where a.persnr=d.persnr; Untertypen als Sicht Sichten zur Modellierung von Generalisierung create table Angestellte (PersNr integer not null, varchar (0) not null); create table ProfDaten (PersNr integer not null, Rang character(), Raum integer); create table AssiDaten (PersNr integer not null, Fachgebiet varchar(0), Boss integer); 81 8 create table (PersNr integer not null, varchar (0) not null, Rang character (), Raum integer); create table Assistenten (PersNr integer not null, varchar (0) not null, Fachgebiet varchar (0), Boss integer); create table AndereAngestellte (PersNr integer not null, varchar (0) not null); 8 8

22 create view Angestellte as (select PersNr, from ) union (select PersNr, from Assistenten) union (select* from AndereAngestellte); Obertypen als Sicht Änderbarkeit von Sichten Beispiele für nicht änderbare Sichten create view WieHartAlsPrüfer (PersNr, Durchschnittsnote) as select PersNr, avg(note) from prüfen group by PersNr; create view Sicht as select Titel, SWS, from, where gelesen Von=PersNr; insert into Sicht values (`Nihilismus,, `Nobody ); 85 8 Sichten zur Gewährleistung von Datenunabhängigkeit logische Datenunabhängigkeit physische Datenunabhängigkeit Benutzer Sicht 1 Sicht Sicht Relation 1 Relation Relation Änderbarkeit von Sichten in SQL nur eine Basisrelation Schlüssel muss vorhanden sein keine Aggregatfunktionen, Gruppierung und Duplikateliminierung alle Sichten theoretisch änderbare Sichten in SQL änderbare Sichten 86 88

23 Embedded SQL #include <stdio.h> /*Kommunikationsvariablen deklarieren */ exec sql begin declare section; varchar user_passwd[0]; error: exec sql whenever sqlerror continue; exec sql rollback work release; printf("fehler aufgetreten!\n"); exit(1); int exmatrnr; exec sql end declare section; exec sql include SQLCA; main() { printf("/password:"); scanf("%", user_passwd.arr); user_passwd.len=strlen(user_passwd.arr); exec sql wheneversqlerror goto error; exec sql connect :user_passwd; while (1) { printf("matrikelnummer (0 zum beenden):"); scanf("%d", &ecmatrnr); if (!exmatrnr) break; exec sql delete from Studenten where MatrNr= :exmatrnr; exec sql commit work release; exit(0); Anfragen in Anwendungsprogrammen genau ein Tupel im Ergebnis: exec sql select avg (Semester) into :avgsem from Studenten; 90 9

24 Anfragen in Anwendungsprogrammen mehrere Tupel im Ergebnis: 1. Anfrage Satzorientierte Programmiersprache. Tupel sequentiell verarbeiten JDBC: Java Database Connectivity Standardisierte Schnittstelle zur Anbindung von relationalen Datenbanken an Java Wird heute fast immer für die Anbindung von Datenbanken an das Internet/Web verwendet Java Servlets als dynamische Erweiterung von Webservern Java Server Pages (JSP): HTMLSeiten mit eingebetteten Java Programmfragmenten mengenorientiertes DBMS. Cursor/Iterator schließen. Anfrage auswerten, Ergebnistupel im Cursor/Iterator/ ResultSet bereitstellen 9 95 CursorSchnittstelle in SQL 1. exec sql declare cprofs cursor for Raum where Rang= ;. exec sql open cprofs; 1. exec sql fetch cprofs into :pname, :praum; select, from Zugriff auf Datenbanken via JDBC JDBC Treiber 1 standardisierte Schnittstelle JavaProgramm mit Zugriff auf zwei unterschiedliche (heterogene) Datenbanken JDBC Treiber 1. exec sql close cprofs; Datenbank 1 DBMSspezifische Im plementierung Datenbank 9 96

25 WebAnbindung von Datenbanken via Servlets/JDBC Browser Internet Webserver Vorlesungs Verzeichnis.html ServletEngine Servlet VrlVrz Servlet VrlVrz Servlet VrlVrz try { ResultSet rset = sql_stmt.executequery( "select avg(semester) from Studenten"); rset.next(); // eigentlich zu prüfen, ob Ergebnis leer System.out.println("Durchschnittsalter: " + rset.getdouble(1)); rset.close(); catch(sqlexception se) { System.out.println("Error: " + se); JDBC (Java Database Conn.) Datenbank JDBCBeispielprogramm import java.sql.*; import java.io.*; public class ResultSetExample { public static void main(string[] argv) { Statement sql_stmt = null; Connection conn = null; try { Class.for("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection ("jdbc:oracle:oci8:@lsinterndb", "nobody", "Passwort"); sql_stmt = conn.createstatement(); catch (Exception e) { System.err.println("Folgender Fehler ist aufgetreten: " + e); System.exit(1); 9 98 try { ResultSet rset = sql_stmt.executequery( "select, Raum from where Rang = ''"); System.out.println(":"); while(rset.next()) { System.out.println(rset.getString("") + " " + rset.getint("raum")); rset.close(); catch(sqlexception se) {System.out.println("Error: " + se); try { sql_stmt.close(); conn.close(); catch (SQLException e) { System.out.println("Fehler beim Schliessen der DB: " + e);

26 Vorübersetzung von SQLAusdrücken PreparedStatement sql_exmatrikuliere = conn.preparestatement ("delete from Studenten where MatrNr =?"); int VomBenutzerEingeleseneMatrNr; // zu löschende MatrNr einlesen sql_exmatrikuliere.setint(1,vombenutzereingelesenematrnr); int rows = sql_exmatrikuliere.executeupdate(); if (rows == 1) System.out.println("StudentIn gelöscht."); else System.out.println("Kein/e StudentIn mit dieser MatrNr."); 101 StudentenItr Methusaleme; #sql Methusaleme = { select s., s.semester from Studenten s where s.semester > 1 ; while (Methusaleme.next()) { System.out.println(Methusaleme.() + ":" + Methusaleme.Semester()); Methusaleme.close(); #sql { delete from Studenten where Semester > 1 ; #sql { commit ; catch (SQLException e) { System.out.println("Fehler mit der DBVerbindung: " + e); catch (Exception e) { System.err.println("Folgender Fehler ist aufgetreten: " + e); System.exit(1); 10 SQL/JBeispielprogramm import java.io.*; import java.sql.*; import sqlj.runtime.*; import sqlj.runtime.ref.*; Query by Example Titel SWS p._t > gelesen Von #sql iterator StudentenItr (String, int Semester); public class SQLJExmp { public static void main(string[] argv) { try { Class.for("COM.ibm.db.jdbc.app.DBDriver"); Connection con = DriverManager.getConnection ("jdbc:db:uni"); con.setautocommit(false); DefaultContext ctx = new DefaultContext(con); DefaultContext.setDefaultContext(ctx); 10 Analog Join in QBE {[t] v, s, r ([v,t,s,r] s > ) PersNr _x Titel p._n SWS Rang gelesen Von _x Raum 10

27 Die Condition Box Studenten MatrNr Semester _s _a Studenten MatrNr Semester _t _b conditions _a > _b Betreuen p. potentieller Tutor _s Betreuter _t Aggregatfunktion und Gruppierung Titel SWS p.sum.all._x gelesen Von p.g. conditions avg.all._x> 105 Updates in QBE: ist von uns gegangen d. PersNr _x Rang Raum d. _y Titel SWS gelesen Von _x hören d. _y MatrNr 106

Fortsetzung: Projektion Selektion. NULL Werte

Fortsetzung: Projektion Selektion. NULL Werte Fortsetzung: Anfragen mit SQL Bisher: Projektion Selektion Duplikatbehandlung NULL Werte Professoren PersNr Name Rang Raum 2125 Sokrates 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134

Mehr

Relationale Anfragesprachen

Relationale Anfragesprachen Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE SQL standardisierte Datendefinitions (DDL) Datenmanipulations (DML) Anfrage (Query)Sprache derzeit aktueller Standard ist

Mehr

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

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

Mehr

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

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2) Vorlesung #4 SQL (Teil 2) Fahrplan Eine weitere Aggregation: median Geschachtelte Anfragen in SQL Korrelierte vs. Unkorrelierte Anfragen Entschachtelung der Anfragen Operationen der Mengenlehre Spezielle

Mehr

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012 Datenbanken Datenintegrität + Datenschutz Tobias Galliat Sommersemester 2012 Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus

Mehr

http://www-db.in.tum.de/research/publications/books/dbmseinf

http://www-db.in.tum.de/research/publications/books/dbmseinf SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)- - Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale Erweiterung Für praktische Übungen

Mehr

Relationale Abfragesprachen

Relationale Abfragesprachen Relationale Abfragesprachen Relationale Abfragesprachen VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Relationale Abfragesprachen 1 Überblick

Mehr

Vorlesung Datenbanksysteme vom

Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 27.10.2008 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D 1,

Mehr

Wiederholung: Relationale Algebra

Wiederholung: Relationale Algebra Vorlesung Datenbanksysteme vom 1.11.016 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D1, D,,

Mehr

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2015 noch Kapitel 7: SQL Vorlesung vom 12.05.2015 Oliver Vornberger Institut für Informatik Universität Osnabrück SQL: Schlüsselworte select from where order by asc desc as like upper

Mehr

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken SQL. Dr. Gerd Gröner Wintersemester 2013/14

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken SQL. Dr. Gerd Gröner Wintersemester 2013/14 Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Dr. Gerd Gröner Wintersemester 2013/14 Lernziele Kenntnisse der Grundkonzepte von Fähigkeit zur praktischen Anwendung

Mehr

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2009 Vorlesung vom 19.05.2009 noch Kapitel 7: SQL Oliver Vornberger Institut für Informatik Universität Osnabrück SQL: Self Join 15.) Liste die Namen der Assistenten, die für denselben

Mehr

Wiederholung VU Datenmodellierung

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

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 6b: Das relationale Modell Das Relationale Modell (vgl. Lerneinheit 6a) Wertebereiche (Domänen):

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL. Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Datenmodellierung. VU , SS 2016 Relationale Abfragesprachen SQL. Nysret Musliu, Sebastian Skritek

Datenmodellierung. VU , SS 2016 Relationale Abfragesprachen SQL. Nysret Musliu, Sebastian Skritek Relationale Abfragesprachen Datenmodellierung VU 184685, SS 2016 Relationale Abfragesprachen SQL Nysret Musliu, Sebastian Skritek Institut für Informationssysteme Technische Universität Wien Nysret Musliu,

Mehr

Datenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2013 noch Kapitel 7: SQL Vorlesung vom 7.5.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Transititve Hülle SQL: avg, group by 16.) Liste die durchschnittliche

Mehr

Architektur eines DBMS Logische Optimierung

Architektur eines DBMS Logische Optimierung Vorlesung Datenbanksysteme vom 16.11.2015 Anfragebearbeitung 1 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Architektur eines DBMS SW-Komponenten der Anfragebearbeitung

Mehr

Kapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies

Kapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies Kapitel 8 Dr. Jérôme Kunegis SQL Continued WeST Institute for Web Science & Technologies Lernziele Syntax von SQL Anfragen Erweiterte Konstrukte in SQL Abfragen: Aggregation, Gruppierung, rekursive Anfragen..

Mehr

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3) Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der

Mehr

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Relation: R D 1 Domänen (Wertebereiche) x... x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street,

Mehr

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Aufgabensammlung SQL SW4 1. Einfache Anfragen Aufgabensammlung SQL SW4 1. Einfache Anfragen Buch: Kapitel 4.6 und 4.7. Datenbank: Die folgenden Anfragen beziehen sich auf die Universitätsdatenbank des Buches. Alle Umlaute werden umschrieben (hören

Mehr

Das relationale Modell

Das relationale Modell Das relationale Modell Grundlagen Übersetzung von ER-Schemata in relationale Schemata Relationale Algebra Relationenkalkül Domänenkalkül Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Domänen

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück 1 Kapitel 6a: Das relationale Modell 2 Das Relationale Modell Wertebereiche (Domänen): D 1, D 2,,...,

Mehr

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells Grundlagen des relationalen Modells Seien D 1, D,, D n Domänen (Wertebereiche) Relation: R D 1 x x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street, 711)

Mehr

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14 Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken SQL Teil 2 Dr. Jérôme Kunegis Wintersemester 2013/14 Bereichsanfragen und Mitgliedschaft in der Menge Anfrage:

Mehr

Wie definieren wir das Relationen-

Wie definieren wir das Relationen- Wie definieren wir das Relationen- schema für eine Datenbank? Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136

Mehr

Microsoft SQL-Server 2000. Enterprise-Manager

Microsoft SQL-Server 2000. Enterprise-Manager Kapitel 7: SQL Microsoft SQL-Server 2000 Server: Client: Enterprise-Manager Query-Analyzer Installation Query Analyzer Tunnel mit Putty Tunnel mit Putty SQL: Geschichte 1970: System R mit Abfragesprache

Mehr

Datenbanksysteme 2013

Datenbanksysteme 2013 Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische

Mehr

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen

Mehr

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells Grundlagen des relationalen Modells Das relationale Modell Verfeinerung des relationalen Schemas Relationale Algebra Relationenkalkül Kapitel 3 1 Grundlagen des relationalen Modells Seien D 1, D,, D n

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4) Vorlesung #6 SQL (Teil 4) Fahrplan Besprechung der Übungsaufgaben Einschub: Self Joins (relevant fürs Praktikum) Dynamische Intergritätsbedingungen, das Trigger - Konzept von Oracle Prozedurale Erweiterungen,

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Datenbanksysteme 2013. Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme 2013. Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2013 Kapitel 7: SQL Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Transititve Hülle SQL 1970 Edgar Codd: A relational model for large shared data banks 1975 SEQUEL

Mehr

Datenbanksysteme 2009. Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme 2009. Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2009 Kapitel 7: SQL Oliver Vornberger Institut für Informatik Universität Osnabrück SQL 1970 Edgar Codd: A relational model for large shared data banks 1975 SEQUEL für System R von IBM

Mehr

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2011 noch Kapitel 7: SQL Vorlesung vom 17.05.2011 Oliver Vornberger Institut für Informatik Universität Osnabrück Sprung Selfjoin SQL 1970 Edgar Codd: A relational model for large shared

Mehr

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Termin 12: Datenbanksysteme (2) - Einführung in SQL Termin 12: Datenbanksysteme (2) - Einführung in SQL Grundlagen der Informatik Wintersemester 2006/07 Prof. Bernhard Jung Übersicht 1. Einführung SQL 2. Datenbankanfragen mit SQL (select from where) 3.

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne Informatik für Ökonomen II: Datenintegrität Prof. Dr. Carl-Christian Kanne 1 Konsistenzbedingungen DBMS soll logische Datenintegrität gewährleisten Beispiele für Integritätsbedingungen Schlüssel Beziehungskardinalitäten

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Es wird empfohlen folgendes Material anzusehen:

Es wird empfohlen folgendes Material anzusehen: Übung zur Vorlesung "Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW)" IN8003, SS 2011 Prof. Dr. J. Schlichter Dr. Georg Groh, Dipl.Inform. Dipl.Geogr. Jan Herrmann, Florian Schulze

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

SWE4 Slide 1. Software-Engineering. Vorlesung 4 vom Sebastian Iwanowski FH Wedel

SWE4 Slide 1. Software-Engineering. Vorlesung 4 vom Sebastian Iwanowski FH Wedel SWE4 Slide Software-Engineering Vorlesung 4 vom 08..2004 Sebastian Iwanowski FH Wedel SWE4 Slide 2 Software-Engineering Vorlesungsthemen:. Überblick über das Thema und die Vorlesung 2. Grundlegende Prinzipien

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

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

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

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

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

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

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

Mehr

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

Mehr

Das relationale Modell

Das relationale Modell Das relationale Modell Das relationale Modell VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Das relationale Modell 1. Überblick Überblick

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

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Bisherige Integritätsbedingungen Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge

Mehr

Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert:

Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert: Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert: Lehrangebot des FG Informationssysteme Modellierung Datenbanken Internet-Suchmaschinen Information

Mehr

Software-Engineering

Software-Engineering SWE42 Slide Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 2: Datenorientierte Sicht SWE42 Slide 2 Systemanalyse: Datenorientierte Sicht Entity-Relationship-Modellierung

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

Grundlagen des relationalen l Modells

Grundlagen des relationalen l Modells Grundlagen des relationalen l Modells Seien D 1, D 2,..., D n Domänen (~Wertebereiche) Relation: R D 1 x... x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street,

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

SQL. Kapitel 4 SQL 121 / 508

SQL. Kapitel 4 SQL 121 / 508 Kapitel 4 SQL 121 / 508 Generelle Anmerkungen SQL: Structured Query Language Früherer Name war SEQUEL Standardisierte Anfragesprache fuer relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative

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. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

Acknowledgments. Datenmodellierung VU , WS Das Relationale Modell: Begriffsklärung. Übersicht. Das relationale Modell

Acknowledgments. Datenmodellierung VU , WS Das Relationale Modell: Begriffsklärung. Übersicht. Das relationale Modell Das relationale Modell Das relationale Modell Acknowledgments Datenmodellierung VU 184.685, WS 2015 Das relationale Modell Sebastian Skritek Die Folien sind eine kleine Erweiterung der Folien von Katrin

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

Objektorientierte Datenbanken

Objektorientierte Datenbanken OODB 1 Slide 1 Objektorientierte Datenbanken Vorlesung 1 Sebastian Iwanowski FH Wedel OODB 1 Slide Organisatorisches Vorlesung Mittwochs, 09:30 10:5 Raum HS Übung Dienstags, 09:30 10:5 (erstmalig am 1.0.)

Mehr

Das Relationale Modell

Das Relationale Modell Kapitel 6 Das Relationale Modell 6.1 Definition Gegeben sind n nicht notwendigerweise unterschiedliche Wertebereiche (auch Domänen genannt) D 1,..., D n, welche nur atomare Werte enthalten, die nicht strukturiert

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Grundlagen: Datenbankprogrammierung Literatur T. Kudraß (Hrsg.): Taschenbuch Datenbanken, Hanser, 2007 DB-Programmierung-2 Einbettungstechniken Einbettung in 3GL Embedded

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

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

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

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

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

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

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

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

Datenbanksysteme 2011

Datenbanksysteme 2011 Datenbanksysteme 2011 Anfang von Kapitel 10: Datenbankapplikationen Vorlesung vom 06.06.2011 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen ODBC MS Visio MS Access

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

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

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

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

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

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

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

Mehr

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

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname  Age Gruppe Schmidt Hans Meisel Amelie Seminar 1 SQL Abfragen DML Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro 21 331 1235 Meisel Amelie meisel@cs.ro 22 331 1236 Krause Julia krause@cs.ro 21 332 1237 Rasch

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 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

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

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

ACCESS SQL ACCESS SQL

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

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

Datenmodellierung. VU , WS 2016 Das relationale Modell. Nysret Musliu, Sebastian Skritek

Datenmodellierung. VU , WS 2016 Das relationale Modell. Nysret Musliu, Sebastian Skritek Das relationale Modell Datenmodellierung VU 184.685, WS 2016 Das relationale Modell Nysret Musliu, Sebastian Skritek Institut für Informationssysteme Technische Universität Wien Nysret Musliu, Sebastian

Mehr

Übungen zu Datenbanksysteme

Übungen zu Datenbanksysteme Institut für Informatik Universität Osnabrück, 19.05.2009 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/ dbs Dipl.-Math. Patrick Fox Abgabe bis 02.06.2009, 12:00 Uhr Übungen zu Datenbanksysteme

Mehr

Datenmanipulation in SQL (1): Subselect:

Datenmanipulation in SQL (1): Subselect: Datenmanipulation in SQL (1): Unter Datenmanipulation wird sowohl der lesende Zugriff auf die Daten (Select Statement) als auch die Änderung von Daten (Insert, Delete, Update) subsummiert. Wir beginnen

Mehr

Datenbanksysteme (2) Einführung in SQL

Datenbanksysteme (2) Einführung in SQL Kapitel 19: Datenbanksysteme (2) Einführung in SQL Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht 1. Einführung SQL 2. Datenbankanfragen mit SQL (select from where) 3.

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

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung

Mehr

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte Wirtschaftsinformatik 7a: Datenbanken Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte Drei Gäste bezahlen nach einem gemeinsamen Abendessen eine Rechnung von 30 Euro, so dass jeder 10 Euro gibt.

Mehr

AG Datenbanken und Informationssysteme Wintersemester 2006 / Übungsblatt

AG Datenbanken und Informationssysteme Wintersemester 2006 / Übungsblatt AG Datenbanken und Informationssysteme Wintersemester 2006 / 2007 Prof. Dr.-Ing. Dr. h. c. Theo Härder Fachbereich Informatik Technische Universität Kaiserslautern http://wwwdvs.informatik.uni-kl.de 14.

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

VO Datenmodellierung. Katrin Seyr

VO Datenmodellierung. Katrin Seyr Datenintegrität Datenintegrität VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Datenintegrität 1. Überblick Überblick 1 Überblick 2 Integritätsbedingungen

Mehr