Kapitel DB-2: Datenbankentwurf - Informationsmodellierung

Die Seite wird erstellt Volker Scholz
 
WEITER LESEN
Kapitel DB-2: Datenbankentwurf - Informationsmodellierung
Herbstsemester 2011

            CS241 Datenbanken / CS261 Web Data Management
          Kapitel DB-2: Datenbankentwurf –
             Informationsmodellierung
                                          H. Schuldt

               Informationsmodellierung
Ziel der Informationsmodellierung (des konzeptuellen Datenbankentwurfs)
• Die Modellierung von Sachverhalten der realen Welt mit Hilfe weniger
    Grundkonzepte mit dem Zweck, eine computergestützte Datenbank aufzubauen
• Dazu sind notwendig:
     – eine Modellierungssprache (ein „semantisches“ Datenmodell)
     – eine Entwurfsmethodologie
     – computergestützte Entwurfswerkzeuge (für grosse Entwürfe)

Rolle der Informationsmodellierung bei der Entwicklung von Informationssystemen:
   Informationssysteme werden in mehreren Stufen entwickelt:
     1. Analyse der Anwendungswelt (Ermittlung des Informationsbedarfs,
        zu automatisierende Abläufe)
     2. Informationsmodellierung (sowie Prozessmodellierung)
     3. Abbildung des Informationsmodells auf ein (relationales) Datenbankschema

HS 2011          Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-2

                                                                                                 1
Kapitel DB-2: Datenbankentwurf - Informationsmodellierung
Einordnung des konzeptuellen DB-Entwurfs (I)
Der konzeptuelle Datenbank-Entwurf ist wie folgt (grob) in Aktivitäten der
Informationsmodellierung eingebunden:

                                          Ausschnitt der
                                           realen Welt
                                            (Miniwelt)

                                                                Konzeptueller DB-Entwurf:
                                                                manuelle/intellektuelle Modellierung

                                     konzeptuelles Schema

                                                                      halbautomatische Transformation

          relationales               Netzwerk-                   objektrelationales
            Schema                    Schema
                                                          ...        Schema

HS 2011                  Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf     DB-2-3

     Abstraktionsebenen des Datenbankentwurfs
Beim Entwurf einer Datenbankanwendung lassen sich drei Abstraktionsebenen
unterscheiden:
•    die konzeptuelle Ebene: diese ermöglicht die Strukturierung des
     Anwendungsbereichs (Miniwelt). Das Ergebnis des konzeptuellen Entwurfs
     (konzeptuelles Schema) ist unabhängig vom verwendeten Datenbanksystem.
     Der konzeptuelle DB-Entwurf ist Gegenstand dieses Kapitels.
•    die Implementierungsebene: diese Ebene sieht die Modellierung mit Hilfe
     der Konzepte des verwendeten Datenbanksystems vor (d.h. verwendet das
     Datenmodell eines DBMS – relational, objektorientiert, objektrelational, etc.).
     Das relationale Datenmodell wird Kapitel DB-3 eingeführt.
•    die physische Ebene: diese Ebene hat zum Ziel, die Performanz der
     Datenbankanwendungen zu erhöhen, in dem besondere Speicherstrukturen,
     Indexstrukturen, etc. verwendet werden. Voraussetzung sind dabei Annahmen
     der zu erwartenden Datenmengen bzw. Zugriffscharakteristiken; zudem sind
     vertiefte Kenntnisse von Betriebssystemkonzepten nötig.
     Kapitel DB-9 und DB-10 (nur cs241) befassen sich mit dem physischen Entwurf
     und dessen Grundlagen.

HS 2011                  Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf     DB-2-4

                                                                                                           2
Datenbank-Entwurf: Übersicht
•   Generelle Aufgabe:
    Finde eine formale Beschreibung (Modell) für einen zu modellierenden Teil der
    realen Welt

•   Zwischenstufen:
     – Beschreibung durch natürliche Sprache (Pflichtenheft):
       Beispiel: In der Datenbank sollen alle Studierenden mit den
                     durch sie belegten Lehrveranstaltungen gespeichert sein

     – Beschreibung durch abstrakte grafische Darstellungen:

              Studierender                  belegt                   Vorlesung

     – Beschreibung im relationalen Modell:
       create table studierender (...) ;
       create table vorlesung (...) ;

HS 2011              Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf             DB-2-5

