Folien zur Vorlesung am 14.1.2010 (Applikationen)

Werbung
Cognitive Interaction Technology Center of Excellence
Einführung in Datenbanken
- Anwendungen -
Philipp Cimiano
AG Semantische Datenbanken und
Wissensverarbeitung
1
Cognitive Interaction Technology Center of Excellence
Themen für diese Vorlesung
• Web-Anwendungen
• Authorisierung
• Sicherheit
• Datenbank-Architekturen
2
Cognitive Interaction Technology Center of Excellence
Anwendungen
• Wir haben bisher formale Sprachen kennengelernt, um
eine Datenbank anzufragen, z.B. SQL.
• Die meisten Anwender greifen jedoch auf eine Datenbank
über sogenannte Frontends zu, d.h. über Graphische
Schnittstellen (GUIs) oder über Web-Schnittstellen.
3
Cognitive Interaction Technology Center of Excellence
Architekturen für Web-basierte Schnittstellen
Three-tier Architecture
Client (Browser)
Web Server
HTTP
HTTP
Application
Server
Database
Communication
Protocol
DB
4
Database
Server (z.B. MySQL
Server)
Cognitive Interaction Technology Center of Excellence
Architekturen für Web-basierte Schnittstellen
Two-tier Architecture
Client (Browser)
Web Server &
Application Server
(z.B. Apache tomcat)
HTTP
Database
Server (z.B. MySQL
Server)
5
DB
Cognitive Interaction Technology Center of Excellence
Vorteile von Client/Server Architekturen
• Verteilung der Rollen und Verantwortlichkeiten auf verschiedene
Softwaresysteme. Das führt zu einer einfacheren Wartung. Es können
auf der Seite des Servers Änderungen vorgenommen werden ohne
dass ein Client davon betroffen ist.
• Alle Daten sind auf dem Server gespeichert. Das ist meistens
sicherer als die Speicherung auf einem Client.
• Die Änderung der Daten ist einfach, da sie alle zentral gespeichert
werden (im Vergleich zu einer sogenannten P2P Architektur).
• Man macht keine Einschränkung bezüglich des Clients, außer z.B.
das der Client über das HTTP-Protokoll mit dem Server kommunizieren
soll (damit sind natürlich alle Browser potentielle Clients).
6
Cognitive Interaction Technology Center of Excellence
Nachteile von Client/Server Architekturen
• Eine hoher Netzwerkverkehr (viele Anfragen) können den Server
lahmlegen. Das ist in einem P2P Netzwerk nicht der Fall.
• Client-Server Architekturen sind nicht besonders robust. Wenn der
Server ausfällt, funktioniert in der Regel nichts mehr. In einer P2P
Architektur können in der Regel mehrere Knoten eine Anfrage
bearbeiten (z.B. ein Download-request).
7
Cognitive Interaction Technology Center of Excellence
Implementierung einer Two-Tier Architektur
Client (Browser)
Application Server
(z.B tomcat, jboss, etc.)
HTTP
Servlet
Database
Server (z.B. MySQL
Server)
8
DB
Cognitive Interaction Technology Center of Excellence
Beispiel: Web-Interface für die Kontostandabfrage
Wir werden die folgenden Schritte besprechen:
1. Erstellung eines HTML Formulars
2. Erstellung eines Java Servlets BankAbfrage.java
3. Kopieren des kompilierten Servlets (.class) in das
entsprechende WEB-INF/classes Verzeichnis einer tomcat
Installation
4. Konfiguration des tomcat servers
5. Starten von tomcat
6. Testen des Web Formulars zur Kontostandabfrage
9
Cognitive Interaction Technology Center of Excellence
1. Erstellung eines HTML Formulars
<h1> Formular zur Abfrage des Kontostandes </h1>
<form action="http://localhost:8080/examples/BankAbfrage" method="get“>
<select name ="type">
<option value="account" selected> Girokonto </option>
<option value="loan" selected> Kredit </option>
</select>
<input type=text size=5 name="number">
<input type="submit" value="submit“>
</form>
10
Cognitive Interaction Technology Center of Excellence
2. Erstellung eines Java-Servlets
Bankabfrage.java
// Imports
11
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Cognitive Interaction Technology Center of Excellence
2. Erstellung eines Java-Servlets
Bankabfrage.java
public class BankAbfrage extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
...
}
12
Cognitive Interaction Technology Center of Excellence
2. Erstellung eines Java-Servlets
Bankabfrage.java
// load the driver
System.out.println("Loading driver...");
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch(Exception e) {}
// establish the connection
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost/Banking?
user=cimiano");
} catch (SQLException ex) {}
13
Cognitive Interaction Technology Center of Excellence
2. Erstellung eines Java-Servlets
Bankabfrage.java
14
String type = request.getParameter("type");
String number = request.getParameter("number");
String ergebnis = null;
if (type.equals("loan"))
{
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * from loan
WHERE loan_number = \'"+number+"\'");
rs.next();
ergebnis = rs.getString("amount");
} catch (SQLException ex){}
}
Cognitive Interaction Technology Center of Excellence
2. Erstellung eines Java-Servlets
Bankabfrage.java
if (type.equals("account"))
{
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * from account
WHERE account_number = \'"+number+"\'");
rs.next();
ergebnis = rs.getString("balance");
} catch (SQLException ex){}
}
15
Cognitive Interaction Technology Center of Excellence
2. Erstellung eines Java-Servlets
Bankabfrage.java
response.setContentType("text/html");
PrintWriter out = response.getWriter();
if (ergebnis != null)
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n" +
"<HTML>\n" +
"<HEAD><TITLE>BankAbfrage (Ergebnis)</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Sie haben den Kontostand von folgendem Konto angefragt:"+number
+"<br>" +
"Das Ergebnis lautet: "+ ergebnis + "</H1>\n"+
"</BODY></HTML>");
16
else
// es wird kein Ergebnis zurückgeliefert.
Cognitive Interaction Technology Center of Excellence
3. Kopieren des .class files
• Das .class file des servlets muss in ein entsprechendes
Verzeichnis der tomcat installation kopiert werden, z.B.
<TOMCAT_HOME>/webapps/examples/WEB-INF/classes
Die benötigten Libraries (in unserem Fall der MySQL JDBC
Connector) müssen als jar-file in das entsprechende lib
Verzeichnis kopiert werden, z.B.
<TOMCAT_HOME>/webapps/examples/WEB-INF/lib
17
Cognitive Interaction Technology Center of Excellence
4. Konfiguration des tomcat
Es müssen folgende Einträge in der web.xml Datei
vorgenommen werden:
<servlet>
<servlet-name>BankAbfrage</servlet-name>
<servlet-class>BankAbfrage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BankAbfrage</servlet-name>
<url-pattern>/BankAbfrage</url-pattern>
</servlet-mapping>
18
Diese Datei liegt z.B. in:
<TOMCAT_HOME>/webapps/examples/WEB-INF/web.xml
Cognitive Interaction Technology Center of Excellence
5. Starten des tomcat servers
Der tomcat server wird wie folgt gestartet (Linux / Mac OS)
<TOMCAT_HOME>/bin/startup.sh
Und kann wie folgt beendet werden:
<TOMCAT_HOME>/bin/shutdown.sh
19
Cognitive Interaction Technology Center of Excellence
6. Testen des Dienstes
Die entwickelte Web-Applikation kann z,B. durch folgenden
http-request gestartet werden:
http://localhost:8080/examples/BankAbfrage?
type=account&number=A-101
20
Cognitive Interaction Technology Center of Excellence
Beispiele für Web-Schnittstellen zu Datenbanken
• Flickr: http://www.flickr.com/
• Biochemie, z.B. Protein-Datenbanken: http://
www.expasy.ch/sprot/
• Flugbuchung: http://www.billigfluege.de/
• Fernsehprogramm: http://www.tvinfo.de/
• Verwaltung von Kochrezepten: http://
www.chefkoch.de/
21
Cognitive Interaction Technology Center of Excellence
SQL Autorisierung
Für viele Anwendungen ist Autorisierung ein zentrales
Anliegen. Die Daten sollen nur von Personen gelesen oder
geändert werden können, die dafür auch berechtigt sind.
In SQL kann per Default nur der Besitzer einer Datenbank
(der Erzeuger) Tabellen erzeugen, ändern oder lesen.
Er kann aber auch diese Rechte an andere Nutzer
weitergeben. Das geht in SQL so:
grant <privlige_list> on <relation name or view> to <user/
role list>
22
Cognitive Interaction Technology Center of Excellence
Beispiele für Authorisierung
• Wir geben Usern U1, U2 und U3 Leserecht auf der Tabelle account:
grant select on account to U1,U2,U3
• Erlaube Usern U1, U2 und U3 das Ändern des Betrages in Tabelle
loan:
grant update (amount) on loan to U1,U2,U3
• Auch das Erzeugen von Fremdschlüssel muss erlaubt werden!
grant references (branch_name) on branch to U1
Damit kann User U1 Tabellen erzeugen, die das Attribut branch_name
von branch referenzieren.
23
Cognitive Interaction Technology Center of Excellence
Weitergabe von Rechten
• User können Rechte auch weitergeben wenn man „with
grant option“ dem grant-statement hinzufügt:
grant select on branch to U1 with grant option
Anwender U1 kann dann seine Rechte an andere Anwender
weitergeben.
24
Cognitive Interaction Technology Center of Excellence
Autorisierungsgraphen
Die Weitergabe von Rechten können wir nun mit Hilfe von
sogenannten Autorisierungsgraphen erfassen:
Admin
U1
U4
U2
U5
U3
Wenn der Administrator nun U1 die Rechte entzieht:
revoke X on Y from U1
verliert User U4 seine Rechte. U5 behält aber seine Rechte
über U2.
25
Cognitive Interaction Technology Center of Excellence
Vergabe von Rechten allgemein
Ein Anwender hat also ein bestimmtes Recht wenn es ein
Vergabepfad von dem Administrator der Datenbank zu
diesem Anwender gibt.
26
Cognitive Interaction Technology Center of Excellence
Rechte und Sichten
27
Man kann natürlich auch Rechte auf Sichten vergeben.
Betrachten wir z.B. folgende Sicht:
create view cust_loan as (
select branch_name, customer_name
from borrower, loan
where borrower.loan_number=loan.loan_number
)
Nun kann man einem Anwender U1 auch Leserechte auf
diese Sicht geben:
grant select on cust_loan to U1.
Cognitive Interaction Technology Center of Excellence
Rechte und Sichten (2)
Wenn ein Anwender eine Sicht erzeugt, bekommt er nicht
automatisch die entsprechenden Privilegien.
• Der User kann die Sicht nur erzeugen wenn er auch
Leserecht auf den entsprechenden Tabellen hat.
• Der User kann die Sicht nur dann udpaten wenn er updateberechtigt auf den entsprechenden Tabellen ist.
• Ein User kann die Sicht nur „lesen“ wenn er auch
Leserecht auf den entsprechenden Tabellen hat.
28
Cognitive Interaction Technology Center of Excellence
Rollen
Manchmal ist es nützlich, Privilegien nicht nur für einzelne
User sondern für bestimmte Typen von Usern zu definieren.
Wir können mit SQL auch Rechte an „Rollen“ vergeben:
create role Bankberater;
grant select on account to Bankberater;
29
Die Rechte einer Rolle können wir an konkrete User oder an
weitere Rollen vergeben:
grant Bankberater to Müller;
create role Manager;
grant Bankberater to Manager;
Cognitive Interaction Technology Center of Excellence
Rücknahme von Rechtern
Rechte können natürlich auch zurückgenommen werden:
revoke <privilige_list> on <relation/view> from <user/
role_list> [restrict|cascade]
Cascade (default): entziehe Rechte entlang des gesamten
Vergabepfades
Restrict: entziehe nur die Rechte den angegebeben
Nutzern
30
Cognitive Interaction Technology Center of Excellence
Vergabe und Rücknahme von Rechten in einer
bestimmten Rolle.
Szenario: John bekommt bestimmte Rechte von Mary (als
Managerin). Wenn Mary irgendwann nicht mehr Manager
ist und bestimmte Rechte entzogen bekommt, dann verliert
auch John seine Rechte. Das ist natürlich unerwünscht.
Daher können Rechte auch in einer bestimmten Rolle
vergeben werden:
set role manager;
grant select on account to John granted by current_role;
31
Wenn nun Mary die Rechte entzogen werden, bekommt
John nicht automatisch auch die Rechte entzogen.
Cognitive Interaction Technology Center of Excellence
Sicherheit
Manchmal möchte man sicherstellen, dass die in einer
Datenbank abgespeicherten Informationen nach außen
nicht sichtbar sind. Daher werden Daten manchmal
verschlüsselt.
Verschlüsselungsverfahren basieren auf Schlüsseln, die auf
den zu verschlüsselnden Text (als Funktion) angewendet
werden.
Wir unterscheiden zwischen:
32
• Kodierungsschlüsseln (dienen zu Verschlüsselung einer Nachricht)
• Dekodierungsschlüsseln (dienen zur Entschlüsselung)
Cognitive Interaction Technology Center of Excellence
Verschlüsselungsverfahren
• Shared-Key Kryptographie:
• Idee: Kodier- und Dekodierschlüssel sind die gleichen. Daher muss
der Schlüssel einmal in eine Richtung ausgetauscht werden.
• Heutzutage wird hierfür der sogenannte Advanced Encryption
Standard (AES) verwendet (http://www.csrc.nist.gov/publications/fips/
fips197/fips-197.pdf)
• Public-Key Kryptographie: Es werden zwei Schlüssel
verwendet, ein öffentlicher und ein privater.
33
Cognitive Interaction Technology Center of Excellence
Einfaches Beispiel für Symmetrische
Verschlüsselung: die Substitutionschiffre
• Die einfachste Art und Weise, symmetrisch zu
verschlüsseln, ist durch eine Substitutionschiffre, z.B. wie
von Caesar angewendet. Er ersetzte alle Buchstaben durch
den Buchstaben drei Stellen weiter im Alphabet.
z.B: „Caesar“ wird zu „Fdhvdu“
In diesem Fall ist der verwendete Schlüssel n=3. Er bleibt
beim kodieren und dekodieren gleich (nur die Richtung
ändert sich).
Mann kann auch komplexere Schlüssel nehmen und
mehrere Buchstaben auf einmal ersetzen (polygraphic
substitution): 14568945
34
Cognitive Interaction Technology Center of Excellence
Public-Key-Kryptographie
Public Key
Private Key
Urhebernachweis
von Bob (z.B in einer
Digitalen Signatur)
Verschlüsselte
Nachricht an Bob
Öffentlicher Bereich
35
Privater Bereich
Cognitive Interaction Technology Center of Excellence
Ebenen der Verschlüsselung
Daten können auf zwei Ebenen verschlüsselt werden:
• Verschlüsselung auf der Platte: sobald die Daten von dem DBMS auf
die Platte geschrieben werden, werden sie verschlüsselt. Damit kann
niemand das DBMS umgehen und die Daten von der Platte lesen. Sie
können nur von dem DBMS (mit dem richtigen Schlüssel) gelesen
werden. Nachteil: ein Systemadministrator kann auf alle Daten
zugreifen.
• Verschlüsselung der Daten selbst: Die Daten werden verschlüsselt
bevor sie in die Datenbank gelangen. Damit sind die Daten selbst
verschlüsselt gespeichert und es können nur User die Daten sehen, die
einen Dekodierungsschlüssel haben.
36
Cognitive Interaction Technology Center of Excellence
Authentifizierung
Es gibt verschiedene Möglichkeiten, einen Anwender (einer
Datenbank) zu identifizieren:
1. Passwortabfrage
2. Challenge-Response: (User bekommt einen String und
muss diesen mit seinem privaten Schlüssel kodieren)
3. Digitale Signaturen: User signiert einen Text (eine
Nachricht etc.) durch den privaten Schlüssel.
37
Cognitive Interaction Technology Center of Excellence
Digitale Zertifikate
38
• Es ist nicht nur wichtig, dass User sich ausweisen, sondern
auch Webseiten, Applikationen usw. (Banken)
• HTTPS (HTTP Secure) baut auf einem Netz von
Zertifikaten und einer Zertifizierungshierarchie auf.
• Die obersten Knoten einer Zertifizierungshierarchie nennt
man „certificate authorities“, sie werden allgemein als
vertrauenswürdig betrachtet und in Web-Browsern fest
kodiert.
• Jedes Mal wenn eine Seite besucht wird, wird die
Zertifizierungskette verfolgt bis man an eine Wurzel
(certificate authority) der Zertifizierungshierarchie gelangt.
Cognitive Interaction Technology Center of Excellence
Zertifizierungskette
Verschlüsselt
mit PrivA
A sagt:
B hat
Schlüssel
PubB
A
B
Wurzel der Zertifizierungshierarchie
(PubA / PrivA)
(PubB / PrivB)
Verschlüsselt
mit PrivB
B sagt:
C hat
Schlüssel
PubC
39
C
(PubC / PrivC)
Bestätigt Vertrauenswürdigkeit und Publik Key
Cognitive Interaction Technology Center of Excellence
Datenbank-Architekturen
• Zentralisierte Systeme
• Client-Server Architekturen
• Parallele Architekturen
• Shared-Memory - Systeme
• Shared Disk - Systeme
• Shared Nothing - Systeme
• Hierarchische Systeme
• Verteilte Datenbanken
40
Cognitive Interaction Technology Center of Excellence
Zentralisierte Datenbanksysteme
Zentralisierte Datenbanksysteme sind solche, die auf einem
einzigen Rechner laufen.
Solche Systeme haben meistens:
• ein oder mehrere CPUs
• verschiedene Controller (Video, Audio, Platten usw.)
• gemeinsam genutzten Speicher
41
Wir unterscheiden zwischen:
single-user Systeme
multi-user Systemen
Cognitive Interaction Technology Center of Excellence
Zentralisierte Datenbanksysteme
Zentralisierte Datenbanksysteme unterstützen nur auf
vereinfachte Weise die parallele Verarbeitung von Anfragen.
Die Anfragen können auf verschiedene Prozessoren verteilt
werden und sequentiell abgearbeitet werden. Eine Anfrage
wird auf nur einem Prozesssor bearbeitet. Solche multiprocessor Systeme können zwar den Durchsatz erhöhen,
aber die einzelene Anfrage braucht aber genauso lange wie
in einem single-processor System.
42
Cognitive Interaction Technology Center of Excellence
Client-Server Architekturen
• Es ist eigentlich nur ein kleiner Schritt von einem
zentralisierten System zu einer Client-Server Architektur.
• Man unterscheidet nun zwischen einem:
• frontend
• backend
• Das „backend“ läuft nun auf einem zentralisierten System
• Das „frontend“ (mit dem die Anwender interagieren) läuft
nun auf den clients, die z.B. über das HTTP-Protokoll mit
einem Server kommunizieren.
43
Cognitive Interaction Technology Center of Excellence
Backend-Server
• Transaktions-Server: stellen eine Schnittstelle bereit, um
Anfragen an die Datenbank zu stellen. Sie werten die
Anfragen aus (durch Zugriff auf den Daten-Server) und
liefern das Ergebnis an den Client zurück.
• Daten-Server: speichern und erlauben den Zugriff auf
Daten (z.B. File Server speichert und unterstützt Zugriff auf
files).
44
Cognitive Interaction Technology Center of Excellence
Parallele Architekturen
• Die zentrale Idee von parallelen Architekturen ist es, die
Performanz zu erhöhen durch parallele (nicht-sequentielle)
Abarbeitung.
• Dazu werden System mit mehreren Prozessoren
eingesetzt, von 2 bis zu mehreren tausend Prozessoren.
• Parallele Architekturen werden sinnvoll eingesetzt wenn:
• viele Anwender gleichzeitig auf die Datenbank zugreifen
• viele Anfragen pro Sekunde verarbeitet werden müssen
• Die Datenbank extrem viele Daten enthält (z.B. Terabype an Daten!)
45
Cognitive Interaction Technology Center of Excellence
Messgrößen paralleler Systeme: Speed-up
• Speed-up: ist ein Maß für den Performanzgewinn bei
Umstieg auf eine Architektur mit höherem Parallelitätsgrad.
46
• wobei TS die Ausführungszeit auf Maschine S (small) ist
und TL die Ausführungszeit auf einer größeren Maschine L
(large) ist.
• Man spricht von einem linearen speed-up wenn der
speed-up n beträgt bei einem Wachstum der Ressourcen
(Prozessoren) um Faktor n. Sonst spricht man von
sublinearem speed-up.
Cognitive Interaction Technology Center of Excellence
Speed-up
Lineares Speed-up
47
Ressourcen
Cognitive Interaction Technology Center of Excellence
Messgrößen paralleler Systeme: Scale-up
• Scale-up: gibt an, inwiefern beim Umstieg auf ein System
mit Faktor n Ressourcen ein um Faktor n größeres Problem
in der selben Zeit gelöst werden kann.
• Scale-up ist nun definiert als:
48
Cognitive Interaction Technology Center of Excellence
Scale-up
Lineares Scale-up
49
Ressourcen
Cognitive Interaction Technology Center of Excellence
Probleme bei der Parallelisierung
• Hohe Aufteilkosten: Das Aufteilen eines Prozesses und das
Starten der Teilprozessesse auf verschiedenen Maschinen
kann höhere Kosten verursachen als das direkte Lösen des
Prozesses.
• Behinderung: verschiedene Teil-Prozesse können sich
behindern weil sie um die selben Ressourcen konkurrieren
(Festplatte, Speicherplatz, Internetverbindung etc.)
• Ungleichmäßige Aufteilung: Prozesse können nicht immer
in gleichmäßig große Teilprozesse aufgeteilt werden.
Folglich bestimmt der größte Teilprozess immer noch die
Bearbeitungszeit des Gesamtprozesses.
50
Cognitive Interaction Technology Center of Excellence
Parallele Datenbankarchitekturen
• Shared-memory Systeme
• Shared-disk Systeme
• Autonome Systeme
• Hierarchisches Modell
51
Cognitive Interaction Technology Center of Excellence
Shared-Memory Systeme
• Vorteile:
52
• effiziente und schnelle
Kommunikation
• Nachteile:
• Skaliert nicht für große Zahlen
von Prozessoren, Zugriff auf
Speicher und Daten werden
zum Flaschenhals.
Es werden in der Regel CachingMechanismen eingesetzt, so
dass jeder Prozessor Daten lokal
hält. Diese müssen aber
regelmäßig synchronsiert werden
(Overhead)
P
P
P
P
P
M
Cognitive Interaction Technology Center of Excellence
Shared Disk Systeme
• Vorteile:
53
• Zugriff auf Speicher ist kein
Flaschenhals (vgl. Shared
Memory)
• Fehlertoleranz
(Zusammebruch eines
Prozessors kann durch einen
anderen ausgeglichen
werden!)
• Nachteile:
• Kommunikation zwischen
Prozessoren ist langsamer
• gemeinsamer Zugriff auf die
Platten ist nach wie vor ein
Nachteil!
M
P
M
P
M
P
M
P
M
P
Cognitive Interaction Technology Center of Excellence
Autonome Systeme
• Vorteile:
• schneller Zugriff auf Speicher
und Platte
• Skalierbarkeit im Hinblick auf
die Anzahl von Prozessoren
(Voraussetzung: schnelle
Verbindung)
• Nachteile:
• höhere Kosten
• teurer Zugriff auf den
Speicher eines anderen
Prozessors (jeder Prozessor
ist ein kleiner Server!)
54
M
P
M
P
M
P
P
M
P
M
Cognitive Interaction Technology Center of Excellence
Hierarchisches Modell
P
M
P
M
P
P
P
P
P
P
P
P
P
P
P
P
P
55
M
Cognitive Interaction Technology Center of Excellence
Verteilte Datenbanken
In verteilten Datenbankarchitekturen ist die Datenbank auf
verschiedenen Maschinen verteilt.
Diese Maschinen sind über ein Netzwerk (z.B. das Internet)
verbunden und teilen sich keine Ressourcen.
Der Unterschied zwischen einer verteilten Datenbank und
einem autonomen System sind:
• Verteilte Datenbanken sind komplett unabhängig
voneinander.
• Sie werden unabhängig voneinander administriert.
• Sie sind meistens geographisch verteilt.
56
Cognitive Interaction Technology Center of Excellence
Argumente für verteilte Datenbanken
• Unabhängigkeit: Jede Seite kann ihre eigenen Daten
unabhängig kontrollieren und verwalten.
• Datenaustausch: Dennoch können Daten ausgetauscht
werden (durch Anfragen).
• Verfügbarkeit: Wenn eine Seite offline ist, können
Anfragen dennoch bearbeitet werden. Das setzt allerdings
eine gewisse Datenredundanz voraus.
57
Cognitive Interaction Technology Center of Excellence
Bemerkungen zu verteilten Datenbanken
Wichtig ist, ob die verteilten Datenbank ein gemeinsames
Schema oder ob jede Datenbank ein eigenes Schema hat.
In letzterem Fall redet man von einer Multi-Datenbank
oder einem Heterogenen Verteilten System.
• Problematisch sind folgende Aspekte bei verteilten
Datenbanken:
• Transaktionsmanagement
• Concurrency Control
• Erhöhte Systemkomplexität (Entwicklung, Fehlerursachen etc.)
58
Herunterladen