Datenbanken. SQL Einführung und SQL-DDL

Größe: px
Ab Seite anzeigen:

Download "Datenbanken. SQL Einführung und SQL-DDL"

Transkript

1 Datenbanken SQL Einführung und SQL-DDL

2 SQL Überblick ANSI/ISO standardisierte Datendefinitions (DDL)- Datenmanipulations (DML)- Anfrage (Query)-Sprache SQL-92 weitgehend von den meisten DB- Herstellern implementiert Neuere Standards: SQL-99 und SQL3 (2003) objektrelationale Erweiterung XML teilweise implementiert 2

3 Der SFW-Block SELECT... FROM... WHERE... Standardform einer SQL-Anfrage 3

4 FROM Klausel SELECT * FROM Relationenliste SELECT * FROM Bücher Liefert die gesamte Relation Bücher 4

5 Kartesisches Produkt SELECT * FROM R1, R2 R1 A B C R2 D E F R12 A B C D E F

6 INNER JOIN SELECT * FROM R1, R2 WHERE R1.C=R2.D SELECT * FROM R1 INNER JOIN R2 ON R1.C=R2.D R1 A B C R2 D E F R12 A B C D E F

7 Natürlicher Verbund SELECT * FROM R1 natural join R2 R1 A B C R2 B E F R12 A B C B E F Jene Zeilen werden verbunden, deren gleich benannte Attribute gleiche Werte haben. 7

8 Äußere Verbunde Left Outer Join, Right Outer Join, Full Outer Join 8

9 OUTER JOINS SELECT l.a, l.b, r.c FROM links l LEFT OUTER JOIN rechts r ON l.b=r.b SELECT l.a, r.b, r.c FROM links l RIGHT OUTER JOIN rechts r ON l.b=r.b SELECT l.a, l.b, r.c FROM links l FULL OUTER JOIN rechts r ON l.b=r.b 9

