Lichteffekte

Datenbanken verstehen


Autor: D. Supper, A. Grella, G. Kompa, Elektronikschule Tettnang

Datenbanksysteme übernehmen die strukturierte Erfassung und Verwaltung von elektronischen Daten.

In diesem Artikel wird der Aufbau und die Struktur von Datenbanken erklärt. Neben den Entity Relationship Modell werden Grundlagen zum Verständnis von Datenbanken gelegt.

Datenbanksysteme und das ER-Modell



Datenbanksysteme übernehmen die strukturierte Erfassung und Verwaltung von elektronischen Daten. Ein Datenbanksystem besteht aus zwei Teilen:

  1. die Software zur Verwaltung der Daten - DBMS (engl. database management system)
  2. der Datenbank mit den gespeicherten Daten - DB (engl. database)

Das ER-Modell (kurz ERM, engl. entity relationship model) wurde 1976 von Peter Chen zur Datenanalyse und Planung von Datenbanken vorgestellt:

  1. Es stellt die Beziehung zwischen verschiedenen Objekten (engl. entity) grafisch in einem ER-Diagramm (kurz ERD) dar. So können bspw. Projekte verschiedenen Mitarbeitern zugeordnet werden oder Adressen einzelnen Kunden.
  2. Jedes Objekt kann verschiedene Attribute (Eigenschaften) haben. Ein Mitarbeiter hat so bspw. die Eigenschaften: Geburtsdatum, ID und Adresse.

Man beachte: Unterstrichene Attribute werden für die Zuordnung zu anderen Objekten verwendet und als Primär- und Fremdschlüssel bezeichnet.

ERM-Beispiel 1

Jeder Mitarbeiter hat einen Namen, einen Vornamen und eine ID




ERM-Beispiel 2

Jedes Buch hat einen Titel, einen Autor und eine ID



ERM - Beziehungen von Objekten



Objekte können nun in unterschiedlichen Beziehungen zueinander stehen:

1 genau einen (= 1)
c kein oder genau einen (0|1)
m mindestens einen (≥ 1)
mc beliebig viele (≥ 0)

Die Beziehung der Objekte wird mit Hilfe von Verknüpfungsverben (Assoziation) und den entsprechenden Kürzeln (1, c, m, mc) realisiert. So wird die Beziehung immer in beide Richtungen beschrieben.

Man beachte, dass multiple Assoziationen wie folgt bezeichnet werden: m-n-, m-nc- und mc-nc-Beziehung. Nicht-1er-Beziehungen müssen in relationalen Datenbanksystemen in solche transfomiert werden.

1-1-Beziehung
Jeder Kunde besitzt genau eine Kontonummer. Umgekehrt wird jede Kontonummer von genau einem Kunden besessen.
  • 11

1-mc-Beziehung
Jeder Staff bearbeitet beliebig viele Aufträge. Umgekehrt wird jeder Auftrag von genau einem Staff bearbeitet.
  • 1mc

1-c-Beziehung
Jeder Mitarbeiter leitet eine oder keine Abteilung. Umgekehrt wird jede Abteilung von genau einem Mitarbeiter geleitet.
  • 1c

Entspann dich erstmal ...



Bei einer Temperatur unterhalb von -5 °C lassen sich ganz einfach frozen bubbles herstellen.

  • 100 ml Wasser
  • 1 EL Zucker
  • 25 ml Spülmittel
  • 25 ml Maissirup oder Glycerin

Wichtig: Den Zucker komplett auflösen und danach die Seifenlauge im Kühlschrank abkühlen lassen.

Übung 1 Entity Relationship Modell

1 mc
  1. Beschreibe das abgebildete Diagramm inklusive der Primär- und Fremdschlüssel.
  2. Ordne die Attribute zu.
  3. Nenne zwei Beispiele für eine 1-1-Beziehung.
  4. Nenne zwei Beispiele für eine 1-c-Beziehung.
  5. Nenne zwei Beispiele für eine 1-mc-Beziehung.

  1. Jeder Kunde erteilt beliebig viele Aufträge mit dem Fremdschlüssel idAuftrag. Umgekehrt wurde jeder Auftrag von genau einem Kunden mit dem Fremdschlüssel idKunde erteilt.
  2. Jeder Kunde hat eine idKunde (Primärschlüssel) und einen Nachnamen. Jeder Auftrag hat eine idAuftrag (Primärschlüssel) und ein Datum.

