Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... ·...

178
DATENMODELLIERUNG UND DATENBANKSYSTEME 1. GROSSE DATENMENGEN – KEIN PROBLEM!

Transcript of Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... ·...

Page 1: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

DATENMODELLIERUNG UND DATENBANKSYSTEME1. GROSSE DATENMENGEN – KEIN PROBLEM!

Page 2: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• In vielen Bereichen des Alltags sind sehr große Datenmengen zu verwalten.

• Beispiel Bibliotheken

• Gesamtbestand an Büchern und anderen Medienist oft größer als 106

• Verwaltung solcher Bestände häufig mit Problemen verbunden

• Daten müssen erfasst und einheitlich verwaltet werden.

? Nenne Daten, die in einer Bibliothek zu erfassen sind!

- z.B. Buchtitel, Verfasser, Verlag, Auflage, ISBN, Nutzername, Adresse …

19.03.2020J. Stricker 2

Page 3: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Nicht nur in Bibliotheken sind sehr viele Daten erfasst.

• weitere Beispiele sind:

• Verwaltung der Schülerdaten in der Schule

• Punktekonto in Flensburg

• Artikelverwaltung im Versandhaus

• Datenhaltung in einem Reisebüro

• Früher wurden Datenbestände anders geführt:

19.03.2020J. Stricker 3

Page 4: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Rückblick:

• bis Mitte der 1980er Jahre Datenverwaltungmeist über Karteikartensysteme

• in Bibliotheken nach Verfasser und Titel

• Patientenverwaltung in Arztpraxen

• Lohnbuchhaltung in Unternehmen

• Einige haben bis heute überlebt:

• Lernkarteien und Repetitorien

19.03.2020J. Stricker 4

Page 5: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Welche Vorteile bietet die elektronische Datenhaltung gegenüber einem Karteikartensystem?

• geringerer Platzbedarf (Festplatte vs. Aktenschrank)

• schnellerer und gezielterer Zugriff auf Daten (Ist das gesuchte Buch gerade entliehen?)

• Verwaltung riesiger Datenmengen möglich

• Vernetzung und Netzzugriff sorgen für Aktualität, Flexibilität und Nutzerfreundlichkeit

19.03.2020J. Stricker 5

Page 6: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Wie werden die Daten auf einem Computer abgebildet?

• Das klärt man am bestem mit einer Simulation.

• Bildet Gruppen von 3…4 Schülern, stellt mit Excel eine „CD-Bibliothek“ her, die …

• … 5…6 CD‘s erfasst (Interpret, Titel, Jahr, …),

• … Besitzer und Leihkunden sowie den Ausleihstatus (wer, bis wann, …)erfasst.

• Ist eine Tabellenkalkulation für das Problem geeignet?

• Welche Probleme treten auf?19.03.2020J. Stricker 6

Das Hauptproblem besteht darin, die Daten in Beziehung zueinander zu bringen!

Page 7: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Um Datenbanken auf Computern abzubilden, müssen die einzelnen Datenbereiche in Beziehung zueinander gebracht werden.

• MERKE: Ein Datenbanksystem ist eine systematische und strukturierte Zusammenfassung von Daten eines Problembereichs (Datenbasis) einschließlich der zur Eingabe, Verwaltung, Auswertung und Ausgabe erforderlichen Software (Datenbankmanagementsystem – DBMS).

• DATENBANKSYSTEM = DATENBASIS + DBMS

19.03.2020J. Stricker 7

Page 8: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Nach der Organisationder verwalteten Daten unterscheidet man folgende Datenbankmodelle:

19.03.2020J. Stricker 8

Datenbankmodelle

Relationale Datenbanken

Access, MySQL…

Hierarchische Datenbanken

Programmierung,Dateisysteme

Netzwerk-Datenbanken

www.freedb.orgwww.bahn.de

Page 9: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Zu den bekanntesten (relationalen) DBMS gehören:

• ORACLE (plattformübergreifend UNIX, Windows)

• MySQL (plattformübergreifend alle Betriebssysteme)

• Microsoft Access (Windows, Mac … Teil von Office)

• Base (Windows, Linux … Teil von OpenOffice)

19.03.2020J. Stricker 9

Page 10: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Auf Netzwerkdatenbanken, also große Datenbestände im Internet können wir jederzeit problemlos zugreifen.

• Beispiele für solche Informationsquellen im Internet sind:

• Zugauskunft der Bahn

• Digitale CD-Datenbank

• Schülerlexikon

19.03.2020J. Stricker 10

Page 11: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Bei der Arbeit mit Datenbanken ergeben sich zwei Schwerpunkte:1. Planung und praktische Umsetzung der DB

(Denkmodelle, welche in eine DB übertragen werden)2. Arbeit mit den Daten: Pflege der Datenbasis, Nutzung und Auswertung der

Daten

19.03.2020J. Stricker 11

Page 12: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

1. GROßE DATENMENGEN – KEIN PROBLEM!

• Daraus ergeben sich für ein DBMS folgende Aufgaben:1. Zentrale Speicherung und einheitliche Verarbeitung der Daten eines

Problembereichs2. Dienstleistung des Datenzugriffs m. H. von Datenbanksprachen3. Gewährleistung der Datensicherheit: Legalität von Zugriffen, Schutz vor

Bedienfehlern, Organisation des Zugriffs

19.03.2020J. Stricker 12

Page 13: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

DATENMODELLIERUNG UND DATENBANKSYSTEME

2. RELATIONALE DATENBANKSYSTEME

Page 14: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Die ersten Datenbanksysteme waren relationale Datenbanksysteme.

• Sie sind heute in der Praxis überwiegend anzutreffen.

• … daher werden wir im Folgenden damit arbeiten.

19.03.2020J. Stricker 14

Page 15: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Zurück zum Beispiel CD-Bibliothek:

• Funktioniert am besten mit 2 Tabellen:

• Tabelle CD (beinhaltet alle CDs, die geliehen werden können mit Nummer, Titel, Interpret, Jahr, …)

• Tabelle Nutzer (erfasst die Nutzer mit Nummer, Name, Vorname, …)

• Die Tabellen könnten so aussehen:

19.03.2020J. Stricker 15

Page 16: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Tabelle CDs:

19.03.2020J. Stricker 16

Page 17: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Tabelle Nutzer:

19.03.2020J. Stricker 17

Page 18: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für beide Tabellen gilt (1):

• In jeder Tabellenzeile stehen die Attributwerte für genau eine CD oder einen Nutzer –

• also für einen Datensatz

19.03.2020J. Stricker 18

Page 19: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für beide Tabellen gilt (2):

• Ein Datensatz besteht aus einzelnen Datenfeldern – Das sind die Tabellenzellen

19.03.2020J. Stricker 19

Page 20: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für beide Tabellen gilt (3):• Im Tabellenkopf stehen die Attributnamen. • Jede Spalte (auch Feld) beschreibt genau ein Attribut (über alle Datensätze)

• In jeder Zelle (in jedem Datenfeld) steht der Wert genau eines Attributs – der Attributwert

• Die Werte eines Attributs sind stets vom gleichen Typ (Text, Zahl, …)19.03.2020J. Stricker 20

Page 21: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• MERKE: Relationale Datenbanken organisieren den Datenbestand in Tabellen. Jede Tabelle wird durch ein Schema charakterisiert:

• Name der Tabelle

• Liste der Attribute

• Typen der Attributwerte

• Formale Darstellung:

• Tabellenname (Attribut_1: Typ_1, … Attribut_n: Typ_m)

19.03.2020J. Stricker 21

Page 22: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Formale Darstellung:

• Tabellenname (Attribut_1: Typ_1, … Attribut_n: Typ_m)

• Das Schema gibt stets Auskunft über die Struktur der Daten

• Gleichartige Datenobjekte werden durch ein gemeinsames Schema beschrieben:

• Tabelle „Nutzer“(Nutzer-Nr.: Zahl, Name: Text, Vorname: Text, Klasse: Text)

• Das Schema entspricht im Prinzip dem Tabellenkopf.

• Im Schema selbst stehen keine konkreten Attributwerte (die stehen ja in der Tabelle!)

19.03.2020J. Stricker 22

Page 23: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Was passiert, wenn mehrere Nutzer gleichen Namens auftauchen?

• Laura Meier?

• Sven Müller?

• Bereits zu Beginn ist es sinnvoll, sicherzustellen, dass jedes einzelne Datenobjekt eindeutig identifiziert werden kann!

• Das geschieht mit einem ausgezeichneten Attribut – dem Primärschlüssel.