Einordnung des konzeptuellen DB-Entwurfs (II)
          Informations-                                                      Datenverarbeitungs-
          anforderungen                                                        anforderungen

                                          Anforderungs-
                                             analyse
                                                       Anforderungsspezifikation
                                                       (Pflichtenheft, Informations- & Prozessmodell)

                                     Konzeptueller Entwurf
                                                                                               DBMS-
                                                       konzeptuelles Schema                 Eigenschaften
                                                       (DBMS-unabhängig)
                                   Implementierungsentwurf
                                     (logischer Entwurf)
    Hardware/OS-
    Eigenschaften                                      logisches Schema
                                                       (DBMS-abhängig)

                                       Physischer Entwurf
                                                       Physisches (internes) Schema
                                                       (DBMS-abhängig)
HS 2011              Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf             DB-2-6

                                                                                                               3
Grundkonzepte semantischer Datenmodelle (I)
Klassifikation (Synonym: Typisierung)
• Grundlage der Klassifikation ist die Unterscheidung zwischen dem Typ eines
   Objekts und einer Menge von Objekten dieses Typs (auch „Extent“ des Typs
   genannt). Ein Objekt, also ein Element des Extents, wird auch „Ausprägung“
   des Typs genannt.

Generalisierung/Spezialisierung: Beides beinhaltet die Anordnung der Typen in einer
   Typhierarchie, besser Typverbund (häufig auch Begriffshierarchie genannt).

     – Generalisierung eines Typs:
        • Übergang zu einem allgemeineren (Supertyp).
        • Allgemeinster Typ ist „Das Ding an sich“

     – Spezialisierung eines Typs:
        • Übergang von einem allgemeinem zu einem oder mehreren speziellen
          Typen (Subtypen)

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-7

Grundkonzepte semantischer Datenmodelle (II)
Ein weiteres Grundkonzept ist das Abstrahieren von Details. Dies stellt eine
wesentliche Fähigkeit menschlicher Kommunikation dar und ist auch für die
Repräsentation von Wissen essentiell.

Man unterscheidet zwei Formen der Abstraktion:

    1. Aggregation: Bildung von zusammengesetzten Objekttypen aus Einfacheren.
       (vergleichbar mit dem Bilden von struct- bzw. record-Typen in
       Programmiersprachen und dem gesamthafte Ansprechen von struct-
       oder record-Variablen)

    2. Assoziation: Bildung von Mengentypen, also die Zusammenfassung
       von Objekten desselben Typs (vergleichbar dem set-Konstruktor in
       Programmiersprachen)

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-8

                                                                                                  4
Das (erweiterte) Entity-Relationship-Modell …
Das Entity-Relationship-Modell (ER-Modell) bzw. das
erweiterte Entity-Relationship-Modell (EER-Modell) ist das am weitesten verbreitete
Modell zur Unterstützung des konzeptuellen Datenbank-Entwurfs.
     – Es dient dazu, ein konzeptuelles Schema für einen Ausschnitt der
       realen Welt zu erstellen
     – Als grafische Darstellung werden E/R-Diagramme eingesetzt
     – Gemäss den Anforderungen an den konzeptuellen Entwurf beschreibt das
       (E)ER-Modell ein maschinenfernes Datenmodell und erlaubt die Modellierung
       auf einem hohen Abstraktionsniveau, ohne dass dabei Überlegungen zur
       Effizienz eine Rolle spielen
     – Das Modell muss danach über vorgegebene, grundlegende
       Transformationsregeln in ein logisches Schema überführt
       (und evtl. nachgebessert T Normalisierung) werden

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf    DB-2-9

    … Das (erweiterte) Entity-Relationship-Modell
Ausgangspunkt der Modellierung sind Objekte (Entities, Entitäten) der realen Welt
oder unserer Vorstellung (eine Person, ein Buch, ein Bankkonto, etc.).
Die Modellierung umfasst folgende Schritte:

•   Schritt 1: Anwendung der Klassifikation
     – Welche verschiedenen Typen von Objekten soll es geben? Was sind deren
       Attribute?

•   Schritt 2: Generalisierung
     – Feststellen, ob es Objekttypen gibt, deren Merkmalsfunktionen als
       Teilmengen bei anderen Objekttypen vorkommen.

•   Schritt 3: Beziehungen zwischen Objekten:
     – Feststellen, welche Typen von Beziehungen (“Relationship Types”)
       es zwischen den Objekttypen geben soll.

•   Schritt 4: Festlegung der Arten der Beziehungstypen

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-10

                                                                                                   5
Elemente des ER-Modells
•   Entitätstypen (Entity Types): Objekttypen
                                                                                  Student

•   Attribute: Eigenschaften der Objekttypen                                       Name

•   Beziehungstypen (Relationship Types):
                                                                                   belegt
    Beziehungen zwischen Entitäten

Entscheidende Aufgabe des Datenbank-Entwurf:
• Das Auffinden geeigneter Entitäten, Attribute und Beziehungen

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf      DB-2-11

             Anwendung der Klassifikation
