a iii datenbanksysteme und modellierung
Download
Skip this Video
Download Presentation
A III. Datenbanksysteme und Modellierung

Loading in 2 Seconds...

play fullscreen
1 / 60

A III. Datenbanksysteme und Modellierung - PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on

A III. Datenbanksysteme und Modellierung. Datenbanken als Basis betrieblicher Informationssysteme Datenmodellierung - Konzepte und Methoden Aufbau und Anwendung relationaler Datenbanksystem. Einsatz von Datenbanksystemen: Motivation und Ziele.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' A III. Datenbanksysteme und Modellierung' - milek


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
a iii datenbanksysteme und modellierung
A III. Datenbanksysteme und Modellierung
  • Datenbanken als Basis betrieblicher Informationssysteme
  • Datenmodellierung - Konzepte und Methoden
  • Aufbau und Anwendung relationaler Datenbanksystem
einsatz von datenbanksystemen motivation und ziele
Einsatz von Datenbanksystemen:Motivation und Ziele
  • Daten und Informationen als Grundlage betrieblicher Entscheidungs- und Führungsprozesse
    • Daten für Markt- und Wettbewerbsanalysen
    • Daten zur Abweichungsanalysen mit dem Ziel der Planung, Steuerung und Kontrolle
    • Kennzahlen in einem Führungsinformationssystem
  • Daten als Grundlage der operativen Massenverarbeitung, z.B.
    • Daten für die Fakturierung
    • Daten für die Erstellung des Jahresabschlusses
warum dv gest tzte datenverwaltung
Warum DV-gestützte Datenverwaltung?
  • Beispiel Verwaltung eines Studentensekretariats:
  • notwendige Informationen wie beispielsweise Name, Studienrichtung, Alter, Krankenversicherung usw. lassen sich auch mit einem Karteikasten verwalten
  • Problem der “Karteikastenorganisation”
traditionelle dateiverarbeitung
Traditionelle Dateiverarbeitung
  • Vorläufer der heutigen Datenbanktechnik war die traditionelle Dateiverarbeitung
    • Anwendungsprogramme greifen auf Dateien zu, in denen die zu verarbeitenden Daten enthalten sind
    • Datenverwaltung wird vollständig im Rahmen der Anwendungsprogramme durchgeführt, beispw. Einfügen, Löschen oder Ändern von Daten, Speicherverwaltung etc.
phasen des datenbankentwurfs
Phasen des Datenbankentwurfs
  • Grobe Vorgehensweise beim Datenbankentwurf
    • Informationsbedarfsanalyse:
      • Ermittlung, welche Informationen für die zu erfüllende Fachaufgabe relevant und in der Datenbank abzubilden sind
    • Entwurf des konzeptuellen Schemas:
      • formalisierte Beschreibung der relevanten Informationen unabhängig vom Datenbankmodell und -system
    • Entwurf des logischen Schemas:
      • Transformation des konzeptuellen Schemas in das vorliegende Datenbankmodell
grundlagen der datenmodellierung
Grundlagen der Datenmodellierung
  • Vorab allgemeine Definitionen:
    • Daten: Standardisierte Repräsentanten realer oder fiktiver Sachverhalte.
    • Modell: Zeitpunktbezogenes Abbild eines Realitätsausschnittes. Ein Modell kann nicht die ganze Realität abbilden. Von Details, die für den Zweck des Modells unrelevant erscheinen, wird abstrahiert.
grundlagen der datenmodellierung1
Grundlagen der Datenmodellierung
  • Darstellung/Beschreibung der relevanten Daten eines Unternehmens
    • aus Unternehmensgesamtsicht
    • unabhängig vom verwendeten Datenbanksystem bzw. Datenmodell
    • unabhängig von der externen Sicht und von spezifischen Anwendungen
  • Datenmodelle beschreiben anwendungsübergreifend
    • Objekte und ihre Eigenschaften auf der Basis von Fachbegriffen
    • die Beziehungen zwischen diesen Fachbegriffen
