Einstieg in relationale Datenbanken
             mit MySQL

          Dr. Kerstin Puschke

          Workshop, Uni Salzbur...
Lizenz




  Lizenz
  Dieser Text steht unter einer Creative Commons
  Attribution-Share Alike 3.0 Germany Lizenz, siehe
 ...
Teil I: Einführung



  1   Grundbegriffe

  2   Architektur

  3   MySQL




                      K. Puschke   MySQL
Teil II: Datenbankabfragen



  4   Überblick verschaffen

  5   Einfache Abfragen

  6   Ergebnisse einschränken




    ...
Teil III: Datenbankdesign


  7    Einführung in die theoretischen Grundlagen

  8    Datenbankdesign in der Praxis

  9  ...
Teil IV: Datenbanksprachen




  11   Allgemein

  12   SQL




                   K. Puschke   MySQL
Teil V: Datenbanken erzeugen und manipulieren




  13   Daten eintragen, ändern, löschen

  14   Tabellen verknüpfen




...
Teil VI: Vor- und Nachteile von Datenbanken




  15   Datenbanken vs. Dateien

  16   Relationale Datenbanksysteme




  ...
Teil VII: Datenbanken manipulieren - Weitere
Möglichkeiten




  17   Aggregierte Daten




                           K. ...
Grundbegriffe
  Architektur
     MySQL




          Teil I

   Einführung




  K. Puschke    MySQL
Grundbegriffe
                        Architektur
                           MySQL


Einführung



  1   Grundbegriffe

  ...
Grundbegriffe
                           Architektur
                              MySQL


Datenbanksystem
Datenbank und D...
Grundbegriffe
                        Architektur
                           MySQL


Einführung



  1   Grundbegriffe

  ...
Grundbegriffe
                         Architektur
                            MySQL


Client und Server




     Datenban...
Grundbegriffe
                          Architektur
                             MySQL


Architektur
  Mainframe
      Gro...
Grundbegriffe
                        Architektur
                           MySQL


Einführung



  1   Grundbegriffe

  ...
Grundbegriffe
                      Architektur
                         MySQL


MySQL



   DBMS
   sehr verbreitet in We...
Grundbegriffe
                            Architektur
                               MySQL


MySQL
Clients und Anwendungen...
Überblick verschaffen
      Einfache Abfragen
Ergebnisse einschränken




                     Teil II

    Datenbankabfra...
Überblick verschaffen
                        Einfache Abfragen
                  Ergebnisse einschränken


Datenbankabfra...
Überblick verschaffen
                   Einfache Abfragen
             Ergebnisse einschränken


Aufgaben




  Überblick...
Überblick verschaffen
                      Einfache Abfragen
                Ergebnisse einschränken


Erste Befehle




...
Überblick verschaffen
                        Einfache Abfragen
                  Ergebnisse einschränken


Datenbankabfra...
Überblick verschaffen
                   Einfache Abfragen
             Ergebnisse einschränken


Aufgaben




  Einfache ...
Überblick verschaffen
                       Einfache Abfragen
                 Ergebnisse einschränken


Abfragen I

  SE...
Überblick verschaffen
                       Einfache Abfragen
                 Ergebnisse einschränken


Abfragen II

  L...
Überblick verschaffen
                        Einfache Abfragen
                  Ergebnisse einschränken


Datenbankabfra...
Überblick verschaffen
                   Einfache Abfragen
             Ergebnisse einschränken


Aufgaben




  Ergebniss...
Überblick verschaffen
                      Einfache Abfragen
                Ergebnisse einschränken


Ergebnisse einschr...
Überblick verschaffen
                      Einfache Abfragen
                Ergebnisse einschränken


Ergebnisse einschr...
Überblick verschaffen
                      Einfache Abfragen
                Ergebnisse einschränken


Abfragen einschrän...
Überblick verschaffen
                       Einfache Abfragen
                 Ergebnisse einschränken


Ergebnisse einsc...
Einführung in die theoretischen Grundlagen
             Datenbankdesign in der Praxis
                          Qualitätss...
Einführung in die theoretischen Grundlagen
                     Datenbankdesign in der Praxis     Datenbankmodell
        ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Datenbankmodell
          ...
Einführung in die theoretischen Grundlagen
                    Datenbankdesign in der Praxis     Datenbankmodell
         ...
Einführung in die theoretischen Grundlagen     Ablauf
                     Datenbankdesign in der Praxis     Konzeptionell...
Einführung in die theoretischen Grundlagen     Ablauf
                       Datenbankdesign in der Praxis     Konzeptione...
Einführung in die theoretischen Grundlagen     Ablauf
                   Datenbankdesign in der Praxis     Konzeptionelles...
Einführung in die theoretischen Grundlagen     Ablauf
                      Datenbankdesign in der Praxis     Konzeptionel...
Einführung in die theoretischen Grundlagen     Ablauf
                  Datenbankdesign in der Praxis     Konzeptionelles ...
Einführung in die theoretischen Grundlagen     Ablauf
                       Datenbankdesign in der Praxis     Konzeptione...
Einführung in die theoretischen Grundlagen     Ablauf
                   Datenbankdesign in der Praxis     Konzeptionelles...