Schritt 1: Anwendung der Klassifikation als erstes Ordnungssprinzip des Entwurfs:
    – Welche verschiedenen Typen (Entitätstypen) von Objekten soll es geben?
        Durch welche Merkmale (= Attributwerte) sollen sie beschrieben werden
        und wie sollen sie daher später in der DB repräsentiert sein?
Ein Entitätstyp E bezeichnet eine Menge von Merkmalsfunktionen (=Attribute)
Eine Entitätsmenge, abgekürzt durch ext(E) bezeichnet eine Menge von Objekten die
   vom gleichen Typ sind, d.h. die durch die gleichen Attribute beschrieben werden
   (sollen). Manchmal wird die Entitätsmenge auch aktiver Domain von E bezeichnet.
Ein Attribut (Merkmalsfunktion) ist eine Funktion, die einer (realen) Entität einen
   Merkmalswert aus einem bestimmten Wertebereich (Domain) zuordnet.

Beispiele:
    – Bücher     Attribute:            ISBN, Titel, Autoren, Verlag, Erscheinungsjahr
    – Bankkonten Attribute:            Kontonummer, Kontoinhaber, Kontostand, Zinssatz
    – Studenten  Attribute:            Matrikel-Nummer, Name, Adresse, Prüfungen

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf      DB-2-12

                                                                                                      6
Identifikationsschlüssel
•    Ein Identifikationsschlüssel eines Entitätstyps E ist eine Menge K von
     (einwertigen) Attributen, für die folgendes gilt: Zu jedem Zeitpunkt
     unterscheiden sich zwei verschiedene Objekte e1 und e2 aus E bezüglich K,
     und es gibt keine echte Teilmenge von K, die diese Eigenschaft besitzt.

     Beispiele:
      – Kontonummer bei Bankkonten einer bestimmten Bank,
      – IBAN und BIC bei internationalen Bankkonten
      – AHV-Nummer bei Angestellten

•    Es empfiehlt sich, als Identifikationsschlüssel künstliche Schlüssel zu verwenden,
     die sich während der “Lebensdauer” der identifizierten Objekte nie ändern,
     z.B. Kontonummern und Angestelltennummern.

•    Ein Objekt der realen Welt kann als eigenständiges Objekt oder “nur” als Wert
     eines Attributs modelliert werden.
      – Beispiel: “Farbe” kann eine Attribut eines Entitätstyps sein (z.B. die Farbe
         eines Autos) oder ein eigenständiger Entitätstyp mit Attributen wie
         “chemische Zusammensetzung”, “Preis” oder auch “Wellenlänge”

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf                 DB-2-13

Wertebereiche und Graphische Darstellung von Entitätstypen
•    Die Wertebereiche von Attributen sind prinzipiell nicht auf elementare Datentypen
     beschränkt, sondern können tupelwertig sein (z.B. Datum =TT.MM.JJ).
•    Ebenfalls sind einfache Mengen als Attributwerte zugelassen
•    Allerdings wird beides in der Praxis recht selten angewandt
                                                                                     Department.No ist
                                                                                     Identifikationsschlüssel
Symbole:                                       Beispiele:                      No

    Entity-Type                                 Department                   Name

                                                                           Locations
                                              Department.Locations ist ein mehrwertiges Attribut

                         A1                                                   No
                                                                                                First
                        ...

    Entity-Type                                  Employee                   Name
                         An                                                                     last
                                                                               ...
                                                                                Employee.Name ist ein
                                                                                strukturiertes Attribut
HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf                 DB-2-14

                                                                                                                  7
Generalisierung/Spezialisierung
Schritt 2: Generalisierung: Ordnung schaffen bei den Typen durch Anordnen der
   Typen in eine „Typhierarchie“: Feststellen, ob es Entitätstypen gibt, deren
   Merkmalsfunktionen als Teilmengen bei anderen Entitätstypen vorkommen.

Generalisierung, Spezialisierung, Vererbung:
• Zwei Entitätstypen E und F stehen in einer ISA-Beziehung, man sagt „F is a E“,
   wenn
    1. die Attributmenge von F eine Obermenge der Attributmenge von E ist und
    2. die Objektmenge von F eine Teilmenge der Objektmenge von E ist
       („jedes f ist-ein e“)

•    Man bezeichnet F als Spezialisierung von E (F ist Subtyp)
                                                                                          E
     und E als Generalisierung von F (E ist Supertyp).
     Man sagt auch, dass F die Attribute von E „erbt“.

                                                                                          F

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf       DB-2-15

    Generalisierung/Spezialisierung: Beispiel
Die Vererbungsbeziehungen sind Bestandteil des erweiterten ER-Modells
• Beispiel:
    – Ein Lehrender kann entweder ein Professor, ein Assistent oder ein externer
       Lehrbeauftragter sein