10 SELECT SELECT [DISTINCT] {attribute arithmetischer-ausdruck aggregat-funktion FROM... Attribute werden festgelegt, die im Anfrageergebnis erscheinen sollen Entspricht Projektion in der relationalen Algebra Beispiel: SELECT Preis FROM Artikel 10

11 SELECT II Arithmetische Ausdrücke über Attributen und Konstanten SELECT Preis/1.4 FROM Artikel Aggregatfunktionen über Attributen SELECT SUM (Preis) FROM Artikel SELECT COUNT(*) FROM Artikel DISTINCT: Menge statt Multimenge 11

12 Projektionsergebnis Menge oder Multimenge 12

13 Tupelvariablen und Relationennamen Angabe der Attributnamen durch Präfix ergänzen: SELECT Bücher.ISBN FROM Bücher Tupelvariable kann benutzt werden: SELECT eins.isbn, zwei.titel FROM Bücher eins, Bücher zwei 15

14 Tupelnamen und Relationennamen II Welches Problem gibt es hier? SELECT ISBN, Titel, Stichwort FROM Bücher, Buch_Stichwort WHERE Bücher.ISBN=Buch_Stichwort.ISBN ISBN im SELECT-Teil ist nicht eindeutig Richtig: SELECT Bücher.ISBN, Titel, Stichwort FROM Bücher, Buch_Stichwort WHERE Bücher.ISBN=Buch_Stichwort.ISBN 16

15 WHERE Klausel SELECT... FROM... WHERE Bedingung Selektion von Tupeln der hinter FROM stehenden Relationen, die der hinter WHERE stehenden Bedingung genügen Entspricht Selektion in der relationalen Algebra Bedingung: Konstantenselektion Attributselektion Verbundbedingung Bereichsselektion Ungewissheitsselektion NULL-Selektion Quantifizierte Bedingungen 17

16 Verbundbedingung Relation1.attribut=Relation2.attribut Bsp. Natürlicher Verbund: SELECT Bücher.Titel, Bücher_Stichwort.Stichwort FROM Bücher, Buch_Stichwort WHERE Bücher.ISBN = Buch_Stichwort.ISBN 18

17 Konstanten- und Attributselektion Konstantenselektion Vergleich eines Attributs mit einer Konstante SELECT * FROM Artikel WHERE Preis < 100 Attribut-Selektion Vergleich zweier Attribut mit kompatiblen Wertebereichen SELECT * FROM Artikel WHERE Einkaufspreis = Verkaufspreis 19

18 Bereichsselektion Attribut BETWEEN konstante1 AND konstante2 Achtung: eigentlich von/bis [konstante1, konstante2] Abkürzung für Attribut konstante1 and attribut konstante2 Beispiel: SELECT * FROM Artikel WHERE Preis BETWEEN 100 and

19 Ungewissheitsselektion Attribut LIKE Spezialkonstante Spezialkonstante kann beinhalten % kein oder beliebig viele Zeichen _ genau ein Zeichen 21

20 Ungewissheitsselektion II Beispiel: Selektion von Büchern von Benjamin/Cummings SELECT * FROM Bücher WHERE Verlagsname LIKE `Benj%Cummings% Ist Abkürzung für SELECT * FROM Bücher WHERE Verlagsname = `Benjamin Cummings OR Verlagsname = `Benjamin/Cummings OR Verlagsname = `Benjamin and Cummings OR Verlagsname = `BenjFJSLKDJFCummingsJFDLKJ usw. 22

21 Quantifizierte Bedingungen Vergleich eines Attributs mit einer Menge ALL, ANY, SOME Bsp. ALL: SELECT Note FROM Prüft WHERE Matrikelnr = 1234 AND Note ALL (SELECT Note FROM Prüft WHERE Matrikelnr = 1234) Gibt schlechteste Note des Studenten mit der Matrikelnummer 1234 aus. 23

22 Quantifizierte Bedingungen II Bsp. ANY SELECT Name FROM Student WHERE Matrikelnr = ANY (SELECT Matrikelnr FROM Prüft) Selektiert Namen aller Studenten, die schon geprüft wurden. Unterschied ANY und SOME? Keiner, sind identisch. Grund: englische Grammatik. 24

23 Weitere Bedingungen NULL-Selektion Attribut IS NULL Wählt Tupel aus, die bei einem bestimmten Attribut Nullwerte enthalten Verknüpfungen der Bedingungen OR, AND, NOT 25

24 Relationales Modell: SQL-DDL SQL-DDL umfasst alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben.

25 SQL Datentypen char(n) varchar(n) numeric(p,s), integer blob oder raw für sehr große binäre Daten clob für sehr große String-Attribute date für Datumsangaben xml für XML-Dokumente... Achtung: Datentypen sind teilweise Hersteller-spezifisch!!! im DBMS-Manual nachlesen, wie der Datentyp definiert ist

26 SQL als Definitionssprache Externe Ebene create view alter view drop view Konzeptuelle Ebene create table alter table drop table

27 SQL als Definitionssprache II Konzeptuelle Ebene create domain alter domain drop domain Interne Ebene create index alter index drop index

28 CREATE TABLE Beispiele CREATE TABLE Bücher (ISBN char(10) NOT NULL, Titel varchar(200), Verlagsname varchar(30)) CREATE TABLE Bücher (ISBN char(10), Titel varchar(200), Verlagsname varchar(30), PRIMARY KEY (ISBN), FOREIGN KEY (Verlagsname) REFERENCES Verlage (Verlagsname))

29 Definition eines Wertebereichs CREATE DOMAIN Gebiete varchar(20) DEFAULT `Informatik CREATE TABLE Vorlesungen ( Bezeichnung VARCHAR(80) NOT NULL, SWS smallint, Semester smallint, Studiengang Gebiete) CREATE TABLE Mitarbeiter ( PANR integer NOT NULL, Fachbereich Gebiete, Gehalt decimal(10,2), Raum integer, Einstellung date)

30 CHECK Klausel CREATE TABLE Vorlesungen ( Bezeichnung varchar(80) PRIMARY KEY, SWS smallint CHECK(SWS>=0), Semester smallint CHECK (Semester BETWEEN 1 AND 9), Studiengang Gebiete)

31 ALTER TABLE ALTER TABLE relationenname ADD spaltenname wertebereich ALTER TABLE Lehrstühle ADD Budget decimal(8,2) Wirkung: Änderung des Relationenschemas im Data-Dictionary. Erweiterung der existierenden Tupel um ein Attribut, welches mit NULL besetzt wird. Angabe von default-werten und check-klausel möglich ADD Budget decimal(8,2) DEFAULT CHECK (Budget > Anzahl_Planstellen * 3000)

32 ALTER und DROP für Attribute ALTER spaltenname DATENTYP Änderung des Datentyps In Oracle: MODIFY spaltenname DATENTYP ALTER spaltenname SET DEFAULT wert Änderung der Defaultwerte DROP spaltenname {RESTRICT CASCADE} Erlaubt Löschen von Attributen, falls keine Sichten und Integritätsbedingungen mit Hilfe dieses Attributs definiert wurden (im Fall RESTRICT) Oder mit gleichzeitiger Löschung dieser Sichten und Integritätsbedingungen (im Fall CASCADE)

33 DROP TABLE DROP TABLE relationenname {RESTRICT CASCADE} Löscht Tabelle (auch das Schema, nicht nur den Inhalt) RESTRICT und CASCADE analog zu DROP bei Attributen

34 SQL Queries Teil 1

35 Schachtelung von Anfragen WHERE Klausel kann geschachtelt werden SFW Blöcke liefern im Allgemeinen mehrere Werte Vergleiche mit Wertemengen Standardvergleiche in Verbindung mit Quantoren ALL oder ANY Spezielle Prädikate für den Zugriff auf Mengen IN und EXISTS 37

36 Das IN-Prädikat und geschachtelte Anfragen Syntax Attribut IN (SFW-Block) Beispiel: SELECT Titel FROM Bücher WHERE ISBN IN (SELECT ISBN FROM EMPFIEHLT) Natürlicher Verbund mit nachfolgender Projektion 38

37 Wie erfolgt die Abarbeitung dieser SQL Abfrage? Ergebnis der inneren SELECT Anweisung hinter IN als Liste von Konstanten einsetzen Dann Auswertung der modifizierten Anfrage: SELECT Titel FROM Bücher WHERE ISBN IN (1111, 2222, 3333, 4444) Was liefert dies Abfrage also? Titel aller empfohlenen Bücher. Liegt hier eine Verzahnung vor? Nein, die innere Abfrage ist unabhängig von der äußeren Abfrage! 39

38 Wie kann man die Abfrage anders formulieren? SELECT Titel FROM Bücher, Empfiehlt WHERE Bücher.ISBN=Empfiehlt.ISBN Gibt es einen Unterschied zu vorher? Duplikate kommen vor, falls ein Buch mehrmals empfohlen wurde. Falls es keine Bücher mit verschiedener ISBN aber gleichem Titel gibt, liefert SELECT DISTINCT Titel... das gleiche Ergebnis. 40

39 Verzahnt geschachtelte Anfragen In der inneren Anfrage Relationen oder Tupelvariablen- Namen aus dem FROM-Teil der äußeren Anfrage verwenden: SELECT Nachname FROM Personen WHERE 1.0 IN (SELECT Note FROM Prüft WHERE PANr=Personen.PANr) Was liefert diese Anfrage? Nachnamen aller Prüfer, die schon einmal die Note 1.0 gegeben haben. 41

40 Abarbeitung 1. In der äußeren Anfrage das erste Personen-Tupel untersuchen und das Ergebnis in die innere Anfrage einsetzen. 2. Innere Anfrage SELECT Note FROM Prüft WHERE PANr=4711 auswerten. Liefert Werteliste (2.0, 3.0). 3. Ergebnis der inneren Anfrage in die äußere einsetzen: 1.0 IN (2.0, 3.0) ergibt FALSE, d.h. ersten Prüfer nicht berücksichtigen. 4. In der äußeren Anfrage das zweite Personen-Tupel untersuchen usw. 42

41 Wie kann man diese Anfrage anders formulieren? SELECT Nachname FROM Personen, Prüft WHERE Personen.PANr=Prüft.PANr AND Prüft.Note=1.0 Unterschied zu vorher? Nachname wird mehrmals ausgegeben, wenn ein Prof. mehrere 1er vergeben hat. 43

42 Noch eine andere Variante: Umdrehen der Abfragen SELECT Nachname FROM Personen WHERE PANr IN (SELECT PANr FROM Prüft WHERE Note = 1.0) Umdrehen ist generell möglich Vorteil? Nicht mehr verzahnt! 44

43 Was liefert diese SQL Abfrage? SELECT Matrikelnummer FROM Prüft WHERE PANr IN (SELECT PANr FROM Prüft WHERE Matrikelnummer = 123) Matrikelnummer aller Studenten, die zumindest einen Prüfer mit dem Studenten 123 gemeinsam hatten. Liegt hier eine Verzahnung vor? Nein, der Gültigkeitsbereich der inneren FROM Klausel bindet stärker. 45

44 Umformulierung mittels Verbund SELECT A.Matrikelnummer FROM Prüft A, Prüft B WHERE B.Matrikelnummer = 123 AND A.PANr = B.PANr 46

45 Was ergibt folgende Anfrage? SELECT X.PANr FROM Prüft X WHERE X.PANr IN (SELECT Y.PANr FROM Prüft Y WHERE Y.Matrikelnummer <> X.Matrikelnummer) Gibt PANr aller Prüfer aus, die mehr als einen Studenten geprüft haben. 47

46 Umformulierung mittels Verbund SELECT DISTINCT X.PANr FROM Prüft X, Prüft Y WHERE X.PANr = Y.PANr AND X.Matrikelnummer <> Y.Matrikelnummer 48

47 Das EXISTS-Prädikat Testet, ob das Ergebnis der inneren Anfrage nicht leer ist. SELECT ISBN FROM BUCH_EXEMPLARE WHERE EXISTS (SELECT * FROM Ausleihe WHERE Inventarnr = Buch_Exemplare.Inventarnr) Was liefert diese Abfrage? Die ISBN der ausgeliehenen Bücher. 49

48 Umformulierung mittels Verbund SELECT ISBN FROM Buch_Exemplare, Ausleihe WHERE Ausleihe.Inventarnr = Buch_Exemplare.Inventarnr 50

49 EXISTS: Simulation des Allquantors SELECT Lehrstuhlbezeichnung FROM Professoren WHERE NOT EXISTS (SELECT * FROM Liest WHERE Liest.PANr = Professoren.PANr AND NOT EXISTS (SELECT * FROM Prüft WHERE Prüft.PANr = Professoren.PANr AND Prüft.V_Bezeichnung=Liest.V_Bezeichnung)) Lehrstuhlbezeichnung von Professoren, die alle Vorlesungen geprüft haben, die sie lesen 51

50 Simulation des Allquantors: Mathematischer Hintergrund Doppelte Negation 52

51 Professoren, die alle VO geprüft haben, die sie lesen Professoren, die keine VO, die sie lesen, nicht geprüft haben Professoren, sodass keine von diesem gelesene VO existiert, für die von ihm keine Prüfung existiert. SELECT Lehrstuhlbezeichnung FROM Professoren WHERE NOT EXISTS (SELECT * FROM Liest WHERE Liest.PANr = Professoren.PANr AND NOT EXISTS (SELECT * FROM Prüft WHERE Prüft.PANr = Professoren.PANr AND Prüft.V_Bezeichnung=Liest.V_Bezeichnung)) 53

52 Bsp. zur Vereinigung: Alle Mitarbeiter und Studenten SELECT svnr FROM Mitarbeiter UNION SELECT svnr FROM Studenten Voraussetzungen Gleiche Attribut-Anzahl Attribute müssen positionsweise kompatibel sein Duplikate werden eliminiert UNION ALL verhindert dies 54

53 Bsp. zur Differenz: Alle Mitarbeiter, die keine Studenten sind. SELECT svnr FROM Mitarbeiter EXCEPT SELECT svnr FROM Studenten Achtung: MINUS in Oracle Wie kann man dies ohne EXCEPT simulieren? SELECT svnr FROM Mitarbeiter WHERE svnr NOT IN (SELECT svnr FROM Studenten) 55

54 Bsp. zur Schnittmenge: Alle Mitarbeiter, die auch Student sind SELECT svnr FROM Mitarbeiter INTERSECT SELECT svnr FROM Studenten Wie kann man dies ohne INTERSECT simulieren? SELECT svnr FROM Mitarbeiter WHERE svnr IN (SELECT svnr FROM Studenten) 56

55 Quantoren und Mengenvergleiche Syntax Attribut {all any some} (SELECT attribut FROM... WHERE...) ALL... Allquantor ANY, SOME... Existenzquantoren Beispiel SELECT Matrnr, Immatrikulationsdatum FROM Studenten IN WHERE Matrnr = ANY (SELECT Matrnr FROM Prüft) Ergebnis der Abfrage? Studenten, die bereits geprüft wurden 57

56 Was macht folgende Abfrage? SELECT Note FROM Prüft WHERE Matrnr = 12 AND Note >= ALL (SELECT Note FROM Prüft WHERE Matrnr=12) Ermittelt schlechteste Note des Studenten 12 Bestimmt Maximalwert ohne Verwendung der Aggregatfunktionen Umformulierung: SELECT MAX(Note) FROM Prüft WHERE Matrnr = 12 58

57 Geben Sie alle Bücher aus, an denen Vossen und Witt gemeinsam als Autoren beteiligt waren! Buch = {ISBN, Titel, Autor} Was gibt folgendes Statement: SELECT ISBN FROM Buch WHERE Autor= Vossen and Autor= Witt leere Ergebnismenge, da tupelweise ausgewertet wird und nicht gleichzeitig Vossen und Witt in einem Tupel stehen können. 59

58 Lösung mit Selbstverbund SELECT b1.isbn FROM Buch b1, Buch b2 WHERE b1.isbn=b2.isbn AND b1.autor= Vossen AND b2.autor= Witt Umformulierung mittels IN Prädikat? SELECT ISBN FROM Buch b1 WHERE Autor= Vossen AND Witt IN (SELECT Autor FROM Buch WHERE ISBN=b1.ISBN) 60

59 Weitere Varianten Weitere Umformulierung mittels IN Prädikat? SELECT ISBN FROM Buch WHERE Autor= Vossen AND ISBN IN (SELECT ISBN FROM Buch WHERE Autor= Witt ) Weitere Umformulierung mittels Gruppierung? SELECT ISBN FROM Buch WHERE Autor= Vossen OR Autor= Witt GROUP BY ISBN HAVING COUNT(*) = 2 61

60 SQL Queries Teil 2

61 Die Folien basieren auf: Datenbanken: Konzepte und Sprachen, Andreas Heuer und Gunter Saake, mitp-verlag, 2. Auflage, 2000 Datenbanken: Konzepte und Sprachen, Gunter Saake, Kai-Uwe Sattler, Andreas Heuer, mitp-verlag, 3. Auflage, 2008 Datenbanksysteme Eine Einführung, Alfons Kemper und Andre Eickler, Oldenbourg Verlag, München, 6. Auflage, SQL Performance Tuning, Peter Gulutzan and Trudy Pelzer, Addison-Wesley

62 Aggregatfunktionen COUNT SUM AVG Anzahl der Werte einer Spalte oder im Falle von COUNT(*) die Anzahl der Tupel einer Relation Summe der Werte einer Spalte Arithmetisches Mittel der Werte einer Spalte MAX bzw. MIN Größter bzw. kleinster Werte einer Spalte Vor Argument: DISTINCT oder ALL ( default) Nullwerte werden vor der Anwendung (außer bei COUNT(*)) eliminiert 64

63 Aggregatfunktionen: Beispiele SELECT SUM(Gehalt) FROM Mitarbeiter SELECT COUNT(*) FROM Mitarbeiter SELECT COUNT(DISTINCT Matrnr) FROM PRÜFT SELECT AVG(Note) FROM Prüft WHERE Vorlesung = `Datenbanken 65

64 GROUP BY und HAVING Was macht folgendes Statement? SELECT count(*) as Anzahl, PANr FROM Ausleihe GROUP BY PANr HAVING count(*)>1 Gibt die Anzahl der ausgeliehenen Bücher pro Person aus, vorausgesetzt diese Person hat mehr als 1 Buch ausgeborgt. 66

65 Gedankliche Abarbeitungsreihenfolge (5) SELECT... (1) FROM... (2) [WHERE...] (3) GROUP BY attributliste (4) HAVING bedingung (optional) 67

66 GROUP BY Gruppierung von R nach G: Für gleiche G werden die übrigen Attribute R-G in einer geschachtelten Relation gesammelt G = Gruppierungsattribute (d.h. jene, die mit der GROUP BY Klausel ausgewählt werden) R-G = Nicht-Gruppierungsattribute 68

67 HAVING Selektionsbedingung auf gruppierter Relation darf Bezug nehmen auf Gruppierungsattribute beliebige Aggregatfunktionen (über Nicht- Gruppierungsattributen*) * auch über Gruppierungsattribute möglich, macht aber i.a. keinen Sinn 69

68 Worauf darf man mit SELECT Bezug nehmen? Direkt auf die Gruppierungsattribute Aggregatfunktionen (auf die Nicht-Gruppierungsattribute*) *auch auf die Gruppierungsattribute möglich, macht aber i.a. keinen Sinn Warum? siehe Beispiel auf der nächsten Folie 70

69 71

70 Zählen von Wertemengen Was liefert folgende Abfrage: SELECT DISTINCT X.PANR FROM Prüft X WHERE X.PANr IN (SELECT Y.PANr FROM Prüft Y WHERE X.Matrnr <> Y.Matrnr) Alle Prüfer, die mehr als einen Studenten geprüft haben. 72

71 Alternative SELECT DISTINCT X.PANr FROM Prüft X, Prüft Y WHERE X.PANr = Y.PANr AND X.Matrnr <> Y.Matrnr 73

72 Weitere Alternativen Mit <>ANY SELECT DISTINCT X.PANR FROM Prüft X WHERE X.Matrikelnummer <> ANY (SELECT Y.Matrikelnummer FROM Prüft Y WHERE X.PANr = Y.PANr) Mit Gruppierung SELECT PANr FROM Prüft GROUP BY PANr HAVING COUNT (DISTINCT Matrikelnummer) > 1 74

73 ORDER BY Menge von Tupeln Liste von Tupeln Syntax ORDER BY attributliste Beispiel SELECT Matrnr, Note FROM Prüft WHERE Vorlesung = `DB 1 ORDER BY Note DESC Aufsteigend (ASC) oder absteigend (DESC) sortieren 75

74 Behandlung von Nullwerten Arithmetische Operationen: Ergebnis NULL, sobald Nullwert in die Berechnung eingeht NULL = NULL 4 * NULL = NULL Aggregatfunktionen: Nullwerte werden vor der Anwendung der Funktion entfernt, mit Ausnahme von COUNT(*). Fast alle Vergleiche mit NULL ergeben Wahrheitswert UNKNOWN (statt TRUE oder FALSE). 10 = NULL ergibt UNKNOWN Ausnahmen: NULL IS NULL TRUE, NULL IS NOT NULL FALSE WHERE Bedingung: es werden nur Tupel weitergereicht, für die die Bedingung TRUE ist. Wenn die Bedingung zu UNKNOWN auswertet, wird sie nicht ins Ergebnis aufgenommen. Boolesche Ausdrücke: dreiwertige Logik 76

75 Behandlung von Nullwerten II 77

76 Was ergibt folgende Abfrage? Studenten SVNR Vorname Nachname Semester 1 Max Muster NULL 2 Ilse Muster 4 3 Sebastian Muster 17 SELECT COUNT(*) FROM Studenten WHERE Semester < 13 OR Semester >=13 Ergibt 2, nicht 3 78

77 Änderungsoperationen INSERT/UPDATE/DELETE Einfügen/Ändern/Löschen von Tupeln in Relationen oder Sichten Eintupel-Operationen: Z.B. Erfassung einer Buchausleihe Mehrtupel-Operationen Z.B. Erhöhe das Gehalt aller Mitarbeiter um 3% 79

78 INSERT INSERT INTO Relation [(attr1,..., attrn)] VALUES (konstante_1,..., konstante_n) INSERT INTO Buch (Invnr, Titel) VALUES (1234, `DB 1 ) INSERT INTO Buch VALUES (1234, `DB1, 2000, mitp) INSERT INTO Relation [(attr1,..., attrn)] SQL-Anfrage INSERT INTO Kunde (VN, NN, Bestellungen) (SELECT VN, NN, 0 FROM Lieferant) 80

79 UPDATE Syntax UPDATE relation SET attr1=ausdr1,..., attrn=ausdrn [WHERE Bedingung] Beispiel UPDATE Angestellte SET Gehalt = Gehalt WHERE Gehalt <

80 DELETE DELETE FROM Relation WHERE Bedingung DELETE FROM Ausleihe WHERE Inventarnr = 1234 Löschen aller Tupel einer Relation: DELETE FROM Ausleihe 82

81 SQL Query Performance Tuning Es gibt eine Vielzahl von Möglichkeiten, Query Performance zu verbessern. Allerdings kann es sein, dass verschieden Varianten auf verschiedenen DBMS unterschiedliche Wirkung zeigen! Testen Sie Ihre Optimierungen immer! Das Test-Environment soll dabei möglichst ähnlich dem Production-Environment sein, d.h. gleiche Datenmenge, Last, etc. 83

82 Einige Beispiele für Tuning-Tipps JOINS: Verwenden Sie möglichst restriktive Ausdrücke, d.h. eliminieren Sie unnötige Tupel. Attribute, über die ein Join erfolgt, sollen möglichst den gleichen Datentyp haben. Ein Index auf einer der Tabellen ist oft sehr hilfreich. Indizes auf beide Tabellen bringen oft keine weitere Verbesserung mehr.... Buch-Empfehlung: SQL Performance Tuning, Peter Gulutzan and Trudy Pelzer, Addison-Wesley

83 Künstliche Schlüssel Häufig benötigt, wäre schwierig in Anwendungen oder von Anwendungen in DB zu realisieren. Sequenzgenerator in SQL: CREATE SEQUENCE SeqName AS Datentyp START WITH Startwert INCREMENT BY Inkrementwert MINVALUE Minimalwert MAXVALUE Maximalwert CYCLE Cycle: Beim Erreichen von MAXVALUE wird wieder mit MINVALUE begonnen 85

84 Identitätspalte Benutzt Sequenzgenerator, ohne diesen explizit anzulegen CREATE TABLE Weine ( WeinID INT GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE CYCLE), Name VARCHAR(20) NOT NULL, Farbe VARCHAR(10), Jahrgang INT, Weingut VARCHAR(20)) INSERT INTO Weine VALUES (null, Pinot Noir, Rot, 1999, Helena ) null wird durch den neuen Wert der Sequenz ersetzt Achtung: etwas andere Notation in ORACLE! 86

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005 Webbasierte Informationssysteme SS 2005 8. SQL-Vertiefung Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanksprache SQL Structured Query Language (SQL) - am IBM San Jose Research Laboratory entwickelt

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

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

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

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 in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2 SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R IV-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

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