Einführung in die theoretischen Grundlagen     Ablauf
                  Datenbankdesign in der Praxis     Konzeptionelles ...
Einführung in die theoretischen Grundlagen     Ablauf
                    Datenbankdesign in der Praxis     Konzeptionelle...
Einführung in die theoretischen Grundlagen     Ablauf
                  Datenbankdesign in der Praxis     Konzeptionelles ...
Einführung in die theoretischen Grundlagen     Ablauf
                    Datenbankdesign in der Praxis     Konzeptionelle...
Einführung in die theoretischen Grundlagen     Ablauf
                      Datenbankdesign in der Praxis     Konzeptionel...
Einführung in die theoretischen Grundlagen
                     Datenbankdesign in der Praxis
                            ...
Einführung in die theoretischen Grundlagen
                     Datenbankdesign in der Praxis
                            ...
Einführung in die theoretischen Grundlagen
                    Datenbankdesign in der Praxis
                             ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis
                              ...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis
                              ...
Einführung in die theoretischen Grundlagen
                    Datenbankdesign in der Praxis
                             ...
Einführung in die theoretischen Grundlagen
                     Datenbankdesign in der Praxis     Exkurs: Die MySQL-Dokume...
Einführung in die theoretischen Grundlagen
                  Datenbankdesign in der Praxis     Exkurs: Die MySQL-Dokumenta...
Einführung in die theoretischen Grundlagen
                       Datenbankdesign in der Praxis     Exkurs: Die MySQL-Doku...
Einführung in die theoretischen Grundlagen
                       Datenbankdesign in der Praxis     Exkurs: Die MySQL-Doku...
Einführung in die theoretischen Grundlagen
                       Datenbankdesign in der Praxis     Exkurs: Die MySQL-Doku...
Einführung in die theoretischen Grundlagen
                        Datenbankdesign in der Praxis     Exkurs: Die MySQL-Dok...
Einführung in die theoretischen Grundlagen
                       Datenbankdesign in der Praxis     Exkurs: Die MySQL-Doku...
Einführung in die theoretischen Grundlagen
                   Datenbankdesign in der Praxis     Exkurs: Die MySQL-Dokument...
Allgemein
         SQL




         Teil IV

Datenbanksprachen




   K. Puschke   MySQL
Allgemein
                          SQL



Datenbanksprachen




 11   Allgemein

 12   SQL




                    K. Pus...
Allgemein
                           SQL



Datenbanksprachen


    Data Definition Language (DDL)
    Definition des Datenb...
Allgemein
                          SQL



Datenbanksprachen




 11   Allgemein

 12   SQL




                    K. Pus...
Allgemein
                                SQL



SQL

      Structured Query Language
      Vorgänger: SEQUEL
      Sprach...
Allgemein
                                  SQL



SQL
Implementierungen




        sehr verbreitet, z.B. MySQL, PostgreS...
Daten eintragen, ändern, löschen
                 Tabellen verknüpfen




                                Teil V

Datenban...
Daten eintragen, ändern, löschen
                            Tabellen verknüpfen



Datenbanken erzeugen und manipulieren
...
Daten eintragen, ändern, löschen
                         Tabellen verknüpfen



Aufgaben




  Datenbank erzeugen und man...
Daten eintragen, ändern, löschen
                               Tabellen verknüpfen



Datenbank erzeugen und manipulieren...
Daten eintragen, ändern, löschen
                            Tabellen verknüpfen



Datenbank erzeugen und manipulieren
Da...
Daten eintragen, ändern, löschen
                               Tabellen verknüpfen



Datenbank erzeugen und manipulieren...
Daten eintragen, ändern, löschen
                            Tabellen verknüpfen



Datenbanken erzeugen und manipulieren
...
Daten eintragen, ändern, löschen
                         Tabellen verknüpfen



Deskriptoren für Objekte in SQL




     ...
Daten eintragen, ändern, löschen
                             Tabellen verknüpfen



Deskriptoren für Objekte in MySQL

  ...
Daten eintragen, ändern, löschen
                          Tabellen verknüpfen



Tabellen verknüpfen
JOIN




       Abfr...
Daten eintragen, ändern, löschen
                          Tabellen verknüpfen



Tabellen verknüpfen
Beispiel



        ...
Daten eintragen, ändern, löschen
                              Tabellen verknüpfen



Tabellen verknüpfen
Cross Join, Cart...
Daten eintragen, ändern, löschen
                           Tabellen verknüpfen



Tabellen verknüpfen
Theta Join




   V...
Daten eintragen, ändern, löschen
                         Tabellen verknüpfen



Aufgaben




  Tabellen verknüpfen
  JOIN...
Daten eintragen, ändern, löschen
                          Tabellen verknüpfen



JOIN-Syntax
INNER JOIN




       Zeilen...
Daten eintragen, ändern, löschen
                           Tabellen verknüpfen



JOIN-Syntax
OUTER JOIN




       Zeile...
Datenbanken vs. Dateien
   Relationale Datenbanksysteme




                            Teil VI

Vor- und Nachteile von Da...
Datenbanken vs. Dateien   Vorteile von Datenbanksystemen
               Relationale Datenbanksysteme    Nachteile von Date...