•    Charakteristik und Bedeutung:
      – Sämtliche Attribute und Beziehungen werden in der Typhierarchie nach
        unten vererbt

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf       DB-2-16

                                                                                                        8
Generalisierung/Spezialisierung
Mit der Generalisierung lassen sich ganze Hierarchien aufbauen, die häufig die
    morphologische Gliederung eines Anwendungsfeldes modellieren.

Beispiele:
    • Wirbeltiere – Säugetiere – Katzen – Tiger – Säbelzahntiger
    • Bankkonten – Sparkonten – Jugendsparkonten

Generalisierungshierarchien müssen nicht notwendigerweise Bäume sein.
Beispiel:
                                           Personen

                     Angestellte                               Studenten

                                         Praktikanten

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-17

Zusatzbedingungen bei Spezialisierung/Generalisiserung
Verfeinerungen bei Generalisierung/Spezialisierung
•   Seien F1, ..., Fn Spezialisierungen des Entitätstyps E.
•   E heisst disjunkt partitioniert, wenn je zwei Objektmengen Oj und Ok der
    Typen Fj und Fk disjunkt sind.
•   E heisst vollständig-überdeckend partitioniert wenn die Vereinigung der
    speziellen Objektmengen die Objektmenge von E ergibt

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-18

                                                                                                    9
Beziehungstypen
Schritt 3: Ausgangspunkt: Objekte der realen Welt. Diese stehen in vielerlei
   Beziehungen zueinander (z.B. manche Personen sind Kunden einer Bank,
   manche Personen sind verheiratet). Feststellen, welche Typen von Beziehungen
   („Relationship Types“) es zwischen den Objekttypen geben soll.

Beziehungstyp, Beziehungsmenge, Beziehung
• Ein Beziehungstyp B zwischen Entitätstypen T1, T2, ..., Tn mit n¥2 ist eine Folge
   von Paaren
                   B= ‚ R1:T1, R2:T2, ..., Rn:Tn Ú
   mit Ri als Rollennamen zur Bezeichnung der Rolle, die Entitätstyp Ti in der
   Beziehung B spielt.

•   Eine Beziehungsmenge (relationship set) des Typs B, abgekürzt mit ext(B) ist eine
    Teilmenge des kartesischen Produkts der betroffenen Objektmengen
                  ext(B) Œ ext(T1) ä ... ä ext(Tn)

•   Eine einzelne Beziehung b ist ein n-Tupel b = ‚ id(e1), ..., id(en) Ú mit id(ei)
    als Identifikationsschlüssel des Objektes ei vom Typ Ti, also ei aus ext(Ti)

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-19

                Beziehungstypen: Beispiele
Beispiel 1:
                  Studierender                   belegt                   Vorlesung

              Beziehungsmenge:           belegt   (Wirth, Algorithmen und Datenstrukturen)
                                         belegt   (Wirth, Programmieren I)
                                         belegt   (Kant, Grundlagen der Philosophie)
                                         belegt   (Bernoulli, Mathematik I)
Beispiel 2:
• Beziehungstyp Einkauf:
          Einkauf = ‚ Kunde:Person, Kauf:Ware, Verkäufer:Händler Ú
          Ausprägungsbeispiele:      ‚ Ueli, Milch, Migros Ú
                                     ‚ Christoph, Käse, Coop Ú

Beispiel 3:
• Beziehungstyp verheiratet_mit:
          verheiratet_mit = ‚ Ehefrau:Person, Ehemann:Person Ú
          Ausprägungsbeispiele       ‚ Paola, Kurt Ú
                                     ‚ Paola, Felix Ú

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-20

                                                                                                    10
Beziehungsattribute
Beispiel 3 zeigt, dass Verfeinerungen von Beziehungen nötig sind
(weitere Arten von Beziehungen)

Beziehungsattribut: Zusätzlich zur Angabe der beteiligten Entitätstypen können
weitere Merkmalsfunktionen (Attribute) –wie bei Entitätstypen– zur näheren
Beschreibung einer Beziehung herangezogen werden
(z.B. die Vorratsmenge, die von einem Produkt in einem Lager vorhanden ist,
oder die Note, die ein Student in einem Prüfungsfach erreicht hat).

Beispiel 3*:
Beziehungstyp verheiratet_mit*:

verheiratet_mit = ‚ Ehefrau:Person, Ehemann:Person, Hochzeit:Datum, Scheidung:Datum Ú
                         Ausprägungsbeispiele               ‚ Paola, Kurt, 01.01.1955, 31.12.1988 Ú
                                                            ‚ Paola, Felix, 01.01.1989, Ú

