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