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