4.1 SQL. Wichtige skalare Datentypen

4.1 SQL. Wichtige skalare Datentypen 4. Basierend auf dem Tupelkalkül und der relationalen Algebra wurden mit dem Aufkommen relationaler DBMS auch spezielle Sprachen entwickelt. SQL ist die derzeit am weitesten verbreitete Anfragesprache

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Kommunikation und Datenhaltung Relationale Datenbanksprachen (SQL Structured Query Language) Überblick über den Datenhaltungsteil Motivation und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

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

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik

Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik von Wolfgang König, Heinrich Rommelfanger, Dietrich Ohse, Oliver Wendt, Markus Hofmann, Michael Schwind, Klaus Schäfer, Helmut Kuhnle, Andreas

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

7.5.3. CREATE TABLE-Syntax

7.5.3. CREATE TABLE-Syntax 7.5.3. CREATE TABLE-Syntax 7.5.3.1. Stille Spaltentyp-Änderungen CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabelle [(create_definition,...)] [tabellen_optionen] [select_statement] create_definition: spalten_name

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Themenblock: Erstellung eines Cube

Themenblock: Erstellung eines Cube Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen

Mehr

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Sichten II logische Datenunabhängigkeit (Sichten stabil bei Änderungen der Datenbankstruktur) Beschränkung von Zugriffen (Datenschutz) Definition

