Datenmodellierung - Beuth Hochschule für Technik Berlin

Werbung
Datenbankentwurf
DATENBANKENTWURF
Reale
Welt
Datenmodellierung
Implementierung
mit einem
Datenbanksystem
BenutzerAnforderungen
Externes
Konzeptionelles
Schema
Logisches
1. Schema
Schema
2. Schema
Schema
Internes
3. Schema
Schema
Fachliches
Konzept
Vorteile:
Datenunabhängigkeit
Zerlegung in Teilaufgaben
TFH Berlin/Steyer
EDV
Konzept
Datenbankentwurf
ANFORDERUNGSANALYSE
Anforderungen aller potentiellen Benutzer an die Datenbank sammeln
(1) Informationsanforderungen
(2) Bearbeitungsanforderungen
(3) Technische und organisatorische Randbedingungen
Ergebnis: (viele) Benutzeranforderungen (Spezifikation)
Anmerkungen:
Hilfsmittel sind Formblätter, Interviews, Fragebögen, umgangssprachlicher Text. Formale Hilfsmittel gibt es
kaum. Diese Phase ist sehr zeitaufwendig, aber auch ausserordentlich notwendig. Eine vollständige
konsistente Anforderungsspezifikation ist Voraussetzung für einen sinnvollen Entwurf. Wichtig ist die
Identifikation von Organisationseinheiten und Aufgaben.
KONZEPTIONELLER ENTWURF
Ziel: Formales, integriertes Modell der Informationsstrukturen
unabhängig vom Datenbanksystem oder der Hardware
(1)
Informationsstrukturen aus den Sichten der einzelnen Benutzer herausarbeiten
(2)
Redundanzen, Inkonsistemzen, Konflikte aufdecken und beseitigen
(3)
Zusammenfügen der Einzelsichten zu einer globalen Informationsstruktur
Ergebnis: Konzeptionelles Schema
Anmerkungen:
Formale Hilfsmittel: Festlegen der Objekte, Attribute, Beziehungen (Entity Relationship Modell)
Objekt: Ein Objekt (Ganzheit, engl. entity) ist etwas, das für ein Unternehmen von Interesse ist. Es muss
jeweils einmalige Ausprägungen enthalten. In der Umgangssprache ist es normalerweise ein Substantiv.
Beispiele: Maschinen, Konten, Kollegen, Angestellte, Verträge, Kurse.
Attribut: Ein Attribut ist eine Eigenschaft eines Objektes. Umgangssprachlich erscheinen die Attribute meist
nach 'hat'... Attribute von Kurs sind z.B. Kursnummer, Abteilungsnummer, Name, Semester,
Einschreibtermin.
Beziehung: Eine Beziehung (engl. relationsship) ist eine Verbindung zwischen zwei oder mehr Objekten. In
der Umgangssprache ist es normalerweise ein Verb. Beispiele für Beziehungen zwischen zwei Objekten
sind Angestellte ARBEITEN_FÜR Abteilung, Studenten STUDIEREN Fächer, Arbeiter WARTEN
Maschinen.
TFH Berlin/Steyer
Datenbankentwurf
LOGISCHER ENTWURF
Ziel: Schema für das verwendete Datenbanksystem
Übersetzung des konzeptionellen Schemas in die Datenstrukturen des Datenbanksystems
Ist abhängig von den Modellierungsmöglichkeiten des Datenbanksystems
Für das relationale Datenmodell gibt eine Theorie des Entwurfs (Normalformen).
Ziele sind Redundanzfreiheit, Anforderungserfüllung, Einfachheit
Ergebnis: Logisches Schema mit Zugriffsrechten, Randbedingungen (Constraints)
EXTERNER ENTWURF
Ziel: Vom gesamten logischen Schema werden entsprechend den Benutzeranforderungen mit der
Datenbanksprache formale Benutzersichten für spezielle Benutzer abgeleitet.
PHYSISCHER (INTERNER) ENTWURF
Ziel: Optimale Weiterentwicklung und Verfeinerung des logischen Entwurfs entsprechend den
Gegebenheiten der realen Umwelt
Entwicklung des internen Schemas und Festlegen der Systemparameter abhängig von den Anforderungen
an die Verarbeitung der Daten
Es werden festgelegt:
Speicherstrukturen
Zugriffsmechanismen
Grösse der Datenbank
Verteilung auf Platten
Grösse des Datenpuffers im Hauptspeicher
Datenschutzkonzepte sensibler Daten
Datensicherungsverfahren
...
Ergebnis: Ladbares Datenbankschema
TFH Berlin/Steyer
Datenbankentwurf
SYMBOLE
Objekt/Entity
Kunde
Objekt/Entity mit Attributen
Name
Wohnort
Kunde
Beziehung/Relationship zwischen Objekten/Entities
Name
Wohnort
Kunde
Menge
bestellt
Name
Preis
Artikel
Objekte werden zu Tabellen.
Attribute werden zu Tabellenspalten.
Beziehungen werden zu
wenn 1:1-Beziehung: gleiche Schlüssel in den Objekttabellen
wenn n:1-Beziehung: Spalte in der Mehrfachtabelle
wenn 1:n-Beziehung: Zwischentabelle
wenn n:m-Beziehung: Zwischentabelle
Schlüsseleigenschaften:
TFH Berlin/Steyer
- eindeutig und obligatorisch
- einfach oder mehrfach
- Attributfeld(er) oder Kunstschlüssel
Datenbankentwurf
ER-TYPEN
Tripel
Leser
leiht
Buch
Kette
Leser
leiht
Buch
Leser
leiht
Buch
Stern
Filiale
Spindel
bestellt
Leser
leiht
gemahnt
TFH Berlin/Steyer
Buch
verfasst von
Autor
Datenbankentwurf
ER-MODELL einer FIRMA
als Basis für ein System
(1) Oberfläche (Formulare)
1 Verkauf
2 Buchhaltung
3 Einkauf
Kunde
Krechnung
Kliefert
Kbestellt
Artikel
Kasse
Kunde
Krechnung
Lieferant
Lrechnung
Lieferant
Lrechnung
Lliefert
Lbestellt
Artikel
(2) Prozeduralität (Programme)
p1,p2,p3
p4 . . .
p5,p6,p7
(3) Daten (Tabellen)
Kasse
Kunde
Lieferant
KRechnung
LRechnung
Kliefert
Kbestellt
TFH Berlin/Steyer
Lliefert
Artikel
Lbestellt
Datenbankentwurf
ERWEITERUNGEN EINES ERA-ENTWURFES
Spaltung der Attribute
Adresse
PLZ
Ort
Strasse
wird zu
Kunde
Kunde
Verfeinerung der Attribute
Wohnort
Name
Grösse
wird zu
Kunde
Kunde
wohnt in
Vervielfachen der Beziehungen
bestellt
Leser
Buch
leiht
Mehrfache Beziehungen
Dozent
Einsatzplan
LV
LV
Dozent
Stundenplan
Raum
TFH Berlin/Steyer
Zeit
Ort
Land
Datenbankentwurf
LOGISCHER ENTWURF mit ORACLE
DATENTYPEN
CHAR(size)
CHARACTER
VARCHAR(size)
VARCHAR2(size)
DATE
LONG
LONG VARCHAR
RAW(size)
LONG RAW
ROWID
Zeichenkette bis 255
wie CHAR
wie CHAR, Länge ist Pflichtangabe
wie CHAR, Werte sind in der echten Länge gespeichert
Datumsangaben vom 1.1.4712 v.Chr. bis 31.12.4712
Zeichenkette bis 65535
wie LONG
Binädaten bis 255 Zeichen
wie RAW, bis 65535
eindeutiger Zeilenert in der Pseudospalte ROWID
NUMBER
NUMBER(*)
NUMBER(*,s)
NUMBER(p)
NUMBER(p,s)
Ziffernzahl
38
38
38
p
p
Kommastellen
null
null
s
0
s
DECIMAL
DECIMAL(*)
DECIMAL(*,s)
DECIMAL(p)
DECIMAL(p,s)
38
38
38
p
p
0
0
s
0
s
INTEGER
SMALLINT
38
38
0
0
FLOAT
FLOAT(*)
FLOAT(b)
REAL
38
38
b
63
null
null
null
null
DOUBLE PRECISION 38
null
INTERNE DATENINTEGRITÄT
create table
erzeugt eine Tabelle
einfache Form: create table kunde
(knr
integer,
anrede
char(5),
nachname
char(7),
vorname
char(7),
plz
integer,
ort
char(12),
konto
decimal(7,2))
mit Schlüsseln: create table emp
(empno
number not null primary key,
ename
char(10),
job
char(9),
mgr
hiredate
sal
comm
deptno
number,
date,
number(10,2),
number(9,0) default null,
number(2) not null)
mit check:
create table emp
(empno
number not null primary key,
ename
char(10) not null check (ename = upper(ename)),
job
char(9),
mgr
number,
hiredate
date check (hiredate >= sysdate),
sal
number(10,2) check (sal > 500),
comm
number(9,0) default null,
deptno
number(2) not null,
pctfree 5 pctused 75
mit Speicher:
create table salgrade
(grade
number,
losal
number,
hisal
number)
tablespace human_resource
storage (initial 6144 next 6144 minextents 1
maxextents 5 pctincrease 5)
EXTERNE DATENINTEGRITÄT
mit Beziehungen: create table emp
(empno
number not null primary key,
ename
char(10) not null check (ename = upper(ename)),
job
char(9),
mgr
number references emp(empno),
hiredate
date check (hiredate >= sysdate),
sal
number(10,2) check (sal > 500),
comm
number(9,0) default null,
deptno
number(2) not null
references dept(deptno))
pctfree 5 pctused 75
dept
Die Abteilungsnummer eines
Angestellten muss eine Abteilungsnummer aus dept sein.
emp
q
TFH Berlin/Steyer
Die Vorgesetztennummer eines
Angestellten muss selbst auch
die Nummer eines Angestellten sein.
Datenbankentwurf
Logischer Entwurf mit ACCESS
Datentypen :
TEXT
MEMO
ZAHL
DATUM/ZEIT
WÄHRUNG
ZÄHLER
JA/NEIN
OLE-Objekt
Buchstaben oder Ziffern, max. 255
Buchstaben oder Ziffern, bis 64000
Rechentyp (1, 2, 4, 8 Bytes)
Termine, mit Gültigkeitsprüfung
Bezeichnung DM, 2 Dezimalstellen
automatisches lückenloses Hochzählen beim Einfügen,
beim Löschen bleiben die Lücken
Boolesches Feld, sparsame Speicherung (1 Bit)
Objekt aus anderer Anwendung, verbunden oder kopiert,
z.B. Paintbrush-Bild
Tip zu Zähler: Man kann einen lückenhaft gewordenen Zähler wieder lückenlos machen durch Löschen des
Feldes (in der Entwurfsansicht) und sofortiges neues Definieren.
Gültigkeitsregeln:
Eine Gültigkeitsregel für Werte ist eine Regel für die Werte, die
für ein Datenfeld zulässig sind.
(1) Jeder Datentyp stellt für sich schon eine Regel dar. So können z.B. in ein numerisches Feld keine
alphanumerischen Zeichen eingetragen werden.
(2) Weitere Regeln können als Tabelleneigenschaften definiert werden.
->Entwurfsansicht->Ansicht->Tabelleneigenschaften->gewünschtes Feld wählen->ausfüllen
(Beschreibung, Gültigkeitsregel, Gültigkeitsmeldung)->Datei->speichern
(3) Man kann die einfachen Regeln auch zusammensetzen.
Bei den definierten Feldern lassen sich noch Feldeigenschaften wie Feldgrösse, FORMAT, Dezimalstellen,
Beschriftung, Standardwert, Eingabeformat, Eingabeschablonen und Ausgabeformate angeben.
Es gibt zwei Arten von Beziehungen zwischen Tabellen: statische und dynamische
1 Dynamische Beziehungen, die nur für die Zeit einer Abfrage oder eines Formulars hergestellt werden
(Select mit Join).
2 Statische Beziehungen, die explizit eingerichtet werden und bestehen bleiben. Sie werden bei jeder
Änderung von Schlüsselfeldern kontrolliert und folgen gewissen Standardfällen.->Bearbeiten->Beziehungen
In Access ist es möglich - entsprechend der Norm SQL/92 - Beziehungen verschiedener Art zwischen den
Tabellen zu definieren, die das Datenmodell stärker integrieren.
Schritte: Tabellen symbolisch darstellen mit ->Bearbeiten->Beziehungen->Hinzufügen
Beziehungen herstellen durch Verbinden von Feldern
Arten von Beziehungen festlegen (s.u.)
Referentielle Integrität:
Die referentielle Integrität gibt Regeln an für den Zusammenhang von Spalten in verschiedenen Tabellen. Im
Beziehungsfenster werden zunächst alle benötigten Tabellen eingesammelt (->Bearbeiten->Beziehungen).
Danach werden von der Primärtabelle (Haupttabelle) zur Sekundärtabelle (verknüpfte Tabelle) zwischen
den gewünschten Spalten Verbindungslinien gezogen.
Schliesslich wird eine gezogene Verbindung nach folgenden Eigenschaften charakterisiert:
- 1:N-Beziehung, d.h. für jeden Datensatz der Haupttabelle können mehrere zugeordnete Datensätze in der
verknüpften Tabelle existieren. Es kann auch Datensätze der Haupttabelle geben, denen noch keine
verknüpften Datensätze zugeordnet sind, aber nicht umgekehrt.
- 1:1-Beziehung, d.h. jeder Datensatz der Haupttabelle besitzt maximal einen zugeordneten Datensatz in
der verknüpften Tabelle. Es kann auch Datensätze der Haupttabelle geben, denen noch keine verknüpften
Datensätze zugeordnet sind, aber nicht umgekehrt.
Voraussetzung für referentielle Integrität: Die Haupttabelle muss einen Pimärschlüssel oder einen
eindeutigen Index besitzen. Die Beziehung muss auf dem Datenfeld des Primärschlüssels bzw. des
eindeutigen Index basieren.
- Aktualisierungsweitergabe ans Detailfeld, d.h die Werte der Verbindungsfelder in der Detailtabelle werden
den Änderungen in der Mastertabelle angepasst, um die Beziehung aufrechtzuerhalten
- Löschweitergabe an Detaildatensatz, d.h. entsprechende Datensätze der Detailtabelle werden wie in der
Mastertabelle mit gelöscht
Die klassischen Auswirkungen der referentiellen Integrität bei Änderungen in der Primärtabelle (Satz mit
Detailzeilen wird geändert oder gelöscht) sind drei:
- Blockieren (ankreuzen: Mit referentieller Integrität)
Anwendungsfall: Blockieren der Löschung eines Kunden, wenn er noch unbezahlte Rechnungszeilen hat.
- Kaskade=Löschen (ankreuzen: Löschweitergabe an Detaildatensatz)
Anwendungsfall: Löschen auch von Hilfeinformationszeilen, wenn der Master wegfällt.
- Werteweitergabe (ankreuzen: Aktualisierungsweitergabe an Detailfeld)
Anwendungsfall: Nullsetzen von Reservierungszeilen, wenn ein Besteller gestrichen wird.
Hinweis noch:
Mit der graphischen Darstellung der Tabellenbeziehungen kann in der üblichen Windows-Weise gearbeitet
werden: Tabellensymbole können vergrössert, verkleinert oder verschoben werden. Einzelne
Beziehungslinien können angeklickt werden, um sie zu ändern oder zu löschen. Das erarbeitete Layout
kann gespeichert werden.
Es kann über Menüauswahl ein einzelnes Beziehungsmolekül oder das gesamte Beziehungsgeflecht
angezeigt werden.
TFH Berlin/Steyer
Datenbankentwurf
DATENBANKENTWÜRFE
Videothek: Kunde – Ausleihe – Videofilm
|
Schauspieler
Bibliothek: Leser – Ausleihe – Buch
|
Autor
Verkehr: Fluggäste – Buchung – Plätze
Handel: Einkauf – Lager – Verkauf (Bestellungen, Lieferscheine, Rechnungen, Mahnungen)
Hochschule: Studenten belegen die Lehrveranstaltungen ihrer Dozenten
Buchhandlung: Im Lager einer Buchhandlung stehen stehen Bücher von Verlagen zu Preisen
Ladenkette: Lieferanten beliefern Filialen einer Ladenkette mit Waren.
Malerbetrieb: Die Maler eines Malerbetriebes bemalen die Häuser ihrer Kunden.
Autowerkstatt: Die Mechaniker einer Autowerkstatt reparieren die Autos ihrer Kunden auf Hallenplätzen.
Aus Lehrer-, Raum-, Fach- und Klassendaten wird ein Stundenplan erstellt.
Handel: Eingekaufte Waren werden in das Lager übernommen und dann weiterverkauft.
Fertigung: Aus Rohstoffen und Teilen werden über mehrere Stufen fertige Waren gefertigt.
Versandhaus: Von Lieferanten eingekaufte Waren werden in das Lager übernommen und an Kunden
weiterverkauft.
Fabrik mit Buchhaltung: Von Lieferanten für Geld eingekaufte Rohstoffe oder Teile werden in das Lager
übernommen, von Arbeitern für Lohn weiterverarbeitet und an Kunden zu Preisen weiterverkauft.
Liga: Mannschaften mit Spielern spielen nach einem Spielplan und stehen auf Plätzen in einer Tabelle.
Küche: In einer Küche mit Kühlschrank, der gefüllt werden muss, werden nach Rezepten Speisen gekocht.
Platzbuchungen: Fluggäste buchen die Plätze eines Verkehrsflugzeuges mit 200 Plätzen. (ebenso Theater)
Verein: Mitglieder – Geräte – Finanzen
Rechenzentrum: HW, SW, Personal, Benutzer
Geld: Kunden, Konten, Zinsen, Zahlungsverkehr
Plattenladen: Komponisten, Interpreten, Preise, Lager
Buchladen: Bücher, Autoren, Preise, Verlage, Lager, Käufer
Supermarkt: Lager, Regale, Waren, Warenkorb, Kassenbon
TFH Berlin/Steyer
Datenbankentwurf
Fertigung: Stückliste, Bestellungen, Montage
Fabrik: Einkauf, Lager, Fertigung, Verkauf, Buchhaltung
Telefonbuch: Namen, Telefonnummern, Branchen
Adressenverwaltung: Namen, Adressen, Merknale
BVG-Fahrplan: Bahnhöfe, Linien, Zeiten, Anschlüsse
Flugplan: Flughäfen, Linien, Zeiten, Anschlüsse
Zugfahrplan: Bahnhöfe, Strecken, Zeiten, Anschlüsse
Tourenplanung: Aufträge, Anlaufpunkte (z.B. Müllabfuhr)
Schulungssystem: Stoobausteine, Lehrmittel, Kurse, Dozenten
Warenwirtschaftssystem
Steuererklärung: Steuerzahler, Werbungskosten
Taxibetrieb: Fahrer, Fahrzeuge, Standorte, Kasse
Wahlen: Parteien, Stimmen, Sitze, frühere Ergebnisse
Kino/Theater: Spielplan, Plätze, Vorbestellung
Spielr, Mannschaft, Spielplan, Tabelle, Plätze
Küche: Rezepte, Artikel, Einkauf
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Kette, Stern, Spindel, Kreis
TFH Berlin/Steyer
Herunterladen