Relationale Anfragesprachen
|
|
- Gundi Bäcker
- vor 6 Jahren
- Abrufe
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: 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
MehrRelationale Anfragesprachen
Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE SQL standardisierte Datendefinitions (DDL) Datenmanipulations (DML) Anfrage (Query)Sprache derzeit aktueller Standard ist
MehrKapitel 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
MehrWS 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)
MehrWS 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
MehrDatenbanken. 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
Mehrhttp://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
MehrRelationale 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
MehrVorlesung 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,
MehrWiederholung: 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,,
MehrDatenbanksysteme 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
MehrWeb 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
MehrDatenbanksysteme 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
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrDatenbanksysteme 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):
MehrDatenintegritä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!
MehrDatenintegritä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
MehrDatenintegritä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!
MehrDatenmodellierung. 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,
MehrDatenbanksysteme 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
MehrArchitektur 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
MehrKapitel 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..
MehrWS 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
MehrGrundlagen 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,
MehrAufgabensammlung 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
MehrDas 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
MehrDatenbanksysteme 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,,...,
MehrGrundlagen 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)
MehrWeb 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:
MehrWie 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
MehrMicrosoft 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
MehrDatenbanksysteme 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
MehrDatenintegritä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
MehrGrundlagen 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
MehrWS 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,
MehrReferentielle 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
MehrDatenbanksysteme 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
MehrDatenbanksysteme 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
MehrDatenbanksysteme 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
MehrTermin 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.
MehrSQL. 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:
MehrInformatik 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
MehrReferentielle 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
MehrEs 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
MehrSeminar 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
MehrSWE4 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
MehrRü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
MehrSQL. 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
MehrTU 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 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
MehrKapitel 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
MehrTU 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
MehrDas 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
MehrEinfü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
MehrDatenintegritä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
MehrStudierende, 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
MehrSoftware-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
MehrISU 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
MehrGrundlagen 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,
MehrSQL 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
MehrSQL. 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
MehrTU 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/
MehrAcknowledgments. 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
MehrDaten-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
MehrObjektorientierte 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.)
MehrDas 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
MehrSoftwareentwicklung 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
MehrKapitel 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:
MehrMySQL-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
MehrKapitel 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:
MehrSQL: 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
MehrUNIVERSITÄ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 //
MehrWelche 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.
MehrTU 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
MehrAbfragen (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
MehrDatenbanksysteme 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
MehrEinfü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
Mehrinsert, 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
MehrTU 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)
MehrKapitel 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
MehrMengenvergleiche: 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
MehrDieser 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,
Mehr11 Anwendungsprogrammierung
11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:
MehrSeminar 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
MehrTeil 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
MehrSQL 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-
MehrObjektorientierte 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
MehrGrundlagen 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
MehrACCESS 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
MehrJDBC. 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
MehrDatenmodellierung. 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
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
MehrDatenmanipulation 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
MehrDatenbanksysteme (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.
MehrAnwendungsentwicklung 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
MehrEntwicklungsumgebung 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
MehrWirtschaftsinformatik 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.
MehrAG 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.
Mehrdbis 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
MehrVO 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