Mehr

Einführung in SQL mit Oracle

Einführung in SQL mit Oracle Seminar Einführung in SQL mit Oracle von Prof. Dr. Rainer Schwenkert Hochschule München c Vervielfältigung nur mit Zustimmung des Autors Themenbereiche SQL-Historie Wichtige DDL- und DML-Anweisungen Der

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

Datenbankanfragen und -operationen mittels SQL

Datenbankanfragen und -operationen mittels SQL Datenbankanfragen und -operationen mittels SQL Über den verschiedenen Tabellen einer Datenbank werden Operationen ausgeführt, die immer wieder eine Tabelle als Ergebnis zurückgeben. Mathematisch modelliert

Mehr

Informatik Datenbanken SQL-Einführung

Informatik Datenbanken SQL-Einführung Informatik Datenbanken SQL-Einführung Gierhardt Inhaltsverzeichnis 1 Vorbemerkungen 1 2 Auswahl-Abfragen mit SELECT 2 2.1 Selektion...................................... 2 2.2 Projektion.....................................

Mehr

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 5. SQL: Erstellen von Tabellen Erzeugen und Löschen von Tabellen Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 106 SQL Structured Query Language Historie: Anfänge ca. 1974 als SEQUEL

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

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

Mehr

StructuredQueryLanguage(SQL)

