Erstellen einer Datenbank

Slides:



Advertisements
Ähnliche Präsentationen
Überführung von ER- in Relationenmodelle
Advertisements

ER-Modell: Objekte und Klassen
Datenbankdesign mit ACCESS.
Datenbanken Beispiel: Musikverwaltungsdatenbank Daten: Musikstück
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Datenmodellierung Externe Phase Informationsstruktur
Einsatz von SiSy in der Berufsausbildung
MS Office-Paket: Access
Ein Entity Relationship Diagramm zur ADB/NDB
Kapitel 3: Das Relationenmodell
Franziska Schmidt Sarah Ahlheit
Datenbankdesign und Normalisierung
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Das Relationenmodell 1.
Erstellen einer Datenbank
Relationenmodell (RM)
November 2002.
Was ist eine Datenbank? ermöglicht die Eingabe von Daten
Datenmodellierung - Aufbau einer Datenbank -
Buch S73ff (Informatik I, Oldenbourg-Verlag)
Datenbanken 13: Objekt-Klasse-Datenbank
Datenbanken 2: Die relationale Datentabelle
Datenbanken 2: Einfache Aufgaben mit TabCalc
Buch S70ff (Informatik I, Oldenbourg-Verlag)
7.3 Hinweise für den Aufbau von ER-Schemata (1|7)
Relationale Datenbankmodelle
O.Univ.-Prof. Dr. Dimitris Karagiannis Datenbanken administrieren mit phpMyAdmin Martin Marinschek
Datenbanken?.
Access XP Einführung Silvie Charif ©
Access Aufbau Charts © 2000, Klemens Konopasek.
Einführung Access Einführung und Datenbankgrundbegriffe
Datenbank Wandertag Situationsbeschreibung
Datenbank.
Access 2000 Willkommen im Access-Kurs Oliver Mochmann.
Datenbank ‚Büro‘: Der Mitarbeiter Meier arbeitet seit dem mit 50% seiner Kapazität in dem Projekt DB-DESIGN mit, das am gestartet wurde.
Einführung in Datenbanken
Access Grundlagen Charts © 2000, Klemens Konopasek.
(D.h. „Hallo MausFans!“ auf Japanisch).
Das Entity-Relationship-Modell
Freiwillige Feuerwehr der Stadt Perg
Informationssysteme in Unternehmen
Ihr Trainer: Gerold Hämmerle
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
Das relationale Modell
verstehen planen bearbeiten
Datenbank Wandertag Situationsbeschreibung
Seminar Datenbankanwendung für Architekten neunter Termin
Grundlagen des Relationenmodells
Mehrfach-informationen Einfachinformationen
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
8.4.3 Übertragung von Beziehungstypen (1|12)
Datenbanken Eine Einführung.
(C) Hans Hutzler Microsoft Access Einführung (C) Hans Hutzler
Was ist eine Datenbank „MS Access“
Gerhard Röhner September 2012
Datenbanken Datenbank-Entwurf
Entität Attribute Beziehung AUTOR CD M 1 N leihen erstellen N verfasst
Vom Konzept zur Datenbank
BHAK/BHAS 1 Salzburg KIDM 2ASBS Schuljahr 2004/05
Relationales Datenmodell
Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS.
Sei B = Beziehungstyp, min/max-Notation Kardinalität (0,1) von E: Jede Ausprägung e  E t (E) geht in diesem Fall höchstens einmal in B ein. Das bedeutet.
Was ist ein Datenbankprogramm?
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
Manuel Friedrich Schiller-Gymnasium Hof Datenbanken Erstellen des „Semantischen Modells“
SQL Basics Schulung –
Struktur von Datenbanktabellen
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Administrieren und Arbeiten mit Datenbanken und SQL
 Präsentation transkript:

Erstellen einer Datenbank Vom semantischen zum logischen Modell

Softwaremäßige Implementierung Überblick Die vier Stationen Logisches Modell Semantisches Modell Fälle von Redundanz* Abfragen Softwaremäßige Implementierung *Hintergrundwissen der Lehrkraft