HS 2011                  Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-21

    Graphische Darstellung von Beziehungen

    Symbol:

                            RoleName1                    RoleName2
          Entity-Type1                    Relship-Type                    Entity-Type2

                                A1            . . .            An

    Beispiel
                             Manager
           Employee                         Manages                       Department

                                            StartDate

HS 2011                  Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-22

                                                                                                          11
Mehrstellige Relationen
•   Relationen können auch mehrstellig sein, d.h. mehr als zwei Entitätstypen
    verbinden (ternäre Relationen, vierstellige Relationen, etc.)

                                  Dozent

                                empfiehlt
            Buch                                         Vorlesung

Ausprägung: empfiehlt (Schuldt, Kemper&Eickler-Datenbanksysteme, Datenbanken)
            empfiehlt (Vetter, Mössenböck-Sprechen Sie Java?, Programmieren I)
            empfiehlt (Kant, Kritik der reinen Vernunft, Philosophie I)

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-23

           Schlüssel in Beziehungstypen …
•   Schlüssel eines Beziehungstyps: Eine Teilmenge K der Vereinigung Ki der
    Identifikationsschlüssel K1, ..., Kn der betroffenen Entitätstypen T1, ..., Tn heisst
    Schlüssel(-kandidat) des Beziehungstyps B, wenn sich zu jedem Zeitpunkt je zwei
    verschiedene Beziehungen b und b‘ von ext(B) bezüglich K unterscheiden
    müssen, und es keine echte Teilmenge von K gibt, die diese Eigenschaft hat.
    Falls mehrere Schlüsselkandidaten existieren, wird einer zum
    Identifikationsschlüssel von B erklärt.

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-24

                                                                                                    12
… Schlüssel in Beziehungstypen
•    Beispiel 1:
     Beziehungstyp:          Lagerung = ‚ Lagerprod:Produkt, Lagerort:Ort Ú
     PNr ist ein Schlüsselkandidat von Lagerung, falls ein Produkt immer nur an einem
     Ort gelagert wird. Andernfalls ist {PNr,OrtNr} ein Schlüsselkandidat von Lagerung.

•    Beispiel 2: Schlüssel?

                          Prüfling                                 Prüfer
          Studierender                          Prüfung                                Professor

                          Note                        Prüfungsfach
       Mat.-Nr.                                                                            Name
                                               Vorlesung

                                               Nummer

HS 2011             Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf           DB-2-25

              Objekttyp oder Beziehungstyp?
•    Grundsätzlich gilt, dass jeder Beziehungstyp mit Attributen auch als Entitätstyp
     eingeführt werden könnte.
•    Beispiel: Kunden (KNr) bestellen Produkte (PNr) zu einem bestimmten Datum in
     einer bestimmten Menge. Es sollen fortlaufend die Bestellungen nummeriert
     werden (BestNr)

    Variante 1:

            Kunde                            Bestellung                                Produkt

                           Datum                                 Menge

                                              BestNr

•    Nachteile/Fehler?

HS 2011             Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf           DB-2-26

                                                                                                             13
Beziehungstyp wird Objekttyp
•   Variante 2: Einführung eines Entitätstyps „Bestellungen“

Regel: Eine komplizierter, durch viele Attribute beschriebener Beziehungstyp sollte
   besser in einen Entitätstyp überführt werden; dann werden nur einfache binäre
   Beziehungen zwischen den ursprünglichen Entitätstypen und dem neuen
   Entitätstyp benötigt

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-27

                 Kardinalitätsrestriktionen
Schritt 4: Festlegung der Arten der Beziehungstypen, also zusätzliche einfache
   Integritätsbedingungen

•   Kardinalitätsbedingungen:
    Eine Kardinalitätsbedingung (cardinality constraint) für die Teilnahme eines
    Entitätstyps E in einem Beziehungstyp B legt fest, wie häufig eine Entität vom Typ
    E in B mindestens vorkommen muss (minimale Kardinalität) und/oder wie häufig
    sie höchstens vorkommen darf (maximale Kardinalität).

•   In einem ER-Diagramm wird die Kante zwischen einem Entitätstyp E und einem
    Beziehungstyp B mit (min,max) annotiert, wobei min die minimale und max die
    maximale Kardinalität bezeichnen. Wenn die maximale Kardinalität nicht
    spezifiziert wird, steht für max das Symbol * („don‘t care“).

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-28

                                                                                                   14
Beispiel zu Kardinalitätsrestriktionen …

                                         works-for
                     (1,1)                                        (2,*)

          Employee                                                        Department

                     (0,1)                                       (1,1)

                                         manages

HS 2011         Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf     DB-2-29

   … Beispiel zu Kardinalitätsrestriktionen
Beispielausprägung zu ERM-Diagramm der vorigen Seite:

                             works-for

     Employee                                                               Department

                             manages