Datenbanken vs. Dateien   Vorteile von Datenbanksystemen
             Relationale Datenbanksysteme    Nachteile von Datenb...
Datenbanken vs. Dateien   Vorteile von Datenbanksystemen
                  Relationale Datenbanksysteme    Nachteile von D...
Datenbanken vs. Dateien   Vorteile von Datenbanksystemen
             Relationale Datenbanksysteme    Nachteile von Datenb...
Datenbanken vs. Dateien
               Relationale Datenbanksysteme



Vor- und Nachteile von Datenbanken




  15   Daten...
Datenbanken vs. Dateien
             Relationale Datenbanksysteme



Relationale Datenbanksysteme


     Daten stark struk...
Aggregierte Daten




                   Teil VII

Datenbank manipulieren - Weitere
        Möglichkeiten




            ...
Aggregierte Daten



Datenbank manipulieren - Weitere Möglichkeiten




  17   Aggregierte Daten




                     ...
Aggregierte Daten



Aufgaben




  Aggregierte Daten
  COUNT, SUM, MAX,...
  GROUP BY, HAVING




                      K...
Aggregierte Daten



Aggregierte Daten


  COUNT
     gibt Anzahl der Datensätze aus
      SELECT COUNT(*) FROM KundInnen ...
Aggregierte Daten



GROUP BY und HAVING

 GROUP BY
    läßt Zeilen mit gemeinsamem Attributwert aggregieren
     SELECT N...
Aggregierte Daten



GROUP BY und HAVING


 HAVING vs. WHERE
    WHERE stellt Bedingungen an die Spalten, die in die
    B...
Upcoming SlideShare
Loading in …5
×

Einstieg in relationale Datenbanken mit MySQL (Folien)

4,410
-1

Published on

