Software-Engineering

Ähnliche Dokumente
SWE5 Slide 1. Software-Engineering. Vorlesung 5 vom Sebastian Iwanowski FH Wedel

Vorlesung Datenbanksysteme vom

Wiederholung: Relationale Algebra

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Objektorientierte Datenbanken

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Fortsetzung: Projektion Selektion. NULL Werte

Grundlagen des relationalen l Modells

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenbanksysteme SS 2007

HPI MOOC. n-äre Relationships. Rollen von Relationships. Konvertierung in binäre Relationships. Attribute an Relationships

konzeptueller Entwurf mittels E/R-Modell einfache Funktionalitäten n-stellige Relationships (n>2) (siehe nächste zwei Folien) schwache Entities

Das relationale Modell

Architektur eines DBMS Logische Optimierung

Grundlagen des relationalen Modells

Rückblick: Entity-Relationship-Modell

Schema: konkrete Beschreibung einer bestimmten. (unter Verwendung eines Datenmodells)

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenbanksysteme (1)

Rückblick: Datenbankentwurf

Das relationale Modell

Referentielle Integrität

Datenbankentwurf. VO Datenmodellierung. Katrin Seyr. Institut für Informationssysteme Technische Universität Wien.

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Referentielle Integrität

Konzeptuelle Modellierung

Geoinformation I Datenmodellierung

Datenintegrität. Bisherige Integritätsbedingungen

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Wiederholung VU Datenmodellierung

Objektorientierte Datenbanken

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Datenbankentwurf. Kapitel 3. Datenbankentwurf 76 / 508

Das Relationale Modell

Einführung in Datenbanksysteme

Kapitel 3: Datenbanksysteme

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Datenbanksysteme 2013

Einführung, Entity-Relationship Modell 9. DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL

Kapitel 3: Datenbanksysteme

Datenmodellierung VU Einführung SS 2016

Datenmodelle. Einführung in das Entity-Relationship-Modell. Datenbankmodelle. Beispiel für ein ER-Schema. Kunde( Meier, , ) 41, Meier

Datenmodelle dienen der Darstellung der Informationsstruktur, nicht der Darstellung der Informationen selbst. Motivation

Inhalt. 2.1 Datenbankentwurf. 2.2 Relationales Modell. 2.3 Relationale Entwurfstheorie. 2.4 Relationale Algebra. 2.5 Structured Query Language (SQL)

Vorlesung Informationssysteme

Einführung in die Datenorganisation. Informationssysteme

Glossar für das Fach Informatik

Datenbanken: ER-Modell

Relationale Abfragesprachen

Das konzeptionelle Datenmodell

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Theorie zur Übung 8 Datenbanken

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

3. Das Relationale Datenmodell

UML -Klassendiagramme

Kurzeinführung in UML

Kapitel DB:III (Fortsetzung)

Normalisierung I. Ziele

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört.

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Medizininformatik Software Engineering

Datenbanksysteme (2) Einführung in SQL

Datenorientierter Ansatz. Datenbankentwurfsschritte. Welche Daten müssen im System verwaltet werden? Wie werden die Daten im System verändert?

Kapitel 3: Entity-Relationship-Modell

E-R-Modell zu Relationenschema

Klausur Software-Engineering SS 2005 Iwanowski

Kapitel 1: Einführung 1.1 Datenbanken?

Einführung in Datenbanken

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 4 -

Teil II: OOP und JAVA (Vorlesung 9)

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Entwurf: Fortgeschrittene Konzepte

Datenbanksysteme: Entwurf

Kapitel 5: Das E/R-Modell

Rückblick: Relationales Modell

3. Relationales Modell

Kapitel DB:IV (Fortsetzung)

Informationssysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Sommersemester

Transkript:

SWE42 Slide Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 2: Datenorientierte Sicht

SWE42 Slide 2 Systemanalyse: Datenorientierte Sicht Entity-Relationship-Modellierung (ERM): (Chen 976) Entitäten Entitäten sind die zu unterscheidenden Einheiten des Systemmodells. Entitäten werden durch Attribute beschrieben. Die Attribute haben bestimmte Wertebereiche. Ein Entitätstyp fasst Entitäten mit gleichen Attributen zu einer Menge von gleichartigen Entitäten zusammen. Innerhalb eines Entitätstyps ist jede Entität durch Schlüsselattribute (häufig nur ein Schlüsselattribut) eindeutig bestimmt.

