Stunde8-dpm.ink Lösung "Osterhasensystem" *) Straße Alter Name Adresse Wunsch SV-Nr. PLZ Kind Ort 1 (0,n) äußern Telefon (0,m) stationiert SV-Nr. Hilfsosterhase (0,n) Ort 1 (0,n) cm (0,n) n (1,1) versorgen SV-Nr. Name (1,n) beaufsichtigen entnehmen cn (1,m) Staat_Ort 1 Osterhase cn (0,m) betreuen Staat (1,1) bearbeiten beauftragen (0,m) m Wunsch cn (0,1) Ostereier Name cn (1,1) W-Nr. 1 (1,n) n (1,1) LagerNr. Lagerort Ort Kind(SV-Nr, Ostereier, Ort, PLZ, Strasse, Name, Alter) Wunsch(W-Nr, FK-Kind-SV-Nr, Wunsch, FK-O-SV-Nr) Osterhase(Name, SV-Nr) Lagerort(Lager-Nr, Ort, FK-O-SV-Nr) Staat(Staat, Ort, FK-Lager-Nr) Hilfsosterhase(SV-Nr, Name, Stationiert) Telefon(Telefonnr, FK-HO-SV-Nr) Entnahme(Lagernr, FK-HO-SV-Nr) Betreuung(FK-HO-SV-Nr, Staat, Ort) Auftrag(Wunschnr, FK-HO-SV-Nr, FK-O-SV-Nr) *) Eine Aufgabe der WU Wien 1 Stunde8-dpm.ink Lösung Arztpraxissystem (Bitte Hinweise auf nächster Seite beachten) Arztpraxi(Praxisnr, Ort, PLZ, Strasse, Name) Patient(Kassennr, Kasse, Strasse, PLZ, Ort, Name) Arzt(Arzt-Kassen-Nr, FK-Praxis, Fachrichtung) Behandlung(FK-Kassennr, FK-Arzt-Kassen-Nr, Datum, abgerechnet) Medikament(Name, FK-ATC-Code) Einnahme(FK-Kassenr, ATC-Code, Menge, Datum) Verwaltung(FK-Kassen-Nr, FK-Praxisnr) ATC-Code(ATC-Code, FK-ATC-Code) PLZ Ort Praxisnr 1 beinhaltet Strasse Adressträger Schlüssel auf übergeordneten ATC-Code ATC-Code N Name N verwaltet gehört Kassenr Datum Datum N N Arzt ArztKassennr ATC-Code 1 Arztpraxis N behandelt Fach abgerechnet richtung N Patient Kasse N einnehmen N Menge Medikament Name 2 Stunde8-dpm.ink Hinweise zur Aufgabe 1. Die Attribute Ort, PLZ, Strasse und Name könnten anstatt dem (abstrakt wirkenden) Entitätstypen "Adressträger" auch direkt den Entitätstypen "Patient" und "Arztpraxis" zugeordnet werden 2. Bei n:m-Beziehungen ohne Attribute können die beiden Fremdschlüssel wie im Beispiel "Verwaltung" gemeinsam den Primärschlüssel darstellen. Hat die Beziehung jedoch Attribute, so muss der Primärschlüssel u.U. aus weiteren Attributen zusammen gesetzt werden. 3. Ein ATC-Code stellt eine hierarchische Gruppierung von Medikamenten dar. Auch der hierarchisch niedrigste ATC-Code beinhaltet verschiedene Medikamente. Beispielsweise könnte ein Hauptcode alle Magenmedikamente beinhalten, ein Untercode alle schmerzlindernden Magenmedikamente. Das Ziel dieses Aufgabenteils war es einzig eine rekursive Beziehung in einer Relation abzubilden. Abbildung von rekursiven Beziehungen im ERD Nr des Chefs/Chefin Nr 1 Mitarbeiter(Nr, FK-Nr) leitet Mitarbeiter N 3 Stunde8-dpm.ink Lösung der Aufgabe Firma Mitarbeiter (Personalnr, Name, Geb, Plz, Gehalt, Strasse, Beruf, FK-Abt-nr, Position) Sachbearbeiter (Personalnr, Name, Geb, Plz, Gehalt, Strasse, Beruf, FK-Abt-nr, Position) Kunde(Kundennr, Name, PLZ, Wohnort, Strasse, FK-Personal-nr-Sachb, ) Auftrag(Auftragsnr, Auftragsdatum, Beschr, FertigDat, FK-Kundennr, FK-Projektnr) Projekt(Projektnr, name, BegDatum, Enddatum, FK-Abteilungnr) Abteilung(Abteilungnr, Name) ArbeitAn(als, prozAnteil, FK-Projektnr, FK-Personalnr) Quelle: SQL Skript des Rechenzentrums der Uni Hannover 4 Stunde8-dpm.ink Normalisierung Ziel: - Redundanzen vermeiden (sich wiederholende Information) - Übersichtliche und einfache Relationen - Einfache Datenpflege - Anomalien (sich widersprechende Datenbankinhalte) vermeiden 0. Definitionen von Abhängigkeiten zwischen Attributen einer Relation a) Funktionale Abhängikeit Ein Attribut bzw. eine Attributkombination ist dann von einem anderen Attribut bzw. einer Attributkombination abhängig, wenn zu einem Attributwert von A GENAU ein Attributwert von B gehört. Bsp: In einer Relation Mitarbeiter ist das Attribut "Name" funktional abhängig vom Attribut "Personalnummer" Lieferung (LieferNr, ArtikellNr, Artikelname, Anzahl, Lieferdatum, Lieferfirma, Anschrift Firma) Abhängigkeiten Artikelnummer => Artikelname Liefernummer => Lieferfirma Lieferfirma => Anschrift Firma Liefernummer => Lieferdatum Artikelnummer => Lieferfirma 5