Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) ) Entity-TypenModellierung Adressen Artikel Bestellpositionen Bestellungen Buecher Kategorien Kunden KundenLogin Verlag
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 2) Attribute der einzelnen EntitiesModellierung AdressenArtikelBestellpositionenBestellungenBuecher AdrNr Anrede Vorname Strasse HausNr PLZ Ort ArtNr ISBN VKPreis BestNr ArtNr Menge BestNr KdNr VerlagKuerzel Datum RechAdrNr LiefAdrNr ISBN KatNr Titel Autor Jahr Druckdatum SeitenAnz EKPreis KategorienKundenKundenLoginVerlag KatNr Bezeichnung KdNr Anrede Vorname Name DefRechAdrNr DefLiefAdrNr KdNr Passwort Kuerzel Name AdrNr Telefon Telefax Homepage
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 3) EntityschlüsselModellierung Adressen AdrNr Artikel ArtNr Bestellpositionen BestNr, ArtNr Bestellungen BestNr Buecher ISBN Kategorien KatNr Kunden KdNr KundenLogin KdNr Verlag Kuerzel
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 4) Beziehung zwischen den EntitiesModellierung
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 5) Entwurf des Entity-Relationship-ModellModellierung Kategorien
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 6) Entwurf des ER-Diagramms und des physischen DatenmodellsModellierung
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 1) Beschreibung der Tabellen und AttributeÜberführung in ein relationales Datenbankmodell AdressenArtikelBestellpositionenBestellungenBuecher 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 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) KategorienKundenKundenLoginVerlag KatNr Int(11) Bezeichnung Varchar(255) KdNr Int(11) 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) Varchar(1024) Homepage Varchar(1024)
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 2) Analyse der ZusammenhängeÜberführung in ein relationales Datenbankmodell AdressenArtikelBestellpositionenBestellungenBuecher 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 KategorienKundenKundenLoginVerlag Funktionale Abhängigkeit KatNr -> Bezeichnung Funktionale Abhängigkeiten KdNr -> 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 -> Kuerzel -> Homepage
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 3) Anlegen von Primär- und FremdschlüsselnÜberführung in ein relationales Datenbankmodell
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 4) Nicht normalisierte RelationÜberführung in ein relationales Datenbankmodell Nicht normalisierte Ausgangstabelle für Bestellpositionen (als Beispiel): KundeIDKundeNameVerlagKuerzelVerlagNameBestellNrBestellDatumArtikel 1001Sebastian SchäferABCSoftwarehaus ABC AJAX, Erklär mir … Erklär mir … 1002Stefan RüschenbergABCSoftwarehaus ABC Grundlagen, DBII, MySQL5 DEFSoftwarehaus DEF AJAX Nächster Schritt: Einfachheit und Eindeutigkeit der Attribute herstellen => Normalisierungsprozess zur 1. NF
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 5) NormalisierungsprozessÜberführung in ein relationales Datenbankmodell Aus dem Beispiel ergibt sich für die 1.NF: KundeIDKundeNameVKuerzelVerlagNameBestellNrBestellDatumArtikelNrArtikelNameMenge 1001Sebastian SchäferABCSoftwarehaus ABC AJAX4 1001Sebastian SchäferABCSoftwarehaus ABC Erklär mir …1 1001Sebastian SchäferABCSoftwarehaus ABC Erklär mir …4 1002Stefan RüschenbergABCSoftwarehaus ABC Grundlagen Stefan RüschenbergABCSoftwarehaus ABC DB II3 1002Stefan RüschenbergABCSoftwarehaus ABC MySQL Stefan RüschenbergDEFSoftwarehaus DEF Erklär mir …1 1002Stefan RüschenbergDEFSoftwarehaus DEF AJAX50 Nächster Schritt: Abhängigkeiten herausfinden und atomisieren => Normalisierungsprozess zur 2 bzw. 3. NF
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 5) NormalisierungsprozessÜberführung in ein relationales Datenbankmodell 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 KundeIDKundeVNKundeNN 1001SebastianSchäfer 1002StefanRüschenberg VerlagKuerzelVerlagName ABCSoftwarehaus ABC DEFSoftwarehaus DEF BestellNrBestellDatum BestNrArtNrMenge BestellungenBestellpositionen KundenVerlag
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian Schäfer (Matrikel-Nr.: ) 6) Referentielle IntegritätÜberführung in ein relationales Datenbankmodell 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;