Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. T. Kudraß1 Datenbanken im Web. Prof. Dr. T. Kudraß2 Überblick: Datenbanken im Web Historische Entwicklung des Web Anwendungen für Datenbanken.

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. T. Kudraß1 Datenbanken im Web. Prof. Dr. T. Kudraß2 Überblick: Datenbanken im Web Historische Entwicklung des Web Anwendungen für Datenbanken."—  Präsentation transkript:

1 Prof. Dr. T. Kudraß1 Datenbanken im Web

2 Prof. Dr. T. Kudraß2 Überblick: Datenbanken im Web Historische Entwicklung des Web Anwendungen für Datenbanken im Web Architekturen von Web-Datenbanksystemen Technologien –Oracle: Oracle Web Application Server, PL/SQL, APEX –PHP –Java / JDBC Aktueller Trend: Datenbanken im Web 2.0 –Motivation: Grenzen relationaler Systeme –Überblick NoSQL –Beispiel: CouchDB

3 Prof. Dr. T. Kudraß3 Historie des WWW Grundlage Internet –Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) –Technische Basis: TCP/IP-Protokoll WWW –1990 Projekt World Wide Web am CERN Genf entwickelt (Berners- Lee) zur Verbesserung der internen Informationsdarstellung –Idee: Verknüpfung von HTML-Dokumenten und Integration bisheriger Internet-Dienste über einheitliche Adressen (URL, Uniform Recource Locator) unter einer gemeinsamen Oberfläche, dem Web Browser HTML –Hypertext Markup Language –Text ist mit Sprachkommandos versehen, eingeschlossen in Start Tag und End Tag

4 Prof. Dr. T. Kudraß4 HTML Beispiel Fiction: Author: Milan Kundera

5 Prof. Dr. T. Kudraß5 Bereitstellung von Daten durch das Web Nicht nur statische Informationen darstellen! Nutzung des Common Gateway Interface (CGI) –Aufruf von Programmen auf einem Web-Server mittels HTTP, die dynamisch HTML-Seiten generieren und an den Web-Browser zurückliefern Einführung von Java (1995; SUN Microsystems) –Implementierung von Java Applets: können von einem Web-Server geladen und im Browser ausgeführt werden (plattformunabhängiger Bytecode) –Einbindung von Java Applets in HTML-Seiten –Grundlage vieler web-basierter Anwendungen Einführung von XML als Erweiterung von HTML –Flexible Publikation von Inhalten –Datenaustausch NoSQL-Datenbanken als Grundlage vieler Applikationen in Social Networks (Facebook, Twitter & Co.)

6 Prof. Dr. T. Kudraß6 Typen von Web-DB-Anwendungen Gästebücher / Foren / Blogs Nachschlagewerke –Wörterbücher (dict.leo.org) –Telefonbücher –Lexika –Wikipedia / DBpedia Online-Tracking –Verfolgung von Paketen oder anderen Versandstücken (UPS, DHL) Suchmaschinen –Indexierung der Seiteninhalte für Suche Soziale Netzwerke –Beispiele: XING, Facebook, Twitter –Benutzer sind konsumieren und produzieren Informationen

7 Prof. Dr. T. Kudraß7 Typen von Web-DB-Anwendungen (Forts.) Online-News –Nachrichtenseiten (evtl. kostenpflichtig) –Börseninformationen Online-Banking –Anbindung der Backend-Systeme ans Internet –Hohe Sicherheitsanforderungen Bestellkataloge/B2C –Amazon & Co. –Elektronischer Warenkorb (Session-ID) E-Commerce Anwendungen (B2B) –Geschäftsprozesse zwischen Firmen übers Internet –Aufbau von elektronischen Wertschöpfungsketten –Beispiele: elektronische Marktplätze, elektronische Angebotsverwaltung mit standardisierten Formularen

8 Prof. Dr. T. Kudraß8 Beispiel: Schema einer B2B Anwendung

