Wirtschaftsinformatik (Bachelor-Studiengang): Betriebliche Datenmodellierung und Datenbankanwendungen (2. Semester)

Sie sind hier: StartseiteWirtschaftsinformatikBetriebliche Datenmodellierung und Datenbankanwendungen

IC / CM, Kurs vom 01.10.2002 - 31.03.2003

Betriebliche Datenmodellierung und Datenbankanwendungen: Einführung (Information als geschäftsentscheidender Faktor, Informationsinfrastruktur, Mengen, Produkte, Relationen), Relationenmodell (Mathematische Interpretation, Darstellungsarten für Relationenschemata, Schlüssel, Fremdschlüssel, Funktionale Abhängigkeiten und Schlüssel, Erste Normalform, Zweite Normalform, Dritte Normalform), Modellierung, Relationenalgebra (Relationenmodell, Relationenoperatoren).

  1. Einführung
  2. Relationenmodell
  3. Modellierung
  4. Relationenalgebra

Einführung

Information als geschäftsentscheidender Faktor

  1. Beispiele
    • Banken
    • Versicherungen
    • Versandhandel
    • Krankenhäuser
    • Ämter
    • Unternehmen allgemein
  2. Korrektheit
  3. Verfügbarkeit
  4. Daten / Informationen

Informationsinfrastruktur

  1. Klassische Infrastrukturen
    • Straßennetz
    • Wasserversorgung
    • Telefon
  2. Eigenschaften
    • Langlebigkeit
    • Partielle Erneuerung
    • Koexistenz von Alt und Neu
  3. Ursachen für partielle Erneuerung
    • Technischer Fortschritt
    • Unternehmenswachstum
    • Strategiewechsel bei der Geschäftsdurchführung
    • Unternehmensübernahmen, -zusammenschlüsse
  4. Probleme von betrieblichen Informationsinfrastrukturen
    • Redundanz
    • Inkonsistenz

Mengen, Produkte, Relationen

  1. Mengen
  2. Kartesisches Produkt
    • Menge von Paaren für zwei Mengen M und N
    • M × N = {(m,n) | m ∈ M, n ∈ N}
  3. Relationen
    • Teilmenge des karthesischen Produkts
    • R ⊆ M × N
    • Linkstotal: ∀ m ∈ M ∃ n ∈ N: (m,n) ∈ R
    • Rechtstotal: ∀ n ∈ N ∃ m ∈ M: (m,n) ∈ R
    • Rechtseindeutig: ∀ n1, n2 ∈ N: (m,n1) ∈ R, (m,n2) ∈ R ⇒ n1 = n2
    • Linkseindeutig: ∀ m1, m2 ∈ M: (m1,n) ∈ R, (m2,n) ∈ R ⇒ m1 = m2

Linkstotal: alle Elemente einer linken Menge (M) haben eine Beziehung zu Elementen der rechten Menge (N).

Rechtstotal: alle Elemente einer rechten Menge (N) haben eine Beziehung zu Elementen der linken Menge (M).

Rechtseindeutig: einem Element der linken Menge dürfen nicht zwei Elemente der rechten Seite zugeordnet sein.

Linkseindeutig: einem Element der rechten Menge dürfen nicht zwei Elemente der linken Seite zugeordnet sein.

Funktionen (spezielle Relationen):

  • Partielle Funktion: Rechtseindeutig
  • Partielle injektive Funktion: Rechtseindeutig, Linkseindeutig
  • Partielle surjektive Funktion: Rechtseindeutig, Rechtstotal
  • Partielle bijektive Funktion: Rechtseindeutig, Linkseindeutig, Rechtstotal
  • Totale Funktion: Rechtseindeutig, Linkstotal
  • Totale injektive Funktion: Rechtseindeutig, Linkstotal, Linkseindeutig
  • Totale surjektive Funktion: Rechtseindeutig, Linkstotal, Rechtstotal
  • Totale bijektive Funktion: Rechtseindeutig, Linkstotal, Linkseindeutig, Rechtstotal

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Relationenmodell

Zentrales Element: Tabelle = Tabellenstruktur + Tabelleninhalt

Relationenmodell

Bildbeschreibung "Relationenmodell": Tabellenname = Student. Spaltenname (= Attributname = Feldname) = Matrikelnummer, Name, Vorname. Schlüsselattribut (unterstrichen) = Matrikelnummer. In jeder Zeile der grafisch dargestellten Tabelle steht ein Datensatz, auch Tupel genannt. Beispiel 1: 93129, Meier, Hans (Matrikelnummer, Name, Vorname).

Spaltentyp = Attributtyp = Felddatentyp = Domain = Wertebereich

