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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Lernziele Kenntnisse der Grundkonzepte von Fähigkeit zur praktischen Anwendung von einfachen -Anweisungen Schema-Definitionen, referentielle Integrität SELECT-Anweisungen Änderungsoperationen 2

3 zur Wiederholung Grundlagen Relationales Datenmodell: Abbildung ER-Diagramm Relationales Modell Nachbildung der Generalisierung und Aggregation im Relationalen Modell Relationale Invarianten (z.b. Primärschlüssel, ) Siehe folgende Seiten Relationenalgebra (z.b. Selektion, Projektion, Mengenoperationen) 3

4 Relationale Invarianten Integritätsbedingungen des Relationenmodells Primärschlüsselbedingung (Entity-Integrität) Eindeutigkeit des Primärschlüssels Keine Nullwerte Referentielle Integrität Darstellung von Beziehungen durch Fremdschlüssel (foreign key): Attribut, das in Bezug auf den Primärschlüssel einer anderen Relation definiert ist Zugehöriger Primärschlüssel muss existieren, d.h. zu jedem Wert (ungleich Null) des Fremdschlüsselattributs einer Relation R2 muss ein gleicher Wert des Primärschlüssels in irgendeinem Tupel von Relation R1 vorhanden sein. 4

5 Relationale Invarianten (2) Fremdschlüssel und zugehöriger Primärschlüssel tragen wichtige inter-relationale Information Sie sind auf dem gleichen Wertebereich definiert Sie gestatten die Verknüpfung von Relationen mit Hilfe von Relationenoperationen Fremdschlüssel Können Nullwerte aufweisen, wenn sie nicht Teil eines Primärschlüssels sind Ein Fremdschlüssel ist zusammengesetzt, wenn der zugehörige Primärschlüssel zusammengesetzt ist Eine Relation kann mehrere Fremdschlüssel besitzen, die die gleiche oder verschiedene Relationen referenzieren Zyklen sind möglich (geschlossener referentieller Pfad) Eine Relation kann zugleich referenzierende und referenzierte Relation sein ( self-referencing table ) 5

6 Komponenten der vollständigen DB-Sprache Datenmanipulation Einfügen, Löschen und ändern von Tupeln Zuweisung von ganzen Relationen Datendefinition Definition von Wertebereichen, Attributen und Relationen Definition von verschiedenen Sichten auf Relationen Datenkontrolle Spezifikation von Bedingungen zur Zugriffskontrolle Spezifikation von Zusicherungen (Assertions) zur semantischen Integritätskontrolle Datenabfragen Abbildung von Eingaberelationen durch Auswertung von Bedingungen auf die Ereignisrelation Kopplung mit einer Hostsprache (z.b. PHP) Deskriptive Auswahl von Mengen von Tupeln Sukzessive Bereitstellung einzelner Tupel 6

7 Relationale Anfragesprache Begriff Anfragesprache historisch geprägt, beinhaltet auch Datendefinition und Datenmanipulation (früher SEQUEL) Deklarative Anfragesprache Theoretische Grundlage: Relationale Algebra 7

8 Datentypen in 3 fundamentale Typen: Zahlen, Zeichenketten und Datumstyp CHAR(n) String mit fester Länge VARCHAR(n) String mit max. Länge n INTEGER Integer FLOAT Float, Fließkommazahl DATE Datum BLOB Binary Large Object... für große Binärdateien, nicht zu interpretierende Daten von externen Anwendungssystemen 8

9 Beispiel: Universität 9

10

11 : Create Table zur Schemadefinition (Erinnerung: Schema wird automatisch in Datenwörterbuch gespeichert) CREATE TABLE Assistenten ( PersNr INT PRIMARY KEY, Name VARCHAR(20) NOT NULL, Fachgebiet VARCHAR(100), Boss INT FOREIGN KEY (Boss) REFERENCES Professoren(PersNr) ON DELETE SET NULL ); 11

12 : Alter Table zur Schemaveränderung z.b. nachträgliches Einfügen des Attributs Raum ALTER TABLE Professoren ADD (Raum INTEGER); z.b. nachträgliches Ändern der Zeichenlänge des Attributs Name ALTER TABLE Professoren MODIFY (Name VARCHAR(30)); 12

13 Einfügen von Tupeln Werte direkt angeben: INSERT INTO Professoren VALUES (2136, 'Curie', 'C4', 36); Werte durch Anfrage generiert: INSERT INTO hören SELECT MatrNr, VorlNr FROM Studenten, Vorlesungen WHERE Titel = 'Logik'; Attributwerte in Reihenfolge der Definition Bedeutung:... jeder Student hört Vorlesung Logik 13