StructuredQueryLanguage(SQL) StructuredQueryLanguage(SQL) Themen: ErstelenundÄndernvonTabelen AbfragenvonDaten Einfügen,ÄndernundLöschenvonDaten Erstelennutzerde niertersichten(views) 2012Claßen,Kempa,Morcinek 1/23 SQL Historie System

Mehr

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services 531 27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services Im zweiten Teil dieses Buches haben wir die Eigenschaften der Transact-SQL- Sprache in Bezug auf die Bearbeitung von operativen Daten gezeigt.

Mehr

Grundlagen zur Verwendung von Datenbankmanagementsystemen

Grundlagen zur Verwendung von Datenbankmanagementsystemen Grundlagen zur Verwendung von Datenbankmanagementsystemen Vorlesung im Wintersemester 2007/08 (Abschnitt SQL - Structured Query Language ) Prof. Dr. Andreas Schmietendorf 1 Structured Query Language Kriterien

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

zwei verschiedene Darstellungsformen derselben Abfrage.

zwei verschiedene Darstellungsformen derselben Abfrage. SQL Sprache Die strukturierte Abfragesprache SQL (englisch: Structured Query Language) bildet einen Standard zur Formulierung von Abfragen. Das SQL und das Abfragefenster bilden zwei verschiedene Darstellungsformen