• MERKE: Ein Primärschlüssel setzt sich aus einer (minimalen) Menge von Attributen eines Datenobjekts zusammen und dient u.a. der eindeutigen Identifikation

19.03.2020J. Stricker 23

Page 24: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Formale Darstellung mit Primärschlüssel:

• Tabellenname (Primärschlüssel: Typ_1, … Attribut_n: Typ_m)

• Exkurs Primärschlüssel:

• In objektorientierten Datenbanken wird jedes Objekt durch die Gesamtheit seiner Attribute (Datensatz) beschrieben.

• In relationalen DB ist ein Feld erforderlich, das fürdie eindeutige Identifikation des Datensatzes verantwortlich ist – der Primärschlüssel.

• Man unterscheidet natürliche und künstliche Primärschlüssel19.03.2020J. Stricker 24

Page 25: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Natürliche Primärschlüssel:

• greifen auf Attribute zurück, die in der realen Welt von Bedeutung sind

• Personenidentifikationsnummer

• Fahrzeugidentifikationsnummer (FIN)

19.03.2020J. Stricker 25

Page 26: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Künstliche Primärschlüssel (surrogate keys):

• Werden genutzt (und künstlich erzeugt), wenn im Datensatz keine eindeutig identifizierenden Attribute enthalten sind

• Nutzernummer (z. B. fortlaufende natürliche Zahl)

• EAN-Nummer von Waren

• Personalnummer

19.03.2020J. Stricker 26

Page 27: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Ein zweites, wesentliches Merkmal im Schema:

• Tabellenname (Primärschlüssel: Typ_1, … Attribut_n: Typ_m)

• …sind die Datentypen der Attribute (= Felddatentypen)

• in der Informatik existieren Klassen von Datentypen:

• Text, Zahl, Datum, Wahrheitswert

• haben Einfluss auf das Format des Attributwertes

19.03.2020J. Stricker 27

Page 28: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Datentypen in ACCESS:

• mehr dazu hier

19.03.2020J. Stricker 28

Page 29: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Somit lässt sich nun unsere Tabelle CD als Schema mit Datentypen darstellen:• Tabellenname (Primärschlüssel: Typ_1, … Attribut_n: Typ_m)• CD (CD-Nummer: Autowert; CD-Titel: Text; Interpret: Text; Jahr: Zahl)

• Entscheide, welche Attribute zusätzlich in die Tabelle CD aufgenommen werden sollen! Ergänze das Schema um die zusätzlichen Datentypen!• Anzahl Songs: Zahl• Spielzeit: Datum/ Zeit

19.03.2020J. Stricker 29

Page 30: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Gib für die Tabelle Nutzer notwendige Attribute und den Primärschlüssel an! Lege die Datentypen fest und stelle die Tabelle als Schema dar!

• Tabellenname (Primärschlüssel: Typ_1, … Attribut_n: Typ_m)

• Nutzer (Nutzer-Nummer: Autowert; Nachname: Text; Vorname: Text; Klasse: Text; Geburtsdatum: Datum/ Zeit)

19.03.2020J. Stricker 30

Page 31: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Nachdem die Tabellen als Schema festgelegt sind, müssen sie in unser DBMS (Access) eingefügt werden.

• Zuerst die Tabelle CD

• öffne zuerst das Programm MS-Access

• Leere Datenbank

19.03.2020J. Stricker 31

Page 32: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Wähle Namen und Speicherort für die neue DB (Erstellen)

• erstellt sofort neue Tabelle in Entwurfsansicht

• Speichere mit Menü: Datei/ „Speichern“ die Tabelle unter dem Namen „CD“

19.03.2020J. Stricker 32

Page 33: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Danach erscheint unsere Tabelle „CD“ in der Entwurfsansicht.

• Hier können Feldname, Felddatentyp und eine Beschreibung angegeben werden.

• Auch der Primärschlüssel kann hier gesetzt werden (rechte Maustaste auf das Feld).

• Fülle die Tabelle nun nach unserem Schema aus!

• CD (CD-Nummer: Autowert; CD-Titel: Text; Interpret: Text; Jahr: Zahl)

19.03.2020J. Stricker 33

Page 34: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Achtung: Im unteren Bereich können müssen Datentypen noch verfeinert werden!

• Inkrement heißt: jeweils um 1 erhöhen

• Text hat Feldgröße 255, kann aber geändertwerden

• bei Datum/Zeit kann man „Datum, kurz“ wählen

• bei Spielzeit kann man „Zeit, 12Std“ wählen

• Beim Wechsel in die Datenblattansicht (Kontextmenü!)ist die Tabelle schon einsatzbereit

19.03.2020J. Stricker 34

Page 35: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Lege nach dem beschriebenen Verfahren eine neue Tabelle „Nutzer“ an. Verwende dazu das Schema:• Nutzer (Nutzer-Nummer: Autowert; Nutzername: Text; Vorname: Text; Klasse:

Text; Geburtsdatum: Datum/ Zeit)• Achtung: Name ist ein reserviertes Wort! Besser ist „Nutzername“.• Speichern nicht vergessen!

19.03.2020J. Stricker 35

Page 36: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Die Tabellen sind nun erzeugt.

• Jetzt müssen Daten eingefügt werden.

• Verschiedene Möglichkeiten

• Datenblattansicht

• Formular

• Fülle zuerst DeineTabelle CD mit DeinenDatensätzen aus!

19.03.2020J. Stricker 36

Page 37: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für die Tabelle Nutzer erstellen wir ein Eingabeformular:

• Tabelle Nutzer wählen

• Register „Erstellen“

• Formular-Assistent

• …geht auch in der Entwurfsansicht

• Tabelle wählen

• Felder wählen

• Weitere Schritte „abnicken“

• Verändern?19.03.2020J. Stricker 37

Page 38: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für die Tabelle Nutzer erstellen wir ein Eingabeformular:

• Access bietet schon mal Eingabefelder für die Daten an.

• Mit: rechte Maustaste/ Entwurfsansicht gelangt man zu dieser.

• Die Elemente sind verschiebbar und formatierbar.

• In den Formularentwurfstools findet man zusätzliche Formularelemente.

19.03.2020J. Stricker 38

Page 39: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für die Tabelle Nutzer erstellen wir ein Eingabeformular:

• Schaltflächen lassen sich schnell einfügen:

• Sofort öffnet sich der:

19.03.2020J. Stricker 39

Page 40: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Für die Tabelle Nutzer erstellen wir ein Eingabeformular:

• Für eine Schaltfläche für einen neuen Datensatz:

• Datensatzoperationen / neuen Datensatz anfügen

• Schaltflächentext

• Interner Name

• Fertigstellen

19.03.2020J. Stricker 40

Aufgabe: Füge noch weitereSchaltflächen für :

Datensatz speichern und Datensatz löschen hinzu

Page 41: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Fertiges Formular:

• Entwurfsansicht:

• Datenblattansicht

19.03.2020J. Stricker 41

Page 42: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Wechsle in die Formularansicht (rechte Maustaste)

• Fülle die Tabelle Nutzer über Dein Formular mit Daten!

19.03.2020J. Stricker 42

Page 43: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

2. RELATIONALE DATENBANKSYSTEME

• Erstelle für die Tabelle CD ebenfalls ein Eingabeformular!

• Überlege, welche Schaltflächen sinnvoll sind!

• Füge die entsprechenden Buttons ein!

• Experimentiere mit anderen Formularelementen und dem Layout!

19.03.2020J. Stricker 43

Page 44: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

DATENMODELLIERUNG UND DATENBANKSYSTEME

3. EINFACHE DATENBANKABFRAGEN

Page 45: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Unsere CD-Datenbank ist nun erst einmal erzeugt.

• 2 Tabellen: CD und Nutzer

• Notwendige Daten sind eingetragen.

• Solche Datenbanken ohne Verknüpfungen heißen flatfile-Datenbanken.

19.03.2020J. Stricker 45

Page 46: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Welche Informationen könnte man aus unseren Tabellen gewinnen?

• Namen der CD´s

• Namen der Interpreten

• Namen der Nutzer

• Geburtsdaten der (einzelnen) Nutzer

• Erscheinungsjahr der CD

• …

19.03.2020J. Stricker 46

Page 47: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Datenbanken sind große Sammlungen von meist riesigen Datenbeständen.

• Datenerfassung ist wichtig.

• Viel wichtiger ist die Gewinnung von Informationen aus dem Datenbestand.

• Fragen dazu haben wir bereits formuliert:

19.03.2020J. Stricker 47

Page 48: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

a) Relationen

• Im folgenden Abschnitt werden wir lernen, wie man mit den Daten arbeitet und wie man die Datenbasis auswertet.