14 Einfügen von Tupeln (2) Nur einen Teil der Attribute einfügen (z.b. wenn einige Werte unbekannt sind) INSERT INTO Studenten (MatrNr, Name) VALUES (28121, 'Archimedes'); Angabe der gewünschten Attribute NULL-Wert 14

15 Auswertung bei NULL-Werten Arithmetische Ausdrücke: 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 ausgewertet-aber auch NULL * 0 wird zu NULL ausgewertet. Logische Ausdrücke: 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 das Prädikat (PersNr=...) immer zu UNKNOWN aus, wenn die PersNr des betreffenden Tupels den Wert null hat. siehe folgende Tabelle 15

16 Auswertung bei NULL-Werten (2) 16

17 Löschen und Ändern Löschen von Tupeln DELETE FROM Studenten WHERE Semester > 13; Ändern von Tupeln UPDATE Studenten SET Semester = Semester + 1; 17

18 -Anfragen Syntax "Grobsyntax": select_block { { UNION INTERSECT MINUS } [ALL] select_block...} [ORDER BY result_column [ASC DESC] {, result_column [ASC DESC] } mit select_block ::= SELECT [ALL DISTINCT] {column {expression [AS result_column]}} {, {column {expression [AS result_column]}} } FROM table [correlation_var] {, table [correlation_var] } [WHERE search_condition] [GROUP BY column {, column } [HAVING search_condition] ] 18

19 -Anfrage SELECT PersNr, Name FROM Professoren WHERE Rang= 'C4'; 19

20 Sortierung SELECT PersNr, Name, Rang FROM Professoren ORDER BY Rang DESC, Name ASC; - ohne Angabe: aufsteigend (ASC) 20

21 Duplikateliminierung SELECT DISTINCT Rang FROM Professoren; 21

22

23 Anfragen über mehrere Relationen Welcher Professor liest Mäeutik? SELECT Name, Titel FROM Professoren, Vorlesungen WHERE PersNr = gelesenvon AND Titel = 'Mäeutik' verbinden von Professoren und Vorlesungen Bedeutung: wähle Name und Titel aus der Kombination von Professoren und Vorlesungen, wo gelesenvon und PersNr übereinstimmt und Vorlesung Mäeutik ist. 23

24 Anfragen über mehrere Relationen (2) Abarbeitung der vorherigen Anfrage 1. Kreuzprodukt der Tabelle bilden 2.Jede Zeile des Kreuzprodukts auf Erfüllung der Bedingung aus dem WHERE-Teil überprüfen 3. Projektion anhand des SELECT-Teils In Relationenalgebra: 24

25 25

26 Anfragen über mehrere Relationen (4) Welche Studenten hören welche Vorlesungen? SELECT Name, Titel FROM Studenten, hören, Vorlesungen WHERE Studenten.MatrNr = hören.matrnr AND hören.vorlnr = Vorlesungen.VorlNr; Alternativ: mit Tupelvariablen SELECT s.name, v.titel FROM Studenten s, hören h, Vorlesungen v WHERE s.matrnr = h.matrnr AND h.vorlnr = v.vorlnr; sinnvoll wenn die selbe Relation mehrfach vorkommt! 26

27 Anfragen über mehrere Relationen (5) SELECT s1.name, s2.name FROM Studenten s1, hören h1, hören h2, Studenten s2 WHERE h1.vorlnr = h2.vorlnr AND h1.matrnr = s1.matrnr AND h2.matrnr = s2.matrnr; 27

28 Mengenoperationen Mengenoperationen UNION, INTERSECT, MINUS SELECT Name FROM Assistenten UNION SELECT Name FROM Professoren; SELECT Name FROM Assistenten MINUS SELECT Name FROM Professoren; SELECT Name FROM Assistenten INTERSECT SELECT Name FROM Professoren; 28

29 Join (Verbund) Direkte Angabe eines Join-Operators im from-teil: CROSS JOIN: Kreuzprodukt NATURAL JOIN: nätürlicher Join JOIN oder INNER JOIN: Theta-Join LEFT, RIGHT oder FULL OUTER JOIN: äußerer Join aus: SELECT * FROM R1, R2 WHERE R1.A = R2.B ; wird: SELECT * FROM R1 JOIN R2 ON R1.A = R2.B 29

30 Inner Join Anfrage: Welcher Professor bietet welche Vorlesungen an? SELECT p.name, v.name FROM Professoren p INNER JOIN Vorlesungen v ON p.persnr = v.gelesenvon; SELECT p.name, v.name FROM Professoren p JOIN Vorlesungen v ON p.persnr = v.gelesenvon; SELECT p.name, v.name FROM Professoren p, Vorlesungen v WHERE p.persnr = v.gelesenvon; 30

31 Natural Join Anfrage: Welcher Student hört welche Vorlesung? SELECT Studenten.Name, Vorlesungen.Name FROM Studenten NATURAL JOIN hören NATURAL JOIN Vorlesungen; SELECT s.name, v.name FROM Studenten s, hören h, Vorlesungen v WHERE s.matrnr = h.matrnr AND h.vorlnr = v.vorlnr; 31

32 Cross Join Anfrage: Alle Paare "Professor Student" : SELECT Professoren.Name, Studenten.Name FROM Professoren CROSS JOIN Studenten; SELECT p.name, s.name FROM Professoren p, Studenten s; 32

33 Left Outer Join SELECT p.persnr, p.name, f.persnr, f.note, f.matrnr, s.matrnr, s.name FROM Professoren p LEFT OUTER JOIN ( prüfen f LEFT OUTER JOIN Studenten s ON f.matrnr = s.matrnr ) ON p.persnr = f.persnr ; p.persnr p.name f.persnr f.note f.matrnr s.matrnr s.name 2126 Russel Carnap 2125 Sokrates Jonas 2137 Kant Schopenhauer 2136 Curie

34 Right Outer Join SELECT p.persnr, p.name, f.persnr, f.note, f.matrnr, s.matrnr, s.name FROM Professoren p RIGHT OUTER JOIN (prüfen f RIGHT OUTER JOIN Studenten s ON f.matrnr = p.matrnr) ON p.persnr = f.persnr; p.persnr p.name f.persnr f.note f.matrnr s.matrnr s.name 2126 Russel Carnap 2125 Sokrates Jonas 2137 Kant Schopenhauer Fichte 34

35 Full Outer Join SELECT p.persnr, p.name, f.persnr, f.note, f.matrnr, s.matrnr, s.name FROM Professoren p FULL OUTER JOIN (prüfen f FULL OUTER JOIN Studenten s ON p.persnr = f.persnr; ON f.matrnr = s.matrnr) p.persnr p.name f.persnr f.note f.matrnr s.matrnr s.name 2126 Russel Carnap 2125 Sokrates Jonas 2137 Kant Schopenhauer Fichte 2136 Curie

36 Aggregatfunktionen und Gruppierung Aggregatfunktionen: Operationen auf Tupelmengen komprimieren eine Menge von Werten zu einem Wert AVG, MAX, MIN, SUM und COUNT Bsp.: durchschnittliche Semesterzahl aller Studenten SELECT AVG(Semester) FROM Studenten; Bsp.: höchste Semesterzahl aller Studenten SELECT MAX(Semester) FROM Studenten; 36

37 Aggregatfunktionen und Gruppierung (2) Aggregatfunktionen sind nützlich zusammen mit Gruppierungen GROUP BY Bsp.: Lehrpensum (Summe Wochenstunden) pro Professor SELECT gelesenvon, SUM(SWS) FROM Vorlesungen GROUP BY gelesenvon; hier werden alle Zeilen der Tabelle Vorlesungen, die den selben Wert Im Attribut gelesenvon haben Zusammengefasst; für jede der so entstandenen Gruppen wird die Summe der SWS berechnet. 37

38 Aggregatfunktionen und Gruppierung (3) Lehrpensum der C4-Professoren, die überwiegend umfangreiche Lehrveranstaltungen anbieten (mit durchschnittlichem Umfang von 3 SWS und mehr) SELECT gelesenvon, Name, SUM(SWS) FROM Vorlesungen, Professoren WHERE gelesenvon = PersNr AND Rang = 'C4' GROUP BY gelesenvon, Name HAVING AVG(SWS) >= 3; Hinweis: Name muss in GROUP BY, da - jedes Ausgabetupel eine Gruppe ist SELECT-Klausel darf nur aus (1) Aggregatfunktionen und (2) Attributen nach denen gruppiert wird bestehen 38

39 Ausführen einer Anfrage mit GROUP BY SELECT gelesenvon, Name, SUM(SWS) FROM Vorlesungen, Professoren WHERE gelesenvon = PersNr AND Rang = 'C4' GROUP BY gelesenvon, Name HAVING AVG(SWS) >= 3; FROM Vorlesungen, Professoren VorlNr Titel SWS gelesen Von PersNr Name Rang Raum 5001 Grundzüge Sokrates C Ethik Sokrates C Die 3 Kritiken Kant C4 7 WHERE gelesenvon = PersNr AND Rang = 'C4' 39

40 Ausführen einer Anfrage mit GROUP BY (2) WHERE gelesenvon = PersNr AND Rang = 'C4' VorlNr Titel SWS gelesen Von PersNr Name Rang Raum 5001 Grundzüge Kant C Ethik Sokrates C Erkenntnistheorie Russel C Mäeutik Sokrates C Logik Sokrates C Wissenschaftstheorie Russel C Bioethik Russel C Die 3 Kritiken Kant C4 7 GROUP BY gelesenvon, Name 40

41 41

42 Ausführen einer Anfrage mit GROUP BY (4) 42

43 Geschachtelte Anfragen Prinzip: Ergebnis einer inneren Anfrage (Subanfrage, Subquery, Unteranfrage) wird in der äußeren Anfrage verwendet Unterscheidung bzgl. Ergebnis der Subanfrage: Ein Tupel mit nur einem Attribut Behandlung wie skalarer Wert möglich (in SELECT und WHERE-Klausel)! Mehrere Tupel SELECT * FROM prüfen WHERE Note = ( SELECT AVG(Note) FROM prüfen); wie skalarer Wert 43

44 Geschachtelte Anfragen (2) Nochmal: Lehrpensum der Professoren SELECT PersNr,Name, (SELECT SUM(SWS) AS Lehrbelastung FROM Vorlesungen WHERE gelesenvon = PersNr) FROM Professoren); Beobachtung (im Vgl. vorheriger Anfrage): Subanfrage (innere Anfrage) verwendet Attribute (PersNr) von Tupel der äußeren Anfrage. Subanfrage ist korreliert mit äußeren Anfrage. 44