9 Prof. Dr. T. Kudraß9 Charakteristika von Web-DB-Anwendungen Art des Zugriffs –Zugriffe zum Lesen oder Schreiben oder gemischt Änderungshäufigkeit / Aktualität der Daten –Pufferung sinnvoll bei geringer Änderungshäufigkeit (z.B. bei Nachschlagewerken, aber nicht bei Börsenkursen) Zahl der gleichzeitigen Zugriffe –Möglicher Engpaß an Ressourcen –Hoher Durchsatz und kurze Antwortzeiten auch bei hoher Last Arten der Datentypen –Alphanumerische Daten in HTML unterstützt –Andere Techniken für geometrische Daten Datensensitivität –Schutzmaßnahmen bei der Datenübertragung (Verschlüsselung) –Beispiele: Kreditkarten-Nr., PIN beim Online-Banking

10 Prof. Dr. T. Kudraß10 Charakteristika von Web-DB-Anwendungen (Forts.) Sicherheitsbedarf –Abschirmung des Backend-Systems von der Außenwelt (z.B. bei Bank-Anwendungen) Benutzerauthentisierung –Anwendungen oft nur für ausgewählte Benutzer zugänglich (z.B. Nachrichtenarchiv, Geschäftsanwendungen) Benutzeridentifikation –Für die Personalisierung von Angeboten, aber weniger strenge Sicherheitsanforderungen Anzahl der Arbeitsschritte / Länge einer “Sitzung“ –Mehrschrittige Vorgänge benötigen Anwendungskontext (z.B. Füllen eines Warenkorbs) -> Realisierung eines Zustands im zustandslosen Web durch das Backend-System “Verweildauer“ –Aufenthaltsdauer eines Benutzers auf einer Web-Seite

11 Prof. Dr. T. Kudraß11 3-Schichten-Architektur Aufteilung einer WebDB-Anwendung in verschiedene Schichten Präsentationsschicht –Visualisierung der Dokumente auf Anwenderseite –Keine Anwendungslogik zur Erstellung der Seiten (thin client) –Client = Rechner mit Browser einschl. PlugIns Anwendungslogikschicht (Middleware) –Weiterleitung von Anfragen des Client an den entsprechenden Dienst, Datenbankanfragen, Erstellung dynamischer Seiten und Zurücksendung an den Client –Weitere Aufgaben:  Verwaltung von Transaktionen  Lastverteilung der Anfragen  Sicherheitsaufgaben Datenhaltungsschicht –Speicherung der Daten + Datenzugriff –Typischerweise Datenbanksystem (auch Dateien möglich)

12 Prof. Dr. T. Kudraß12 3- und 4-Schichtenarchitekturen

13 Prof. Dr. T. Kudraß13 Anbindungstechnologien Clientseitige vs. Serverseitige Anbindung einer Datenbank

14 Prof. Dr. T. Kudraß14 Serverseitige Anbindung: Externe Programme

15 Prof. Dr. T. Kudraß15 Entwicklung von WebDB-Anwendungen mit Oracle  Weiterleiten der Anfrage vom Browser an den Modul mod_plsql  Verbindung zur Datenbank, Ausführung der gespeicherten Prozedur  Erzeugung einer HTML-Seite durch Prozedur  Zurücksenden des HTML- Dokuments an mod_plsql  Zurücksenden der HTML-Seite als HTTP-Response zum anfragenden Client Basis: PL/SQL Packages zur Erzeugung von HTML (z.B. HTP) Genutzt von Web-Werkzeugen wie z.B. Oracle Application Express (APEX)

16 Prof. Dr. T. Kudraß16 Entwicklung von WebDB-Anwendungen mit Oracle APEX Bestandteil der Oracle-Software Völlig unabhängig vom Betriebssystem Geeignet für Rapid Prototyping Entwicklung, Administration und Nutzung der Anwendungen mittels Browser

