Inhaltsverzeichnis         

1 Theoretische Grundlagen

1.1 Was sind Datenbanken ?



Definition

Datenbank

Datenbanken sind Sammlungen von Informationen mit definierten Zugriffssystemen. Das Zugriffssystem umfasst Mittel und Methoden zum:

  • Hinzufügen und Löschen von Informationen in der Datensammlung

  • effizienten Zugriff auf einzelne Informationen in der Sammlung



Beispiele für klassische Datenbanken

1.2 Klassifizierung der Datenbanken

Datenbanken können bezüglich des Zugriffssystem, der gespeicherten Information und der Softwarearchitektur klassifiziert werden:

Struktur der Datensammlung

Typ der Information

Softwarearchitektur

  • Hierarchische Datenbanken

  • Netzorientierte Datenbanken

  • Relationale Datenbanken

  • Datensätze

  • Objekte (Daten + Methoden)

  • Texte

  • Multimediadaten wie Bild- und Audiodaten

  • Client/Server (z.B. MySQL)

  • Verteiltes Datenbanksystem (z.B. Active Directory mit Replikation, oder DNS)

1.3 Dateien als Datenbanken

In der Urform der Datenbanken ist das Zugriffssystem nahtlos in die Anwendung integriert. Jede Anwendung hat ihr eigenes Zugriffssystem. Folglich kann jede Anwendung nur die von ihr selbst erstellten Dateien lesen. Zum Informationsaustausch zwischen den Anwendungen müssen Konvertierungprogramme erstellt werden.




1.4 Datenbanksysteme

Die Anwendung greift nicht mehr direkt, sondern über eine zwischengeschaltete Anwendung, dem Datenbankmanagmentsystem (DBMS) zu. Das DBMS kann zu diesem Zweck eine standardisierte Schnittstelle anbieten wie z.B. SQL. Dadurch entsteht eine Trennung von Informationsspeicherung und Informationsverarbeitung. Dies hat folgende Vorteile:

  1. Auf eine Datensammlung können verschiedene Anwendungen unterschiedlicher Hersteller zugreifen

  2. Dateiformat ist unabhängig von den Anwendungen. So können effizientere und sicherere Speicherformate eingeführt werden, ohne das die Anwendungen davon etwas merken.

  3. Speicherort der Dateien ist unabhängig von den Anwendungen.


Dieses Prinzip ist zu komplexen Softwaresystemen ausgebaut worden, genannt Datenbanksystemen.




1.5 Bekannte Datenbanksysteme

Produkt

Hersteller

Beschreibung

Access

Microsoft

  • Relationales DBMS + IDE rein

  • Schnittstelle: MS- Query, SQL, VBA

  • aktuelle Version XP

  • Kein Benutzerrechte in der DB definierbar