Mathematische Interpretation

Tabellenstruktur (Relationenschema):

  • Tabellenname + Attributnamen + Wertebereiche der Attribute
  • Schreibweise: R(A1, ..., An)

Tabelleninhalt:

  • Menge der Datensätze + Zuordnung der Datenwerte

Menge der Datensätze:

  • Schreibweise: D = { d1, ..., dk }
  • D entspricht der Menge der Speicheradressen der Datensätze

Zuordnung der Datenwerte:

  • Partielle Funktion
  • Schreibweise: A: D -> Wertebereich(A)
  • A ist ein Attributname aus dem Relationenschema
  • Ordnet jedem Speicherplatz den darin gespeicherten Wert zu
  • Kann Nullwerte handhaben

Beispiel Studenten:

  • Relationenschema: Student(MatrNr, Name, Vorname)
  • Datensätze: D = { d1, ..., d4 }
  • Wertebereich(MatrNr) = VARCHAR(15)
  • Wertebereich(Name) = VARCHAR(200)
  • Wertebereich(Vorname) = VARCHAR(200)
  • MatrNr = { (d1,93129), (d2,92187), (d3,96089), (d4,98017) }
  • Name = { (d1,"Meier"), (d2,"Müller"), (d3,"Schulze"), (d4,"Lehmann") }
  • Vorname = { (d1,"Hans"), (d2,"Frank"), (d4,"Simone") }

Darstellungsarten für Relationenschemata

Tabellarische Darstellung:

Tabellarische Darstellung

Bildbeschreibung "Tabellarische Darstellung": Spalte 1: Student (Tabellenname), Spalte 2: Matrikelnummer, Spalte 3: Name, Spalte 4: Vorname.

Mathematische Darstellung:

Mathematische Darstellung

Bildbeschreibung "Mathematische Darstellung": Student(Matrikelnummer, Name, Vorname)

Graphische Darstellung:

Graphische Darstellung

Bildbeschreibung "Graphische Darstellung": Darstellung über ein Rechteck. Diese beinhaltet: Titel = Student, Attribute = Matrikelnummer als Varchar(15), Name als Varchar(200) und Vorname als Varchar(200).

Datenbank-Skript:

Datenbank-Skript

Bildbeschreibung "Datenbank-Skript": Create table Student {...}. Zwischen den Klammern stehen dann die Angaben der graphischen Darstellung sowie die Definition des Primärschlüssels.

Schlüssel

Projektion auf Spalten:

Gegeben:

  • Ein Relationenschema R(A1, ..., An)
  • Ein Menge von Datensätzen D = { d1, ..., dk }
  • Ein Datensatz di ∈ D
  • Eine Liste L mit Attributen aus dem Relationenschema R

Projektion der Attribute aus L auf den Datensatz di:

  • Schreibweise: di[L]

Beispiel:
L = { Name, Vorname }
d2[L] = d2[Name, Vorname] = ("Müller", "Frank")

Schlüssel:

  • Attribute, die jeden Datensatz einer Tabelle eindeutig identifizieren
  • Definition: ∀d1,d2∈D: d1[L] = d2[L] ⇒ d1 = d2
  • Ein Primarschlüssel wird aus der Menge der Schlüssel ausgewahlt
  • Besteht ein Schlüssel aus mehr als einem Attribut, so ist er ein zusammengesetzter Schlüssel
  • Beispiel: L = { MatrNr }

Fremdschlüssel

Ein Fremdschlüssel identifiziert Zeilen in einer anderen (fremden) Tabelle.

Gegeben R(A1, ..., An) und V(B1, ..., Bk): Ist ein Ai ein Fremdschlüssel in R, der auf den Primärschlüssel B1 in V verweist, so müssen Ai und B1 den gleichen Wertebereich haben und alle Werte in der Spalte Ai müssen in der Spalte B1 vorkommen (referenzielle Integrität).

Ist der Primärschlüssel zusammengesetzt, so auch der Fremdschlüssel.

Beispiel: SG ist Fremdschlüssel im Relationenschema Student und verweist auf das Attribut KurzBez im Relationenschema Studiengang

Fremdschlüssel

Bildbeschreibung "Fremdschlüssel": Die Tabelle wird ergänzt um die Spalte Studiengang, kurz: SG. Dieses Attribut verweist auf eine zweite Tabelle, die Tabelle Studiengang. In dieser stehen zeilenweise die unterschiedlichen Studiengänge mit einer zugehörigen Kurzbezeichnung. Diese Kurzbezeichnung ist in der zweiten Tabelle Primärschlüssel, in der ersten Tabelle Fremdschlüssel.