• Dafür existieren Grundlagen und Regeln:

• Datensätze werden in Relationen (= Beziehung, also die mathematische Beschreibung einer Tabelle)zusammengefasst. Dabei stammen die jeweiligen Attributwerte der verschiedenen Datensätze aus einem festgelegten Grundbereich. Relationen werden in relationalen Datenbanksystemen als Tabellen gespeichert.

19.03.2020J. Stricker 48

Page 49: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Relationen sind also vereinfacht unsere Tabellen.

• relational = tabellenorientiert

• Begriff : „relationale DB“ kommt von „Relation“

• Soll die Datenbasis ausgewertet werden, dann werden systematisch interessierende Daten aus den Tabellen der DB ermittelt.

• Für die Auswertung existieren verschiedene Befehle…

19.03.2020J. Stricker 49

Page 50: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

b) SELECT-Anweisungen

• wichtigster Befehl zur Auswertung der Datenbasis ist der „SELECT“-Befehl

• „SELECT“-Befehl wird üblicherweise als Anfrage bezeichnet

• Alle Befehle zur Auswertung bezeichnet man alsQuery Language (QL = Anfragesprache)

19.03.2020J. Stricker 50

Page 51: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Grundlegende Syntax der „SELECT“-Anweisung:

• SELECT attribut_1 [, attribut_2, …, attribut_n]

FROM table_1 [, table_2, …, table_m]

WHERE bedingung;

• nach SELECT stehen relevante Attribute in einer Liste

• hinter FROM stehen betreffende Tabellen (Relationen)

• derzeit nur eine Tabelle!

• später auch Abfragen über mehrere Tabellen

• hinter WHERE können eine oder mehrere Bedingungen stehen19.03.2020J. Stricker 51

Page 52: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• SELECT-Anweisung ist die Grundlage für die Auswertung einer Datenbasis

• eine solche Auswertung stellt eine Operation dar und heißt:Anfrage bzw. Abfrage an die Datenbasis

19.03.2020J. Stricker 52

Page 53: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Beispiel 1:

• Wir erzeugen mit dem Abfrage-Assistenten eine Abfrage

• über das Attribut „CD-Titel“

• aus der Tabelle „CD“

• mit der Bedingung, dass der Titel „Happiness“ ist

• Also in etwa so:

• SELECT „CD-Titel“

FROM „CD“

WHERE CD-Titel = „Happiness“

19.03.2020J. Stricker 53

Page 54: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Dazu wird Access mit unserer CD-Datenbank geöffnet.

• Im Register „Erstellen“ befindet sich im Band „Abfragen“ die SchaltflächeAbfrage-Assistent

• Assistent öffnet sich:

• mit „ok“ öffnet sich Auswahlabfrage-Assistent

19.03.2020J. Stricker 54

Page 55: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• die Tabelle wählen und dasAttribut

• „weiter“

19.03.2020J. Stricker 55

Page 56: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• vorgeschlagenen Namen akzeptieren und „Den Abfrageentwurf verändern“

• „Fertig stellen“

19.03.2020J. Stricker 56

Page 57: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• neues Register mit gewähltem Namen

• im unteren Bereich folgende Ansicht:

• entspricht in Tabellenname und Feld bereits unserer Abfrage:

• SELECT „CD-Titel“

FROM „CD“

WHERE CD-Titel = „Happiness“

• fehlt noch der „WHERE“-Bereich (Kriterium)

• Dort tragen wir ein: =„Happiness“

• „“ können weggelassen werden, ACCESS ergänzt automatisch.19.03.2020J. Stricker 57

Page 58: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Ergebnis:

• Abfrage wird mit gestartet.

• Ergebnis ist wie erwartet:

• Abfrage kann, wenn sie später verwendet werden soll, gespeichert werden:

19.03.2020J. Stricker 58

Page 59: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Abfrage in SQL? SQL-Ansicht:

• Theorie und Praxis stimmen hier überein ;-

19.03.2020J. Stricker 59

Page 60: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Beispiel 2:

• Suche nicht nach bestimmtem Titel, sondern nach allen Titeln, die mit „H“ beginnen

• gleich in der Entwurfsansicht:

• Neue Abfrage erstellen

• Name der Tabelle, Feld

• unter WHERE kein „=„ sondern „like „H*“

• Speichern (z.B. CD-Abfrage Titel H*), Ausführen

• … geht auch mit Buchstabengruppe z.B. *pi*

19.03.2020J. Stricker 60

Page 61: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Beispiel 3:

• Suche nach allen Titeln, Vorgehensweise ähnlich

• Das geht ebenfalls in der Entwurfsansicht:

• Neue Abfrage erstellen

• Name der Tabelle, Feld

• unter Kriterien nichts eintragen

• Speichern (z.B. CD-Abfrage alle Titel)

• Ausführen

19.03.2020J. Stricker 61

Page 62: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

c) Projektion

• Die von uns im letzten Beispiel gewählte Vorgehensweise, bestimmte Felder bzw. Spalten aus einer Tabelle für die Abfrage auszuwählen heißt „Projektion“

• Projektion: Auswahl von Attributen (Attributliste L) aus einer Relation (Tabelle) RFormale Schreibweise: P [L] RErgebnis dieser Operation ist eine Tabelle, die zwar alle Datensätze, jedoch nicht alle Attribute enthält.

• für unser letztes Beispiel konkret: Projektion CD = P [CD-Titel] CD

19.03.2020J. Stricker 62

Page 63: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Für unser letztes Beispiel konkret: Projektion CD = P [CD-Titel] CD

• P kennzeichnet Operation „Projektion“, die ausgeführt wird

• in Klammern Attributliste, die angezeigt werden soll

• schließlich noch Relation, auf die die Projektion angewandt werden soll.

• Realisierung einer Projektion mit SQL:

• SELECT attribut_1 [, attribut_2, …, attribut_n]FROM tabelle

19.03.2020J. Stricker 63

Page 64: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Aufgabe 2: Realisiere eine Projektion „Übersicht über die Nutzer mit Name, Vorname, Klasse!

• Gib die formale Schreibweise und die SQL-Anweisung an!

• Führe die Projektion aus!

• Lösung:

• formal: Projektion Nutzer = P [Nutzername, Nutzervorname, Klasse] Nutzer

• SQL: SELECT „ Nutzername, Nutzervorname, Klasse“FROM „Nutzer“

19.03.2020J. Stricker 64

Page 65: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Aufgabe 3: Realisiere eine Projektion „Übersicht über das Erscheinungsjahr aller erfassten CD´s“!

• Gib die formale Schreibweise und die SQL-Anweisung an!

• Führe die Projektion aus!

• Lösung:

• formal: Projektion CD = P [Jahr] CD

• SQL: SELECT „Jahr“FROM „CD“

19.03.2020J. Stricker 65

Page 66: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

d) Selektion

• Eine weitere Operation (die wir schon heimlich verwendet haben) ist die Selektion. Sie dient dazu, Datensätze nach bestimmten Kriterien auszuwählen

• Selektion: Auswahl derjenigen Datensätze aus einer Relation (Tabelle) R, die einer bestimmten Bedingung B genügenFormale Schreibweise: S [B] RErgebnis dieser Operation ist eine Tabelle, die alle Attribute enthält, jedoch nur die Datensätze, die der Bedingung genügen

• Beispiel : Selektion Jahr 2010 = S [Jahr=2010] CD

19.03.2020J. Stricker 66

Page 67: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Beispiel : Selektion Jahr 2010 = S [Jahr=2010] CD

• Erläuterungen:

• auch hier steht S für Operation (S=Selektion)

• formulierte Bedingung gibt an, dass nur Datensätze ausgewählt werden, die für das Attribut „Jahr“ den Attributwert „gleich 2010“ besitzen

• Die Operation bezieht sich auf Tabelle „CD“

• Realisierung einer Selektion mit SQL:

• SELECT *FROM tabelleWHERE bedingung; 19.03.2020J. Stricker 67

Page 68: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Realisierung einer Selektion mit SQL:

• SELECT *FROM tabelleWHERE bedingung;

• Der „*“ in der Anweisung steht für „alle Attribute“ in der Tabelle.

• Formal gilt hier die Auswahl von Datensätzen bei gleichzeitiger Angabe aller Felder

• Bedingung legt fest, ob der jeweilige Datensatz in die Ergebnistabelle kommt oder nicht

• Das geschieht in SQL mit WHERE19.03.2020J. Stricker 68

Page 69: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Vorgehensweise Access 2010/ 13/ 16/ 19:

• Abfrageentwurf

• Tabelle CD

• Doppelklick „Jahr“