Vorarbeit: Semantisches Modell Spielmobile AG LIEFERANT Name Strasse PLZ Ort BAUTEIL BauteilName 1 liefert > n Preis Fixkosten m Ist_verbaut_in  Anzahl n KUNDE Name Strasse PLZ Ort PRODUKT ProduktName n bestellt > m Anzahl

Logisches Modell Aufbereitung der Daten zur Eingabe in den Computer Tabellenname 1 Spaltenkopf 1 Spaltenkopf 2 Feld 1 Feld 2 Feld 3 Feld 4 Mengenschreibweise: Tabellenname 1 ={ Spaltenkopf 1, Spaltenkopf 2}

Logisches Modell Klasse  Relation (Tabelle) Beziehung Übergang vom semantisches Modell zum logischen Relationenmodell Klasse  Relation (Tabelle) Beziehung

Vergleich: Semantisch vs. Logisch Klasse / Beziehung Relation (Tabelle) Klassenname Tabellenname Attributnamen Spaltenköpfe Attributwerte für ein Objekt Datensatz (Tabellenzeile) BAUTEIL Name Bauteil ID Name 18 10g Kunststoffgranulat 20 Rad 145 Drahtstift 1. Datensatz 2. Datensatz 3. Datensatz Datentyp 1 Datentyp 2

Logisches Modell - Datentypen Datentypen kennzeichnen die Art des Zellinhaltes einer Spalte Beispiele Inhalt Mögliche Bezeichnung 1 Zeichen Char n Zeichen Char(n) / Varchar(n) Beliebige Anzahl von Zeichen Text Ganze Zahl Int / Integer Datum Date Ja/Nein Boolean

Logisches Modell Datentypen der Klasse Bauteil Bauteil ID: Name 18 10g Kunststoffgranulat 20 Rad 145 Drahtstift Ganze Zahl Text Datentyp? Datentyp?

Logisches Modell - Primärschlüssel Der Primärschlüssel ist eine Spalte, mit deren Hilfe man einen Datensatz eindeutig identifizieren kann Minimale Anzahl an Attributen in einem Datensatz Die Spalte ID stellt einen sinnvollen Primärschlüssel dar! Bauteil ID Name 18 10g Kunststoffgranulat 20 Rad 145 Drahtstift Ganze Zahl Text

Logisches Modell - Primärschlüssel Voraussetzungen für einen Primärschlüssel Jeder Attributwert kommt nur einmal vor Jeder Attributwert kennzeichnet den Datensatz eindeutig Die Software (DBMS) sorgt für eindeutige Vergabe

Arbeitsauftrag Erstellen Sie die vollständigen Relationen „Bauteil“ und „Lieferant“! Geben Sie die Datentypen an! Kennzeichnen Sie die Primärschlüssel! Welche Spalten könnten Primärschlüssel sein? Fallbeispiel : Spielmobile AG Semantisches Modell Arbeitsblatt: Relationen I Zeitvorschlag: 10 min

Arbeitsauftrag – Lösung Bauteil ID Name 18 10g Kunststoffgranulat 20 Rad 145 Drahtstift Ganze Zahl Text

Arbeitsauftrag – Lösung Lieferant ID Name Strasse PLZ Ort 1 BASV Chemiestr. 10 50000 Köln 2 REHAU Sperlingstr. 20 67100 Ludwigshafen 3 MüllerAG Am Kai 50 67000 4 LEGA Hauptstr. 17 80362 Günzburg 5 Playmobil Spielstr. 15 95001 Zirndorf 6 Thyssan Stahlstr. 25-35 33433 Essen 7 Stahlital Grenzstr. 1 83091 Kiefersfelden Ganze Zahl Text Text / char(5) Warum Datentyp „Text“ und nicht „ganze Zahl“?

Logisches Modell - Beziehungsrelation Beziehungen sind eigene Klassen Name der Beziehung Primärschlüssel der Relation 1 Primärschlüssel der Relation 2 Attributwert 1 Attributwert 2 Beziehung 1 Beziehung 2 Beziehung 3