Mehr

Kapitel 7 Datenbank-Tuning

Kapitel 7 Datenbank-Tuning Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

Mehr

Allgemeines. veröffentlicht unter http://www.profv.de/uni/ lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

Allgemeines. veröffentlicht unter http://www.profv.de/uni/ lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005 Volker Grabsch 14. Januar 2008 Allgemeines veröffentlicht unter http://www.profv.de/uni/ lizensiert unter Creative Commons BY-SA 3.0 Quelle Dieser Vortrag basiert auf dem Paper XQuery Implementation in

Mehr

Kapitel DB:VI. VI. Die relationale Datenbanksprache SQL

Kapitel DB:VI. VI. Die relationale Datenbanksprache SQL Kapitel DB:VI VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus DB:VI-1 SQL

Mehr

Datendefinition und Datenmanipulation in SQL

Datendefinition und Datenmanipulation in SQL SQL Datendefinition und Datenmanipulation in SQL 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 SQL: Geschichte SQL (Structured Query Language) ist heute die bei weitestem populärste und verbreitetste

Mehr

Wirtschaftsinformatik. SQL Abfragen und QBE. Unterrichtsskript. Version: 2.0

Wirtschaftsinformatik. SQL Abfragen und QBE. Unterrichtsskript. Version: 2.0 Wirtschaftsinformatik SQL Abfragen und QBE Unterrichtsskript Version: 2.0 Autor: Jonas Lanz Datum: 02.06.2006 FHNW Hochschule für Wirtschaft 2 / 29 Inhaltsverzeichnis 1. Einführung 3 1.1 Relationale Operationen