• Kriterium 2010

• „SQL-Ansicht“

• Sternchen * hinter Select

19.03.2020J. Stricker 69

Page 70: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Bei uns sieht das so aus:

• SELECT *FROM CDWHERE Jahr = 2010;

• Der „*“ in der Anweisung steht für „alle Attribute“ in der Tabelle.

19.03.2020J. Stricker 70

Page 71: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Für die Angabe der Kriterien gibt es Regeln:

• Alphanumerische Werte in Hochkommata (CD-Titel=‘’25‘‘)

• Das „=„ bedeutet eine Identitätsprüfung.

• Numerische Werte wie in unserem Beispiel werden einfach eingegeben

• Relationszeichen wie „<,>, <>“ sind erlaubt.

• Boolesche Operatoren wie „AND, OR, NOT“ sind ebenfalls erlaubt.

19.03.2020J. Stricker 71

Page 72: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Aufgabe 4: Realisiere eine Selektion „Auswahl aller Nutzer der Bibliothek aus Deiner Klasse“!

• Aufgabe 5: Realisiere eine Selektion „Auswahl aller CDs, die vor 2005 erschienen sind“!

• Gib jeweils die formale Schreibweise und die SQL-Anweisung an!

• Führe die Selektionen aus!

19.03.2020J. Stricker 72

Page 73: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

e) Kombination von Projektion und Selektion

• Natürlich kann man Projektion und Selektion auch kombinieren.

• Bsp: Auswahl von Namen und Vornamen aller CD-Bibo-Benutzer einer Klasse z.B. 9a

• formale Beschreibung:

• SelektionKlasse9a = S [Klasse = „9a“] NutzerAuswahlNutzer = P [Name, Vorname] SelektionKlasse9a

• oder zusammengefasst

• AuswahlNutzer = P [Name, Vorname] {S [Klasse = „9a“] Nutzer}

19.03.2020J. Stricker 73

Page 74: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Bei uns sieht das so aus:

• SELECT Name, VornameFROM NutzerWHERE Klasse = „9a“;

• Hinter Select steht jetzt kein „*“ mehr. Es wird nicht nach „allen Attributen“ in der Tabelle gesucht, sondern nach Name und Vorname.

19.03.2020J. Stricker 74

Page 75: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Aufgabe 6: Realisiere eine Selektion „Auswahl aller CD-Interpreten, deren CD 2010 erschien“!

19.03.2020J. Stricker 75

Page 76: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

f) Sortierung

• Oft sehr sinnvoll, erhaltene Informationen nach bestimmtem Merkmal zu ordnen

• Das realisiert man mit einer Sortierung durch den Zusatz:

• ORDER BY attribut (aufsteigende Sortierung)ORDER BY attribut DESC (absteigende Sortierung)

• Die Sortierung erfolgt auf Grundlage des ASCII.

• Aufsteigend heißt dabei:

• 0 < 1 < … < 9 und A < B < … < Z und a < b < … < z

• aber auch 9 < A und Z < a19.03.2020J. Stricker 76

Page 77: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Eine Übersicht über CD-Titel und Interpreten aller in der CD-Bibo erfassten CDs, aufsteigend sortiert nach dem Titel, sieht das so aus:

• SELECT CDTitel, InterpretFROM CDORDER BY CDTitel;

19.03.2020J. Stricker 77

Page 78: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Aufgabe 7: Führe folgende Sortierungen aus:

• a) Übersicht aller Nutzer sortiert nach Name aufsteigend.

• b) Übersicht aller CDs sortiert nach Erscheinungsjahr absteigend.

19.03.2020J. Stricker 78

Page 79: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Es ist auch eine Sortierung nach mehreren Kriterien möglich. So können z.B. die CDs nach Erscheinungsjahr absteigend sortiert werden. Bei gleichem Jahr kann aber alphabetisch aufsteigend sortiert werden.

• Es zählt die Reihenfolge der Sortierkriterien!

• SELECT CDTitel, Interpret, JahrFROM CDORDER BY Jahr DESC, CDTitel;

Aufgabe 8: Führe die genannte Sortierung aus!

19.03.2020J. Stricker 79

Page 80: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

g) Aggregatfunktionen

• Mithilfe von Aggregatfunktionen können Datenbestände ausgewertet werden.

• COUNT (*) Anzahl der Datensätze

• SUM (attribut) Summe der Attributwerte

• MAX (attribut) größter Attributwert

• MIN (attribut) kleinster Attributwert

• AVG (attribut) Durchschnitt der Attributwerte

19.03.2020J. Stricker 80

Page 81: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Beispiel: Aus welchem Jahr ist die älteste CD der Sammlung?

• SQL: SELECT MIN (Jahr)FROM CD

• In Access geht man wie folgt vor:

• Neue Abfrage (Entwurfsansicht)

• Tabelle CD wählen, Attribut Jahr anzeigen (Doppelklick)

• Im Ribbon: Einfügen/Ausblenden „Summen“ klicken

• die Zeile „Funktionen“ erscheint

• dort Gruppierung durch Min ersetzen19.03.2020J. Stricker 81

Page 82: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

3. EINFACHE DATENBANKABFRAGEN

• Aufgabe 9: Ermittle die Anzahl der in der CD-Bibliothek erfassten CDs!

• Aufgabe 10: Ermittle die Gesamtzahl der Songs aller erfassten CDs!

• Aufgabe 11: Ermittle die durchschnittliche Spielzeit aller erfassten CDs!

19.03.2020J. Stricker 82

Page 83: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

DATENMODELLIERUNG UND DATENBANKSYSTEME

4. WIE ENTWIRFT MAN EINE DATENBANK?

Page 84: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4. WIE ENTWIRFT MAN EINE DATENBANK?

• Grundlagen der Datenmodellierung schon lange

• an der Zeit, ein geeignetes System herzustellen

• System ist formal zu beschreiben

• dafür gibt es eine Reihe von Techniken

• 1. Station: Relationenmodell

19.03.2020J. Stricker 84

Page 85: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Entity-Relationship Modellierung mit Abstand häufigste und erfolgreichste Technik

• besteht aus einer Menge von Entitätsklassen und Beziehungen zwischen diesen Entitätsklassen

19.03.2020J. Stricker 85

Page 86: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• jedes Attribut genau einer Entitätsklasse oder genau einer Beziehung zugeordnet

• jede Beziehung verbindet mindestes 2 Entitätsklassen

• in jeder Beziehung wird jeder beteiligten Entitätsklasse genau eine Kardinalität zwischen 1 und n zugeordnet (auch [a, .. b] für minimal a und maximal b)

• Entitätsklassen und Attribute mit Substantiven (Singular) bezeichnet

• Beziehungen mit Verben (3. Person) bezeichnet

19.03.2020J. Stricker 86

Page 87: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Entities (Objekte) stellen Informationseinheiten dar, die für das Modell von Belang sind:

• die Kundin Claire Grube,

• das Konto 35 43 31,

• der Betreuer Timo Beil, ...

• Entitäten werden durch ihre Attribute (Eigenschaften) beschrieben.

• Für jedes Attribut existiert ein Wertebereich, der die jeweils zugelassenen Attributwerte bestimmt:

• Vorname: Text; Vergabedatum: Datum; ..19.03.2020J. Stricker 87

Page 88: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Entitätsmengen (Klassen) beschreiben eine Menge von Entitäten mit gleicher Attributstruktur (d.h. mit denselben Attributen), aber evtl. unterschiedlichen Attributwerten:

• Kunde,

• Betreuer,

• Konto.

• Die Kardinalität beschreibt die Anzahl der Entitäten, die von der jeweiligen Klasse an der jeweiligen Beziehung beteiligt sein dürfen:

• 1 Kunde nimmt n Kredite auf.

19.03.2020J. Stricker 88

Page 89: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Das war jetzt ziemlich theoretisch.

• Besser ist das an einem Beispiel zu verstehen.

• Beispiel BIBLIOTHEK:

19.03.2020J. Stricker 89

Page 90: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• erster Schritt: Identifizierung der möglichen beteiligten Objekte.

• individuelle und identifizierbare Elemente, Individuen, Sachen, Begriffe, Ereignisse o.ä. innerhalb des Systems, die durch ihre Eigenschaften (Attribute) beschrieben werden

• Welche Objekte könnten das bei einer Bibliothek sein?

• Buch

• Autor

• Kunde

19.03.2020J. Stricker 90

Page 91: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Objekt Buch:

19.03.2020J. Stricker 91

Attributbezeichner Attribut

Titel Harry Potter und die Kammer des Schreckens

Autor Joanne K. Rowling

