4. Datenbanken - Prinzipien und Nutzung relationaler Datenbanken

Größe: px
Ab Seite anzeigen:

Download "4. Datenbanken - Prinzipien und Nutzung relationaler Datenbanken"

Transkript

1 4. Datenbanken - Prinzipien und Nutzung relationaler Datenbanken Inhalt: Datenbanken: Allgemeines Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung und Normalformen einer Datenbank Structured Query Language SQL Peter Sobe 1

2 Datenbanken: Allgemeines Datenbanken: Datenformat, basierend auf Tabellen mit gleichartig aufgebauten Datensätzen Beziehungen zwischen Tabellen durch geeigneten Datenbankentwurf Zugriff entweder durch Satzzugriff auf einzelne Datensätze (Zeilen) einer Tabelle oder Zugriff durch eine Abfragesprache (SQL) Alle zu einer Datenbank gehörenden Tabellen werden in einer Datei gespeichert, oder als Image auf einem Speichermedium, ein direkter Zugriff über Datei-Operationen ist aber nicht vorgesehen. Die regelmäßige Struktur der Daten wird in der Datenbank gespeichert und zur Steuerung der Zugriffe ausgenutzt. Peter Sobe 2

3 Datenbanken: Allgemeines Datenbanken (Fortsetzung): Ein Datenbank-Management-System dient zur Laufzeit dem Zugriff auf die Datenbank. Das sind i.d.r. Serverprozesse, die im Hintergrund ausgeführt werden. Dauerhafte Speicherung, d.h. Daten bleiben nach Beendigung der Anwendung und auch nach Abschalten des Systems erhalten (wie Dateien) Konkurrierende Zugriffe erlaubt, das Verhalten bei Konflikten wird durch Transaktionen geregelt Peter Sobe 3

4 Begriffe für Datenbanken Datenbank DB-Server Hardware Datenbasis organisatorische Festlegung zum Datenbankbetrieb (Datenbank- Administrator) Datenbanksoftware Metadaten (Data Dictionary), organisatorische Da-ten (Schlüssel, Indexdateien,...), bezogen auf internes Schema reale Daten bezogen auf externes Schema Installation (DBMS) SQL daten-modellbezogen Nutzerverwaltung Datensicherheit Datenbankbetriebssystem Datenbanksprache Nutzerprogramme Entwicklungsumgebung Peter Sobe 4

5 Tabellen, Attribute und Datentyp Tabellenname Attribut Wetter Ortsnr Ortsname Temperatur Luftdruck 1 Dresden Leipzig Berlin Tupel, auch Datensatz oder Zeile Wert mit einem speziellen Datentyp, der je Attribut definiert ist Peter Sobe 5

6 Tabellen, Attribute und Datentyp Eine Datenbank besteht oft aus mehreren einzelnen Tabellen, die Referenzen aufeinander beinhalten können. Orte Ortsnr Name geogr. Breite Geogr. Länge Höhe 1 Dresden 51,05 13, Leipzig 51,34 12, Berlin 52,52 13,41 34 Beispiel: Tabelle Orte und Tabelle Wetter Bezug über gleiche Ortsnr. Wetter Datum Zeit Temperatur Ortsnr Luftdruck :01: :04: :00: Peter Sobe 6

7 Tabellen als so genannte Relation Die mathematische Modellierung von Datenbanken und Zugriffsoperationen kann über das Relationale Datenmodell (Codd 1970) erfolgen. Es basiert auf dem mathematischen Relationenbegriff. Durch die Einfachheit (Tabellensicht) und klare mathematische Basis konnte sich das relationale Modell in der Entwicklung der Datenbanktechnologie seit 1970 durchsetzen. Peter Sobe 7

8 Definition der mathematischen Relation (1) (mathematische) Definition der Relation: Gegeben seien die nichtleeren Mengen W 1, W 2,... W n mit W 1 xw 2 x...xw n = {(w 1,w 2,...,w n ) w i є W i (i=1,2,...,n)} Dann ist jede nichtleere Teilmenge R W 1 xw 2 x...xw n eine n-stellige Relation über W 1, W 2,..., W n. Die W i müssen nicht alle paarweise verschieden sein. Ein Tupel (w 1,w 2,...,w n ) = (1; ; 17:01:24; -5; 1020). könnte z.b. zu R gehören. Als Trennzeichen zwischen den Tupelwerten wurde das Semikolon verwendet, da das Komma in Dezimalzahlen vorkommen kann. Für das obige Beispiel wären die Mengen W i konkret festgelegt: W 1 ganze Zahl (int), W 2 Datum, W 3 Zeit, W 4 und W 5 Fließkommazahl. Peter Sobe 8

9 Wertebereiche, Eigenschaften und Relationenformat (1) Wir deuten jetzt die Mengen W i als Wertebereiche und die w i є W i als Werte und verbinden die W i, genauer das Kreuzprodukt W 1 xw 2 x...xw n, mit einer Interpretation I E={E 1,E 2,...,E n } = I(W 1 xw 2 x...xw n ) für i=1,2,...,n Diese E i werden als Eigenschaften (Attribute) von Entitäten gedeutet. Für das obige Beispiel wären die Eigenschaften E i wie folgt gedeutet: E 1 Datum, E 2 Uhrzeit, E 3 Ortsnr(Identifikation des Orts), E 4 Temperatur, E 5 Luftdruck. E nennt man Relationenformat. Mit diesem Format würde das Tupel ( ; 17:01:24; 1; -5; 1020) die Entität einer Wettermessung an einem bestimmten Ort und zu einer bestimmten Zeit eindeutig charakterisieren. Peter Sobe 9

10 Wertebereiche, Eigenschaften und Relationenformat (2) In Datenbanken ist es möglich, dass ein Wert fehlt, d.h. undefiniert ist. Dieser Fall wird durch den (Sonder-)Wert NULL angezeigt. Definition: Eine Relation R= R(E 1,E 2,...,E n ) ist eine Menge von Tupeln, wobei R der Name der Relation, E={E 1,E 2,...,E n } das Relationenformat und die E i (i=1,2,...,n) die Eigenschaften sind, deren Werte w i aus den zugeordneten Wertebereichen W i stammen müssen. Die E i, die zu einer Relation gehören, müssen paarweise verschieden sein. Ist r ein Tupel der Relation, bezeichnet w i = r.e i den Wert der i-ten Eigenschaft des Tupels r є R (W 1 xw 2 x...xw n ). n heißt Grad der Relation. Eine Relation ist eine Tabelle, die besondere Eigenschaften aufweist Peter Sobe 10