Folien zum Workshop "Einstieg in relationale Datenbanken mit MySQL", September 2009

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,410
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
76
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Einstieg in relationale Datenbanken mit MySQL (Folien)

  1. 1. Einstieg in relationale Datenbanken mit MySQL Dr. Kerstin Puschke Workshop, Uni Salzburg September 2009 K. Puschke MySQL
  2. 2. Lizenz Lizenz Dieser Text steht unter einer Creative Commons Attribution-Share Alike 3.0 Germany Lizenz, siehe http://creativecommons.org/licenses/by-sa/3.0/de/ K. Puschke MySQL
  3. 3. Teil I: Einführung 1 Grundbegriffe 2 Architektur 3 MySQL K. Puschke MySQL
  4. 4. Teil II: Datenbankabfragen 4 Überblick verschaffen 5 Einfache Abfragen 6 Ergebnisse einschränken K. Puschke MySQL
  5. 5. Teil III: Datenbankdesign 7 Einführung in die theoretischen Grundlagen 8 Datenbankdesign in der Praxis 9 Qualitätssicherung 10 Datenbank definieren K. Puschke MySQL
  6. 6. Teil IV: Datenbanksprachen 11 Allgemein 12 SQL K. Puschke MySQL
  7. 7. Teil V: Datenbanken erzeugen und manipulieren 13 Daten eintragen, ändern, löschen 14 Tabellen verknüpfen K. Puschke MySQL
  8. 8. Teil VI: Vor- und Nachteile von Datenbanken 15 Datenbanken vs. Dateien 16 Relationale Datenbanksysteme K. Puschke MySQL
  9. 9. Teil VII: Datenbanken manipulieren - Weitere Möglichkeiten 17 Aggregierte Daten K. Puschke MySQL
  10. 10. Grundbegriffe Architektur MySQL Teil I Einführung K. Puschke MySQL
  11. 11. Grundbegriffe Architektur MySQL Einführung 1 Grundbegriffe 2 Architektur 3 MySQL K. Puschke MySQL
  12. 12. Grundbegriffe Architektur MySQL Datenbanksystem Datenbank und Datenbankmanagementsystem Datenbanksystem dient der Speicherung und Verwaltung von Daten besteht aus Datenbanken und Datenbankmanagementsystem (DBMS) Datenbank: strukturiert abgelegte Daten zu verwaltende Daten, z.B. Adressen Datenbankschema: Metadaten zur Datenbankdefinition Datenbankmanagementsystem: Software zur Verwaltung der Daten Datenbank definieren, erzeugen, manipulieren K. Puschke MySQL
  13. 13. Grundbegriffe Architektur MySQL Einführung 1 Grundbegriffe 2 Architektur 3 MySQL K. Puschke MySQL
  14. 14. Grundbegriffe Architektur MySQL Client und Server Datenbankserver : Software, die Datenbankdienste (ein Datenbanksystem) anbietet auch der Rechner, auf dem dieser Dienst läuft Anwendung oder Client greift auf den Datenbankserver zu K. Puschke MySQL
  15. 15. Grundbegriffe Architektur MySQL Architektur Mainframe Großrechner (Zugriff über Terminals) Zwei-Schichten-Architektur Datenbankserver Anwendung, Client Anwendungslogik und Darstellung/Benutzeroberfläche Drei-Schichten-Architektur Datenbankserver Anwendung (Anwendungslogik) Webserver oder Anwendungsserver (Darstellung) Browser oder Client des Anwendugnsservers K. Puschke MySQL
  16. 16. Grundbegriffe Architektur MySQL Einführung 1 Grundbegriffe 2 Architektur 3 MySQL K. Puschke MySQL
  17. 17. Grundbegriffe Architektur MySQL MySQL DBMS sehr verbreitet in Webanwendungen auch eingebettet in anderen Anwendungen schwedische Firma MySQL AB, jetzt Sun Microsystems, Übernahme durch Oracle kostenlose Community-Version, freie Software (GPL) kostenpflichtige Enterprise-Version K. Puschke MySQL
  18. 18. Grundbegriffe Architektur MySQL MySQL Clients und Anwendungen Kommandozeilenclient mysql Webinterface phpmyadmin MySQL GUI Tools ... Webanwendungen MediaWiki WordPress ... Anwendungen mit eingebetteter Datenbank Zimbra ... K. Puschke MySQL
  19. 19. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Teil II Datenbankabfragen K. Puschke MySQL
  20. 20. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbankabfragen 4 Überblick verschaffen 5 Einfache Abfragen 6 Ergebnisse einschränken K. Puschke MySQL
  21. 21. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Aufgaben Überblick verschaffen SHOW DATABASES, USE datenbank, SHOW TABLES, DESCRIBE tabelle K. Puschke MySQL
  22. 22. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Erste Befehle SHOW DATABASES zeigt alle Datenbanken USE datenbank wählt Datenbank datenbank aus SHOW TABLES zeigt Tabellen der gewählten Datenbank DESCRIBE tabelle zeigt Spalten der Tabelle an K. Puschke MySQL
  23. 23. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbankabfragen 4 Überblick verschaffen 5 Einfache Abfragen 6 Ergebnisse einschränken K. Puschke MySQL
  24. 24. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Aufgaben Einfache Abfragen SELECT, ORDER BY, LIMIT, NULL K. Puschke MySQL
  25. 25. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen I SELECT verlangt Angabe von Spalte(n) und Tabellen, die auszugeben sind * bedeutet alle Spalten der Tabelle SELECT Name,Vorname FROM KundInnen SELECT * FROM KundInnen ORDER BY sortiert Ausgabe SELECT Name,Vorname FROM KundInnen ORDER BY Name K. Puschke MySQL
  26. 26. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen II LIMIT beschränkt die Zahl der ausgegeben Einträge häufig mit ORDER BY kombiniert SELECT Name,Vorname FROM KundInnen LIMIT 5 NULL Kein Eintrag (z.B. für Kundin Müller keine Telefonnummer vermerkt): NULL NULL NULL ist etwas anderes als die Zahl Null oder ein leerer String! K. Puschke MySQL
  27. 27. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Datenbankabfragen 4 Überblick verschaffen 5 Einfache Abfragen 6 Ergebnisse einschränken K. Puschke MySQL
  28. 28. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Aufgaben Ergebnisse einschränken WHERE, AND, OR, UNION,DISTINCT K. Puschke MySQL
  29. 29. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken I WHERE schränkt Ergebnisse ein SELECT Name FROM KundInnen WHERE Stadt = ’Salzburg’ SELECT Name FROM KundInnen WHERE Vorname IS NULL K. Puschke MySQL
  30. 30. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken II AND und OR verknüpfen mehrere Bedingungen SELECT Name FROM KundInnen WHERE Stadt = ’Salzburg’ AND Vorname=’Clara’ K. Puschke MySQL
  31. 31. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Abfragen einschränken III UNION vereinigt Ergebnisse (SELECT Name FROM KundInnen WHERE Stadt =’Salzburg’) UNION (SELECT Name FROM KundInnen WHERE Stadt = ’Wien’) K. Puschke MySQL
  32. 32. Überblick verschaffen Einfache Abfragen Ergebnisse einschränken Ergebnisse einschränken IV SELECT DISTINCT gibt nur unterschiedliche Ergebnisse aus SELECT DISTINCT Stadt FROM KundInnen K. Puschke MySQL
  33. 33. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Qualitätssicherung Datenbank definieren Teil III Datenbankdesign K. Puschke MySQL
  34. 34. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Datenbankdesign 7 Einführung in die theoretischen Grundlagen Datenbankmodell Datenbankschema 8 Datenbankdesign in der Praxis 9 Qualitätssicherung 10 Datenbank definieren K. Puschke MySQL
  35. 35. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Datenbankmodell Konzept zur Beschreibung der Struktur einer Datenbank konzeptionelles Modell: formale Beschreibung eines Teils der Realität K. Puschke MySQL
  36. 36. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Konzeptionelles Modell formale Beschreibung eines Ausschnittes der Realität verbreitet: Entity-Relationship-Model (Gegenstand-Beziehungs-Modell) K. Puschke MySQL
  37. 37. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Datenbankmodell Konzept zur Beschreibung der Struktur einer Datenbank konzeptionelles Modell: formale Beschreibung eines Teils der Realität logisches Modell: Beschreibung der Implementierung K. Puschke MySQL
  38. 38. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Logisches Modell Beschreibung der Implementierung verbreitete Modelle: netzwerkartig hierarchisch relational objektorientiert objektrelational ... K. Puschke MySQL
  39. 39. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Relationales Modell E.F. Codd (1970) hohe Verbreitung seit den 80er Jahren, z.B. MySQL PostgreSQL Oracle ... Datenbank als Sammlung von Relationen (Tabellen) Relation: Menge von Tupeln (Datensätzen, Zeilen) unsortiert keine Duplikate Schema einer Relation (Tabellenstruktur) besteht aus Attributen (Spalten) K. Puschke MySQL
  40. 40. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Datenbankmodell Konzept zur Beschreibung der Struktur einer Datenbank konzeptionelles Modell: formale Beschreibung eines Teils der Realität logisches Modell: Beschreibung der Implementierung physisches Modell: Datenspeicherung, Zugriffspfade K. Puschke MySQL
  41. 41. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren 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
  42. 42. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Datenbankschema Datenbankschema Beschreibung der Datenbankstruktur gespeichert als Metadaten in der Datenbank folgt gewählten Datenmodellen konzeptionelles Schema ER-Modell: ER-Diagramm logisches Schema relationales Modell: Tabellen, Spalten, . . . physische Schema: Storage Engine und Indizierung K. Puschke MySQL
  43. 43. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Datenbankmodell Qualitätssicherung Datenbankschema Datenbank definieren Datenbankzustand Datenbankzustand Daten zu einem bestimmten Zeitpunkt K. Puschke MySQL
  44. 44. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Datenbankdesign 7 Einführung in die theoretischen Grundlagen 8 Datenbankdesign in der Praxis Ablauf Konzeptionelles Design: Entity-Relationship-Model Logisches Design: Relationales Schema Physisches Design: Storage Engine 9 Qualitätssicherung 10 Datenbank definieren K. Puschke MySQL
  45. 45. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Datenbankdesign Relationale Datenbanken entwerfen Anforderungsanalyse Geschäftsprozesse analysieren,. . . Konzeptionelles Design: konzeptionelles Schema entwerfen Anforderungen in formale Struktur überführen Entitiy-Relationship-Diagramm entwickeln Logisches Design: logisches Schema entwerfen Relationales Datenbankschema entwerfen ER-Diagramm in Tabellen, Spalten usw. übersetzen manuell oder softwaregestützt Physisches Design: Physische Schema entwerfen Storage Engine wählen Indizierung festlegen K. Puschke MySQL
  46. 46. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Entity-Relationship-Model Entitiy-Relationship-Model, ER-Modell, ERM, Gegenstand-Beziehungs-Modell: konzeptionelles Datenmodell zur formalen Beschreibung eines Ausschnitts der realen Welt P.P. Chen (1976) K. Puschke MySQL
  47. 47. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Entity-Relationship-Model Elemente eines Schemas Entitäten: Gegenstände, Personen,. . . Beziehungen: Verknüpfungen von Entitäten Attribute: Eigenschaften von Entitäten oder Beziehungen Attribute haben Werte (nicht modelliert) Primärschlüssel: Attribut (oder Kombination mehrerer Attribute), welches eine Entität oder Beziehung eindeutig kennzeichnet Kardinalität von Beziehungen: (mögliche) Anzahl beteiligter Entitäten K. Puschke MySQL
  48. 48. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine ER-Diagramm ER-Diagramm: grafische Darstellung eines ER-modellierten Schemas verschiedene Notationen vorhanden K. Puschke MySQL
  49. 49. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Erstellen von ER-Diagrammen Softwaretools Dia Microsoft Visio MySQL Workbench ... K. Puschke MySQL
  50. 50. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Elemente eines ER-Diagramms Entität: Rechteck Attribut: Kreis Beziehung: Raute Primärschlüssel: unterstrichen Kardinaliäten: Chen-Notation: 1 oder N Min-Max-Notation: Paare mit Einträgen 0,1 oder N, z.B. (1,N) K. Puschke MySQL
  51. 51. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine ER-Diagramm K. Puschke MySQL
  52. 52. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Aufgaben Datenbankentwurf Anforderungsanalyse, ER-Diagramm K. Puschke MySQL
  53. 53. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Vom ER-Diagramm zum Relationalen Schema ein Primärschlüssel für jede Tabelle eine Tabelle für jede Entität eine Tabelle für jede n-m-Beziehung Attribute sind Spalten der jeweiligen Tabelle n-eins-Beziehung als Fremdschlüssel (in der Tabelle der Entität auf der n-Seite) K. Puschke MySQL
  54. 54. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Aufgaben Datenbankentwurf Relationales Schema, ER-Diagramm in Tabellen überführen K. Puschke MySQL
  55. 55. Einführung in die theoretischen Grundlagen Ablauf Datenbankdesign in der Praxis Konzeptionelles Design: Entity-Relationship-Model Qualitätssicherung Logisches Design: Relationales Schema Datenbank definieren Physisches Design: Storage Engine Storage Engine Physisches Schema zuständig für Datenspeicherung setzt physisches Modell um MySQL bringt mehrere Storage Engines mit weitere Engines können eingebunden werden Standard Engine in MySQL: MyISAM Index Sequential Access Method zunehmend verbreitet: InnoDB wir verwenden die Standardeinstellungen K. Puschke MySQL
  56. 56. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Normalform Qualitätssicherung Datenbank definieren Datenbankdesign 7 Einführung in die theoretischen Grundlagen 8 Datenbankdesign in der Praxis 9 Qualitätssicherung Normalform 10 Datenbank definieren K. Puschke MySQL
  57. 57. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Normalform Qualitätssicherung Datenbank definieren Aufgabe Normalform Negativbeispiel diskutieren K. Puschke MySQL
  58. 58. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Normalform Qualitätssicherung Datenbank definieren Normalform Normalform Jedes Attribut, das kein Schlüssel ist, hängt direkt vom Schlüssel ab, vom gesamten Schlüssel, und zwar nur vom Schlüssel K. Puschke MySQL
  59. 59. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Normalform Qualitätssicherung Datenbank definieren Daten in Normalform keine Anomalien Konsistenz der Daten keine Redundanzen einfache Wartung effizientes Suchen und Bearbeiten K. Puschke MySQL
  60. 60. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Normalform Qualitätssicherung Datenbank definieren Normalisierung Normalisierung = in Normalform bringen verschiedene Algorithmen ER-Diagramme und daraus abgeleitete relationale Schemata: häufig schon in Normalform ggf. “nachbessern” K. Puschke MySQL
  61. 61. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Normalform Qualitätssicherung Datenbank definieren Normalform Hinweis Die Darstellung zum Thema Normalisierung/Normalform ist sehr vereinfacht. Wer mehr wissen möchte, findet links im Wiki. K. Puschke MySQL
  62. 62. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Datenbankdesign 7 Einführung in die theoretischen Grundlagen 8 Datenbankdesign in der Praxis 9 Qualitätssicherung 10 Datenbank definieren Exkurs: Die MySQL-Dokumentation Tabellen anlegen K. Puschke MySQL
  63. 63. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Umgang mit der MySQL-Doku eckige Klammern umschliessen optionale Klauseln | bedeutet oder nur eine der genannten Alternativen kann/muss benutzt werden geschweifte Klammern: eine der Alternativen muss benutzt werden eckige Klammern: eine oder keine der Alternativen kann benutzt werden Beispiel 1: DROP TABLE [IF EXISTS] tbl_name Beispiel 2: {DESCRIBE | DESC} tbl_name [col_name | wild]} K. Puschke MySQL
  64. 64. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Datenbank definieren Tabellen anlegen Name der Tabelle Storage Engine Beschreibung der Spalten Name der Spalte Datentyp (INT Integer, VARCHAR(20) String mit max. 20 Zeichen) Eintrag obligatorisch? (NULL/NOT NULL) Eintrag eindeutig? (UNIQUE) Schlüssel? (PRIMARY KEY, impliziert NOT NULL und UNIQUE) Default-Wert? (DEFAULT) Extras? (z.B. AUTO_INCREMENT; AUTO_INCREMENT ist kein Standard-SQL!) K. Puschke MySQL
  65. 65. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Tabellen verwalten I Tabelle anlegen CREATE TABLE CREATE TABLE KundInnen (KundNr INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(50) NOT NULL, Vorname VARCHAR(25)) K. Puschke MySQL
  66. 66. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Tabellen verwalten II Informationen über Tabellen DESCRIBE und SHOW CREATE TABLE DESCRIBE KundInnen SHOW CREATE TABLE KundInnen K. Puschke MySQL
  67. 67. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Tabellen verwalten III Tabellenstruktur ändern ALTER TABLE ALTER TABLE KundInnen DROP COLUMN Vorname ... ALTER TABLE Vorsicht! Viele Stolperfallen! K. Puschke MySQL
  68. 68. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Tabellen verwalten IV Tabellen löschen DROP TABLE DROP TABLE KundInnen K. Puschke MySQL
  69. 69. Einführung in die theoretischen Grundlagen Datenbankdesign in der Praxis Exkurs: Die MySQL-Dokumentation Qualitätssicherung Tabellen anlegen Datenbank definieren Aufgaben Datenbank definieren CREATE TABLE, DROP TABLE, SHOW CREATE TABLE K. Puschke MySQL
  70. 70. Allgemein SQL Teil IV Datenbanksprachen K. Puschke MySQL
  71. 71. Allgemein SQL Datenbanksprachen 11 Allgemein 12 SQL K. Puschke MySQL
  72. 72. Allgemein SQL Datenbanksprachen Data Definition Language (DDL) Definition des Datenbankschemas Data Manipulation Language (DML) Daten abfragen und verändern Data Control Language (DCL) Zugriffsrechte Data Administration Language (DAL) finetuning, Zugriffspfad K. Puschke MySQL
  73. 73. Allgemein SQL Datenbanksprachen 11 Allgemein 12 SQL K. Puschke MySQL
  74. 74. Allgemein SQL SQL Structured Query Language Vorgänger: SEQUEL Sprache relationaler DBMS beinhaltet DDL, DML, DCL, DAL deklarative Sprache beschreibt, was zu tun ist, nicht wie erweitert um prozedurale Funktionalitäten (Ablaufsteuerung) Konvention: Befehle und Co. in Großbuchstaben schreiben SELECT * FROM kurse K. Puschke MySQL
  75. 75. Allgemein SQL SQL Implementierungen sehr verbreitet, z.B. MySQL, PostgreSQL, Oracle u.v.a. fast alle Systeme implementieren nicht den kompletten Standard implementieren eigene Erweiterungen daher: Kompatibilität der Systeme eingeschränkt K. Puschke MySQL
  76. 76. Daten eintragen, ändern, löschen Tabellen verknüpfen Teil V Datenbanken erzeugen und manipulieren K. Puschke MySQL
  77. 77. Daten eintragen, ändern, löschen Tabellen verknüpfen Datenbanken erzeugen und manipulieren 13 Daten eintragen, ändern, löschen 14 Tabellen verknüpfen K. Puschke MySQL
  78. 78. Daten eintragen, ändern, löschen Tabellen verknüpfen Aufgaben Datenbank erzeugen und manipulieren INSERT, UPDATE, DELETE K. Puschke MySQL
  79. 79. Daten eintragen, ändern, löschen Tabellen verknüpfen Datenbank erzeugen und manipulieren Daten eintragen INSERT INSERT INTO KundInnen (Name,Vorname) VALUES (’Example’,’Erna’) K. Puschke MySQL
  80. 80. Daten eintragen, ändern, löschen Tabellen verknüpfen Datenbank erzeugen und manipulieren Daten ändern UPDATE UPDATE KundInnen SET TelefonNr=’1234567’ WHERE KundNr=’666’ K. Puschke MySQL
  81. 81. Daten eintragen, ändern, löschen Tabellen verknüpfen Datenbank erzeugen und manipulieren Daten entfernen DELETE DELETE FROM KundInnen WHERE Stadt=’Wien’ K. Puschke MySQL
  82. 82. Daten eintragen, ändern, löschen Tabellen verknüpfen Datenbanken erzeugen und manipulieren 13 Daten eintragen, ändern, löschen 14 Tabellen verknüpfen K. Puschke MySQL
  83. 83. Daten eintragen, ändern, löschen Tabellen 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
  84. 84. Daten eintragen, ändern, löschen Tabellen verknüpfen Deskriptoren für Objekte in MySQL Vollständig Tabelle: Datenbank.Tabelle Spalte: Datenbank.Tabelle.Spalte Abkürzung Angabe der Datenbank kann entfallen, wenn die mit USE voreingestellte benutzt werden soll Angabe der Tabelle kann zusätzlich entfallen, wenn Spaltenname innerhalb der verwendeten Tabellen eindeutig K. Puschke MySQL
  85. 85. Daten eintragen, ändern, löschen Tabellen verknüpfen Tabellen verknüpfen JOIN Abfragen über mehrere Tabellen Tabellen verknüpfen (JOIN) verknüpfe Zeilen, ggf. gemäß einer Bedingung (an gemeinsame Attribute) über verknüpften Tabellen SELECT durchführen K. Puschke MySQL
  86. 86. Daten eintragen, ändern, löschen Tabellen verknüpfen Tabellen verknüpfen Beispiel KundInnen KundNr Name Vorname 1 Example Erna 2 Kundin Karla Bestellungen KundNr ArtikelNr 2 5 1 4 2 6 K. Puschke MySQL
  87. 87. Daten eintragen, ändern, löschen Tabellen verknüpfen Tabellen verknüpfen Cross Join, Cartesisches Produkt KundNr Name Vorname KundNr ArtikelNr 1 Example Erna 1 4 1 Example Erna 2 5 1 Example Erna 2 6 2 Kundin Karla 2 6 2 Kundin Karla 2 5 2 Kundin Karla 2 6 K. Puschke MySQL
  88. 88. Daten eintragen, ändern, löschen Tabellen verknüpfen Tabellen verknüpfen Theta Join Verknüpfungsbedingung: KundInnen.KundNr = Bestellungen.KundNr KundNr Name Vorname KundNr ArtikelNr 1 Example Erna 1 4 2 Kundin Karla 2 5 2 Kundin Karla 2 6 K. Puschke MySQL
  89. 89. Daten eintragen, ändern, löschen Tabellen verknüpfen Aufgaben Tabellen verknüpfen JOIN K. Puschke MySQL
  90. 90. Daten eintragen, ändern, löschen Tabellen verknüpfen JOIN-Syntax INNER JOIN Zeilen ohne Entsprechung in der anderen Tabelle entfallen SELECT Name, Vorname, ArtikelNr FROM KundInnen INNER JOIN Bestellungen ON KundInnen.KundNr = Bestellungen.KundNr K. Puschke MySQL
  91. 91. Daten eintragen, ändern, löschen Tabellen verknüpfen JOIN-Syntax OUTER JOIN Zeilen ohne Entsprechung in der anderen Tabelle werden mit NULL-Einträgen ergänzt LEFT JOIN: alle Zeilen der linken Tabelle, dazu nur Zeilen der rechten Tabelle, die eine Entsprechung in der linken Tabelle haben SELECT Name, Vorname, ArtikelNr FROM KundInnen INNER JOIN Bestellungen ON KundInnen.KundNr = Bestellungen.KundNr zeigt auch KundInnen, die nichts bestellt haben K. Puschke MySQL
  92. 92. Datenbanken vs. Dateien Relationale Datenbanksysteme Teil VI Vor- und Nachteile von Datenbanken K. Puschke MySQL
  93. 93. Datenbanken vs. Dateien Vorteile von Datenbanksystemen Relationale Datenbanksysteme Nachteile von Datenbanksystemen Vor- und Nachteile von Datenbanken 15 Datenbanken vs. Dateien Vorteile von Datenbanksystemen Nachteile von Datenbanksystemen 16 Relationale Datenbanksysteme K. Puschke MySQL
  94. 94. Datenbanken vs. Dateien Vorteile von Datenbanksystemen Relationale Datenbanksysteme Nachteile von Datenbanksystemen Vorteile von Datenbanksystemen Daten und Datenstruktur enthalten Datenstruktur als Metadaten im DBS gespeichert konkurrierende, gleichzeitige Zugriffe handhaben Fehlertoleranz Sicherheit (Zugriffsschutz) und Flexibilität durch Trennung von Anwendung und Daten große Datenmengen beherrschbar K. Puschke MySQL
  95. 95. Datenbanken vs. Dateien Vorteile von Datenbanksystemen Relationale Datenbanksysteme Nachteile von Datenbanksystemen Trennung von Anwendung und Daten Externe Sichten Trennung von physischer Ebene, logischer Ebene und externer Ebene (Sicht) Sicht: user-abhängige Zugriffsmöglichkeit und Präsentation der Daten Beispiel: Zugriffsschutz Beispiel: Prüfungsbüro hat Zugriff auf andere Daten als Studierendenverwaltung angepaßte Präsentation der Daten kleinere Änderung auf einer Ebene beeinflußt andere Ebenen nicht K. Puschke MySQL
  96. 96. Datenbanken vs. Dateien Vorteile von Datenbanksystemen Relationale Datenbanksysteme Nachteile von Datenbanksystemen Nachteile von Datenbanksystemen nicht alle Datenbanksysteme bieten die genannten Vorteile Aufwand nicht immer gerechtfertigt insbesondere unterschiedliche Sichten aufwändig Beherrschbarkeit großer Datenmengen verleitet zu ausufernder Datensammlung oder Verknüpfung von Daten Mißachtung des Datenschutzes, insbesondere der gebotenen Datensparsamkeit drängt sich u.U. auf K. Puschke MySQL
  97. 97. Datenbanken vs. Dateien Relationale Datenbanksysteme Vor- und Nachteile von Datenbanken 15 Datenbanken vs. Dateien 16 Relationale Datenbanksysteme K. Puschke MySQL
  98. 98. Datenbanken vs. Dateien Relationale Datenbanksysteme Relationale Datenbanksysteme Daten stark strukturiert nachträgliche Änderung des Schemas problematisch gut geeignet für stark strukturierte Daten z.B. Adressdaten weniger geeignet für flexible Strukturen z.B. user generated content nicht für verteilte Systeme optimiert hohe Verbreitung auch in diesen Bereichen lange Zeit quasi alternativlos K. Puschke MySQL
  99. 99. Aggregierte Daten Teil VII Datenbank manipulieren - Weitere Möglichkeiten K. Puschke MySQL
  100. 100. Aggregierte Daten Datenbank manipulieren - Weitere Möglichkeiten 17 Aggregierte Daten K. Puschke MySQL
  101. 101. Aggregierte Daten Aufgaben Aggregierte Daten COUNT, SUM, MAX,... GROUP BY, HAVING K. Puschke MySQL
  102. 102. Aggregierte Daten Aggregierte Daten COUNT gibt Anzahl der Datensätze aus SELECT COUNT(*) FROM KundInnen WHERE Stadt=’WIEN’ liefert Anzahl der KundInnen aus Wien SUM,AVG,MAX,MIN Summe, Durchschnitt, Maximum, Minimum SELECT SUM(Rechnungsbetrag) FROM Rechnungen K. Puschke MySQL
  103. 103. Aggregierte Daten GROUP BY und HAVING GROUP BY läßt Zeilen mit gemeinsamem Attributwert aggregieren SELECT Name, COUNT(*) FROM KundInnen gibt aus, wieviele KundInnen jeweils den gleichen Nachnamen haben HAVING schränkt Ergebnisse ein SELECT Name, COUNT(*) FROM KundInnen HAVING COUNT(*) > 1 zeigt nur Namen, die mehrfach vorkommen K. Puschke MySQL
  104. 104. Aggregierte Daten GROUP BY und HAVING HAVING vs. WHERE WHERE stellt Bedingungen an die Spalten, die in die Berechnung eingehen HAVING stellt Bedingungen an die Ergebnisse der Berechnung Spalten Keine Spalten in SELECT und HAVING eintragen, die nicht in GROUP BY stehen! K. Puschke MySQL
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×