Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Martin Stricker [email protected] 16. Juni 2004 Programm Datenbanksysteme: Einsatzgebiete und Eigenschaften Architektur von Datenbanksystemen Objekttypmodellierung und Datenbanktabellen Datenbanksprache SQL (mit Beispieldatenbank) Content Management mit PHP und Datenbanken, Beispiel Veranstaltungskalender des HelmholtzZentrums Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Datenbanksysteme Die größte Anzahl von elektronisch gespeicherten Informationen (Daten) wird in Datenbanken gehalten, über Datenbankanwendungen bzw. Datenbankmodule innerhalb anderer Anwendungen wird auf sie zugegriffen Beispiele: • Bibliotheken, Buchungssysteme, Unternehmensdaten, Kaufund Handelsabwicklung, öffentliche Verwaltung • "Wissensmanagement": Lernsysteme, Datenbanken zur Sicherung od. Vermittlung des Kulturerbes, Wissensportale • World Wide Web: Suchmaschinen, Online-Shops, Content Management, Groupware im Intranet • Jede Art von Software, die Suchfunktionen beinhaltet, speichert Daten in (internen) Datenbanken Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Eigenschaften von Datenbanksystemen Großer Datenumfang Eine Datenbank kann große Mengen Daten aufnehmen, zugleich kann schnell und effizient auf die Daten zugegriffen werden, auch bei anwachsender Datenmenge (Skalierbarkeit) Multipler Zugriff Mehrere Nutzer können gleichzeitig auf Daten zugreifen und sie verändern (bei Erhaltung der Datenkonsistenz). Zugriffsrechte können individuell gestaltet werden Server/Client-Systeme Durch zentrale Datenhaltung (Server) und Zugriffe über Netzwerke (Clients) sind Datenbanken lokal unabhängig verfügbar, bei Nutzung des Internets weltweit. Zentrale Speicherung vermeidet Datenredundanz Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Architektur von Datenbanksystemen DBS Database System Datenbanksysteme bestehen prinzipiell aus zwei logisch (und meist physisch) voneinander getrennten Einheiten: 1. Datenbank (DB) Ein oder mehrere Dateien, in denen Daten gespeichert werden 2. Datenbankanwendung (DBMS) Ermöglicht die Abfrage oder die Manipulation der gespeicherten Daten, über ein Benutzerinterface Für die Definition und Manipulation von Datenbanken gibt es eine allgemeingültige "Sprache": SQL (Structured Query Language) DB Database SQL DBMS Database Management System Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Aufbau eines Datenbanksystems: Datenbank Ein oder mehreren Dateien Datenbank (DB) Datei(en) mit gespeicherten Daten Daten in einem bestimmten internen Format gespeichert, z.B. • proprietäres (eigenes) Format eines Datenbanksoftwareherstellers • XML • SQL • Einfache Textdatei, in der bestimmte Zeichen (Komma, Semikolon, Tabulator usw.) die Datenbankstruktur abbilden Der Zugriff (lesen und schreiben) erfolgt nicht "direkt", sondern über eine entsprechende Datenbankanwendung Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Aufbau eines Datenbanksystems: Datenbankanwendung Datenbankanwendung (DBMS) Zugriff auf DB, Benutzerinterface, Zugriffssteuerung, Backup and Restore, NetzwerkKommunikation Die Datenbankanwendung umfasst alle Einheiten, die zur Verwaltung und Nutzung einer Datenbank notwendig sind Ein DBMS ist meist nicht ein Programm, sondern mehrere Programmeinheiten (Software-Module) die in einem Netzwerk über mehrere Rechner verteilt sein können Ein (prinzipiell nicht zu einem Datenbanksystem gehörendes) Programm kann (zeitweise) Teil der Datenbankanwendung werden. Beispiel: Ein WebBrowser, der über das WWW mit einem DBS kommuniziert Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Datenbanksystem an einem Einzelplatz Datenbanksoftware auf einem einzelnen Rechner Alle Elemente eines DBS befinden sich auf einem Computer Datenbank (einzelne Datei) Datenbanksoftware Benutzer Interface Personal Computer (PC) Beispiele: MS Access, FileMaker usw. Benutzerfreundlich Nachteile: • Nur sehr begrenzt in Arbeitsgruppe (Netzwerk) nutzbar • Oft eingeschränkt SQL-konform (Ex- und Importproblem) Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Datenbanksystem in einem Netzwerk Zugriff von Client-Rechnern (Client-Software) auf zentralen Server Unterschiedliche Elemente der Datenbankanwendung auf Server und Clients verteilt Client Client Client DBMS DBMS DBMS DB DBMS Server Die Datenbankanwendung (DBMS) kann sich auch vollständig auf dem Server oder jeweils auf jedem Client befinden "Klassische" Architektur von Datenbanksystemen Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Datenbank-basierte Web-Anwendungen (Content Management) Web-Browser Offenes System: Jeder Computer mit InternetVerbindung + Web-Browser kann Client des DBS sein Client Dynamische Module des WebServers: Beim Zugriff wird anstelle einer HTML-Seite ein Programm-Skript aufgerufen: • Verarbeitung der Anfrage (URL, Formulardaten) • Datenbankabfrage (über Datenbankserver) • HTML Seite wird dynamisch generiert und an Client gesendet Client Client Datenbanksysteme und Content Management Client Internet/WWW Web-Server mit dynamischen Modul (z.B. PHP, ASP) DB Datenbankserver Web-Server Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Client Datenbankdesign Eine Datenbank hat die Aufgabe, Erscheinungen ("Objekte") aus der "Wirklichkeit" abzubilden (zu modellieren) und ihre Eigenschaften zu speichern Zu Beginn wird der "Objekttyp" definiert und seine Eigenschaften werden festgelegt Das logische Konzept dabei ist das einer Tabelle: Objekttyp Eigenschaft 1 • Tabelle: Repräsentiert den Objekttyp • Spalten: Repräsentieren die Eigenschaften der Objekte • Zeilen: Jede Zeile repräsentiert ein Objekt Eigenschaft 2 Objekt 1 Objekt 2 Objekt 3 Objekt 4 Objekt 5 Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Datenbank-Tabelle Beispiel Eine Spalte entspricht einem Datenfeld (Eigenschaft, Attribut), dessen Bedeutung eindeutig zu definieren ist (in diesem Fall: Ein Nachname einer persönlichen Wohnungsund Postadresse) Adressen Name Vorname Adresse Müller Katrin Schröderstr. 13 Mayer Kurt Bergmannstr. 7 Niehoff Heinz Kollwitzplatz 3 Schmidt Susanne Torstr. 233 Kaiser Hans Friedrichstr. 20 Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Eine Zeile entspricht einem Datensatz, der ein Objekt aus der abzubildenden Welt modelliert (in diesem Fall: eine Adresse) Beziehungen zwischen Tabellen Meist besteht eine Datenbank aus mehreren Tabellen, die jeweils verschiedene, miteinander verwandte Objekttypen repräsentieren Auf diese Weise werden unterschiedliche Objekte in Beziehung gesetzt ("relationale Datenbanken") Ein oder mehrere Schlüsselfelder sorgen für sinnvolle (eindeutige) Beziehungen (Relationen) Adressen Name Vorname Adresse Müller Katrin Schröderstr. 13 Mayer Kurt Bergmannstr. 7 Niehoff Heinz Kollwitzplatz 3 Schmidt Susanne Torstr. 233 Kaiser Hans Friedrichstr. 20 Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Termine Wen Wann Was Schmidt 2.7.04 Café Mayer 4.7.04 Café Schmidt 17.7.04 Oper Kaiser 30.7.04 Datenbanksprache SQL Structured Query Language SQL ist als Standard-Sprache für Datenbanksysteme definiert und in allen wichtigen Datenbank-Programmen (Oracle, DB2, MySQL, PostgreSQL, MS SQL Server, usw.) implementiert SQL ist ein Klartextformat, der natürlichen Sprache angelehnt SQL ist keine Programmiersprache, es muss eine Anwendungsumgebung programmiert werden, die SQLStatements verstehen und ausführen kann Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management SQL Befehle SQL umfasst die Bereiche Datendefinition (Data Definition) und Datenmanipulation (Data Manipulation) Data Definition • Tabellen, Indexe und Views (vordefinierte Abfragen) erzeugen (CREATE), ändern (ALTER) oder löschen (DROP) Data Manipulation • Datensätze in Tabellen einfügen (INSERT), aktualisieren (UPDATE) oder löschen (DELETE) • Datensätze nach bestimmten Kriterien aufrufen, für die Ausgabe vorbereiten und sortieren (SELECT) Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Praktisches Beispiel: University Museums and Collections Eine Tabelle collections mit 5 Datenfeldern (Spalten), genutzt wird die Open Source Datenbanksoftware MySQL - http://www.mysql.com "Spaltentyp" definiert die Form der Daten in der jeweiligen Spalte collections Spaltenname Spaltentyp dsn Zahl int(11) name Text varchar(250) university Text varchar(250) continent Text varchar(250) country Text varchar(250) int(11) Ganzzahl (Integer) mit max. 11 Ziffern varchar(250) Zeichenkette (Beliebige Buchstaben od. Zahlen - Variable Char) mit max. 250 Zeichen dsn ist eine fortlaufende Nummer und dient als Primärschlüssel zur einfachen Identifizierung Im WWW: http://publicus.culture.hu-berlin.de/multimedia/uebung/sql.php Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Tabelle collections: Datenbankabfrage SELECT name, university FROM collections WHERE university = 'Humboldt-Universität zu Berlin' ORDER BY name SELECT name, university Wähle die Felder (Spalten) name und university ... FROM collections ... (von denjenigen Datensätzen/Zeilen) aus der Tabelle collections ... WHERE university = 'Humboldt-Universität zu Berlin' ... wo das Feld (die Spalte) university exakt der Zeichenkette "HumboldtUniversität zu Berlin" entspricht ... ORDER BY name ... und sortiere das Ergebnis (eine temporäre Tabelle mit den Ergebniszeilen) nach dem Feld name alphabetisch aufsteigend. Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Tabelle collections: Ergebnis der Datenbankabfrage Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Weiteres SELECT-Beispiel Natürliche Sprache: Alle Sammlungen aus Europa anzeigen, außer die deutschen; dabei nach Land und Universität sortieren SQL: SELECT country, university, name FROM collections WHERE continent = "Europe" AND country != "Germany" ORDER BY country, university, name Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Problem: Zwang zu eindeutigen Aussagen Die logische Struktur von Wahr/Falsch-Aussagen (binäre Logik) von Datenbanken zwingt zu einer erheblichen Normierung und Systematisierung von Informationen Annähernde und mehrdeutige Aussagen sowie Meinungen und Tendenzen lassen sich nur schwer implementieren. Vgl. folgende Aussagen: • "Entstehungszeit um 1600" • "Vermutlich aus dem Umkreis des Blauen Reiters" • "Es lässt sich mit einiger Sicherheit behaupten ..." • "Diese Politik erzeugt in mir gemischte Gefühle" Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Problem: Datenschutz und Sicherheit Datenschutz Die Leistungsfähigkeit moderner DBS ermöglicht eine fast unbegrenzte Speicherung personenbezogener Daten • Elektronische Datenerfassung erfolgt heute praktisch überall • Werden Daten nicht gelöscht, bleiben sie ewig erhalten • Politik und Recht kommen der technischen Entwicklung kaum nach (wenn dies überhaupt erwünscht ist) Datensicherheit Schlechte oder schlampig implementierte Zugriffsregelungen und mangelnder Schutz vor "Crackern" ermöglichen den Zugriff "Unbefugter" auch auf personenbezogene Datenbestände Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Content Management Mit Content Management Systemen (CMS) lassen sich Websites in Arbeitsgruppen verwalten Die Inhalte der Webseiten werden in Datenbanken gespeichert, die Webseiten von Programmskripts bei Aufruf eines URL dynamisch (im Moment des Aufrufs) erzeugt Vorteile: • Mitarbeiter können ohne spezielle Programmier- oder HTML-Kentnisse Inhalte pflegen • Über spezielle Zugriffsrechte sind verteilte und hierarchisierte Workflows möglich • Schnelle Aktualisierung, Automatisierung (z.B. Ausblenden veralteter Termine in einem Veranstaltungskalender) • Eine Website kann schnell und unkompliziert erweitert und verändert werden Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Beispiel: Veranstaltungskalender Helmholtz-Zentrum http://www2.hu-berlin.de/kulturtechnik/kalender.php Dateneingabe: • Ein Mitarbeiter erstellt im internen Kalender einen Termin und kennzeichnet ihn als "öffentlich" • Die Geschäftsleitung gibt den Termin frei (oder nicht) kalender.php: • ruft aus der Datenbank Termine auf, die nach dem aktuellen Datum liegen und als "öffentlich" freigegeben sind • erstellt eine HTML-Tabelle und sendet sie an den Client Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management Veranstaltungskalender - kalender.php kalender.php ist ein PHP-Skript (PHP Hypertext Preprocessor) Weitere Informationen: http://www.php.net Bei seinem Aufruf wird es vom PHP-Modul des Web-Servers wie ein kleines Programm ausgeführt Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management kalender.php Das PHP-Skript ruft die entsprechenden Termine über ein SQLStatement aus der MySQL-Datenbank auf Für jeden Termin wird über eine "Schleife" eine HTMLTabellenzeile ausgegeben Schematische Darstellung einer HTML-Tabellenzeile mit Variablen (Werte aus den Datenbank-Feldern, blau gefärbt): <tr> <td><b>{datum}</b><br> {anfang} - {ende} oder bis {endedatum} </td> <td><b><a href="{linkurl}">{titel}</a></b><br> {beschreibung}<br> Ort: {ort} </td> </tr> Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Datenbanksysteme und Content Management