11 Charakteristische Eigenschaften der Relation Eine Relation hat folgende charakteristische Eigenschaften: 1. R ist eine Menge. Damit gibt keine paarweise identischen Tupel. R hat deshalb einen Primärschlüssel, der jedes Tupel eindeutig identifiziert. 2. R ist eine Menge. Deshalb ist die Reihenfolge der Tupel in R ohne Belang. 3. Die Reihenfolge der Eigenschaften E i in R ist ohne Belang. 4. Die Eigenschaftswerte w i = r.e i mit r є R müssen einfach sein, d.h. dürfen nicht mengenwertig oder nicht strukturiert sein. w i = NULL ist aber möglich. Peter Sobe 11

12 Primärschlüssel PS : Ein Teil der Eigenschaften stellt sich oft als identifizierend für die Tupel heraus. PS E Primärschlüssel einer Relation PS ist die einzelne identifizierende Eigenschaft bzw. eine Eigenschaftskombination, d.h. jeder Wert des PS verweist eindeutig auf ein Tupel. PS sollten minimal sein, d.h. nur die eine oder so wenige Eigenschaften enthalten, damit (gerade so) eine eindeutige Identifaktion der Tupel entsteht. Oft werden derartige Schlüssel schon durch organisatorische Maßnahmen unabhängig von der Datenbank eingeführt, zum Beispiel Matrikelnummern, Kundennummern, Artikelnummern, Zugnummern. Peter Sobe 12

13 Primärschlüssel einer Relation Studenten Matrikelnr. Vorname Name Gebdat Wohnort Felix Fritsche Freiberg Lise Müller München Die Matrikelnummer ist hier der Primärschlüssel. Es gibt jede Matrikelnummer nur ein einziges mal im Diskursbereich. Matrikelnummer und Geburtsdatum wäre auch ein guter Schlüssel, ist aber nicht minimal, da Matrikelnummer auch ohne Geburtsdatum eindeutig identifiziert. Peter Sobe 13

14 Datenmodellierung und Normalformen einer Datenbank(1) In der Regel werden Diskursbereiche durch mehrere Relationen (Tabellen) abgebildet. Ziele: Vermeiden von Redundanz in Relationen Vermeiden von Inkonsistenzen Effizienzsteigerung, wenn nur wirklich benötigte Daten gelesen werden, bzw. nur die Informationen in wenigen Tupeln aktualisiert werden müssen. Beispiel: eine Datenbank über Verkäufe, eine Tabelle Gesamt Gesamt Verkaufs-Nr. Produkt Einzelpreis Anzahl Käufer Käufer-Adresse Peter Sobe 14

15 Gesamt Datenmodellierung (2) Verk.-Nr. Produkt Einzelpreis Anzahl Käufer Käufer-Adresse 1 Tomate Heidi Wiesenhain, Am Waldrand 1 2 Apfelsaft Heidi Wiesenhain, Am Waldrand 1 3 Katzenfutter Kurt Bachhagen, Hauptstr Apfelsaft Kurt Bachhagen, Hauptstr Gurke Peter Feldstadt Am Markt 5 6 Tomate Peter Feldstadt Am Markt 5 7 Bier Kurt Bachhagen, Hauptstr. 23 Peter Sobe Redundanzen und Inkonsistenz 15

16 Datenmodellierung (3) Verkaeufe Verk. - Nr. Produkt- ID Anzahl 1 T A K A 3 20 Käufer-ID Produkte Produkt-ID Name Preis T Tomate 0.20 A Apfelsaft 1.40 K Katzenfutter 2.30 G Gurke 0.55 B Bier G T B 4 20 Redundanz ist jetzt beseitigt Inkonsistenzen können jetzt nicht mehr auftreten Peter Sobe Kunden Käufer-ID Name Adresse 17 Peter Feldstadt Am Markt 5 20 Kurt Bachhagen, Hauptstr Heidi Wiesenhain, Am Waldrand 1 16

17 Normalformen (1) Ziele: Vermeiden von Redundanz in Relationen bei ungünstiger Struktur der Tabellen würde gleiche Information u.u. mehrfach gespeichert. Eine Strukturierung entsprechend der dritten Normalform verhindert das. Vermeiden von Anomalien bei ungünstigem Entwurf können Informationen u.u. ungewollt verloren gehen. Peter Sobe 17

18 Normalformen (2) Verk.-Nr. Produkt Einzelpreis Anzahl Käufer Käufer-Adresse Anomalien: Einfügeanomalie Neue Sachverhalte können nicht eingefügt werden. Im Beispiel oben kann keine neues Produkt mit einem Preis eingefügt werden, ohne einen Kaufvorgang zu beschreiben. Löschanomalie Das Löschen von Kaufvorgängen bedingt u.u. den Verlust von Produktinformationen und Käuferdaten. Änderungsanomalie Das Abändern eines Sachverhalts verlang oft das Ändern vieler Datensätze (bei Redundanz von z.b. Käufer-Adressen) Peter Sobe 18

19 Zweck der Normalformen Ein Datenbankentwurf nach dem Entity-Relationship-Modell (ER- Modell) bringt die Tabellen automatisch in eine redundanzfreie und anomaliefreie Struktur. ER- Modell regelbasierter Entwurf (nicht behandelt) Redundanzfreie und anomaliefreie Datenbank Existierender Datenbestand Umstrukturierter Datenbestand Herstellung der Normalformen Für existierende Datenbanken können Probleme behoben werden, indem das Vorhandensein der Normalformen geprüft wird und diese durch Umstrukturierung der Tabellenstruktur hergestellt werden. Peter Sobe 19