17 Prof. Dr. T. Kudraß17 PHP PHP = Personal Homepage Tools (war ursprünglich eine Sammlung von Tools und Makros) entwickelt von Rasmus Lerdorf 1994, Open Source Produkt serverseitige, in HTML eingebettete Script-Sprache (Ausführung auf dem Webserver) plattformunabhängig unterstützt umfangreiche Menge von Oracle-Funktionen (erfordert Installation im Web-Server) PHP-Seite als Script-Datei –Extension.php –Verarbeitung durch PHP-Prozessor Einbettung von Skripteinschüben in spezielle Tags – – echo “Hello world!“;

18 Prof. Dr. T. Kudraß18 Verarbeitung einer PHP-Seite

19 Prof. Dr. T. Kudraß19 PHP Beispiel Testseite mit PHP Testseite mit PHP

20 Prof. Dr. T. Kudraß20 Java Database Connectivity (JDBC) Motivation: –Zugriff auf SQL-Datenbanken mit Java benötigt –Nachteil selbstgestrickter Java-Zugriffsmethoden  aufwendig  fehlerbehaftet  nicht einfach portierbar –Überwindung des Mismatch zwischen  Java (objektorientiert, ohne Pointer)  SQL (mengenorientiert) Basiert auf Java: kann Objekte verwenden, um DB- Objekte und ihre Operationen direkt und natürlich darzustellen –Beispiel: Objekt Connection mit einer Methode close() Beziehung zu ODBC –Wurde in Anlehnung an ODBC (Open Database Connectivity) entwickelt und mit einer ähnlichen Klassenbibliothek ausgestattet

21 Prof. Dr. T. Kudraß21 JDBC Klassen und Interfaces java.sql.DriverManager (class, class methods) java.sql.Connection (interface) java.sql.Statement (interface) java.sql.Resultset (interface) java.sql.Driver (interface, drivers only)

22 Prof. Dr. T. Kudraß22 JDBC Beispiel SELECT // Create a connection and connect Connection conn; Statement stmt; ResultSet rs; int partID; float price; conn = DriverManager.getConnection("jdbc:odbc:Sales", "myname", "mypassword"); // Create a statement and execute a SELECT statement stmt = conn.createStatement(); rs = stmt.executeQuery ("SELECT PartID, Price FROM Parts"); // Create a connection and connect Connection conn; Statement stmt; ResultSet rs; int partID; float price; conn = DriverManager.getConnection("jdbc:odbc:Sales", "myname", "mypassword"); // Create a statement and execute a SELECT statement stmt = conn.createStatement(); rs = stmt.executeQuery ("SELECT PartID, Price FROM Parts");

23 Prof. Dr. T. Kudraß23 JDBC Beispiel SELECT (Forts.) // Fetch and print each row while (rs.next()) { partID = rs.getInt(1); price = rs.getFloat(2); System.out.println("Part Number: " + partID + " Price: " + price); } // Close the result set rs.close(); // Close the statement and connection stmt.close(); conn.close(); // Fetch and print each row while (rs.next()) { partID = rs.getInt(1); price = rs.getFloat(2); System.out.println("Part Number: " + partID + " Price: " + price); } // Close the result set rs.close(); // Close the statement and connection stmt.close(); conn.close();

24 Prof. Dr. T. Kudraß24 JDBC Beispiel UPDATE // Create a connection and connect Connection conn; Statement stmt; int rowCount; conn = DriverManager.getConnection("jdbc:odbc:Sales", "myname", "mypassword"); conn.setAutoCommit(false); // Create a statement and execute an UPDATE statement stmt = conn.createStatement(); rowCount = stmt.executeUpdate ("UPDATE Parts SET Price = 10.0 WHERE PartID = 123");

25 Prof. Dr. T. Kudraß25 Warum reichen SQL-Datenbanken nicht aus? Tabelle aus relationaler DB mit scheinbar gleichartiger Struktur der Datensätze (Beispiel Adressverwaltung) starre Satzstruktur zu wenig flexibel für unterschiedliche und beliebige Einträge zur Verwaltung von Kontakten viele, oft nicht benötigte, Attribute  große Spaltenanzahl  viele Nullwerte Beispiel: Geburtsdaten zumeist nur für Freunde abspeichern SchmitzHannesKölnSteinstr MeierHansMünchen GoldmannS SchleicherHelga KramerNilsEssenAststr RustSonja

