1. 10.06.09 Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg Sebastian Schäfer
2.
3. 10.06.09 2) Attribute der einzelnen Entities Modellierung Adressen Artikel Bestellpositionen Bestellungen Buecher AdrNr Anrede Vorname Name Strasse HausNr PLZ Ort ArtNr ISBN VKPreis BestNr ArtNr Menge BestNr KdNr VerlagKuerzel Datum RechAdrNr LiefAdrNr ISBN KatNr Titel Autor Jahr Druckdatum SeitenAnz EKPreis Kategorien Kunden KundenLogin Verlag KatNr Bezeichnung KdNr Email Anrede Vorname Name DefRechAdrNr DefLiefAdrNr KdNr Passwort Kuerzel Name AdrNr Telefon Telefax Email Homepage
4.
5. 10.06.09 Kunden KundenLogin Adressen Artikel Bücher Verlag Bestellungen Bestellpositionen Kategorien besitzt besitzt speichert Passwort erstellt Besteht aus gehört zu beinhaltet besteht aus tätigt beinhaltet 1 n 1 1 1 n 1 2 1 n 1 2 1 1 1 1 1 1 1 1 4 u. 5) Beziehung zwischen den Entities; Entwurf des Entity-Relationship-Modell Modellierung
6. 10.06.09 6) Entwurf des ER-Diagramms und des physischen Datenmodells Modellierung
7. 10.06.09 1) Beschreibung der Tabellen und Attribute Überführung in ein relationales Datenbankmodell 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 Datetime RechAdrNr Int(11) LiefAdrNr Int(11) ISBN Char(32) KatNr Int(11) Titel Varchar(256) Autor Varchar(256) Jahr Year Druckdatum Date SeitenAnz 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)
8. 10.06.09 2) Analyse der Zusammenhänge Überführung in ein relationales Datenbankmodell Adressen Artikel Bestellpositionen Bestellungen Buecher Funktionale Abhängigkeiten AdrNr -> Anrede AdrNr -> Vorname AdrNr -> Name AdrNr -> Strasse AdrNr -> HausNr AdrNr -> PLZ AdrNr -> Ort Funktionale Abhängigkeiten ArtNr -> ISBN ArtNr -> VKPreis Voll funktionale Abh. BestNr, KdNr -> Menge Funktionale Abhängigkeiten BestNr -> KdNr BestNr -> VerlagKuerzel BestNr -> Datum BestNr -> Rech/LiefAdrNr Funktionale Abhängigkeiten ISBN -> KatNr ISBN -> Titel ISBN -> Autor ISBN -> Jahr ISBN -> Druckdatum ISBN -> Seiten ISBN -> EKPreis Kategorien Kunden KundenLogin Verlag Funktionale Abhängigkeit KatNr -> Bezeichnung Funktionale Abhängigkeiten KdNr -> Email KdNr -> Anrede KdNr -> Vorname KdNr -> Name KdNr -> DefRechAdrNr KdNr -> DefLiefAdrNr Funktionale Abhängigkeit KdNr -> Passwort Funktionale Abhängigkeiten Kuerzel -> Name Kuerzel -> AdrNr Kuerzel -> Telefon Kuerzel -> Telefax Kuerzel -> Email Kuerzel -> Homepage
9. 10.06.09 3) Anlegen von Primär- und Fremdschlüsseln Überführung in ein relationales Datenbankmodell 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: KdNr VerlagKuerzel RechAdrNr LiefAdrNr Primärschlüssel: ISBN Fremdschlüssel: KatNr Kategorien Kunden KundenLogin Verlag Primärschlüssel: KatNr Fremdschlüssel: keine Primärschlüssel: KdNr Fremdschlüssel: DefRechAdrNr DefLiefAdrNr Primärschlüssel: KdNr Fremdschlüssel: KdNr Primärschlüssel: Kuerzel Fremdschlüssel: AdrNr
10. 10.06.09 Nicht normalisierte Ausgangstabelle für Bestellpositionen (als Beispiel): Nächster Schritt: Einfachheit und Eindeutigkeit der Attribute herstellen => Normalisierungsprozess zur 1. NF 4) Nicht normalisierte Relation Überführung in ein relationales Datenbankmodell 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
11. 10.06.09 Aus dem Beispiel ergibt sich für die 1.NF: Nächster Schritt: Abhängigkeiten herausfinden und atomisieren => Normalisierungsprozess zur 2 bzw. 3. NF 5) Normalisierungsprozess, 1. NF Überführung in ein relationales Datenbankmodell 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
12. 10.06.09 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. Bestellungen Bestellpositionen Kunden Verlag 5) Normalisierungsprozess, 3. NF Überführung in ein relationales Datenbankmodell KundeID KundeVN KundeNN 1001 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 Menge 1 2 4 1 3 1 2 3 4 3 1 10 3 4 4 3 5 1 4 3 1 4 2 50
13. 10.06.09 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 5) Normalisierungsprozess, 4. NF Überführung in ein relationales Datenbankmodell Person Lieblingsserie Lieblingsclubs Stefan Dr. House Watergate Stefan Dr. House Weekend Stefan Stromberg Watergate Stefan Stromberg Weekend Sebastian Switch Berghain Sebastian Switch Tresor Person Lieblingsserie Stefan Dr. House Stefan Stromberg Sebastian Switch Person Lieblingsclubs Stefan Watergate Stefan Weekend Sebastian Berghain Sebastian Tresor
14. 10.06.09 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 5) Normalisierungsprozess, 5. NF Überführung in ein relationales Datenbankmodell Person Projekt Aufgabe Stefan Projekt 1 Programmierung Stefan Projekt 2 Datenbank Sebastian Projekt 1 Programmierung Sebastian Projekt 3 CI Person Projekt Stefan Projekt 1 Stefan Projekt 2 Sebastian Projekt 1 Sebastian Projekt 3 Projekt Aufgabe Projekt 1 Programmierung Projekt 2 Datenbank Projekt 1 Programmierung Projekt 3 CI Person Aufgabe Stefan Programmierung Stefan Datenbank Sebastian Programmierung Sebastian CI
15. 10.06.09 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; 6) Referentielle Integrität Überführung in ein relationales Datenbankmodell