Prof. Dr. J. Weinberg 3 IuK - Systeme Kurs A - WS 1999 Seite 56 Daten- und Datenbank- Design (Fortsetzung) 3.1 3.2 3.3 3.4 3.5 Darstellung der Referenzen der Form n:m Objekt A bezieht sich auf Objekt B in der Form n:m „ist befreundet mit” Mädchen m Junge n Simone Jens Petra Oliver Iris Peter Nina Paul Hier entsteht das Problem, daß beide Objekte „viele“ Beziehungen haben können, und somit nicht wie bei 1:1 - oder 1:n - Beziehungen ein Fremdschlüssel zur Beschreibung der Beziehungen ausreicht. Die Lösung besteht darin ein eigenes Objekt für die Beziehung zu modellieren: (Skizze 10) Durch das „Beziehungsobjekt“ Paar wird die n:m-Beziehung in zwei 1:n-Beziehungen aufgelöst und kann (wie oben bei der 1:n Beziehung beschrieben ) dargestellt werden. Beziehungsobjekte werden mit einer Raute dargestellt Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Seite 57 In der Praxis finden sich selten „reine“ Beziehungsobjekte wie im oben dargestellten Beispiel. Oft sind weitere Eigenschaften der Beziehung von Interesse, z. B. „besteht seit“, etc. In solchen Fällen verwischt die Abgrenzung zwischen „echten“ Objekten und „Beziehungsobjekten“. Statt der Darstellung mit einer „Raute“ kann in diesen Fällen auch ein „Rechteck“ gewählt werden. Beispiel Freundschaft Mädchen 1 n Mädchen - Nr. Name Adresse … Freundschaft n Junge 1 Jungs - Nr. Freundschafts - Nr. Name Mädchen - Nr. Adresse Jungs - Nr. … (Skizze 11 „Freundschaften“) Beispiel Mietwagen Mietwagen „gehört zu” 1 „schließt“ Mietvertrag n n ” Kunde 1 Kunden - Nr. Vertrags - Nr. Name Wagen - Nr. Adresse Typ Kunden - Nr. … Farbe Datum Mietbeginn … Datum Mietende „Preis / Konditionen“ Wagen - Nr. Marke Modell (Skizze 12 „Mietwagen“) Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Seite 58 Beispiel: Ehe “schließt Mann ”1 n Mann - Nr. Geburtsdatum Geburtsname … “schließt Ehe n Frau 1 Frau - Nr. Ehe - Nr. Geburtsdatum Mann - Nr. Geburtsname Frau - Nr. … Heiratsdatum Ehenamen Scheidungsdatum … (Skizze 13 „Ehe“) Auch bei „Beziehungsobjekten“ sollte i.d.R. ein „nicht sprechender“ Primärschlüssel verwendet werden (Ausnahmen s.u.). Übung: Gelegentlich wird die Ansicht vertreten, daß es bei „Beziehungsobjekten“ ausreichend (und sinnvoll) sei, einen „sprechenden“ Primärschlüssel zu verwenden, der sich aus den beiden Fremdschlüsseln der beiden Objekte der Beziehung zusammensetzt. (z.B. Ehe: Mann-Nr und Frau-Nr.) Diskutieren Sie die Problematik. Prof. Dr. J. Weinberg 3.6 IuK - Systeme Kurs A - WS 1999 Seite 59 Spezialfall: Hierarchische Beziehungen - Kopf-/Positionssätze Beispiel: Verkaufsartikel setzen sich aus einem oder mehreren Produkten zusammen, die ggf. auch einzeln verkauft werden können: „Verkaufsartikel“ „Sets“ „Verkaufsstückliste“ „Package“ Bsp: 1 Kasten 20x0,5l Pils 1 Kasten 20x0,5l Pils + 1 Glas („Tulpe 0,2 Dekor 4711) + 20 Bierdeckel 1 Stereoanlage (= 1 Receiver, 1 CD-Player, 2 Boxen) ... “besteht aus” Verkaufsartikel m Produkt n Modellierung als Kopf - / Positionssatz Kopfsatz = übergeordnetes Element Verkaufsartikel VA - Nr. VA - Bezeichnung VA - Preis … „besteht aus“ VA - Position Primärschlüssel „besteht aus“ Produkt VA - Nr. Produkt - Nr. Positions - Nr. … Produkt - Nr. Menge (Skizze 14 „Verkaufsstückliste“) … Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Seite 60 Verkaufsstückliste: Beispiel Werbepaket „1 Kasten Pils mit Glas und Bierdeckel“ besteht aus einem Kopfsatz, der die gemeinsamen Informationen enthält und drei Positionen (je eine für jeden Artikel des „Sets“): Kopf: VA - Nr.: 4711 VA - Bezeichnung: Werbepaket 20 x 0,5 l Pils mit Glas und Bierdeckel VK - Preis: 23,99 DM Positionen: VA - Nr.: 4711 Positionsnr.: 01 Produkt - Nr.: 8580 (20 x 0,5 l Pils) Menge: 01 VA - Nr.: 4711 Positionsnr.: 02 Produkt - Nr.: 1312 (Glas) Menge: 1 VA - Nr.: 4711 Positionsnr.: 03 Produkt - Nr.: 4939 (Bierdeckel) Menge: 20 Bei diesen (nicht änderbaren) hierarchischen Beziehungen wird in der Regel der Primärschlüssel des „Positionssatzes“ durch den Schlüssel des „übergeordneten“ Objektes („Kopfsatz“) und einer „Positionsnummer“ gebildet. Primärschlüssel der Positionssätze: VA-Nr + Positionsnr. Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Seite 61 Standard - Beispiel im Vertrieb: Kundenauftrag Stufe 1: “bestellt” Kunde Artikel n m Stufe 2: “erteilt” Kunde “besteht aus” Auftrag 1 m n Artikel n Stufe 3: Kunde 1 “erteilt” Kunden - Nr. Kunden - Name … Auftrags - Nr. Kunden - Nr. Bestelldatum Bestellnr. des Kunden Lieferdatum Rechnungsrabatt Auftragsnr. Positionsnr. Artikelnr. Menge Preis Positionsrabatt Artikel - Nr. Artikel - Bezeichnung Warengruppe … n Auftrag (Kopf) 1 “besteht aus” n Auftragsposition n “beinhaltet” Primärschlüssel 1 Artikel (Skizze 15 „Auftrag“) Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Seite 62 Beispiel Auftrag ( ACCESS Datenbank Auftrag.mdb in ...\WI-A\Uebung\Uebung7) Beispiel der Tabellen Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Auftragsbestätigung über eine virtuelle Tabelle („View“, Abfrage“ s.u.) Seite 63 Prof. Dr. J. Weinberg 3.7 IuK - Systeme Kurs A - WS 1999 Seite 64 Erweiterte Notation: Bedingte Kardinalitäten Bislang wurde bei den „Kardinalitäten“ nur die maximal mögliche Anzahl der Beziehungen betrachtet, nicht jedoch ob mindestens eine Beziehung bestehen muß (minimale Anzahl). Beispiel: „Ehe“: nicht verheiratete Personen kommen vor „Mitarbeiter“: Mitarbeiter ohne Arbeitsplatz? „Auftrag“: muß (mindestens) eine Position enthalten Diese Frage wird entweder bei den „Gültigkeitsregeln“ ( Integrität) behandelt oder mittels einer Erweiterung der x:y Notation: 1. Alternative: Integritätsregel („Muß-Feld“, „Gültigkeitsregel“) 1:1, 1:n, n:m keine Auskunft über Mindestzahl, „kein Eintrag“ ist zulässig „Eintrag erforderlich“ wird als „Gültigkeitsregel“ formuliert 2. Alternative 1, C, M - Notation 1:1, 1:n, n:m bedeuten „mindestens“ eine Beziehung ist keine Beziehung notwendig wird dies durch ein c (=“conditional“, bedingt) angezeigt: c:1, c:c, c:n, 1:nc, c:nc, nc:nc Beispiele: Kunden/Vertreter Mitarbeiter/Gehaltskonto Produkt/Gebinde Achtung: Der Rechner läßt keine Ausnahmen zu. Wenn Ausnahmen möglich sein sollen, darf keine (strenge) Gültigkeitsregel formuliert werden. In diesen Fällen kommen „Hinweis“Regeln zum Einsatz, die Ausnahmen zulassen, jedoch eine Bestätigung anfordern. Da „Hinweis“-Regeln in der 1,C,M-Notation (Alternative 2) nicht vorgesehen sind, ist die 1. Alternative „praxisnäher“. Wird kein Eintrag vorgenommen bleibt das Attribut oder der Verweis „leer“. In der Datenbank wird dies durch einen „Null-Wert“ gekennzeichnet. Null-Wert bedeutet „kein Eintrag“=“N/V“=“Nicht vorhanden“ (engl. null=ungültig sprich „nall“) und muß von der Zahl 0 unterschieden werden! Prof. Dr. J. Weinberg IuK - Systeme Kurs A - WS 1999 Seite 65 Konventionen (für den Kurs): Objekte werden in Rechtecken dargestellt Beziehungsobjekte werden durch Rauten dargestellt Attribute werden unter den Objekten aufgelistet Primärschlüssel werden unterstrichen Fremdschlüssel werden „gepunktet“ unterstrichen weisen mit Pfeil auf den bezogen (Teil-) Primärschlüssel Beziehungen werden durch Pfeile dargestellt „Semantiken“ werden über die Beziehungspfeile geschrieben „Kardinalitäten“ werden an den „Endpunkte“ der Pfeile angegeben Es muß vermerkt werden ob „erweiterte“ Kardinalitäten 1,n,c, (c=conditional „Null-Wert“ erlaubt) oder entsprechende „Gültigkeitsregeln“ („Eingabe erforderlich“) verwendet werden. Hinweis: Null-Wert bedeutet „kein Eintrag“=“N/V“=“Nicht vorhanden“ (engl. null=ungültig - sprich „nall“) und muß von der Zahl 0 unterschieden werden! Ausnahmen: Zur besseren Übersicht werden ggf. manche Teile nur angedeutet (insbesondere werden oft nicht alle Attribute dargestellt) oder nur ein Ausschnitt des Modells („Fenster“) betrachtet.