Datenbanksysteme Prof. Dr. Stephan Kleuker Kernziele: • Entwicklung einer relationalen Datenbank (von Anforderungsanalyse über Realisierung zur Nutzung) • Steuermechanismen von Datenbanken Datenbanksysteme Prof. Dr. Stephan Kleuker 1 Überblick 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Grundbegriffe Datenbanken Grundlagen der Enitity-Relationship-Modellierung Spezielle ER-Modelle und Tabellenableitung Normalformen SQL: Erstellen von Tabellen SQL: Einfache Anfragen SQL: Komplexere Anfragen SQL: Gruppierung und Analyse von NULL-Werten Einführung in PL/SQL Cursor und Trigger in PL/SQL JDBC Views und Datenbankverwaltung Integrität innerhalb der DB Wiederholung: Anfragen in SQL arbeitsaufwändig intuitiv Datenbanksysteme 1 2 3 4 5 6 7 Prof. Dr. Stephan Kleuker 8 9 10 11 12 13 14 2 Ich • Prof. Dr. Stephan Kleuker, geboren 1967, verheiratet, 2 Kinder • seit 1.9.09 an der HS, Professur für SoftwareEntwicklung • vorher 4 Jahre FH Wiesbaden • davor 3 Jahre an der privaten FH Nordakademie in Elmshorn • davor 4 ½ Jahre tätig als Systemanalytiker und Systemberater in Wilhelmshaven • [email protected], Raum SI 0109 Datenbanksysteme Prof. Dr. Stephan Kleuker 3 Ablauf • 2h Vorlesung + 2h Praktikum = 5 CP d. h. etwa 150 Arbeitsstunden • Praktikum : – Anwesenheit = (Übungsblatt vorliegen + Lösungsversuche zum vorherigen Aufgabenblatt) – Übungsblätter mit Punkten (Σ Σ ≥ 100), zwei Studis als Team (gemeinsam planen, getrennt lösen) – Praktikumsteil mit 80 oder mehr Punkten bestanden • Prüfung: Klausur recht kurz nach der Vorlesungszeit • Folienveranstaltungen sind schnell, bremsen Sie mit Fragen • von Studierenden wird hoher Anteil an Eigenarbeit erwartet Datenbanksysteme Prof. Dr. Stephan Kleuker 4 Verhaltenscodex • • • • Rechner sind zu Beginn der Veranstaltung aus Handys sind aus Wir sind pünktlich Es redet nur eine Person zur Zeit • Sie haben die Folien zur Kommentierung in der Vorlesung vorliegen, zwei Tage vor VL abends mit Aufgaben im Netz, Aufgabenzettel liegen in der Übung vor (Ihre Aufgabe), auch http://www.edvsz.hs http://www.edvsz.hs://www.edvsz.hs-osnabrueck.de/skleuker/index.html • Probleme sofort melden • Wer aussteigt, teilt mit, warum Datenbanksysteme Prof. Dr. Stephan Kleuker 5 Literatur 1/2 (es könnte aktuelle Auflagen geben) • Zur Vorlesung extrem gut passend ☺ [KL] S. Kleuker, Grundkurs Datenbankentwicklung, Vieweg+Teubner, 2. Auflage, 2011 (als PDFs über Bibliotheks-Link verfügbar) • Sehr gelungene Bücher mit tieferen Einblicken A. Kemper, A. Eickler, Datenbanksysteme, 8. Auflage, Oldenbourg, 2011 R. Elmasri und S. B. Navathe, Grundlagen von Datenbanksystemen, 3. Auflage, Pearson/Addison Wesley, 2009 M. Schubert, Datenbanken: Theorie, Entwurf und Programmierung relationaler Datenbanken, 2. Auflage, Vieweg+Teubner, 2007 Matthiessen, Unterstein, Relationale Datenbanken und SQL, 4. Auflage, Addison-Wesley, 2007 Datenbanksysteme Prof. Dr. Stephan Kleuker 6 Literatur 2/2 (es könnte aktuelle Auflagen geben) • Eigentlich für Nicht-Informatiker, deshalb aber auch für DB-Einsteiger geeignet R. Steiner, Grundkurs Relationale Datenbanken, 7. Auflage, Vieweg+Teubner, 2009 • Nicht als Einstieg, aber als preiswertes Nachschlagewerk G. Kuhlmann, F. Müllmerstadt, SQL, Rowohlt Tb., 3. Auflage, 2004 • Kurzreferenz zu PL/SQL (lesenswert) S. Feuerstein, B. Pribyl, C. Dawes, Oracle PL/SQL Language Pocket Reference, O'Reilly, 2007 • Für den tiefen Einstieg in PL/SQL S. Feuerstein, B. Pribyl, Oracle PL/ SQL Programmierung, O'Reilly, 2003 Datenbanksysteme Prof. Dr. Stephan Kleuker 7 Warum Datenbanken? Warum haben wir überhaupt ''Datenbanken''? • Dateien und Dateisysteme sind doch gut genug? • Oder? Beispiel Arbeitsprozesse: 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. Beschreiben sie den Arbeitsablauf ohne SW mit seinen möglichen Alternativen, so dass alle Informationen erfasst werden können. Datenbanksysteme Prof. Dr. Stephan Kleuker 8 Was ist eine Datenbank (informell) Unter einer Datenbank wird eine Sammlung von Daten verstanden. Eine Datenbank entspricht einem elektronischen Aktenschrank, auf dem der Benutzer eine Reihe von Operationen ausführen kann. Der Benutzer hat die Möglichkeit, neue „Dateien“ (Datenschemata) anzulegen, Datensätze hinzuzufügen, zu ändern oder zu löschen und Datensätze herauszusuchen. Forderung 1: Garantie von Persistenz Forderung 2: Anlegen von Datenschema (Tabellen) Forderung 3: Einfügen, Löschen, Ändern von Daten Forderung 4: Strukturiertes Lesen von Daten Datenbanksysteme Prof. Dr. Stephan Kleuker 9 Was ist ein Datenbank-Management-System • Ein Datenbank-Management-System (DBMS) umfasst die Gesamtheit an Programmen, die zum Aufbau, zur Nutzung und zur Verwaltung von Datenbanken notwendig ist. • Das DBMS ermöglicht verschiedenen Benutzergruppen einen einfachen Zugang zu den gespeicherten Datenbeständen. Kürzel Begriff Erläuterung DB Datenbank Strukturierter, von DBMS verwalteter Datenbestand DBMS DatenbankManagement-System SW zur Verwaltung von Datenbanken DBS Datenbanksystem DBMS plus Datenbank(en) Datenbanksysteme Prof. Dr. Stephan Kleuker 10 DBS = DBMS kapselt DB [KL] Datenbank-Managementsystem erweiterte Funktionalität Schema anlegen Daten bearbeiten Daten auslesen Datenbanksysteme Prof. Dr. Stephan Kleuker Datenbank 11 Aufgaben eines DBMS (1/3) • Operationen – Speichern, Suchen, Ändern, Löschen • Integration – einheitliche Verwaltung aller Daten, z. B. enthalten alle Bestellungen die gleichen Daten – Möglichkeit zur redundanzfreien Datenhaltung, z. B. jede Bestellung wird durch eine eindeutige Nummer identifiziert • Konsistenzüberwachung (Integritätssicherung) – Garantie der Korrektheit bei Datenbankänderungen – z.B. abhängige Daten werden mit verändert Datenbanksysteme Prof. Dr. Stephan Kleuker 12 Aufgaben eines DBMS (2/3) • Benutzersichten – Unterschiedliche Anwendungen benötigen unterschiedliche Sichten – z.B. nur bestimmte Teildaten – z.B. bestimmte Übersichten • Zugriffskontrolle – welcher Nutzer darf auf welche Daten in welcher Form zugreifen • Katalog – Verwaltung der Information welche Informationen in der DB vorhanden sind – z.B. Aufbau von Tabellen – z.B. Randbedingungen, die durch Daten eingehalten werden müssen Datenbanksysteme Prof. Dr. Stephan Kleuker 13 Aufgaben eines DBMS (3/3) • Transaktionen – Zusammenfassung von Datenbankänderungen zu einer Aktion, deren Effekt bei Erfolg permanent in der DB gespeichert werden soll • Synchronisation – konkurrierende Transaktionen mehrerer Benutzer müssen synchronisiert werden, um gegenseitige Beeinflussungen zu vermeiden • Datensicherung – Ermöglichung der Systemwiederherstellung z.B. nach einem Systemabsturz Datenbanksysteme Prof. Dr. Stephan Kleuker 14 Entwicklung von Datenbanken (1/2) 1. Klassisch ohne spezielle Verwaltung 2. Nutzung von Dateiverwaltungssoftware für Dateien Anwendung 1 Datei 1 Anwendung 1 Anwendung 2 ... Datei 2 Prof. Dr. Stephan Kleuker ... ... Datei 2 Dateiverwaltungssystem 1 Datei 1 Datenbanksysteme Anwendung 2 ... Anwendung n Datei m Anwendung n Dateiverwaltungssystem j ... Datei m 15 Entwicklung von Datenbanken (2/2) 3. Einführung eines Datenbank-Management-Systems (DBMS) Anwendung 1 Anwendung 2 ... Anwendung n DBMS Datenbank Datenbanksysteme Prof. Dr. Stephan Kleuker 16 Einsatz von DBMS Wie werden Datenbankmanagementsysteme verwendet? • Betriebliche Anwendungen • Web-Anwendungen • Spezialprogramme • Handy-Programme • ... Als Teil eines Informationssystems ist die Gesamt-Architektur entscheidend: • heute typischerweise Client/Server-Architekturen Datenbanksysteme Prof. Dr. Stephan Kleuker 17 Beispiele für DBMS • • IBM Oracle • Microsoft • Sybase • Informix / IBM • MySQL /MariaDB • SAP • PostgreSQL • Apache • SQLite • Firebird • Lotus • Datenbanksysteme … DB2 UDB (relational, OO, XML) Oracle 11g (relational, OO, XML) Berkeley DB (auch XML-Variante) SQL-Server 20xx (MSSQLServer 2012) Access / Visual FoxPro Sybase Informix Oracle / freier Fork MaxDB (SAP-DB, Adabas) PostgreSQL Apache Derby SQLite Firebird, freier Ableger von InterBase Lotus Domino Server / Lotus Notes Prof. Dr. Stephan Kleuker 18 Datenbankarten • letzte Folie „relationale Datenbanken“ (vereinfacht: beliebige Verknüpfung einfacher Tabellen) • ist der deutlich am weitetesten verbreitete Anteil • gibt andere Arten von Datenbanken für spezielle Aufgaben – hierarchisch, netzwerkartig (historisch interessant) – objektorientiert (einfache Verknüpfung mit OO) – dokumentenorientiert (Fokus auf zusammenhängende Daten, typisch No[t only]SQLDatenbanken) – XM-basiert, verteilt, … • Hinweis: Vertiefung Prof. Dr. Heiko Tapken Datenbanksysteme Prof. Dr. Stephan Kleuker 19 Überblick DB-Entwurf Grob sind die Einzelschritte: • die logische Datenmodellierung • die physische Datenmodellierung • der Aufbau einer Datenbank, sowie • der Betrieb (Administration, Konfiguration) derselben Datenbanksysteme Prof. Dr. Stephan Kleuker 20 Nächste Schritte • Auswahl, Kauf, Installation, Konfiguration eines DBMS • Anlegen der Datenbank, Einspielen der Daten, ... • Administration • Leistungsoptimierung • Sicherheitsaspekte • Anwendungsentwicklung • Backup, Replikation, Clustering, Recovery, ... • Aufgabe: Überlegen Sie Kriterien, die bei der Auswahl eines DBMS eine Rolle spielen Datenbanksysteme Prof. Dr. Stephan Kleuker 21 ANSI/SPARC-Modell Anwendung 1 Anwendung 2 Externe Ebene Externe Ebene Transformationsregeln logische Ebene Transformationsregeln physische Ebene Datenbanksysteme Prof. Dr. Stephan Kleuker 22 Überblick über Ebenen [KL] Sichten (Ein- und Ausgabemasken) externe Ebene Tabellen und Abhängigkeiten logische Ebene Konfiguration / DB-Einrichtung physische Ebene Datenbanksysteme <table name="Artikel"> <size> 5G <\size> <\table> Prof. Dr. Stephan Kleuker 23 Externe Ebene Dies ist die Benutzersicht auf die Daten: Anwender sieht nur die Daten und Beziehungen, die in seinem externen Modell vom Anwendungsadministrator definiert sind. • Der logische Inhalt des externen Modells ist vollständig aus dem konzeptionellen Modell ableitbar. • Im externen Modell können Felder vorhanden sein, die im logischen Modell fehlen (berechnete Felder). • Typischer Teil der Benutzersicht: Masken zur Einund Ausgabe von Daten • Datenbanksysteme Prof. Dr. Stephan Kleuker 24 Logische (konzeptionelle) Ebene Zentraler Inhalt ist das logische Datenmodell: • • • • • Beschreibt die Daten der Miniwelt auf logischer Ebene (Datenobjekte, Integritätsregeln, ...). Bezugspunkt für alle Anwendungen Logische Datenunabhängigkeit Anwendungsübergreifendes Datenmodell Im relationalen Modell kann man sich Tabellen vorstellen, die die Basisinformationen beinhalten Datenbanksysteme Prof. Dr. Stephan Kleuker 25 Physische Ebene (auch interne Ebene) Definiert die Speicherstruktur der Daten: • Hier wird die physische Datenorganisation festgelegt • Festlegung von internen Datensatztypen, Verkettungsmechanismen, physische Indizierung etc. • Ist direkt oberhalb der Ressourcenverwaltung durch das Betriebssystem angesiedelt • Die Güte des internen Schemas hat wesentlichen Einfluss auf die Leistung des Gesamtsystems • hier hat DB-Administrator Möglichkeiten zur Optimierung und Pflege der Datenbank Datenbanksysteme Prof. Dr. Stephan Kleuker 26 Wozu ANSI/SPARC-Dreischichtenmodell? Dieses ANSI/SPARC-Modell stammt von 1975 (ANSI/X3/SPARC Study Group on Data Base Management Systems, FDT ACM SIGMOD 7,2 (1975)) Wozu ist das gut? • Änderungen an der internen Darstellung können vorgenommen werden, ohne die konzeptionelle Ebene zu berühren • Ebenso ist es möglich, Teile der konzeptionellen Schicht zu ändern, ohne die Benutzersichten zu berühren höhere Robustheit gegenüber Änderungen Datenbanksysteme Prof. Dr. Stephan Kleuker 27 Nutzer und Entwickler der Ebenen [KL] Nutzer Entwickler externe Ebene Oberflächen-Designer Endnutzer logische Ebene Datenbank-Entwickler physische Ebene DatenbanksoftwareEntwickler DatenbankAdministrator Datenbanksysteme Prof. Dr. Stephan Kleuker 28 Beispiel: Datenbank Hochschule • Logische Ebene (z.B. Tabellen) – Studi (studid: int, name: string, login: string, alter: int) – Kurs (kursid: int, kname: string, stunden: int) – Fachbereich (fbid: int, fbname: string, budget: real) – Lehrt (fbid: int, kursid: int) – Eingeschrieben (studid: int, kursid: int) • Physische (interne) Ebene – Speicherung der Relationen als Files: unsortierte Menge von physischen Records – Index auf der ersten Spalte von Studis und Kurse zur Beschleunigung des Datenzugriffs • Externe Ebene (View) – Anfragemaske: Wie viele Studenten haben sich in jedem Kurs eingeschrieben? – Kurs_Info (kursid: int, einschreibanzahl: int) Datenbanksysteme Prof. Dr. Stephan Kleuker 29 2. Grundlagen der Entity-Relationship-Modellierung • Was ist ein Modell • Was sind Entitäten • Was sind Relationen • Was sind Attribute Datenbanksysteme Prof. Dr. Stephan Kleuker 30 Konzeptioneller Entwurf (logische Ebene) Der konzeptionelle Datenbankentwurf ist dem Modellieren in den Naturwissenschaften und der Technik ähnlich: Ein Modell wird konstruiert um das Verständnis zu verbessern und um Details zu abstrahieren. Verständnis: Die Bedeutung der Daten und ihre Beziehungen untereinander als Informationsstrukturen darstellen Abstraktion: Vernachlässigung der Details individueller Datenwerte Datenbanksysteme Prof. Dr. Stephan Kleuker 31 Datenmodellierung • Objekte der realen Welt, die für die Aufgabenstellung relevant sind, werden mit ihren Beziehungen untereinander in abstrakter Weise beschrieben, d.h. modelliert • Zentrale Fragen: Welche Objekte / Entitäten spielen eine Rolle? Welche Eigenschaften / Attribute haben diese Entitäten? Wie stehen die Entitäten miteinander in Beziehung (Relation)? Welche Eigenschaften haben diese Beziehungen? • Es stellen sich die Probleme der Anforderungsanalyse beim Versuch, Kundeninteressen in Datenbankanforderungen umzuformen, wie sie z. B. in der Veranstaltung Softwaretechnik diskutiert werden Datenbanksysteme Prof. Dr. Stephan Kleuker 32 Grundbegriffe der Entity-Relationship-Modelle Entität entity (oft auch „Objekt“) individuelles, identifizierbares Exemplar beschrieben durch Eigenschaften Entitätsmenge entity set (oft auch „Objekttyp“, „Entitätstyp“, vereinfacht ungenau auch „Entität“) Zusammenfassung von Entitäten mit gleichartigen Eigenschaften Name (Substantiv) als Oberbegriff für alle Entitäten der Menge Datenbanksysteme Prof. Dr. Stephan Kleuker 33 Grundbegriffe der Entity-Relationship-Modelle Attribut attribut, property Eigenschaft von allen Entitäten einer Entitätsmenge Name entsprechend fachlicher Bedeutung vorgegebener Wertebereich (auch „Domäne“ domain) beschreibende / identifizierende Attribute Schlüssel key (vorläufige Definition) identifizierende Attributkombination Datenbanksysteme Prof. Dr. Stephan Kleuker 34 Grundbegriffe der Entity-Relationship-Modelle Assoziation relationship Zusammenfassung von gleichartigen Beziehungen zwischen Entitäten Name (Verbform) als Oberbegriff für die gleichartigen Relationen zwischen den Entitäten zweier Entitätsmengen kann ebenfalls Attribute haben Datenbanksysteme Prof. Dr. Stephan Kleuker 35 Graphische Darstellung Kunde bucht Kundennr. Anrede Titel ... Seminarveranstaltung Veranst.-Nr. angemeldet am bestätigt am ... vom bis ... identifizierendes Attribut einer Entität ist unterstrichen (Hinweis: Es ist möglich, dass mehrere Attribute zur Identifizierung benötigt werden) Datenbanksysteme Prof. Dr. Stephan Kleuker 36 Kardinalitäten von Assoziationen (1/10) 1:1-Assoziation Ehefrau 1 ist verheiratet mit 1 Ehemann jede Ehefrau hat genau einen Ehemann jeder Ehemann hat genau eine Ehefrau Hinweis: Die Richtigkeit eines Entity-RelationShip-Diagramms hängt auch von der individuellen Aufgabenstellung ab Datenbanksysteme Prof. Dr. Stephan Kleuker 37 Kardinalitäten von Assoziationen (2/10) 1:N-Assoziation Mutter 1 hat N Kind jede Mutter kann mehrere Kinder haben jede Mutter hat mindestens ein Kind jedes Kind hat genau eine Mutter Datenbanksysteme Prof. Dr. Stephan Kleuker 38 Kardinalitäten von Assoziationen (3/10) M:N-Assoziation Student M hört N Vorlesung jeder Student kann mehrere Vorlesungen hören jeder Student hört mindestens eine Vorlesung jede Vorlesung kann von mehreren Studenten gehört werden jede Vorlesung hat mindestens einen Studenten als Hörer Datenbanksysteme Prof. Dr. Stephan Kleuker 39 Kardinalitäten von Assoziationen (4/10) 1:C-Assoziation Frau 1 ist verheiratet mit C Ehemann jede Frau hat entweder genau einen Ehemann oder keinen Ehemann (konditionelle Beziehung conditional relation) jeder Ehemann hat genau eine Ehefrau Datenbanksysteme Prof. Dr. Stephan Kleuker 40 Kardinalitäten von Assoziationen (5/10) 1:NC-Assoziation Frau 1 hat NC Kind jede Frau kann kein Kind, ein Kind oder mehrere Kinder haben jedes Kind hat genau eine Mutter (genauer Frau) Datenbanksysteme Prof. Dr. Stephan Kleuker 41 Kardinalitäten von Assoziationen (6/10) M:NC-Assoziation Dozent M führt durch NC Seminarveranstaltung jeder Dozent kann keine Seminarveranstaltung, eine Seminarveranstaltung oder mehrere Seminarveranstaltungen durchführen jede Seminarveranstaltung hat einen Dozenten oder mehrere Dozenten Datenbanksysteme Prof. Dr. Stephan Kleuker 42 Kardinalitäten von Assoziationen (7/10) MC:NC-Assoziation Artikel MC lagert in NC Lager jeder Artikel kann in keinem Lager lagern (ausverkauft) in einem Lager lagern in mehreren Lagern lagern jedes Lager kann keine Artikel lagern (wird saniert) einen Artikel lagern mehrere Artikel lagern Datenbanksysteme Prof. Dr. Stephan Kleuker 43 Kardinalitäten von Assoziationen (8/10) C:N-Assoziation Mentor C unterstützt N Künstler jeder Mentor unterstützt mindestens einen Künstler (sonst kein Mentor) eventuell mehrere Künstler jedes Künstler hat entweder keinen Mentor oder einen Mentor (sonst gibt es Krach) Datenbanksysteme Prof. Dr. Stephan Kleuker 44 Kardinalitäten von Assoziationen (9/10) C:NC-Assoziation Fluss NC mündet in C See jeder Fluss mündet entweder genau in einem oder in keinem See In jeden See mündet kein ein oder mehrere Flüsse Datenbanksysteme Prof. Dr. Stephan Kleuker 45 Kardinalitäten von Assoziationen (10/10) C:C-Assoziation Frau C verheiratet mit C Mann jede Frau ist verheiratet mit entweder genau einem oder keinem Mann jeder Mann ist verheiratet mit entweder genau einer oder keiner Frau Datenbanksysteme Prof. Dr. Stephan Kleuker 46 Muss- und Kann-Assoziationen Übersicht B A muss kann Datenbanksysteme 1 M C MC muss 1 N 1:1 1:N M:1 M:N C:1 C:N MC:1 MC:N Prof. Dr. Stephan Kleuker kann C NC 1:C 1:NC M:C M:NC C:C C:NC MC:C MC:NC 47 Assoziationen mit Attributen • Attribute, die keiner Entität zugeordnet werden können, sind bei Assoziationen gut aufgehoben BonID ProdID Datum Kasse Bon MC enthält Name Preis N Produkt Menge • Die Menge kann nicht beim Bon stehen, da sie für jedes Produkt verschieden sein kann • Die Menge kann nicht beim Produkt stehen, da jeder Bon eine andere Menge enthalten kann Datenbanksysteme Prof. Dr. Stephan Kleuker 48 Lesebeispiel Verkauf Straße Firma PLZ Ort Bezeichnung Adresse Status Preis PNR KNR Kunde Produkt M 1 MC erteilt NC bestellt lagern GPreis NC NC Menge ANR Auftrag Lager ADatum LDatum Datenbanksysteme Menge Ort Prof. Dr. Stephan Kleuker Straße 49 Textanalyse zur Modellfindung • Nomen können Entitäten oder Attribute sein • Adjektive deuten auf Attribute hin • Verben stellen häufig Entitäten (aber auch Attribute und Relationen) in Beziehung • Hinweis: Qualität des Ausgangstextes zur Analyse ist ein eigenes Thema • typische Problemfälle: – Synonyme: verschiedene Worte für den selben Begriff (Buchtitel, Exemplar) – Homonyme: gleiches Wort mit verschiedenen Bedeutungen (Bank, unsaubere Definitionen z. B. Entität) Datenbanksysteme Prof. Dr. Stephan Kleuker 50 Zyklen in ER-Diagrammen Kunde 1 erteilt N Auftrag NC MC enthält bestellt M NC Artikel Kunde Zyklen zur Darstellung unterschiedlicher Zusammenhänge sind dagegen sinnvoll Zyklen in ER-Diagrammen sind zu untersuchen, es darf generell keine redundante (auf anderem Weg berechenbare Information) modelliert werden. 1 erteilt N MC NC enthält bevorzugt M NC Datenbanksysteme Auftrag Prof. Dr. Stephan Kleuker Artikel 51 Verschiedene Notationen aus: H. Balzert, Lehrbuch Grundlagen der Informatik, Spektrum Akademischer Verlag, 1999 Datenbanksysteme Prof. Dr. Stephan Kleuker 52 Alternative Kardinalitätendarstellung A 1 NC (0,n) A (1,1) M N (1,n) A Datenbanksysteme B B (1,m) M C (0,1) (1,m) Prof. Dr. Stephan Kleuker B 53 UML-Notation Aus B. Oestereich, Objektorientierte Softwareentwicklung Hinweis: Oft werden nur Teile der Annotationen gezeigt Datenbanksysteme Prof. Dr. Stephan Kleuker 54 Lesebeispiel (CD-Sammler) Max-Notation: • 1,C wird 1 • N,NC wird N Datenbanksysteme Prof. Dr. Stephan Kleuker 55