20 Erste Normalform (1) Eine Tabelle ist in der ersten Normalform (1NF), falls die Wertebereiche der Merkmale atomar sind. 1NF verlangt, dass jedes Merkmal Werte aus einem unstrukturierten Wertebereich aufnimmt. Damit dürfen keine Mengen, Aufzählungstypen oder Wiederholungsgruppen in den einzelnen Merkmalen vorkommen. Beispiel für eine nicht erfüllte 1NF: Matrnr Name Vorname Studiengänge 11 Schmidt Robert {Mathemetik, Physik} 47 Schulze Klaus {Sport, Erziehungswissenschaften} 78 Peters Karoline {Informatik} Peter Sobe 20

21 Erste Normalform (2) Beispiel mit atomarem Wertebereich für Studiengang Matrnr Name Vorname Studiengang 11 Schmidt Robert Mathematik 11 Schmidt Robert Physik 47 Schulze Klaus Sport 47 Schulze Klaus Erziehungswissenschaften 78 Peters Karoline Informatik Als Schlüssel müsste man hier Matrnr und Studiengang benutzen, z.b. {47, Sport}. Peter Sobe 21

22 Zweite Normalform (1) Eine Tabelle ist in der zweiten Normalform (2NF), wenn sie in 1NF ist und wenn jedes Nichtschlüsselmerkmal von jedem Schlüssel voll funktional abhängig ist. Voll funktional abhängig bezieht sich auf zusammengesetzte Schlüssel (S1,S2) von denen alle Nichtschlüsselmerkmale abhängig sind: (S1,S2) -> N Sie dürfen dabei aber nicht funktional abhängig von einem Teilschlüssel sein, z.b. S1->N Im Beispiel sind Name und Vorname Nichtschlüsselmerkmale, der Schlüssel setzt sich aus Matrnr und Studiengang zusammen. (Matrnr, Studiengang) -> Name aber auch Matrnr -> Name damit keine 2NF Peter Sobe 22

23 Zweite Normalform (2) Herstellung der zweiten Normalform (2NF): Tabellenteilung Alle Merkmale, die von einem Teilschlüssel abhängig sind werden in eine eigene Tabelle ausgegliedert. Matrnr Name Vorname 11 Schmidt Robert 47 Schulze Klaus 78 Peters Karoline Matrnr Studiengang 11 Mathematik 11 Physik 47 Sport 47 Erziehungswissenschaften 78 Informatik Peter Sobe 23

24 Dritte Normalform (1) Eine Tabelle ist in der dritten Normalform (3NF), wenn sie in 2NF ist und kein Nichtschlüsselmerkmal von irgendeinem Schlüssel transitiv abhängig ist Ein Beispiel für nicht erfüllte 3NF: Matrnr Wohn- Wohnort PLZ Dresden Dresden Berlin Berlin Dresden Peter Sobe Matr nr Wohn PLZ Wohnort tritt redundant auf. Wohn ort 24

25 Dritte Normalform (2) Überführung in dritte Normalform (3NF), indem ein transitiv abhängiges Merkmal in eine neue Tabelle ausgegliedert wird. Das Merkmal von dem die letzte Stufe der Abhängigkeit ausgegangen ist, wird als Fremdschlüssel in die neue Tabelle aufgenommen. Matrnr Wohn- PLZ PLZ Ort Dresden Berlin Dresden Peter Sobe 25

26 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 durch Relationenalgebra, mit Operationen wie z.b.: Projektion Selektion Kreuzprodukt Join (in verschiedenen Varianten) Peter Sobe 26

27 SQL SQL: Structured Query Language Datenbankspezifische Manipulations- und Abfragesprache Eine deklarative Sprache Man beschreibt das Ziel der Operation, Unterschied gegenüber imperativen Programmiersprachen, wie sie für Matlab-Skripte und Funktionen verwendet wurden In den siebziger Jahren entwickelt, inzwischen ISO-Norm Weit verbreitet: MS-ACCESS, MS-SQL-Server, mysql u.v.a.m. Abfrage-Grundform: SELECT FROM WHERE ; Peter Sobe 27

28 SQL SQL-Operationen: Projektion und Selektion SELECT merkmale FROM tabelle [WHERE bedingung] Projektion Auswahl spezieller Spalten SELECT Name, Preis FROM Produkte Produkte Produkt- Name Preis ID T Tomate 0.20 A Apfelsaft 1.40 K Katzenfutter 2.30 Selektion Auswahl von Zeilen nach Bedingungen (Prädikate) SELECT * FROM Produkte WHERE Preis>1.00 G Gurke 0.55 B Bier 0.78 Produkte Produkt- ID Name Preis T Tomate 0.20 A Apfelsaft 1.40 K Katzenfutter 2.30 G Gurke 0.55 B Bier 0.78 Peter Sobe 28

29 SQL Selektion Für eine Selektion wird das Prädikat P in SQL in der WHERE- Klausel kodiert. Beispielhaft sollen hier einige Möglichkeiten für die Nutzung von Prädikaten angegeben werden. Vergleichsausdrücke: WHERE Gehalt>=2000 AND Geschlecht= m WHERE YEAR(Geburtstag)<1980 Standardprädikate: WHERE Name LIKE %nn% WHERE Ort IN ( Bautzen, Dresden ) WHERE Telefon IS NULL Peter Sobe 29

30 Operationen auf Relationen Kreuzprodukt In der Datenbanktechnologie wird das Kreuzprodukt selbst nur selten benutzt. Es bildet aber das Gerüst für die sehr wichtigen und häufig angewendeten Join-Operationen. Kreuzprodukt: Es seien R eine Relation mit dem Relationenformat ER und S eine Relation mit dem Relationenformat ES. Dann heißt R * S = { (er 1,er 2,...,er n,es 1,es 2,...,es m ) (er 1,er 2,...,er n ) є R UND (es 1,es 2,...,es m ) є R UND E = ER U ES} der Cross Join von R und S. E ist das Relationenformat von R * S Das Kreuzprodukt (Cross Join) liefert als Resultat alle zusammengesetzten Tupel, die sich aus allen Kombinationen der Tupel der beiden Relationen ergeben. Beispiel: SELECT * FROM Verkaeufe, Produkte; Peter Sobe 30