ziele der datenmodellierung
Ziele der Datenmodellierung
  • Datenmodelle haben das Ziel, die Informationsverarbeitung einer Unternehmung in bezug auf ihre Informationsobjekte verbindlich zu regeln, um
    • Zusammenhänge im Unternehmen besser zu verstehen
    • den Informationsaustausch zu verbessern durch eine standardisierte Kommunikationsbasis
      • mehrere Bedeutungen eines Begriffs: zum Beispiel Ertrag, Erfolg, Gewinn, Umsatz etc.
      • Synomyme: "Rechnung" und "Offener Posten"
ziele der datenmodellierung1
Ziele der Datenmodellierung
    • Aber: "Kulturelle Probleme" bei der Durchsetzung einer standardisierten Kommunikationsbasis!
  • eine Basis für die Anwendungsentwicklung sowie das Datenbankdesign zu schaffen, die sich an dem generierten Datenmodell orientieren.
methoden der datenmodellierung
Methoden der Datenmodellierung
  • Entity Relationship Model (ERM) basiert auf einer Entwicklung von Chen
  • ERM ist die wohl bekannteste und auch in der Praxis am häufigsten verwendete Methode zur Datenmodellierung
  • Abbildung eines Realitätsausschnittes mittels eines ERM basiert auf folgenden Elementen
    • Entity (Entität)
    • Relationsship (Beziehung)
    • Property (Attribut, Eigenschaft)
slide11

Entity, Beziehung

  • Entity
    • Definition: "a thing which can be distinctly identified" (reales Objekt, abstraktes Konzept, Ereignis)
    • Beispiele: Mitarbeiter, Abteilung, Produkt, Vorlesung DWM, Konzertbesuch usw.
  • Beziehung
    • Definition: "an association among entities"
    • Beispiele: Bestellung (Entity: Produkt, Kunde)
slide12

Attribut

  • Attribut
    • Definition: Eigenschaft, die ein Entity oder eine Beziehung beschreibt
    • Beispiele: Alter einer Person, Professor einer Vorlesung, Orchester oder Gruppe eines Konzerts
slide13

Kardinalitäten des ERM nach Chen

  • 1:1-Beziehungstyp
  • 1:n-Beziehungstyp
  • n:m-Beziehungstyp
slide14

Übertragung eines ERM in Tabellen

  • 1:n-Beziehung

Mitarbeiter

Abteilung

slide15

Übertragung eines ERM in Tabellen

  • n:m-Beziehung

Kunde

Artikel Kauft

grundlagen relationaler datenbanksysteme
Grundlagen relationaler Datenbanksysteme
  • Entwicklung von Codd [Codd 70]
  • Daten werden in Tabellen (=Relationen) dargestellt
  • Tabelle besteht aus
    • Name der Tabelle
    • Menge von Datensätzen (=Tupel)
    • Menge von Attributen; die Wertebereiche dieser Attribute werden als Domänen bezeichnet
beispiel relation kunde
Beispiel: Relation Kunde

Kontonr

Rabatt

Kunden-

Name

Strasse

PLZ

Wohnort

BLZ

nummer

(%)

Friedenstr. 34

25

Honeywell

5450

Neuwied

739495

45090000

20

Mainz

64

IBM

Kaiser-Ring 10

6500

94588324

35070000

10

35

Müller AG

Waldstr. 123

6200

Wiesbaden

5632734

51090000

20

Frankfurt

61000000

46

Epson

Rheinstr. 73

6000

63744

10

66

Schmidt KG

Sonnenstr. 243

6000

Frankfurt

8377402

87000000

15

67

Kühne&Nagel

Industriestr. 12

6200

Wiesbaden

748288

51090000

10

Flachstr. 45

6500

Mainz

8474700

47700000

99

Köbig

12

spezieller attributtyp schl ssel
Spezieller Attributtyp: Schlüssel
  • Primärschlüssel (Primary Key):
  • Attribut mit eindeutig identifizierender Eigenschaft; kann sich aus einem oder mehreren Attributen zusammensetzen. In unserem Beispiel ist die Kundennummer Primärschlüssel der Relation Kunde (Kennzeichnung durch Unterstreichung).
  • Sekundärschlüssel (Secondary Key):
  • jedes beliebige Attribut, das nicht Primärschlüssel ist und klassifizierende Eigenschaften haben kann.
