datenmodellierungdipl. ing. päd. huwaldt, laser & co. solutions1 software engineering...

26
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solu tions 1 Software Engineering Datenmodellierung

Upload: cundrie-gatzemeyer

Post on 06-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 1

Software EngineeringDatenmodellierung

Page 2: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 2

Inhalt• Grundkonzepte

• Begriffe

• Entity-Relationship-Modell

• Normalformen

• Beziehungstypen

• Ein Beispiel

• ODBC, SQL

• Datenmodell und Systemanalyse / -entwurf

Page 3: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 3

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?

Page 4: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 4

Grundkonzept

Unternehmens-datenbank

Unternehmens-datenbank

AufträgeTelefonnummern

KundenanschriftenArtikeldaten

Rechnungsdaten

Datenbankensind eine Menge von Daten, die durch Strukturierung als Information für ein

bestimmtes Thema oder einen bestimmten Zweck verwendet werden.

Datenbankensind eine Menge von Daten, die durch Strukturierung als Information für ein

bestimmtes Thema oder einen bestimmten Zweck verwendet werden.

Page 5: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 5

Grundkonzept

Relationale (Tabellen) Datenbank

KdNr Firma StrasseHausnummer PLZ Ort

1 Laser & Co. Solutions Promenadenring 8 02708 Löbau

2 Musterbau GmbH Musterstraße 22-23 78123 Musterhausen

(Auto)

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.

Page 6: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 6

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

Page 7: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 7

Datenbank

0001001

0001002

0001003

0001004

0001005

0001006

Attribut 3Attribut 2Attribut 1

Attribut 1 Attribut 2 Attribut 3

Attribut 1 Attribut 2 Attribut 3

102001000

102001001

102001002

102001002

102001003

102001004

Attribut 1 Attribut 2 Attribut 3

Attribut 1 Attribut 2 Attribut 3

Rechnungsdaten

Kundenanschriften

Aufträge

Telefonnummern

Artikeldaten

Die Daten

einer Datenbank

werden

als Tabellen,

sogenannte

“Tables“

gespeichert.

Tabellen haben eine feste Anzahl von Spalten (=Attribute/Felder)

Page 8: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 8

Datenbank

0001001

0001002

0001003

0001004

0001005

0001006

Attribut 3Attribut 2Attribut 1

Attribut 1 Attribut 2 Attribut 3Attribut 1 Attribut 2 Attribut 3

0001001

0001002

0001003

0001004

0001005

0001006

Attribut 3Attribut 2Attribut 1Attribut 1 Attribut 2 Attribut 3

Attribut 1 Attribut 2 Attribut 3KdNr Name Vorname Ort

010001 Müller Joachim Dresden

010002 Seidel Michael Chemnitz

010003 Mayer Frank Speyer

010004 Richter Margitta Berlin

KdNr AuftrNr Datum

010001 00173 02.10.1999

010001 05012 01.11.2000

010001 06234 22.01.2001

010004 06235 22.01.2001

Tabellen stehen in einer Datenbank in Beziehung

Page 9: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 9

Eine ACCESS Datenbank

Nutzerführung

Übersicht

Beziehung

Eingabemaske

Tabelle

Page 10: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 10

Entity-Relationship-Modell, ERMEntity-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.

Page 11: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 11

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

Page 12: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 12

ElementeEntity ist ein Gegenstand (Objekt) oder ein

gedankliches Konstrukt mit klarer Bedeutung und Abgrenzung.

Kunde Rechnungerhält1 n

Kunde

erhält

1 n

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.

Ein Kunde erhält keine, eine oder viele Rechnungen.

Eine Rechnung gehört zu genau einem Kunden.

Page 13: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 13

Elemente

KardinalitätDie Kardinalität eines Beziehungstyps gibt an, wie viele Ausprägungen des einen Entitytyps, Bezie-hungen zu einer Ausprägung des jeweils anderen Entitytyps haben können. Die Kardinalität wird durch die Beschriftung der Beziehungskanten aus-gedrückt. Diese werden nach dem Autor des ERM benannt, der Chenschen Notation.