Funktionale Abhängigkeiten und Schlüssel

Schlüssel:

Identifizieren eindeutig die Datensätze (Zeilen) einer Tabelle.

Nicht-Schlüssel-Attribute:

Sind die Attribute, die nicht zum Schlüssel gehören.

Funktionale Abhängigkeit:

Ein Attribut B ist funktional von einem Attribut A abhängig, wenn die Werte von B durch die Werte von A bestimmt werden.
Alle Attribute sind funktional vom Schlüssel abhängig.

Volle funktionale Abhängigkeit vom Schlüssel:

Nicht-Schlüssel-Attribute sind voll funktional abhängig vom Schlüssel, wenn sie nicht schon von einem Teil des Schlüssels funktional abhängig sind.

Erste Normalform

Definition: Alle Attribute sind atomar, d.h. sie dürfen selbst keine Tabellen sein.

Gegenbeispiel:

Gegenbeispiel Erste Normalform

Bildbeschreibung "Gegenbeispiel Erste Normalform": In der ersten Normalform dürfen Attribute selbst keine Tabellen sein!

Zweite Normalform

Definition:

  • Ist in erster Normalform.
  • Alle Nicht-Schlüssel-Attribute sind voll funktional abhängig vom Schlüssel.

Erläuterung:

  • Zusammenfassung aller zusammengehörenden Fakten
  • Vermeidung von Einfüge-, Lösch-, Änderungsanomalien

Gegenbeispiel:

Gegenbeispiel Zweite Normalform

Bildbeschreibung "Gegenbeispiel Zweite Normalform": In der zweiten Normalform sind alle Nicht-Schlüssel-Attribute voll funktional abhängig vom Schlüssel.

Dritte Normalform

Definition:

  • Ist in zweiter Normalform.
  • Es gibt keine funktionale Abhängigkeit zwischen Nicht-Schlüssel-Attributen.

Erläuterung:

  • Keine transitiven Abhängigkeiten
  • Trennung nicht zusammengehörender Fakten
  • Vermeidung von Einfüge-, Lösch-, Änderungsanomalien

Gegenbeispiel:

Gegenbeispiel Dritte Normalform

Bildbeschreibung "Gegenbeispiel Dritte Normalform": In de dritten Normalform gibt es keine funktionale Abhängigkeit zwischen Nicht-Schlüssel-Attributen.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Modellierung

Zweckgebundene Beschreibung eines Gegenstandsbereichs (Realität) in einer formalisierten Form.

Datenmodellierung:

Modellierung von Informationsstrukturen.
(Zweck: z.B. Verstehen der Informationsstrukturen, Implementierung in Datenbanksystemen)

Modellierung

Bildbeschreibung "Modellierung": Die Realität wird in einem Datenmodell beschrieben und in einer Datenbank abgebildet.

Entity Relationship-Modellierung

  • Kurzform: ER-Modellierung
  • Modellierung von
    • Dingen
    • Attributen (von Dingen)
    • Beziehungen (zwischen Dingen)
  • Modell / Schema

Konzepte

Bildbeschreibung "Konzepte": Zwei Entities. Erstens: Entity-Typ-Name = Student, Entity-Typ beinhaltet das Schlüssel-Attribut Matrikelnummer sowie die Attribute Name und Vorname; Rolle = studiert in. Zweitens: Entity-Typ-Name = Studiengang, Entity-Typ beinhaltet das Schlüssel-Attribut Kürzel sowie das Attribut Bezeichnung; Rolle = beinhaltet. Der Beziehungstyp zwischen den beiden Entities lautet studiert.

Generalisierung:

Generalisierung

Bildbeschreibung "Generalisierung": Ein Nutzer hat die Attribute Nutzer-Nummer, Name und Vorname. Es gibt zwei Arten von Nutzern: Erstens den Studenten und zweitens den Professor. Der Student hat das zusätzliche Attribut Matrikelnummer, der Professor das Attribut Personalnummer.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Relationenalgebra

Relationenmodell

Die Grundlage des Relationenmodells bilden Tabellenstrukturen mit ihren Spalten und Zeilen.

Relationenschema:

Ein Relationenschema R(A1, ..., An) ist durch einen Relationennamen R und eine Menge von Attributen {A1, ..., An} gegeben. Attribute werden auch Spalten oder Felder genannt. Jedem Attribut Ai ist ein Wertebereich dom(Ai) zugeordnet, wobei Wertebereiche natürliche Zahlen, Zeichenketten, Datumsangaben usw. sein können.

Tabellen:

Eine Tabelle T zu einem Relationenschema R(A1, ..., An) ist durch eine Menge von Zeilen {z1, ..., zk} und eine Menge von partiellen Attributfunktionen Ai : T → dom(Ai) gegeben für alle i ∈ 1, ..., n. Jede Attributfunktion Ai : T → dom(Ai) ordnet jeder Zeile zj der Tabelle T den Wert des Attributs in dieser Zeile zu. Ist die Attributfunktion für eine Zeile nicht definiert, so liegt für das entsprechende Attribut kein Wert vor. Das entspricht einem Nullwert in relationalen Datenbanksystemen.

Relationenoperatoren

Im folgenden werden die Operatoren Projektion, Selektion und Produkt definiert. Die Operatoren werden sowohl auf Relationenschemata angewendet und ergeben dann ein Ergebnisschema als auch auf entsprechende Tabellen und ergeben dann eine Ergebnistabelle.

  • Das Ergebnisschema wird immer mit Rerg bezeichnet.
  • Die Ergebnistabelle wird immer mit Terg bezeichnet.

Des weiteren werden folgende Objekte definiert:

  • Zwei Relationenschemata R(A1, ..., An) und S(B1, ..., Bm)
  • Eine Tabelle T = {z1, ..., zk} zum Schema R
  • Eine Tabelle T' = {y1, ..., yl} zum Schema S
  • Eine Zeile z aus Tabelle T und eine Zeile y aus Tabelle T'
  • Eine Teilmenge {A1*, ..., Ap*} der Attribute aus {A1, ..., An}

Projektion:

Die Projektion von R auf die Attribute A1*, ... Ap* wird R[A1*, ... Ap*] geschrieben und ergibt das Relationenschema Rerg(A1*, ... Ap*). Die Tabelle Terg ist gleich T, d.h. die Zeilen und die in der Projektion enthaltenen Attribute bleiben unverändert.

Selektion:

Die Selektion von R bezüglich einer Bedingung C wird R<C> geschrieben und ergibt das Relationenschema Rerg(A1, ... An). Das Ergebnisschema enthält dieselben Attribute wie das Ausgangsschema. Die Tabelle Terg enthält alle Zeilen aus T, die die Bedingung C erfüllen. Die Attribute bleiben unverändert.

Der Ausdruck für die Bedingung C kann entsprechend der folgenden Grammatik gebildet werden. Die Symbole der Grammatik bedeuten:

  • Links von dem Gleichheitszeichen steht die zu definierende syntaktische Einheit
  • Rechts davon steht die Definition
  • Das Symbol | bedeutet oder
  • Runde Klammern dienen zur Zusammenfassung von Teilausdrücken
  • Symbole in Kursivschrift sind Literale, d.h. stehen für sich selbst

Produkt:

Das Produkt von R und S wird R,S geschrieben und ergibt das Relationenschema Rerg(R.A1, ..., R.An, S.B1, ..., S.Bm). Die Tabelle Terg ist das kartesische Produkt von T und T'. Die Attribute berechnen sich wie folgt: Sei X ein Attribut aus Rerg und x = (z,y) eine Zeile aus Terg.

Produkt

Bildbeschreibung "Produkt": Formel. X(x) wird abgebildet durch Ai(z) falls X = R.Ai und Bj(y) falls X = S.Bj.

Der Schemaname R oder S kann vor dem Attribut weggelassen werden, wenn der Attributname im Ergebnisschema eindeutig ist.

Relationenoperatoren (Übersicht)
Schreibweise Ergebnisschema Ergebnistabelle
Projektion R[A1*, ... Ap*] Rerg(A1*, ... Ap*) Terg = T
Selektion R<C> Rerg(A1, ... An) Terg ⊆ T
Produkt R,S Rerg(R.A1, ..., R.An, S.B1, ..., S.Bm) Terg = T × T'

Relationenschemata können mit dem Symbol → umbenannt werden. Z.B. werden in dem Produkt R → R1, S → R2 die Relationenschemata R und S in R1 bzw. R2 umbenannt. Umbenennungen können auch auf Attribute angewendet werden. Sie sind notwendig, um eindeutige Namen zu erzeugen.

Spaltenberechnungen:

Die Ergebnisspalten bei der Anwendung von Relationenoperatoren ergeben sich immer direkt aus den Spalten der zugrundeliegenden Relationenschemata. Um innerhalb von Spalten Berechnungen durchführen zu können, müssen Spaltennamen durch Spaltenausdrücke ergänzt werden.

Spaltenausdrücke werden entsprechend der folgenden Grammatik gebildet und können überall dort stehen, wo auch Attribute erlaubt sind.