Mehr

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln Structured Query Language, SQL vom American National Standards Institute, ANSI, genormte Datenbanksprache. enthält eine Teilsprache, die eine relationale Anfragesprache ist, Mischung von tupelorientierten

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Die relationale Anfragesprache SQL Verantwortliche Personen: Adrian Moser, Anca Dobre, Michael Schrattner, Susanne Bleisch

Die relationale Anfragesprache SQL Verantwortliche Personen: Adrian Moser, Anca Dobre, Michael Schrattner, Susanne Bleisch Geographic Information Technology Training Alliance (GITTA) presents: Die relationale Anfragesprache SQL Verantwortliche Personen: Adrian Moser, Anca Dobre, Michael Schrattner, Susanne Bleisch Inhaltsverzeichnis

Mehr

Kapitel 7 Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München

Kapitel 7 Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

6.2 Datenbanken SQL - Einführung

6.2 Datenbanken SQL - Einführung Fakultät Informatik Institut Systemarchitektur Professur Rechnernetze WS 2012 LV Informatik-I für Verkehrsingenieure 6.2 Datenbanken SQL - Einführung Dr. rer.nat. D. Gütter Mail: WWW: Dietbert.Guetter@tu-dresden.de

Mehr

Structured Query Language (SQL) 1

Structured Query Language (SQL) 1 Structured Query Language (SQL) 1 1. Grundlagen und Hilfsmittel Structured Query Language, kurz SQL, wurde in den 70er Jahren bei IBM entwickelt, als eine Arbeitsgruppe die erste relationale Datenbank

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Stichwortverzeichnis. Iron Werther. Business Intelligence