1:1 (eins-zu-eins) | 1: n (eins-zu-viele) | m: n (viele-zu-viele)1:1 (eins-zu-eins) | 1: n (eins-zu-viele) | m: n (viele-zu-viele)

Entity 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, Arbeit-nehmer, Rufnummer. Im Entity-Relationship-Dia-gramm wird ein Entity mit hellblauem Rechteck dargestellt.

Relationship 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.

KundeKunde AuftragAuftraglöst auslöst ausn1

TableMöchte man nun die in einem Entity definierten Attribute als Tabelle in der Datenbank realisieren, muss man das gewünschte Entity einem Table zuweisen.

Page 14: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 14

Kardinalitäten(Beziehungstypen)

1:1 Beziehung 1:n Beziehung n:m Beziehung

11 mnn1

Page 15: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 15

NormalformenDie 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-Codd-Normalform (BCNF). R. Fagin fügte dieser 1977 eine vierte und 1979 eine fünfte hinzu.

Page 16: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 16

1. NormalformEine 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

Page 17: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 17

2. NormalformEine 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 Firma GebJahr Alter BLZ Konto

1 Huwaldt, Alexander 1965 36 850340200 430002345

2 Riedel, Toralf 1964 35 850200310 672009001

BLZ Kreditinstitut

850340200 Kreissparkasse XYZ

850200310 SpardaBank ABC

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

Page 18: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 18

3. NormalformEine 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

BLZ Kreditinstitut

850340200 Kreissparkasse XYZ

850200310 SpardaBank ABC

Page 19: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 19

Kardinalitäten und Tabellen

Entity 1Entity 1 Entity 2Entity 2RelationshipRelationship

11

Entity 1Entity 1 Entity 2Entity 2RelationshipRelationship

n1

Entity 1Entity 1 Entity 2Entity 2RelationshipRelationship

mn

Tabelle 1 Tabelle 3 Tabelle 2

Tabelle 1 Tabelle 2

Tabelle 1

Page 20: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 20

ERD Beispiel(SiSy)

n

n

m1RechnungKunde erhält beinhaltet

Artikel

1

Page 21: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 21

ERD Beispiel(SiSy)

RechnungKunden

m

erhältn1

beinhaltet

Artikel

Page 22: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 22

ERD Beispiel(SiSy)

RechnungKunden

m

erhält n1beinhaltet

Rechnung PositionenKunde

Artikel

Artikel

Page 23: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 23

ERD Beispiel(ACCESS)

NormArtBest

LgZug

LfKatBestLstArtKat

Artike / Teile Bestellung Lieferant

Warenengang

beinhaltenn m

realisiertn 1

erzeugt

n

1

1 n

1 OO

Page 24: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 24

ODBC

OOpen DDataBBase CConnectivity = Offene Datenbankschnittstelle

ODBC ermöglicht Anwendungen, auf fremde Datenbanken zuzugreifen

Voraussetzung ist ein installierter ODBC-Treiber für die jeweiligen Datenbanken

AnwendungenAnwendungen DatenbankenDatenbanken

AccessAccess

dBasedBase

FoxProFoxPro

WordWord

SiSySiSy

AccessAccess

AccessAccess

dBasedBase

FoxProFoxPro

TreiberTreiber

ODBC-Schnitt-stelle

(=Betriebs-system-

komponente)

Page 25: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 25

SQLStructured 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 ... erzeugt eine Tabelle• ALTER TABLE ... ändert eine Tabelle• DROP TABLE ... 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

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 ... erzeugt eine Tabelle• ALTER TABLE ... ändert eine Tabelle• DROP TABLE ... 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 )CREATE TABLE Auftr ( AuftragsNummer CHAR(100), Datum DATETIME, KundenNummer LONG )

Page 26: DatenmodellierungDipl. Ing. Päd. Huwaldt, Laser & Co. Solutions1 Software Engineering Datenmodellierung

Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 26

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.

Kunde Rechnungerhält1 n

System-funktion

1

Eingabe Ausgabe

Rechnung

System- funktion

3

System- funktion

2

Datenfluss

speichern

lesen