Verlag Carlsen Verlag

Ort Hamburg

Jahr 1999

ISBN 3-551-55168-5

Preis 15,99€

Exemplare 3

Zustand gut, sehr gut, gut

Standort Flur 2, Zimmer 4, Regal 3, Fach 7, Platz 6,7,8

Page 92: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Objekt Autor:

19.03.2020J. Stricker 92

Attributname Attribut

Name Rowling

Vorname Joanne K.

Land Großbritannien

andere Buchtitel Harry Potter und der Stein der Weisen (1997), Harry Potter und die Kammer des Schreckens (1998), Harry Potter und der Gefangene von Askaban (1999), Harry Potter und der Feuerkelch (2000), Harry Potter und der Orden des Phönix (2003), Harry Potter und der Halbblutprinz (2005), Harry Potter und die Heiligtümer des Todes (2007)

Page 93: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Objekt Kunde:

19.03.2020J. Stricker 93

Attributname Attribut

Name Latte

Vorname Andi

Geburtsdatum 13.12.2001

PLZ 98693

Ort Ilmenau

Telefon 03677/32168

Ausleihsperre keine

Page 94: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Objekte (Entitäten) mit gleicher Attributstruktur werden dann unter einem Oberbegriff zu Klassen (Entitätsmengen) zusammengefasst.

• Probleme in unserem Beispiel:

1. Wie können wir mehrere Exemplare eines Buchtitels verwalten?

• eigene Klasse für die Exemplare

2. Es gibt Probleme bei der Unterscheidung von Autoren und Kunden

• Autoren und Kunden bekommen unterschiedliche Attribute.

3. zu viele Einträge in Standort

+ eigene Tabelle „Standort“

19.03.2020J. Stricker 94

Page 95: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Nun sind unsere Entitätsklassen festgelegt:

• Die kompakte Darstellung erfolgt durch folgendes Schema:

• Klassenbezeichner (Attributbez. 1, Attributbez. 2, ...):

• Buchtitel (Titel, Autor, Verlag, Ort, Jahr, ISBN, Preis),

• Exemplar (Bezeichnung, Zustand, Aufnahmedatum),

• Standort (Zimmer, Regal, Fach, Platz),

• Autor (Name, Vorname, Land, andere),

• Kunde (Name, Vorname, Geburtsdatum, Straße, PLZ, Ort, Telefon, Sperre).

19.03.2020J. Stricker 95

Page 96: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Nun heißt unser Modell aber Entity-Relationship-Modell

• Also fehlen noch die relationships (Beziehungen)

• Festlegung der Beziehungen zwischen den Klassen:

• Buchtitel und Autor werden durch die Beziehung verfasst_von verbunden. Damit erübrigt sich gleichzeitig die Verwaltung von „weiteren Exemplaren“.

• Buchtitel und Exemplar können durch die Beziehung ist_vorhanden verknüpft werden,

• Exemplar und Kunde durch die Beziehung ausgeliehen_von,

• Exemplar und Standort durch steht_in.

19.03.2020J. Stricker 96

Page 97: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Jetzt geht es ans Zeichnen:

• Entitätsmengen immer in Rechtecke gefasst

• Attribute hängen in Ellipsen daran

• Relationen immer als Rauten gezeichnet

19.03.2020J. Stricker 97

Page 98: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Wer richtig arbeitet erhält unser ER-Modell (noch ohne die sog. Kardinalitäten)

19.03.2020J. Stricker 98

In umfangreicheren ER-Diagrammen lässt man die Attribute zugunsten der Übersichtlichkeit häufig weg.

Page 99: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Kardinalitäten:

• Zur Umsetzung des Entwurfs in ein reales Datenbanksystem ist es von großer Bedeutung, wie viele Entitäten der einen Seite durch eine bestimmte Beziehung mit Entitäten der anderen Seite verbunden werden können. Diese Eigenschaft heißt Kardinalität der Beziehung.

• In einem groben Ansatz gibt es dafür drei Möglichkeiten:

19.03.2020J. Stricker 99

Page 100: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Kardinalität 1:1

• Einem Objekt der einen Seite wird genau ein Objekt der anderen Seite zugeordnet und umgekehrt.

19.03.2020J. Stricker 100

Exemplar-Nr. steht_in Standort

4711 <-> Flur 3, Zimmer 2, Regal 6, Fach 1, Platz 15

10815 <-> Flur 5, Zimmer 1, Regal 5, Fach 2, Platz 1

1109 <-> Flur 7, Zimmer 2, Regal 1, Fach 3, Platz 27

Page 101: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Kardinalität 1:n

• Einem Objekt der einen Seite können mehrere Objekte der anderen Seite zugeordnet werden, umgekehrt aber höchstens ein Objekt.

19.03.2020J. Stricker 101

Buchtitel ist_vorhanden Exemplar-Nr.

Harry Potter und der Stein der Weisen <-> 10223

Harry Potter und der Stein der Weisen <-> 10224

Harry Potter und der Stein der Weisen <-> 10225

Page 102: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Kardinalität n:m

• Einem Objekt der einen Seite können mehrere Objekte der anderen Seite zugeordnet werden und umgekehrt.

• Dieser Fall kann immer in zwei Beziehungen mit den Kardinalitäten 1:m bzw. n:1 aufgelöst werden.

19.03.2020J. Stricker 102

Buchtitel verfasst_von Autor

Harry Potter und der Stein der Weisen <-> Joanne K. Rowling

Harry Potter und der Feuerkelch <-> Joanne K. Rowling

Harry Potter und der Orden des Phönix <-> Joanne K. Rowling

Das Basiswissen der Chemie <-> Charles E. Mortimer

Das Basiswissen der Chemie <-> Ulrich Müller

Das Basiswissen der Chemie <-> Johannes Beck

Page 103: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Tragt bitte in unser ER-Modell die entsprechenden Kardinalitäten ein!

19.03.2020J. Stricker 103

Page 104: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Unser ER-Modell mit dem Programm „Dia“ erstellt:

19.03.2020J. Stricker 104

Page 105: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Programm „Dia“ – im Tauschverzeichnis

• läuft portabel

• Ordner „Dia“ ins eigene Verzeichnis kopieren

• Dia/ bin/ diaw.exe

• Arbeitsfläche undKomponenten

• ER auswählen!

19.03.2020J. Stricker 105

Page 106: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 1:

• Erstelle ein E-R-Diagramm für die Kursbelegungen in einer Schule! Das Modell wird durch die Angaben in a) bis f) beschrieben. Trage in das Modell auch die Funktionalität der Beziehungen ein!

a. Jeder Schüler hat in Abhängigkeit seines Geschlechts eine Anrede.

b. Jeder Schüler kann mehrere Kurse belegen; er erhält für jeden Kurs eine Note. An jedem Kurs nehmen mehrere Schüler teil.

19.03.2020J. Stricker 106

Page 107: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 1:

c. Ein Lehrer kann mehrere Kurse halten. Jeder Kurs wird von einem Lehrer gehalten.

d. Jeder Kurs hat einen Schüler als Kurssprecher. Ein Schüler kann in mehreren Kursen Kurssprecher sein.

e. Jedes Fach hat einen Lehrer als Fachbetreuer; ein Lehrer ist nur in einem Fach Fachbetreuer.

f. Jeder Kurs gehört zu einem bestimmten Fach; verschiedene Kurse können zu dem gleichen Fach gehören.

19.03.2020J. Stricker 107

Page 108: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Lösung 1:

19.03.2020J. Stricker 108

Page 109: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 2:

• Erstelle ein E-R-Diagramm für das Modell eines Zoos, das durch die Angaben in a) bis d) beschrieben wird. Trage in das Modell auch die Funktionalität der Beziehungen ein.

a. Ein Pfleger versorgt mehrere Tiere.

b. Ein Tier frisst verschiedene Futtersorten in bestimmten Mengen; die gleiche Futtersorte kann aber auch von verschiedenen Tieren gefressen werden.

c. Alle Futtersorten können in allen Gebäuden gelagert werden.

d. In einem Gebäude können verschiedene Tiere wohnen.

19.03.2020J. Stricker 109

Page 110: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Lösung 2:

19.03.2020J. Stricker 110

Page 111: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 3:

• Erstelle ein E-R-Diagramm für ein Zugauskunftssystem. Das Modell wird durch folgende Angaben a) bis g) beschrieben. Trage in das Modell auch die Funktionalität der Beziehungen ein.

a. Jeder Zug wird durch eine Zugnummer gekennzeichnet und hat einen Zugtyp(ICE, IC, RE, .....)

b. Jeder Zug hat einen Start- und einen Zielbahnhof