Stichwortverzeichnis. Iron Werther. Business Intelligence Stichwortverzeichnis Iron Werther Business Intelligence Komplexe SQL-Abfragen am Beispiel eines Online-Shops. Inkl. Testdatenbank mit über zwei Millionen Datensätzen ISBN (Buch): 978-3-446-43580-3 ISBN

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL als Datendefinitionssprache (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL als Datendefinitionssprache M. Lange, S. Weise Folie #7-1 SQL als Datendefinitionssprache

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Software-Engineering Einführung

Software-Engineering Einführung Software-Engineering Einführung 7. Übung (04.12.2014) Dr. Gergely Varró, gergely.varro@es.tu-darmstadt.de Erhan Leblebici, erhan.leblebici@es.tu-darmstadt.de Tel.+49 6151 16 4388 ES Real-Time Systems Lab

Mehr

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

Objektrelationale, erweiterbare Datenbanken WS 04/05

Objektrelationale, erweiterbare Datenbanken WS 04/05 Eidgenössische Technische Hochschule Zürich Swiss Federal Institute of Technology Zurich Institut für Informationssysteme Dr.C.Türker Objektrelationale, erweiterbare Datenbanken WS 0405 Übung 8 Aufgabe

Mehr

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

Objektorientierte Datenbanken

Objektorientierte Datenbanken OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz

Mehr

Agenda. Themenblock: Data Warehousing (I) Referenzarchitektur. Eigenschaften eines Data Warehouse. Einführung Data Warehouse Data Access mit SQL

Agenda. Themenblock: Data Warehousing (I) Referenzarchitektur. Eigenschaften eines Data Warehouse. Einführung Data Warehouse Data Access mit SQL Themenblock: Data Warehousing (I) Praktikum: Data Warehousing und Data Mining 2 Eigenschaften eines Data Warehouse Referenzarchitektur Integrierte Sicht auf beliebige Daten aus verschieden Datenbanken

Mehr

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P Index- und Zugriffsstrukturen für Data Warehousing Holger Brämer, 05IND-P Index- und Zugriffstrukturen für Data Warehousing Materialisierte Sichten Bitmap-Indexe Verbundindexe Materialisierte Sichten gehören

Mehr

Beispiel 1: Filmdatenbank

Beispiel 1: Filmdatenbank Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

Datenbankadministration

Datenbankadministration Datenbankadministration 2. SQL-Grundlagen AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 SQL SQL (Structured Query

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

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

Datenbanken: SQL. SQL: Structured Query Language. Anfragesprache für relationale Datenbanksysteme

Datenbanken: SQL. SQL: Structured Query Language. Anfragesprache für relationale Datenbanksysteme SQL: Structured Query Language Anfragesprache für relationale Datenbanksysteme Zur Erinnerung: Relationale Datenbanksysteme speichern die Daten in Tabellen (Relationen): Zeilen: einzelne Objekte der Realität

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

Mini-Workshop Relationale Datenbanken und SQL

Mini-Workshop Relationale Datenbanken und SQL SFB441 Linguistische Datenstrukturen Mini-Workshop Relationale Datenbanken und SQL Dirk Wiebel 14.07.2003 1.1 Der Begriff Datenbank "Eine Datenbank ist eine Sammlung von nicht-redundanten Daten, die von

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

SQL Tipps und Tricks Part III 08.02.2012

SQL Tipps und Tricks Part III 08.02.2012 1/40 PHP-User-Group Stuttgart 08.02.2012 Datenbank- und SQL-Performance Erkennen warum eine SQL-Abfrage langsam ist SQL Tipps und Tricks aus der Praxis 2/40 Wer Wer bin bin ich ich? Thomas Wiedmann n+1

Mehr

Advanced SQL verstehen und einsetzen 10.06.2009. SQL-Implementierungen kennen und bewerten

Advanced SQL verstehen und einsetzen 10.06.2009. SQL-Implementierungen kennen und bewerten 1/47 PHP-User-Group Stuttgart 10.06.2009 Aktuelle Datenbank-Features verstehen und nutzen SQL-Power aktivieren anstatt Arrays sortieren Valide Daten garantieren und performante DB-Zugriffe sicherstellen

Mehr

Kapitel 3 Abfragen mit SQL Seite 1. Abbildung 3.1: Die Datenbank EDV_Kurse

Kapitel 3 Abfragen mit SQL Seite 1. Abbildung 3.1: Die Datenbank EDV_Kurse Kapitel 3 Abfragen mit SQL Seite 1 3 Abfragen mit SQL Um bestimmte Datensätze aus der Datenbank zu gewinnen, verwendest du die»programmiersprache«sql (Structured Query Language). Sie ist derzeit die am

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

Erste Schritte, um selber ConfigMgr Reports zu erstellen

Erste Schritte, um selber ConfigMgr Reports zu erstellen Thomas Kurth CONSULTANT/ MCSE Netree AG thomas.kurth@netree.ch netecm.ch/blog @ ThomasKurth_CH Erste Schritte, um selber ConfigMgr Reports zu erstellen Configuration Manager Ziel Jeder soll nach dieser

Mehr

Teil 12: Sichten (Views, Virtuelle Tabellen)

Teil 12: Sichten (Views, Virtuelle Tabellen) 12. Sichten (Views) 12-1 Teil 12: Sichten (Views, Virtuelle Tabellen) Literatur: Elmasri/Navathe:Fundamentals of Database Systems, 3rd Edition, 1999. Section. 8.5, Views (Virtual Tables) in SQL Silberschatz/Korth/Sudarshan:

Mehr

Sicherheitsaspekte. Szenarien. Angriffsarten. Discretionary Access Control. Sicherheit im DBMS. Identifikation und Authentisierung

Sicherheitsaspekte. Szenarien. Angriffsarten. Discretionary Access Control. Sicherheit im DBMS. Identifikation und Authentisierung Sicherheitsaspekte Sicherheit im DBMS Identifikation und Authentisierun Autorisierun und Zuriffskontrolle Auditin Szenarien Literaturdatenbank in der Hochschule: erines Sicherheitsbedürfnis ERP-Datenbank

Mehr

ORACLE und IBM DB2 Datentypen 14.12.2011

ORACLE und IBM DB2 Datentypen 14.12.2011 1/27 ORACLE und IBM DB2 Datentypen PHP-User-Group Stuttgart 14.12.2011 ORACLE Datentypen ein Überblick IBM DB2 Datentypen ein Überblick 2/27 ORACLE und IBM DB2 Datentypen Wer Wer bin bin ich ich?? Thomas

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung

Mehr

Datenbanksysteme 1. Organisation. Prof. Stefan F. Keller. Ausgabe 2005. Copyright 2005 HSR SS 2005

Datenbanksysteme 1. Organisation. Prof. Stefan F. Keller. Ausgabe 2005. Copyright 2005 HSR SS 2005 Datenbanksysteme 1 Organisation Ausgabe 2005 Prof. Stefan F. Keller SS 2005 Copyright 2005 HSR Inhalt Einführung Relationales Datenmodell, Datenmodellierung DB-Entwurf, Normalisierung SQL-Data Definition

Mehr

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENBANKSYSTEME VU 184.686 7. 5. 2014 Kennnr. Matrikelnr.

Mehr

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VU Datenbanksysteme Wolfgang Fischl Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken BNF Prof. Dr. Bernhard Schiefer 7-1 Syntaxbeschreibung Formalismus zur Beschreibung der Syntax von Sprachen erforderlich. Im Programmiersprachenbereich üblicher Formalismus:

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung 3 Indizes 3.1 Indexarchitektur von SQL Server Die folgende Abbildung zeigt die Organisationsstruktur einer Tabelle. Eine Tabelle befindet sich in einer oder mehreren Partitionen, und jede Partition enthält

Mehr

Übungsblatt 8- Lösungsvorschlag

Übungsblatt 8- Lösungsvorschlag Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)

Mehr

Crashkurs: Relationale Datenbanksysteme

Crashkurs: Relationale Datenbanksysteme Crashkurs: Relationale Datenbanksysteme 3.0.2004 Felix Naumann Überblick Vormittag Motivation Warum sind RDBMS und XML Systeme für die Informationsintegration wichtig? RDBMS Relational Database Management

Mehr