datenmodellierungdipl. ing. päd. huwaldt, laser & co. solutions1 software engineering...
TRANSCRIPT
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 1
Software EngineeringDatenmodellierung
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
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?
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.
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.
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
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)
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
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 9
Eine ACCESS Datenbank
Nutzerführung
Übersicht
Beziehung
Eingabemaske
Tabelle
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.
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
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.
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.
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 14
Kardinalitäten(Beziehungstypen)
1:1 Beziehung 1:n Beziehung n:m Beziehung
11 mnn1
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.
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
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
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
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
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 20
ERD Beispiel(SiSy)
n
n
m1RechnungKunde erhält beinhaltet
Artikel
1
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 21
ERD Beispiel(SiSy)
RechnungKunden
m
erhältn1
beinhaltet
Artikel
Datenmodellierung Dipl. Ing. Päd. Huwaldt, Laser & Co. Solutions 22
ERD Beispiel(SiSy)
RechnungKunden
m
erhält n1beinhaltet
Rechnung PositionenKunde
Artikel
Artikel
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
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)
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 )
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