Übung 2 Welche Aussage ist wahr?

Wähle die korrekten Aussagen aus.

1c

Wähle zwei passende Aussagen zum ERD.
Wähle zwei Antworten.

  1. Jeder Mitarbeiter leitet beliebig viele Abteilungen.
  2. Jede Abteilung wird von einem oder keinem Mitarbeiter geleitet.
  3. Jeder Mitarbeiter leitet eine oder keine Abteilung.
  4. Jede Abteilung wird von genau einem Mitarbeiter geleitet.


mcc

Wähle zwei passende Aussagen zum ERD.
Wähle zwei Antworten.

  1. Jeder Patient belegt beliebig viele Zimmer.
  2. Jeder Patient belegt ein oder kein Zimmer.
  3. Jedes Zimmer wird von einem oder keinem Patienten belegt.
  4. Jedes Zimmer wird von beliebig vielen Patienten belegt.




Gib die passende Beschreibung des ERDs an.
Wähle eine Antwort.

  1. Jeder Mitarbeiter hat das Attribut Adresse.
  2. Jeder Mitarbeiter hat das Attribut Adresse und Name.
  3. Mitarbeiter können das Attribut Name haben.
  4. Die ID dient der Zuordnung für andere Objekte.



Gib die passende Beschreibung des ERDs an.
Wähle eine Antwort.

  1. Jeder Arzt hat das Attribut Fachgebiet.
  2. Jedes Fachgebiet hat beliebig viele Ärzte.
  3. Jeder Arzt hat eventuell das Attribut Fachgebiet
  4. Die ID ist nicht eindeutig.


1 mc

Wähle die passende Aussage zum ERD.
Wähle eine Antwort.

  1. Ein Chirurg behandelt Peter und Anna.
  2. Peter wird von seinem Hausarzt und Zahnarzt behandelt.
  3. Ein Arzt behandelt Peter.
  4. Ein Patient wird von beliebig vielen Ärzten behandelt.


mc 1

Wähle die passende Aussage zum ERD.
Wähle eine Antwort.

  1. Horst kauft mindestens einen Rasenmäher.
  2. Ein Apfel wird von Patrica und Dieter gekauft.
  3. Claus kauft Erdbeeren und Spargel.
  4. Kartoffeln werden von niemanden gekauft.

Normalisierung Vermeidung von Redundanzen



In einer Bibliothek führt eine Liste zum Verleih von Spielen. Die Analyse der Tabelle zeigt folgende strukturellen Schwächen:

  1. Es gibt Redundanzen (Wiederholungen): Adressen und Spiel
  2. Es existieren Inkonsitenzen (Unstimmigkeiten): PLZ von Fritz Huber
  3. Einfügeanomalie: Beim Hinzufügen eines neuen Spiels ohne direkte Ausleihe führt dies zu einer unvollständigen Zeile
  4. Löschanomalie: beim Löschen von Zeile 1 verschwinden Infos zu beiden Spiele aus der Liste
  5. Änderungsanomalie: Ändert sich die Adresse von Fritz Huber müssen alle betroffenen Zeilen geändert werden.
  6. zusammengesetzte Attribute verhindern Sortierung: Name besteht aus Vor- und Nachnamen
  7. mehrwertige Attribute führen zu falschen Abfrageergebnissen: mehr Spiele in einer Zeile
Name Adresse Datum idSpiel Spiel
Huber, Fritz Tal 1, 89075 Ulm 01.01.21 12, 21 Halma, Malefiz RV
Huber, Fritz Tal 1, 89079 Ulm 01.01.21 7 Risiko Hasbro
Susi Schnell Tal 2, 89075 Ulm 01.04.21 7 Risiko Hasbro
Pfiffig, Klaus Ried 3, 89075 Ulm 01.01.21 14 Siedler Kosmos