45 Subanfragen (unkorreliert und korreliert) Beispielanfrage: Professoren, die keine Vorlesung anbieten. Unkorrelierte Subanfrage: SELECT Name FROM Professoren WHERE PersNr NOT IN ( SELECT gelesenvon FROM Vorlesungen ); Korrelierte Subanfrage SELECT p.name FROM Professoren p WHERE NOT EXISTS ( SELECT v.gelesenvon FROM Vorlesungen v WHERE v.gelesenvon = p.persnr ); 45

46 Subanfragen (unkorreliert und korreliert) (2) Unkorrelierte Anfrage ist nicht immer möglich, z.b. SELECT a.* FROM Assistenten a WHERE EXISTS (SELECT p.* FROM Professoren p WHERE a.boss = p.persnr AND p.gebdatum > a.gebdatum );.. wegen diesem Prädikat Aber: Anfrage kann ohne Subanfrage gestellt werden: SELECT a.* FROM Assistenten a, Professoren p WHERE a.boss = p.persnr AND p.gebdatum > a.gebdatum ; 46

47 Weitere Subanfragen Beobachtung in vorheriger Subanfrage: EXISTS-Operator bildet Subanfrage auf atomaren Wert (true, false) ab. Alternativ: Tupel der Subanfrage als Kollektion weiter zu verwenden, z.b. Als Argument für Mengenoperationen Wie eine Relation in der FROM-Klausel, z.b. SELECT tmp.matrnr, tmp.name, tmp:vorlanzahl FROM (SELECT s.matrnr, s:name, COUNT(*) AS VorlAnzahl FROM Studenten s, hören h WHERE a.matrnr = h.matrnr GROUP By s.matrnr, s.name) tmp WHERE tmp.vorlanzahl > 2; Alternative zur Schachtelung: mit HAVING-Klausel 47