Logisches Modell – Beziehungsrelation Beispiel Weitere Attribute der Beziehung sind zusätzliche Spalten! liefert LieferantNr BauteilNr 1 18 2 3 4 20 5 6 145 7 Fremdschlüssel Die Kombination der Fremdschlüssel ist der Primärschlüssel dieser Relation! Fremdschlüssel sind Primärschlüssel anderer Relationen!

Logisches Modell – Beziehungsrelation Beispiel liefert LieferantNr BauteilNr Preis Fixkosten 1 18 0.24 50 2 0.26 40 3 0.25 45 4 20 0.10 5 0.15 6 145 0.03 10 7 0.05 Ganze Zahl Dezimalzahl / Währung Währung Zur Erinnerung: 1:n-Kardinalität

Arbeitsauftrag Erstellen Sie die vollständigen Relationen „Produkt“ und „Kunde“! Erstellen Sie die vollständigen Relationen „ist_verbaut_in“ und „bestellt“! Geben Sie die Datentypen an! Kennzeichnen Sie die Primär- und Fremdschlüssel! Fallbeispiel : Spielmobile AG Semantisches Modell Arbeitsblatt: Relationen I Zeitvorschlag: 20 min

Arbeitsauftrag – Lösungen Produkt ID Name 815 Müllauto 816 Rennauto 817 Feuerwehrauto Ganze Zahl Text Kunde ID Name Strasse PLZ Ort 1 Spielparadies Hauptstr. 5 67000 Ludwigshafen 2 modelle und mehr Königstr. 10 83022 Rosenheim 3 techno-play Wendelsteinstr.2 83026 Ganze Zahl Text Text / Char(5)

Arbeitsauftrag – Lösungen ist_verbaut_in BauteilNr ProduktNr Anzahl 18 815 1 816 817 20 6 4 145 3 2 Ganze Zahl Zur Erinnerung: m:n-Kardinalität

Arbeitsauftrag – Lösungen bestellt KundeNr ProduktNr Anzahl 2 816 3000 3 817 2000 Ganze Zahl Zur Erinnerung: m:n-Kardinalität

Logisches Modell – Zusammenführung Welche Tabelle könnte eingespart werden? Kunde Lieferant bestellt liefert m:n 1:n m:n Produkt ist_verbaut_in Bauteil

Logisches Modell – Kardinalitäten Lieferant ID Name Strasse PLZ Ort 1 BASV Chemiestr. 10 50000 Köln 2 REHAU Sperlingstr. 20 67100 Ludwigshafen 3 MüllerAG Am Kai 50 67000 4 LEGA Hauptstr. 17 80362 Günzburg 5 Playmobil Spielstr. 15 95001 Zirndorf 6 Thyssan Stahlstr. 25-35 33433 Essen 7 Stahlital Grenzstr. 1 83091 Kiefersfelden Tabellen mit einer Fremd- schlüsselspalte, die identisch mit der Primärschlüsselspalte einer anderen Tabelle ist, werden zusammengeführt! liefert LieferantNr BauteilNr Preis Fixkosten 1 18 0.24 50 2 0.26 40 3 0.25 45 4 20 0.10 5 0.15 6 145 0.03 10 7 0.05 Bauteil ID BauteilName:Text 18 10g Kunststoffgranulat 20 Rad 145 Drahtstift

Logisches Modell – Kardinalitäten Lieferant ID Name Strasse PLZ Ort BauteilNr Preis Fixkosten 1 BASV Chemiestr. 10 50000 Köln 18 0.24 50 2 REHAU Sperlingstr. 20 67100 Ludwigshafen 0.26 40 3 MüllerAG Am Kai 50 67000 0.25 45 4 LEGA Hauptstr. 17 80362 Günzburg 20 0.10 5 Playmobil Spielstr. 15 95001 Zirndorf 0.15 6 Thyssan Stahlstr. 25-35 33433 Essen 145 0.03 10 7 Stahlital Grenzstr. 1 83091 Kiefersfelden 0.05 Bauteil ID BauteilName:Text 18 10g Kunststoffgranulat 20 Rad 145 Drahtstift Beziehungen der Kardinalität 1:n und 1:1 benötigen keine eigene Tabelle!

