Datenbankentwicklung IV-LK 1. 2. 3. 4. 5. 6. 7. Warum Datenbanken? Anforderungsanalyse für Datenbanken Ableitung von Tabellenstrukturen Normalisierung Relationenalgebra Formalisierung von Tabellen in SQL SQL- Anfragen Nicole Rottmann 2011/12 1 1. Warum Datenbanken ? IV-LK 1. Datenchaos 2. Anforderungen an eine Datenbank 3. Anforderungen an ein DatenbankManagementsystem 4. Ebenen eines DatenbankManagementsystems Nicole Rottmann 2011/12 2 1. Warum Datenbanken? – 1. Datenchaos IV-LK Zeitlich und räumlich verteilte Daten: Versandhandel erhält Bestellungen von Kunden, die nicht vollständig erledigt werden können. -> Nachlieferungen müssen geregelt werden. Verwaltung durch Laufzettel: Möglich wäre ein Stapel mit Zetteln, auf denen nicht erledigte Aufträge notiert sind. Wie können die Aufträge dann erfüllt werden ? Was passiert, wenn mehrere Aufträge nicht lieferbar sind ? Datensortierung: Nach welchen Kriterien wird sortiert ? Nicole Rottmann 2011/12 3 1. Warum Datenbanken? – 2. Anforderungen an eine Datenbank IV-LK Forderung 1: Persistenz (lat. persistere – verharren) Werden Daten in die Datenbank eingetragen, sollen sie gespeichert bleiben, auch wenn die Software, die die Daten eingetragen hat, beendet wurde. Forderung 2: Anlegen von Datenschemata Grundsätzlich können identische Daten verschiedene Bedeutungen haben. Ein Datum 42 kann für eine Artikelnummer oder eine Hausnummer stehen. Als Schema werden Tabellen genutzt. Die Daten werden in die einzelnen Zellen der Tabellen eingetragen. Forderung 3: Einfügen, Ändern und Löschen von Daten Der Nutzer muss die Möglichkeit haben, Daten in die Tabellen einzutragen, diese später zu ändern und wenn notwendig, auch wieder zu löschen. Datensatz Artikel Artikelnummer Bezeichnung Anzahl 12345 IPod 78 12346 IPad 99 Nicole Rottmann 2011/12 4 1. Warum Datenbanken? – 2. Anforderungen an eine Datenbank IV-LK Forderung 4: Lesen von Daten Wichtigste Aufgabe bei der Nutzung einer Datenbank sit die Schaffung einer Möglichkeit, Daten aus der Datenbank wieder abzurufen. Es muss festgestellt werden, ob es einen einen Eintrag zur Arktikelnummer 12346 gibt und welche zusätzlichen Daten zu diesem Artikel existieren. Ein Softwaresystem, das alle genannten Grundanforderung erfüllt wird Datenbank, abgekürzt DB genannt. Nicole Rottmann 2011/12 5 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Bisherige Forderungen reichen für die sinnvolle Nutzung der DB nicht aus. Aus diesem Grund wird die DB in ein Datenbank-Management System (DBMS) eingebettet. Datenbank-Managementsystem erweiterte Funktionalität Schema anlegen Daten bearbeiten Daten auslesen Nicole Rottmann Datenbank 2011/12 6 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Eine Datenbank besteht typischerweise aus vielen Datenbankschemata. Artikel Artikelnummer Bezeichnung Anzahl 12345 iPod 78 12346 iPad 99 12347 iPhone 129 Artikeleinkauf Artikelnummer Firma 12345 AppleStore 12346 MediaMarkt 12347 AppleStore Nicole Rottmann 2011/12 7 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Verbesserte Datenbankstruktur. Artikel Artikelnummer Bezeichnung Anzahl 12345 iPod 78 12346 iPad 99 12347 iPhone 129 Artikeleinkauf Firma Artikelnummer FirmaNr FirmaNr Firma 12345 1 1 AppleStore 12346 2 2 MediaMarkt 12347 1 Nicole Rottmann 2011/12 8 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Forderung 5: Integrität und redundanzfreie Datenhaltung Das DBMS unterstützt die Möglichkeit, dass ein Datum, das an verschiedenen Stellen benutzt wird, nur an einer Stelle definiert ist. Es wird sichergestellt, dass Änderungen dieses Datums dann alle Nutzungsstellen im System betreffen. Nicole Rottmann 2011/12 9 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Datenbanken werden häufig von verschiedenen Nutzern zur gleichen Zeit genutzt. Eine besondere Problematik entsteht, wenn der Zugriff auf dieselbe Information fas gleichzeitig stattfindet. Bestellung 1 Bestellung 2 Ausgangssituation: Artikelanzahl für Artikel 12347 ist 1 Ist Artikelanzahl für Artikel 12347 größer 0? Ist Artikelanzahl für Artikel 12347 größer 0? Antwort: ja Antwort: ja Verringere Artikelanzahl für Artikel 12347 um 1 Verringere Artikelanzahl für Artikel 12347 um 1 Endsituation: Artikelanzahl für Artikel 12347 ist -1 Nicole Rottmann 2011/12 10 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Forderung 6: Koordination der parallelen Nutzung Das DBMS muss dafür Sorge tragen, dass die Integrität der Datenbank durch die parallele Nutzung nicht verloren gehen kann. Jeder Nutzer muss bei der Durchführung seiner Aktionen den Eindruck haben, alleine die Datenbank zu nutzen. Nach den bisherigen Forderungen kann jeder Nutzer jede Datenbankfunktionalität nutzen und auf jedes Datum zugreifen. Dies ist nicht bei jedem System sinnvoll. Nicole Rottmann 2011/12 11 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Forderung 7: Rechteverwaltung Das DBMS ermöglicht es, die Rechte an der Erstellung und Löschung von Datenschemata sowie die Erstellung, Löschung und Veränderung von Daten für einzelne Nutzer individuell zu definieren. Das System stellt die Einhaltung der mit den Rechten verbundenen Einschränkungen sicher. Weder Computer noch Software können so erstellt werden, dass sie absolut ausfallsicher sind. Gerade bei Datenbanken kann ein Systemabsturz zu extrem problematischen Situationen führen. Nicole Rottmann 2011/12 12 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Forderung 8: Datensicherung Das DBMS ermöglicht es, Sicherungen des aktuellen Datenbestandes herzustellen und diese wieder in das System einzuspielen. Nicole Rottmann 2011/12 13 1. Warum Datenbanken? – 3. Anforderungen an ein DatenbankManagementsystem IV-LK Forderung 9: Katalog Das DBMS ermöglicht es bestimmten Nutzern, Informationen über die gesamte Struktur des Systems zu erhalten. Dazu gehören die vorhandenen Datenbankschemata, Integritätsbedingungen und Nutzerrechte. Nicole Rottmann 2011/12 14 1. Warum Datenbanken? – 4. Ebenen eines DatenbankManagementsystems IV-LK Unterschiedliche Personenkreise sind an verschiedenen Aspekten einer Datenbank interessiert. Diese Interessen kann man bei der Betrachtung von Datenbanken eindeutig trennen, man spricht dann von Ebenen. Sichten (Ein- und Ausgabemasken) externe Ebene Tabellen und Abhängigkeiten logische Ebene Konfiguration / DB-Einrichtung physische Ebene <table name="Artikel"> <size> 5G <\size> <\table> Nicole Rottmann 2011/12 15 1. Warum Datenbanken? – 4. Ebenen eines DatenbankManagementsystems IV-LK Hauptnutzer und Ersteller der einzelnen DBMS Ebenen: Nutzer Entwickler externe Ebene Endnutzer Oberflächen-Designer logische Ebene Datenbank-Entwickler physische Ebene DatenbanksoftwareEntwickler DatenbankAdministrator Nicole Rottmann 2011/12 16 1. Warum Datenbanken? – Aufgaben IV-LK Wiederholungsfragen: 1. Nenne typische Probleme, die bei einer Datenverwaltung ohne SoftwareUnterstützung auftreten können. 2. Nenne vier Forderungen, die eine Software erfüllen muss, damit es sich um eine Datenbank handelt. Veranschauliche die Forderungen durch Beispiele. 3. Nenne fünf zusätzliche Forderungen, die eine Software erfüllen muss, damit es sich um ein DBMS handelt. Veranschauliche die Forderungen durch Beispiele. 4. Beschreibe die drei Ebenen, die man bei einer Datenbank unterscheiden kann. Nenne wer sich mit der Erstellung der Ebenen beschäftigt und wer diese Ebenen nutzt. Nicole Rottmann 2011/12 17 1. Warum Datenbanken? – Aufgaben IV-LK Übungsaufgaben: 1. In einem kleinen Unternehmen findet die Datenverwaltung ohne Software statt. Das Unternehmen wickelt Bestellungen ab, die mehrere Artikel umfassen können und in schriftlicher Form vorliegen. Um schnell reagieren zu können, werden auch nicht vollständige Bestellungen versandt und dem Kunden mitgeteilt, dass die weiteren Artikel nicht lieferbar sind. Der Kunde müsste bei Bedarf diese Artikel wieder neu bestellen. Zur Analyse der Abläufe möchte man eine Übersicht haben, wie viele Bestellungen ein Kunde gemacht hat und wie hoch seine bisherige Bestellsumme war. Weiterhin soll bekannt sein, wie häufig ein Artikel bestellt wurde und wie häufig dieser Artikel nicht vorrätig war, obwohl eine Bestellung vorlag. Beschreibe den Arbeitsablauf als Programmablaufplan mit seinen möglichen Alternativen, so dass alle Informationen erfasst werden können. Nicole Rottmann 2011/12 18 1. Warum Datenbanken? – Aufgaben IV-LK 2. Die Probleme, die auftreten können, wenn alle Daten ausschließlich in Textdateien verwaltet werden, sind im Unterricht skizziert worden. Überlege dir konkrete Probleme, die auftreten könnten, wenn ein Versandhaus alle Daten in Dateien verwalten würde. Überlege zusätzlich, was für eine Software dabei hilfreich wäre, wenn keine Datenbank gekauft oder entwickelt werden dürfte. Nicole Rottmann 2011/12 19 1. Warum Datenbanken? – Aufgaben IV-LK 3. Gib für die im folgenden genannten Operationen an, auf welcher Ebene Änderungen durchzuführen sind, also ob der Oberflächen-Designer, der Datenbank-Entwickler oder der Datenbank-Administrator aktiv werden müssen. Es ist möglich zu notieren, dass eine oder mehrere Ebenen hauptsächlich oder/und etwas betroffen sind. Es ist von einer laufenden Datenbank auszugehen. a. In einer Eingabemaske soll ein Feld mit einer weiteren Auswahlmöglichkeit eingefügt werden. Die Information über die Auswahlmöglichkeiten ist bereits in den Tabellen vorhanden. Das gesamte DBMS soll ausgetauscht werden. Es sollen zusätzliche Informationen, wie das bisher nicht vorhandene Geburtsdatum eines Mitarbeiters, in einer neuen Tabelle aufgenommen werden. Es wird eine neue Abhängigkeit zwischen den Daten entdeckt, die zusätzlich aufgenommen wird. Es wird festgestellt, dass neben der Ausgabe einzelner Daten auch immer die Summe dieser Daten angezeigt werden soll b. c. d. e. Nicole Rottmann 2011/12 20 1. Warum Datenbanken? – Aufgaben IV-LK f. g. h. i. j. Es sollen neue Daten in die Datenbank eingetragen werden. Zwei existierende Datenbanken mit identischer Tabellenstruktur, aber unterschiedlichen Inhalten, sollen zu einer Datenbank zusammengefasst werden. Es sollen Daten in der Datenbank gelöscht werden. Der Speicherplatz für eine Tabelle soll vergrößert werden. Es soll eine neue Festplatte eingebaut werden, auf der Teile der Datenbank laufen sollen. Nicole Rottmann 2011/12 21 2. Anforderungsanalyse für Datenbanken IV-LK 1. 2. 3. 4. 5. Überblick über den Software-Entwicklungsprozess Anforderungsanalyse für Software Anforderungsanalyse für Datenbanken Entity-Relationship Modell Fallstudie Nicole Rottmann 2011/12 22 2. Anforderungsanalyse für Datenbanken IV-LK Maßgeblich für den Erfolg von Software-Projekten ist, dass das resultierende Produkt vom Kunden bzw. späteren Nutzern akzeptiert wird. Dies beinhaltet neben der funktionalen Korrektheit (Software stürzt nicht ab und hat auch sonst keine Fehler), die Nutzbarkeit der Software. Zentral für die Nutzbarkeit der Datenbank ist die Beantwortung der Frage, welche Daten mit welchen Zusammenhängen in der Datenbank verwaltet werden sollen. Diese Informationen sind ein Teilergebnis der Analyse der durch die Software zu unterstützenden Prozesse. Nicole Rottmann 2011/12 23 2. Anforderungsanalyse für Datenbanken – 1. Überblick über den Software-Entwicklungsprozess IV-LK Der Software-Entwicklungsprozess lässt sich in mehrere Phasen einteilen. Anforderungsanalyse Design Implementierung Test Abnahme Wasserfallmodell Nicole Rottmann 2011/12 24 2. Anforderungsanalyse für Datenbanken – 2. Anforderungsanalyse für Software IV-LK In einem Versandhaus soll eine Software zur Abwicklung von Bestellungen entwickelt werden. In der ersten Beschreibung steht folgender Satz:“ Das System soll die Abwicklung von Bestellungen nach dem üblichen Ablauf unterstützen.“ Worin bestehen die Probleme in dieser Aussage? Genauer ist der Satz „Schriftlich eingehende Bestellungen werden zunächst formal überprüft und sollen dann in das zu entwickelnde System per Hand eingetragen werden. Was heißt jetzt aber formal überprüft ? Hilfreich ist die Visualisierung von Abläufen. Nicole Rottmann 2011/12 25 2. Anforderungsanalyse für Datenbanken – 2. Überblick über den Software-Entwicklungsprozess IV-LK schriftliche Bestellung annehmen Typischer Ablauf Kunde prüfen [Kunde ok] Bestellinformation in das System eintragen Nicole Rottmann 2011/12 26 2. Anforderungsanalyse für Datenbanken – 2. Überblick über den Software-Entwicklungsprozess IV-LK schriftliche Bestellung annehmen Adressdaten plausibel? [nein] [ja] Bestellung als nicht bearbeitbar ablegen Kunde hat Kundennummer? [ja] Alternative Abläufe Kunde hat Außenstände? [nein] neue Kundennummer zuordnen [nein] [ja] Bestellinformationen in das System eintragen Bestellung ablehnen, Kunden auf Außenstände aufmerksam machen Nicole Rottmann 2011/12 27 2. Anforderungsanalyse für Datenbanken - 2. Überblick über den Software-Entwicklungsprozess IV-LK Bei der Dokumentation für jeden Prozess sollten folgende Fragen beantwortet werden: • Welche Aufgabe soll der Prozess erfüllen? • Welche Voraussetzungen müssen erfüllt sein, damit der Prozess ablaufen kann? • Welche Ergebnisse soll der Prozess produzieren? • Wie sieht der typische Ablauf des Prozesses aus? • Welche alternativen Abläufe gibt es neben dem typischen Ablauf? • Wer ist für die Durchführung des Prozesses verantwortlich und wer arbeitet wie mit? • Welche Mittel (Arbeitsmittel, andere Software) werden zur Durchführung des Prozesses benötigt • Welche anderen Prozesse werden zur erfolgreichen Abarbeitung benötigt? Nicole Rottmann 2011/12 28 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Für die Datenbank-Entwicklung stellt sich zentral die Frage nach den Daten, die in den einzelnen Arbeitsschritten benutzt werden. Für eine Bestellung stellt sich z.B. die Frage, aus welchen Daten diese besteht. Erste Aufgabe bei der Datenbank-Entwicklung ist es ein Modell einer Miniwelt zu erstellen, das zur Aufgabenstellung passt. Für den Modellierer stellt sich die Frage nach den Objekten der realen Welt, die für die Aufgabenstellung relevant sind, und ihre Beziehungen zueinander. Genauer stellt sich die Frage nach den Entitäten, die eine Rolle spielen. Nicole Rottmann 2011/12 29 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Definition Entität: Eine Entität ist ein individuelles, eindeutig identifizierbares Objekt, das durch Eigenschaften charakterisiert werden kann. Für jede Eigenschaft kann man einen Namen dieser Eigenschaft, wie „Datum“ und „Bestellnummer“ festhalten. Zu jedem dieser Eigenschaften kann man einen Datentyp angeben, der die Werte charakterisiert, die diese Eigenschaft bei einer Entität annehmen kann. Solche Eigenschaften werden bei Datenbanken „Attribute“ genannt. Nicole Rottmann 2011/12 30 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Definition Attribut: Ein Attribut besteht aus einem Namen und einem Datentyp. Attribute werden zur Modellierung von Eigenschaften genutzt. Für den Modellierer sind nicht die individuellen Bestellungen interessant, sondern die Informationen an sich, dass Bestellungen in die Datenbank aufgenommen werden sollen. Man spricht hierbei vom Entitätstypen. Definition Entitätstyp: Ein Entitätstyp ist eine Schablone mit einem eindeutigen Namen. Sie dient zur Zusammenfassung von Entitäten. In der Schablone werden alle Attribute zusammengefasst, von denen die Entitäten konkrete Ausprägungen haben. Nicole Rottmann 2011/12 31 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Entitätstypen werden in Entity-Relationship-Modellen in einem Rechteck dargestellt. Die zugehörigen Attribute stehen in Ovalen, die mit dem Rechteck verbunden sind. Das Attribut oder die Kombination von Attributen, mit dessen Wert oder deren Werten man eine zum Entitätstyp gehörende Entität eindeutig identifizieren kann, wird durch Unterstreichung gekennzeichnet. Bestellnummer Datum Bestellung Nicole Rottmann 2011/12 32 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Eine Bestellung hat als weitere typische Eigenschaft den Kunden, von dem sie aufgegeben wurde. Dieser Kunde soll auch in die Datenbank aufgenommen werden. Jeder Kunde hat einen Namen und eine Adresse und wird durch seine Kundennummer eindeutig. Kunden werden als eigenständige Entitätstypen aufgenommen, um redundante Daten zu vermeiden. Dabei werden die Namen der Entitätstypen immer in der Einzahl geschrieben. Wird jetzt der „Kunde“ als Entitätstyp modelliert, muss die Beziehung zur Bestellung in das Modell aufgenommen werden. Diese Beziehung wird benannt und im Modell als Raute dargestellt. Nicole Rottmann 2011/12 33 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Ergänztes ERM Modell für die Bestellverwaltung Kundennummer Name Kunde Adresse Bestellnummer bestellt Datum Bestellung Attribute können nur einen Wert annehmen. Nicole Rottmann 2011/12 34 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK In einer Bestellung muss nicht jeder Artikel nur einmal bestellt werden. Was passiert, wenn in einer Bestellung gleich 42 IPads geordert werden? Nicole Rottmann 2011/12 35 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK Die bestellte Artikelmenge wird als Eigenschaft der Beziehung aufgenommen. Kundennummer Name Kunde Adresse Bestellnummer Datum bestellt Bestellung Artikelmenge beinhaltet Artikel Artikelnummer Nicole Rottmann 2011/12 Name 36 2. Anforderungsanalyse für Datenbanken – 3. Anforderungsanalyse für Datenbanken IV-LK 1. 2. 3. Das Finden der richtigen Entitätstypen, Beziehungen und Attribute ist keine triviale Aufgabe. Ein guter Ansatz ist es die Anforderungen Schritt für Schritt durchzuarbeiten und mit allgemeinen Regeln lässt sich zumindest ein erster Ansatz finden: Analysiere alle Nomen im Text, sie könnten Entitätstypen oder Attribute sein. Analysiere alle Verben im Text, sie können auf Beziehungen zwischen Entitätstypen hinweisen. Analysiere alle Adjektive im Text, sie können auf Attribute hinweisen. Nicole Rottmann 2011/12 37 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Ergänzungen des bisherigen Modells. Ein Kunde kann mehrere Bestellungen machen und zu jeder Bestellung gehört genau ein Kunde. Dieser Zusammenhang wird als Kardinalität bezeichnet. Kundennummer Name Kunde Adresse 1 Nicole Rottmann Bestellnummer bestellt 2011/12 N Datum Bestellung 38 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Die vier Kardinalitäten sind: 1 C N NC eine Beziehung zu genau einer Entität eine Beziehung zu einer oder keiner Entität eine Beziehung zu einer oder mehreren Entitäten eine Beziehung zu keiner, einer oder mehreren Entitäten A Y rel X B Allgemeines ERM Jede Entität des Entitätstyps A steht in rel-Beziehung mit X Entitäten des Entitätstyps B. Jede Entität des Entitätstyps B steht in rel-Beziehung mit Y Entitäten des Entitätstyps A. Nicole Rottmann 2011/12 39 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Ergänzung der Kardinalitäten für die Beziehung zwischen Bestellung und Artikel. Kundennummer Name Kunde Adresse 1 Bestellnummer bestellt Artikelmenge N Datum Bestellung MC beinhaltet N Artikel Artikelnummer Name Aussagen: Jede Bestellung beinhaltet mindestens einen Artikel. Jeder Artikel kann in beliebig vielen Bestellungen vorkommen Nicole Rottmann 2011/12 40 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK A B Ehemann Ehefrau Y 1 X 1 rel verheiratet Jeder Ehemann ist mit genau einer Frau verheiratet. Jede Ehefrau ist mit genau einem Mann verheiratet. Mann Ehefrau 1 C verheiratet Jeder Mann ist nicht verheiratet oder hat genau eine Ehefrau. Jede Ehefrau ist mit genau einem Mann verheiratet Mutter Kind 1 N geboren Jede Mutter hat mindestens ein oder mehrere Kinder geboren. Jedes Kind wurde von genau einer Mutter geboren. Frau Kind 1 NC geboren Jede Frau hat ein oder kein Kind oder mehrere Kinder geboren. Jedes Kind wurde von genau einer Frau geboren. Mitarbeiter Firmen-Handy C C besitzen In einer Firma kann jeder Mitarbeiter ein Firmen-Handy haben, muss es aber nicht. Jedes FirmenHandy ist entweder einem oder keinem Mitarbeiter zugeordnet. Handys ohne Zuordnung können z.B bei Bedarf verliehen werden. Nicole Rottmann 2011/12 41 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK A Mentor B Künstler Y C X N rel unterstützt Jeder Mentor unterstützt einen oder mehrere Künstler. Jeder Künstler kann einen oder keinen Mentor haben. See Fluss C NC münden In jeden See können kein oder ein Fluss oder mehrere Flüsse münden. Jeder Fluss kann in genau einen See münden, muss es aber nicht. Student Vorlesung M N teilnehmen Jeder Student nimmt an mindestens einer Vorlesung oder aber mehreren Vorlesungen teil. An jeder Vorlesung nimmt mindestens ein Student oder nehmen mehrere Studenten teil. Bestellung Artikel M NC beinhalten Jede Bestellung beinhaltet einen oder mehrere Artikel. Jeder Artikel kann in keiner oder einer Bestellung oder in mehreren Bestellungen vorkommen. Artikel Lager MC NC lagern Ein Artikel kann in keinem oder einem Lager oder mehreren Lagern gelagert sein. In jedem Lager können kein, ein oder mehrere Artikel lagern. Es wird berücksichtigt, dass Artikel ausverkauft sein können oder dass Lagergebäude saniert werden müssen (deshalb immer das C). Nicole Rottmann 2011/12 42 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Bei der Entwicklung einer Datenbank ist es wichtig, dass jede relevante Information genau einmal in der Datenbank vorkommt. Ein Indikator für schlechte Modellierung sind Zyklen im ERM. Kundennummer Name Kunde Adresse Bestellnummer bestellt 1 MC Artikelmenge N Bestellung MC beinhaltet kauft N Artikelnummer Nicole Rottmann 2011/12 Datum N Artikel Name 43 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK In der folgenden Abbildung ist der Zusammenhang zwischen Artikel und Bestellung um Preisinformationen ergänzt worden. Bestellnummer Bestellung Gesamtpreis Artikelnummer Datum MC beinhaltet Artikelmenge Nicole Rottmann 2011/12 N Name Artikel Einzelpreis 44 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Rekursive Beziehungen: Beziehung, die sich nur auf einen Entitätstyp bezieht. Kürzel MC Name Einwohnerzahl Land grenzt Länge NC Nicole Rottmann 2011/12 45 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Nicht-symmetrische rekursive Beziehung Personalnummer C Vorgesetzter Name Gehalt Mitarbeiter vorgesetzt NC Untergebener Jeder Mitarbeiter hat einen oder keinen Mitarbeiter als Vorgesetzten. Jeder Mitarbeiter hat keinen, einen oder mehrere Mitarbeiter als Untergebenen. Nicole Rottmann 2011/12 46 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Mehrere Beziehungen zwischen zwei Entitätstypen. Ausbildungsabschlussdatum Kennzeichen Personalnummer M Name Gehalt wartet Typ NC Flugzeug Mitarbeiter M fliegt NC Fluglizenzdatum Nicole Rottmann 2011/12 47 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Drei und mehr Entitätstypen in einer Beziehung. Name Gehalt Fachbereich Professor Name NC NC trinkt Bier Name Kneipe Hersteller NC Plätze Nicole Rottmann 2011/12 48 2. Anforderungsanalyse für Datenbanken – 4. Entity-RelationshipModell IV-LK Darstellung abhängiger Attribute Bestellnummer Artikelnummer Datum Bestellung Gesamtpreis MC N beinhaltet Artikelmenge Name Artikel Einzelpreis Existenzabhängige Entitätstypen GebNr RaumNr Größe Höhe Raum N liegt_in Nicole Rottmann 1 Gebäude 2011/12 49 2. Anforderungsanalyse für Datenbanken – Aufgaben IV-LK 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Wiederholungsfragen Beschreibe die verschiedenen Phasen der Software-Entwicklung. Welche typischen Probleme können auftreten, wenn mit einem Kunden die Anforderungen an die zu erstellende Software aufgenommen wird? Was versteht man unter der schrittweisen Verfeinerung von Anforderungen Welche Fragen sind bei der Dokumentation für jeden Prozess zu beantworten? Erkläre anschaulich die Begriffe Entität, Attribut und Entitätstyp. Welche Möglichkeiten kennst du, bei der Modellierung Attribute und Entitätstypen zu unterscheiden? Was versteht man unter einer Beziehung? Was bedeutet es, wenn Beziehungen Attribute haben? Wie würdest du bei der Erstellung eines ERM vorgehen? Wann ist es sinnvoll, statt eines Attributs Adresse mehrere Attribute wie Straße, Hausnummer, Postleitzahl und Stadt aufzunehmen? Wozu werden Kardinalitäten in ERM genutzt, welche werden unterschieden? Nenne Beispiele für Einsatzmöglichkeiten von Kardinalitäten Nicole Rottmann 2011/12 50 2. Anforderungsanalyse für Datenbanken – Aufgaben IV-LK 11. 12. 13. 14. 15. Wiederholungsfragen Was bedeutet es, dass man mit einem ERM versucht, eine korrekte Miniwelt zu modellieren? Warum können Zyklen in ERM auf Probleme hinweisen? Wo greift die Grundregel, dass jede Information in einem ERM nur einmal dargestellt werden soll? Was sind rekursive Beziehungen? Nenne praktische Einsatzbeispiele. Wann werden Beziehungen zwischen mehr als zwei Entitätstypen benötigt? Nicole Rottmann 2011/12 51 2. Anforderungsanalyse für Datenbanken – Aufgaben IV-LK Übungsaufgaben 1. a) b) c) d) e) In einer Datenbank soll der Zusammenhang zwischen Mitarbeitern, ihrer Mitarbeit in Projekten und den Telefonen der Mitarbeiter erfasst werden. Jeder Mitarbeiter sei durch seine Mitarbeiternummer (MiNr) eindeutig identifiziert, weiterhin hat er einen Namen. Jedes Telefon sei durch seine Telefonnummer (TelNr) eindeutig identifiziert. Jedes Projekt sei durch seine Projektnummer (ProNr) eindeutig und hat einen Namen. Jeder Mitarbeiter kann in beliebig vielen Projekten mitarbeiten, in jedem Projekt arbeitet mindestens ein Mitarbeiter. Zu jeder der folgenden Teilaufgaben soll ein Entity-Relationship-Modell erstellt werden, bei dem zusätzlich der genannte Zusammenhang zwischen Telefonen und Mitarbeitern aufgenommen werden soll. Jeder Mitarbeiter hat genau ein Telefon, jedes Telefon gehört zu genau einem Mitarbeiter. Jeder Mitarbeiter kann mehrere Telefone unabhängig vom Projekt haben und hat mindestens eins, jedes Telefon gehört zu genau einem Mitarbeiter. Ein oder mehrere Mitarbeiter müssen sich ein Telefon teilen, dabei hat jeder Mitarbeiter Zugang zu einem Telefon. Jedes Telefon gehört zu mindestens einem Mitarbeiter (Idee: ein Telefon pro Büro) Jeder Mitarbeiter kann mehrere Telefone haben, er wechselt für seine jeweilige Projektaufgabe z.B. das Büro. Dabei nutzt er pro Projekt genau ein Telefon. Jedes Telefon wird von mehreren Mitarbeitern genutzt. Zu jedem Projekt gibt es genau ein Telefon, das von den Projektmitarbeitern genutzt wird. Nicole Rottmann 2011/12 52 2. Anforderungsanalyse für Datenbanken – Aufgaben IV-LK Formuliere die folgenden Sachverhalte in den Aufgabenstellungen als ERM. Falls keine Attribute im Text identifiziert werden können, gib zumindest immer ein identifizierendes Attribut an. 2. Durch den Namen eindeutig benannte Mutterkonzerne, die jeweils an genau einem Ort beheimatet sind, können beliebig viele Tochtergesellschaften haben, die durch ihren Namen eindeutig sine, eine Beschäftigtenzahl haben und seit einem genauen Datum zu genau einem Mutterkonzern gehören. Jede Tochtergesellschaft kann auf maximal einem Fachgebiet mit einer anderen Tochtergesellschaft zusammen arbeiten. 3. Eine Firma stellt verschiedene Produkte her, die sich im Namen unterscheiden und jeweils ein Gewicht und eine Leistung haben. Jedes Produkt besteht aus mindestens zwei verschienenen Komponenten, die einen eindeutigen Namen, eine Farbe und ein Gewicht haben. Beliebige Komponenten sind durch ihren eindeutigen Ort bekannt und haben eine eigene Lagerkapazität. Jedes der Produkte kann auch in mehreren Lagern aufbewahrt werden, wobei die Lager auch verschiedenen Produkte aufnehmen können. Nicole Rottmann 2011/12 53