4. Datenbanken - Prinzipien und Nutzung relationaler Datenbanken
|
|
- Dörte Auttenberg
- vor 5 Jahren
- Abrufe
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)
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
MehrDatenbankanfragen 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
Mehr9: 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
MehrDatenmodellierung 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,
Mehr3. 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
Mehr9: 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
MehrInhalt. 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
MehrAbschnitt 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
MehrAbschnitt 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
MehrWiederholung 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 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
MehrAbfragen (Queries, Subqueries)
Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
Mehrinsert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle
Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist
MehrRelationenalgebra und SQL
Relationenalgebra und SQL Begriff der Algebra klassische Mengenoperationen (Vereinigung, Durchschnitt, Differenz) Operationen auf Relationen Projektion Selektion Kreuzprodukt Innerer Verbund / Gleichverbund
MehrAnwendungsentwicklung Datenbanken SQL. Stefan Goebel
Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten
MehrDatenbanken 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................................................
MehrISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de
08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren
MehrDaten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL
Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured
MehrSeminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.
Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu
MehrAuf 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
MehrMySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
MehrEs 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.
MehrAuf 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
MehrDATENBANKEN 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.
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrSQL 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
MehrRelationenalgebra und SQL
Relationenalgebra und SQL Begriff der Algebra klassische Mengenoperationen (Vereinigung, Durchschnitt, Differenz) Operationen auf Relationen Projektion Selektion Kreuzprodukt Innerer Verbund / Gleichverbund
MehrSQL 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
MehrSQL. 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
Mehr3 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
MehrWirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte
Wirtschaftsinformatik 7a: Datenbanken Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte Drei Gäste bezahlen nach einem gemeinsamen Abendessen eine Rechnung von 30 Euro, so dass jeder 10 Euro gibt.
MehrInhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15
Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................
MehrInhaltsverzeichnis. 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...
MehrGrundlagen 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)
Mehr5/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
MehrDaniel 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
MehrInhaltsverzeichnis. 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
MehrDas 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
MehrACCESS SQL ACCESS SQL
ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache
MehrMicrosoft 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
[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
MehrDatenbanken. 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
MehrSQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99
SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:
MehrDatenbank 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`
MehrEinfü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
Mehrd.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 12.1.2004 Änderungsoperationen bei SQL (Daten) Einfügen neuer Tupel (schon bekannt) INSERT INTO Table (Spalte1, Spalte2)
MehrDatenbanksysteme 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
MehrWS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)
Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)
MehrTelefonbuchdaten. Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten
Datenbanken? Datenbanken! Vertragsdaten Kundendaten Rechnungsdaten Telefonbuchdaten Marketingdaten Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten
MehrEinfü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
MehrSQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.
SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit
MehrOracle 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
MehrDatenbanken 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-
MehrWebbasierte 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)
MehrSQL 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
MehrInformatik 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),
MehrInhaltsverzeichnis. 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
MehrTabellenkalkulationssysteme 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
MehrPRG2 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 =
MehrARBEITSBLATT 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
MehrRelationenmodell. 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.
MehrAbschnitt 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
MehrDB-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
MehrSQL-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,
MehrEinführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten
Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem
MehrDieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.
Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,
MehrSQL-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
MehrVIEWS 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
MehrRü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
MehrPraktische 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/
MehrInformatik 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
MehrKapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)
Kapitel 6 Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) 1 Datenmanipulationssprache (DML) SQL Einfügen: Insert-Statement Ändern: Update-Statement Löschen:
MehrFolien 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
MehrHandout 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
MehrManagement 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
MehrMengenvergleiche: Alle Konten außer das, mit dem größten Saldo.
Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten
MehrWirtschaftsinformatik 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
MehrSQL als Zugriffssprache
SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl
MehrGarten - 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
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
MehrErzeugung 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
MehrDatenzugriffskomponente 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
MehrDie 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
MehrDatenbanken 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
Mehr5. 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
MehrQuery 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
MehrD1: 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
MehrDatenbanken 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
MehrDatenmodelle 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
MehrEntitä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
MehrOperationen 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
MehrDatenbanken 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
MehrSQL. 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