48 Subanfragen und IN-Operator IN-Operator testet auf Mengenmitgliedschaft Erinnerung: Mengenoperatoren UNION Vereinigung von Mengen (mit Duplikateliminierung) UNION ALL Vereinigung von Multimengen INTERSECT Schnittmenge MINUS Set-Minus (auch EXCEPT) z.b. SELECT Name FROM Assistenten UNION SELECT Name FROM Professoren; 48

49 Quantifizierende Bedingungen IN und ALL SELECT Name FROM Professoren WHERE PersNr NOT IN ( SELECT gelesenvon FROM Vorlesungen ); IN ist äquivalent zur quantifizierenden Bedingung ANY. Quantifizierende Bedingungen haben einen Vergleichsoperator (=, <, >, ) und den Operator IN oder ANY (alternativ auch SOME). IN testet ob es mindestens ein Element im Ergebnis einer Subanfrage gibt ALL überprüft, ob alle Ergebnisse der Subanfrage einen Vergleich erfüllen. 49

50 Quantifizierende Bedingungen IN und ALL (2) Anfrage: Studenten im höchsten Semester. SELECT * FROM Studenten WHERE Semester >= ALL (SELECT Semester FROM Studenten); Alternativ: Subanfrage mit MAX-Aggregator Hinweis: ALL vergleicht nur einen Wert mit einer Menge kein Allquantor! Nicht möglich sind Anfragen wie finde alle Studenten mit... 50

