belegarbeit 1

15
Veranstaltung: Datenbanken I Dozent: Dr.-Ing. Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: 523946) Sebastian Schäfer (Matrikel-Nr.: 524037) 1 27.06.22 Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg Sebastian Schäfer

Upload: bergschaf

Post on 27-Jun-2015

565 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Belegarbeit 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)

113.04.23

Belegarbeit 6Online-Bestellung von Büchern

Stefan RüschenbergSebastian Schäfer

Page 2: Belegarbeit 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)

213.04.23

1) Entity-Typen Modellierung

• Adressen• Artikel• Bestellpositionen• Bestellungen• Buecher• Kategorien• Kunden• KundenLogin• Verlag

Page 3: Belegarbeit 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)

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

Page 4: Belegarbeit 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)

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

Page 5: Belegarbeit 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)

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

Page 6: Belegarbeit 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

Page 7: Belegarbeit 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)

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)

Page 8: Belegarbeit 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)

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

Page 9: Belegarbeit 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)

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

Page 10: Belegarbeit 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)

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

Page 11: Belegarbeit 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)

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

Page 12: Belegarbeit 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)

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

Page 13: Belegarbeit 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)

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

Page 14: Belegarbeit 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)

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

Page 15: Belegarbeit 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) 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;