HS 2011         Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf     DB-2-30

                                                                                                   15
Gegenüberstellung üblicher Sprechweisen
•   In der Praxis sind für die minimale Kardinalität meist nur die Werte 0
    (“optional participation”) und 1 (“mandatory participation”) relevant, für die
    maximale Kardinalität nur die Werte 1 und * . Die Teilnahme von E1 in R heisst
    optional, falls die minimale Kardinalität von E1 in R null ist und obligatorisch sonst.

•   Gegenüberstellung:

     Art der Beziehung R zwischen     Kardinalität von E1 in R Kardinalität von E2 in R
     E1 und E2 (Kurzform)

           1 : 1 – Beziehung                (0,1) oder (1,1)            (0,1) oder (1,1)

           1 : N – Beziehung                (0,*) oder (1,*)            (0,1) oder (1,1)

           N : 1 – Beziehung                (0,1) oder (1,1)            (0,*) oder (1,*)

          M : N – Beziehung                 (0,*) oder (1,*)            (0, *) oder (1,*)

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf     DB-2-31

    1:1-Beziehung (one-to-one-relationship)

                 Angestellter                   leitet                   Abteilung
                                    (0,1)                      (1,1)

•   Charakteristik:
    Jedes Objekt aus dem linken Entitätstyp steht in Beziehung zu keinem oder genau
    einem Objekt aus dem rechten Entitätstyp und umgekehrt.

•   Im Beispiel hat jede Abteilung genau einen Leiter und kein Angestellter leitet
    mehrere Abteilungen

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf     DB-2-32

                                                                                                      16
m:1-Beziehung (many-to-one-relationship)

                Angestellter               arbeitet_in                  Abteilung
                                  (1,1)                      (2,*)

•   Charakteristik:
    Jedes Objekt auf der "many"-Seite steht in Beziehung zu höchstens einem
    Objekt auf der "one"-Seite (im Allgemeinen nicht umgekehrt)

•   Jeder Angestellte arbeitet in genau einer Abteilung; in jeder Abteilung arbeiten
    beliebig viele Angestellte (aber mindestens zwei)

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-33

    m:n-Beziehung (many-to-many-relationship)

                Studierender                  belegt                    Vorlesung
                                  (1,*)                      (1,*)

•   Charakteristik:
    Jedes Objekt auf der linken Seite kann zu mehreren Objekten auf der rechten
    Seite in Beziehung stehen (d.h. keine Einschränkung)

    Beispiel-Ausprägung:
    belegt (Wirth, Algorithmen und Datenstrukturen)
    belegt (Wirth, Programmieren I)
    belegt (Kant, Grundlagen der Philosophie)
    belegt (Bernoulli, Mathematik I)
    belegt (Euler, Mathematik I)

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-34

                                                                                                   17
Umwandlung Beziehungstyp in Objekttyp & binäre Beziehungstypen

•   Ein n-ärer Beziehungstyp R zwischen n Entitätstypen E1, ..., En kann immer als
    eigenständiger Entitätstyp R und n binären Beziehungstypen zwischen R und Ei
    (1 § i § n) dargestellt werden, wobei für R ein neuer künstlicher
    Identifikationsschlüssel eingeführt wird.

                       (0,*)                                            (0,*)
           Buyer                             Trade                                  Commodity

                                                   (0,*)

                                              Seller

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf          DB-2-35

Umwandlung Beziehungstyp in Objekttyp & binäre Beziehungstypen

                   (0,*)          (1,1)                         (1,1)           (0,*)

          Buyer            buys                 Trade                   what              Commodity
                                                        (1,1)

                                                sells
                                                        (0,*)

                                                Seller

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf          DB-2-36

                                                                                                           18
Rekursive Beziehungstypen …
•    Ein Beziehungstyp kann auch zwei oder mehr gleiche Entitätstypen verbinden.
•    Er heisst dann oft rekursiver Beziehungstyp. Hierzu muss man Rollennamen für
     die jeweilige Rolle des Entitätstyps einführen.
•    Rekursive Beziehungstypen können ebenfalls Attribute besitzen

                    Angestellter                                            Bauteil
                (0,1)                   (0,*)                       (0,*)                 (0,*)

    Untergebener                         Vorgesetzter         Oberteil                    Unterteil

                         Dienst-
                                                                            Stückliste
                        verhältnis

                                                                                           Anzahl UT

HS 2011                   Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf         DB-2-37

                 … Rekursive Beziehungstypen