SWE42 Slide 3 Universitätsbeispiel: Entitätstypen Entity-Relationship-Modell MatrNr VorlNr Student Vorlesung SWS Semester Titel PersNr Rang Assistent Professor Raum Fachgebiet PersNr Zwischen den Entitäten bestehen Beziehungen

SWE42 Slide 4 Entity-Relationship-Modell Beziehungen (Relationships) zwischen Entitäten: Entitäten desselben Typs haben gleichartige Beziehungen Assoziationen zwischen Entitätstypen: Assoziationen verbinden zwei oder mehr Entitätstypen Assoziationen sind nicht gerichtet. Assoziationen haben eindeutige n. Assoziationen können Attribute haben. Assoziationen können von Entitätstypen aus spezifisch bezeichnet werden. Assoziationen legen die Art der Beziehung zwischen den zu den Typen zugehörigen Entitäten fest.

SWE42 Slide 5 Entity-Relationship-Modell Universitätsbeispiel: Entitätstypen mit Assoziationen (mit entitätstypspezifischen Bezeichnungen der Assoziationen) MatrNr Semester Student hört wirdgeprüft Hörer wirdgehört wird abgefragt Vorgänger Voraussetzung Nachfolger Vorlesung wird gelesen VorlNr SWS Titel Note Prüfung Lesung PersNr Assistent Boss Arbeit prüft beschäftigt liest Professor Rang Raum Fachgebiet PersNr

SWE42 Slide 6 Entity-Relationship-Modell Kardinalitäten für Assoziationen Kardinalitäten geben für jeden an einer Assoziation beteiligten Entitätstyp an, wieviele Entititäten dieses Typs an der Assoziation beteiligt sein dürfen (müssen), wenn die Entitäten auf der anderen Seite der Assoziation fest gewählt sind. Kardinalität bedeutet: genau eine Kardinalität 3 bedeutet: genau 3 Kardinalität n bedeutet: mehrere (mindestens eine) Kardinalität m bedeutet: mehrere (mindestens eine), aber nicht notwendig genauso viele wie auf der anderen Seite (wenn dort n steht) Kardinalität 2..5 bedeutet: zwischen 2 und 5 Kardinalität 0.. bedeutet: eine oder gar keine

SWE42 Slide 7 Entity-Relationship-Modell Universitätsbeispiel: Entitätstypen mit Assoziationen (mit Kardinalitäten) MatrNr Student Semester n n Hörer m m Voraussetzung n m Vorlesung n VorlNr SWS Titel Note Prüfung Lesung PersNr Assistent n Arbeit Professor Rang Raum Fachgebiet PersNr

Entity-Relationship-Modell Wichtiges Anwendungsgebiet für ERM: Modellierung für Datenbanken Ein ER-Modell kann also auch für den Softwareentwurf eingesetzt werden! Methode zur Umwandlung eines ER-Modells in ein relationales Datenbankmodell (unter Beachtung der Normalformen): Aus den Entitätstypen werden Tabellen (mit den Attributen und n:-assoziationen als Spalten und den Entitäten als Zeilen) Aus den m:n-assoziationen werden Tabellen (mit den Attributen und Entitätstypen als Spalten und den konkreten Beziehungen zwischen den Entitäten als Zeilen) Achtung: ER-Modell Relationales Modell SWE42 Slide 8

SWE42 Slide 9 Raum Rang PersNr 226 C4 Sokrates 225 7 C4 Kant 237 36 C4 Curie 236 309 C3 Augustinus 234 52 C3 Popper 233 30 C3 Kopernikus 227 232 C4 Russel 226 Professor Semester MatrNr 8 Xenokrates 24002 2 Feuerbach 29555 2 Theophrastos 2920 3 Carnap 2806 6 Schopenhauer 27550 8 Aristoxenos 26830 0 Fichte 2620 2 Jonas 25403 Student 237 4 Die 3 Kritiken 4630 234 2 Glaube und Wissen 5022 233 2 Der Wiener Kreis 5259 wirdgelesen SWS Titel VorlNr 237 4 Grundzüge 500 226 2 Bioethik 526 226 3 Wissenschaftstheorie 5052 225 4 Logik 4052 225 2 Mäeutik 5049 226 3 Erkenntnistheorie 5043 225 4 Ethik 504 Vorlesung Nachfolger Vorgänger 504 500 5259 5052 5052 504 5052 5043 526 504 5049 500 5043 500 Voraussetzung 526 2806 5022 25403 5022 29555 5049 2920 504 2920 VorlNr MatrNr 500 2620 500 2920 5259 2806 5052 2806 504 2806 4052 27550 500 27550 Hörer Boss Fachgebiet PerslNr 225 Ideenlehre Platon 3002 226 Gott und Natur Spinoza 3007 227 Keplersche Gesetze Newton 3006 227 Planetenbewegung Rhetikus 3005 226 Sprachtheorie Wittgenstein 3004 225 Syllogistik Aristoteles 3003 Assistent Note PersNr VorlNr MatrNr 226 500 2806 2 237 4630 27550 2 225 504 25403 Prüfung Relationales Modell Universitätsbeispiel: Tabellen in Normalform