Normalisierung in drei Schritten



1. Normalform - 1NF

Das Attribut Adresse wird zerlegt in Straße, PLZ und Ort. Das Attribut Name wird zerlegt in Name und Vorname. Das mehrwertige Attribut Spiel wird in Titel und Hersteller zerlegt und in eine eigene Tabelle ausgelagert.

2. Normalform - 2NF

Die Attribute Titel und Hersteller sind nur vom Attribut idSpiel abhängig. Sie werden in eine neue Tabelle Spiel ausgelagert. Somit haben wir drei Tabellen.

3. Normalform - 3NF

Hier kann man noch eine eigene Tabelle für PLZ und Ort sowie den Hersteller machen.

Durch die Zerlegung von Tabellen steigt der Aufwand für die Abfragebearbeitung, da die Verbundoperationen zwischen den Tabellen berücksichtigt werden müssen. Deshalb werden in der Praxis teilweise Abstriche von den Normalformen bewusst in Kauf genommen.

Person

idPers Name Vorn PLZ Ort Straße
100 Huber Fritz 89075 Ulm Tal 1
101 Schnell Susi 89075 Ulm Tal 2
103 Pfiffig Klaus 89075 Ulm Ried 3

Leihe

fkPers↑ Datum fkSpiel↑ Rück
100 01.01.21 12 01.03.21
100 01.01.21 21 01.03.21
100 01.01.21 7 01.03.21
101 01.04.21 7
103 01.01.21 14 01.01.21

Spiel

idSpiel Titel Hersteller
12 Memory Ravensburger
21 Malefiz Ravensburger
7 Risiko Hasbro
14 Siedler Kosmos

Übung 3 Welche Aussage ist wahr?

Wähle die korrekten Aussagen aus.

Gegeben ist folgende Tabelle:

Auftrags­datum Artikel Menge Preis Kunde
01.03.2020 A01 Kro­kus 100 1,20 Bau­haus, Blau 59, 89077 Ulm
19.03.2020 A02 Tul­pen 50 1,00 Obi, Tal 81, 01277 Dres­den
19.03.2020 A03 Pri­meln 200 2,00 Obi, Tal 81, 01278 Dres­den

1. Nenne die strukturellen Schwächen der Tabelle.
Wähle beliebig viele Antworten.

  1. Inkonsistenzen
  2. Redundanzen
  3. mehrwertige Attribute
  4. zusammengesetze Attribute


2. Was versteht man unter einem mehrwertigen Attribut?
Wähle eine Antwort.

  1. Einträge mit MwSt.
  2. Name und Vorname in einer Zelle
  3. Einträge mit unterschiedlichen Einheiten
  4. mehrere Artikel in einer Zeile



Die obibge Tabelle wird in vier Objekte zerlegt.

Kunde

idK Name Str. PLZ Ort
K55 Bau­haus Blau 59 89077 Ulm
K54 Obi Tal 81 01277 Dres­den

Artikel

id­Art Bez
A01 Kro­kus
A02 Tul­pen
A03 Pri­meln

Auftrag

id­Auf Datum fKunde↑
Auf1 01.03.2020 K54
Auf2 19.03.2020 K55

Auftrags­position

id­Pos fidAuf↑ fidArt↑ Menge
Pos01 Auf1 A01 100
Pos02 Auf2 A02 50
Pos03 Auf2 A03 200

Begründe wieso das Objekt Auftrag und Auftragsposition nicht in einer Tabelle dargestellt werden können.
Wähle eine Antwort.

  1. Jeder Kunde hat nur eine Menge.
  2. Jedes Datum hat einen Kunden
  3. Jeder Auftrag hat nur eine Position.
  4. Ein Auftrag kann viele Positionen haben.


Begründe wieso Ort und PLZ in einer gemeinsamen Tabelle dargestellt werden können.
Wähle eine Antwort.

  1. Ein Ort kann mehrere PLZ haben.
  2. Jede PLZ hat einen eindeutigen Ort.
  3. Ort und PLZ müssen getrennt werden.
  4. Aufgrund weltweit identischer Ortsnamen.


