Upload
bergschaf
View
564
Download
0
Embed Size (px)
Citation preview
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
113.04.23
Belegarbeit 6Online-Bestellung von Büchern
Stefan RüschenbergSebastian Schäfer
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
213.04.23
1) Entity-Typen Modellierung
• Adressen• Artikel• Bestellpositionen• Bestellungen• Buecher• Kategorien• Kunden• KundenLogin• Verlag
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
2) Attribute der einzelnen Entities Modellierung
313.04.23
Adressen Artikel Bestellpositionen Bestellungen Buecher
AdrNrAnredeVornameNameStrasseHausNrPLZOrt
ArtNrISBNVKPreis
BestNrArtNrMenge
BestNrKdNrVerlagKuerzelDatumRechAdrNrLiefAdrNr
ISBNKatNrTitelAutorJahrDruckdatumSeitenAnzEKPreis
Kategorien Kunden KundenLogin Verlag
KatNrBezeichnung
KdNrEmailAnredeVornameNameDefRechAdrNrDefLiefAdrNr
KdNrPasswort
KuerzelNameAdrNrTelefonTelefaxEmailHomepage
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
3) Entityschlüssel Modellierung
413.04.23
• Adressen AdrNr• Artikel ArtNr• Bestellpositionen BestNr, ArtNr• Bestellungen BestNr• Buecher ISBN• Kategorien KatNr• Kunden KdNr• KundenLogin KdNr• Verlag Kuerzel
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
4 u. 5) Beziehung zwischen den Entities; Entwurf des Entity-Relationship-Modell Modellierung
513.04.23
Kunden
KundenLogin
AdressenArtikel
Bücher Verlag
BestellungenBestellpositionen
Kategorien
besitzt
besitzt
speichert Passwort
erstellt
Besteht aus
gehört zu
beinhaltet
besteht aus
tätigt
beinhaltet
1n
1
1
1n
1
2
1n
1
2
1
1
1
11
1
1
1
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
6) Entwurf des ER-Diagramms und des physischen Datenmodells Modellierung
613.04.23
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
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)Name 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: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
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: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
3) Anlegen von Primär- und Fremdschlüsseln Überführung in ein relationales Datenbankmodell
913.04.23
Adressen Artikel Bestellpositionen Bestellungen Buecher
Primärschlüssel:AdrNr
Fremdschlüssel:keine
Primärschlüssel:ArtNr
Fremdschlüssel:ISBN
Primärschlüssel:BestNr, ArtNr
Fremdschlüssel:ArtNr
Primärschlüssel:BestNr
Fremdschlüssel:KdNrVerlagKuerzelRechAdrNrLiefAdrNr
Primärschlüssel:ISBN
Fremdschlüssel:KatNr
Kategorien Kunden KundenLogin Verlag
Primärschlüssel:KatNr
Fremdschlüssel:keine
Primärschlüssel:KdNr
Fremdschlüssel:DefRechAdrNrDefLiefAdrNr
Primärschlüssel:KdNr
Fremdschlüssel:KdNr
Primärschlüssel:Kuerzel
Fremdschlüssel:AdrNr
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
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: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
5) Normalisierungsprozess, 1. NF Ü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: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
5) Normalisierungsprozess, 3. NF Ü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: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
5) Normalisierungsprozess, 4. NF Überführung in ein relationales Datenbankmodell
1313.04.23
Person Lieblingsserie Lieblingsclubs
Stefan Dr. House WatergateStefan Dr. House WeekendStefan Stromberg WatergateStefan Stromberg WeekendSebastian Switch BerghainSebastian Switch Tresor
Person Lieblingsserie
Stefan Dr. HouseStefan StrombergSebastian Switch
Person Lieblingsclubs
Stefan WatergateStefan WeekendSebastian BerghainSebastian Tresor
Verletzung der 4. NF, da Lieblingsserie unabhängig von Lieblingsclub ist und Lieblingsserie als auch Lieblingsclubs eine MWA von Person ist.
Tabellen in der 4. NF
Tabelle, welche die 4. NF verletzt
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
5) Normalisierungsprozess, 5. NF Überführung in ein relationales Datenbankmodell
1413.04.23
Person Projekt Aufgabe
Stefan Projekt 1 ProgrammierungStefan Projekt 2 DatenbankSebastian Projekt 1 ProgrammierungSebastian Projekt 3 CI
Person Projekt
Stefan Projekt 1Stefan Projekt 2Sebastian Projekt 1Sebastian Projekt 3
Verletzung der 5. NF, da die Tabelle weiter aufgeteilt werden kann, ohne dass Informationen Verloren gehen.
Tabellen in der 5. NF
Tabelle, welche die 5. NF verletzt
Projekt Aufgabe
Projekt 1 ProgrammierungProjekt 2 DatenbankProjekt 1 ProgrammierungProjekt 3 CI
Person Aufgabe
Stefan ProgrammierungStefan DatenbankSebastian ProgrammierungSebastian CI
Veranstaltung: Datenbanken IDozent: Dr.-Ing. Ioannis Papakostas
Belegarbeit 6Online-Bestellung von Büchern
Stefan Rüschenberg (Matrikel-Nr.: 523946)Sebastian Schäfer (Matrikel-Nr.: 524037)
6) Referentielle Integrität Überführung in ein relationales Datenbankmodell
1513.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;