Logisches Modell – Zusammenfassung Jede Klasse und jede Beziehung wird zu einer Tabelle Attributnamen werden zu Spaltenbezeichnern, denen Datentypen zuzuordnen sind Jede Tabelle hat einen eindeutigen Primärschlüssel (ID) Beziehungstabellen haben Sekundärschlüssel (…Nr) Beziehungstabellen der 1:n- und 1:1-Kardinalitäten lassen sich an Klassentabellen anhängen

Arbeitsauftrag Finden Sie die Kardinalitäten! Stellen Sie das logische Modell auf! LEHRER Name Vorname Strasse PLZ Ort Tel E-Mail Lohn LSt_Klasse Kto BLZ leitet TEILNEHMER Name Vorname Strasse PLZ Ort Tel Geb_Datum E-Mail Abz_Datum Geschlecht KURS Plaetze Typ Gebühr Termin_Anz Starttermin <leitet <hält Nimmt_teil > Findet_statt > <assistiert Aufgabenstellung: Es finden parallel drei verschiedene Schwimmlehrgänge mit unterschiedlicher Anzahl an Terminen statt. Die Teilnehmer melden sich an, ferner soll dokumentiert werden, welcher Teilnehmer zu welchem Termin erschienen ist und ob dieser den Kurs bereits vorzeitig abgebrochen hat. Jeder Teilnehmer kann mehrere Kurs belegen. Kurstermine, die auf Ferien fallen, sollen als solche erkennbar sein, damit ein Ersatztermin angeboten werden kann. Unter den Schwimmlehrern gibt es solche, die Kurste leiten und Termine auch eigenverantwortlich durchführen können, andere dürfen lediglich als Assistenten fungieren. Jeder Kurstermin wird vom Kursleiter oder einem anderen qualifizierten Lehrer gehalten, es sind bis zu zwei Assistenten zusätzlich an jedem Kurstermin dabei. Alle erhalten eine Lohnabrechnung, jeder Teilnehmer eine Rechnung und ein Schwimmabzeichen, dessen Ausstellungsdatum archiviert werden soll. Erstelle das semantische Modell mit Kardinalitäten! Erstelle das logische Modell! KURSTERMIN Datum Dauer Startzeit FERIEN Beginn Ende Fällt_auf> War_da >

Arbeitsauftrag Finden Sie die Kardinalitäten! Stellen Sie das logische Modell auf! LEHRER Name Vorname Strasse PLZ Ort Tel E-Mail Lohn LSt_Klasse Kto BLZ leitet TEILNEHMER Name Vorname Strasse PLZ Ort Tel Geb_Datum E-Mail Abz_Datum Geschlecht KURS Plaetze Typ Gebühr Termin_Anz Starttermin n <leitet 1 1 n 1 m <hält Nimmt_teil > Findet_statt > m n <assistiert n n m KURSTERMIN Datum Dauer Startzeit FERIEN Beginn Ende Fällt_auf> War_da > n n 1

Typische Fehler – Ursachen Problematik (nicht im Unterricht besprechen!) ungenaue Analyse Zeitdruck Fehler im seman-tischen Modell „Schlechtes“ logisches Modell Fehlerhafte Abfragen

Typische Fehler Beispiel: Es sollen möglichst schnell die absolvierten Fortbildungen der Mitarbeiter in die Personaldatenbank aufgenommen werden. Mitarbeiter ID Name Vorname Adresse Gehalt 1002 Abele Franz … 4900 1009 Bernauer Elke 2500 1100 Keiler Hans 3000

Typische Fehler - Unauffindbarkeit Lösungsvorschlag Personal ID Name Vorname Adresse Gehalt Fortbildung 1002 Abele Franz … 4900 Teamtraining bei X-Consult in Bonn 1009 Bernauer Elke 2500 Projektmanagement bei R&T in Basel, 1100 Keiler Hans 3000 SAP R/3 bei X-Consult in Bonn, Computernetze bei R&T in Basel Wer war schon bei X-Consult? kann aus dem Fließtext der letzten Spalte nur schwer ausgelesen werden. Lösungsvorschläge?