31 Inner Join - Equi-Join (Vereinigung über Gleichheit ausgewählter Eigenschaften): Es seien R eine Relation mit dem Relationenformat ER und S eine Relation mit dem Relationenformat ES. Es existiert eine Eigenschaft ER k von R und eine Eigenschaft ES j von S deren Wertebereiche gleich sind, W k = W j. Dann heißt R S = { q q є R * S Λ q.er k = q.es j Λ E = ER U ES} B der Join von R u. S. Operationen auf Relationen JOIN Equi-Join E ist das Relationenformat von R S und B ist die Join-Bedingung q.er k = q.es j. B Der Equi-Join liefert als Resultat nur diejenigen zusammengesetzten Tupel q aus R * S, die gleiche Werte in den bezogenen Eigenschaften ER k und ES j haben, d.h. die die Join-Bedingung B erfüllen. Peter Sobe 31

32 Inner Join - Operationen auf Relationen JOIN Equi-Join Equi-Join (Vereinigung über Gleichheit ausgewählter Eigenschaften) SQL: Select * FROM Verkaeufe, Produkte WHERE Verkaeufe.ProduktID = Produkte.ProduktID; oder Select * FROM Verkaeufe INNER JOIN Produkte ON Verkaeufe.ProduktID = Produkte.ProduktID; Peter Sobe 32

33 Inter- und Intrarelationales JOIN (1) Interrelationale Join-Operationen verknüpfen entsprechend einer Verbundbedingung Tupel (Entitäten) von zwei verschiedenen Tabellen. Beispiel: Select * FROM Verkaeufe, Produkte WHERE Verkaeufe.ProduktID = Produkte.ProduktID; Intrarelationale Join-Operationen (Auto-Join oder Self-Joins) verknüpfen entsprechend einer Verbund-bedingung Tupel (Entitäten) ein und derselben Tabelle. Die Anwendung kann sinnvoll sein, wenn im Diskursbereich eine Beziehung in der gleichen Entitätsmenge definiert ist, wie z.b. Menge der (Buch-) Autoren mit der Beziehung ist Mitautor. Aber auch ohne eine solche Beziehung gibt es sinnvolle Anwendungen, zum Beispiel die Anfrage: Welche Mitarbeiter wohnen im gleichen Ort (PLZ)? SELECT E.MNR,Z.MNR, E.PLZ FROM Person AS E,Person AS Z WHERE E.PLZ=Z.PLZ Da hier gleiche Namen verwendet werden, ist es erforderlich die Tabelle und ihre Kopie durch Alias(-namen) auseinander zu halten. Peter Sobe 33

34 Inter- und Intrarelationales JOIN (2) Das Ergebnis ist (Ausschnitt): MNR MNR PLZ Wir sehen, dass leider alle Kombinationen von Mitarbeitern kommen, sogar die Verknüpfung mit sich selbst. Um das auszuschließen, ergänzen wir die Abfrage: SELECT E.MNR,Z.MNR, E.PLZ FROM Person AS E,Person AS Z WHERE E.PLZ=Z.PLZ AND E.MNR<Z.MNR Peter Sobe 34

35 Inter- vs. Intrarelationales JOIN (3) Jetzt erhalten wir das gewünschte Ergebnis mit paarweise verschiedenen Personen, die im gleichen Ort wohnen: MNR MNR PLZ Auch mit geschachtelten SELECT-Anweisungen (Subselects) lassen sich ähnliche Fragestellungen bearbeiten. Peter Sobe 35

36 Tabellen und Abfragen mittels SQL (1) Abfragen innerhalb einer Datenbanksoftware: z.b. Microsoft Office Access Abfrageeditor, mit SQL-Ansicht Peter Sobe 36

37 Tabellen und Abfragen mittels SQL (3) SQL Syntax und Funktionalität Grundform einer Abfrage: SELECT "Spalten_Name" FROM "Tabellen_Name" WHERE "Bedingung Beispiel mit Tabelle, die auch für weiter SQL-Abfragen benutzt wird: ID Stadt Bundesland Einwohner Vorwahl KFZ-Kennzeichen Höhe 1 Dresden Sachsen DD Leipzig Sachsen L Chemnitz Sachsen C Zwickau Sachsen Z Erfurt Thüringen EF Jena Thüringen J Gera Thüringen G Berlin Berlin B 34 9 Cottbus Brandenburg CB Postdam Brandenburg P FrankfurtOder Brandeburg FF Rostock Mecklenburg-Vorpommern HRO Schwerin Mecklenburg-Vorpommern SN Neubrandenb Mecklenburg-Vorpommern NB 20 Peter Sobe 37

38 Tabellen und Abfragen mittels SQL (4) Beispiel einer Abfrage: SELECT Stadt, Bundesland FROM Staedte WHERE Einwohner>= DISTINCT - Option: Allgemeine Form: SELECT DISTINCT "Spalten_Name FROM "Tabellen_Name" gibt für die als DISTINCT markierte Spalte nur ein Tupel je Wert zurück Beispiel: SELECT DISTINCT Bundesland FROM Staedte; Ergebnis: mit DISTINCT-Option Bundesland Berlin Brandenburg Mecklenburg-Vorpommern Sachsen Thüringen ohne DISTINCT-Option Bundesland Sachsen Sachsen Sachsen Sachsen Thüringen Thüringen Thüringen. Peter Sobe 38

39 ORDER BY : Tabellen und Abfragen mittels SQL (5) Allgemeine Form: SELECT "Spalten_Name FROM "Tabellen_Name [WHERE "Bedingung"] ORDER BY "Spalten_Name" [ASC, DESC] Ordnet die Ausgabe nach Werten in der angebenen Tabellenspalte, auf Anwendungsseite kann das Sortierverfahren eingespart werden. Beispiel: SELECT Stadt, Höhe FROM Staedte ORDER BY Höhe; Ergebnis rechts Stadt Höhe Rostock 13 Neubrandenb 20 Berlin 34 Postdam 35 Schwerin 38 FrankfurtOder 40 Cottbus 70 Leipzig 113 Dresden 113 Jena 155 Erfurt 195 Gera 205 Zwickau 267 Peter Sobe Chemnitz

40 COUNT - Funktion: Tabellen und Abfragen mittels SQL (6) Allgemeine Form: SELECT COUNT("Spalten_Name") FROM "Tabellen_Name gibt die Anzahl verschiedener Werte in der angegebenen Spalte zurück. wird oft zum Zählen der Datensätze benutzt, die einem bestimmten Kriterium entsprechen. Beispiel: SELECT Count(Bundesland) FROM Staedte Ergebnis: 14 weil 14 Spalten SELECT COUNT (DISTINCT Bundesland) FROM Staedte Ergebnis: 5 da 5 nur verschiedene Spalten (funktioniert leider nicht mit ACCESS, aber mit SQL-SERVER) Peter Sobe 40