51 Quantifizierte Anfragen Existenzquantor wird durch EXISTS umgesetzt. Teste ob Menge von Tupeln leer ist oder nicht (Abb. auf true, false) NOT EXISTS ist umgekehrt, z.b. Professoren, die keine Vorlesung halten SELECT Name FROM Professoren WHERE NOT EXISTS ( SELECT * FROM Vorlesungen WHERE gelesenvon = PersNr ); 51

52 Quantifizierte Anfragen (2) Ziel: Allquantor umsetzen! Idee: logische Umformung (konkret: Allquantor wird eliminiert) Beispiel: Studenten, die alle vierstündigen Vorlesungen hören Wir können folgende Äquivalenzen verwenden: t Tupel R Relation P Prädikat 52

53 Quantifizierte Anfragen (3) dies ergibt dann: jetzt noch Negation nach innen (DeMorgan-Gesetz): dies kann mit NOT EXISTS in dargestellt werden 53

54 Quantifizierte Anfragen (4) als geschachtelte -Anfrage SELECT s.* FROM Studenten s WHERE NOT EXISTS (SELECT * FROM Vorlesungen v WHERE v.sws = 4 AND NOT EXISTS (SELECT * FROM hören h WHERE h.vorlnr = v.vorlnr AND h.matrnr=s.matrnr)); 54

55 Allquantifizierte Prädikate durch COUNT Allquantifizierung kann auch durch eine COUNT-Aggregation ausgedrückt werden Nochmal eine etwas einfachere Anfrage: Wer hat alle vierstündigen Vorlesungen gehört? SELECT h.matrnr FROM hören h, Vorlesungen v WHERE v.sws = 4 AND h.vorlnr = v.vorlnr GROUP BY h.matrnr HAVING COUNT (*) = (SELECT COUNT (*) FROM Vorlesungen v1 WHERE v1.sws = 4); hier wird zunächst gezählt, wie viele Vorlesungen die einzelnen Studenten hören und dann überprüft, ob diese Anzahl gleich ist mit der Anzahl der Tupel in Relation Vorlesungen (mit 4 SWS) 55

56 Hinweis: Fehlerquellen bei COUNT-Aggregation Anfrage: Namen der Studenten, die alle vierstündigen Vorlesungen gehört haben Vorsicht: so geht das nicht SELECT h.matrnr, s.name FROM hören h, Vorlesungen v, Studenten s WHERE v.sws = 4 AND h.vorlnr = v.vorlnr AND h.matrnr = s.matrnr GROUP BY h.matrnr HAVING COUNT (*) = (SELECT COUNT (*) FROM Vorlesungen v1 WHERE v1.sws = 4); Erinnerung: SELECT-Klausel darf nur aggregierte Werte oder Attribute nach denen gruppiert wurde enthalten. 56

57 Hinweis: Fehlerquellen bei COUNT-Aggregation (2) deshalb so: SELECT h.matrnr, s.name FROM hören h, Vorlesungen v, Studenten s WHERE v.sws = 4 AND h.vorlnr = v.vorlnr AND h.matrnr = s.matrnr GROUP BY h.matrnr, s.name HAVING COUNT (*) = ( SELECT COUNT (*) FROM Vorlesungen v1 WHERE v1.sws = 4 ); erzeugt pro Gruppe ein Ergebnistupel. Deshalb müssen alle in der SELECT-Klausel aufgeführten Attribute - außer den aggregierten auch in der GROUP BY-Klausel aufgeführt werden! 57

58 Quantifizierte Anfragen (4) Alternative Umsetzung der vorherigen Anfrage: SELECT s.* FROM Studenten s WHERE NOT EXISTS ( SELECT v.vorlnr FROM Vorlesungen v WHERE v.sws = 4 MINUS SELECT h.vorlnr FROM hören h WHERE h.matrnr = s.matrnr ); 58