SWE42 Slide 0 Systemanalyse: Datenorientierte Sicht Was fehlt bei ER-Modellen? keine standardisierte Kennzeichnung und Unterscheidung von hierarchischer und modularer Zerlegung keine klare Trennung zwischen Entität und Beziehung keine klare Abgrenzung verschiedener Entitätstypen voneinander keine Sichtbarkeits- und Zugriffsregeln auf die Entitäten von außen Lösung: Objektorientierte Modellierung Vererbung als Mittel hierarchischer Zerlegung Kapselung der Objekte (Entitäten): Zugriff von außen nur über Methoden weitere Kennzeichnungen und Unterscheidungen (nur in UML-Notation)

Objektorientierte Modellierung Universitätsbeispiel: Objektorientierte Modellierung (in UML-Notation): Attribute Methoden Studenten +M atrn r : int + : String +Semester : int +Notenschnitt() : float +SummeW ochenstunden() : short +wirdgeprüft +Prüfling +hört +Hörer.. Rollenname Assoziationsname Hörer hören + Vorgänger +Nachfolger Vorlesungen +VorlNr : int +Titel : String +S W S : int +AnzH örer() : int +DurchfallQuote() : float voraussetzen Voraussetzung + wirdgelesen Prüfungen +Note : Decimal +Datum : Date +verschieben() + Prüfungsstoff + Prüfer +Prüfer +Prüfungsstoff gelesenvon Lesung Unterscheide: Assistenten +Fachgebiet : String +Gehalt() : short Attribute von Methoden Rollen von Assoziationen + Prüfer arbeitenfür Arbeit Angestellte +PersNr : int + : String SWE42 Slide +Boss Professoren +Rang : String +Notenschnitt() : float +Gehalt() : short +Lehrstundenzahl() : short gerichtete von ungerichteten Assoziationen (erst bei Systementwurf relevant) +Dozent

SWE42 Slide 2 Objektorientierte Modellierung: Vererbung Beispiel: Personenhierarchie (in ERM-Notation): Person is-a Generalisierung Spezialisierung Student Angestellter PersNr MatrNr is-a Fachgebiet Assistent Professor Rang Raum

SWE42 Slide 3 Wie sieht die Vererbung in UML aus? Objektorientierte Modellierung: Vererbung Einbau der Personenhierarchie in Universitätsbeispiel (in ERM-Notation) : MatrNr Semester Student Hörer Voraussetzung Vorlesung VorlNr SWS Titel Note Prüfung Lesung PersNr Rang Person is-a Fachgebiet Assistent Arbeit is-a Professor Raum Angestellter PersNr PersNr

SWE42 Slide 4 Das Vererbungsbeispiel in UML-Notation (nur eine Hierarchiestufe) Studenten +M atrn r : int + : String +Semester : int +Notenschnitt() : float +SummeW ochenstunden() : short +wirdgeprüft +P rüfling +hört +Hörer.. Hörer hören + Vorgänger +Nachfolger Vorlesungen +VorlNr : int +Titel : String +S W S : int +AnzH örer() : int +DurchfallQuote() : float voraussetzen Voraussetzung + wirdgelesen Prüfungen +Note : Decimal +Datum : Date +verschieben() + Prüfungsstoff + Prüfer +Prüfer +Prüfungsstoff gelesenvon Lesung Assistenten +Fachgebiet : String +Gehalt() : short + Prüfer arbeitenfür Arbeit +Boss Professoren +Rang : String +Notenschnitt() : float +Gehalt() : short +Lehrstundenzahl() : short +Dozent Angestellte +PersNr : int + : String +Gehalt() : short

SWE42 Slide 5 UML-Notation für Beziehungen Speziellere Beziehungen: Komposition (gerichtet / ungerichtet) (nicht genauer spezifizierte Beziehung) (für die Vererbung)

SWE42 Slide 6 UML-Notation für Beziehungen Was bedeuten diese beiden Pfeile? Komposition Aggregation: Zerlegung eines Objekts in seine Bestandteile Aggregationen in ERM-Notation: part-of Komposition: Zerlegung eines Objekts in Bestandteile, die selbständig gar nicht existieren können