41 Group By Tabellen und Abfragen mittels SQL (7) Allgemeines Beispiel: SELECT "Spalten_Name1", SUM("Spalten_Name2") FROM "Tabellen_Name" GROUP BY "Spalten_Name1" GROUP BY gruppiert die Ausgabe entsprechend gleicher Ausgaben in einer Spalte. Auf andere Spalten kann dann eine arithmetische Operation ausgeführt werden Die Gruppierung erfolgt immer nach der Spalte, die nicht in die arithmetische Operation einbegriffen ist. Beispiel: SELECT Bundesland, COUNT(Stadt) FROM Staedte GROUP BY Bundesland; Peter Sobe 41

42 Tabellen und Abfragen mittels SQL (8) Group By -Beispiel: SELECT Bundesland, COUNT(Stadt) FROM Staedte GROUP BY Bundesland Ergebnis: Bundesland Expr1001 Berlin 1 Brandenburg 3 Mecklenburg-Vorpommern 3 Sachsen 4 Thüringen 3 Ein weiteres Beispiel: SELECT Bundesland, SUM(Einwohner) FROM Staedte GROUP BY Bundesland Bundesland Expr1001 Berlin Brandenburg Mecklenburg-Vorpommern Sachsen Thüringen Peter Sobe 42

43 Tabellen und Abfragen mittels SQL (9) Having Allgemeine Form: SELECT "Spalten_Name1", SUM("Spalten_Name2") FROM "Tabellen_Name GROUP BY "Spalten_Name1" HAVING (arithmetische Funktionsbedingung) mit der HAVING Klausel kann man Tupel über Bedingungen auswählen, welche die aggregierte Information betreffen Beispiel: SELECT Bundesland, SUM(Einwohner) FROM Staedte GROUP BY Bundesland HAVING (SUM(Einwohner) >400000) Bundesland Expr1001 Berlin Sachsen Peter Sobe Thüringen

44 Tabellen und Abfragen mittels SQL (10) Tabellen JOINS Allgemeines Beispiel: SELECT "Spalten_Name1", Spalten_Name2 FROM "Tabellen_Name1, Tabellen_Name2 WHERE JoinBedingung In Access gibt man das Komma zwischen den Tabellen anstelle des JOIN Schlüsselworts an. Alias-Namen: Wird aus auf Spalten mit gleicher Bezeichnung aus verschiedenen Tabellen Bezug genommen, so ist für die Tabellen ein Alias- Name in der Anfrage anzugeben. Beispiel mit Alias: SELECT s1.stadt, s2.stadt FROM Staedte AS s1, Bahnstrecken, Staedte AS s2 WHERE s1.stadt=von AND s2.stadt=nach Peter Sobe 44

45 Unterabfragen Tabellen und Abfragen mittels SQL (11) Allgemeines Beispiel: SELECT "Spalten_Name1", "Spalten_Name2" FROM "Tabellen_Name1 WHERE Spalten_Name2 IN (SELECT Spalten_Name3 FROM "Tabellen_Name2 WHERE Bedingung ) Beispiel: SELECT Bundesland, SUM(Einwohner) FROM Staedte WHERE Stadt in (SELECT Stadt FROM Staedte WHERE Höhe>100) GROUP BY Bundesland Ergebnis: Bundesland Expr1001 Sachsen Thüringen Hier werden nur jene Städte ausgewertet, die höher als 100 Meter liegen. Peter Sobe 45

46 Weitere SQL-Beispiele (1) Ausgangsbasis ist die Datenbank firma.mdb. Frage: Anzahl der Personen, die in ihren Räumen selbst Raumverantwortliche sind? SELECT Count(ID) FROM personen AS p, raeume AS r WHERE p.raumnr = r.raumnr AND ID=Rverantw Peter Sobe 46

47 Weitere SQL-Beispiele (2) Frage: Alle Abteilungsleiter und die jeweilige Anzahl der unterstellten Personen. SELECT Abtleiter, COUNT(ID) FROM abteilungen AS a, personen AS p WHERE a.abtnr = p.abtnr AND a.abtleiter <>p.id GROUP BY Abtleiter Peter Sobe 47

48 Weitere SQL-Beispiele (3) Frage: Alle Abteilungsleiter, die mindestens eine andere Person in ihrer Abteilung leiten. SELECT Vorname, Famname FROM personen WHERE ID IN (SELECT DISTINCT Abtleiter FROM abteilungen AS a, personen AS p WHERE a.abtnr = p.abtnr AND a.abtleiter <>p.id) Peter Sobe 48

49 Weitere SQL-Beispiele (4) Frage: Maximale Anzahl Personen, die in einem Raum arbeiten. Erster Schritt Anzahl von Personen gruppiert nach Raumnr SELECT Count (ID) FROM personen GROUP BY Raumnr Zweiter Schritt erste Abfrage als Unterfrage SELECT Max( Count (ID) ) FROM (SELECT Count (ID) FROM personen GROUP BY Raumnr) Peter Sobe 49

50 Weitere SQL-Beispiele (5) Zweiter Schritt erste Abfrage als Unterfrage SELECT Max( Count (ID) ) FROM (SELECT Count (ID) FROM personen GROUP BY Raumnr) mit MS-Access wird angezeigt: Fehler: Aggregatfunktion im Ausdruck (Max(COUNT(ID))) nicht möglich Lösung über Aliasnamen: SELECT Max(x) FROM (SELECT Count(ID) AS x FROM personen GROUP BY Raumnr) Peter Sobe 50

51 Tabellen-Manipulation mittels SQL (1) SQL Erzeugen neuer Tabellen: Create Table Allgemeine Form: CREATE TABLE "Tabellen_Name" ("Spalte1" "Datentyp_für_Spalte1", "Spalte2" "Datentyp_für_Spalte2",... ) Beispiel: CREATE TABLE Bahnstrecke (Von CHAR, Nach CHAR, Distanz INTEGER) Einfügen neuer Tupel mittels Insert Into: Allgemeine Form: INSERT INTO "Tabellen_Name" ("Spalte1", "Spalte2",...) VALUES ("Wert1", "Wert2",...) Allgemeine Form: INSERT INTO Bahnstrecke (Von, Nach, Distanz) VALUES ( Dresden, Berlin, 185) Peter Sobe 51