mc 1

Welche Objekte stehen im ERD in obigen Zusammenhang?
Wähle zwei Antworten.

  1. Auftragsposition und Auftrag
  2. Auftrag und Auftragsposition
  3. Auftragsposition und Artikel
  4. Kunde und Auftrag


     

In welchem Zusammenhang stehen die obigen Objekte?
Wähle eine Antwort.

  1. 1m
  2. 1mc
  3. mc1
  4. mcnc

Normalisierung von Auftragstabellen



Webshop - mit n-m-Beziehung

Für einen Webshop benötigt man eine Tabelle für die Kundendaten 👤, für den Warenkorb 🛒 und für eine Artikelliste 🧩.

Dabei hat jeder Kunde beliebig viele Warenkörbe, aber jeder Warenkorb ist genau einem Kunden zugeordnet. Auf der anderen Seite hat jeder Warenkorb beliebig viele Artikel und jeder Artikel ist in beliebig vielen Warenkörben.

Schaut man nun bei den Tabellen mit der n-m-Beziehung zwischen Warenkorb 🛒 und Artikel 🧩 ins Detail, fallen bei den Attributen (Spalten) Ungereimtheiten auf. Jeder Warenkorb kann nur einen Artikel haben und jeder Artikel kann nur einem Warenkorb zugeteilt werden.

ERD - mit n-m-Beziehung

 1  ———  n 
 n  ———  m 

Warenkorb 🛒 Tabelle:

IDW IDA↑ Datum VP Menge
1 10 20.01.2023 7,23 2
2 10 20.01.2023 7,23 2

Artikel 🧩 Tabelle:

IDA IDW↑ UVP Lager
10 1 9,99 225

Webshop - mit zusätzlicher Koppel­tabelle

Neben den Tabellen Kunde 👤, Warenkorb 🛒 und Artikel 🧩 ergänzt man das ERD mit einer sogenannten Koppeltabelle, um die n-m-Beziehung aufzulösen.

Der einfachheitshalber kann man diese Tabelle aus den beiden Namen der beiden Tabellen mit n-m-Beziehung benennen (hier: "Warenkorbartikel").

Überprüft man nun die Attribute der Tabellen Warenkorb 🛒, Warenkorbartikel und Artikel 🧩 kann jeder Warenkorb beliebig viele Warenkorbartikel enthalten und jeder Artikel kann in beliebiger Menge in jeder Bestellung vorkommen. Beachte, dass Fremdschlüssel im Gegensatz zu Primärschlüsseln mehrfach vorkommen dürfen.

ERD - mit zusätzlicher Koppel­tabelle

 1  ———  n 
 1  ———  n 
 n  ———  1 

Warenkorb 🛒 Tabelle:

IDW Datum
1 20.01.2023

Warenkorb­artikel Tabelle:

IDWA IDW↑ IDA↑ VP Menge
1 1 10 7,23 2
2 1 11 21,99 3

Artikel 🧩 Tabelle:

IDA UVP Lager
10 9,99 225
11 25,00 120

Wortliste und Satzbausteine



die Daten­bank, -en gespeicherte Daten in strukturierten Tabellen - DB (engl. database)
das Daten­bank-Manage­ment­system, -e Software zur Verwaltung der Daten - DBMS (engl. database management system)
das ER-Modell, -e Modell (engl. entity relationship model) zur Datenanalyse und Planung von Datenbanken
das ER-Diagramm, -e passendes Diagramm zum ERM
die 1-1-Beziehung, -en genau einem Objekt wird genau ein Objekt und umgekehrt zugeordnet
die 1-c-Beziehung, -en einem Objekt werden kein oder genau ein Obejekt zugeordnet, umgekehrt aber genau eins
die 1-mc-Beziehung, -en einem Objekt werden beliebig viele Objekte zugeordnet, umgekehrt aber genau eins
die Nor­mali­sierung, - redundanzfreie Speicherung von Daten unter Vermeidung von Inkonsistenzen