MySQL

 

  • Realtionales DBMS, Server

  • aktuelle Version

  • Schnittstelle: SQL

  • ODBC und JDBC- Treiber verfügbar (kostenlos !)

  • Verschiedene Speicherengines, die für spezielle Einsatzzwecke optimiert sind. Die native Engine ist MyISAM

  • Zugriffsrechte können pro Benutzer und Rechner, von dem aus die Anmeldung erfolgt definiert werden

  • Zugriffsrechte können auf Datenbanken bis hinunter auf Tabellenspalten definiert werden

  • Wird von Scriptsprachen wie PHP und Perl dierekt unterstützt

  • Für privaten Einsatz und geschäftlichen Einsatz als Standalone- Server ohne Herstellersupport kostenlos

  • Keine Check Constraints, keine Fremdschlüsselüberprüfung in MyISAM

  • Max. Größe eines Datensatzes = 8KB (Ausnahme: BLOB und TEXT Daten)

  • Unterstüzt keine Transaktionen (

  • Keine Subselects und Stored Procedures mit MyISAM

  • Keine Datenbankvorlagen möglich

  • Keine Authentifikation über Windows- Benutzerkonten möglich

MS SQL Server

Microsoft

  • Relationales DBMS, Server

  • aktuelle Version: 2008

  • Schnittstelle: SQL, XML, .NET mit LINQ

  • ODBC – Treiber vorhanden

  • ACID Transaktionen

  • Views, Subselects, UDF's, UDT's und Stored Procedures

  • Zugriffsrechte können pro Benutzermeldung erfolgt definiert werden

  • Authentifikation über Windows- Benutzerkonten möglich

  • Zugriffsrechte können auf Datenbanken bis hinunter auf Tabellenspalten definiert werden

  • Kostenlose SqlExpress Version für privaten und geschäftlichen Einsatz ohne Herstellersupport

  • Datenbankvorlagen (modellDb) definierbar

  • einfache Installation

  • teure Lizenzen Versionen, die mehr als 4GB Daten speichern, und mehrere CPU- Cores nutzen können

Oracel 9i

Oracle

  • Relationales DBMS, Server

  • aktuelle Version 9.1

  • Schnittstelle: SQL, XML

DB2

IBM

  • Relationales DBMS, Server



1.6 Datenbanktechnologie

1.6.1 OLTP (Online- Transaction Processing)

Viele Benutzer greifen gleichzeitig auf Online- Datenbanken zu. Bsp.:

1.6.2 Batchverarbeitung

1.7 Ziele der Datenbankentwicklung

Definition

Konsistenz

Unter Konsistenz in Zusammenhang mit Datenbanken wird die Widerspruchsfreiheit zwischen den Daten der Datenbank und dem durch diese abgebildeten Weltausschnitt verstanden

Die Konsistenz ist z.B. verletzt, wenn ein Mitarbeiter in einer Firma nicht mehr beschäftigt ist, und trotzdem ein Datensatz für ihn in der Tabelle "Personal" geführt wird.

Die Konsistenz kann verletzt werden durch mangelnde Pflege der Datensammlung und durch Progamm- oder Benutzerfehler beim Aktualisieren der Datenbank.

Definition

Redundanz

Unter Redundanz im Zusammenhang mit Datenbanken wird verstanden, daß ein und dieselbe Information mehrfach an verschiedenen Stellen der Datenbank abgelegt ist.

Durch Redundanzen wird Speicherplatz verschwendet, und es besteht die Gefahr, das sich Inkonsistenzen einschleichen.

1.8 Datenmodellierung






1.8.1 Modell :<=>

Beschreibung eines Ausschnittes der realen Welt.

1.8.2 Modellierung :<=>

Abstraktionsprozess, der zu einem Modell führt.

Dabei werden unbedeutende Details weggelassen, reale Objekte werden als Symbole und ihre Wechselwirkungen durch eine Menge von Operationen auf den Symbolen dargestellt.

1.8.3 Sicht :<=>

Eine Sicht ist ein Ausschnitt aus der Miniwelt, die durch die Datenbank abgebildet werden soll. Sichten werden aus den unmittelbaren Anforderungen der zukünftigen Datenbankbenutzer entwickelt (z.B. verwendete Formulare etc.)

1.8.4 Konzeptuelles Schema :<=>

Das Konzeptuelle Schema ist ein implementierungsunabhängiges Datenmodell der Miniwelt, die durch die Datenbank abgebildet werden soll. Sie entsteht durch die Integration aller Sichten .

1.8.5 Physisches Schema :<=>

Das physische Schema entspricht inhaltlich dem Konzeptuellen Schema. Jedoch kann das physische Schema dierekt von einer Datenbank verarbeitet werden.

1.8.6 Attribut :<=>

Wertepaar, bestehend aus Attributname und Attributwert. Durch Attribute werden Details von Objekten der realen Welt und Beziehungen zwischen diesen in Modellen beschrieben.

Beispiel:

Das betrachtete Objekt sei ein Auto. Dann könnten folgende Attribute erfasst werden:

Automarke = Ferrari, Motorleistung = 800PS, Motor_Zylinderzahl = 12, ...

1.8.7 Entity :<=>

Menge aller Attribute zu einem realen Objekt, die in einem Modell erfasst werden.

Beispiel:

Das betrachtete Objekt sei ein Auto der Marke Ferrari. Dann könnte folgendes Entity durch Modellierung gewonnen werden:

FERRARI := { Automarke=Ferrari, Motorleistung=800PS, Farbe=rot, Fahrer=Fred Vollgas, ... }

1.8.8 Entity Typ :<=>

Ein Entitytyp bezeichnet eine Menge von Entities, die eine gleiche Attributstruktur aufweisen. Die Gleichheit in der Attributstruktur besteht dabei in gleichen Attributnamen und gleichen Datentypen für die Attributwerte. Beispielsweise könnte ein Entitytyp für Autos wie folgt aussehen:

ENTITYTYP_AUTO = { Marke as String, Leistung as Integer, Farbe as Color, Zylinderzahl as Integer, Neupreis as Currency }

1.8.9 Beziehungen :<=>

Zusammenhänge zwischen realen Objekten. Beispiele: Erde umkreist Sonne, Meier arbeitet beim Staat, Netzwerkkarte fordert einen Unterbrechung auf IRQ 7

Im Datenmodellierungsprozess werden die Bezeihungen zwischen Objekten auf Beziehungen zwischen Entities abgebildet. Auch Beziehungen lassen sich durch einfache Attributmengen beschreiben. Beispiele:

1.8.10 Beziehungstyp :<=>

Beziehungstypen werden analog zu Entitytypen definiert: Ein Beziehungstyp bezeichnet eine Menge von Beziehungen mit gleicher Attributstruktur. Auch hier besteht die Gleichheit der Attributstruktur in der Gleichheit der Attributnamen und gleichen Datentypen für die Attributwerte.

Beispiel:

Wir betrachten die Beziehung Umkreisen, die zwischen Planeten und der Sonne besteht:

BEZIEHUNGSTYP_UMKREISEN = { Zentralkoerper as String, Satelliet as String, Dauer as Time }

1.8.11 Kardinalitäten :<=>

In einer Beziehung können mehr als zwei Entities stehen. Z.B. steht das Entity Windows as DATEIVERZEICHNIS in der Beziehung enthält mit zahlreichen Objekten wie system32 as DATEIVERZEICHNIS und win.ini as DATEI. Diese Mengenverhältnisse werden Kardinalitäten genannt, und durch Zahlen und Wildcards beschrieben:

DATEIVERZEICHNIS <1-- ENTHÄLT --N> DATEIEN

1.8.12 Schlüsselattribute :<=>

Attribute oder Kombinationen von Attributen innerhalb von Entities, die für jedes einzelne Entity einmalig sind. Schlüsselattribute ermöglichen so die eindeutige Identifikation eines Entitys. Da es mehrere Schlüsselattribute innerhalb eines Entitys geben kann, ist es Aufgabe des Datenmodellierers, eines dieser als Primärschlüssel auszuzeichnen. Primärschlüssel finden beim Formulieren von Beziehungen Anwendung.

1.8.13 Datenmodell :<=>

Formales System zur Beschreibung von Entities und Beziehungen. Dieses formale System besteht dabei aus speziellen Strukturtypen und Abbildungsvorschriften der Art:

Entitytyp ---> Strukturtyp i, Beziehungstyp ---> Strukturtyp j

Beispiel:

1.8.13.1 Relationales Datenmodell

Das relationale Modell kennt nur einen Strukturtyp: die Tabelle, auch Relation genannt. Entitytypen werden durch Tabellendefinitionen dargestellt. Beziehungstypen können im Falle komplexer m:n Beziehungen ebenfalls durch Tabellendefinitionen, oder bei einfachen 1:1 und 1:n Beziehungen durch zusätzliche Fremdschlüsselfelder in Tabellendefinitionen für Entities modelliert werden.

Beispiel:

Relationales Datenmodell für eine Datensammlung zum Sonnensystem:

Der Entitytyp GESTIRN = { Name as String, Durchmesser as String, Oberflächentemperatur as Float } wird abgebildet auf die Tabelle GESTIRN:

Name

Durchmesser

Oberflächentemperatur

Venus

12000 km

430 C

...

 

 



Der Beziehungstyp UMKREIST = { Zentralkoerper as String, Satellit as String, Dauer as Time } wird abgebildet auf die Tabelle UMKREIST :

Zentralkörper

Satellit

Dauer

Sonne

Erde

1 Jahr

...

 

 



1.8.14 Normalformen

Datenbanken sollen eine redundanzfreie und konsistente Speicherung von Daten ermöglichen. Dies bedeutet, daß ein und dieselbe Information nicht mehrfach an verschiedenen Stellen der Datenbank abgelegt ist. Eine in der Datenbank erfasste Information sollte zu jedem Zeitpunkt an genau einem festen Ort in der Datenbank gespeichert sein.

Um dies zu erreichen, müssen wir beim Modellieren am Anfang alle relevanten Entities und Beziehungen im Datenmodell erfassen. Das Modell wird danach meist Redundanzen aufweisen. Diese können jetzt systematisch beseitigt werden, indem das Datenmodell Schritt für Schritt in die erste , zweite und schließlich dritte Normalform überführt wird.

Die Definitionen der Normalformen legen Bedingungen fest, die ein Datenmodell erfüllen muss, wenn es der Normalform genügen soll. Bei der Umformung eines Datenmodells von der Normalform i in die Normalformen i+1 muss untersucht werden, ob dass Datenmodell die Bedingungen für Normalform i + 1 erfüllt. Wenn nicht, dann sind die Strukturen im Datenmodell so umzuformen, dass die Bedingungen für die Normalform i + 1 erfüllt werden.

1.8.14.1 1. Normalformen

Eine Tabelle steht in der ersten Normalform, wenn keine Spaltendefinitionen ein mehrgliedriges Attribut ist, und keine sogenannten Mehrfachfelder auftreten.

Beispiele:

Folgende Tabellen befinden sich nicht in der 1. Normalform:

Name

erreichbar_unter

Donald

Tel: 0712 000123 Fax.: 0712 000124

Waltraud

Handy: 0178 666777 Tel.: 0712 010010

Spalte erreichbar_unter ist ein mehrgliedriges Attribut.

Name

Tel.1

Tel. 2

Fax

Donald

0712 000123

 

0712 000124

Waltraud

0178 666777

0712 010010

 

Tel 1. und Tel. 2 sind Mehrfachfelder.

1.8.14.2 2. Normalform

Eine Tabelle steht in zweiter Normalform, wenn sie in 1. Normalform steht, und Nichtschlüsselattribute nicht von Teilen des Primärschlüssels funktional abhängen.

Beispiel:

Folgende Tabelle befindet sich nicht in der zweiten Normalform:

Projekt

Mitarbeiter

Telefon

Goldenes Kalb

Dagobert

0712 999999

Lottomillionär

Dagobert

0712 999999

Goldenes Kalb

Waltraud

0178 666777

...

 

 

Der Primärschlüssel in der Tabelle ist die Attributkombination (Projekt, Mitarbeiter). Die Telefonnummer ist nur von der Schlüsselkomponente Mitarbeiter abhängig. Dadurch wird die Telefonnummer unnötigerweise mehrfach abgespeichert (Redundanz).

1.8.14.3 3. Normalform

Eine Tabelle steht in dritter Normalform, wenn sie in 1. Normalform steht, und kein Nichtschlüsselattribut transitiv von einem Schlüsselattribut funktional abhängt.

Folgende Tabelle befindet sich nicht in der dritten Normalform:

Zeilennr

Projekt

Mitarbeiter

Telefon

1

Goldenes Kalb

Dagobert

0712 999999

2

Lottomillionär

Dagobert

0712 999999

3

Goldenes Kalb

Waltraud

178 666777

Der Primärschlüssel ist jetzt das Attribut Zeilennr. Damit liegt kein zusammengesetzter Primärschlüssel vor, und folglich kann es keine Abhängigkeiten von Teilen des Primärschlüssels geben. Die Tabelle steht in der 2. Normalform. Jedoch besteht eine transitive Abhängigkeit der Telefonnummer von der Zeilennr über das Attribut Mitarbeiter. Jeder Zeilennr kann funktional ein Mitarbeiter , und jedem Mitarbeiter funktional eine Telefonnummer zugeordnet werden. Damit sind die Bedingungen für die 3. Normalform verletzt, und die Tabelle befindet sich nicht in 3. Normalform.