52 Tabellen-Manipulation mittels SQL (8) SQL Ändern einzelner Werte: Update Allgemeine Form: UPDATE "Tabellen_Name SET "Spalte1" = [Wert] WHERE {Bedingung} Beispiel: UPDATE Staedte SET Einwohner= WHERE Stadt= Dresden Es ist immer eine Selektion eines (oder mehrerer) Tupel vorzunehmen, die geändert werden sollen. Peter Sobe 52

53 Tabellen-Manipulation mittels SQL (8) SQL Löschen einzelner Tupel einer Tabelle: Delete From Allgemeine Form: DELETE FROM "Tabellen_Name WHERE Bedingung Beispiel: DELETE FROM Bahnstrecke WHERE Von= Cottbus AND Nach= Dresden Löschen einer Tabelle oder eines Views: Drop bzw. Truncate Allgemeine Form: DROP TABLE "Tabellen_Name" Wird von Access nicht unterstützt, DELETE stattdessen TRUNCATE TABLE "Tabellen_Name Nur die Daten (Tupel) werden gelöscht. Das Tabellenformat bleibt bestehen. Peter Sobe 53

54 Zugriff aus einer MATLAB-Anwendung auf eine Datenbank Prinzip: Die Datenbank wird über einen s.g. ODBC-Treiber über eine Standardschnittstelle (ODBC) angekoppelt. Eine Datenbank-Toolbox in Matlab erlaubt, Daten aus einer Datenbank zu importieren Peter Sobe 54

55 Zugriff aus einer MATLAB-Anwendung auf eine Datenbank conn = database( firma,, ); sqlanfrage= SELECT Abtleiter, COUNT(ID) FROM abteilungen AS a, personen AS p WHERE a.abtnr = p.abtnr AND a.abtleiter <>p.id GROUP BY Abtleiter ; curs = exec(conn, sqlanfrage); curs ist ein s.g. Cursor-Objekt Daten können u.a. als Struktur oder numerische Matrizen gespeichert werden setdbprefs( DataReturnFormat, numeric ); oder setdbprefs( DataReturnFormat, structure ) Peter Sobe 55

56 Zugriff aus einer MATLAB-Anwendung auf eine Datenbank Der Zugriff auf die Daten erfolgt über curs.data Curs.Data ans = Das heißt Abteilungsleiter mit ID=1 leitet 3 Personen (ausgenommen sich selbst), Abteilungsleiter mit ID=3 leitet 1 Person (ausgenommen sich selbst) Peter Sobe 56

57 Datenbanken: Zusammenfassung Datenbanken speichern Daten in Tabellen, oft in mehreren Tabellen innerhalb einer Datenbank Keine gleichen Zeilen in einer Tabelle erlaubt (Mengenbasiertes Modells) Zugriff und Suche von Datensätzen erfolgt oft mit Hilfe s.g. Schüsselwerte (z.b. Matrikelnummer) Redundanz und Inkonsistenz wird beseitigt durch eine Aufteilung der Daten auf mehrere Tabellen Abfragesprache (SQL) erlaubt, Daten wieder zusammenzuführen, auch eine Auswahl relevanter Daten, Sortierung, Aggregationsfunktionen Peter Sobe 57

Entwurf von Relationalen Datenbanken (1) (mit dem Entity-Relationship-Modell)

Entwurf von Relationalen Datenbanken (1) (mit dem Entity-Relationship-Modell) In der Regel werden Diskursbereiche durch mehrere Relationen (Tabellen) abgebildet. Ziele: Entwurf von Relationalen Datenbanken (1) (mit dem Entity-Relationship-Modell) Vermeiden von Redundanz in Relationen

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

9: Datenbanken. Vergleich: Dateien und Datenbanken (1)

9: Datenbanken. Vergleich: Dateien und Datenbanken (1) 9: Datenbanken Inhalt: Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung und Normalformen einer Datenbank Structured Query Language SQL Zugriff aus einer C++ -Anwendung

Mehr

Datenmodellierung mit dem Entity-Relationship-Modell

Datenmodellierung mit dem Entity-Relationship-Modell Datenmodellierung mit dem Entity-Relationship-Modell Definition der mathematischen Relation Wertebereiche, Eigenschaften und Relationenformat Definition der Relation im Relationalen Datenmodell Entität,

Mehr

3. Prinzipien und Nutzung von relationalen Datenbanksystemen

3. Prinzipien und Nutzung von relationalen Datenbanksystemen 3. Prinzipien und Nutzung von relationalen Datenbanksystemen Inhalt: Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung und Normalformen einer Datenbank Structured

Mehr

9: Datenbanken. Dateien vs. Datenbanken (1)

9: Datenbanken. Dateien vs. Datenbanken (1) 9: Datenbanken Inhalt: Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung mit dem Entity-Relationship-Modell Normalformen einer Datenbank Structured Query Language

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen. 3. Imperative Programmierung. 4. Verarbeitung externer Datenquellen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen. 3. Imperative Programmierung. 4. Verarbeitung externer Datenquellen 1. Einführung in die Informatik Inhalt 2. Algorithmen 3. Imperative Programmierung 4. Verarbeitung externer Datenquellen 5. Exkurs: Deklarative, Logische Programmierung 6. Grundlagen der Datenbanktechnologie

Mehr

Abschnitt 4: Grundlagen der Datenbanktechnologie

Abschnitt 4: Grundlagen der Datenbanktechnologie Abschnitt 4: Grundlagen der Datenbanktechnologie Inhalt: Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung mit dem Relationenmodell Entwurf von Datenbanken mit dem

Mehr

Abschnitt 4: Grundlagen der Datenbanktechnologie

Abschnitt 4: Grundlagen der Datenbanktechnologie Abschnitt 4: Grundlagen der Datenbanktechnologie Inhalt: Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung mit dem Entity-Relationship-Modell Normalformen einer Datenbank

