1 Datenbanken Definition Programmsysteme zur

Werbung
Einführung in die Sportinformatik –Teil 1
Baca
Datenbanken
Definition
Programmsysteme zur Beschreibung, Speicherung, Wiedergeben bzw. Wiedergewinnung und
Bereitstellen von Daten
Datenbanksystem: System zur elektronischen Datenverwaltung, das große Datenmengen
effizient, widerspruchsfrei und dauerhaft speichern kann, außerdem kann es benötigte
Teilmengen für Benutzer oder Anwendungsprogramme bereitstellen, Das Datenbanksystem
besteht aus der Verwaltungssoftware und der Menge der zu verwaltenden Daten
Arten von Datenbanken
Hierarchische Datenmodelle: Baumstruktur, ausgehen von Wurzelobjekt gibt es
Verzweigungen zu untergeordneten Objekten, schnelles Finden von Daten, Änderungen in der
Struktur schwierig
Nachteile: keine Beziehungen zwischen mehreren Bäumen, keine Beziehungen zwischen
verschiedenen Ebenen eines Baumes
Netzwerkmodelle: komplizierte Beziehungen, Objekte wie in Netzwerk miteinander
verknüpft
Relationale Datenbanken: Sammlung von mehreren Tabellen in denen die Daten angeordnet
sind, Verbindung der Tabellen über Schlüsselelemente, am weitesten verbreitet, 1970 von
Edgar F. Codd (IBM) eingeführt, basiert auf Tabellen
Objektorientierte Datenmodelle: Prinzipien von objektorientierten Programmiersprachen
fließen ein, die Beziehungen zwischen Datenobjekten werden vom Datenbanksystem selbst
verwaltet, noch nicht sehr verbreitet
Relationales Datenmodell
Am weitesten verbreitet, basiert auf Tabellen, 1970 von Tedd Codd
Attribut: Name einer Spalte
Bereich: Wertebereich für die Inhalte einer Spalte
Tupel: eine Zeile
Relation: gesamte Tabelle
Null-Wert: Zellen ohne Eintrag
Schlüssel: Menge von Attributen, die eine Datenzeile (=Tupel) einer Tabelle eindeutig
identifiziert, meist als Primärschlüssel hervorgehoben, darf nur in genau einer Datenzeile
vorkommen
Ein Schlüsselattribut muss die Kriterien Eindeutigkeit und Minimalität erfüllen.
Primärschlüssel: Hauptschlüssel, ist nur ein Schlüsselkandidat vorhanden, muss dieser auch
als Primärschlüssel verwendet werden. Man kann einen aus mehreren Attributen
zusammengesetzten Primärschlüssel vermeiden, indem man ein zusätzliches Attribut einführt,
dass dann als Primärschlüssel verwendet wird.
Fremdschlüssel: Attribut, das als Primärschlüssel in einer anderen Tabelle verwendet wird,
Verbindung zwischen zwei Relationen, gibt an welche Datensätze (Tupel) der Relationen
miteinander in Verbindung stehen. Der Fremdschlüssel verweist auf den Primärschlüssel einer
anderen Tabelle der Datenbank. Bedingungen: gleicher Wertebereich wie das
Schlüsselattribut in der referenzierten Tabelle, für jedes Tupel der referenzierenden Tabelle
muss der Wert des Fremdschlüssels sich entweder als Schlüsselwert eines Tupels der
referenzierenden Tabelle finden oder null sein (=referenzielle Integrität)
Sekundärschlüssel: Durch die Wahl eines Primärschlüssels in einer Relation werden alle
anderen Schlüsselkandidaten automatisch zu Sekundärschlüsseln.
1
Einführung in die Sportinformatik –Teil 1
Baca
Operationen
Select: Auswahl von Zeilen einer Tabelle
Project: Auswahl von Spalten einer Tabelle
Join: Verbindung von zwei Tabellen, die über gemeinsame Attribute verfügen
Standardabfragesprache: SQL
SQL
Sprache, mit der relationale Datenbanken erstellt, manipuliert und abgefragt werden
Normalformen
Für eine optimale Datenstruktur sollten die Tabellen normalisiert sein. Normalisierung:
Überführung komplexer Beziehungen in einfache Beziehungen durch Aufteilung der Attribute
einer Tabelle auf mehrere Tabellen. Ziel: stabile und flexible Datenstrukturen, die bei
Erweiterung möglichst wenig abgeändert werden müssen
Erste Normalform:
jeder Attributwert ist atomar (=ist nicht aus mehreren Werten zusammen gesetzt)
Beispiel:
Mitgliedsnummer
52
53
54
Name
Meier Rudi
Müller Franz
Huber Lisa
Adresse
Lasallestraße 5, 1020 Wien
Schillerstraße 25, 2340 Mödling
Badstraße 12, 2340 Mödling
Sportart
Badminton
Tennis
Badminton
Trainer
Bauer
Reiter
Bauer
Der Attributwert „Adresse“ ist nicht atomar, da er aus mehreren Elementen wie Straße, Hausnummer, PLZ, Ort
zusammengesetzt ist. Der Attributwert „Name“ ist nicht atomar, da er aus den Elementen Nachname und
Vorname zusammengesetzt ist. Um eine Tabelle nun in 1. Normalform zu bringen, zerlegt man
zusammengesetzte Attribute in atomare Attribute:
Mitgliedsnummer
52
53
54
Nachname
Meier
Müller
Huber
Vorname
Rudi
Franz
Lisa
Straße
Lasallestraße
Schillerstraße
Badstraße
Hausnr.
5
25
12
PLZ
1020
2340
2340
Ort
Wien
Mödling
Mödling
Sportart
Badminton
Tennis
Badminton
Trainer
Bauer
Reiter
Bauer
Zweite Normalform:
erfüllt die erste Normalform, jede Spalte, die nicht zum Primärschlüssel gehört, ist vom
kompletten Primärschlüssel abhängig. Wenn der Primärschlüssel einer Tabelle nur aus einem
einzigen Element besteht, so ist eine Tabelle, die die 1. Normalform erfüllt automatisch auch
in 2. Normalform.
Beispiel:
Rohtabelle
Sportler
nr.
Nachname
Vorname
Geburtsjahr
Straße
Hausnr.
PLZ
Ort
Sportart
Trainernr.
Trainer
Vorname
Trainer
Nachname
Primärschlüssel: Sportlernr., Trainernr.
Die Attribute Nachname, Vorname, Geburtsjahr, Straße, Hausnummer, PLZ sind abhängig vom Schlüsselattribut
Sportlernr. Die Attribute TrainerNachname, TrainerVorname, Sportart jedoch nur vom Schlüsselattribut
Trainernr.
Daher teilen wir die Rohtabelle und schaffen neue Tabellen, in denen tatsächlich gilt, dass jedes Attribut, das
nicht zum Primärschlüssel gehört, tatsächlich vom Primärschlüssel abhängig ist.
Tabelle 1: Sportler
Sportlernr.
Nachname
Vorname
Geburtsjahr
Straße
Hausnummer
PLZ
Ort
Tabelle 2: Trainer
Trainernr.
Nachname
Vorname
Sportart
Tabelle 3: Hilfstabelle, Verbindung Sportler und Trainer
Trainernr.
Sportlernr.
2
Einführung in die Sportinformatik –Teil 1
Baca
Dritte Normalform:
erfüllt die zweite Normalform, zwischen den Spalten (die nicht den Primärschlüssel bilden)
dürfen keine Abhängigkeiten bestehen.
Beispiel:
Tabelle 1:
Sportlernr.
Nachname
Vorname
Geburtsjahr
Straße
Hausnummer
PLZ
Ort
Tabelle 2:
Trainernr.
Nachname
Vorname
Sportart
Tabelle 3:
Trainernr.
Sportlernr.
In Tabelle 1 ist der Ort abhängig von der PLZ, aber nicht von der Sportlernr. Daher wird für eine Relation in
dritter Normalform dieses Attribut in eine eigene Tabelle ausgelagert.
Tabelle 1:
Sportlernr.
Nachname
Vorname
Geburtsjahr
Straße
Hausnummer
PLZ
Tabelle 2:
Trainernr.
Nachname
Vorname
Sportart
Tabelle 3:
Trainernr.
Sportlernr.
Tabelle 4:
PLZ
Ort
Datenintegrität
Verschiedene Kriterien, die eine Datenbank erfüllen bzw. überprüfen muss, um eine
eindeutige und widerspruchsfreie Darstellung der Daten zu gewärleisten.
Referentielle Integrität
Regeln, deren Einhaltung beim Eingeben oder Löschen von Datensätzen überprüft wird, um
die definierten Beziehungen zwischen Tabellen beizubehalten. Jeder Wert eines
Fremdschlüssels muss auch als Wert des zugehörigen Primärschlüssels vorhanden sein.
Durch referentielle Integrität wird verhindert, dass…
…Datensätze in einer Detailtabelle eingegeben werden, wenn es in der Mastertabelle keine
zugehörigen Datensätze gibt.
…Werte aus der Mastertabelle geändert werden, wen dadurch in einer Detailtabelle
Datensätze entstehen, die keine Entsprechung in der Mastertabelle besitzen.
…aus der Mastertabelle Datensätze gelöscht werden, die in einer Detailtabelle zugehörige
Datensätze besitzen.
Beispiel:
Tabelle 1- Studenten
Matrikelnr.
Nachname
Vorname
Straße
Hausnr.
PLZ
Tabelle 2- Prüfungen
Prüfungsnr.
Titel
Datum
Tabelle 3-Prüfungsteilnahme
Prüfungsnr.
Matrikelnr.
Note
Durch die referentielle Integrität wird gewährleistet, dass ein Student, dessen Matrikelnummer in Tabelle 3
aufscheint auch tatsächlich in Tabelle 1 aufscheint. Denn nur ein Student, der tatsächlich existiert, kann an einer
Prüfung teilnehmen.
Weiters kann in Tabelle 2 nicht einfach eine Prüfungsnummer geändert werden, da dadurch in Tabelle 3
Datensätze produziert werden, die keinen Referenzwert mehr in Tabelle 2 haben.
Auch zB die Löschung eines Studenten aus der Studentenliste (Tabelle 1), ist durch referentielle Integrität nicht
möglich. Im Fall einer Löschung gäbe es in Tabelle 3 Datensätze, die keinen Bezugspunkt mehr zu Tablle 1
hätten (dann hätte ein Student, der nicht mehr existiert, eine Prüfung abgelegt).
Gültigkeitsregeln
Können für Tabellen bzw. für Spalten einer Tabelle aufgestellt werden, d.h. man kann
bestimmte Kriterien angeben, die ein Wert einer Spalte erfüllen muss. Diese Daten werden bei
der Eingabe der Daten überprüft. Fehlermeldung, wenn Kriterien nicht erfüllt.
Beispiel: Man kann für eine Spalte den Wertebereich 0-100 festlegen, werden dann die Daten eingegeben,
überprüft das Programm, ob die eingegebenen Daten im eingestellten Wertebereich liegen.
3
Einführung in die Sportinformatik –Teil 1
Baca
Beziehungen
Wenn mehrere Tabellen definiert werden, die zueinander in Beziehung stehen, dann müssen
diese Beziehungen auch definiert werden. Die Tabellen werden miteinander verknüpft.
1:1 Beziehungen: für jeden Datensatz der einen Tabelle existiert genau ein Datensatz der
zweiten Tabelle
1:n Beziehungen: ein Datensatz der einen Tabelle hat eine Beziehung zu n Datensätzen der
anderen Tabelle
n:m Beziehungen: ein Datensatz der einen Tabelle kann mehreren Datensätzen der anderen
Tabelle zugeordnet sein und umgekehrt, über Hilfstabelle aufgebaut (besteht aus Feldern,
deren Definition mit denen der Primärschlüsselfelder der anderen beiden Tabellen identisch
ist) so löst man das Problem von n:m Beziehungen
MS-Access
Access starten
Neue Datenbank erstellen (Datei, neue Datenbank anlegen, Namen auswählen)
Tabelle definieren (Tabellen, Neu, Entwurfsansicht)
Primärschlüssel definieren
Beziehungen festlegen (1:1, 1:n, n:m)
Formular erstellen (Formulare, neu, Tabelle auswählen, Schaltfläche Formularassistent
anklicken)
Daten mit dem Formular eingeben (Formulare, Formular auswählen, öffnen, zum letzten
Datensatz wechseln, Dateien eingeben)
Abfragen generieren (Neu, Entwurfsansicht, Tabellen hinzufügen, …öffnen): verschiedene
Ergebnisse von Einträgen in der Datenbank können gesucht werden
Bericht erstellen (Bericht, Neu, Abfrage auswählen)
4
Einführung in die Sportinformatik –Teil 1
Baca
Beispiele Datenbanken
Bsp 1:
Die Verwaltung von Prüfungen am ISW soll unter Verwendung eines relationalen
Datenbanksystems erfolgen. Insbesondere sollen folgende Attribute erfasst werden:
Studierende: Matrikelnummer, Vorname, Zuname, absolvierte Prüfungen mit Noten und Zahl
des Antritts (1.-4.)
Lehrveranstaltung: Lehrveranstaltungsbezeichnung, Semesterwochenstunden, Semester der
Abhaltung, ECTS
Prüfung: Lehrveranstaltungsbezeichnung, Datum, Uhrzeit, Raum, PrüferInnen
PrüferIn: Vorname, Zuname, Geburtsdatum
Es ist möglich, dass eine Lehrveranstaltung von mehreren PrüferInnen geprüft wird.
Entwerfen Sie Tabellen für dieses relationale Datenbanksystem in 1. Normalform. Vermeiden
Sie nicht notwendige Doppelspeicherungen.
Tabelle 1-Studierende:
Vorname
Matrikelnr.
Zuname
Tabelle 2-Lehrveranstaltung
LV-Nr.
Bezeichnung
SWS
Semester
ECTS
Tabelle 3-Prüfung
Prüfungs-Nr.
LV-Nr.
Datum
Uhrzeit
Raum
Tabelle 4-PrüferIn
Prüfer-Nr.
Vorname
Zuname
Geburtsdatum
Tabelle 5-Hilfstabelle absolvierte Prüfungen
Matrikelnr.
Prüfungsnr.
Note
Antritt
Tabelle 6- Hilfstabelle (welcher Prüfer bei welcher Prüfung)
Prüfer-Nr..
Prüfungsnr.
5
Einführung in die Sportinformatik –Teil 1
Baca
Bsp 2:
Die Verwaltung der persönlichen Daten von RadfahrerInnen und TrainerInnen soll unter
Verwendung eines relationalen Datenbanksystems erfolgen.
Insbesondere sollen folgende Attribute erfasst werden:
SportlerIn: Vorname, Zuname, Geburtsdatum, Adresse, Rennteilnahmen, Endplatzierungen in
diesen Rennen, TrainerIn
TrainerIn: Vorname, Zuname, Geburtsdatum, Adresse
Es ist möglich, dass ein/e RadfahrerIn von mehreren TrainerInnen betreut wird bzw. dass
ein/e TrainerIn mehrere RadfahrerInnen betreut. Gehen Sie davon aus, dass ein Rennen durch
eine eindeutige Nummer identifiziert werden kann. Beachten Sie aber, dass ein/e RadfahrerIn
an beliebig vielen Rennen teilnehmen kann.
Entwerfen Sie Tabellen für dieses relationale Datenbanksystem in 1. Normalform und geben
Sie für jede Tabelle einen geeigneten Schlüssel an.
Tabelle 1- SportlerIn
Fahrer-Nr.
Vorname
Zuname
Geburtsdatum
Adresse
Zuname
Geburtsdatum
Adresse
Tabelle 2- TrainerIn
Trainer-Nr.
Vorname
Tabelle 3- Rennteilnahme
Fahrer-Nr.
Platzierung
Renn-Nr.
oder
Fahrer-Nr.
Rennteilnahme-Nr.
Renn-Nr.
Platzierung
Tabelle 4-Betreuung
Trainer-Nr.
Fahrer-Nr.
oder
Betreuungs-Nr.
Trainer-Nr.
Fahrer-Nr.
6
Einführung in die Sportinformatik –Teil 1
Baca
Bsp 3:
Für administrative Zwecke sollen die Daten der Probanden und ihrer Versuche in einer
Datenbank verwaltet werden. Entwerfen Sie Datentabellen für diese Datenbank und legen Sie
für jede Tabelle einen Schlüssel fest. Es soll zu keinen unnötigen Doppelspeicherungen (zB
Adresse der Probanden in 2 Tabellen) kommen.
Proband: Zuname, Vorname, Geburtsdatum, Familienstand, Körpergröße, Adresse,
Sprungbein rechts/links, Untersuchungszeitpunkte-jeweiliges Datum, maximal erreichte
Momente zu diesen Untersuchungszeitpunkten
Experimentatoren: Zuname, Vorname, Geburtsdatum, Adresse
Gehen Sie davon aus, dass die Anzahl der Untersuchungszeitpunkte von Person zu Person
verschieden sein kann.
Entwerfen Sie Tabellen für dieses relationale Datenbanksystem in 1. Normalform und geben
Sie für jede Tabelle einen geeigneten Schlüssel an.
Tabelle 1- Probanden
Probanden-Nr.
Vorname
Zuname
Geburtsdatum
Familienstand
Körpergröße
Adresse
Sprungbein
Tabelle 2- Experimentatoren
Experimentatoren-Nr.
Vorname
Zuname
Geburtsdatum
Adresse
Tabelle 3- Hilfstabelle Untersuchungen
Probanden-Nr.
Experimentatoren-Nr.
Zeitpunkt
Leistung
oder
Untersuchungs-Nr.
Probanden-Nr.
Experimentatoren-Nr.
Zeitpunkt
Leistung
7
Einführung in die Sportinformatik –Teil 1
Baca
Bsp 4:
Für administrative Zwecke sollen die Daten von TischtennisspielerInnen und ihrer
BetreuerInnen in einer relationalen Datenbank verwaltet werden.
Entwerfen Sie Datentabellen für diese Datenbank und legen Sie für jede Tabelle einen
Schlüssel fest.
SpielerIn: Zuname, Vorname, Geburtsdatum, Familienstand, Körpergröße, Adresse am
Spielort, Links- oder Rechtshänder, BetreuerIn, welche Gegner in welcher Runde
BetreuerIn: Zuname, Vorname, Geburtsdatum, Familienstand, Adresse am Spielort
Gehen Sie davon aus, dass ein/e BetreuerIn auch mehrere SpielerInnen betreuen kann.
Entwerfen Sie Datentabellen für diese Datenbank in 1. Normalform und legen Sie für jede
Tabelle einen Schlüssel fest.
Tabelle 1- SpielerIn
Spieler-Nr.
Vorname
Zuname
Geburtsdatum
Familienstand
Körpergröße
Adresse
Links- oder Rechtshänder
Tabelle 2- BetreuerIn
Betreuer-Nr.
Vorname
Zuname
Geburtsdatum
Familienstand
Adresse
Tabelle 3- Hilfstabelle (welcher Spieler mit welchem Betreuer)
Spieler-Nr.
Betreuer-Nr.
oder
Spieler-Nr.
Betreuungs-Nr.
Betreuer-Nr.
Tabelle 4- Hilfstabelle Runde
Spieler-Nr.
Runde
Spieler-Nr.
oder
Spieler-Nr.
Wettkampf-Nr.
Spieler-Nr.
Runde
Bsp 5:
Zur Administration des Zeitschriftenbestandes einer sportwissenschaftlichen Bibliothek soll
ein relationales Datenbanksystem konzipiert werden. Entwerfen Sie Tabellen in 1.
Normalform, aus denen folgende Informationen abgerufen werden können:
Zeitschrift: Signatur, Titel, Ausgabe, Jahrgang, Verlag, Beiträge mit Autoren
Beitrag: Titel, Autoren
Standort der Zeitschrift: Raum, Regalnummer bzw. Signatur des Sammelbandes (der die
Zeitschrift beinhaltet), Raum oder Regalnummer (wo sich der Sammelband befindet)
Tabelle 1- Zeitschriften
Signatur.
Titel
Ausgabe
Jahrgang
Verlag
Tabelle 2- Autoren
Autoren-Nr.
Vorname
Zuname
Tabelle 3- Beiträge
Beitrags-Nr.
Titel
Tabelle 4- Hilfstabelle (welche Beiträge in welcher Zeitschrift von welchem Autor)
Beitrags-Nr.
Signatur
Autoren-Nr.
Tabelle 4- Standort
Sammelbandsignatur
Signatur
Raum
Regalnummer
8
Einführung in die Sportinformatik –Teil 1
Baca
Bsp 6:
Die Lehrveranstaltungen am ZSU sollen mit Hilfe einer relationalen Datenbank verwaltet
werden. Folgende Attribute sind bekannt:
Lehrveranstaltung: CP-Nummer, Bezeichnung, Wochentag, Uhrzeit, Raum,
LehrveranstaltungsleiterIn
LehrveranstaltungsleiterIn: Vorname, Zuname, Geburtsdatum
Tabelle 1- Lehrveranstaltung
Bezeichnung
CP-Nr.
Wochentag
Uhrzeit
Raum
Tabelle 2- LeiterIn
Vorname
Leiter-Nr.
Zuname
Geburtsdatum
Tabelle 3- Hilfstabelle (welcher Leiter bei welcher Lehrveranstaltung)
CP-Nr.
Leiter-Nr.
Bsp 7:
Die Verwaltung von Kursen eines Fitnessklubs soll unter Verwendung eines relationalen
Datenbanksystems erfolgen. Insbesondere sollen folgenden Attribute erfasst werden:
TeilnehmerInnen: Vorname, Zuname, Tarifart (A-E), gebuchte Kurse (mit Angabe des
Semesters)
Trainingskurse: Bezeichnung, Semester, Wochentag, Uhrzeit, Raum, TrainerIn
LV-LeiterIn: Vorname, Zuname, Geburtsdatum
Es ist möglich, dass ein Trainingskurs von meheren TrainerInnen geleitet wird.
Tabelle 1- TeilnehmerInnen
Vorname
Teilnehmer-Nr.
Zuname
Tarifart
Tabelle 2- Kurse
Kurs-Nr.
Bezeichnung
Semester
Wochentag
Uhrzeit
Raum
Tabelle 3 –TrainerInnen
Trainer-Nr.
Vorname
Zuname
Geburtsdatum
Tabelle 4- Hilfstabelle (welcher Teilnehmer hat welchen Kurs gebucht)
Teilnehmer-Nr.
Kurs-Nr.
Tabelle 5- Hilfstabelle (welcher Trainer leitet welchen Kurs)
Trainer-Nr.
Kurs-Nr.
9
Einführung in die Sportinformatik –Teil 1
Baca
Bsp 8:
Konzipieren Sie ein relationales Datenbanksystem zur Verwaltung der Prüfungen für die
Lehrveranstaltung „Einführung in die Sportinformatik und Statistik“ in 1. Normalform.
Folgende Informationen sollen administriert werden:
Prüfungsfragen: Frage-Text, maximale Punkte, Datum der Prüfungen (zu denen die Frage
gestellt wurde)
Prüfungen: Prüfungsdatum, Ort, Fragen, Studierende (die an der Prüfung teilgenommen
haben), Nummer des Antritts der Studierenden, Anzahl der Punkte (die von den Studierenden
bei den einzelnen Fragen erreicht wurden)
PrüfungskandidatInnen: Matrikelnummer, Vorname, Zuname
Legen Sie für jede Tabelle einen Schlüssel fest.
Tabelle 1- Fragen
Fragen-Nr.
Text
Maximale Punkte
Tabelle 2- Prüfungen
Prüfungs-Nr.
Datum
Ort
Tabelle 3- Kandidaten
Matrikelnr.
Vorname
Zuname
Tabelle 4- Hilfstabelle (welche Fragen zu welchen Prüfungen)
Fragen-Nr.
Prüfungs-Nr.
oder
Fragen-Nr.
Fragen/Prüfungs-Nr.
Prüfungs-Nr.
Tabelle 5- Hilfstabelle Prüfungsteilnahme
Matrikel-Nr.
Prüfungs-Nr.
Antritt
oder
Matrikel-Nr.
Studentenprüfungs-Nr.
Prüfungs-Nr.
Antritt
Tabelle 6- Hilfstabelle (wieviel Punkte pro Frage)
Fragen-Nr.
Matrikelnr.
Prüfungs-Nr.
Erreichte Punkte
oder
Fragen/Student-Nr.
Fragen-Nr.
Matrikel-Nr.
Prüfungs-Nr.
Erreichte Punkte
10
Herunterladen