c. Jeder Zug verbindet Bahnhöfe. Die Abfahrts- und Ankunftszeit soll ersichtlich sein.

19.03.2020J. Stricker 111

Page 112: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 3:

d. Jeder Bahnhof liegt in einer Stadt; in einer Stadt kann es mehrere Bahnhöfe geben.

e. Jede Stadt hat einen Namen und liegt in einem Bundesland.

f. Jeder Bahnhof hat einen Namen und mehrere Bahnsteige

g. Jeder Zug hält in einem Bahnhof an einem Bahnsteig

19.03.2020J. Stricker 112

Page 113: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Lösung 3:

19.03.2020J. Stricker 113

Page 114: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 4:

• Die Firma „Bugs“ fertigt verschiedene Geräte. Für die betriebliche Organisation dieser Firma soll eine relationale Datenbank eingesetzt werden. Dabei gilt folgendes:

a. jedes Bauteil hat eine Bezeichnung und eine eindeutige Nummer.

b. von jedem Teil werden Name des Herstellers, Einkaufspreis pro Stück und der Lagervorrat gespeichert

c. jedes herzustellende Gerät hat eine eindeutige Bezeichnung; hinterlegt werden: aktueller Lagerbestand und Verkaufspreis

d. Maschinen, die mehr als 1000,- EUR kosten werden unentgeltlich an die Kunden ausgeliefert; Geräte, die weniger kosten, werden gegen Gebühr geliefert

19.03.2020J. Stricker 114

Page 115: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

e. in der Datenbank wird hinterlegt, welche Bauteile für welche Geräte benötigt werden; es gibt Bauteile, die für mehrere Geräte verwendet werden.

f. von jedem Kunden werden KundenName, Adresse und Branche gespeichert

g. es kann verschiedene Kunden mit demselben Namen oder derselben Adresse geben

h. jedem Kunden ist ein Kundenbetreuer zugeordnet

i. es ist zu speichern, welche Kunden mit welchen Geräten beliefert werden

j. gewisse Kunden bekommen für bestimmte Geräte Sonderkonditionen; dies soll ggf. ebenfalls in der Datenbank vermerkt werden.

19.03.2020J. Stricker 115

Page 116: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Lösung 4:

19.03.2020J. Stricker 116

Page 117: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 5:

• Erstelle ein E-R-Diagramm den Osterhasen ;-). Das Modell wird durch folgende Angaben a) bis e) beschrieben. Trage in das Modell auch die Funktionalität der Beziehungen ein.

a. Jeder Osterhase wird durch eine O-Nummer gekennzeichnet und hat einen Namen (Ernst, Paul, …)

b. Ein Osterhase bearbeitet die Wünsche mehrerer Kinder. Ein Wunsch wird nur von einem OH bearbeitet. Der Wunsch selbst und eine eindeutige Nummer sollen ersichtlich sein.

19.03.2020J. Stricker 117

Page 118: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 5:

c. Ein Kind (eindeutige Nummer, Name, Alter) kann mehrere Wünsche äußern. Damit der Osterhase richtig liefert, wird die Adresse des Kindes gespeichert.

d. Die Osterhasen können mehrere Hilfsosterhasen beauftragen. Diese dürfen Aufträge von mehreren OH annehmen. Name, Telefonnummer und eine eindeutige Nummer der HOH werden in der DB abgelegt.

e. Ein Osterhase verwaltet eindeutig identifizierbare Lagerorte, aus denen alle Hilfsosterhasen Geschenke entnehmen können.

19.03.2020J. Stricker 118

Page 119: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Lösung 5:

19.03.2020J. Stricker 119

Page 120: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 6:

• Erstelle ein Entity-Relationship Modell, das die Beziehungen zwischen Student, Vorlesung, Professor und Assistent darstellt!

• Berücksichtige dabei folgende Abhängigkeiten

a. Studenten (Name, Semester, Matrikel) hören verschiedene Vorlesungen

b. Eine Vorlesung (Nummer, Titel, SWS) setzt eine oder mehrere andere Vorlesungen voraus. Eine Vorlesung kann Voraussetzung für eine oder mehrere Vorlesungen sein.

19.03.2020J. Stricker 120

Page 121: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Übung 6:

c. Professoren (Name, Nummer, Rang, Raum) lesen Vorlesungen.

d. Mehrere Assistenten (Nummer, Name, Fachgebiet) arbeiten für genau einen bestimmten Professor.

e. Ein Professor prüft Studenten in 1 oder mehreren Vorlesungen (Hinweis : eine Assoziation kann auch mehr als 2 Entitätsmengen verbinden).

f. Jede Prüfung führt zu einer Note

19.03.2020J. Stricker 121

Page 122: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.1. DAS ER-MODELL

• Lösung 6:

19.03.2020J. Stricker 122

Page 123: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4. WIE ENTWIRFT MAN EINE DATENBANK?

• Parallel zum ER-Modell könnte man auch gleich von Beginn an ein relationales Modell aufbauen.

• Damit wäre man bereits bei derImplementierung in einer relationalenDatenbank angekommen.

• Die Einhaltung von Normalformen sorgt bei diesem Vorgehen dafür, dass am Ende eine brauchbare Datenstruktur entsteht.

• Das Ergebnis dieser Strategie ist meist identisch mit dem Produkt, das man durch Umformung eines guten ER-Modells in ein relationales Modell erhält.

19.03.2020J. Stricker 123

Page 124: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Relationen:

• Name des Modells stammt vom mathematischen Begriff der Relation ab

• Eine mathematische Relation R ist eine Menge von Tupeln r = (r1, .. ,rn), deren Komponenten ri jeweils aus einer bestimmten Grundmenge Ri stammen.

• Dann ist die Menge aller Tupel genau das Kartesische Mengenprodukt R1 x R2 x .. x Rn.

• Eine Relation R ist eine Teilmenge dieses Produktes:

19.03.2020J. Stricker 124

Page 125: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• entscheidendes Merkmal einer Relation ist ihre (feste) Stelligkeit, d.h. die Anzahl der Elemente ihrer Tupel

• In der Informatik verwendet man als Grundmengen anstelle der in der Mathematik üblichen Zahlenmengen oft selbstdefinierte Mengen von Bezeichnern (Namen),

• sogenannte Sorten oder Typen, wie etwa • Ort = {Manebach, Wümbach¸ Ilmenau, Großbreitenbach, Singen, ...} oder • Männer = {Timo Beil, Jim Panse, Karsten Bier, ...}

19.03.2020J. Stricker 125

Page 126: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Beispiele für Relationen:1. Wir betrachten die Mengen A = {2, 3, 4} und B = { 5, 6, 8} sowie die Relation R1 =

{(a,b) A x B | a teilt b}. • Dann besteht das kartesische Produkt A x B aus den allen Paaren

(2-Tupeln), die man durch Kombination je eines Elementes aus A und aus B bilden kann, also aus 3*3 = 9 Paaren:

• A x B = {(2, 5), (2, 6,), (2, 8), (3, 5), (3, 6), (3, 8), (4, 5), (4, 6), (4, 8)}

• R1 enthält dagegen nur die Paare (a, b) A x B, für welche die Relationsbedingung „a teilt b“ erfüllt ist:

• R1 = {(2, 6), (2, 8), (3, 6), (4, 8)}.

19.03.2020J. Stricker 126

Page 127: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Beispiele für Relationen:2. Die Relation R2 = ist_verheiratet_mit

ist eine Teilmenge des 2-stelligen Mengenproduktes Männer x Frauen:• (Claire Grube, Jim Panse) є R2 g.d.w. Claire Grube ist_verheiratet_mit Jim Panse

19.03.2020J. Stricker 127

Page 128: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

3. Die 3-stellige Relation R3 = Adresse ist ein Teil des Mengenproduktes Straße x PLZ x Ort.

• Dazu könnten die folgenden 3-Tupeln gehören:

• (Sudetenstr. 16, 83059, Kolbermoor), (Westendstr. 4a, 83043 Bad Aibling)

• Je höher die Stelligkeit einer Relation ist, desto übersichtlicher wird es, sie in Tabellenform zu schreiben. Unser letzes Beispiel könnte dann etwa so aussehen:

19.03.2020J. Stricker 128

Sudetenstr. 16 83059 Kolbermoor

Westendstr. 4a 83043 Bad Aibling

Römerstr. 11 80333 München

Page 129: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Relationale Modell:

• Ein relationales Modell besteht aus einer Menge von Tabellen (T1, .. , Tn), die jeweils aus einer (grundsätzlich unbeschränkten) Menge von Datensätzen (Tupeln) mit gleicher Struktur bestehen:

• Ti = {d1, ..., dk}.

• Ein Datensatz di enthält eine Reihe von Daten, die als Werte der Attribute aufgefasst werden können.

• dk = (xk1, .., xkm).

• Die Struktur einer Tabelle wird durch eine Liste von Attributnamen (a1, .. am) festgelegt.

19.03.2020J. Stricker 129

Page 130: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Tabellen

• Datensätze

• Attributnamen

19.03.2020J. Stricker 130

Page 131: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Ein relationales Modell beschreibt also die logische Struktur von Datenbanken.

• Es kann daher direkt in die Tabellen der Datenbank umgesetzt werden.

19.03.2020J. Stricker 131

Page 132: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Schlüssel:

• Es muss möglich sein, auf jeden einzelnen Datensatz einer Tabelle über Attributwerte zugreifen zu können (z.B. zum Löschen)

• Dazu muss es ein Attribut (bzw. eine Menge von Attributen) geben, dessen Wert (bzw. Wertekombination) jeden Datensatz eindeutig identifiziert:

19.03.2020J. Stricker 132

Page 133: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Es muss gelten, (z.B. für Attribut a4): d1.x4 = d2.x4 ⇒ d1 = d2

• d.h. falls dieses Attribut in zwei Datensätzen den gleichen Wert hat, so sind diese Datensätze identisch.

• Ein solches Attribut (bzw. Attributkombination) heißt Schlüssel dieser Tabelle.

19.03.2020J. Stricker 133

Page 134: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Schlüssel für unser Modell

• Buchtitel (TitelNr, Titel, Autor, Verlag, Ort, Jahr, ISBN, Preis),

• Exemplar (ExemplarNr, Bezeichnung, Zustand, Aufnahmedatum),

• Standort (Zimmer, Regal, Fach, Platz),

• Autor (ANr, AName, AVorname, Land, andereBücher)

• Kunde (KNr, KName, KVorname, Geburtsdatum, Straße, PLZ, Ort, Telefon, Sperre).

19.03.2020J. Stricker 134

Page 135: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Anforderungen:

• Konsistenz

• beschreibt die Korrektheit der DB-internen Speicherungsstrukturen, Zugriffspfade und sonstigen Verwaltungsinformation (z.B. Wertebereiche, Zuordnung, eindeutiger Zugriff etc.)

• Integrität

• beschreibt die Korrektheit der Abbildung der Miniwelt (des betrachteten Ausschnittes der Wirklichkeit) in die in der DB gespeicherten Daten

19.03.2020J. Stricker 135

Page 136: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Anforderungen:

• die Integrität kann verletzt sein, obwohl die Konsistenz der DB gewahrt bleibt!

• ein DBS kann nur die Konsistenz der Daten sichern!

• ! trotzdem spricht man in der DB-Welt von Integritätssicherung (z. B. Referentielle Integrität, nicht Referentielle Konsistenz)

19.03.2020J. Stricker 136

Page 137: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Redundanz von Information:

• Dieselbe Information ist mehrfach dargestellt,

• z.B.: „83022 ist eine Postleitzahl von Rosenheim“

• das führt zu folgenden Problemen:

• Konsistenzverletzung: z.B. falsche Eingabe PLZ: 83022, Ort: Prien führt zu widersprüchlichen Angaben.

• Informationsverlust: Wenn der letzte Kunde mit PLZ 83022 aus der DB gelöscht wird, geht die Information: „83022 ist eine Postleitzahl von Rosenheim“ verloren.

• Lösung: Normalisierung (Transformation in Normalformen) zur Vermeidung dieser und ähnlicher Probleme

19.03.2020J. Stricker 137

Page 138: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Normalisierung:

• Bei Verzicht auf ER-Modellierung sind die ersten Entwürfe des relationalen Modells meist in mehrfacher Hinsicht nicht optimal.

• Um diese Schwachstellen zu beseitigen, gibt es eine Reihe von sogenannten Normalformen, die sicherstellen, dass der Entwurf datentechnisch zumindest brauchbar ist.

19.03.2020J. Stricker 138

Page 139: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 1. Normalform (1 NF):• Eine Tabelle ist in erster Normalform, falls alle Attribute nur atomare Werte

annehmen können.• Mengen, Aufzählungstypen oder Wiederholungsgruppen dürfen also nicht als Werte

der Attribute auftreten.• Nicht in erster Normalform befindet sich z.B. die folgende Tabelle• Probleme bei Verletzung: Zugriff auf Teildaten, Sortierung, Redundanz

19.03.2020J. Stricker 139

Page 140: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Für eine Überführung in die erste Normalisierung müsste das Attribut Adresse daher in drei Attribute Straße, HNr, PLZ und Ort mit jeweils atomaren Werten aufgeteilt werden.

19.03.2020J. Stricker 140

Page 141: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalform (2 NF): Verletzung

• Redundanz: „Peter Høeg ist der Autor von Titel Nr. 1222”

• Ursache: Mit jedem Exemplar werden alle Informationen zum Titel neu eingetragen

• Schlüssel für die gesamte Tabelle ist die Kombination von TitelNr mit ExNr, während TitelNr für die Attribute Titelname, Autor bereits als Schlüssel ausreicht

19.03.2020J. Stricker 141

Page 142: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Funktionale Abhängigkeit

• Notwendiges Konzept zur Definition der 2. und 3. Normalform!

• Ein Attribut a2 einer Tabelle T heißt funktional abhängig von einem Attribut a1, falls für alle Datensätze r, s ∈ T gilt:

• r.x1 = s.x1 ⇒ r.x2 = s.x2

• Wir schreiben dann kurz: a1 → a2 („a1 bestimmt a2 eindeutig“)

19.03.2020J. Stricker 142

Page 143: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Beispiel: In unserer Tabelle gilt:

• TitelNr → Titelname, TitelNr → Autor,

• Zustand und Verliehen sind weder von TitelNr noch von ExNr funktional abhängig, da z.B:

• ds2.ExNr = ds4.ExNr, aber nicht ds2.Zustand = ds4.Zustand

19.03.2020J. Stricker 143

Page 144: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• Funktionale Abhängigkeit von Kombinationen

• Ein Attribut a3 ist von der Kombination der Attribute a1, a2 funktional abhängig (kurz: a1 a2 → a3), wenn für alle Datensätze r,s ∈ R gilt:

• r.x1 = s.x1 ∧ r.x2 = s.x2 ⇒ r.x3 = s.x3

• In unserem Beispiel sind die Attribute Zustand und Verliehen von der Kombination aus TitelNr und ExNr funktional abhängig:

• TitelNr ExNr → Zustand, TitelNr ExNr → Verliehen

19.03.2020J. Stricker 144

Page 145: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalform:

• Eine Tabelle befindet sich in der zweiten Normalform, wenn

• sie die erste Normalform erfüllt und zusätzlich

• jedes Attribut, das zu keiner Schlüsselkombination gehört, nur von der gesamten Schlüsselkombination, nicht jedoch bereits von einem Teil davon funktional abhängig ist.

• Die Abhängigkeiten TitelNr → Titelname, TitelNr → Autor verletzen diese Bedingungen!

19.03.2020J. Stricker 145

Page 146: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung (in 2. NF)

• Abspaltung des Teiles der Tabelle, der die kritischen Attributen enthält.

• Der Teilschlüssel, von dem die problematische Abhängigkeit vorlag, wird dabei als neuer Schlüssel verwendet.

• Titel (TitelNr, Titelname, Autor)

• Der problematische Schlüssel verbleibt auch in der Ausgangstabelle und erhält so die ursprünglichen Zuordnungen:

• Exemplar (TitelNr, ExNr, Zustand, Verliehen)

19.03.2020J. Stricker 146

Page 147: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung (in 2. NF)

19.03.2020J. Stricker 147

Page 148: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung: Schema

19.03.2020J. Stricker 148

Page 149: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung: Ergebnis

19.03.2020J. Stricker 149

Page 150: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalform (3 NF): Verletzung

• Trotz Einhaltung der 2. Normalform immer noch Datenredundanzen möglich

• Das Attribut Ort enthält redundante Daten, da bereits das Attribut PLZ die Werte von Ort eindeutig festlegt.

• Hier gilt: KundeNr → PLZ → Ort

• Eine solche Kette funktionaler Abhängigkeiten heißt transitive funktionale Abhängigkeit. Genau diese Eigenschaft der Tabelle verursacht hier die Datenredundanz

19.03.2020J. Stricker 150

Page 151: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalform: Definition

• Eine Tabelle ist in dritter Normalform, wenn

