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

Post on 30-Jun-2020

6 views 0 download

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

DATENMODELLIERUNG UND DATENBANKSYSTEME1. GROSSE DATENMENGEN – KEIN PROBLEM!

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

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

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

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

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!

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

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

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

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

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

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

DATENMODELLIERUNG UND DATENBANKSYSTEME

2. RELATIONALE DATENBANKSYSTEME

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

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

2. RELATIONALE DATENBANKSYSTEME

• Tabelle CDs:

19.03.2020J. Stricker 16

2. RELATIONALE DATENBANKSYSTEME

• Tabelle Nutzer:

19.03.2020J. Stricker 17

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

2. RELATIONALE DATENBANKSYSTEME

• Für beide Tabellen gilt (2):

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

19.03.2020J. Stricker 19

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

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

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

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

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

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

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

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

2. RELATIONALE DATENBANKSYSTEME

• Datentypen in ACCESS:

• mehr dazu hier

19.03.2020J. Stricker 28

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

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

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

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

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

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

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

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

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

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

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

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

2. RELATIONALE DATENBANKSYSTEME

• Fertiges Formular:

• Entwurfsansicht:

• Datenblattansicht

19.03.2020J. Stricker 41

2. RELATIONALE DATENBANKSYSTEME

• Wechsle in die Formularansicht (rechte Maustaste)

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

19.03.2020J. Stricker 42

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

DATENMODELLIERUNG UND DATENBANKSYSTEME

3. EINFACHE DATENBANKABFRAGEN

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

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

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

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

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

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

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

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

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

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

3. EINFACHE DATENBANKABFRAGEN

• die Tabelle wählen und dasAttribut

• „weiter“

19.03.2020J. Stricker 55

3. EINFACHE DATENBANKABFRAGEN

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

• „Fertig stellen“

19.03.2020J. Stricker 56

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

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

3. EINFACHE DATENBANKABFRAGEN

• Abfrage in SQL? SQL-Ansicht:

• Theorie und Praxis stimmen hier überein ;-

19.03.2020J. Stricker 59

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. EINFACHE DATENBANKABFRAGEN

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

19.03.2020J. Stricker 75

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

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

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

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

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

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

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

DATENMODELLIERUNG UND DATENBANKSYSTEME

4. WIE ENTWIRFT MAN EINE DATENBANK?

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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.

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

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

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

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

4.1. DAS ER-MODELL

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

19.03.2020J. Stricker 103

4.1. DAS ER-MODELL

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

19.03.2020J. Stricker 104

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

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

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

4.1. DAS ER-MODELL

• Lösung 1:

19.03.2020J. Stricker 108

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

4.1. DAS ER-MODELL

• Lösung 2:

19.03.2020J. Stricker 110

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

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

4.1. DAS ER-MODELL

• Lösung 3:

19.03.2020J. Stricker 113

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

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

4.1. DAS ER-MODELL

• Lösung 4:

19.03.2020J. Stricker 116

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

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

4.1. DAS ER-MODELL

• Lösung 5:

19.03.2020J. Stricker 119

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

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

4.1. DAS ER-MODELL

• Lösung 6:

19.03.2020J. Stricker 122

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

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

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

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

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

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

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

4.2. RELATIONALE PROGRAMMIERUNG

• Tabellen

• Datensätze

• Attributnamen

19.03.2020J. Stricker 130

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung (in 2. NF)

19.03.2020J. Stricker 147

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung: Schema

19.03.2020J. Stricker 148

4.2. RELATIONALE PROGRAMMIERUNG

• 2. Normalisierung: Ergebnis

19.03.2020J. Stricker 149

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

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

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

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

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalisierung schematisch

19.03.2020J. Stricker 154

4.2. RELATIONALE PROGRAMMIERUNG

• 3. Normalisierung: Ergebnis

19.03.2020J. Stricker 155

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

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

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

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

19.03.2020J. Stricker 158

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Beispiel Bibliothek:

19.03.2020J. Stricker 159

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

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

4.3. VOM ER-MODELL ZUM RELATIONALEN MODELL

• Beispiel:

19.03.2020J. Stricker 162

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

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

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

4.4. DATENEINGABE

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

19.03.2020J. Stricker 166

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

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

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

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

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.

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

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

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

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

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

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

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