einstieg in relationale datenbanken mit mysql (folien)
DESCRIPTION
Folien zum Workshop "Einstieg in relationale Datenbanken mit MySQL", September 2009TRANSCRIPT
![Page 1: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/1.jpg)
Einstieg in relationale Datenbankenmit MySQL
Dr. Kerstin Puschke
Workshop, Uni Salzburg
September 2009
K. Puschke MySQL
![Page 2: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/2.jpg)
Lizenz
LizenzDieser Text steht unter einer Creative CommonsAttribution-Share Alike 3.0 Germany Lizenz, siehehttp://creativecommons.org/licenses/by-sa/3.0/de/
K. Puschke MySQL
![Page 3: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/3.jpg)
Teil I: Einführung
1 Grundbegriffe
2 Architektur
3 MySQL
K. Puschke MySQL
![Page 4: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/4.jpg)
Teil II: Datenbankabfragen
4 Überblick verschaffen
5 Einfache Abfragen
6 Ergebnisse einschränken
K. Puschke MySQL
![Page 5: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/5.jpg)
Teil III: Datenbankdesign
7 Einführung in die theoretischen Grundlagen
8 Datenbankdesign in der Praxis
9 Qualitätssicherung
10 Datenbank definieren
K. Puschke MySQL
![Page 6: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/6.jpg)
Teil IV: Datenbanksprachen
11 Allgemein
12 SQL
K. Puschke MySQL
![Page 7: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/7.jpg)
Teil V: Datenbanken erzeugen und manipulieren
13 Daten eintragen, ändern, löschen
14 Tabellen verknüpfen
K. Puschke MySQL
![Page 8: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/8.jpg)
Teil VI: Vor- und Nachteile von Datenbanken
15 Datenbanken vs. Dateien
16 Relationale Datenbanksysteme
K. Puschke MySQL
![Page 9: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/9.jpg)
Teil VII: Datenbanken manipulieren - WeitereMöglichkeiten
17 Aggregierte Daten
K. Puschke MySQL
![Page 10: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/10.jpg)
GrundbegriffeArchitektur
MySQL
Teil I
Einführung
K. Puschke MySQL
![Page 11: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/11.jpg)
GrundbegriffeArchitektur
MySQL
Einführung
1 Grundbegriffe
2 Architektur
3 MySQL
K. Puschke MySQL
![Page 12: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/12.jpg)
GrundbegriffeArchitektur
MySQL
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke MySQL
![Page 13: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/13.jpg)
GrundbegriffeArchitektur
MySQL
Einführung
1 Grundbegriffe
2 Architektur
3 MySQL
K. Puschke MySQL
![Page 14: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/14.jpg)
GrundbegriffeArchitektur
MySQL
Client und Server
Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet
auch der Rechner, auf dem dieser Dienst läuft
Anwendung oder Client greift auf den Datenbankserver zu
K. Puschke MySQL
![Page 15: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/15.jpg)
GrundbegriffeArchitektur
MySQL
Architektur
MainframeGroßrechner (Zugriff über Terminals)
Zwei-Schichten-ArchitekturDatenbankserverAnwendung, ClientAnwendungslogik und Darstellung/Benutzeroberfläche
Drei-Schichten-ArchitekturDatenbankserverAnwendung (Anwendungslogik)Webserver oder Anwendungsserver (Darstellung)Browser oder Client des Anwendugnsservers
K. Puschke MySQL
![Page 16: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/16.jpg)
GrundbegriffeArchitektur
MySQL
Einführung
1 Grundbegriffe
2 Architektur
3 MySQL
K. Puschke MySQL
![Page 17: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/17.jpg)
GrundbegriffeArchitektur
MySQL
MySQL
DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, jetzt Sun Microsystems,Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-Version
K. Puschke MySQL
![Page 18: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/18.jpg)
GrundbegriffeArchitektur
MySQL
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPress. . .
Anwendungen mit eingebetteter DatenbankZimbra. . .
K. Puschke MySQL
![Page 19: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/19.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Teil II
Datenbankabfragen
K. Puschke MySQL
![Page 20: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/20.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Datenbankabfragen
4 Überblick verschaffen
5 Einfache Abfragen
6 Ergebnisse einschränken
K. Puschke MySQL
![Page 21: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/21.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Aufgaben
Überblick verschaffenSHOW DATABASES, USE datenbank, SHOW TABLES,DESCRIBE tabelle
K. Puschke MySQL
![Page 22: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/22.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Erste Befehle
SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an
K. Puschke MySQL
![Page 23: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/23.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Datenbankabfragen
4 Überblick verschaffen
5 Einfache Abfragen
6 Ergebnisse einschränken
K. Puschke MySQL
![Page 24: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/24.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Aufgaben
Einfache AbfragenSELECT, ORDER BY, LIMIT, NULL
K. Puschke MySQL
![Page 25: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/25.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke MySQL
![Page 26: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/26.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke MySQL
![Page 27: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/27.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Datenbankabfragen
4 Überblick verschaffen
5 Einfache Abfragen
6 Ergebnisse einschränken
K. Puschke MySQL
![Page 28: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/28.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Aufgaben
Ergebnisse einschränkenWHERE, AND, OR, UNION,DISTINCT
K. Puschke MySQL
![Page 29: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/29.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Ergebnisse einschränken I
WHERE
schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’
SELECT Name FROM KundInnen WHERE Vorname ISNULL
K. Puschke MySQL
![Page 30: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/30.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Ergebnisse einschränken II
AND und OR
verknüpfen mehrere BedingungenSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’ AND Vorname=’Clara’
K. Puschke MySQL
![Page 31: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/31.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Abfragen einschränken III
UNION
vereinigt Ergebnisse(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)
K. Puschke MySQL
![Page 32: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/32.jpg)
Überblick verschaffenEinfache Abfragen
Ergebnisse einschränken
Ergebnisse einschränken IV
SELECT DISTINCT
gibt nur unterschiedliche Ergebnisse ausSELECT DISTINCT Stadt FROM KundInnen
K. Puschke MySQL
![Page 33: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/33.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Teil III
Datenbankdesign
K. Puschke MySQL
![Page 34: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/34.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Datenbankdesign
7 Einführung in die theoretischen GrundlagenDatenbankmodellDatenbankschema
8 Datenbankdesign in der Praxis
9 Qualitätssicherung
10 Datenbank definieren
K. Puschke MySQL
![Page 35: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/35.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Datenbankmodell
Konzept zur Beschreibung der Struktur einer Datenbankkonzeptionelles Modell: formale Beschreibung eines Teilsder Realität
K. Puschke MySQL
![Page 36: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/36.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Konzeptionelles Modell
formale Beschreibung eines Ausschnittes der Realitätverbreitet: Entity-Relationship-Model(Gegenstand-Beziehungs-Modell)
K. Puschke MySQL
![Page 37: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/37.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Datenbankmodell
Konzept zur Beschreibung der Struktur einer Datenbankkonzeptionelles Modell: formale Beschreibung eines Teilsder Realitätlogisches Modell: Beschreibung der Implementierung
K. Puschke MySQL
![Page 38: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/38.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Logisches Modell
Beschreibung der Implementierungverbreitete Modelle:
netzwerkartighierarchischrelationalobjektorientiertobjektrelational...
K. Puschke MySQL
![Page 39: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/39.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
Schema einer Relation (Tabellenstruktur) besteht ausAttributen (Spalten)
K. Puschke MySQL
![Page 40: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/40.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Datenbankmodell
Konzept zur Beschreibung der Struktur einer Datenbankkonzeptionelles Modell: formale Beschreibung eines Teilsder Realitätlogisches Modell: Beschreibung der Implementierungphysisches Modell: Datenspeicherung, Zugriffspfade
K. Puschke MySQL
![Page 41: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/41.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Physisches Modell
Wie werden die Daten gespeichert?Auf Platte geschrieben oder nur im Speicher gehalten?Wie auf Dateien aufgeteilt? Was für Dateien?Indizierung
K. Puschke MySQL
![Page 42: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/42.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Datenbankschema
DatenbankschemaBeschreibung der Datenbankstrukturgespeichert als Metadaten in der Datenbankfolgt gewählten Datenmodellen
konzeptionelles SchemaER-Modell: ER-Diagrammlogisches Schemarelationales Modell: Tabellen, Spalten, . . .physische Schema:Storage Engine und Indizierung
K. Puschke MySQL
![Page 43: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/43.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
DatenbankmodellDatenbankschema
Datenbankzustand
DatenbankzustandDaten zu einem bestimmten Zeitpunkt
K. Puschke MySQL
![Page 44: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/44.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Datenbankdesign
7 Einführung in die theoretischen Grundlagen
8 Datenbankdesign in der PraxisAblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
9 Qualitätssicherung
10 Datenbank definieren
K. Puschke MySQL
![Page 45: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/45.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
DatenbankdesignRelationale Datenbanken entwerfen
AnforderungsanalyseGeschäftsprozesse analysieren,. . .
Konzeptionelles Design: konzeptionelles Schemaentwerfen
Anforderungen in formale Struktur überführenEntitiy-Relationship-Diagramm entwickeln
Logisches Design: logisches Schema entwerfenRelationales Datenbankschema entwerfenER-Diagramm in Tabellen, Spalten usw. übersetzenmanuell oder softwaregestützt
Physisches Design: Physische Schema entwerfenStorage Engine wählenIndizierung festlegen
K. Puschke MySQL
![Page 46: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/46.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Entity-Relationship-Model
Entitiy-Relationship-Model, ER-Modell, ERM,Gegenstand-Beziehungs-Modell:konzeptionelles Datenmodell zur formalen Beschreibungeines Ausschnitts der realen WeltP.P. Chen (1976)
K. Puschke MySQL
![Page 47: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/47.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Entity-Relationship-ModelElemente eines Schemas
Entitäten: Gegenstände, Personen,. . .Beziehungen: Verknüpfungen von EntitätenAttribute: Eigenschaften von Entitäten oder BeziehungenAttribute haben Werte (nicht modelliert)Primärschlüssel : Attribut (oder Kombination mehrererAttribute), welches eine Entität oder Beziehung eindeutigkennzeichnetKardinalität von Beziehungen: (mögliche) Anzahlbeteiligter Entitäten
K. Puschke MySQL
![Page 48: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/48.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
ER-Diagramm
ER-Diagramm: grafische Darstellung einesER-modellierten Schemasverschiedene Notationen vorhanden
K. Puschke MySQL
![Page 49: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/49.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Erstellen von ER-DiagrammenSoftwaretools
DiaMicrosoft VisioMySQL Workbench. . .
K. Puschke MySQL
![Page 50: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/50.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Elemente eines ER-Diagramms
Entität: RechteckAttribut: KreisBeziehung: RautePrimärschlüssel: unterstrichenKardinaliäten:
Chen-Notation: 1 oder NMin-Max-Notation: Paare mit Einträgen 0,1 oder N, z.B.(1,N)
K. Puschke MySQL
![Page 51: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/51.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
ER-Diagramm
K. Puschke MySQL
![Page 52: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/52.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Aufgaben
DatenbankentwurfAnforderungsanalyse, ER-Diagramm
K. Puschke MySQL
![Page 53: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/53.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Vom ER-Diagramm zum Relationalen Schema
ein Primärschlüssel für jede Tabelleeine Tabelle für jede Entitäteine Tabelle für jede n-m-BeziehungAttribute sind Spalten der jeweiligen Tabellen-eins-Beziehung als Fremdschlüssel (in der Tabelle derEntität auf der n-Seite)
K. Puschke MySQL
![Page 54: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/54.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Aufgaben
DatenbankentwurfRelationales Schema, ER-Diagramm in Tabellen überführen
K. Puschke MySQL
![Page 55: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/55.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
AblaufKonzeptionelles Design: Entity-Relationship-ModelLogisches Design: Relationales SchemaPhysisches Design: Storage Engine
Storage EnginePhysisches Schema
zuständig für Datenspeicherungsetzt physisches Modell umMySQL bringt mehrere Storage Engines mitweitere Engines können eingebunden werdenStandard Engine in MySQL: MyISAMIndex Sequential Access Methodzunehmend verbreitet: InnoDBwir verwenden die Standardeinstellungen
K. Puschke MySQL
![Page 56: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/56.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Normalform
Datenbankdesign
7 Einführung in die theoretischen Grundlagen
8 Datenbankdesign in der Praxis
9 QualitätssicherungNormalform
10 Datenbank definieren
K. Puschke MySQL
![Page 57: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/57.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Normalform
Aufgabe
NormalformNegativbeispiel diskutieren
K. Puschke MySQL
![Page 58: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/58.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Normalform
Normalform
NormalformJedes Attribut, das kein Schlüssel ist, hängt direkt vomSchlüssel ab, vom gesamten Schlüssel, und zwar nur vomSchlüssel
K. Puschke MySQL
![Page 59: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/59.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Normalform
Daten in Normalform
keine AnomalienKonsistenz der Datenkeine Redundanzeneinfache Wartungeffizientes Suchen und Bearbeiten
K. Puschke MySQL
![Page 60: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/60.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Normalform
Normalisierung
Normalisierung = in Normalform bringenverschiedene AlgorithmenER-Diagramme und daraus abgeleitete relationaleSchemata:
häufig schon in Normalformggf. “nachbessern”
K. Puschke MySQL
![Page 61: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/61.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Normalform
Normalform
HinweisDie Darstellung zum Thema Normalisierung/Normalform istsehr vereinfacht. Wer mehr wissen möchte, findet links im Wiki.
K. Puschke MySQL
![Page 62: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/62.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Datenbankdesign
7 Einführung in die theoretischen Grundlagen
8 Datenbankdesign in der Praxis
9 Qualitätssicherung
10 Datenbank definierenExkurs: Die MySQL-DokumentationTabellen anlegen
K. Puschke MySQL
![Page 63: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/63.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Umgang mit der MySQL-Doku
eckige Klammern umschliessen optionale Klauseln| bedeutet odernur eine der genannten Alternativen kann/muss benutztwerdengeschweifte Klammern: eine der Alternativen muss benutztwerdeneckige Klammern: eine oder keine der Alternativen kannbenutzt werdenBeispiel 1: DROP TABLE [IF EXISTS] tbl_name
Beispiel 2: {DESCRIBE | DESC} tbl_name[col_name | wild]}
K. Puschke MySQL
![Page 64: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/64.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Datenbank definierenTabellen anlegen
Name der TabelleStorage EngineBeschreibung der Spalten
Name der SpalteDatentyp (INT Integer, VARCHAR(20) String mit max. 20Zeichen)Eintrag obligatorisch? (NULL/NOT NULL)Eintrag eindeutig? (UNIQUE)Schlüssel? (PRIMARY KEY, impliziert NOT NULL undUNIQUE)Default-Wert? (DEFAULT)Extras? (z.B. AUTO_INCREMENT;AUTO_INCREMENT ist kein Standard-SQL!)
K. Puschke MySQL
![Page 65: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/65.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Tabellen verwalten ITabelle anlegen
CREATE TABLE
CREATE TABLE KundInnen (KundNr INT PRIMARY KEYAUTO_INCREMENT, Name VARCHAR(50) NOT NULL,Vorname VARCHAR(25))
K. Puschke MySQL
![Page 66: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/66.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Tabellen verwalten IIInformationen über Tabellen
DESCRIBE und SHOW CREATE TABLE
DESCRIBE KundInnenSHOW CREATE TABLE KundInnen
K. Puschke MySQL
![Page 67: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/67.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Tabellen verwalten IIITabellenstruktur ändern
ALTER TABLE
ALTER TABLE KundInnen DROP COLUMN Vorname. . .
ALTER TABLE
Vorsicht! Viele Stolperfallen!
K. Puschke MySQL
![Page 68: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/68.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Tabellen verwalten IVTabellen löschen
DROP TABLE
DROP TABLE KundInnen
K. Puschke MySQL
![Page 69: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/69.jpg)
Einführung in die theoretischen GrundlagenDatenbankdesign in der Praxis
QualitätssicherungDatenbank definieren
Exkurs: Die MySQL-DokumentationTabellen anlegen
Aufgaben
Datenbank definierenCREATE TABLE, DROP TABLE, SHOW CREATE TABLE
K. Puschke MySQL
![Page 70: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/70.jpg)
AllgemeinSQL
Teil IV
Datenbanksprachen
K. Puschke MySQL
![Page 71: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/71.jpg)
AllgemeinSQL
Datenbanksprachen
11 Allgemein
12 SQL
K. Puschke MySQL
![Page 72: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/72.jpg)
AllgemeinSQL
Datenbanksprachen
Data Definition Language (DDL)Definition des DatenbankschemasData Manipulation Language (DML)Daten abfragen und verändernData Control Language (DCL)ZugriffsrechteData Administration Language (DAL)finetuning, Zugriffspfad
K. Puschke MySQL
![Page 73: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/73.jpg)
AllgemeinSQL
Datenbanksprachen
11 Allgemein
12 SQL
K. Puschke MySQL
![Page 74: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/74.jpg)
AllgemeinSQL
SQL
Structured Query LanguageVorgänger: SEQUELSprache relationaler DBMSbeinhaltet DDL, DML, DCL, DALdeklarative Sprachebeschreibt, was zu tun ist, nicht wieerweitert um prozedurale Funktionalitäten(Ablaufsteuerung)Konvention: Befehle und Co. in Großbuchstaben schreibenSELECT * FROM kurse
K. Puschke MySQL
![Page 75: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/75.jpg)
AllgemeinSQL
SQLImplementierungen
sehr verbreitet, z.B. MySQL, PostgreSQL, Oracle u.v.a.fast alle Systeme
implementieren nicht den kompletten Standardimplementieren eigene Erweiterungen
daher: Kompatibilität der Systeme eingeschränkt
K. Puschke MySQL
![Page 76: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/76.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Teil V
Datenbanken erzeugen und manipulieren
K. Puschke MySQL
![Page 77: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/77.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Datenbanken erzeugen und manipulieren
13 Daten eintragen, ändern, löschen
14 Tabellen verknüpfen
K. Puschke MySQL
![Page 78: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/78.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Aufgaben
Datenbank erzeugen und manipulierenINSERT, UPDATE, DELETE
K. Puschke MySQL
![Page 79: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/79.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Datenbank erzeugen und manipulierenDaten eintragen
INSERT
INSERT INTO KundInnen (Name,Vorname) VALUES(’Example’,’Erna’)
K. Puschke MySQL
![Page 80: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/80.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Datenbank erzeugen und manipulierenDaten ändern
UPDATE
UPDATE KundInnen SET TelefonNr=’1234567’ WHEREKundNr=’666’
K. Puschke MySQL
![Page 81: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/81.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Datenbank erzeugen und manipulierenDaten entfernen
DELETE
DELETE FROM KundInnen WHERE Stadt=’Wien’
K. Puschke MySQL
![Page 82: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/82.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Datenbanken erzeugen und manipulieren
13 Daten eintragen, ändern, löschen
14 Tabellen verknüpfen
K. Puschke MySQL
![Page 83: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/83.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Deskriptoren für Objekte in SQL
Objekt : Tabelle, Spalte,. . .kein Objekt im Sinne von OO-Programmierung!
Deskriptor : identifiziert das Objekt (z.B. Spaltenname)unterschiedlich für die verschiedenen Datenbanksystem
K. Puschke MySQL
![Page 84: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/84.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Deskriptoren für Objekte in MySQL
VollständigTabelle: Datenbank.TabelleSpalte: Datenbank.Tabelle.Spalte
Abkürzung
Angabe der Datenbank kann entfallen, wenn die mit USEvoreingestellte benutzt werden sollAngabe der Tabelle kann zusätzlich entfallen, wennSpaltenname innerhalb der verwendeten Tabelleneindeutig
K. Puschke MySQL
![Page 85: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/85.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Tabellen verknüpfenJOIN
Abfragen über mehrere TabellenTabellen verknüpfen (JOIN)verknüpfe Zeilen, ggf. gemäß einer Bedingung (angemeinsame Attribute)über verknüpften Tabellen SELECT durchführen
K. Puschke MySQL
![Page 86: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/86.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Tabellen verknüpfenBeispiel
KundInnenKundNr Name Vorname1 Example Erna2 Kundin Karla
BestellungenKundNr ArtikelNr2 51 42 6
K. Puschke MySQL
![Page 87: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/87.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Tabellen verknüpfenCross Join, Cartesisches Produkt
KundNr Name Vorname KundNr ArtikelNr1 Example Erna 1 41 Example Erna 2 51 Example Erna 2 62 Kundin Karla 2 62 Kundin Karla 2 52 Kundin Karla 2 6
K. Puschke MySQL
![Page 88: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/88.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Tabellen verknüpfenTheta Join
Verknüpfungsbedingung:KundInnen.KundNr = Bestellungen.KundNr
KundNr Name Vorname KundNr ArtikelNr1 Example Erna 1 42 Kundin Karla 2 52 Kundin Karla 2 6
K. Puschke MySQL
![Page 89: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/89.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
Aufgaben
Tabellen verknüpfenJOIN
K. Puschke MySQL
![Page 90: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/90.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
JOIN-SyntaxINNER JOIN
Zeilen ohne Entsprechung in der anderen Tabelle entfallenSELECT Name, Vorname, ArtikelNr FROMKundInnen INNER JOIN Bestellungen ONKundInnen.KundNr = Bestellungen.KundNr
K. Puschke MySQL
![Page 91: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/91.jpg)
Daten eintragen, ändern, löschenTabellen verknüpfen
JOIN-SyntaxOUTER JOIN
Zeilen ohne Entsprechung in der anderen Tabelle werdenmit NULL-Einträgen ergänztLEFT JOIN: alle Zeilen der linken Tabelle, dazu nur Zeilender rechten Tabelle, die eine Entsprechung in der linkenTabelle habenSELECT Name, Vorname, ArtikelNr FROMKundInnen INNER JOIN Bestellungen ONKundInnen.KundNr = Bestellungen.KundNr zeigtauch KundInnen, die nichts bestellt haben
K. Puschke MySQL
![Page 92: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/92.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Teil VI
Vor- und Nachteile von Datenbanken
K. Puschke MySQL
![Page 93: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/93.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Vorteile von DatenbanksystemenNachteile von Datenbanksystemen
Vor- und Nachteile von Datenbanken
15 Datenbanken vs. DateienVorteile von DatenbanksystemenNachteile von Datenbanksystemen
16 Relationale Datenbanksysteme
K. Puschke MySQL
![Page 94: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/94.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Vorteile von DatenbanksystemenNachteile von Datenbanksystemen
Vorteile von Datenbanksystemen
Daten und Datenstruktur enthaltenDatenstruktur als Metadaten im DBS gespeichertkonkurrierende, gleichzeitige Zugriffe handhabenFehlertoleranzSicherheit (Zugriffsschutz) und Flexibilität durchTrennung von Anwendung und Datengroße Datenmengen beherrschbar
K. Puschke MySQL
![Page 95: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/95.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Vorteile von DatenbanksystemenNachteile von Datenbanksystemen
Trennung von Anwendung und DatenExterne Sichten
Trennung von physischer Ebene, logischer Ebene undexterner Ebene (Sicht)Sicht : user-abhängige Zugriffsmöglichkeit undPräsentation der DatenBeispiel:
ZugriffsschutzBeispiel: Prüfungsbüro hat Zugriff auf andere Daten alsStudierendenverwaltungangepaßte Präsentation der Daten
kleinere Änderung auf einer Ebene beeinflußt andereEbenen nicht
K. Puschke MySQL
![Page 96: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/96.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Vorteile von DatenbanksystemenNachteile von Datenbanksystemen
Nachteile von Datenbanksystemen
nicht alle Datenbanksysteme bieten die genannten VorteileAufwand nicht immer gerechtfertigtinsbesondere unterschiedliche Sichten aufwändigBeherrschbarkeit großer Datenmengen verleitet zuausufernder Datensammlung oder Verknüpfung von Daten
Mißachtung des Datenschutzes, insbesondere dergebotenen Datensparsamkeit drängt sich u.U. auf
K. Puschke MySQL
![Page 97: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/97.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Vor- und Nachteile von Datenbanken
15 Datenbanken vs. Dateien
16 Relationale Datenbanksysteme
K. Puschke MySQL
![Page 98: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/98.jpg)
Datenbanken vs. DateienRelationale Datenbanksysteme
Relationale Datenbanksysteme
Daten stark strukturiertnachträgliche Änderung des Schemas problematisch
gut geeignet für stark strukturierte Datenz.B. Adressdatenweniger geeignet für flexible Strukturenz.B. user generated content
nicht für verteilte Systeme optimierthohe Verbreitung auch in diesen Bereichenlange Zeit quasi alternativlos
K. Puschke MySQL
![Page 99: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/99.jpg)
Aggregierte Daten
Teil VII
Datenbank manipulieren - WeitereMöglichkeiten
K. Puschke MySQL
![Page 100: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/100.jpg)
Aggregierte Daten
Datenbank manipulieren - Weitere Möglichkeiten
17 Aggregierte Daten
K. Puschke MySQL
![Page 101: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/101.jpg)
Aggregierte Daten
Aufgaben
Aggregierte DatenCOUNT, SUM, MAX,...GROUP BY, HAVING
K. Puschke MySQL
![Page 102: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/102.jpg)
Aggregierte Daten
Aggregierte Daten
COUNT
gibt Anzahl der Datensätze ausSELECT COUNT(*) FROM KundInnen WHEREStadt=’WIEN’liefert Anzahl der KundInnen aus Wien
SUM,AVG,MAX,MIN
Summe, Durchschnitt, Maximum, MinimumSELECT SUM(Rechnungsbetrag) FROM Rechnungen
K. Puschke MySQL
![Page 103: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/103.jpg)
Aggregierte Daten
GROUP BY und HAVING
GROUP BY
läßt Zeilen mit gemeinsamem Attributwert aggregierenSELECT Name, COUNT(*) FROM KundInnengibt aus, wieviele KundInnen jeweils den gleichenNachnamen haben
HAVING
schränkt Ergebnisse einSELECT Name, COUNT(*) FROM KundInnen HAVINGCOUNT(*) > 1zeigt nur Namen, die mehrfach vorkommen
K. Puschke MySQL
![Page 104: Einstieg in relationale Datenbanken mit MySQL (Folien)](https://reader034.vdocuments.site/reader034/viewer/2022042714/5558c399d8b42a995d8b45a5/html5/thumbnails/104.jpg)
Aggregierte Daten
GROUP BY und HAVING
HAVING vs. WHEREWHERE stellt Bedingungen an die Spalten, die in dieBerechnung eingehenHAVING stellt Bedingungen an die Ergebnisse derBerechnung
SpaltenKeine Spalten in SELECT und HAVING eintragen, die nicht inGROUP BY stehen!
K. Puschke MySQL