• sie sich in zweiter Normalform befindet und

• kein Nichtschlüsselattribut transitiv abhängig von einem Schlüsselattribut ist.

• In unserem Beispiel verletzt KundeNr → PLZ → Ort also die 3. Normalform

19.03.2020J. Stricker 151

Page 152: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalisierung (in 3 NF)

• Aus dem „mittleren“ Schlüssel in der Kette der Abhängigkeiten wird zusammen mit den davon abhängigen Attributen eine neue Tabelle gebildet (hier Wohnort)

19.03.2020J. Stricker 152

Page 153: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalisierung (in 3 NF)

• Das „mittlere“ Schlüsselattribut verbleibt aber auch in der ursprünglichen Tabelle (hier Kunde_neu), um Informationsverluste zu vermeiden.

• Die davon funktional abhängigen Attribute werden jedoch aus der ursprünglichen Tabelle ausgegliedert.

19.03.2020J. Stricker 153

Page 154: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalisierung schematisch

19.03.2020J. Stricker 154

Page 155: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalisierung: Ergebnis

19.03.2020J. Stricker 155

Page 156: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4. WIE ENTWIRFT MAN EINE DATENBANK?

• Wer sich an die „ordentliche“ Vorgehensweise hält, kommt um das ER-Modell nicht herum.

• Dieses wird dann in das Relationenmodell überführt.

• Regeln dafür in diesem Kapitel

19.03.2020J. Stricker 156

Page 157: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Umsetzung von Entitäten

• Entitätsmengen (Klassen) werden zu Tabellen

• Attribute werden zu Spalten

• In jeder Tabelle wird ein Attribut (oder eine Kombination von Attributen) als Schlüssel definiert.

• Die Entitäten (Objekte) entsprechen dann den Zeilen (Datensätzen) der Tabellen.

19.03.2020J. Stricker 157

Page 158: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Aus den Klassen unseres ER-Modells erhalten wir die folgenden Tabellenschemata:

19.03.2020J. Stricker 158

Page 159: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Beispiel Bibliothek:

19.03.2020J. Stricker 159

Page 160: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Tabellen für Entitätsmengen (schon normalisiert):

• Buchtitel (ISBN, Titel, Autor, Verlag, Ort, Jahr, Preis),

• Exemplar (Exemplar_nr, Bezeichnung, Zustand, Aufnahmedatum, ISBN),

• Standort (Zimmer, Regal, Fach,Platz),

• Autor (A.-Nr, A.-Name, Vorname, Land),

• Kunde (K.-Nr, K.-Name, Vorname, Geburtsdatum, Straße, PLZ)

• Wohnort (PLZ, Ort)

19.03.2020J. Stricker 160

Page 161: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Umsetzung der Beziehungstypen (I):

• Eine 1:1-Beziehung kann (wahlweise!) in eine der beiden Tabellen der beteiligten Entitäten eingebaut werden:

• indem man das Schlüsselattribut einer der beiden Tabellen in die jeweils andere Tabelle aufnimmt (als Fremdschlüssel).

• Beispiel:

19.03.2020J. Stricker 161

Page 162: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Beispiel:

19.03.2020J. Stricker 162

Page 163: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Umsetzung der Beziehungstypen(II):

• 1:n-Beziehungen werden direkt umgewandelt,

• indem man das Schlüsselattribut der 1-Seite als Fremdschlüssel in die Tabelle der n-Seite aufnimmt.

• Beispiel:

19.03.2020J. Stricker 163

Page 164: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Umsetzung der Beziehungstypen(III):

• Beziehungen der Kardinalität m:n müssen durch eine eigene Tabelle repräsentiert werden, die aus den Schlüsselattributen der beiden beteiligten Entitätsmengen (und eventuell weiteren Attributen) aufgebaut wird.

• Beispiel:

19.03.2020J. Stricker 164

Page 165: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Referentielle Integrität:

• Eine sehr wichtige Konsistenzbedingung (!) (in der Datenbankliteratur als referentielle Integrität bezeichnet) besteht in der Absicherung, dass zu jedem Wert eines Fremdschlüssels in einer Tabelle tatsächlich ein Datensatz in der Tabelle, (deren Schlüssel der Fremdschlüssel ist) existiert.

• Der Name stammt von der Sichtweise, dass der Wert eines Fremdschlüssels auf einen Datensatz einer anderen Tabelle verweist (Referenz)

19.03.2020J. Stricker 165

Page 166: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• Aufgabe: Überführe unser ER-Modell der Bibliothek laut Regelwerk in ein Relationenmodell!

19.03.2020J. Stricker 166

Page 167: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• 1:1 Beziehungen: Schlüsselattribut einer der beiden Tabellen in die jeweils andere Tabelle (als Fremdschlüssel)

19.03.2020J. Stricker 167

Page 168: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• 1:n Beziehungen: Schlüsselattribut der 1-Seite als Fremdschlüssel in die Tabelle der n-Seite

19.03.2020J. Stricker 168

Page 169: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• 1:n Beziehungen: Schlüsselattribut der 1-Seite als Fremdschlüssel in die Tabelle der n-Seite

19.03.2020J. Stricker 169

Page 170: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• n:m Beziehungen: eigene Tabelle die aus den Schlüsselattributen der beiden beteiligten Entitätsmengen (und eventuell weiteren Attributen) aufgebaut ist

19.03.2020J. Stricker 170

Page 171: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• Ergebnis dieser Transformation istvollständiges relationales Modell.

• kann direkt in ein DBMS eingegeben werden

• zuerst Tabellen mit ihren Attributen

• Attribute von Verbindungen sind im Wertebereich identisch!

• Danach Beziehungen:

19.03.2020J. Stricker 171

Quelle: Jenny L.

Page 172: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• Tabellenbeziehung im Fenster Beziehungen

• durch Klicken und Ziehen

• Gemeinsame Felder müssen denselbenDatentyp (besser Feldgröße) aufweisen!

• Bsp:

• Primärschlüsselfeld vom Typ AutoWert

• Fremdschlüsselfeld kann vom Typ Zahlsein, wenn die Eigenschaft Feldgrößebeider Felder gleich ist

19.03.2020J. Stricker 172

Page 173: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• wenn noch keine Beziehungen definiert folgt Dialogfeld Tabelle anzeigen

• wenn nicht: klicke Entwurf / Beziehungen / Tabelle anzeigen.

• Tabellen und Abfragen werdenangezeigt

• nur Tabellen

• Hinzufügen: Doppelklick oderHinzufügen

19.03.2020J. Stricker 173

Page 174: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• Beziehungen bauen:

• ein Feld (meist den Primärschlüssel) aus einer Tabelle in das gemeinsame Feld (den Fremdschlüssel) in der anderen Tabelle ziehen

• mehrere Felder gleichzeitig ziehen mit STRG-TASTE

• Dialogfeld „Beziehung“ erscheint.

19.03.2020J. Stricker 174

Page 175: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• prüfen, ob angezeigte Feldnamen die gemeinsamen Felder für die Beziehung angeben

• Wenn ein Feldname falsch, anderes Feld aus der Liste aus.

• Um für Beziehung referenzielle Integrität zu erzwingen: Häkchen bei „Mit referenzieller Integrität“

19.03.2020J. Stricker 175

Page 176: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• Access zeichnet Beziehungslinie zwischen Tabellen

• bei „Mit referenzieller Integrität“wird Linie an den Enden dicker

• Zahl 1 und ∞ erscheinen

19.03.2020J. Stricker 176

Page 177: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• 1:1-Beziehung :

• Beide gemeinsamen Felder (meist das Primär- und das Fremdschlüsselfeld) müssen über einen eindeutigen Index verfügen.

• Eigenschaft Indiziert muss für diese Felder auf Ja (Ohne Duplikate) stehen

• Wenn beide Felder über einen eindeutigen Index verfügen, erstellt Access eine 1:1-Beziehung.

19.03.2020J. Stricker 177

Page 178: Datenmodellierung und Datenbanksystemeregionalzentrum-suedthueringen.de/aufgaben/AwdS... · •MySQL (plattformübergreifend alle Betriebssysteme) •Microsoft Access (Windows, Mac

4.4. DATENEINGABE

• 1:n-Beziehung :

• 1-Seite (meist Primärschlüssel) der Beziehung muss über eindeutigen Index verfügen.

• Indiziert: Ja (Ohne Duplikate)

• n-Seite darf keinen eindeutigen Index aufweisen

• darf über Index verfügen, muss jedoch Duplikate zulassen

• Indiziert: Nein oder auf Ja (Duplikate möglich)

19.03.2020J. Stricker 178