•    Beispiel

                    welche
                                (0,*)
                                                Voraus-
            Vorlesung
                                                setzung
                                (0,*)
                        wofür

       Ausprägung:
       Voraussetzung (Programmieren I, Algorithmen und Datenstrukturen)
       Voraussetzung (Programmieren II, Programmieren I)
       Voraussetzung (Programmieren II, Algorithmen und Datenstrukturen)
       Voraussetzung (Logik, Grundlagen der Philosophie)

HS 2011                   Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf         DB-2-38

                                                                                                                 19
Schwacher Entitätstyp (Weak Entity Type)
•   Ein Entitätstyp W heisst schwach (weak), wenn er in einer strengen
    hierarchischen Beziehung zu einem Entitätstyp S steht, d.h. bei Kardinalität (1,1),
    und wenn zur Identifikation der Entitäten von W der Primärschlüssel des
    Entitätstyps S herbeigezogen wird (er nicht allein existenzfähig ist).

           Gebäude               Geb.Nr.                           Gebäude                   Geb.Nr.
          (1,*)

           liegt_in

          (1,1)

            Raum                  RaumNr.                            Raum                    RaumNr.

    Ursprüngliche Notation nach Chen                        vereinfachte Notation

HS 2011               Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf             DB-2-39

    Beispiel (die etwas vereinfachte Universität)
•   Die Mitglieder einer Universität setzen sich aus Studierenden und Angestellten
    zusammen. Angestellte sind entweder Professoren oder Assistierende.
•   Die Fakultätsbibliotheken (charakterisiert durch den Namen der Fakultät)
    besitzen mehrere Dokumente. Dies können entweder Master-Arbeiten,
    Dissertationen oder Lehrbücher sein. Alle Dokumente besitzen eine eindeutige
    Signatur, einen Titel und ein Erscheinungsjahr. Dokumente werden natürlich
    von Personen verfasst und können von Universitäts-Mitgliedern entliehen
    werden (mit einem Ausleih- und Rückgabedatum). Jede Fakultätsbibliothek wird
    von genau einem Uni-Mitglied geleitet
•   Master-Arbeiten werden von mindestens einem Assistierenden betreut;
    es gibt aber auch Assistierende ohne Betreuungsaufgaben.
•   Dissertationen werden von Professoren betreut und bewertet. Zu jeder
    Dissertation gibt es genau einen Betreuer und zwei bis fünf Professoren,
    welche die Arbeit bewerten.
•   Lehrbücher werden von Professoren im Rahmen ihrer Vorlesungen empfohlen

HS 2011               Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf             DB-2-40

                                                                                                                 20
Beispiel: Modellierung in EERM

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-41

                                             UML
•   In den letzten Jahren hat sich UML als Modellierungssprache durchgesetzt,
    hauptsächlich wegen der ganzheitlichen Modellierung von Software (durch die
    Unterstützung der unterschiedlichen Diagrammtypen)
•   Unterschiede zum ERM (EERM):
     – Attribute werden direkt im Entity-Kasten notiert
     – Es existiert kein eigenes Symbol für Relationships (nur eine Kante zwischen
       den Kästchen)
       Ausnahme: ternäre/mehrstellige Relationships mit Raute
     – Verschiedene Vererbungsbeziehungen
     – Notation der Kardinalitäten (an gegenüberliegender Seite)
     – (Methoden: Nicht gebraucht bei DB-Modellierung)

               Angestellter                                           Abteilung
               Personalnr: int             arbeitet in              Abteilungsnr: int
               Name: string         0..*                          1 Bezeichn: string

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-42

                                                                                                   21
UML: Komplette Spezifikation von Attributen
•   In der vollständigen Form lautet die Syntax eines Attributs in UML wie folgt
    (eckige Klammern bezeichnen dabei optionale Angaben)

    [Sichtbarkeit] Name [Multiplizität] [: Typ]
                          [= Anfangswert] [{Änderbarkeit}] [{Zusicherung}]

Beispiel (Rechteck):

                                                    Rechteck
                            + Name : String {frozen}
                            Farbe : {rot, gruen, blau} = gruen
                            # Eckpunkt [4 .. 4] {ordered} : Punkt
                            - Kante_x : Integer {changeable} {Kante_x > 0}
                            - Kante_y : Integer {changeable} {Kante_y > 0}
                            / Flaecheninhalt : Integer { Flaecheninhalt =
                                                         Kante_x * Kante_y}

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf       DB-2-43

 UML: Assoziationen und reflexive Assoziationen
•   UML-Notation für
    Assoziationen

                                                           Reflexive Assoziation
                                                           (auch als rekursive Assoziation
                                                           bezeichnet)

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf       DB-2-44

                                                                                                       22
UML: Kardinalitäten von Assoziationen ...
 •    Die Kardinalität einer Assoziation gibt an, mit wie vielen Objekten des
      gegenüberliegenden Entitätstyps ein Objekt assoziiert sein kann. Diese
      Angabe ist auf beiden Seiten einer Assoziation möglich.
      Hierzu wird dieselbe Notation wie für die Multiplizität von Attributen verwendet
 •    UML-Notation für Kardinalitäten