spezieller attributtyp schl ssel1
Spezieller Attributtyp: Schlüssel
  • Schlüsselkandidat(Candidate Key):
  • Attribut, das nicht als Primärschlüssel verwendet wird, diese Funktion aber übernehmen könnte
  • Fremdschlüssel (Foreign Key):
  • Ein Attribut einer Relation B wird als Fremdschlüssel bezeichnet, wenn es nicht Primärschlüssel von B ist, aber Primärschlüssel der Relation A ist.
beispiel f r einen datenbankentwurf
Beispiel für einen Datenbankentwurf

Tabelle: KUNDE

KNr Firma Straße Postleitzahl Ort Status

Tabelle: AUFTRAG

ANr KNr ADatum LDatum

Tabelle: BESTELLT

ANr PNr Menge VPreis

Tabelle: PRODUKT

PNr BezeichnungPreis

Tabelle: LAGER

PNrOrt Menge

normalisierung von relationen
Normalisierung von Relationen
  • Ziele der Normalisierung
    • Integritätssicherung
    • Redundanzfreie Speicherung
    • "lesbare" Relationen generieren
    • Normalisierung wird durch Zerlegung von Relationen erreicht.
normalisierung von relationen1
Normalisierung von Relationen
  • im folgenden: Demonstration des Prozesses der Normalisierung anhand eines Beispiels
  • Die Tabelle zur Darstellung von Lieferanten einer Unternehmung sei nun durch folgende Attribute beschrieben.
  • Lieferant (Lieferanten#, Lieferantenname, Straße, PLZ, Wohnort, Kontonummer, BLZ, Bank, Teilenummern, Teilenamen)
die 1 normalform 1nf
Die 1. Normalform (1NF)
  • Eine Relation befindet sich in 1. Normalform (1NF), wenn alle Attributwerte atomar sind.
  • Bedingung erfüllt?
  • Lösungsmöglichkeiten
zerlegung der relation
Zerlegung der Relation
  • Überführung der Relation in 1NF durch Zerlegung der Relation LIEFERANT in zwei Relationen
  • Relation Lieferant (Lieferanten#, Lieferantenname, Straße, PLZ, Wohnort, Kontonummer, BLZ, Bank).
  • Relation Lieferung (Lieferanten#, Teil#, Teilname,Menge, Datum)
  • Diese Relationen genügen der ersten Normalform (1NF).
die 2 normalform 2nf
Die 2. Normalform (2NF)
  • Eine Relation befindet sich in der zweiten Normalform, wenn sie sich in 1NF befindet und jedes Attribut vom gesamten Primärschlüssel (und nicht nur von Teilen des Primärschlüssels) voll funktional abhängig ist.
  • Bedingung erfüllt?
weitere zerlegung der relation
Weitere Zerlegung der Relation
  • Es ist also eine dritte Relation TEILE einzuführen. Das Relationenschema hat nun folgendes Aussehen und befindet sich in 2NF:
  • Relation Lieferant (Lieferanten#, Lieferantenname, Strasse, PLZ, Wohnort, Kontonummer, BLZ, Bank).
  • Relation Lieferung (Lieferanten#, Teil#, Menge, Datum).
  • Relation Teile (Teil#, Teilname).
die 3 normalform 3nf
Die 3. Normalform (3NF)
  • Ein Relationenschema befindet sich in der dritten Normalform (3NF), wenn es sich in 2NF befindet und zudem keine transitiven Abhängigkeiten aufweist.
  • Unter transitiver Abhängigkeit versteht man die funktionale Abhängigkeit eines Nicht-Schlüsselattributes einer Relation R von einem anderen Nicht-Schlüsselattribut in R.
  • Eine solche funktionale Abhängigkeit besteht in der Relation LIEFERANT bezüglich BLZ => Bank. Da BLZ nicht Primärschlüssel der Relation LIEFERANT ist, handelt es sich um eine transitive Abhängigkeit.
ergebnis relationsschema in 3nf
Ergebnis:Relationsschema in 3NF
  • Wir erhalten nun folgendes Relationenschema, das in 3NF vorliegt:
  • Relation Lieferant (Lieferanten#, Lieferantenname, Strasse, PLZ, Kontonummer, BLZ).
  • Relation Lieferung (Lieferanten#, Teil#,Menge, Datum).
  • Relation Teile (Teil#, Teilname).
  • Relation Bank (BLZ, Bankname)
  • Relation Ort (PLZ, Wohnort)
beurteilung der normalisierung
Beurteilung der Normalisierung
  • Vorteile der Normalisierung
    • Redundanzfreie Speicherung,
    • d.h. jedes Faktum ist nur einmal in der Datenbank gespeichert
    • Sicherung der Integrität:
    • Integrität bedeutet, daß keine sich widersprechenden Fakten in der Datenbank gespeichert sind.
beurteilung der normalisierung1
Beurteilung der Normalisierung
  • Nachteile der Normalisierung
    • Normalisierungsaufwand
    • Schlechteres Laufzeitverhalten bei der Zusammenfügung (Join) mehrerer Relationen
  • beim Datenbankentwurf sind somit die "Kosten" und "Nutzen" der Normalisierung abzuwägen
  • Normalisierung bis 3NF (oder weniger!) ist in der Regel ausreichend
datenmanagement auf der basis der relationalen sprache sql
Datenmanagement auf der Basis der relationalen Sprache SQL
  • SQL (Structured Query Language) ist die Standardsprache für relationale Datenbanken
  • Normierung von SQL durch ISO und ANSI
  • bildet die Basis aller gängigen relationalen Datenbanksysteme
die relationale sprache sql
Die relationale Sprache SQL
  • SQL als
    • Data Definiton Language:
    • Anlegen von Tabellen/Relationen
    • Data Manipulation Language:
    • Ändern der Daten in Tabellen/Relationen
    • Query Language:
    • Generierung von Abfragen zur Extraktion von Daten aus einer oder mehreren Tabellen/Relationen
sql als data definition language
SQL als Data Definition Language
  • Aufgabe der Data Definition Language (DDL; synonym: Data Description Language): Generierung des intensionalen Relationenschemas
  • SQL als DDL beinhaltet drei grundlegende Befehle
    • Anlegen einer Relation (create)
    • Ändern des Schemas einer Relation (alter)
    • Löschen einer Relation (drop)
anlegen einer relation
Anlegen einer Relation
  • SQL-Befehl zum Anlegen des intensionalen Schemas einer Relation:
  • CREATE TABLE <tablename>
  • (<attributname_1> <datentyp_1>, <attributname_2> <datentyp_2>, ...<attributname_n> <datentyp_n>);
  • Beispiel: Anlegen einer Relation Auftrag, die aus den Attributen Auftragsnummer, Kundennummer, Datum und Mitarbeiternummer des Kundenbetreuers besteht:
  • CREATE TABLE AUFTRAG
  • (auftrags_no number(4) not null,
  • kunden_no number(4),
  • datum date,
  • mitarbeiter_no number(4));
allgemeine datentypen
Allgemeine Datentypen
  • number (x) = ganzzahliger numerischer x- stelliger Wert
  • number (x,y) = numerischer Wert mit x-y Vorkomma- und y Nachkommastellen
  • char(x) = alphanumerische Zeichenkette mit x Zeichen
  • date = Datum
sql als data manipulation language
SQL als Data Manipulation Language
  • SQL als DML dient der Veränderung der extensionalen Datensicht und beinhaltet drei grundlegende Befehle:
  • Einfügen von Tupeln (insert)
  • insert into <tablename> values (<wert_1>, <wert_2>, ..., <wert_n>);
  • Ändern von Tupeln (update)
  • update <tablename> set <attributsname> = <arithmetischer Ausdruck>
  • Löschen von Tupeln (delete)
  • delete from <tablename> where <bedingung>
beispiele f r sql befehle anlegen einer tabelle
Beispiele für SQL-Befehle:Anlegen einer Tabelle
  • Anlegen einer Tabelle Mitarbeiter mit den Attributen
  • Mitarbeiter
  • M_Nr number (3)
  • Name char (20)
  • Abt_Nr number (3)
  • Gehalt number (5)
  • Geschlecht char (10)
  • SQL> create table Mitarbeiter (M_Nr number (3), Name char (20), Abt_Nr number (3), Gehalt number (5), Geschlecht char (10))
beispiele f r sql befehle einf gen von datens tzen
Beispiele für SQL-Befehle:Einfügen von Datensätzen

insert into mitarbeiter values (1, “Müller”, 1, 2500, “männlich”)

beispiele f r sql befehle ndern von tabellen
Beispiele für SQL-Befehle:Ändern von Tabellen

Beispiel 1: Alle Mitarbeiter bekommen von jetzt an 1 Prozent mehr Gehalt

SQL>update mitarbeiter set gehalt = gehalt*1,01

beispiele f r sql befehle ndern von tabellen1
Beispiele für SQL-Befehle:Ändern von Tabellen

Beispiel 2: Alle Mitarbeiter der Abteilung 1 bekommen 10 Prozent mehr Gehalt

SQL>update mitarbeiter set gehalt = gehalt*1,1 where Abt_Nr=1

beispiele f r sql befehle ndern von tabellen2
Beispiele für SQL-Befehle:Ändern von Tabellen

Beispiel 3: Alle Mitarbeiter der Abteilung 1, die weiblich sind, bekommen 100 DM mehr Gehalt

SQL>update mitarbeiter set gehalt = gehalt + 100 where Abt_Nr=1 and Geschlecht="weiblich"

beispiele f r sql befehle l schen von datens tzen
Beispiele für SQL-Befehle:Löschen von Datensätzen

Beispiel: Abteilung 1 wird geschlossen und keiner der Mitarbeiter wird weiterbeschäftigt

SQL>delete from mitarbeiter where Abt_Nr=1

spezielle zus tze f r datentypen zur integrit tssicherung
Spezielle Zusätze für Datentypen zur Integritätssicherung
  • not null => Attribut muß für jeden Tupel einen Wert haben
  • unique => Attribut darf für verschiedenen Tupel keine identischen Werte haben
  • primary key => not null und unique
  • references => sichert Integrität bei Fremdschlüsselbeziehungen
  • check => definiert Wertebereiche einer Domäne
beispiel
Beispiel

SQL> create table bankleitzahl (blz number(10) primary key, bankname char (20));

SQL > create table mitarbeiter(

pers_nr number(5) primary key,

nachname char(20), vorname char(15),

geschlecht char(10), strasse char(20),

plz number(5), wohnort char(20),

blz number(10) references bankleitzahl,

abt_nr number(2), gehalt number(7)

check(gehalt between 2000 and 1000000));

sql als query language ql
SQL als Query Language (QL)
  • Query Language: Abfragesprache zur Extraktion von Daten bzw. Informationen aus der Datenbank
  • => Anwendung des Select-Befehls
  • Einfachster Select-Befehl: Vollständige Anzeige aller Tupel einer Relation
  • => select * from <tablename>
beispiele f r sql befehle
Beispiele für SQL-Befehle
  • Beispiel: Anzeige der kompletten Relation Mitarbeiter
  • SQL > select * from mitarbeiter;
  • Mitarbeiter
selektionsoperatoren
Selektionsoperatoren
  • Select-Grundoperatoren
    • Projektion
    • Selektion
    • Join
allgemeine operatoren projektion
Allgemeine Operatoren: Projektion
  • Projektion: generiert aus einer Relation B eine Relation A, indem eine Teilmenge der Attribute der Relation B in A eingehen.
  • SQL> select <attributname_1>, <attributname_2>,<attributname_n> from <tablename>
  • Beispiel: Auswahl der Attribute pers_nr, vorname, nachname und gehalt aus der Relation Mitarbeiter
projektion
Projektion
  • SQL >select pers_nr, vorname, nachname, gehalt from mitarbeiter;
  • Werden durch eine Projektion mehrere identische Tupel generiert, so sind die identischen Tupel nach der relationenlehre zu entfernen. Diese Forderung wird von den meisten relationalen Datenbanken jedoch nicht unterstützt.
projektion1
Projektion
  • SQL> select position from MITARBEITER;
  • Position
  • Techniker
  • Kundenbetreuer
  • Kundenbetreuer
  • Kundenbetreuer
  • ...
  • Um wirklich nur die unterschiedlichen Berufe zu erhalten, ist folgender SQL-Befehl auszuführen:
  • SQL> select distinct(position) from MITARBEITER;
  • Position
  • Techniker
  • Kundenbetreuer
  • Rechnungswesen
selektion
Selektion
  • Selektion: generiert aus einer Relation B eine Relation A durch Bildung einer Teilmenge der Tupel, die einer bestimmten Bedingung genügen
  • SQL> select * from <tablename> where <bedingung>
  • Beispiel: Auswahl aller Mitarbeiter der Abteilung 3
  • SQL >select * from mitarbeiter where abt_nr=3;
sql logische und arithmetische operatoren
SQL: Logische und arithmetische Operatoren
  • SQL unterstützt die logischen Operatoren
  • and
  • or
  • not
  • SQL unterstützt die arithmetischen Operatoren
  • =
  • >
  • <
  • >=
  • <=
  • !=
beispiele f r die anwendung logischer und artithmetischer operatoren
Beispiele für die Anwendung logischer und artithmetischer Operatoren

Auswahl aller Mitarbeiter, die in Abteilung 3 arbeiten und weiblich (geschlecht=2) sind

SQL>select * from mitarbeiter where abt_nr=3 and geschlecht=2;

Auswahl aller Mitarbeiter, die entweder in Abteilung 3 oder Abteilung 4 arbeiten

SQL>select * from mitarbeiter where abt_nr=3 or abt_nr=4;

beispiele f r die anwendung logischer und artithmetischer operatoren1
Beispiele für die Anwendung logischer und artithmetischer Operatoren
  • Auswahl aller Mitarbeiter, die ein Gehalt zwischen 4000 und 5000 DM beziehen und weiblich sind, oder die ein Gehalt zwischen 5000 und 6000 DM beziehen und männlich sind
  • SQL>select * from mitarbeiter where (gehalt>4000 and gehalt<5000 and geschlecht=2) or (gehalt between 5000 and 6000 and geschlecht=1);
slide56
Join
  • Der Join-Operator verbindet zwei oder mehr Relationen über Attribute zu einer neuen Relation.
  • SQL>select <attributname_1>, <attributname_2>, ..., <attributname_n> from <tablename_1>, <tablename_2>, ..., <tablename_m> where <Join-Bedingung>
  • Existieren in verschiedenen zu verbindenden Relationen Attribute mit identischem Namen, ist diesen Attributen der Name der zugehörigen Relation (gefolgt von einem Punkt) voranzustellen (siehe folgendes Beispiel)
slide57
Join

SQL >select Kunden-Nr., Name, PLZ, Ort, KUNDE.BLZ, Konto, Bankname from KUNDE, BANK where KUNDE.BLZ=BANK.BLZ

slide59
Join
  • SQL> select Pers_nr, Nachname, Vorname, Mitarbeiter.Abt_nr, Bezeichnung, Konto_Nr, Mitarbeiter.BLZ, Bankname from Mitarbeiter, Abteilung, Bank where Mitarbeiter.Abt_nr=Abteilung.Abt_nr and Mitarbeiter.BLZ=Bank.BLZ
spezielle operatoren sortieren von datens tzen
Spezielle OperatorenSortieren von Datensätzen
  • Am Ende des Select-Statements steht der Zusatz
  • =>order by <column> [desc];
  • Beispiel: Absteigendes (durch den Zusatz “desc”) Sortieren der Relation Kunde nach dem Namen:
  • SQL> select * from kunde order by Kundenname desc;
ad