Mehr

Wiederholung VU Datenmodellierung

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

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

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

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

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

Relationenalgebra und SQL

Relationenalgebra und SQL Relationenalgebra und SQL Begriff der Algebra klassische Mengenoperationen (Vereinigung, Durchschnitt, Differenz) Operationen auf Relationen Projektion Selektion Kreuzprodukt Innerer Verbund / Gleichverbund

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

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

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

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

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

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

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

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

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 Kapitel

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

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 Data Manipulation Language (DML) und Query Language (QL)

SQL Data Manipulation Language (DML) und Query Language (QL) Innsbruck Information System University of Innsbruck School of Management Information Systems Universitätsstraße 15 6020 Innsbruck SQL Data Manipulation Language (DML) und Query Language (QL) Universität

Mehr

Relationenalgebra und SQL

Relationenalgebra und SQL Relationenalgebra und SQL Begriff der Algebra klassische Mengenoperationen (Vereinigung, Durchschnitt, Differenz) Operationen auf Relationen Projektion Selektion Kreuzprodukt Innerer Verbund / Gleichverbund

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

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

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

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

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

Mehr

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie 3 Inhaltsverzeichnis 1 Einführung in die Datenbanktechnologie 1.1 Einleitung... 8 1.1.1 Zielsetzung... 8 1.1.2 Aufbau des Studienbuches... 9 1.1.3 Abgrenzung... 10 1.2 Grundbegriffe... 10 1.3 Datenbanksysteme...

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

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

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15 Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von

Mehr

Das relationale Datenmodell

Das relationale Datenmodell Das relationale Datenmodell Konzepte Attribute, Relationenschemata, Datenbank-Schemata Konsistenzbedingungen Beispiel-Datenbank Seite 1 Einführung Zweck datenmäßige Darstellung von Objekten und Beziehungen

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

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen Welche Bestellungen hat Kunde x aufgegeben? Welche Kunden haben noch nie bestellt? Wer hat welche Bestellungen von welchen Kunden aufgenommen? S(tructured)Q(uery)L(anguage)

Mehr

[ SQL] Wissen, das sich auszahlt

[  SQL] Wissen, das sich auszahlt [www.teia.de SQL] Wissen, das sich auszahlt INHALT SEITE 12 [I] 1] Einführung in SQL und relationale Datenbanken 12 14 16 18 11 1.1 1.2 Einführung Die Structured Query Language (SQL) Tabellen Mehrere Tabellen

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

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

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

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

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y Kapitel 7 Normalformen und DB-Entwurf Kap. 7.1 Normalformen Theorie Funktionale Abhängigkeit: f X Y f als Relation, d.h. Menge von Paaren {(x,y)} x: Definitions-Stelle, y: Funktionswert f ist Funktion

Mehr

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten 12.1.2004 Änderungsoperationen bei SQL (Daten) Einfügen neuer Tupel (schon bekannt) INSERT INTO Table (Spalte1, Spalte2)

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

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

Telefonbuchdaten. Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten

Telefonbuchdaten. Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten Datenbanken? Datenbanken! Vertragsdaten Kundendaten Rechnungsdaten Telefonbuchdaten Marketingdaten Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Relationale Datenbanken und SQL Theorie und Anwendung Prof. Dr. Nikolaus Wulff Gründe für eine Datenbank Meist werden Daten nicht in XML-Dokumenten, sondern innerhalb einer

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

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1 Andreas Heß Hochschule Furtwangen Inhalte heute Einführung ins Entity-Relationship-Modell Einführung ins relationale Modell Umsetzung vom E/R-

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

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

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 30.5.2016 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Datentypen character (n),

Mehr

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN: Lothar Piepmeyer Grundkurs Datenbanksysteme Von den Konzepten bis zur Anwendungsentwicklung ISBN: 978-3-446-42354-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42354-1

Mehr

Tabellenkalkulationssysteme Inf 9 / 1

Tabellenkalkulationssysteme Inf 9 / 1 Tabellenkalkulationssysteme Inf 9 / 1 1.1 Inhalte von Zellen Die Zellen von Rechenblättern können Werte (Daten) oder Formeln enthalten. Werte können mithilfe von Zellbezügen als Eingabe für Formeln verwendet

Mehr

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007 PRG2 Folien Zicari Teil 5 Einführung in Datenbanken SS 2007 Prof. Dott. Ing. Roberto Zicari Johann Wolfgang Goethe-Universität Frankfurt am Main PRG2 V-1 Fachbereich Informatik und Mathematik SQL SQL =

Mehr

ARBEITSBLATT ZUR SQL-BEFEHLEN

ARBEITSBLATT ZUR SQL-BEFEHLEN Gegeben ist die folgende Datenbank: ARBEITSBLATT ZUR SQL-BEFEHLEN In einer Firma gibt es Mitarbeiter. Jeder Mitarbeiter ist eindeutig einer Abteilung zugeordnet. Manche Mitarbeiter sind an einem Projekt

Mehr

Relationenmodell. Ziel:

Relationenmodell. Ziel: Relationenmodell Ziel:! geringe Redundanz,! gute Handhabbarkeit,! einfache Zugriffe über möglichst wenige Tabellen! Sicherstellung von Konsistenz und Integrität. Beispielrelation Verkaeufer-Produkt Verk.-Nr.

Mehr

Abschnitt 4: Grundlagen der Datenbanktechnologie

Abschnitt 4: Grundlagen der Datenbanktechnologie Abschnitt 4: Grundlagen der Datenbanktechnologie Inhalt: Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung mit dem Entity-Relationship-Modell Normalformen einer Datenbank

Mehr

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer DB-Datenbanksysteme DB-13 043-SQL-DML 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache

Mehr

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47 SQL-Sprachvielfalt DML Data Manipulation Language: Daten einfügen, ändern und löschen DQL Data Query Language: Daten abfragen DDL Data Definition Language: Tabellen und andere Strukturelemente erzeugen,

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

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

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

VIEWS UND WEITERE TABELLEN-OPERATIONEN

VIEWS UND WEITERE TABELLEN-OPERATIONEN KAPITEL 9 VIEWS UND WEITERE TABELLEN-OPERATIONEN 9.1 Vereinbarung und Einsatz von Views 9.1.1 Einrichtung von Views Die CREATE VIEW-Anweisung Von Ausnahmen abgesehen ist es wie wir zuvor erläutert haben