59 Fragen? 59

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

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

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

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis Daniel Warner SQL Das Praxisbuch Mit 119 Abbildungen Franzis Inhaltsverzeichnis Teil I - Einleitung 15 1 Einleitung 17 1.1 Zum Aufbau des Buchs 17 1.2 Hinweise zur Buch-CD 18 1.3 Typografische Konventionen

Mehr

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

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

Mehr

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

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

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

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

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

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

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

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

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14 Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Dr. Jérôme Kunegis Wintersemester 2013/14 Lernziele Grundideen des Domänen-Relationenkalküls (DRK) und des Tupel-Relationenkalküls

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

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

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

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

Relationales Datenmodell Relationale Algebra

Relationales Datenmodell Relationale Algebra Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Relationale Algebra Dr. Thomas Gottron Wintersemester 2012/13 Lernziele Grundbegriffe des Relationalen Modells Abbildung von ER-Diagrammen

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

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

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

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL als Anfrage- und Datenmanipulationssprache (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL als DQL und DML M. Lange, S. Weise Folie #8-1 Themen

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. 8 Hausaufgabe 1 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de)

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

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

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

Mehr

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

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt Herbstsemester 2009 Datenbanken mit Übungen Kapitel 4: SQL H. Schuldt Inhalt Datenmanipulationssprache SQL: SQL (Structured Query Language) ist die Standardsprache für die Datendefinition und Datenmanipulation

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

SQL: Übersicht. SQL (Structured Query Language) ist ANSI und ISO Standard 1975 SEQUEL = Structured English Query Language für System R

SQL: Übersicht. SQL (Structured Query Language) ist ANSI und ISO Standard 1975 SEQUEL = Structured English Query Language für System R SQL: Übersicht SQL (Structured Query Language) ist ANSI und ISO Standard 1975 SEQUEL = Structured English Query Language für System R (IBM) 1979 Oracle V2 (Relational Software Inc. ) erstes SQL Produkt

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

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies Kapitel 7 Dr. Jérôme Kunegis Logische Kalküle WeST Web Science & Technologies Lernziele Grundideen des Domain-Relationenkalküls (DRK) und des Tupel-Relationenkalküls (TRK) Relationale Datenbank als Formelmenge

Mehr

Rückblick: Relationale Normalisierung

Rückblick: Relationale Normalisierung Rückblick: Relationale Normalisierung Gute Relationenschema vermeiden Redundanz und führen nicht zu Anomalien beim Einfügen, Löschen oder Ändern Relationale Normalformen (1NF, 2NF, 3NF, BCNF, 4NF) charakterisieren

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

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

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

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

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

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

Mehr

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

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

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

Einführung in die Spezialisierungsrichtungen

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

Mehr

4. Structured Query Language (SQL)

4. Structured Query Language (SQL) 4. Structured Query Language (SQL) Rückblick Konzeptuelles Modell (ERM) können wir nun in (wenige) Relationen übersetzen Relationale Algebra gibt uns eine Sprache an die Hand, mit der wir Anfragen auf

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

8. Relationale Datenbanksprachen

8. Relationale Datenbanksprachen 8. Relationale Datenbanksprachen SQL-Kern Weitere Sprachkonstrukte von SQL SQL-Versionen VL Datenbanken I 8 1 SQL-Kern select Projektionsliste arithmetische Operationen und Aggregatfunktionen from zu verwendende

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

Vorlesung Datenbankmanagementsysteme

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

Mehr

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

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

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

Mehr

Datenmanipulation in SQL. Select Anweisung

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

Mehr

Das Relationale Modell

Das Relationale Modell Kapitel 3 Das Relationale Modell 1 / 50 Generelle Anmerkungen Wurde in den Siebzigern von E.F.Codd entwickelt (er bekam den Turing Award dafür) Im Moment das am weitesten verbreitete Datenmodell Hat die

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13 Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung

Mehr

Kapitel 7: Referentielle Integrität

Kapitel 7: Referentielle Integrität Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

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

Mehr

4. Datenbanksprache SQL

4. Datenbanksprache SQL 4. Datenbanksprache SQL Standard-Sprache für das Arbeiten mit relationalen Datenbanken: Structured Query Language Datendefinition: Anlegen, Ändern und Löschen von Datenbankstrukturen Datenmanipulation:

Mehr