Normalisierung Normalform I – Atomisierung der Information PersID Name Vorn Adr Geh FID Fortbildungsbez Veranstalt Ort 1002 Abele Franz … 4900 301 Teamtraining X-Consult Bonn 1009 Bernauer Elke 2500 302 Projektmanag R&T Basel 1100 Keiler Hans 3000 510 SAP R/3 520 Computernetze Welche Spalte stellt den Primärschlüssel dar? Primärschlüssel = {PersID; FID}

Typische Fehler - Redundanzen Frau Bernauers Gehalt wurde um 200 Euro erhöht Herr Abele hat die SAP R/3-Fortbildung besucht Mitarbeiter PersID Name Vorn Adr Geh FID Fortbildungsbez Veranstalt Ort 1002 Abele Franz … 4900 301 Teamtraining X-Consult Bonn 510 SAP R3 1009 Bernauer Elke 2700 302 Projektmanag R&T Basel 2500 1100 Keiler Hans 3000 SAP R/3 520 Computernetze Redundanz von Daten  Inkonsistenz der Datenbank

Typische Fehler - Redundanzen Mehrteilige Primärschlüssel mit funktional abhängigen Attributen Mitarbeiter PersID Name Vorn Adr Geh FID Fortbildungsbez Veranstalt Ort 1002 Abele Franz … 4900 301 Teamtraining X-Consult Bonn 510 SAP R/3 1009 Bernauer Elke 2700 302 Projektmanag R&T Basel 1100 Keiler Hans 3000 520 Computernetze Ziel: Nur eine Spalte als Primärschlüssel und Auflösen der Abhängigkeiten

Normalisierung Normalform II: Normalform I und keine funktionale Abhängigkeit von Teilschlüsseln des Primärschlüssels Bei jedem Fortbildungsbesuch soll das jeweilige Datum gespeichert werden… Mitarbeiter ID Name Vorname Adresse Gehalt 1002 Abele Franz … 4900 1009 Bernauer Elke 2500 1100 Keiler Hans 3000 hat_besucht (m:n) MitarbeiterNr FortbildungNr 1002 301 510 1009 302 1100 520 Fortbildung ID Fortbildungsbez Veranstalt Ort 301 Teamtraining X-Consult Bonn 302 Projektmanag R&T Basel 510 SAP R/3 520 Computernetze

Typische Fehler - Redundanzen Transitive Abhängigkeit vom Primärschlüssel Fortbildung ID Fortbildungsbez Veranstalt Ort 301 Teamtraining X-Consult Bonn 302 Projektmanag R&T Basel 510 SAP R/3 520 Computernetze

Normalisierung Normalform III: Normalform II und keine transitive Abhängigkeit vom Primärschlüssel Mitarbeiter hat_besucht ID Name Vorname Adresse Gehalt 1002 Abele Franz … 4900 1009 Bernauer Elke 2500 1100 Keiler Hans 3000 MitarbeiterNr FNr 1002 301 510 1009 302 1100 520 Fortbildung ID Fortbildungsbez VeranstalterNr 301 Teamtraining 1 302 Projektmanag 2 510 SAP R/3 520 Computernetze Veranstalter ID Name Ort 1 X-Consult Bonn 2 R&T Basel Zeichnen Sie das semantische Modell!

Arbeitsauftrag – Lösung Semantisches Modell MITARBEITER Name Vorname Adresse Gehalt FORTBILDUNG Fortbildungsbezeichnung Veranstalter hat_besucht m n n durchgeführt_von 1 VERANSTALTER Name Ort

Übungsaufgabe Sie erhalten den Auftrag, eine Datenbank für das Ministerium zu erstellen, um einfach den Lehrerbedarf (nur Vollzeitkräfte) und die Zuweisungen zu managen. Die Datenbank soll Lehrer mit ihrer Fächerkombination, den Wunscheinsatzorten, dem aktuellen Einsatzort, der Anzahl der erfolglosen Gesuche und einem Freigabevermerk speichern Gespeichert werden sollen die Schulen mit Ort und deren Stellenbedarf. Entwerfen Sie ein semantisches und logisches Modell!