Datenbanken im Web 1.

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Apache - PHP - MySQL Apache-PHP-MySQL.
HS-Projekt Friedrich Junge-Schule, Kl. 9c, 2011 Wie funktionieren Internet-Server? Web-Server auf eigener Domain und Game-Server für Internet-Spiele Teilnehmer:
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Architektur von Web- Datenbanksystemen. © Prof. T. Kudraß, HTWK Leipzig Schichtenarchitektur Aufteilung einer Web-DB-Anwendung in verschiedene Schichten.
WWW World Wide Web.
Inhalt – Technische Grundlagen
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Basis-Architekturen für Web-Anwendungen
Datenbankzugriff im WWW (Kommerzielle Systeme)
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Java: Grundlagen der Sprache
Geschichte und Funktion des Internets.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Content-Management-System
Prof. Dr. T. Kudraß1 Internet-Datenbanken. Prof. Dr. T. Kudraß2 Historie des WWW Grundlage Internet –Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net)
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Architektur von Web- Datenbanksystemen. © Prof. T. Kudraß, HTWK Leipzig 2 Schichtenarchitektur Aufteilung einer Web-DB-Anwendung in verschiedene Schichten.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Schulen ans Netz Oberhausener Moderatoren
Einführung und Überblick
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Jetzt lernen wir.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Typo3 Eine Einführung.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Gegenstand EDV Thema: Informative Webseiten
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
Internet - Grundkurs - Einführung1 Inhalte Einführung in das Internet Zugang zum Internet Wie funktioniert das Internet? Das Programmpaket Internet Explorer.
DFÜ => Daten-Fern-Übertragung
Entstehung des Internet
Basiswissen für Partner und interessierte Kunden Technologie.
Grundlagen: Client-Server-Modell
Content Management ist ein Prozess und umfasst die Erstellung, Verwaltung und kontrollierte Veröffentlichung von Inhalten. Content-Management- Systeme.
Universität zu Köln, SS Seminar: IT-Zertifikat – Dedizierte Systeme Dozentin: Susanne Kurz Referentin: Barbara Huber.
Proseminar: „Webtechnologien für Ecommerce“
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
CGI (Common Gateway Interface)
Java Server Pages Sergej Keterling
Management- und Web Services- Architekturen
IHK–Abschlussprüfung Fachinformatiker Systemintegration
Oliver Spritzendorfer Thomas Fekete
1 Kommunikation im Netz Beratungsrektor Johannes M. L. Pasquay Die modernen Informations- und Kommunikationsmedien, allen voran das Internet mit dem World.
Datenanbindung in Webapplikationen
Datenbankanbindung in Web-Applikationen
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
Auf ins Web!. Das World Wide Web 1990 in Genf am Hochenergieforschungszentrum CERN Ziele: neuer wissenschaftlicher Informationsaustausch über das Internet.
Das Internet Inhalt: Geschichte Netzschema
Client-Server-Modell
Content-Managment-System
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
->Prinzip ->Systeme ->Peer – to – Peer
Webserver, Apache und XAMPP
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
XML in der Praxis: Electronic Bill Presentment (EBP) Institut für Wirtschaftsinformatik J. W. Goethe-University J. W. Goethe University Institute of Information.
Internet - Grundbegriffe Unterlagen zum Kurs "Wie erstelle ich eine Homepage?"
WINLearn Technische Umsetzung. Basistechnologie Oberfläche in HTML JSP (JavaServerPages) zur Datenauswertung Datenhaltung: Datenbank oder Filesystem JDBC.
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Jürgen Vester Manager Sales Consulting Stuttgart Webreporting für SAP R/* mit Oracle Application Express (ehem. HTML DB)
Prof. Dr.-Ing. Franz-Josef Behr Geodaten und Datenmodell
 Präsentation transkript:

Datenbanken im Web 1

Ü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

Historie des WWW Grundlage Internet WWW HTML 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

HTML Beispiel <HTML><BODY> Fiction: <UL><LI>Author: Milan Kundera</LI? <LI>Title: Identity</LI> <LI>Published: 1998</LI> </UL> Science: <UL><LI>Author: Richard Feynman</LI> <LI>Title: The Character of Physical Law</LI> <LI>Hardcover</LI> </UL></BODY></HTML>

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.)

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

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

Beispiel: Schema einer B2B Anwendung

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

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

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)

3- und 4-Schichtenarchitekturen

Anbindungstechnologien Clientseitige vs. Serverseitige Anbindung einer Datenbank

Serverseitige Anbindung: Externe Programme

Entwicklung von WebDB-Anwendungen mit Oracle Basis: PL/SQL Packages zur Erzeugung von HTML (z.B. HTP) Genutzt von Web-Werkzeugen wie z.B. Oracle Application Express (APEX) 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

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

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!“ ?> <?php echo “Hello world!“; ?> <script language=“php“> echo “Hello world!“; </script>

Verarbeitung einer PHP-Seite

PHP Beispiel <HTML> <HEAD> <TITLE>Testseite mit PHP</TITLE> </HEAD> <BODY> <H1>Testseite mit PHP</H1> <?php // Lesen des per HTTP-Post übertragenen Parameters aus Array $p_name = $_POST['p_name']; if ($p_name) { // Namen ausgeben, wenn eingegeben. print("Hallo $p_name.<p>"); // Zugriff auf Umgebungsvariable print("Client-IP-Adresse: ".$_SERVER['REMOTE_ADDR']); } </script> <FORM method="POST"> Bitte Namen eingeben: <INPUT type="text" name="p_name" size="30"> </FORM> </BODY> </HTML>

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

JDBC Klassen und Interfaces java.sql.DriverManager (class, class methods) java.sql.Driver (interface, drivers only) java.sql.Connection (interface) java.sql.Connection (interface) java.sql.Statement (interface) java.sql.Statement (interface) java.sql.Statement (interface) java.sql.Resultset (interface) java.sql.Resultset (interface)

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");

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();

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");

Warum reichen SQL-Datenbanken nicht aus? Tabelle aus relationaler DB mit scheinbar gleichartiger Struktur der Datensätze (Beispiel Adressverwaltung) Schmitz Hannes Köln Steinstr. 11 0221489090 Meier Hans München Goldmann S. 0172123456 Schleicher Helga 16.09.1948 Kramer Nils Essen Aststr. 12 21.11.1988 Rust Sonja 034196385 0163654321 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

Warum reichen SQL-Datenbanken nicht aus? Datensätze mit unterschiedlicher Satzstruktur Schmitz Hannes Köln Steinstr. 11 0221489090 Meier Hans München Goldmann S. 0172123456 Schleicher Helga 16.09.1948 Kramer Nils Essen Aststr. 12 21.11.1988 Rust Sonja 034196385 0163654321

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)

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

CouchDB als Beispiel einer NoSQL-DB Historie Autor Damien Katz 2005 Weiterentwicklung bei IBM 2008-09 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: Key/Value { Nachname: Meier, Vornamen: [Tobias, Eugen], Alter: 32, Telefon: {Handy: 017798765 , privat: 034154321 } } Array Liste

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