Software Engineering Datenmodellierung Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 1 Inhalt • Grundkonzepte • Begriffe • Entity-Relationship-Modell • Normalformen • Beziehungstypen • Ein Beispiel • ODBC, SQL • Datenmodell und Systemanalyse / -entwurf Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 2 Einführung Gespeicherte Daten, die durch Computerprogramme verarbeitet werden, sind auf allen Systemen anzutreffen. Wir sehen diese als Dateien auf den Datenträgern. Wie sind solche Daten organisiert? Was unterscheidet Datenbanken von anderen Dateien? Wie erstellt man eine vernünftige Datenbank? Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 3 Grundkonzept Datenbanken sind eine Menge von Daten, die durch Strukturierung als Information für ein bestimmtes Thema oder einen bestimmten Zweck verwendet werden. Kundenanschriften Artikeldaten Aufträge Telefonnummern Rechnungsdaten Unternehmensdatenbank Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 4 Grundkonzept Relationale (Tabellen) Datenbank In der tabellarischen Struktur werden die Daten zu einem bestimmten Datenobjekttyp (z.B. Kunde) in Zeilen und Spalten dargestellt. Die Zeilen stehen für Datensätze und die Spalten für die Felder des Datensatzes. Diese Tabellen sind also zweidimensional angelegt. KdNr Firma StrasseHausnummer PLZ Ort 1 Laser & Co. Solutions Promenadenring 8 02708 Löbau 2 Musterbau GmbH Musterstraße 22-23 78123 Musterhausen (Auto) Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 5 Begriffe Datenbank eine Sammlung von Datenobjekten mit gleicher Strukur. Relation Tabelle Relationale Datenbank eine in Tabellenform organisierte Datenbank Attribut Feld / Spalte einer Tabelle, Eigenschaft eines Entity Tupel eine Zeile / ein Datensatz in einer Tabelle / Relation Primärschlüssel eindeutiges Merkmal zur Identifizierung eines Datensatzes Relationship Beziehung zwischen zwei Tabellen Fremdschlüssel Zeiger auf einen Datensatz einer anderen Tabelle (Relationship) Index zusätzliche sortierte Tabelle für den schnelleren Zugriff auf Datensätze Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 6 Datenbank Attribut 1 Attribut 2 Attribut 3 0001001 0001002 Attribut 1 Attribut 2 Attribut 3 0001003 0001004 0001005 Attribut 1 Attribut 2 Attribut 3 0001006 Rechnungsdaten Die Daten Kundenanschriften 102001000 102001001 Attribut 1 Attribut 2 Attribut 3 102001002 102001002 102001003 102001004 Attribut 1 Attribut 2 Attribut 3 einer Datenbank werden Artikeldaten als Tabellen, sogenannte Telefonnummern “Tables“ gespeichert. Aufträge Tabellen haben eine feste Anzahl von Spalten (=Attribute/Felder) Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 7 Datenbank Tabellen stehen in einer Datenbank in Beziehung Attribut Attribut Attribut 1 Attribut 12 Attribut 32 Attribut 3 0001001Attribut 1 Attribut 2 Attribut 3 KdNr Name Vorname 0001002 0001003 0001004 0001005 0001006 010001 Müller Joachim Dresden 010002 Seidel Michael Chemnitz Attribut 1 Attribut 2 Attribut 3 Attribut 00010011 Attribut 2 Attribut 3 Attribut 1 Attribut 2 Attribut 3 KdNr 0001002 AuftrNr Datum 0001003 010001 0001004 00173 02.10.1999 0001005 010001 05012 01.11.2000 0001006 010003 Mayer Frank Speyer 010001 06234 22.01.2001 010004 Richter Margitta Berlin 010004 06235 22.01.2001 Datenmodellierung Ort Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 8 Eine ACCESS Datenbank Beziehung Nutzerführung Eingabemaske Übersicht Tabelle Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 9 Entity-Relationship-Modell, ERM Entity-Relationship-Diagramm, ERD Für den Entwurf von Relationalen Datenbanken wurde von Peter Chen 1973 das Entity-Relationship-Modell entwickelt. Das Darstellungsmittel für die Datenmodellierung ist das Entity-Relationship-Diagramm. Diese Methodik hat bis zum heutigen Zeitpunkt an Bedeutung immer weiter zugenommen. Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 10 Begriffe Entity ein Objekt zu dem Informationen zu speichern sind Relationship Beziehung zwischen zwei Entitäten Attribut Feld / Spalte einer Tabelle, Eigenschaft eines Entity Table Tabelle, Relation Kardinalität beschreib die Typen von Beziehungen (Beziehungstypen) Normalformen Regeln zum Entwurf von Datenbanken Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 11 Elemente Entity ist ein Gegenstand (Objekt) oder ein gedankliches Konstrukt mit klarer Bedeutung und Abgrenzung. Relatinship Beziehung zwischen zwei Entitäten. Kardinalität der Beziehungstyp beschreibt wie viele Ausprägungen des einen Entitytyps mit Ausprägungen eines anderen Entitytyps in Beziehung stehen können. Kunde erhält 1 n Kunde 1 erhält n Rechnung Ein Kunde erhält keine, eine oder viele Rechnungen. Eine Rechnung gehört zu genau einem Kunden. Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 12 Elemente Entity Relationship Ein Entity, wird auch oft als Entität oder Objekt bezeichnet, ist eine Sache die eindeutig identifiziert werden kann. Entitäten können in verschiedenen Entitätstypen klassifiziert werden wie Kunde, Arbeitnehmer, Rufnummer. Im Entity-Relationship-Diagramm wird ein Entity mit hellblauem Rechteck dargestellt. Es gibt viele Typen von Beziehungen zwischen den Entitäten, von denen nur einige für das Unternehmen von Interesse sind. Sie als Datenbankdesigner sind für die richtige Auswahl der Beziehungstypen verantwortlich. Den Beziehungstyp zwischen Entitytypen bezeichnet man als Relationship, welches es bei einer Beziehung zu spezifizieren gilt. 1 Kunde n löst aus Auftrag Table Kardinalität Möchte man nun die in einem Entity definierten Attribute als Tabelle in der Datenbank realisieren, muss man das gewünschte Entity einem Table zuweisen. Die Kardinalität eines Beziehungstyps gibt an, wie viele Ausprägungen des einen Entitytyps, Beziehungen zu einer Ausprägung des jeweils anderen Entitytyps haben können. Die Kardinalität wird durch die Beschriftung der Beziehungskanten ausgedrückt. Diese werden nach dem Autor des ERM benannt, der Chenschen Notation. 1:1 Datenmodellierung (eins-zu-eins) | 1: n (eins-zu-viele) | m: n (viele-zu-viele) Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 13 Kardinalitäten (Beziehungstypen) 1:1 Beziehung 1 Datenmodellierung 1 1:n Beziehung 1 n:m Beziehung n Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions n m 14 Normalformen Die Theorie der Normalisierung, die durch E.F. Codd begründet worden ist, besteht aus Regeln die sicher stellen, dass ihre Datenbank konsistent, zukunftssicher und redundanzarm ist. Diese Regeln werden auch als Normalformen bezeichnet von denen die ersten 3 die wichtigsten sind. Es gibt die Normalformen 1-3 (1NF-3NF), die aus Codds Originaldefinition von 1972 hervorgegangen sind. Boyce und Codd definierten 1974 eine Boyce-CoddNormalform (BCNF). R. Fagin fügte dieser 1977 eine vierte und 1979 eine fünfte hinzu. Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 15 1. Normalform Eine Relation befindet sich in der ersten Normalform wenn alle Attribute nur atomare Werte beinhalten. KdNr Name GebJahr Alter Bankverbindung 1 Huwaldt, Alexander 1965 36 430002345, Kreissparkasse XYZ, BLZ 850340200 2 Riedel, Toralf 1964 35 672009001, SpardaBank ABC, BLZ 850200310 KdNr Vorname Name GebJahr Alter Kreditinstitut BLZ Konto 1 Alexander Huwaldt 1965 36 Kreissparkasse XYZ 850340200 430002345 2 Toralf Riedel 1964 35 SpardaBank ABC 850200310 672009001 Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 16 2. Normalform Eine Relation (Tabelle) befindet sich in 2. Normalform wenn sie der 1. Normalform genügt und alle nicht zum Schlüssel gehörenden Attribute vom Schlüssel vollständig abhängig sind. (Abhängigkeit: Attribut-Teilschlüssel) KdNr Vorname Name GebJahr Alter Kreditinstitut BLZ Konto 1 Alexander Huwaldt 1965 36 Kreissparkasse XYZ 850340200 430002345 2 Toralf Riedel 1964 35 SpardaBank ABC 850200310 672009001 KdNr Firma GebJahr Alter BLZ Konto 1 Huwaldt, Alexander 1965 36 850340200 430002345 2 Riedel, Toralf 1964 35 850200310 672009001 Datenmodellierung BLZ Kreditinstitut 850340200 Kreissparkasse XYZ 850200310 SpardaBank ABC Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 17 3. Normalform Eine Relation (Tabelle) befindet sich in 3. Normalform wenn sie der 2. Normalform genügt und keine funktionalen Abhängigkeiten zwischen Attributen bestehen. (funktionale Abhängigkeit: Attribut-Attribut) KdNr Firma GebJahr Alter BLZ Konto 1 Huwaldt, Alexander 1965 36 850340200 430002345 2 Riedel, Toralf 1964 35 850200310 672009001 Datenmodellierung BLZ Kreditinstitut 850340200 Kreissparkasse XYZ 850200310 SpardaBank ABC Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 18 Kardinalitäten und Tabellen Tabelle 1 1 1 Entity 1 Relationship Entity 2 Tabelle 1 Tabelle 2 1 Entity 1 n Relationship Tabelle 1 Tabelle 3 n Entity 1 Datenmodellierung Entity 2 Tabelle 2 m Relationship Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions Entity 2 19 ERD Beispiel (SiSy) Kunde 1 erhält Rechnung n 1 m beinhaltet n Artikel Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 20 ERD Beispiel (SiSy) Kunde 1 erhält Rechnung n n beinhaltet m Artikel Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 21 ERD Beispiel (SiSy) Kunde Kunde Rechnung 1 erhält Rechnung n Positionen n Artikel beinhaltet m Artikel Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 22 ERD Beispiel (ACCESS) Artik e / Teile n beinhalten m Bes tellung n erz eugt n realis iert 1 Lieferant 1 n 1 OO 1 Warenengang Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 23 ODBC Open DataBase Connectivity = Offene Datenbankschnittstelle ODBC ermöglicht Anwendungen, auf fremde Datenbanken zuzugreifen Voraussetzung ist ein installierter ODBC-Treiber für die jeweiligen Datenbanken Anwendungen Word ODBCSchnittstelle SiSy Access Datenmodellierung (=Betriebssystemkomponente) Treiber Datenbanken Access Access dBase dBase FoxPro FoxPro Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 24 SQL Structured Query Language (SQL) SQL ist eine strukturierte Abfragesprache, die für das Abfragen, Aktualisieren und Verwalten von relationalen Datenbanken verwendet wird. Typische SQL-Statement die in unterschiedlichen Programmiersprachen benutzt werden können: • CREATE TABLE • ALTER TABLE • DROP TABLE ... erzeugt eine Tabelle ... ändert eine Tabelle ... löscht eine Tabelle Beachten Sie, dass hier die physische Datenstrukur erzeugt/verändert wird, d.h. alle eventuell bestehenden Datensätze gehen verloren. • SELECT … FROM … WHERE ... fragt eine Tabelle mit bestimten Kriterien ab CREATE TABLE Auftr ( AuftragsNummer CHAR(100), Datum DATETIME, KundenNummer LONG ) Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 25 Datenentwurf und SA • Der Strukturierung der Funktionen wird die Strukturierung der Daten beigestellt. • Mit dem Entity-Relationship-Modell können die Struktur und die Beziehungen von Daten beschrieben werden. • Die so entstandenen Datenmodelle können bis zur Definition der physischen Datenbanken verfeinert werden. • Die Entities repräsentieren die Speicher der Strukturierten Analyse. Eingabe Datenfluss Kunde 1 erhält n Rechnung Systemfunktion 2 Ausgabe Systemfunktion 1 speichern Rechnung Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions Systemfunktion 3 lesen 26