26 Prof. Dr. T. Kudraß26 Warum reichen SQL-Datenbanken nicht aus? Datensätze mit unterschiedlicher Satzstruktur SchmitzHannesKölnSteinstr MeierHansMünchen GoldmannS SchleicherHelga KramerNilsEssenAststr RustSonja

27 Prof. Dr. T. Kudraß27 NoSQL NoSQL = Not only SQL Datenmodelle bilden Erweiterung zu Datenbanken mit relationalem Datenmodell (not only) –Kombination mit SQL-Datenbanken, z.B. NoSQL zur Datenarchivierung nicht-relationale Datenmodelle –Dokumentenorientiert –Key Value Stores –Graphenorientiert –Spaltenorientierte Datenbanken –andere Datenmodelle: objektorientiert, XML Schemafreiheit –zusätzliche Informationen in Datensätze enfügen –vermeidet das Problem der Schema-Evolution verteilte Speicherung Nähe zum Web (Schnittstellen für Skriptsprachen)

28 Prof. Dr. T. Kudraß28 Konsistenz in relationalen und NoSQL-DBS Logischer Datenbankentwurf in relationalen DBS –Normalisierung –Integritätssicherung: referentielle Integrität, semantische Integrität –Transaktionskonzept: ACID-Paradigma Konsistenz bei NoSQL –Abschwächung in verteilten Datenbanken –Herstellung der Konsistenz nur zu verschiedenen Zeitpunkten, also „letztendlich“ (eventual consistency) Anwendungen im Web akzeptieren schwächere Konsistenz –E-Commerce –Beispiel: Aktualisierung eines Produktkatalogs in verteilter Datenbank – nicht als ACID-Transaktion notwendig

29 Prof. Dr. T. Kudraß29 CouchDB als Beispiel einer NoSQL-DB Historie –Autor Damien Katz 2005 –Weiterentwicklung bei IBM –seit 2008 Apache-Projekt unter Apach 2.0 Lizenz Datenmodell –Speicherung der Daten in Dokumenten (vgl. Datensatz in RDB) –Reine Textinformationen oder Bilder, Video-/Audio-Dateien JSON –Inhalt eines Dokuments entspricht JSON-Objekt –JSON einfache Beschreibungssprache aus JavaScript-Welt –Beispiel: {  Nachname  :  Meier ,  Vornamen  : [  Tobias ,  Eugen  ],  Alter  : 32,  Telefon  : {  Handy  :  ,  privat  :   } } {  Nachname  :  Meier ,  Vornamen  : [  Tobias ,  Eugen  ],  Alter  : 32,  Telefon  : {  Handy  :  ,  privat  :   } } Key/Value Array Liste

30 Prof. Dr. T. Kudraß30 Eigenschaften von CouchDB CouchDB API –Zugriff über das RESTful JSON API: GET, PUT, DELETE, POST Requests des HTTP-Protokolls zur Erteilung von Verarbeitungsanweisungen –Zugriff über Kommandozeilen-Tool cURL oder Futon-Browser als GUI JavaScript –Programmierung von Views unter Verwendung der MapReduce- Technologie –Map- und Reduce-Funktionen in JavaScript als Design-Dokumente im JSON-Format gespeichert –Bibliotheken und Clients für viele andere Sprachen (z.B. PHP, Python) analog zu RDBMS Erlang –funktionale Programmiersprache zur Verarbeitung nebenläufiger und verteilter Prozesse –genutzt zur Entwicklung von CouchDB Datenreplikation und Multiversion Concurrency ControL


Herunterladen ppt "Prof. Dr. T. Kudraß1 Datenbanken im Web. Prof. Dr. T. Kudraß2 Überblick: Datenbanken im Web Historische Entwicklung des Web Anwendungen für Datenbanken."

Ähnliche Präsentationen


Google-Anzeigen