belegarbeit 1sheep2
TRANSCRIPT
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
113.04.23
1) Entity-Typen Modellierung
• Adressen• Artikel• Bestellpositionen• Bestellungen• Buecher• Kategorien• Kunden• KundenLogin• Verlag
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
2) Attribute der einzelnen Entities Modellierung
213.04.23
Adressen Artikel Bestellpositionen Bestellungen Buecher
AdrNrAnredeVornameStrasseHausNrPLZOrt
ArtNrISBNVKPreis
BestNrArtNrMenge
BestNrKdNrVerlagKuerzelDatumRechAdrNrLiefAdrNr
ISBNKatNrTitelAutorJahrDruckdatumSeitenAnzEKPreis
Kategorien Kunden KundenLogin Verlag
KatNrBezeichnung
KdNrEmailAnredeVornameNameDefRechAdrNrDefLiefAdrNr
KdNrPasswort
KuerzelNameAdrNrTelefonTelefaxEmailHomepage
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
3) Entityschlüssel Modellierung
313.04.23
• Adressen AdrNr• Artikel ArtNr• Bestellpositionen BestNr, ArtNr• Bestellungen BestNr• Buecher ISBN• Kategorien KatNr• Kunden KdNr• KundenLogin KdNr• Verlag Kuerzel
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
4) Beziehung zwischen den Entities Modellierung
413.04.23
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
5) Entwurf des Entity-Relationship-Modell Modellierung
513.04.23
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
6) Entwurf des ER-Diagramms und des physischen Datenmodells Modellierung
613.04.23
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
1) Beschreibung der Tabellen und Attribute Überführung in ein relationales Datenbankmodell
713.04.23
Adressen Artikel Bestellpositionen Bestellungen Buecher
AdrNr Int(11)Anrede Varchar(16)Vorname Varchar(256)Strasse Varchar(256)HausNr Varchar(8)PLZ Char(5)Ort Varchar(256)
ArtNr Int(11)ISBN Char(32)VKPreis Decimal(6,2)
BestNr Int(11)ArtNr Int(11)Menge Int(6)
BestNr Int(11)KdNr Int(11)VerlagKuerzel Char(5)Datum DatetimeRechAdrNr Int(11)LiefAdrNr Int(11)
ISBN Char(32)KatNr Int(11)Titel Varchar(256)Autor Varchar(256)Jahr YearDruckdatum DateSeitenAnz Int(8)EKPreis Decimal(6,2)
Kategorien Kunden KundenLogin Verlag
KatNr Int(11)Bezeichnung Varchar(255)
KdNr Int(11)Email Varchar(1024)Anrede Varchar(16)Vorname Varchar(256)Name Varchar(256)DefRechAdrNr Int(11)DefLiefAdrNr Int(11)
KdNr Int(11)Passwort Char(32)
Kuerzel Char(5)Name Varchar(256)AdrNr Int(11)Telefon Varchar(32)Telefax Varchar(32)Email Varchar(1024)Homepage Varchar(1024)
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
2) Analyse der Zusammenhänge Überführung in ein relationales Datenbankmodell
813.04.23
Adressen Artikel Bestellpositionen Bestellungen Buecher
Funktionale Abhängigkeiten
AdrNr -> AnredeAdrNr -> VornameAdrNr -> NameAdrNr -> StrasseAdrNr -> HausNrAdrNr -> PLZAdrNr -> Ort
Funktionale Abhängigkeiten
ArtNr -> ISBNArtNr -> VKPreis
Voll funktionale Abh.
BestNr, KdNr -> Menge
Funktionale Abhängigkeiten
BestNr -> KdNrBestNr -> VerlagKuerzelBestNr -> DatumBestNr -> Rech/LiefAdrNr
Funktionale Abhängigkeiten
ISBN -> KatNrISBN -> TitelISBN -> AutorISBN -> JahrISBN -> DruckdatumISBN -> SeitenISBN -> EKPreis
Kategorien Kunden KundenLogin Verlag
Funktionale Abhängigkeit
KatNr -> Bezeichnung
Funktionale Abhängigkeiten
KdNr -> EmailKdNr -> AnredeKdNr -> VornameKdNr -> NameKdNr -> DefRechAdrNrKdNr -> DefLiefAdrNr
Funktionale Abhängigkeit
KdNr -> Passwort
Funktionale Abhängigkeiten
Kuerzel -> NameKuerzel -> AdrNrKuerzel -> TelefonKuerzel -> TelefaxKuerzel -> EmailKuerzel -> Homepage
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
3) Anlegen von Primär- und Fremdschlüsseln Überführung in ein relationales Datenbankmodell
913.04.23
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
4) Nicht normalisierte Relation Überführung in ein relationales Datenbankmodell
1013.04.23
Nicht normalisierte Ausgangstabelle für Bestellpositionen (als Beispiel):
KundeID KundeName VerlagKuerzel VerlagName BestellNr BestellDatum Artikel
1001 Sebastian Schäfer ABC Softwarehaus ABC 1 16.12.2008 AJAX, Erklär mir …
2 17.12.2008 Erklär mir …
1002 Stefan Rüschenberg ABC Softwarehaus ABC 3 15.12.2008 Grundlagen, DBII, MySQL5
DEF Softwarehaus DEF 4 17.12.2008 AJAX
Nächster Schritt: Einfachheit und Eindeutigkeit der Attribute herstellen
=> Normalisierungsprozess zur 1. NF
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
5) Normalisierungsprozess Überführung in ein relationales Datenbankmodell
1113.04.23
Aus dem Beispiel ergibt sich für die 1.NF:
KundeID KundeName VKuerzel VerlagName BestellNr BestellDatum ArtikelNr ArtikelName Menge
1001 Sebastian Schäfer ABC Softwarehaus ABC 1 16.12.2008 2 AJAX 4
1001 Sebastian Schäfer ABC Softwarehaus ABC 1 16.12.2008 3 Erklär mir … 1
1001 Sebastian Schäfer ABC Softwarehaus ABC 2 17.12.2008 3 Erklär mir … 4
1002 Stefan Rüschenberg ABC Softwarehaus ABC 3 15.12.2008 1 Grundlagen 10
1002 Stefan Rüschenberg ABC Softwarehaus ABC 3 15.12.2008 4 DB II 3
1002 Stefan Rüschenberg ABC Softwarehaus ABC 3 15.12.2008 5 MySQL 5 1
1002 Stefan Rüschenberg DEF Softwarehaus DEF 4 17.12.2008 3 Erklär mir … 1
1002 Stefan Rüschenberg DEF Softwarehaus DEF 4 17.12.2008 2 AJAX 50
Nächster Schritt: Abhängigkeiten herausfinden und atomisieren
=> Normalisierungsprozess zur 2 bzw. 3. NF
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
5) Normalisierungsprozess Überführung in ein relationales Datenbankmodell
1213.04.23
Aus dem Beispiel ergibt sich für die 3.NF:
Schon hier gibt es keine transitiven Abhängigkeiten; es erübrigt sich also die 2.NF
KundeID KundeVN KundeNN1001 Sebastian Schäfer
1002 Stefan Rüschenberg
VerlagKuerzel VerlagName
ABC Softwarehaus ABC
DEF Softwarehaus DEF
BestellNr BestellDatum
1 16.12.2008
2 17.12.2008
3 15.12.2008
4 17.12.2008
BestNr ArtNr Menge1 2 41 3 12 3 43 1 103 4 43 5 14 3 14 2 50
Bestellungen Bestellpositionen
Kunden Verlag
Veranstaltung: Datenbanken IDozent: Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 123456)
6) Referentielle Integrität Überführung in ein relationales Datenbankmodell
1313.04.23
Definition:Bei der referentiellen Integrität geht es um die Integrität auf Beziehungsebene. Hierdurch wird gewährleistet, dass Fremdschlüssel in einer Detailtabelle nur Werte annehmen können, die zuvor in der referenzierten Mastertabelle als Primärschlüssel angelegt wurden.
Ziel:Verhinderung von Inkonsistenzen im Datenbestand
Beispiel:Tabelle Artikel, Fremdschlüssel ISBN verweist auf Primärschlüssel der Tabelle Bücher.Durch die referentielle Integrität wird gewährleistet, dass kein Buch was sich noch im Artikelstamm des Verlags befindet gelöscht werden kann.
SQL:ALTER TABLE `Artikel` ADD CONSTRAINT `Artikel_ibfk_1` FOREIGN KEY (`ISBN`) REFERENCES `Buecher` (`ISBN`) ON UPDATE CASCADE;