Inhaltsverzeichnis

Werbung
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Name der Autoren:
Titel der Arbeit:
Hochschule und
Studienort:
Hochschule:
Standort:
Studiengang:
Veranstaltung:
Betreuer:
Typ:
Themengebiet:
Autor(en):
Studienzeitmodell:
Semesterbezeichnung:
Studiensemester:
Bearbeitungsstatus:
Prüfungstermin:
Abgabetermin:
Felix Nguyen, Daniel Schmidt, Daniel Altmeppen, Dennis Bössing
Entwicklung eines Fachwörterbuchs für das Thema Datenbankmanagement auf der
Basis des winfwiki
FOM Dortmund
Fallstudienarbeit
Hochschule für Oekonomie & Management
Dortmund
Bachelor Wirtschaftsinformatik
Fallstudie / Wissenschaftliches Arbeiten
Prof._Dr._Uwe_Kern
Fallstudienarbeit
Blended Learning
Felix Nguyen, Daniel Schmidt, Daniel Altmeppen, Dennis Bössing
Abendstudium
SS12
2
Bearbeitung abgeschlossen
23.06.12
10.06.12
Inhaltsverzeichnis
• 1 Fachinhalt
♦ 1.1 Grundlagen vom
Datenbankmanagementsystem (DBMS)
◊ 1.1.1 Umgebung eines DBMS
◊ 1.1.2 Arten von Datenbanken
◊ 1.1.3 Modelle von Datenbanken
◊ 1.1.4 Sonstiges
♦ 1.2 Modellierung
◊ 1.2.1 ER - Modelle
◊ 1.2.2 Normalisierung
♦ 1.3 Funktionen des DBMS
♦ 1.4 Komponenten
◊ 1.4.1 DBMS
◊ 1.4.2 Tabelle
♦ 1.5 Abfragesprachen
♦ 1.6 Analyse und Auswertung
♦ 1.7 Werkzeuge
♦ 1.8 Schnittstellen
♦ 1.9 Produkte
• 2 Anhang
♦ 2.1 Fußnoten
♦ 2.2 Tabellenverzeichnis
♦ 2.3 Abkürzungsverzeichnis
♦ 2.4 Abbildungsverzeichnis
♦ 2.5 Literatur- und Quellenverzeichnis
Inhaltsverzeichnis
1
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
1 Fachinhalt
1.1 Grundlagen vom Datenbankmanagementsystem (DBMS)
1.1.1 Umgebung eines DBMS
Abstraktionsebenen
Es gibt drei Abstraktionsebenen [1]:
• Konzeptionelle Ebene: Beschreibt die Strukturierung und Beziehung aller Daten der Datenbank.
• Interne Ebene: Legt die Art und Weise fest, wie die Daten in der Datenbank gespeichert werden.
• Externe Ebene: Sicht der Benutzer auf die Datenbank für den jeweiligen Verwendungszweck.
Atomicity Consistency Isolation Durability (ACID)
Die Grundlage jeder Transaktion ist das ACID-Prinzip [2]:
• Atomicity (Atomarität): Eine Transaktion kann nicht zerlegt werden (atomar). Fehlt ein Teil der
Transaktion, wird diese nicht ausgeführt.
• Consistency (Konsistenz): Nach einer Transaktion muss sichergestellt sein, dass die Datenbank sich noch
in einem konsistenten Zustand befindet und alle Daten korrekt gespeichert sind.
• Isolation (Isolation): Transaktionen dürfen sich nicht gegenseitig behindern. Es werden somit keine
Transaktionen zum selben Zeitpunkt auf die gleichen Datensätze zugelassen.
• Durability (Dauerhaftigkeit): Eine abgeschlossene Transaktion wird nicht rückgängig gemacht und bleibt
dauerhaft in der Datenbank, auch bei Systemabsturz oder Stromausfall.
Client-Server-Systeme
Bei einem Client-Server System gibt es einen zentralen Server, der Dienste bereitstellt [3]. Diese können
Dateifreigaben, E-Mail-Dienste, Datenbanken, etc. sein. Ein Client nimmt diese bereitgestellten Dienste in
Anspruch. Der Client legt z.B. Daten auf die Dateifreigaben ab, sendet Mails und führt Datenbankabfragen aus.
Schematisch sieht es folgendermaßen aus:
1 Fachinhalt
2
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Abbildung 1: Schematischer Aufbau eines Client-Server-Systems
Datenbank - Database
Eine Datenbank ist eine auf in Beziehung stehende Tabellen basierende Art, Daten effektiv zu speichern und zu
verwalten [4]. Inhalt können z.B. Kundeninformation, Artikelinformationen und Bestellvorgänge sein. Zur
Verwaltung einer Datenbank und deren Daten wird ein Datenbankmanagementsystem verwendet.
Datenbank-Administrator / Datenbank Manager ? Database Administrator
Aufgabe eines Datenbankadministrators ist die Verwaltung und Wartung einer Datenbank. Zu seinen Tätigkeiten
gehören unter anderem folgende Aufgaben [5]:
• Entwurf von Datenbanken (Für was soll die Datenbank sein? Welche Tabellen?)
• Schützen der Datenbank (Zugriffsverwaltung)
• Datensicherung (Backup-Verwaltung)
• Überwachung der Datenbanken (Performance Engpässe erkennen und beheben)
• Optimierung der Datenbank (Verbesserung der Zugriffszeiten)
• Aktualisierung der Datenbank (Installation von Softwareupdates)
• Fehleranalyse (Probleme im Fehlerfall erkennen und beheben)
Der Datenbankadministrator muss nicht zwangsläufig eine Person sein. In großen Unternehmen werden die
Tätigkeiten auf mehreren Personen verteilt.
Datenbank-Client ? Database Client
Ein Datenbank-Client greift auf die bereitgestellten Ressourcen des Datenbank-Servers zu [6].
Datenbankmanagementsystem (DBMS) bzw. Datenbankverwaltungssystem (DBVS)
1.1.1 Umgebung eines DBMS
3
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Cordts (2002), S. 19 [7]
Abbildung 2: Aufgabenübersicht DBMS nach Cordts
Ein DBMS ist eine Software um Datenbanken zu verwaltet und entsprechend dem Zugriff auf Daten zu
ermöglicht. Ein DBMS hat nach Cordts folgende Aufgaben [8]:
• Redundanzabbau: Die Daten sollen nur an einer Stelle gespeichert werden. Dieses hat den Vorteil, dass
Daten nicht doppelt gepflegt werden müssen und stets auf die aktuellen Daten zugegriffen wird.
• Wahrung der Integrität: Datenbanken müssen konsistent sein. Es muss sichergestellt sein, dass die Daten
vollständig, korrekt und das referenzierte Datensätze nicht gelöscht werden.
• Erstellung von Benutzersichten: Eine Buchhaltung hat andere Anforderungen an eine Datenbank als der
Pförtner, welcher lediglich die ein- und ausgehenden Personen erfasst.
• Synchronisation: Es muss sichergestellt sein, dass mehrere Datenbanknutzer nicht zeitgleich auf dieselben
Daten zugreifen und diese ggf. überschreiben.
• Datenschutz: Daten dürfen nicht verloren gehen.
• Datensicherheit: Nicht jeder darf auf alle Daten zugreifen. Der Zugriff zum Beispiel auf die
Gehaltsdatenbank ist nur der Personalabteilung, dem Controlling und dem Vorstand vorbehalten.
• Datenunabhängigkeit: Nach Änderung eines Tabellennamens oder eines Datentyps einer Tabelle dürfen
die abfragenden Anwendungen nicht beeinträchtigt werden.
Datenbank-Server ? Database Server
Ein Datenbank-Server ist die Funktion einer Software, mit der Möglichkeit Datenbanken bereitzustellen [9]. Diese
Software wird in der Regel auf einem speziellen Serverbetriebssystem ausgeführt (z.B. Windows Server 2008).
Folgende Hersteller bieten Software für Datenbanken an:
• Microsoft SQL Server
• MySQL
• PostgreSQL
• Oracle
Datenbanksprache ? Query Language
Jede Datenbank versteht eine Sprache um Aktionen ausführen zu können. Bei relationalen Datenbanken wäre dies
SQL. Dabei unterscheidet man zwischen drei Typen [10] [11]:
1.1.1 Umgebung eines DBMS
4
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Data Manipulation Language (DML):
• INSERT
• SELECT
• UPDATE
• DELETE
• ...
Data Definition Language (DDL):
• CREATE TABLE
• ALTER TABLE
• DROP TABLE
• ...
Data Control Language (DCL):
• CREATE DATABASE
• GRANT
• REVOKE
• ...
Datenbanksystem ? Database System
Ein Datenbanksystem verwaltet elektronische Daten. Es besteht aus einem DBMS
(Datenbankmanagementsystem) und der eigentlichen Datenbank, in der die Daten gespeichert sind [12].
Abbildung 3: Schema eines Datenbanksystems
Datenbanktreiber ? Database Driver
Ein Datenbanktreiber wird nach Microsoft für die Erstellung und Verarbeitung von Berichten verwendet [13].
1.1.1 Umgebung eines DBMS
5
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Informationssystem ? Information System / Application Landscape
Abbildung 4: Aufbau eines IS nach Krcmar
Ein Informationssystem (IS) ist ein System, welches Informationen in beliebiger Art effizient speichert und die
Möglichkeit zur Weiterverarbeitung bereitstellt. Krcmar beschreibt es wie folgt: ?Bei Informationssystemen (IS)
handelt es sich um soziotechnische (?Mensch-Maschinen-?) Systeme, die menschliche und maschinelle
Komponenten (Teilsysteme) umfassen und zum Ziel der optimalen Bereitstellung von Information und
Kommunikation nach wirtschaftlichen Kriterien eingesetzt werden.? [14] Die Funktionsweise von
Informationssysteme beschreibt Krcmar wie folgt: ?Da man Systeme allgemein als eine Menge von Elementen
versteht, die in bestimmter Weise miteinander in Beziehung stehen, ist die Kommunikation in IS nichts anderes
als der notwendige Austausch von Informationen zwischen den Elementen eines Systems und zwischen dem
System und seiner Umwelt. Maschinen werden hierbei als Anwendungen begriffen, die auf einer wie auch immer
gearteten Hardware arbeiten. Anwendungen wiederum nutzen Daten für interne Prozesse, die schließlich in
Funktionen und Verbindungen zwischen den Funktionen aufgeteilt werden können.? [15]
Master-Slave-System
Bei Master-Slave-Systemen spielen zwei Komponenten eine wesentliche Rolle. Zum einen der Master der die
Anfragen der Clients entgegen nimmt. Diese werden entweder direkt bearbeitet oder weiter zu den Slaves
delegiert. Nur ein System kann als Master fungieren, Slaves können allerdings mehrere vorhanden sein. Nach
Anmeldung der Slaves am Master nehmen sie nur noch Aufgaben von ihm entgegen, um einer optimale
Auslastung des Systems zu gewährleisten[16]. Schematisch sieht dies folgendermaßen aus:
Abbildung 5: Schematischer Aufbau eines Master-Slave-Systems
?Peer-to-Peer-Systeme
In der Literatur gibt es diverse Definitionen von ?Peer-to-Peer?. Shirky beschreibt es wie folgt: ?P2P is a class of
applications that takes advantage of resources -- storage, cycles, content, human presence -- available at the edges
1.1.1 Umgebung eines DBMS
6
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
of the Internet. Because accessing these decentralized resources means operating in an environment of unstable
connectivity and unpredictable IP addresses, P2P nodes must operate outside the DNS system and have
significant or total autonomy from central servers." [17] Dies bedeutet, dass Dienste nicht zentral auf einem Server,
sondern auf die Clients, verteilt und bereitgestellt werden. Eine Herausforderung bei Peer-to-Peer-Systemen
bestehe darin, dass die Systeme autonom von DNS und statischen IP-Adressen funktionieren müssen. Die
erwähnten Anwendungen können z.B. Ressourcen in Form von Speicherplatz und Inhalten sein. Schematisch
sieht der Aufbau folgendermaßen aus:
Abbildung 6: Schematischer Aufbau eines Peer-to-Peer-Systems
Tabelle
In einer Tabelle werden Daten übersichtlich dargestellt [18]. Dabei wird zwischen Spalten (senkrecht) und Zeilen
(waagerecht) unterschieden. Zur Bezeichnung haben Spalten oft eine Überschrift. Folgende Tabelle speichert
Informationen über Kunden:
Tabelle 1: Beispiel einer Tabelle Kunde
Kundennummer
1
2
Name
Mustermann
Muster
Vorname
Max
Maximilian
1.1.2 Arten von Datenbanken
Aktive Datenbank ? Active Database
Eine aktive Datenbank erweitert eine einfache Datenbank dahingehend, dass Anwendungen unterstützt und somit
mit weiteren Funktionalitäten ergänzt werden. Dies können einsetzbare Regeln (Trigger), aber auch gespeicherte
Prozesse (Stored Procedures) sein.
Aktive Datenbanken arbeiten mit so genannten ECA Regel [19]. Sie bestehen aus drei wichtigen Bestandteilen und
haben vereinfacht folgende Syntax:
on Ereignis if Bedingung do Aktion
• Ereignis: Ein auslösendes Ereignis wie Datenbankmodifikationen, periodische oder relative Zeitereignis
und Anwendungsereignis (z.B. Aufruf einer Methode).
1.1.2 Arten von Datenbanken
7
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
• Bedingung: Bedingung die erfüllt sein muss damit die Aktion ausgeführt wird.
• Aktion: Ausführbare Aktion bei Erfüllung der Bedingung (z.B. Meldung an Enduser).
In-Memory Datenbank
Eine In-Memory Datenbank (IMDB) oder auch hauptspeicherresidente Datenbank ist eine besondere Art von
Datenbankmanagementsystemen. Der Unterschied zu herkömmlichen Datenbanken besteht darin, dass die Daten
ausschließlich im Hauptspeicher zu finden sind, und nicht auf dauerhafte Festplattenlaufwerke [20]. Dadurch
können wesentlich höhere Zugriffszeiten und Transferraten realisiert werden. Dabei unterscheidet man zwei
wesentliche Arten:
• Nicht-Dauerhauft
• Hybride
Bei nicht dauerhaften Datenbanken befinden sich alle Daten ausschließlich im Hauptspeicher und sind somit bei
einem Systemabsturz verloren. Eine Synchronisation auf einem dauerhaften Medium ist allerdings möglich.
Hybride In-Memory Datenbanken verteilen ihre Daten auf Hauptsspeicher und Festplatten, wodurch eine Balance
zwischen Leistung, Kosten und Dauerhaftigkeit erreicht werden kann.
Mehrdimensionale Datenbank ? Multidimensionale Database
Eine Mehrdimensionale Datenbank verwendet nicht eine, sondern eine Vielzahl verschiedener Dimensionen für
seine Daten. Jeder Sachverhalt ist wie ein dreidimensionaler Würfel, jede Achse des Würfels spiegelt eine andere
Dimension wieder. Ein Sachverhalt kann beispielsweise den Absatz eines Produktes darstellen. Die Dimensionen
könnten dabei folgendermaßen lauten: Produkt, Land und Zeit. Bei der Auswertung von Daten einer
mehrdimensionale Datenbank wird jeweils ein Ausschnitt des Würfels dargestellt, jede Dimension besitzt einen
Wert (z.B. Produkt: Festplatte, Land: Deutschland und Zeit: 2011) [21]. Ein übliches Anwendungsgebiet sind
analytischen Datenbanken (OLAP).
Verteilte Datenbank ? Distributed Database
Bei einer verteilten Datenbank befinden sich die Daten nicht auf einer, sondern verteilt auf mehreren
physikalischen Maschine. Dabei wird die Rechenleistung aller Maschinen verwendet. Für die Handhabung der
Endanwender macht es keinen Unterschied, ob die Daten verteilt sind oder nicht. Die Struktur besteht aus
folgender 4-Ebenen-Schema-Architekur [22]:
Abbildung 7: 4 Ebenen-Schema-Architektur [23]
1.1.2 Arten von Datenbanken
8
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
• Externes Schema: Repräsentiert die verschiedenen Sichten der Endanwender bzw. Anwendungen. Jedes
Schema besitzt lediglich die Beschreibungen der benötigten Daten, um den Zugriff auf genau jene zu
gewährleisten.
• Konzeptionelles Schema: Verwaltet alle vorhandenen Daten und beinhaltet die gesamten externen und
lokale konzeptionelle Schemata.
• Lokales konzept. Schema: Jeder lokale Rechner besitzt ein eigenes lokales konzept. Schema, in dem alle
seine eigenen Daten beschrieben werden.
• Lokales internes Schema: Beinhaltet das interne Datenbanksystem.
Zeitorientierte Datenbank
Datenbanken speichern im Normalfall den aktuellen Zustand ihrer Daten, bei Änderungen werden sie
überschrieben. Der alte Wert ist somit "verschwunden" und ein Zugriff somit nicht mehr möglich. Bei
zeitorientierten Datenbanken "verschwinden" die alten Daten nicht, sondern werden als zeitlich aufeinander
folgende Zustände in die Datenbank gespeichert und verwaltet. Somit sind aktuellen, aber auch historische Werte
verfügbar [24].
Das Speichern zeitlich aufeinanderfolgende Daten kann auf zwei Wege erfolgen. Zum einen über neue Datensätze
für die Änderung:
Tabelle 2: Relation Kunde mit einem neuen Datensatz für die Änderung
Kundennummer
1
2
3
Name
Mustermann
Musterfrau
Muster
Vorname
Max
Max
Maximilian
PLZ ...
12345 ...
12345 ...
23456 ...
Und zum anderen über ein neues Attribut:
Tabelle 3: Relation Kunde mit einem zusätzliche Attribute für die Änderungen
Kundennummer
1
2
Name
Mustermann
Muster
Name vorher Vorname
Musterfrau
Max
n.a.
Maximilian
PLZ ...
12345 ...
23456 ...
Zeitorientierte Datenbanken haben einen höheren Verwaltungsaufwand und benötigen mehr Speicherplatz bedingt
der zusätzlichen Daten. Als Abfragesprache kommt eine Erweiterung von SQL zum Einsatz: TSQL (Temporal
Structed Query Language).
1.1.3 Modelle von Datenbanken
ANSI-SPARC Architekturmodell
1.1.3 Modelle von Datenbanken
9
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Die ANSI-SPARC Architektur wird öfters auch 3-Ebenen-Schema-Architektur genannt. Dabei beschreibt die
Architektur die grundlegende Trennung drei verschiedenen Ebenen, Schichten oder auch Schemata einer
Datenbank. Entwickelt wurde die Architektur von der Standards Planning and Requirements Committee (SPARC)
des American National Standards Institute (ANSI), woraus die Bezeichnung entstand. Folgende drei Ebenen sind
wesentlicher Bestandteil der Architektur [25]:
Abbildung 8: Aufbau des ANSI-SPARC Architektur
• Externe Ebene: Repräsentiert die verschiedene Sichten des Endanwenders, wobei jeder Benutzer bzw.
Benutzergruppe eine eigene externe Ebene erhält. Inhalt jener Ebene sind Beschreibungen der benötigten
Daten aus der Datenbank.
• Konzeptionelle Ebene: Beschreibt welche Daten in der internen Ebene (Datenbank) gespeichert werden.
Dazu gehören zusätzlich die Beziehungen der Daten untereinander.
• Interne Ebene: Beschreibt die physikalische Sicht in der Datenbank, d.h. wie und wo die Daten
gespeichert sind.
Die ANSI-SPARC Architektur ist ein wichtiger Bestandteil verschiedener Datenbankmodellen.
Hierarchisches Datenbankmodell ? Hierarchical Database Model
Das Hierarchische Datenbankmodell bildet die gesamte Struktur der realen Welt in einer Art Baumstruktur ab.
Bernhard Kilger erklärt, dass ?die Objekte dieser Welt in einer gewissen Rangordnung zueinander stehen.? [26]
Skizziert man eine Hierarchische Datenbank anhand dieser Erkenntnis, könnte dies beispielhaft so aussehen:
Abbildung 9: Skizze einer Hierarchischen Datenbank
Jedes Objekt hat genau einen Vorgänger (mit Ausnahme des obersten Objektes, der Wurzel) und hat kein, ein
oder mehrere Nachfolger. Jedes Objekt steht in mindestens einer Beziehung zu einem anderen, die auch
Eltern-Kind Beziehung genannt werden. Dabei sind die Eltern die übergeordneten Objekte und die Kinder die
darunterliegenden. Man unterscheidet zwischen einer 1:1 Beziehung, wo jedes Objekt genau ein Unterobjekt
besitzt, und einer 1:n Beziehung. Dort hat jedes Objekt mindestens 1 Abbildung des Unterobjektes. Sogenannte
n:m Beziehungen existieren auch, allerdings können diese nur durch Redundanzen realisiert werden und werden
daher vermieden [27].
1.1.3 Modelle von Datenbanken
10
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Netzwerkdatenbankmodell ? Network Database Model
Das Netzwerkmodell ist eine Art Erweiterung des hierarchischen Datenmodells, wo zwei wesentlichen
Kritikpunkte ausgebessert worden sind. Zum einen die fehlende Darstellung n:m Beziehungen (ohne
Redundanzen) und zum anderen das Fehlen einheitlicher Standards [28]. Der wesentliche Unterschied liegt in der
Struktur, denn jedes Kindobjekt kann mehrere Elternobjekte haben. Elternobjekte sind ?oberhalb? und
Kindobjekte die jeweils untergeordneten. So ändert sich die Struktur folgendermaßen ab:
Abbildung 10: Skizze einer Netzwerk Datenbank
Die Netzwerkdatenbank gilt als wesentliche Verbesserung hierarchischer Datenbanken, allerdings muss auch hier
die Navigation von oben herab erfolgen um Zugriff auf die Daten zu bekommen [29].
Objektrelationales Datenbankmodell ? Object Relational Model of Database
Eine Objektrelationale Datenbank ist das Bindeglied zwischen einer relationalen- und objektorientierten
Datenbank [30]. Die Daten sind ähnlich der Objektorientierung in Objekte definiert die in Beziehungen zueinander
stehen. Dabei kommt das Beziehungskonzept relationaler Datenbanken zum Einsatz.
Objektorientiertes Datenbankmodell ? Object oriented Database
Wie der Name objektorientiertes Datenmodell vermuten lässt, basiert die Modellierung auf Objekte. Alle Daten
der Datenbank werden als Objekte gespeichert und verwaltet. Ein Objekt ist die Abbildung eines Sachverhaltes
der realen Welt. Jeder Datensatz referenziert sich auf ein Objekt und besitzt somit Attribute und Methoden [31].
Abbildung 11: Aufbau eines Objektes einer objektorientierten Datenbank
Ein Objekt baut sich folgendermaßen auf:
• Objektname: Identifiziert ein Objekt
• Attribute: Beschreiben Eigenschaften eines Objektes näher
• Methoden: Funktionen (z.B. Schnittstellen) zum Zugriff auf Daten
1.1.3 Modelle von Datenbanken
11
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Das DBMS wird als objektorientiertes Datenbankmanagementsystem bezeichnet und als Abfragesprache kommt
OQL (Object Query Language) zum Einsatz. Die Struktur und Funktionsweise hat ihren Ursprung in der
objektorientierten Programmierung.
Relationales Datenbankmodell ? Relational Database Model
Das Relationale Datenbankmodell ist das am weit verbreiteten Datenbankmodell. Der größte Vorteil liegt darin,
dass die physikalische Speicherung der Daten vollständig gekapselt sind und das das DBMS einer relationalen
Datenbank mehr Funktionalitäten mit sich bringt [32]. Wesentlicher Bestandteil einer Relationalen Datenbank sind
die Relationen bzw. die Tabellen. Relationen sind zweidimensional und gefüllt mit Datensätzen. Neben den
Relationen steht die Beziehung im Vordergrund, den jede Relation steht mit mindestens einer anderen Relation in
Beziehung. Die Beziehungen werden mittels primären- und sekundären Schlüsseln realisiert [33]:
Abbildung 12: Realisierung einer Beziehung in einer Relationalen Datenbank
Wichtige Werkzeuge zur Modellierung von Relationalen Datenbanken sind ER-Modelle und die Normalisierung.
Semantisches Datenmodell ? Semantic Data Model
Das semantische Datenmodell ist kein eigenes Datenbankmodell an sich, sondern bezeichnet die abstrakte
Beschreibung und Darstellung der realen Welt wie man sie beim Datenbankmodell wahrnimmt und definiert [34].
Das wohl bekannteste Werkzeug in der Praxis ist das ER-Modell.
XML-Datenbanken ? XML Database
Unter einer XML-Datenbank versteht man eine Datenbank, die die Daten im XML Format speichert bzw. damit
umgehen kann. Da das Umgehen mit XML eine Art Erweiterung der bestehenden Lösungen ist kann jegliches
Datenbankmodell verwendet werden [35]. Daher Unterscheidet man zwei Arten:
• XML-enabled: Datenorientiert, da herkömmliche Datenbanken ein mapping auf das XML Format
bereitstellt.
• Native-XML: Dokumentenorientiert, da die Informationen in der Datenbank als XML-Dokumente
abgelegt werden.
1.1.4 Sonstiges
Aggregatfunktion ? Aggregate Function
1.1.4 Sonstiges
12
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Mit Aggregatfunktionen werden Daten bzw. Werte zusammengefasst. Folgende Funktionen stellt SQL bereit [36]:
• count(): Anzahl von Zeilen, Werte oder verschiedenen Werten (z.B. ?Wort?)
• sum(): Summe der Werte
• avg(): Durchschnitt der Werte
• max(): größter Wert
• min(): kleinster Wert
Anomalie
Eine Anomalie basiert auf einem Referenzwert (Baseline). Verändert sich ein vordefinierter Wert stark in eine
Richtung (positiv sowie negativ), handelt es sich um eine Anomalie. Anomalien entstehen häufig durch nicht
normalisierte Datenbankmodelle [37]. Im Datenbankumfeld gibt es folgende Anomalien:
• Einfüge-Anomalie: Ein Datensatz muss vollständig eingegeben werden.
• Änderungs-Anomalie: Änderungen müssen ggf. an mehreren Stellen durchgeführt werden.
• Lösch-Anomalie: Beim Löschen von Daten werden ggf. mehr Daten gelöscht, als ursprünglich gewollt
war.
• Allgemeine Anomalie: CPU-Last, hohe RAM-Auslastung, etc.
Audit
Audits werden eingesetzt um Zugriffs- und Transaktion-Frequenzen zu ermitteln. Außerdem können
Benutzeranmeldungen und Datenbankänderungen erfasst werden [38]. Das bekannteste Audit ist das Logfile. Es
dient zur Analyse von Problemen und macht Vorgänge nachvollziehbar.
Authentifizierung - Authentification
Die Authentifizierung ist eine Überprüfung der Identifikation, ob Person A auch wirklich Person A ist. Das BSI
definiert dieses folgendermaßen: ?Authentisierung bezeichnet den Nachweis eines Kommunikationspartners, dass
er tatsächlich derjenige ist, der er vorgibt zu sein. Dies kann unter anderem durch Passwort-Eingabe, Chipkarte
oder Biometrie erfolgen.? [39] Einige Autoren in Deutschland definieren den Begriff lediglich als ?[..] die Vorlage
eines Nachweises zur Identifikation.? [40]
Bestandsdaten
Bestandsdaten sind Daten, welche sich stetig ändern [41].
Cluster
Ein Cluster ist ein redundantes System, welches den Ausfall mindestens eines der Teil-Systeme kompensiert.
Realisiert wird dies mit dem Einsatz mehrerer Maschinen[42].
Datenschutz ? Data Protection
1.1.4 Sonstiges
13
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Das Thema Datenschutz befasst sich nicht, mit dem eigentlichen Schutz der Daten, sondern mit den Inhabern der
Daten [43]. Der Datenschutz für Deutschland befindet sich im Bundesdatenschutzgesetz (BDSG). Das BDSG
regelt dem Umgang mit der Weiterverarbeitung personenbezogenen Daten.
Deadlock
Ein Deadlock ist das gegenseitige Blockieren von Ressourcen und mehrere Prozesse gleichzeitig darauf warten.
Dies passiert, wenn ein oder mehrere Prozesse auf den Abschluss eines Prozesses warten, gleichzeitig die
Ressource von dem ersten Prozess blockiert wird [44].
Deskriptor
Ein Deskriptor ist eine Verschlagwortung basierend auf den Spaltennamen einer Tabelle[45].
Dump
Ein Datenbankdump ist ein Teil oder vollständiges Abbild einer Datenbank und findet häufig Anwendung bei der
Erzeugung eine zweite identische Datenbank [46]. Mit der neu erzeugten Datenbank können beispielsweise
Probleme nachgestellt werden, wie Performanceprobleme oder logische Fehler. Dumps können schnell erzeugt
werden.
Hashing
Das Hashing ist die Bildung einer Prüfsumme, um Manipulationen zu erkennen[47]. Eine erneute Erstellung einer
Prüfsumme, welche anders ist als zuvor, würde eine Manipulation aufdecken und beweisen. Dieses findet
Anwendung in der Integritätsprüfung.
Index bzw. Register
Ein Index wird gebildet, um das Suchen in Datenbanken zu optimieren. Der Index ist eine geordnete Liste von
Zeigern, die auf eine oder mehreren Tabellen verweisen [48].
Logfile
Ein Logfile ist ein Systemprotokoll, in den alle Ereignisse der jeweiligen Datenbank gespeichert werden[49]. Falls
es zu Fehlern oder Problemen kommt, können diese eingesehen werden und ggf. bei der Lösungsfindung
unterstützen.
Maskierung
Die Maskierung dient zur Filterung von Datensätzen für spezifische Anfragen[50]. Zur Filterung werden Wildcards
verwendet. Eine gespeicherte Sicht ist eine Maske. Bei der Maskierung ist ein Zeichen unbekannt. Wenn
mehreren unbekannten Zeichen sind, wird die Trunkierung angewandt.
1.1.4 Sonstiges
14
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Metadaten
Metadaten sind Informationen über andere Daten [51]. Bei einer Datenbank sind Metadaten beispielsweise
Datenbankname, Tabellenbezeichnung oder die Zugriffsberechtigungen der jeweiligen Datenbank.
Orthogonalität
Orthogonalität ist die freie und unabhängige Kombinierbarkeit der unterstützten Sprachkonzepte [52].
Parallel
Gleichzeitige Verarbeitung von mehreren Prozessen[53].
Parameter
Parameter sind Werte, die an Unterfunktionen oder Programme übergeben werden[54].
Passwort
Damit sich jemand Identifizieren bzw. Authentifizieren kann, wird ein Passwort verwendet, welches nur eine
bestimmte Person kennt [55]. Gibt diese Person das richtige Passwort ein, gilt er als identifiziert.
Remote Database Access (RDA)
Der RDA ist ein Kommunikationsprotokoll für den Datenbankzugriff von Clients auf ein verteiltes
Datenbanksystem mit unterschiedlichen DMBS[56].
Schnittstelle - Interface
Eine Schnittstelle ist ein definierter Übergabepunkt[57]. Im Datenbankumfeld gibt es unter anderem folgende
Schnittstellen:
• ODBC (Open Database Connectivity)
• OLAP (Online Analytical Processing)
• SOAP (Simple Object Access Protocol)
Seriell
Prozesse werden nacheinander abgearbeitet[58].
Sicht - View
1.1.4 Sonstiges
15
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Eine Sicht ist eine virtuelle Tabelle, welche Ergebnisse nur anzeigt und nicht physikalisch speichert. Die Daten
für eine solche Sicht können ihren Ursprung in mehreren Tabellen haben [59]. Auf die gelieferten Daten kann
schreibend zugegriffen werden, sodass sich die eigentliche Tabelle ändert.
Stammdaten
Stammdaten sind Daten, welche von verschiedenen Anwendungen benutzt werden. Sie werden für längere Zeit
vorgehalten [60].
Suchfeld
Ein Suchfeld ist eine Eingabemaske für Suchbegriffe. In dem Suchfeld können Wildcards benutzt werden, falls
nur Teile des Wortes oder Begriffs bekannt sind. Anwendungsgebiet ist die Maskierung und Trunkierung.
Trunkierung
Ist bei der Suche in einem Suchfeld mehr als ein Zeichen unbekannt, spricht man von Trunkierung[61]. Bei einem
unbekannten Zeichen wird von Maskierung gesprochen.
Wildcard
Eine Wildcard ist ein Platzhalter [62]. Bei der Suche nach Daten können diese sehr hilfreich sein, wenn der
vollständige Name der Datei nicht bekannt ist. Je nach Umgebung gibt es beispielsweise folgende Wildcards:
• ?_? = gilt genau für ein Zeichen
• ?%? = gilt für beliebig viele Zeichen
Die Bedeutung und Anzahl der Wildcards ändert sich von Datenbanksprache zu Datenbanksprache.
Zeiger - Pointer
Ein Zeiger ist ein Verweis auf einen Datensatz oder ein Feld [63]. Bei Datenänderung wird ein Zeiger gesetzt und
somit verhindert, dass gleichzeitig verschiedene Schreibzugriffe auf den gleichen Datensatz stattfinden.
Zugriff
Ein Zugriff auf eine Datenbank ist die Möglichkeit deren Ressourcen zu benutzen [64].
Zugriffsrecht
Zugriffsrechte werden vergeben, damit nicht jeder auf alle Ressourcen zugreifen darf. Bei SQL wird dafür das
Schlüsselwort GRANT verwendet [65].
1.1.4 Sonstiges
16
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Zugriffszeit
Die Zugriffszeit ist die Zeit zwischen anfordern und erhalten von Daten [66]. Sie wird oft in Millisekunden (ms)
angegeben.
1.2 Modellierung
1.2.1 ER - Modelle
Attribut
Ein Attribut beschreibt eine Eigenschaft die eine Relation annehmen kann. Eine Relation kann eine Vielzahl an
Attributen besitzen. Die Relation Kunde hat typischerweise folgende Eigenschaften [67]:
• Name
• Vorname
• Geburtsdatum
• PLZ
•?
Bei einer Tabelle sind Attribute vergleichbar den Bezeichnungen der Spalten.
Bereichsintegrität
Die Bereichsintegrität ist eine Form der logischen Konsistenz von Daten. Sie besagt, dass der Wert von jedem
Attribut in einem bestimmten Wertebereich liegen muss. Beispielsweise muss das Attribut Geburtsdatum der
Relation Kunde ein gültiges Datum besitzen [68].
Beziehung
Zwei verschiedene Relationen können eine Beziehung untereinander haben. Dabei gibt es drei unterschiedliche
Arten:
• 1 zu 1: Jede Entität von Tabelle 1 hat eine Entität von Tabelle 2.
• 1 zu n: Jede Entität von Tabelle 1 hat eine oder mehrere Entitäten von Tabelle 2.
• n zu m: Eine oder mehrere Entitäten von Tabelle 1 haben eine oder mehrere Entitäten von Tabelle 2.
Jede Beziehung wird in der Regel durch ein Verb benannt. Die Beziehung der Relationen Kunde und Ort würde
die Beziehung folgendermaßen lauten.
• Ein Kunde wohnt in einem Ort
• In einem Ort können mehrere Kunden wohnen
Für die Betrachtung ist es notwendig beide Richtungen zu berücksichtigen. Andernfalls ist es nicht möglich zu
bestimmen, welche Art von Beziehung vorliegt [69]. Das genannte Beispiel ist somit eine 1:n Beziehung.
1.2 Modellierung
17
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Dateninkonsistenz
Eine Datenbank wird dann als inkonsistent bezeichnet, wenn redundant gespeicherte Daten in der Datenbank
unterschiedliche Werte annehmen. Wenn darauf gleiche Abfragen ausgeführt werden und dabei anschließend
unterschiedliche Antworten zurückgegeben werden, gilt die Datenbank als inkonsistent. Beispielsweise wenn ein
Kunde an unterschiedlichen Stellen der Datenbank mit unterschiedlichen Adressen angelegt worden. Eine
Abfrage der Adresse kann somit unterschiedliche Daten annehmen [70]. Eine nicht konsistente Datenbank kann zu
schwerwiegenden Fehlern führen.
Datenkonsistenz
Unter Datenkonsistenz versteht man das korrekte Abspeichern von Daten in die Datenbank. Somit dürfen keine
Inkonsistenzen bestehen [71]. Dabei kann man zwei unterschiedliche Ebenen von Konsistenzen festlegen, einmal
die technische und die logische. Technisch gesehen steht die Funktionalität der Datenbank im Vordergrund:
• korrekte Lesezugriffe
• korrekte Schreibzugriffe
Die logische Konsistenz geht mehr auf die Daten selber ein. Es gelten dabei vier verschiedene
Integritätsbedingungen:
• Bereichsintegrität
• Entitätsintegrität
• Referentielle Integrität
• Logische Konsistenz
Eine Datenbank gilt nur als konsistent, wenn alle Bedingungen erfüllt sind.
Datenredundanz
Man spricht von Datenredundanz in einer Datenbank, wenn dieselben Daten an unterschiedlichen Orten
gespeichert werden. Beispielsweise wenn Daten von Kunden nicht ?zentral? in einer Tabelle zu finden sind,
sondern in viele verschiedenen. Durch Datenredundanzen können verschiedene Probleme in Datenbanken
auftreten:
• Dateninkonsistenzen
• Datenanomalien
Das Ziel eines jeden Datenbanksystems ist es Datenredundanzen zu vermeiden, allerdings gibt es
Anwendungsfälle wo genau dieses gewollt ist, beispielsweise zur Erhöhung der Ausfallsicherheit [72].
Entität
Eine Entität ist eine reale Abbildung eines bestimmten Objektes (Relation). Durch die Attribute der jeweiligen
Relation besitzen Entitäten bestimmte Informationen. Verwendet die Relation Kunde beispielsweise die Attribute
Name, Vorname und Geburtsdatum, wäre das folgende eine mögliche Entität [73]:
1.2.1 ER - Modelle
18
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
• Name: Mustermann
• Vorname: Max
• Geburtsdatum: 01.01.2000
•?
Vergleichbar sind Entitäten mit den Zeilen einer Tabelle.
Entitätsintegrität
Die Entitätsintegrität ist eine Form der logischen Konsistenz von Daten. Sie besagt, dass jede Relation einen
eindeutigen primären Schlüssel besitzen muss. Er darf nicht den Wert null besitzen [74].
Entitätsmenge
Die Entitätsmenge beschreibt die Sammlung aller Entitäten einer jeweiligen Relation [75]. Vergleichbar ist dies
mit dem gesamten Inhalt einer Tabelle.
Entity-Relationship-Modell (ER-Model)
Das Entity-Relationship-Modell oder auch ER?Diagramm ist ein wichtiges Instrument zum entwerfen eines
konzeptionell relationalen Datenmodells. Durch immer komplex werdende Datenbanken dient es dem Anwender
dazu die Struktur der Daten besser zu verstehen. Dadurch können einfacher Datenredundanzen vermieden
werden. Beim ER-Model werden alle Entitäten und deren Beziehung zueinander grafisch dargestellt [76].
Abbildung 13: ER-Modell einer Beispieldatenbank
Die bekannteste Notation stellt die von Peter Chen dar. Dabei wird folgende Darstellungsform angewandt:
• Entität: Rechteck
• Attribut: Name in einem Oval
• Beziehung: Verbindungslinie
• Kardinalität: Ziffer jeweils am Ende der Beziehung
• Beziehungsbezeichnung: Raute mittig der Beziehung
Fremdschlüssel ? Foreign Key / Secondary Key
Ein Fremdschlüssel ist ein Attribut, welches auf einen primären Schlüssel einer anderen Relation verweist. Der
1.2.1 ER - Modelle
19
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Schlüssel wird verteilt um die Beziehung zwischen zwei Relationen zu gewährleisten. So hat die Relation Kunde
das Attribut PLZ der Relation Ort als Fremdschlüssel bekommen [77]. Wie in dem Buch Relationale Datenbanken
und Standard-SQL beschrieben wird, ?für eine Beziehung über einen Fremdschlüssel wird allgemein die
referenzielle Integrität gefordert [?]? [78]. Ohne ist eine Beziehung nicht möglich.
Integrität
Die Integrität ist eines der drei klassischen Ziele der Informationssicherheit und somit auch von Datenbanken. Sie
besagt, dass die Daten korrekt in der Datenbank abgelegt sind und nicht ungewollt geändert werden. Deshalb
kann man vier verschiedene Arten von Integritäten definieren [79]:
• Korrekter Inhalt: Konsistente Daten.
• Unmodifizierter Zustand: Unveränderte Daten.
• Erkennung von Modifikationen: Modifikationen werden protokolliert.
• Temporale Korrektheit: Beispielsweise korrekte Datenübertragung.
Kardinalität
Die Art einer Beziehung (1 zu 1, 1 zu n oder n zu m) wird auch Kardialität genannt [80]. Sie bezeichnet somit wie
viele Entitäten zweier Relationen in Beziehung stehen. Jede Beziehung hat somit zwei Kardialitäten, eine für jede
Relation.
Kardinalitätsverhältnis
Das Kardinalitätsverhältnis drückt das Verhältnis zweier Kardinalitäten aus, also die Art der Beziehung zweier
Relationen. die Art der Beziehung aus. Genauer gesagt drückt sie aus, wie viele Entitäten der einen Tabelle zu wie
vielen Entitäten der anderen Tabelle zugeordnet ist [81]. Das Verhältnis kann also folgendermaßen lauten:
• 1 zu 1
• 1 zu n
• n zu m
Logische Konsistenz
Die Logische Konsistenz ist eine besondere Form der Konsistenz, wenn sie kann zusätzlich vom Benutzer
definiert werden. Sie ist aber nicht Pflicht in einer Datenbank und werden deshalb auch nicht automatisch
kontrolliert [82]. Bei der Relation Kunde könnte dies beispielsweise die Regel vorliegen, dass keine
Minderjährigen bestellen dürfen.
Normalform
Die Normalform wird durch die Normalisierung erreicht, in dem Schrittweise die Redundanzen eines
Datenmodells entfernt werden [83].
Primärschlüssel ? Primary Key
1.2.1 ER - Modelle
20
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Ein primärer Schlüssel kennzeichnet die Entitäten einer Relation eindeutig. Der Schlüssel kann auf zwei
verschiedenen Wegen definiert werden [84]:
• Ein eindeutiges Attribut wie beispielsweise Kundennummern bei der Relation Kunde. Dieses Attribut
wird häufig auch selber generiert.
• Mehrere Attribute werden zum, primären Schlüssel zusammengefasst. Bei der Relation Kunde
beispielsweise die Attribute Name, Vorname und Geburtstag.
Bei Relationen die in Beziehung zueinander stehen wird genau dieser primäre Schlüssel als Fremdschlüssel in die
andere eingetragen. Somit erhält die Relation Kunde den Fremdschlüssel der Relation Ort.
Referentielle Integrität
Die Referentielle Integrität ist eine Form der Datenintegrität auf Beziehungsebene. Sie befasst sich im
Wesentlichen mit zwei Dingen:
• Korrektheit zwischen Attributen einer Relation
• Erhaltung der Eindeutigkeit ihrer Schlüssel (Primär und Sekundär)
Sie gewährleistet, dass bei zwei in Beziehung stehenden Relationen die Verbildung korrekt die Schlüssel
ausgetaucht wurden. Erst dadurch stehen sie in Beziehung zueinander. Bei einer 1 zu n Beziehung zwischen den
Relationen Kunde (PK Kundennummer) und Ort (PK Ort) muss somit der Primärschlüssel der Relation Ort in die
Relation Kunde mit aufgenommen werden [85]. Erst dadurch ist die Referentielle Integrität gewährleistet und die
Relationen stehen in Beziehung zueinander.
Relation
Der Begriff Relation kommt im eigentlichen Sinne aus der Mathematik und steht für eine Beziehung zwischen
zwei Dingen. Im Bereich der Datenbanken kann der Begriff der Relation als Synonym von Tabellen gesehen
werden [86]. Diese Tabellen stehen in können in verschiedenen Beziehungen zueinander stehen. Die Relationen
bestehen aus Attributen und aus einer Vielzahl an Entitäten, die die reale Welt nachbilden.
Sekundärschlüssel
Sekundärschlüssel sind Attribut (-gruppen) die häufig als Suchbegriffe verwendet werden. In einer Relation
Kunde könnte dies beispielsweise der Name oder Vorname sein. In Datenbanken geschieht die Implementierung
von Sekundärschlüssel durch Indizes, ist allerdings nicht unbedingt notwendig für eine lauffähige Datenbank [87].
1.2.2 Normalisierung
Normalisierung
Man beginnt mit der Entwicklung einer Datenbank mit dem sammeln benötigter Attribute und fasst diese in
?einer Relation? zusammen. Dies könnte folgendermaßen aussehen:
Tabelle 4: Relation vor einer Normalisierung
1.2.2 Normalisierung
21
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Kundennummer
Name
Vorname
1
Mustermann Max
2
Muster
PLZ
12345
Maximilian 23456
Ort
Artikelnummer
Musterhausen
121, 122
Musterdorf
123
Artikel
Stift,
Uhr
Papier
Bei der Realisierung so einer Datenbank würden mehrere Probleme auftreten:
• Die Performance bei Abfragen ist sehr hoch, da alle Daten ?durchsucht? werden [88].
• Nicht atomare Attribute können nicht richtig dargestellt werden [89].
• Beim Löschen eines Tupels gehen Daten verloren, die woanders nicht benötigt werden [90].
• Beim Ändern eines Wertes (z.B. Adresse eines Kunden) müssen mehrere Tupel angepasst werden [91].
•?
All diese Probleme geht man durch eine durchgeführte Normalisierung aus dem Weg. Dabei werden alle Attribute
auf verschiedene Relationen verteilt, die in Beziehung zueinander stehen. So beugt man vor, dass keine
Inkonsistenzen oder Anomalien sich in der Datenbank befinden [92]. Der Prozess der Normalisierung gliedert sich
in verschiedenen Phasen:
• 1. Normalform
• 2. Normalform
• 3. Normalform
• ...
Der Prozess beginnt mit der 1. Normalform und geht Schritt für Schritt weiter. In der Praxis hört man nach der 3.
Normalform auf, in der Theorie gibt es aber noch weitere Formen. Zudem kann im Nachhinein noch manuell
Anpassungen vorgenommen werden, damit die Datenbank praktikabeler wird.
1. Normalform
Beginn einer Normalisierung ist die 1. Normalform. Die Definition laut Hans Robert Hansen und Gustaf
Neumann besagt: ?In der ersten Normalform [?] dürfen in jeder Relation nur atomare (nicht weiter zerlegbare)
Attribute sein.? [93] Zum einen müssen somit alle Attribute mit mehr als ein Wert in einer separaten Relation
ausgelagert werden. Jeder Wert bekommt zusätzlich einen neuen Datensatz zugewiesen. In einem Beispiel sieht
es folgendermaßen aus:
Vorher:
Tabelle 5: 1. Normalform: Unnormalisierte Relation
Kundennummer
Name
Vorname
PLZ
Ort
Artikelnummer
1
Mustermann Max
12345
Musterhausen
121, 122
2
Muster
23456
Musterdorf
123
Maximilian
Artikel
Stift,
Uhr
Papier
Nachher:
Tabelle 6: 1. Normalform: Relation Kunde
1.2.2 Normalisierung
22
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Kundennummer
1
2
Name
Mustermann
Muster
Vorname
Max
Maximilian
PLZ
12345
23456
Ort
Musterhausen
Musterdorf
Tabelle 7: 1. Normalform: Relation Artikel
Kundennummer
1
1
1
Artikelnummer
121
122
123
Artikel
Stift
Uhr
Papier
Die Attribute Artikelnummer und Artikel haben je 2 Werte und werden somit ausgelagert, der primäre Schlüssel
Kundennummer wird mit übertragen. So fallen beide ausgelagerten Attribute aus der 1. Relation und es entsteht
eine weitere mit Artikelnummer, Artikel und Kundennummer. Als primärer Schlüssel kommt ein
zusammengesetzter mit Artikel- und Kundennummer zum Einsatz. Nun hat man die 1. Normalform erreicht.
2. Normalform
Um ein Datenbankentwurf in die 2. Normalform zu bringen gilt es als Voraussetzung, dass der Entwurf bereits die
erste Normalform durchlaufen hat. Außerdem ?muss jedes Nichtschlüsselattribut einer Tabelle voll funktional
vom Schlüssel dieser Tabelle abhängen.? [94] Bei folgenden Konstellationen ist automatisch die 2. Normalform
erreicht:
• Die Relation hat kein zusammengesetzten Schlüssel
• Alle Attribute einer Relation gehören zum Schlüssel
Genau dies tritt bei folgender Relation auf:
Tabelle 8: 2. Normalform: Relation Kunde
Kundennummer
1
2
Name
Mustermann
Muster
Vorname
Max
Maximilian
PLZ
12345
23456
Ort
Musterhausen
Musterdorf
Die nächste Relation allerdings muss bearbeitet werden, da sie aus einem zusammengesetzten Schlüssel besteht:
Vorher:
Tabelle 9: 2. Normalform: Relation Artikel
Kundennummer
1
1
1
Artikelnummer
121
122
123
Artikel
Stift
Uhr
Papier
Nachher:
1.2.2 Normalisierung
23
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Tabelle 10: 2. Normalform: Relation Bestellung
Kundennummer
1
1
1
Artikelnummer
121
122
123
Tabelle 11: 2. Normalform: Relation Artikel
Artikelnummer
121
122
123
Artikel
Stift
Uhr
Papier
Das Attribut Artikel ist funktional abhängig von Artikelnummer und nicht vom gesamten Schlüssel. Somit
entsteht eine zusätzliche Relation mit Artikel und dem abhängigen Attribut Artikelnummer. Aus der vorhandenen
Relation wird Artikel entfernt, Artikelnummer bleibt als Schlüssel erhalten. Nun ist die 2. Normalform erreicht.
3. Normalform
Um einen Datenbankentwurf in die 3. Normalform zu bringen gilt aus Vorraussetzung, dass bereits die erste und
zweite Normalform erreicht ist. Außerdem darf ?kein Nicht-Schlüsselattribut transitiv vom Schlüssel anhängen.?
[95] Somit muss überprüft werden, ob Nichtschlüsselattribute untereinander Abhängigkeiten besitzen (transitive
Abhängigkeit). Bei Relationen mit nur 2 Attributen kann dies nicht der Fall sein. Bei mehr als 2 Attributen muss
auf transitive Abhängigkeiten überprüft werden. Folgende Relation hat eine transitive Abhängigkeit zwischen
PLZ und Ort:
Vorher:
Tabelle 12: 3. Normalform: Relation Kunde
Kundennummer
1
2
Name
Mustermann
Muster
Vorname
Max
Maximilian
PLZ
12345
23456
Ort
Musterhausen
Musterdorf
Nachher:
Tabelle 13: 3. Normalform: Relation Kunde
Kundennummer
1
2
Name
Mustermann
Muster
Vorname
Max
Maximilian
PLZ
12345
23456
Tabelle 14: 3. Normalform: Relation Ort
1.2.2 Normalisierung
24
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
PLZ
12345
23456
Ort
Musterhausen
Musterdorf
Das transitive Attribut Ort bildet eine neue Relation und als Schlüssel wird das Attribut PLZ verwendet. Es wird
immer das Attribut übertragen zu welchem die direkte Abhängigkeit besteht. Nach diesem Schritt befindet sich
die Datenbank in der 3. Normalform.
Denormalisierung
Die Denormalisierung steht im Gegensatz zur Normalisierung. Dort werden bewusst die einzelnen
Normalisierungsschritte mit folgendem Ziel zurückgenommen :
• Verbessern der Performance
• Verringern der Komplexität
• Administrierbarkeit vereinfachen
Durch die Denormalisierung gewisse können Probleme auftreten können. Durch das Speichern redundanter Daten
besteht die Gefahr von Datenanomalien und es wird zusätzlicher Speicherplatz benötigt [96].
Funktionale Abhängigkeit
Eine funktionale Abhängigkeit zwischen zwei Attributen besteht genau dann, wenn das erste Attribut eine
Ausprägung zum zweiten Attribut besitzt. Oder anders gesagt, muss das erste Attribut irgendwie im
Zusammenhang des zweiten stehen [97]. Die funktionale Abhängigkeit (bzw. die voll funktionale Abhängigkeit)
spiegelt ein wesentlicher Bestandteil der 2. Normalform wieder. Die ist genau dann erfüllt, wenn jedes Attribut
diese Abhängigkeit zum Primären Schlüssel besitzt.
Nichtschlüsselattribut
Ein Nichtschlüsselattribut ist ein Attribut welches nicht der primäre bzw. sekundäre Schlüssel ist und auch nicht
zu einem zusammengesetzten Schlüssel gehört [98].
Schlüsselattribut
Ein Schlüsselattribut ist ein Attribut welches entweder der primäre bzw. Sekundäre Schlüssel ist oder zu einem
zusammengesetzten Schlüssel gehört [99].
Transitive Abhängigkeit
Die transitive Abhängigkeit spielt bei der 3. Normalform eine wichtige Rolle. Eine transitive Abhängigkeit
zwischen zwei Attributen besteht genau darin, wenn Attribute nur indirekt in Abhängigkeit des primären
Schlüssel stehen. Dies Bedeutet, dass keine direkte Abhängigkeit vorhanden ist, sondern das Attribut nur über ein
1.2.2 Normalisierung
25
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
weiteres in Abhängigkeit zum Primärschlüssel steht [100].
Voll funktionale Abhängigkeit
Eine Relation ist voll funktional Abhängig wenn jedes Attribut abhängig vom primären Schlüssel ist [101]. Siehe
auch 2. Normalform.
1.3 Funktionen des DBMS
Anfrage - Query
?Eine Anfrage (Query) in SQL extrahiert Daten [...], etwas genauer formuliert, eine Anfrage nimmt eine oder
mehrere Tabellen entgegen und transformiert diese in eine Ergebnistabelle.? [102] Eine Anfrage oder auch Abfrage
ermöglicht dem User das Abrufen der Daten oder ganzer Tabellen und formt diese Anfrage wieder zu einer
Ergebnistabelle zusammen.
Anfrageoptimierung
Um eine Anfrageoptimierung zu gewährleisten, muss eine Datenbanksprache im DBMS hinterlegt sein. Die
Sprache überträgt die Anfrage in logische Operatoren und übersetzt anschließend die Anfrage. Die Übersetzung
der logischen Operatoren wird auf Datenbankebene von den sogenannten ?Datenbankoperatoren? übernommen
[103].
Datenintegrität
Datenintegrität oder auch Datenkonsistenz beschreibt die Richtigkeit der Daten innerhalb einer Datenbank. Wenn
man die Integrität in einer Datenbank gewährleisten will, muss man zwischen der technischen Integrität oder
logischen Integrität unterscheiden. Die technische Konsistenz muss dafür Sorgetragen, dass die Lese- und
Schreibrechte innerhalb der Datenbank, wie im DBMS definiert, funktioniert. Die logische Konsistenz soll die
Korrektheit und logische Verknüpfung der Daten in einer Datenbank sichern. Um eine logische Konsistenz zu
gewährleisten, werden Integritätsbedingungen aufgestellt. Sollte auch nur eine der Integritätsbedingungen verletzt
werden, so gilt ein solcher Zustand als nicht konsistent [104].
Datenbanksprachen ? Query Language
In einem DBMS gibt es an der Schnittstelle eine Datenbanksprache, die für unterschiedliche Nutzungen
konzeptioniert wurde.
• Datenanfrage (retrieval)
• Datenmanipulation (Data Manipulation Language, DML)
• Verwaltung der Datenbank (Data Definition Language, DDL)
• Berechtigungssteuerung (Data Control Language, DCL)? [105]
1.3 Funktionen des DBMS
26
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Es muss für die einzelnen Benutzergruppen unterschiedliche Datenbanksprachen zur Verfügung stehen, da nicht
alle Benutzer den gleichen technischen Background besitzen. ?Dazu zählen Anfragesprachen für gelegentliche
Benutzer, Programmierschnittstellen und grafische Benutzeroberflächen (Graphical User Interface, GUI).? [106]
Datensicherheit
Die Datensicherung ist ein wesentlicher Bestandteil eines DBMS und die dazu gehörige ?Gewährleistung eines
dauerhaften konsistenten Zustandes der Daten? [107]. Die Sicherheit in den Bereichen der Computersysteme ?wird
äußerst vielseitig verwendet und umfasst ein Spektrum von moralischen/gesellschaftlichen Fragen,
gesetzlich/rechtlichen Belangen, personellen und organisatorischen Aspekten bis hin zu technischen
Vorkehrungen, die vor Verlust, Zerstörung oder Missbrauch von gespeicherten Informationen schützen sollen?
[108]. Es gibt unterschiedliche Möglichkeiten die Sicherheit der Daten zu gewährleisten. Eine Möglichkeit wäre
die ?Identifikation und Authentisierung?. Sobald ein Benutzer auf Daten innerhalb einer Datenbank zugreift
erfolgt eine Identifikation des Users, in Form von Benutzername und Passwort. Die Authentisierung prüft im
System die Ursprünglichkeit des Benutzers in Form der Passwortabfrage. Es folgt die Autorisierung und
Zugriffskontrolle, die den Zugriff des Benutzers festlegt. Bedeutet im Detail: Jeder Benutzer oder Benutzergruppe
hat festgelegten Zugriff auf die einzelnen Daten des DBS [109].
Mehrbenutzerfähigkeit ? Multiuser Functionality
Eine Datenbank muss so konzeptioniert sein, dass konkurrierende Transaktionen innerhalb einer Datenbank
abgefangen werden. Die ?Transaktionen mehrerer Benutzer müssen synchronisiert werden, um gegenseitige
Beeinflussung, z.B. bei Schreibkonflikten auf gemeinsam genutzten Daten, zu vermeiden (concurrency controll)?
[110].
Transaktion
Unter einer Transaktion versteht man, ?mehrere Datenbankänderung, die logisch eine Einheit bilden? [111]. Die
Einheit muss bei Ausführung vollständig und fehlerfrei sein ? sollte dies nicht der Fall sein, muss die ausgeführte
Transaktion automatisch zurückgesetzt werden. Als Grundlage eines konsistenten Zustandes der Datenbank muss
das sogenannte ?ACID-Prinzip? [112]. eingehalten werden.
1.4 Komponenten
1.4.1 DBMS
Buffer Manager (BM)
Der Buffer Manager verwaltet den für das DBMS hinterlegten Puffer im Hauptspeicher. Das bedeutet im Detail:
Für jede Transaktion die von einem User ausgeführt wird ist ein gewisser Puffer im Speicher hinterlegt, der eine
Ausführung sicherstellt [113].
1.4 Komponenten
27
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Buffer Pool (BP)
Der Buffer Pool, auch Puffer Pool genannt, bezeichnet den Cache eines DBMS. Durch diesen Pool sollen die
Zugriffszeiten und Abfragezeiten in einem DBMS reduziert werden. Es werden Teile der Datenbank in einem
Bereich des Arbeitsspeichers gespeichert, um einen erneuten Zugriff auf die Festplatte zu vermeiden. Somit
verringert sich die Zugriffszeit und die Anfrage kann schneller verarbeitet werden, weil ein erneuter Zugriff auf
die Daten innerhalb der Festplatte nicht nötig ist. Das Zwischenspeichern im Hauptspeicher erfolgt immer in
Blöcken, da Festplatten nur einen blockweisen Zugriff unterstützen. ?Dies bedeutet, dass bei Änderungen auch
nur eines Feldes eines Datensatzes immer der gesamte Block(mit einer Größe von 4 oder 8 KB) gelesen bzw.
geschrieben werden muss.? [114]
Datenmanager (DM)
Der Datenmanager in einem DBMS hat die Aufgabe, die angeforderten Anfragen dem richtigen Client zugeordnet
werden. Der DM wird auf dem gesamten DBMS ausgeführt und lässt ein dezentrales Datenbankkonzept für den
Client als eine logische Einheit aussehen. Ein DM sind bei physisch voneinander getrennten Datenbanken
wichtig, damit die unterschiedlichen Transaktionen auch den richtigen Client erreichen [115].
Zugriffsmanager - Lock Manager
Der Lock Manager hat in einem DBMS eine zentrale Rolle: Er ist dafür zuständig Objekte, Tabellen oder Tupel
für Transaktionen zu sperren. Der Lockmanager führt dafür eine sogenannte ?Locktabelle?, in dem die einzelnen
Sperrungen hinterlegt sind. In dieser Tabelle sind die Transaktions-IDs zu jeder Sperrung gespeichert. Zusätzlich
muss das gesperrte Objekt auch mit einer eindeutigen Kennung hinterlegt werden. Bevor ein Objekt oder eine
Tabelle für eine Transaktion gesperrt wird, überprüft der Lockmanager die Locktabelle, ob dieses Objekt schon
durch eine andere Transaktion geblockt wird. ?Kann diese Sperre nicht erteilt werden [?], muss die Transaktion
warten, bis die Sperre aufgehoben ist? [116]
Query Processor
Ein Query Processor in einem DBMS verfolgt die Aufgabe, die Anfragen unter diversen Gesichtspunkten zu
bestimmen. Es werden nicht nur die Zugriffszeiten auf die Daten ermittelt, sondern auch hardwaretechnische
Aspekte, wie z.B. die CPU-Auslastung/Zeit, in Betracht gezogen [117].
Recovery Manager
Ein Recovery Manager muss eine Datenbank bei einem nicht konsistenten Zustand auf Grund von Verstößen der
Integritätsbedingungen oder nach einem Systemabsturz wieder auf einen konsistenten Zustand bringen. Eine
Möglichkeit zum Wiederherstellen des konsistenten Zustandes ist das Einspielen einer Sicherungskopie der
Datenbank [118].
Systemkatalog - Data Dictionary
1.4.1 DBMS
28
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Die beiden Begriffe müssen differenziert werden, da die Funktionalitäten in einem DBMS unterschiedlich sind.
?Das Data Dictionary ist ein Designdokument, das dem Datenbankentwicklungsteam als Nachschlagewerk dient,
um zu ermitteln, welche Tabellen welche Felder besitzen und welche Datentypen und Wertebereiche diese
besitzen. Der Systemkatalog ist der Bereich in der Datenbank, in der die Metainformation verwaltet werden.? [119]
Der Systemkatalog hält die Entscheidung und Umsetzung des Datenbankdesigners fest ? diese Informationen
werden gleichzeitig aber auch im Data-Dictionary gespeichert, da folglich das Data-Dictionary aus dem
Systemkatalog entsteht. Ein solcher Katalog wird von Datenbankdesigner genutzt, ?um homonyme und synonyme
Feldbezeichnungen zu entdecken? [120]
1.4.2 Tabelle
Attribut
?Attribute werden Entitytypen und Beziehungstypen als Eigenschaften zugeordnet. Sie erlauben deren
Charakterisierung, Identifizierung und Klassifizierung.? [121] Attribute unterscheiden sich zwischen
?zusammengesetzten Attributen? (composite attributes) und atomaren, einwertigen Attributen (single-valued
attributes). Zusammengesetzte Attribute wie ?Lieferantenanschrift? können weiter zerlegt werden in Straße,
Hausnummer, Postleitzahl und Ort. Atomare Attribute besitzen genau einen Wert. Ein Beispiel wäre das Attribut
?Matrikel-Nummer?. Die Matrikel-Nummer wird unter den Studenten nur einmal vergeben und ist eindeutig und
nicht weiter zerlegbar. Attribute müssen nicht zwingend einen Wert besitzen (null-valued attribute), weil der Wert
des Attributes zur Zeit der Erstellung nicht bekannt ist und erst durch Abhängigkeit unterschiedlichster Ereignisse
abgeleitet wird [122].
Boolsche Operator
Boolesche Operatoren sind logische Verknüpfungen in Suchabfragen innerhalb einer Datenbank. Es gibt zwei
unterschiedliche Stadien: wahr (true) oder falsch (false). ?Es gibt vier unterschiedliche Grundoperatoren: AND,
OR, XOR und NOT.? [123]. Der Operator ?AND? verknüpft in einer Suchabfrage zwei Ausdrücke die erfüllt sein
müssen, damit die Abfrage als wahr gilt. Wenn innerhalb einer Datenbank ?Straße? AND ?Hausnummer? gesucht
werden sollen, gilt das Ergebnis erst dann als wahr, wenn beide Ausdrücke den gesuchten Parametern
entsprechen. Sobald bei einer Suchanfrage zwei Ausdrücke gesucht werden, wo es reicht, wenn ein Ausdruck der
Suchanfrage entspricht, benutzt man das logische Oder (OR). Die Anfrage gibt alle Daten wieder, die entweder
die gesuchte Straße, Hausnummer oder beides beinhaltet.
Daten
Daten sind Informationen, die als Zeichenketten unterschiedlicher Betrachtungen dem Benutzer Informationen
liefert. Der Aufbau der Daten untersteht einer Syntax, die das Lesen und Interpretieren von Informationen erlaubt.
Um die Daten auswerten oder benutzen zu können, müssen die Daten in einem Kontext stehen. Eine Zahlenfolge
von ?44579? kann als eine Postleitzahl, Telefonnummer oder ähnliches interpretiert werden. Aus diesem Grund
werden Daten in Tabellen gespeichert, die über eine Datenbanksprache (vgl. SQL) angesprochen und verwertet
werden [124].
Datenbestand
1.4.2 Tabelle
29
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Datenbestand ist eine Sammlung jeglicher Daten in einer Datenbank. Die Daten werden strukturiert akkumuliert
und in Tabellen gespeichert [125].
Datenmaske
Eine Datenmaske ermöglicht dem Benutzer einer Datenbank direkte Eingaben innerhalb des Systems. Die Maske
ist vordefiniert ? es besteht eine feste Eingabestruktur, die dem User die Eingabe erleichtern soll. Zur selben Zeit
werden durch die feste Eingabestruktur die fehlerhaften Eingaben reduziert [126].
Datensatz ? Record
?Logisch lässt sich eine strukturierte Datei als eine Folge von Datensätzen (Records) betrachten. Ein Datensatz
besteht aus mehreren Feldern (fields), deren Anzahl und Struktur in jedem Datensatz dieser Datei gleich ist.? [127].
Beispiel: Die Datenfelder ?StudentenName? und MatrikelNr? bilden zusammen den Datensatz, da sie inhaltlich
zusammengehören und den Datensatz ?Student? bilden.
Datentyp
Datentypen definieren die einzelnen Felder in einer Datenbank. Diese Definition der Felder ist elementar wichtig
für eine Datenbank, da das Speichern von Informationen in den Felder einem Muster entsprechen muss. Wenn wir
ein Feld numerisch definieren, können wir keine Informationen in Textform abspeichern. Durch das Definieren
der Felder ist es dem Datenbankmanagementsystem möglich, die einzelnen Felder zu interpretieren und
auszuwerten. Im folgenden eine Übersicht der einzelnen Basisdatentypen:
Tabelle 15: Übersicht Datentypen
Basisdatentyp
BOOLEAN
SMALLINT
INTERGER
BIGINT
DECIMAL(p, q)
NUMERIC (p, q)
REAL
DOUBLE
PRECISION
FLOAT
Char(q)
VARCHAR (q)
CLOB
NCLOB
String
BLOB
DATE
TIME
1.4.2 Tabelle
Instanz
Wahrheitswert
Ganze Zahlen
Dezimalzahlen (p-stellig, davon q
Nachkommastellen)
Gleitpunktzahl, einfache Genauigkeit
Gleitpunktzahl, doppelte Genauigkeit
Gleitpunktzahl, mindestens p Stellen
Genauigkeit
Zeichenkette mit genau q Zeichen
Zeichenkette mit maximal q Zeichen
Character Large Objekt; lange Zeichenkette
National (zeichenspezifisches) CLOB
Folge aus unterschiedlichen Zeichen (Zahlen,
Buchstaben, Sonderzeichen)
Binary Large Object; binäre Zeichenkette
Datum
Zeit
30
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
TIMESTAMP
INTERVAL
XML
Datum-Zeit-Stempel
Zeitintervall
XML-Wert
Feldlänge
Bei der Definition eines Datentyps (Feldart) besteht die Möglichkeit eine feste Feldlänge festzulegen. Durch die
Feldlänge beschränkt man die Eingabe der Informationen. Dies hat zum einen den Vorteil, dass die Datensätze
nicht zu groß werden und zum anderen nur relevante Informationen gespeichert werden [128].
Selektion
?Die Selektion realisiert eine Auswahl einer Tupelmenge aus einer Relation (Zeilenauswahl)? [129]. Durch eine
Selektion werden nur die Tupel angezeigt, geändert oder verglichen, die wir in der Auswahl festgelegt haben. In
der Datenbanksprache SQL wird eine Selektion durch die ?Where-Klausel? eingeleitet.
Tabelle 16: Relation Kunde für Selektion
Kundennummer
Name
Vorname
1
Mustermann Max
2
Musterfrau
Max
3
Muster
Maximilian
Eine Selektion könnte jetzt wie folgt aussehen:
PLZ
12345
12345
23456
...
...
...
...
select * Tabelle where PLZ = 12345
In dieser Abfrage bekommen wir nun alle Daten angezeigt, die in der Tabelle stehen, wo die PLZ den Wert 12345
hat. Durch diese Selektion bekommen wir nur die Daten, die für uns relevant sind.
Tupel
?Ein Tupel ist ein Element einer Relation. Es repräsentiert ein Objekt eines Objekttyps, für den die Relation
definiert ist, und wir über eine Tabellenzeile dargestellt.? [130] Tupel wird auch als Synonym für ?Zeile? in der
Datenbanksprache genutzt.
1.5 Abfragesprachen
QBE
QBE steht in der Datenbanksprache für Query by Example. Die grafische Anfragesprache wurde ihrerseits von
IBM Research entwickelt für das DBMS DB2. Der Vorteil an dieser Sprache ist, dass diese auf Templates und
vorgefertigten Masken basiert. Die Eingaben werden nicht wie in SQL in Text eingegeben, ?sondern durch ein
Tabellengerüst, das mit Spezial-Editoren bearbeitet werden kann. Hierfür stehen dem Benutzer Beispielelemente,
Vergleichsoperationen und Kommandos zur Verfügung" [131]. Die Sprache besitzt auch nur eine minimale Syntax
1.5 Abfragesprachen
31
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
? dies hat den Vorteil, dass der User bei Such- oder Updateabfragen keine Syntaxfehler begehen kann.
SQL
SQL (Structed Query Language) wird immer in Verbindung mit relationalen Datenbanken benutzt. Die SQL
Sprache wurde 1986 und 1992 zum ersten Mal standardisiert, jedoch wird das Programm nicht immer nach den
gesetzten Standards implementiert. Die einzelnen Befehle orientieren sich an der englischen Umgangssprache.
SQL erlaubt es uns mit diversen Befehlen wie das Ansehen, Verändern, Einfügen und Löschen von Daten
innerhalb der Datenbank. Des Weiteren haben wir durch SQL die Möglichkeit selbst eine Datenbanktabelle zu
erstellen und einzurichten. ?Bei so gut wie allen Client-Server-Systemen wird die Kommunikation zwischen
Client und Server über SQL abgewickelt und auch Desktop-Datenbanksysteme wie beispielsweise dBase oder
Access lassen sich per SQL-Anweisung steuern? [132].
TSQL
TSQL (Temporal Structed Query Language) ist eine Erweiterung von SQL, welcher zeitlich aufeinander folgende
Zustände berücksichtigen kann. Einsatzgebiet von TSQL sind zeitorientierte Datenbanken [133].
1.6 Analyse und Auswertung
Datamining
Data Mining beschreibt ein Verfahren zur Identifizierung von verborgenen Mustern und Strukturen aus einem
Data Warehouse, die eine ökonomische Relevanz besitzen und mit herkömmlichen Analysemethoden nicht zu
erkennen sind. Mithilfe der aufbereiteten Informationen und den erkannten Mustern, kann ohne Hypothese
Informationen zur Entscheidungsfindung erzeugt werden. Data Mining wird auch als Teil des Knowledge
Discovery angesehen [134].
Data Warehouse
Das Data Warehouse stellt ein Konzept zur Bereitstellung von Daten zu Analyse und entscheidungsunterstützende
Zwecke dar. Die Daten sind in einer Datenbank abgespeichert, die physikalisch von der operativen, zur
Produktion gehörenden Datenbank getrennt ist. Beide Datenbestände muss konsistent sein und im Data
Warehouse werden Daten nach inhaltlichen Themenschwerpunkte organisiert. Ein Data Warehouse besteht im
Groben aus drei verschiedenen Komponenten, und zwar aus der Import-, Verwaltungs- und Zugriffskomponente.
Die Importkomponente ist für die regelmäßige Übertragung von Daten aus der operativen Datenbank zuständig.
Dazu werden die Informationen zunächst ausgelesen und anschließend über eine Schnittstelle übertragen und
importiert. Den umfangreichen Datenbestand zu organisieren obliegt der Verwaltungskomponente. Anwender
erhalten über die Zugriffskomponente Zugang zu gespeicherten Daten. Dies wird in der Regel mit
Endbenutzerwerkzeuge wie OLAP oder Data Mining realisiert [135].
OLAP
1.6 Analyse und Auswertung
32
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Mit dem Begriff Online Analystical Processing wird ein analytisches Informationssystem beschrieben. Mithilfe
dieses Werkzeugs können vor allem Mitarbeiter führender Positionen und Manager über eine einfache
Benutzeroberfläche eine multidimensionale Datenanalyse durchführen. Die dazubenötigten Daten befinden sich in
einer Datenbank oder zumeist in einem Data Warehouse [136].
Report
Ein Report ist ein übersichtlich formatiertes Dokument einer Datenbankabfrage und wird in der Regel vom
Management verwendet, um Analysen vorzunehmen und Trends zu erkennen. Reports werden im Rahmen von
OLAP generiert [137].
1.7 Werkzeuge
Data Cleaning
Data Cleaning kann man in zwei Kategorien aufteilen, und zwar in die Kategorie zur Erkennung von Fehlern,
Ungenauigkeiten und Inkonsistenzen und in die Kategorie der Fehlerbehebung. Fehleridentifikationsprogramme
erkennen Duplikate, Werte, die außerhalb des legalen Wertebereichs liegen und Inkonsistenzen und bieten dem
Anwender eine Monitoring Funktionalität. Die meisten Data Cleaning Programme können sowohl Fehler
erkennen und beheben [138].
Export
Ein Datenbankmanagementsystem bietet dem Anwender die Funktionalität Daten aus einer Datenbank in eine
Datei zu exportieren, sodass diese Daten in ein anderes Datenbanksystem oder in eine neu erstellte Datenbank
importiert werden können [139].
Gespeicherte Prozedur
Gespeicherte Prozeduren sind vergleichbar mit UNIX Remote Procedure Calls und sorgen dafür, dass Teile des
Anwendungsprogramms lokal auf dem Datenbankserver ausgelagert werden, sodass geringere Bandbreiten
benötigt werden und die Leitungsfähigkeit erhöht wird. Eine geringere Bandbreite wird nur noch benötigt, weil
die Prozedur über einen Call Befehl aufgerufen wird und keine Prozedur übertragen werden muss. Nachteil von
gespeicherten Prozeduren ist der Mehraufwand für den Server [140].
Import
Ein Datenbankmanagementsystem bietet dem Anwender die Funktionalität exportierte Daten oder Daten aus
anderen Datenquellen der eigenen Datenbank hinzuzufügen [141].
Migration
1.7 Werkzeuge
33
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Eine Migration ist das Übertragen von Daten von einem Datenbanksystem zu einem anderen Datenbanksystem.
Dies wird mit Migration-Programmen realisiert, die dem Anwender ermöglichen den Grad auszuwählen, mit
welchem die Migration stattfinden soll. Der Anwender kann entscheiden, ob eine komplette Datenbank oder nur
bestimmte Datenobjekte migriert werden sollen. Durch die Verwendung von Migrationsprogrammen erspart dem
Datenbankadministrator Zeit [142].
Partitionierung
Partitionierung dient dazu, um eine große Datenbank in kleinere logische Teile aufzuteilen, wodurch eine
strukturelle Optimierung erreicht wird. Dies kann auch dazuführen, dass die logischen Teile in unterschiedlichen
Dateien gespeichert werden. Bei Durchführung einer Partitionierung ist die Angabe eines Kriteriums notwendig.
Eine Datenbank mit Verkaufszahlen von Produkten kann z.B. mit Hilfe des Kriteriums der Zeit eingeteilt werden.
Dadurch wird bei der Abfrage ?Wie viele Produkte wurden im Juni verkauft?? nicht mehr die ganze Datenbank
abgefragt, sondern nur noch der logische Teil [143].
Trigger
Ein Trigger wird dazu benutzt bei einer bestimmten Bedingung eine Operation direkt von der Datenbank
auszuführen. Bei der Verwendung von Triggern ist Vorsicht geboten, weil durch getriggerte Operationen die
Wart- und Erweiterbarkeit einer Datenbank verschlechtert und undokumentierte Trigger schwer nachzuvollziehen
sind. Es sollte in der Regel vermieden werden fachliche Logik und Regeln mit Hilfe von Triggern zu
implementieren [144].
1.8 Schnittstellen
ADO
ActiveX Data Objects ist eine Weiterentwicklung der Schnittstellen ODBC, RDO und DAO und soll einen
universellen Datenbankzugriff gewährleisten. Dazu wird OLE DB für den Datenzugriff verwendet und ADO als
Programmierschnittstelle. Es wird entweder ein Datenbank spezifischer Treiber, auch genannt OLE DB Provider,
benutzt oder ein ODBC Treiber, wenn kein OLE DB Treiber für eine Datenbank existieren. Dies führt allerdings
zu einem langsameren Zugriff. Die hohe Anzahl von ADO Treibern ist positiv zu erwähnen, wobei dies als
negativen Effekt eine Vielzahl von unterschiedlichen ADO Versionen nach sich zieht, die für ein Programm
jeweils zu installieren ist [145].
ADO.NET (ActiveX Data Objects)
ADO.NET ist der Nachfolger von ADO und soll Zugriff auf verschiedene Datenquellen ermöglichen. Nicht
relationale Datenbanken werden ebenfalls unterstützt. Zu Beachten ist, dass trotzt der Namenähnlichkeit
ADO.NET und ADO grundsätzlich verschieden sind, da beide in unterschiedlichen IT Umgebungen entwickelt
worden sind. ADO verwendet eine Client-Server-Architektur und ADO.NET dagegen eine Internet-Architektur.
Das bedeutet, dass ADO.NET darauf ausgelegt ist, dass keine dauerhaften Sessions notwendig sind und bei
bestehender Verbindung synchronisiert wird [146].
1.8 Schnittstellen
34
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
API
API steht für Application Programming Interface und ist ein Verfahren, um vorher geschriebenen Code eines
Programms zu benutzen ohne diesen Code ein zweites Mal schreiben zu müssen. Dies vereinfacht den Zugriff auf
eine Datenbank. Dies hat als Effekt, dass der Programmierer nicht verstehen muss wie etwas funktioniert, sondern
kann einfach die Funktion verwenden. Als Beispiel kann man eine Library oder ein Framework aufzählen [147].
DAO
Data Access Objects stellt eine Schnittstelle für den Zugriff auf die Jet Database Engine, einem RDBMS, dar. Die
Jet Database Engine wird von verschiedenen Microsoft Softwareprodukten verwendet wie z.B. Microsoft Access
oder Visual Studio. DAO ist der Vorgänger zum universellen Datenzugriff mittels ADO [148].
Embedded SQL
Open DBX gibt Zugriff auf verschiedene DBMS und bietet eine einheitliche und konsistente API, die in C
programmiert worden ist. Durch den Zugriff auf Datenbanken, die als Abfragesprache nicht SQL benutzen, ist die
Schnittstelle performant und flexibler [149].
JDBC
Java Database Connectivity stellt die Datenbankschnittstelle für Java Applikationen dar. Vier Komponenten
enthält JDBC, um Zugriff auf eine Datenbank zu gelangen. Die JDBC API an sich ermöglicht der Applikation
SQL Anweisungen auszuführen und die Ergebnisse zu empfangen. Der JDBC Driver Manager definiert ein
Objekt zwischen der Applikation und dem JDBC Treiber. Um die Funktionalität des JDBC Treiber zu überprüfen
wird die JDBC Test Suite verwendet. Diese Komponente testet die grundlegenden Funktionen. Die vierte
Komponente ist die JDBC-ODBC Bridge, die den Datenbankzugriff mittels ODBC realisiert [150].
ODBC
Open Database Connectivity stellt eine einheitliche Programmierschnittstelle und stützt sich auf
datenbankspezifische Treiber. Dadurch können eine Vielzahl von Datenbanken identisch zugegriffen werden.
Dies wird durch den ODBC Treiber umgesetzt, der die ODBC Syntax in die spezifische Datenbanksyntax
übersetzt. Als negativen Nebeneffekt für die Datenbankunabhängigkeit ist eine geringere Geschwindigkeit beim
Datenbankzugriff zu verzeichnen [151].
OLE DB
Object Linking and Embedding Database ist eine Spezifikation für den Datenzugriff auf Daten ungeachtet von der
Art und Struktur. OLE DB ist der Nachfolger von ODBC und basiert auf das Common object model, welches
ebenfalls für einen universellen Datenzugriff steht [152].
OpenDBX
1.8 Schnittstellen
35
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Open DBX gibt Zugriff auf verschiedene DBMS und bietet eine einheitliche und konsistente API, die in C
programmiert worden ist. Durch den Zugriff auf Datenbanken, die als Abfragesprache nicht SQL benutzen, ist die
Schnittstelle performant und flexibler [153].
Perl DBI
Perl DBI ist ein Modul für Perl, um Zugriff auf Datenbanken zu erreichen. Das Modul zeichnet sich durch ihr
Schnelligkeit und Robustheit aus, sodass diese auch in businesskritischen Systemen eingesetzt wird. Es unterstützt
Datenbanken, die als Abfragesprache kein SQL benutzen. Dies wird durch ein Vierschichten-System realisiert.
Zwischen dem DBMS und der Perl DBI befindet sich noch die Schicht DBD, Data Base Driver, der übersetzt
SQL Anweisungen in einer verständlichen Form an das DBMS [154].
RDO ? Remote Data Objects
RDO steht für Remote Data Objects und ist der Vorgänger von DAO. Obwohl RDO stabil und schnell läuft, ist
diese Schnittstelle nicht so populär und wird zum jetzigen Zeitpunkt nicht mehr weiterentwickelt [155].
1.9 Produkte
DB2
DB2 ist ein objektrelationales Datenbankmanagementsystem mit paralleler Verarbeitungsfähigkeit und zeichnet
sich durch Skalierbarkeit aus, welche von einem Standalone-PC bis hin zu einer Multiuser Platform reicht. In
DB2 wird mit einer ?Shared Nothing?-Konfiguration gearbeitet, wodurch konsistene Datensätze garantiert
werden können. DB2 unterstützt eine Vielzahl von Betriebssystemen und bietet viele Schnittstellen, die wiederum
in statische und dynamische Schnittstellen zu unterteilen sind. Statische Schnittstellen bieten dem Anwender
vorgefertigte Kommandos und dynamische Schnittstellen manuell generierte SQL Anweisungen. Mit Hilfe von
Erweiterungen, sogenannten Extends, können multimediale Datentypen in der Datenbank verwaltet werden [156].
Db4o
Db4o ist ein objektorientiertes Datenbankbankmanagementsystem und wird unter dem Open Source
Lizenzmodell GPL veröffentlicht. Als Abfragesprache kommt Simple Object Data Access verwendet. Weiterhin
ist Db4o nicht für businesskritische Systeme gedacht , weil die Software noch in Entwicklung ist und einige
notwendigen DBMS Funktionalitäten von kommerziellen Produkten noch nicht implementiert sind [157].
INGRES
Interactive Graphics Retrieval System ist ein relationales Datenbankmanagementsystem und verwendet die
Schnittstellen JDBC, ODBC und Net Data Provider. In der Vergangenheit hat Ingres als Abfragesprache QUEL
verwendet, mittlerweile aber SQL. Genauso wie der Nachfolger Postgre SQl ist Ingres Open Source und unter
dem Lizenzmodell PGL veröffentlicht [158].
Informix
1.9 Produkte
36
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Informix ist ein relationales Datenbankmanagementsystem und zeichnet sich durch Hochverfügbarkeit,
Datenreplikation und hoher Skalierbarkeit aus. Deshalb wird Informix vor allem in businesskritischen
Umgebungen eingesetzt und gilt als Marktführer [159].
MaxDB
Max DB ist eine von SAP zertifizierte relationales Hochlastdatenbank. Als Abfragesprache wird SQL verwendet
und das wichtigstes Merkmal des RDBMS ist die Skalierbarkeit des Datenbanksystems. Somit wird eine hohe
Effizienz bei einer großen Anzahl an Anwendern und einer großen Datenbank gewährleistet. Max DB arbeitet im
Client-Server Betrieb und benutzt ein proprietäres Netzwerkprotokoll. Das RDBMS bietet dem Anwender eine
grafische Benutzerschnittstelle und einige Verwaltungsfeatures, die MySQL nicht bietet, wie z.B. eine
zeitgesteuerte Auftragsplanung und Ereignisse bei überschreiten von Grenzwerten [160].
MySQL
MySQL ist ein populäres DBMS für SQL Datenbanken und wird unter der Open Source Lizenz Modell GPL
veröffentlicht. Die Software MySQL ist in C/ C++ programmiert und bietet eine API für eine Vielzahl von
Programmiersprachen [161].
MySQL Cluster
MySQL Cluster ist eine Netzwerkdatenbank, das für businesskritischen Umgebungen ausgelegt ist. My SQL
Cluster verwendet MySQL als Frontend und unterstützt damit SQL Abfragen und verwendet für die
Clusterfunktionalität NDB Cluster. MySQL Cluster ist ohne MySQL einsetzbar, allerdings wird dann die
objektorientierte NDB API verwendet. MySQL Cluster bietet eine hohe Performance, Hochverfügbarkeit,
Redundanzen und Skalierbarkeit, sodass ein Single Point of Failure ausgeschlossen wird. Server, die Teil des
Clusters sind, besitzen eine Kopie der Daten. Um Inkonsistenzen zu vermeiden, kann nur eine Node gleichzeitig
schreiben während alle anderen Systeme nur Leseberechtigungen erhalten. Nach Abschluss der Schreiboperation
werden die Daten auf alle anderen Systemen aktualisiert [162].
Oracle
Oracle ist ein relationales Datenbankmanagementsystem und verwendet eine Client/ Server Architektur. Als
Datenbankabfragesprache wird SQL verwendet. Oracle ist auf vielen verschiedenen OS Platformen lauffähig und
die Oracle Datenbank kann bei Betriebssystemwechsel migriert werden, sodass der Betrieb keine lange Downtime
bei Migrationen erfährt. Weiterhin weist Oracle, aufgrund der Mehrprozessarchitektur und einen gemeinsamen
Speicherbereich, eine gute Skalierbarkeit auf [163].
PhpMyAdmin
PhpMyAdmin ist eine php-Webapplikation zur Verwaltung von MySQL Datenbanken und wird unter Open
Source Lizenz veröffentlicht. Es werden grundlegende Funktionen von MySQL Datenbanken und
Tabellenfunktionen unterstützt, sowie eine User- und Rechteverwaltung. PhpMyAdmin bietet im Vergleich zu
MySQL erweiterte Funktionen [164]:
• Abspeichern von SQL Abfragen
1.9 Produkte
37
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
• Hinzufügen von Spaltenkommentare
• Erstellen eines relationales Schemas
• Strukturverzeichnis im PDF Format
• Exportieren von Daten eines Servers
Postgresql
Postgre SQL ist der Nachfolger von Ingres und ist ein objektrelationales Datenbankmanagementsystem. Der
Quellcode von Postgre SQL ist einsehbar, da diese Software unter einer Open Source Lizenz veröffentlich wird.
Als Abfragesprache kommt SQL zum Einsatz und es werden objektrelationale Datenbanken unterstützt. Postgre
SQL bietet Schnittstellen zu vielen Programmiersprachen an und kann mit Hilfe von Erweiterungen weitere
Funktionalitäten erhalten. Für dieses ORDBMS existieren eine Vielzahl von Erweiterungen wie beispielsweise
Clusterfunktionalitäten [165].
Sqlite
SQLite ist ein relationales Datenbankmanagementsystem und wird unter dem Open Source Lizenzmodell GPL
veröffentlicht. Das Datenbanksystem zeichnet sich durch geringe Anforderung bezüglich Memory und
Festplattenspeicher aus. Die Datenbank wird in ein Programm eingebettet und wird samt Layout und Daten in
einer Datei gespeichert. Sie ist in der Regel so klein ist, dass die komplette Datenbank in den Arbeitsspeicher
geladen werden kann, wodurch die Datenbank performant arbeiten kann. SQLite wird in Umgebungen eingesetzt,
wo einfache Bedienung wichtiger ist als gleichzeitiger Zugriff, Kapazität oder Robustheit [166].
2 Anhang
2.1 Fußnoten
1. ? Vgl. Gabriel, Röhrs (1994), S. 268 - 272
2. ? Vgl. Geisler (2011), S. 95
3. ? Vgl. Saake, Sattler, Heuer (2005), S. 54
4. ? Vgl. Winkler (2009), S. 213 - 214
5. ? Vgl. Ahrends (2005), S. 27 - 28
6. ? Vgl. Winkler (2009), S. 215
7. ? Cordts (2002), S. 19
8. ? Cordts (2002), S. 18
9. ? Vgl. Winkler (2009), S. 215
10. ? Vgl. Kofler (2005), S. 280
11. ? Vgl. Asnani (2010), S. 28
12. ? Vgl. Sattler, Saake, Heuer (2010), S. 8
13. ? Vgl. Microsoft (2012)
14. ? Krcmar (2005), S. 25
15. ? Krcmar (2005), S. 25
16. ? Vgl. Kofler (2005), S. 532
17. ? Shirky (2000)
18. ? Vgl. Geisler (2011), S. 95
19. ? Vgl. Sattler, Saake, Heuer (2010), S.401 - 407
2 Anhang
38
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
20. ? Vgl. Plattner, Zeier (2011)
21. ? Vgl. Clausen (1998), S. 173 - 174
22. ? Vgl. Stefan Conrad (1997), S. 39 - 40
23. ? Vgl. Conrad (1997), S. 39
24. ? Vgl. Stahlknecht, Hasenkamp (2005), S. 198
25. ? Vgl. Conrad (1997), S. 36
26. ? Kilger (2001), S. 6
27. ? Vgl. Kilger (2001), S. 6 - 8
28. ? Vgl. Geisler (2011), S. 57
29. ? Vgl. Geisler (2011), S. 57 - 59
30. ? Vgl. Gabriel, Röhrs (1994), S. 156 - 157
31. ? Vgl. Kemper, Eickler (2011), S. 381
32. ? Vgl. Geisler (2011), S. 60
33. ? Vgl. Geisler (2011), S. 61
34. ? Vgl. Gabriel, Röhrs (1994), S. 104 - 109
35. ? Kazakos, Schmidt, Tomczyk (2002), S. 27 - 33
36. ? Vgl. Gumm, Sommer (2006), S. 758
37. ? Vgl. Tröschner (2007), S. 48
38. ? Vgl. Kruth (2009), S. 88
39. ? BSI (2009a)
40. ? BSI (2009b)
41. ? Vgl. Kruth (2009), S. 14
42. ? Vgl. Kofler (2005), S. 995
43. ? Vgl. Kruth (2009), S. 24, S. 43
44. ? Vgl. Winkler (2009), S. 227
45. ? Vgl. Sattler, Saake, Heuer (2010), S. 685
46. ? Vgl. Pernul, Unland (2003), S. 593
47. ? Vgl. Winkler (2009), S. 368
48. ? Vgl. Kofler (2005), S. 997
49. ? Vgl. Kofler (2005), S. 997
50. ? Vgl. Jele (2001), S. 113
51. ? Vgl. Krcmar (2005), S. 270
52. ? Vgl. UniDo (2011)
53. ? Vgl. Computerworld (2007), S. 241
54. ? Vgl. Winkler (2009), S. 620
55. ? Vgl. Kudraß (2007), S. 234
56. ? Vgl. Conrad (1997), S. 260
57. ? Vgl. Winkler (2009), S. 413
58. ? Vgl. Gookin, Gookin (2010), S. 282
59. ? Vgl. Gumm, Sommer (2006), S. 756
60. ? Vgl. Kruth (2009), S. 14
61. ? Vgl. Jele (2001), S. 116
62. ? Vgl. Gumm, Sommer (2006), S. 527
63. ? Vgl. Sattler, Saake, Heuer (2010), S. 517
64. ? Vgl. Kudraß (2007), S. 284
65. ? Vgl. Kudraß (2007), S. 150 - 152
66. ? Vgl. Gumm, Sommer (2006), S. 46
67. ? Vgl. Chen (1976)
68. ? Vgl. Microsoft (2004)
69. ? Vgl. Geisler (2011), S. 147 - 148.
70. ? Vgl. Hansen, Neumann (2009), S. 303
2.1 Fußnoten
39
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
71. ? Vgl. Hansen, Neumann (2009), S. 303
72. ? Vgl. Geisler (2011), S. 35 - 36
73. ? Vgl. Chen (1976)
74. ? Vgl. Microsoft (2004)
75. ? Vgl. Chen (1976)
76. ? Vgl. Geisler (2011), S. 65
77. ? Vgl. Matthiessen, Unterstein (2008), S. 42
78. ? Matthiessen, Unterstein (2008), S. 42
79. ? Vgl. Kemper, Eickler (2011), S. 159 - 160
80. ? Vgl. Geisler (2011), S. 148
81. ? Vgl. Hansen, Neumann (2009), S. 289
82. ? Vgl. Hansen, Neumann (2009), S. 303
83. ? Vgl. Hansen, Neumann (2009), S. 306
84. ? Vgl. Matthiessen, Unterstein (2008), S. 41
85. ? Vgl. Matthiessen, Unterstein (2008), S. 42
86. ? Vgl. Hansen, Neumann (2009), S. 299
87. ? Vgl. Saake, Heuer, Sattler (2005), S. 141 - 142
88. ? Vgl. Hansen, Neumann (2009), S. 305
89. ? Vgl. Hansen, Neumann (2009), S. 306
90. ? Vgl. Hansen, Neumann (2009), S. 306
91. ? Vgl. Hansen, Neumann (2009), S. 306
92. ? Vgl. Hansen, Neumann (2009), S. 306
93. ? Hansen, Neumann (2009), S. 306
94. ? Hansen, Neumann (2009), S. 307
95. ? Hansen, Neumann (2009), S. 307
96. ? Vgl. Geisler (2011), S. 199 - 200
97. ? Vgl. Hansen, Neumann (2009), S. 304
98. ? Vgl. Hansen, Neumann (2009), S. 292
99. ? Vgl. Hansen, Neumann (2009), S. 292
100. ? Vgl. Hansen, Neumann (2009), S. 307
101. ? Vgl. Hansen, Neumann (2009), S. 307
102. ? Kudraß (2007), S. 106
103. ? Vgl. Saake, Sattler, Heuer (2005), S. 335 - 338
104. ? Vgl. Saake, Sattler, Heuer (2005), S. 378 - 379
105. ? Kudraß (2007), S. 23
106. ? Kudraß (2007), S. 23
107. ? Kudraß (2007), S. 272 - 273
108. ? Pernul, Unland (2003), S. 421
109. ? Vgl. Pernul, Unland (2003), S. 421 - 422
110. ? Kudraß (2007), S. 24
111. ? Kudraß (2007), S. 24
112. ? Vgl. Saake, Sattler, Heuer (2005), S. 22 - 23
113. ? Vgl. Saake, Sattler, Heuer (2005), S. 610
114. ? Kudraß (2007), S. 243
115. ? Vgl. Geißler (2011), S. 374
116. ? Kudraß (2007), S. 266
117. ? Vgl. Sauer (2002), S. 170
118. ? Vgl. Klug (2008), S. 67
119. ? Frank Geisler (2011), S. 118
120. ? Frank Geisler (2011), S. 118
121. ? Kudraß (2007), S. 54
2.1 Fußnoten
40
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
122. ? Vgl. Pernul,Unland (2003), S. 34 - 35
123. ? Computerworld (2007), S.31
124. ? Vgl. Elmasri, Navathe (2005), S. 335 - 338
125. ? Vgl. Saake, Sattler, Heuer (2005), S. 54
126. ? Vgl. Gookin, Gookin (2010), S. 257
127. ? Kudraß (2007), S. 54
128. ? Vgl. Saake, Sattler, Heuer (2005), S. 108 - 109
129. ? Kudraß (2007), S. 100
130. ? Kudraß (2007), S. 75
131. ? Kudraß (2007), S. 105
132. ? Ebner (2002), S. 9
133. ? Vgl. Stahlknecht, Hasenkamp (2005), S. 198
134. ? Vgl. Gabriel, Gluchowski, Pastwa (2009), S. 115 - 120
135. ? Vgl. Gabriel, Gluchowski, Pastwa (2009), S. 43 - 45
136. ? Vgl. Gabriel, Gluchowski, Pastwa (2009), S. 42
137. ? Vgl. Pernul, Unland, S. 448
138. ? Vgl. Ponniah, S. 327
139. ? Vgl. Mullins (2002), S. 501 - 502
140. ? Vgl. Orhanovic, Grodtke, Tiefenbacher (2004), S. 309 - 311
141. ? Vgl. Mullins (2002), S. 501 - 502
142. ? Vgl. Mullins (2002), S. 582
143. ? Vgl. Geisler (2011), S. 408
144. ? Vgl. Starke (2009), S. 191
145. ? Vgl. Geisler (2009), S. 81 - 82
146. ? Vgl. Geisler, S. 83
147. ? Vgl. Stylos, Mellon (2009), S. 1 - 2
148. ? Vgl. Birnbaum, S. 328
149. ? Vgl. Warner (2007), S. 418 - 419
150. ? Vgl. Geisler (2009), S. 80 - 81
151. ? Vgl. Geisler (2009), S. 80 - 81
152. ? Vgl. Hammond, Robinson (2000), S. 238
153. ? Vgl. Linuxnetworks (2010)
154. ? Vgl. Seidel, Schröter (2004), S. 96 - 98
155. ? Vgl. Hammond, Robinson (2000), S. 238
156. ? Vgl. Chamberlin (1999), S. 25 - 26
157. ? Vgl. Paterson, Edlich, Lörning (2006), S. 3 - 6
158. ? Vgl. Hernandez, Viescas , S. 85 - 86
159. ? Vgl. Spencer (2004), S. 104
160. ? Vgl. MySQL AB Development Team (2007), S. 27 - 30
161. ? Vgl. Reese, Yarger, King (2002), S. 6 - 7
162. ? Vgl. Bell, Kindahl, Halmann (2010), S. 525 - 527
163. ? Vgl. Ahrends (2005), S. 15 - 16 und S. 35 - 38
164. ? Vgl. Delisle (2005), S. 24 - 25. und S. 28 - 30
165. ? Vgl. Matthew, Stones (2005), S. 11 - 15
166. ? Vgl. Kreibich (2010), S. 1 - 6
2.1 Fußnoten
41
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
2.2 Tabellenverzeichnis
Tab.-Nr.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Tabelle
Beispiel einer Tabelle Kunde
Relation Kunde mit einem neuen Datensatz für die Änderung
Relation Kunde mit einem zusätzliche Attribute für die Änderungen
Relation vor einer Normalisierung
1. Normalform: Unnormalisierte Relation
1. Normalform: Relation Kunde
1. Normalform: Relation Artikel
2. Normalform: Relation Kunde
2. Normalform: Relation Artikel
2. Normalform: Relation Bestellung
2. Normalform: Relation Artikel
3. Normalform: Relation Kunde
3. Normalform: Relation Kunde
3. Normalform: Relation Ort
Übersicht Datentypen
Beispieltabelle für eine Selektion
2.3 Abkürzungsverzeichnis
Abkürzung
ACID
ANSI
BDSG
BM
BP
BSI
CPU
DBMS
DBS
DBVS
DCL
DDL
DM
DML
DNS
ECA
ER-Modell
Bedeutung
Atomicity Consistency Isolation Durability
American National Standards Institute
Bundesdatenschutzgesetz
Buffer Manager
Buffer Pool
Bundesamt für Sicherheit in der Informationstechnik
Central Processing Unit
Datenbankmanagementsystem
Database System
Datenbankverwaltungssystem
Data Control Language
Data Definition Language
Datenmanager
Data Manipulation Language
Domain Name System
Event Condition Action
Entity-Relationship-Modell
2.2 Tabellenverzeichnis
42
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
ID
IMDB
IP
IS
ODBC
OLAP
OQL
P2P
PK
RAM
RDA
SOAP
SPARC
SQL
XML
Identifikator
In-Memory-Datenbank
Internet Protocol
Informationssystem
Open Database Connectivity
Online Analytical Processing
Object Query Language
Peer-to-Peer
Primary Key
Random-Access Memory
Remote Database Access
Simple Object Access Protocol
Standards Planning and Requirements Committee
Structured Query Language
Extensible Markup Language
2.4 Abbildungsverzeichnis
Abb.-Nr.
1
2
3
4
5
6
7
8
9
10
11
12
13
Abbildung
Schematischer Aufbau eines Client-Server-Systems
Aufgabenübersicht DBMS nach Cordts (Cordts (2002), S. 18)
Schema eines Datenbanksystems
Aufbau eines IS nach Krcmar
Schematischer Aufbau eines Master-Slave-Systems
Schematischer Aufbau eines Peer-to-Peer-Systems
Ebenen-Schema-Architektur (Vgl. Conrad (1997), S. 39)
Aufbau des ANSI-SPARC Architektur
Skizze einer Hierarchischen Datenbank
Skizze einer Netzwerk Datenbank
Aufbau eines Objektes einer objektorientierten Datenbank
Realisierung einer Beziehung in einer Relationalen Datenbank
ER-Modell einer Beispieldatenbank
2.5 Literatur- und Quellenverzeichnis
Ahrends, Johannes: Oracle 10g für den DBA: Effizient konfigurieren, optimieren und verwalten, 1. Auflag
Addison Wesley, München 2005
Asnani, Satish: Oracle Database 11g. Hands-on SQL and PL/SQL, PHI Learning Private Limited, New De
Asnani (2010)
2010
Bell, Kindahl, Bell, Charles; Kindahl, Mats; Halmann, Lars: MySQL High Availability: Tools for Building Robust Data
Halmann
Centers, 1. Auflage, O'Reilly Media, Kalifornien 2010
Ahrends (2005)
2.3 Abkürzungsverzeichnis
43
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
(2010)
Birnbaum
(2003)
Birnbaum, Duane: Microsoft Excel VBA Professional Projects, 1. Auflage, Premier Press, Boston 2003
Bundesamt für Sicherheit in der Informationstechnik: Glossar und Begriffsdefinition: Authentifizierung, 2
BSI (2009a/b) https://www.bsi.bund.de/DE/Themen/weitereThemen/ITGrundschutzKataloge/Inhalt/Glossar/glossar_nod
(13.05.2012 16:52 Uhr)
Chamberlin
Chamberlin, Donald D.: DB2 Universal Database: Der unentbehrliche Begleiter, 2. Auflage, Addison-Wes
(1999)
Bonn 1999
Chen, Peter Pin-Shan: The Entity-Relationship Model-Toward a Unified View of Data, 1. Auflage, ACM,
Chen (1976)
Cambridge 1976
Clausen (1998) Clausen, Nils: OLAP - Multidimensionale Datenbanken, 2. Auflage, Addison-Wesley Longman, Bonn 19
Computerworld Computerworld: Lexikon: Aktuelle Fachbegriffe aus Informatik und Telekommunikation, 9. Auflage,
(2007)
Hochschulverlag AG an der ETH Zürich, Zürich 2007
Conrad (1997) Conrad, Stefan: Föderierte Datenbanksysteme. Konzepte der Datenintegration, Springer, Heidelberg 1997
Cordts, Sönke: Datenbankkonzepte in der Praxis. Nach dem Standard SQL-99, Addison-Wesley, München
Cordts (2002)
2002
Delisle (2005) Delisle, Marc: PhpMyAdmin, 1. Auflage, Addison-Wesley, München 2005
Ebner, Michael: Anfangen Anwenden Verstehen SQL lernen, 2. aktualisierte Auflage, Addison-Wesley,
Ebner (2002)
München 2002
Elmasri,
Elmasri, Ramez A.; Navathe, Shamkant B.: Grundlagen von Datenbanksystemen, Addison-Wesley, Münc
Navathe (2009) 2009
Gabriel,
Gabriel, Roland; Gluchowski, Peter; Pastwa, Alexander: Datawarehouse & Data Mining, 1. Auflage, W3L
Gluchowski,
Witten 2009
Pastwa (2009)
Gabriel, Röhrs Gabriel, Roland; Röhrs, Heinz-Peter: Datenbanksysteme. Konzeptionelle Datenmodellierung und
(1994)
Datenbankarchitekturen, Springer, Berlin 1994
Geisler (2009) Geisler, Frank: Datenbanken. Grundlagen und Design, 3. Auflage, mitp, Heidelberg 2009
Geisler (2011) Geisler, Frank: Datenbanken. Grundlagen und Design, 4. Auflage, mitp, Heidelberg 2011
Gookin,
Gookin, Dan; Gookin; Sandra Hardin: Computerlexikon für Dummies, 5. Auflage, WILEY-VCH, Weinhe
Gookin (2010) 2010
Gumm,
Gumm, Heinz Peter; Sommer, Manfred: Einführung in die Informatik, 7. Auflage, Oldenbourg
Sommer (2006) Wissenschaftsverlag, München 2006
Hammond,
Hammond, Mark, Robinson, Andy: Python Programming on Win32, 1. Auflage, O'Reilly Media, Kaliforn
Robinson
2000
(2000)
Hansen,
Hansen, Hans Robert; Neumann, Gustaf: Wirtschaftsinformatik 1, 10. Auflage, Lucius & Lucius , Stuttgar
Neumann
2009
(2009)
Hernandez,
Hernandez, Michael J.; Viescas, John L.: Got to SQL, 1. Auflage, Addison-Wesley, Bonn 2001
Viescas (2001)
Jele (2001)
Jele, Harald: Informationstechnologien in Bibliotheken, Oldenbourg Wissenschaftsverlag, München 2001
Kazakos,
Schmidt,
Kazakos, Wassilios; Schmidt, Andreas; Tomczyk, Peter: Datenbanken und XML, 1. Auflage, Springer, Be
Tomczyk
Heidelberg 2002
(2002)
2.5 Literatur- und Quellenverzeichnis
44
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Kemper,
Kemper, Alfons; Eickler, André: Datenbanksysteme, 8. Auflage, Oldenbourg Wissenschaftsverlag, Münch
Eickler (2011) 2011
Kilger (2001) Kilger, Bernhard: QMF für Einsteiger, Springer, Berlin Heidelberg 2001
Klug, Uwe: Datenbankanwendungen entwerfen & programmieren, 5. Auflage, W3L GmbH, Witten Herde
Klug (2008)
2008
Kofler, Michael: MySQL 5 Einführung, Programmierung, Referenz, 3. Auflage, Addison-Wesley, Münch
Kofler (2005)
2005
Krcmar (2005) Krcmar, Helmut: Informationsmanagement, 4. Auflage, Springer, Berlin 2005
Kreibich
Kreibich, Jay A.: Using SQLite, 1. Auflage, O'Reilly Media, Kalifornien 2010
(2010)
Kruth, Wilhelm: Grundlagen der Informationstechnik: Kompaktwissen für Datenschutz- und
Kruth (2009)
Security-Management, 3. Auflage, Datakontext, Heidelberg 2009
Kudraß (2007) Kudraß, Thomas: Taschenbuch Datenbanken, 1. Auflage, Hanser, München 2007
Linuxnetworks Linuxnetworks: OpenDBX, 09.09.2010, http://www.linuxnetworks.de/doc/index.php/OpenDBX (29.05.20
(2010)
10:45 Uhr)
Matthew,
Matthew, Neil; Stones, Richard: Beginning Databases with Postgresql: From Novice to Professional, 2.
Stones (2005) Auflage, Apress, Berkeley 2005
Matthiessen,
Matthiessen, Günter; Unterstein, Michael: Relationale Datenbanken und Standard-SQL, 4. Auflage,
Unterstein
Addison-Wesley , München 2008
(2008)
Microsoft
Microsoft: Microsoft SQL Server Constraints, 2004, http://odetocode.com/Articles/79.aspx (04.06.2012 12
(2004)
Uhr)
Microsoft
Microsoft MSDN (Hrsg.): Datenbanktreiber, 2012,
(2012)
http://msdn.microsoft.com/de-de/library/aa287926%28v=vs.71%29.aspx (13.05.2012 16:42 Uhr)
Mullins, Craig: Database Administration: The Complete Guide to Practices and Procedures, 2. Auflage,
Mullins (2002)
Addison-Wesley Longman, Amsterdam 2002
MySQL AB
MySQL AB Development Team: Das offizielle MySQL 5 Handbuch, 1. Auflage, Addison-Wesley. Münc
Development
2007
Team (2007)
Orhanovic,
Grodtke,
Orhanovic, Jens; Grodtke, Ivo; Tiefenbacher, Michael: DB2 Administration ? Einführung, Handbuch und
Tiefenbacher Referenz, 1. Auflage, Addison-Wesley, München 2004
(2004)
Pernul, Unland Pernul, Günther; Unland, Rainer: Datenbank im Unternehmen: Analyse, Modellbildung, und Einsatz, 2.
(2003)
Auflage, Oldenbourg Wissenschaftsverlag, München 2003
Paterson,
Paterson, Jim; Edlich, Stefan; Lörning, Henrik: The definitive Guide to Db4o, 1. Auflage, Apress, Berkele
Edlich, Lörning
2006
(2006)
Plattner, Zeier Plattner, Hasso; Zeier, Alexander: In-Memory Data Management: An Inflection Point for Enterprise
(2011)
Applications, 1. Auflage, Springer, Berlin Heidelberg 2011
Ponniah (2010) Ponniah, Paulraj: Data Warehousing for IT Professionals, 2. Auflage, Wiley, New Jersey 2010
Reese, Yarger, Reese, George; Yarger, Randy Jay; King, Tim: MySQL: Einsatz und Programmierung, 2. Auflage, O'Reil
King (2002)
Köln 2002
Saake, Heuer, Saake, Gunter; Heuer, Andreas; Sattler, Kai-Uwe: Datenbanken: Implementierungstechniken, 2. Auflage,
Sattler (2005) Bonn 2005
2.5 Literatur- und Quellenverzeichnis
45
Entwicklung_eines_Fachwörterbuchs_für_das_Thema_Datenbankmanagement_auf_der_Basis_des_winfwiki
Sattler, Saake, Sattler, Kai-Uwe; Saake, Gunter; Heuer, Andreas: Datenbanken. Konzepte und Sprachen, 4. Auflage, mitp
Heuer (2010) Heidelberg 2010
Sauer (2002) Sauer, Herrmann: Relationale Datenbanken: Theorie und Praxis, 5. Auflage, Addison-Wesley, München 2
Schneider
Schneider, Dr. Markus: Implementierungskonzepte für Datenbanksysteme, 1. Auflage, Springer, Berlin
(2004)
Heidelberg 2004
Seidel,
Seidel, Helmut; Schröter, Jürgen: Perl: Anwendungen und fortgeschrittene Techniken , 1. Auflage, Oldenb
Schröter (2004) Wissenschaftsverlag, München 2004
Shirky, Clay: What is P2P... and What Isn?t. An article published on O?Reilly Network, 24.11.2000,
Shirky (2000)
http://www.openp2p.com/lpt/a/p2p/2000/11/24/shirky1-whatisp2p.html (13.05.2012,11:58 Uhr)
Spencer, Douglas W.: IBM Software for Business on Demand: Business Transformation an the On Deman
Spencer (2004)
Software Infrastructure, 1. Auflage, Maximum Press, Kanada 2004
Stahlknecht,
Stahlknecht, Peter; Hasenkamp, Ulrich: Einführung in die Wirtschaftsinformatik, 11. Auflage, Springer, B
Hasenkamp
2005
(2005)
Gernot Starke: Effektive Software Architekturen, 4. Auflage, Carl Hanser Verlag GmbH & CO. KG, Köse
Starke (2009)
2009
Stylos, Mellon Stylos, Mellon: Making APIs more usable with improved API Designs, Documentation and Tools, 1. Aufl
(2009)
UMI Microform, Michigan 2009
Tröschner
Tröschner, Wolfgang: Datenbanken für Fachinformatiker. Datenbankdesign und SQL, Books on Demand,
(2006)
Norderstedt 2007
Technische Universität Dortmund: Datenbanken und SQL - Glossar: Orthogonalität, 21.04.2011,
UniDo (2011)
http://www.itmc.tu-dortmund.de/dienste/netz-und-server-dienste/datenbanken/338.html (13.05.2012 17:06
Warner (2007) Warner, Daniel: Advanced SQL ? SQL für Praxis und Studium, 1. Auflage, Franzis, Poing 2007
Winkler, Peter: Computerlexikon 2010: Die ganze digitale Welt zum Nachschlagen, 1. Auflage, Markt un
Winkler (2009)
Technik, München 2009
2.5 Literatur- und Quellenverzeichnis
46
Herunterladen