SWE42 Slide 7 Bsp. für Aggregation UML-Notation für Beziehungen Auto Attribute Motorboot Attribute Methoden Methoden Motor Attribute Methoden

SWE42 Slide 8 Bsp. für Komposition UML-Notation für Beziehungen Studenten +MatrNr : int + : String +Semester : int +Notenschnitt() : float +SummeWochenstunden() : short +Prüfling Prüfungen +Note : Decimal +Datum : Date absolviert +Prüfungsstoff... +Prüfer +verschieben()...

SWE42 Slide 9 UML-Notation für Beziehungen Hierarchische Zerlegung der Verbindungsklasse Beziehung Assoziation Graphische Darstellung Beziehung Verbindungspartner Verbindungspartner 2 Graphische Darstellung wegnehmen () hinzufügen () Aggregation Graphische Darstellung Komposition Graphische Darstellung wegnehmen () Generalisierung Graphische Darstellung

SWE42 Slide 20 Objektorientierte Modellierung: Methoden Methoden sind Funktionen, die auf eine Instanz der Klasse angewendet werden dürfen, in der sie beschrieben sind. Anwendung heißt Ausführung der Funktion, d.h. des in der Funktion beschriebenen Algorithmus Methoden haben implizit immer die Instanz, auf die sie angewendet werden, als Parameter und optional noch weitere Parameter (die in der Beschreibung der Methode explizit festgelegt sein müssen)

SWE42 Slide 2 Objektorientierte Modellierung: Bsp. für Methoden Auto Motorboot Attribute Methoden Zündschloss Gaspedal Kupplung Bremse Lenkrad anlassen () fahren () anhalten () Zündschloss Gashebel anlassen () fahren () anhalten ()

SWE42 Slide 22 Objektorientierte Modellierung: Bsp. für Methoden Vererbung: Motorfahrzeug Zündschloss Gaszufuhr anlassen () Auto Motorboot Attribute Methoden Zündschloss Gaspedal Gaszufuhr (als Pedal) Kupplung Bremse Lenkrad anlassen () fahren () anhalten () Zündschloss Gashebel Gaszufuhr (als Hebel) anlassen () fahren () anhalten ()

SWE42 Slide 23 Vergleich der beiden datenorientierten Sichten Rein datenorientierte Sicht: ERM Datenorientierte Sicht mit funktionalen Aspekten: Objektorientierte Sicht (UML) Konzeptionelle Gemeinsamkeiten: Entitäten werden zu gleichartigen Entitätstypen zusamengefasst. Instanzen werden zu gleichartigen Klassen zusamengefasst. Entitäten werden durch Attribute näher beschrieben. Instanzen werden durch Attribute näher beschrieben. Entitätstypen sind durch Assoziationen miteinander verbunden, welche die Beziehungen der zugehörigen Entitäten beschreiben. Diese Assoziationen können von den Entitätstypen aus verschieden bezeichnet werden. Außerdem kann die Anzahl der beteiligten Entitäten eines Entitätstyps festgelegt werden. Klassen sind durch Assoziationen miteinander verbunden, welche die Beziehungen der zugehörigen Instanzen beschreiben. Diese Assoziationen werden von den Instanzen aus mit Rollennamen bezeichnet. Außerdem kann die Anzahl der beteiligten Instanzen einer Klasse festgelegt werden.

Vergleich der beiden datenorientierten Sichten Rein datenorientierte Sicht: ERM Datenorientierte Sicht mit funktionalen Aspekten: Objektorientierte Sicht (UML) Konzeptionelle Unterschiede: Entitäten werden durch Schlüsselattribute eindeutig bestimmt. Instanzen werden durch ihren n eindeutig bestimmt. Zugriff auf die Attribute nicht versteckt. Keine entitätsspezifischen Prozesse Methoden regeln den Zugriff auf die Instanzen sowie Operationen auf ihnen. Außerdem werden durch Methoden Operationen mit den Instanzen beschreiben. Methoden werden in den zugehörigen Klassen deklariert. Das Konzept der hierarchischen Ordnung von Entitätstypen wurde nachträglich in die ER-Modellierung aufgenommen (is-a). Die Vererbung bezieht sich auf die Attribute. Klassen können hierarchisch geordnet werden (Generalisierung und Spezialisierung). Die Instanzen einer spezialisierten Klasse erben alle Attribute und Methoden der generalisierten Klasse, es sei denn, ihre eigene Klasse hat selbst ein Attribut / eine Methode desselben ns. SWE42 Slide 24