Anzahl der Klasse_1-Objekte,              Anzahl der Klasse_2-Objekte,
die ein Klasse_2-Objekt kennt             die ein Klasse_1-Objekt kennt

 HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-45

... UML: Kardinalitäten von Assoziationen ...
 Arten von Assoziationen:

 Beispiele: Zwischen einem beliebigen B-Objekt und einem Objekt der Klasse A
            gibt es:

 •    Genau eine Beziehung (Muss-Beziehung)

 •    null, eine oder beliebig viele Beziehungen
      (Kann-Beziehung)

 •    Null oder eine Beziehung (Kann-Beziehung)

 •    Eine oder mehrere Beziehungen
      (Muss-Beziehung)

 HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-46

                                                                                                     23
... UML: Kardinalitäten von Assoziationen ...
Beispiele (Fortsetzung): Zwischen einem beliebigen B-Objekt und einem Objekt
          der Klasse_A gibt es:

•    Drei oder mehr als drei Beziehungen
     (Muss-Beziehung)

•    Null bis fünf Beziehungen
     (Kann-Beziehung)

•    Genau vier Beziehungen (Muss-Beziehung)

•    Eine, drei oder fünf Beziehungen
     (Muss-Beziehung)

•    Nicht keine, nicht fünf, sechs oder acht Beziehungen
     (Muss-Beziehung)

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-47

    ... UML: Kardinalitäten von Assoziationen
Beispiel

•   Ein Kunde kann mehrere Zahlungsverzüge besitzen, aber
    jeder Zahlungsverzug gehört zu genau einem Kunden

HS 2011            Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-48

                                                                                                    24
UML: Assoziationsnamen
•     Assoziationen können benannt werden; dies ist in jeder Richtung mit einem
      unterschiedlichen Bezeichner möglich
•     Zusätzlich zum Namen der Assoziation wird dann mittels eines  bzw. 
      angegeben, in welcher Richtung dieser Name angewandt werden muss

    Beispiel:   benannte Kann-und Muss-Assoziationen
                „Ein Kunde kann beliebig viele Aufträge erteilen,
                ein Auftrag gehört jedoch zu genau einem Kunden“

HS 2011               Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-49

                                   UML: Rollen ...
•     Eine Rolle beschreibt, welche Funktion ein Objekt in einer Assoziation übernimmt
•     Die Rolle wird an die Assoziation, auf der Seite der jeweiligen Entität geschrieben

Beispiel:       Eine Firma besitzt als Arbeitgeber mehrere Mitarbeiter
                (Arbeitnehmer). Jeder Mitarbeiter kann einen PKW als Dienstwagen
                fahren.

HS 2011               Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-50

                                                                                                       25
... UML: Rollen
•   Rollennamen können natürlich auch in einer reflexiven Assoziation angegeben
    werden
•   Zusätzlich sind immer auch (nicht nur bei reflexiven Assoziationen)
    Zusicherungen (assertions) möglich, die an die Assoziation geheftet werden

Beispiel:   Sowie Chef als auch Mitarbeiter sind Angestellte; allerdings besitzt
            der Chef ein höheres Gehalt als der Mitarbeiter

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-51

Ternäre Assoziationen, n-gliedrige Assoziationen ...
•   Neben den (normalen) binären Assoziationen, die zwei Entitätstypen verbinden,
    gibt es auch Assoziationen, die drei oder mehrere Entitätstypen verbinden
    (ternäre bzw. n-gliedrige Assoziationen).
•   Als grafisches Element für n-gliedrige Assoziationen steht eine Raute zur
    Verfügung, die mit den beteiligten Entitätstypen durch Linien verbunden ist

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf   DB-2-52

                                                                                                   26
... Ternäre Assoziationen, n-gliedrige Assoziationen

Beispiel für eine ternäre Assoziation:
            Reservierung eines Sitzplatzes in einem Zug. Reservierung besteht
            aus einem Fahrgast, einem Zug und einem Platz in diesem Zug. Ein
            Platz in einem Zug kann (nacheinander) von mehreren Fahrgästen
            reserviert werden, ein Fahrgast hat in einem Zug genau eine
            Platzreservierung und ein Fahrgast kann einen Platz in mehreren
            Zügen reservieren.

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf      DB-2-53

 Beispielmodell                (Folien #DB-2-40 und #DB-2-41)                            in UML

HS 2011           Datenbanken (CS241) / Web Data Management (CS261) – Datenbankentwurf      DB-2-54

                                                                                                      27
Sie können auch lesen