Mehr

Rückblick: Relationales Modell

Rückblick: Relationales Modell Rückblick: Relationales Modell Relationales Modell als vorherrschendes Datenmodell Relationen (Tabellen) besitzen Attribute (Spalten) mit Wertebereichen und beinhalten Tupel (Zeilen) Umsetzung eines konzeptuellen

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

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

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen Folien zum Textbuch Kapitel 2: Planung, Entwicklung und Betrieb von IS Teil 3: Modellierung von betrieblichen Informationssystemen Textbuch-Seiten 185-208 WI Planung, Entwicklung und Betrieb von IS IS-Modellierung

Mehr

Handout zur Unit Datenmodellierung Web-Technologien Datenmodellierung Prof. Dr. rer. nat. Nane Kratzke

Handout zur Unit Datenmodellierung Web-Technologien Datenmodellierung Prof. Dr. rer. nat. Nane Kratzke Handout zur Unit Web-Technologien 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: nane.kratzke@fh-luebeck.de (Praktische

Mehr

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Management of Information Systems. Tutorat: Session 3 Einführung in SQL Management of Information Systems Tutorat: Session 3 Einführung in SQL 2 Setup 1. XAMPP-Console starten in C:\xampp\ 1. Apache starten bis erscheint 2. MySQL starten bis erscheint 3. An den Rechnern im

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

Wirtschaftsinformatik 7a: Datenbanken. Dozent: R. Witte

Wirtschaftsinformatik 7a: Datenbanken. Dozent: R. Witte Wirtschaftsinformatik 7a: Datenbanken Dozent: R. Witte Drei Gäste bezahlen nach einem gemeinsamen Abendessen eine Rechnung von 30 Euro, so dass jeder 10 Euro gibt. Der Wirt gibt dem Kellner den Auftrag

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

Garten - Daten Bank. - survival pack -

Garten - Daten Bank. - survival pack - Garten - Daten Bank - survival pack - Dr. Karsten Tolle PRG2 SS 2017 Inhalt heute Kurz: Motivation und Begriffe SQL (survival pack) create table (Tabelle erzeugen) insert into (Einfügen) select (Anfragen)

Mehr

(4 Punkte) Aufgabe 1: Relationenalgebra - Relationenkalkül

(4 Punkte) Aufgabe 1: Relationenalgebra - Relationenkalkül Musterlösunq zur Klausur 1665 Datenbanksvsteme 19.03.2005 Aufgabe 1: Relationenalgebra - Relationenkalkül (4 Punkte) In der Relationenalgebra werden die gewünschten Relationen durch Angabe einer Folge

Mehr

Erzeugung und Veränderung von Tabellen

Erzeugung und Veränderung von Tabellen Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen

Mehr

Datenzugriffskomponente mit JPA 2.1

Datenzugriffskomponente mit JPA 2.1 Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der

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

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell Datenbanken Unit 3: Das relationale Modell 7. III. 2017 Outline 1 SQL 2 Das ER Modell Zusammenfassung 3 Das Relationale Modell Termin zweiter Zwischentest UE-Tests (Thema: SQL) zweiter Zwischentest findet

Mehr

5. Relationale Entwurfstheorie

5. Relationale Entwurfstheorie 5 Relationale Entwurfstheorie Motivation Konzeptuelles Modell (ERM) kann in ein relationales Schema mit möglichst wenigen Relationen übersetzt werden (vgl Kapitel 4) Welche Eigenschaften hat ein gutes

Mehr

Query Languages (QL) Relationale Abfragesprachen/Relational

Query Languages (QL) Relationale Abfragesprachen/Relational Relationale Algebra Relationale Abfragesprachen/Relational Query Languages (QL) Abfragesprachen: Daten aus einer Datenbank zu manipulieren und abzufragen (retrieve information) Das relationalle Modell

Mehr

D1: Relationale Datenstrukturen (14)

D1: Relationale Datenstrukturen (14) D1: Relationale Datenstrukturen (14) Die Schüler entwickeln ein Verständnis dafür, dass zum Verwalten größerer Datenmengen die bisherigen Werkzeuge nicht ausreichen. Dabei erlernen sie die Grundbegriffe

Mehr

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell Datenbanken Unit 3: Das relationale Modell 8. III. 2016 Outline 1 Das ER Modell Zusammenfassung 2 Das Relationale Modell 3 SQL Organisatorisches Wissensüberprüfung: heute zwei Aufgaben statt nur einer

Mehr

Datenmodelle und Datenbanken 2

Datenmodelle und Datenbanken 2 Datenmodelle und Datenbanken 2 Prof. N. Fuhr Institut für Informatik und Interaktive Systeme Arbeitsgruppe Informationssysteme 24. Februar 2005 Hinweise zur Bearbeitung Die Zeit läuft erst, wenn Sie alle

Mehr

Entitätstypen, Attribute, Relationen und Entitäten

Entitätstypen, Attribute, Relationen und Entitäten Einführung Datenmodellierung Entitätstypen, Attribute, Relationen und Entitäten Wozu Datenbanken? Datenbanken dienen zur Speicherung und Verwaltung großer Datenbestände Beispiele: Adressdaten aller Kunden

Mehr

Operationen auf Relationen

Operationen auf Relationen Existierende relationale Datenbanken Beispiele von relationalen DB-Systemen: DB2, SQL (v. IBM), ORACLE, INGRES, INFORMIX, SYBASE, ACCESS u.v.a.m. Die dominierende Query-, DB-Language: SQL (Structured Query

Mehr

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität Datenbanken Unit 4: Das Relationale Modell & Datenintegrität 15. III. 2016 Outline 1 Organisatorisches 2 SQL 3 Relationale Algebra Notation 4 Datenintegrität Organisatorisches Erster Zwischentest: nach

Mehr

SQL. erfolgreich Madrid Amsterdam An imprint of Pearson

SQL. erfolgreich Madrid Amsterdam An imprint of Pearson 10 01101110 John-Harry 01110 Wieken 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101 01101 0110 010 0101 10 011011101 0101 0110 010 010 0110 01101110

Mehr