1 Zunächst ist zu klären, was eine Datenbank überhaupt ist. Daher werden wir zunächst der Frage nachgehen: Über welche Art der Daten reden wir? Es ist wichtig genau zu verstehen, welche Daten wir in einem Datenbanksystem ablegen und wie die Daten verarbeitet werden sollen. Danach werden wir der Frage nachgehen, in welchen Bereichen werden Datenbanksysteme typischerweise eingesetzt. Dies liefert uns dann die Basis, um die allgemeinen Anforderungen an ein Datenbanksystem zu erarbeiten bzw. zu verstehen.. 2 Bei dem Thema Datenbanken bzw. Datenbanksystem geht es in wesentlich um das strukturierte Ablegen von Daten. Hierbei spricht man auch von der Persistenz der Daten. Daten, die im Hauptspeicher sind, gehen nach dem Beenden einer Anwendung verloren. Hierbei spricht man von transienten Daten. Sollen Daten nach dem Beenden einer Anwendung zu einem späteren Zeitpunkt wieder zur Verfügung stehen, müssen diese auf einem Speichermedium abgelegt werden. Das effiziente Ablegen der Daten auf einem Speichermedium wird von einem sogenannten Datenbanksystem übernommen. Für die Anwendung und den Umgang eines Datenbanksystems unterscheiden wir zunächst zwei Sichtweisen: Die Anwendersicht Aus Anwendersicht stellen sich primär folgende Fragen: 1. Was sind das für Daten? 3 2. Wer braucht diese Daten? D.h. wer verarbeitet diese Daten überhaupt? 3. Wie hoch ist die Datenmenge überhaupt? 4. Wie wichtig sind die Daten für mein Geschäftsmodell/Business? Die Technische Sicht Aus technischer Sicht stellen sich folgende Fragen: 1. Wie werden die Daten auf dem Speichermedium abgelegt? Effiziente Speicherung 2. Wie schnell kann ich die Daten lesen? Zugriffszeiten 3. Kann ich Daten auch verlieren Ausfallsicherheit, Zuverlässigkeit Definitionen: • Eine Datenbank ist eine Sammlung von Daten. • Ein Datenbanksystem verwaltet die Daten einer Datenbank. 3 In der Regel handelt es sich um wichtige Informationen und Daten aus dem geschäftlichen Bereich. Hierbei handelt es sich zum Beispiel um • Stammdaten ( Kundenanschriften, Lieferanschriften) • Bestellungen, Material- und Lagerpositionen • Produktionsdaten, Produktionsprozesse • Finanzdaten wie Kredite, Anlagen, Börsenkurse,… • Kommunikationsdaten wie Emails, eingescannte Dokumente von Kunden und Partnern • Technische Zeichnungen (CAD-Computer Aided Design) • Geo-Daten, Wetterdaten,.. • Daten über Bücher, CDs, Magazine, Video Filme,… Insgesamt unterteilt man die Daten in : • strukturiert Daten • unstrukturierte Daten 4 Strukturierte Daten: Strukturierte Daten liegen in rechnerlesbarer Form vor. Beispiele hierfür sind: • Angaben zu Adressen • Angabe zu Büchern etc.. Wie man erkennen kann, handelt es sich meist um Informationen über Dinge, die real existieren. Aber auch Informationen, die nur virtuell existieren, sind hier zu finden. Beispiel sind: • Verbindungsdaten über eine Kommunikationsverbindung • Informationen über Virtuelle-Maschinen Unstrukturierte Daten: Unstrukturierte Daten beziehen sich auf Informationen, denen kein fest gelegtes Datenmodell zu Grunde liegt, aus dem sich die Semantik der Daten ergibt. In der Regel sind dies Texte, deren Bedeutung sich zum Beispiel erst durch eine Textanalyse ergibt. Auch statistische Methoden oder auch Mustererkennung-Methoden sind hier denkbar. Beispiele sind: • Freie Texte • Bilder • Videos • Social Media Posts Speziell in dem Bereich Datenbanken interessieren wir uns nur für den Bereich „Strukturierte Daten“, da wir diese besonders gut in Datenbanken ablegen und weiter verarbeiten können. Zum vertiefen siehe • http://searchstorage.techtarget.com/feature/What-is-unstructured-data-and-how-is-itdifferent-from-structured-data-in-the-enterprise 4 Auf der Abbildung sind die wichtigsten kommerziellen Einsatzgebiete aufgelistet. In allen Fällen geht es darum eine robuste und zuverlässige Umgebung zu haben, in der die zum Teil überlebenswichtigen Daten/Informationen einer Firma bzw. Unternehmens dauerhaft gespeichert abgelegt werden können. Daher werden Datenbanksystem oft als „Mission-Critical“ bezeichnet. 5 Die Anforderungen an eine Datenbank lassen sich in zwei Bereiche gliedern. Da sind zunächst die funktionalen Anforderungen. Aus Sicht der Anwendung sind dies folgende Anforderungen • Daten erzeugen - Create • Daten lesen – Read • Daten ändern – Update • Daten löschen – Delete Diese Funktionen werden im allgemeinen mit CRUD (create, read, update, delete) bezeichnet. Darüber hinaus gibt noch weitere Anforderungen, die sich direkt an das Datenbanksystem wenden: Es handelt sich im wesentlichen um allgemeine und sehr oft benötigte Funktionen, die direkt auf Datenbanksystem-Ebene ausgeführt werden sollen, anstatt in einer Applikation. Hierzu gehören Funktionen wie: • Sortieren der Daten • Filtern von Daten 6 • Dinge berechnen Summe etc. • Anzahl zählen 6 Zusätzlich zu den Funktionen sind die Eigenschaften eines Datenbanksystems wichtig. Im Wesentlichen sind dies: • Benutzerfreundlichkeit • Portabilität • Sicherheit gegen unerlaubte Zugriffe • Ausfallsicherheit • Datensicherheit • Mehrfachzugriff Benutzerfreundlichkeit Hiermit ist gemeint • Wie einfach kann ich Anwendungen erstellen und testen (AppEntwicklungssicht)? • Wie hoch ist der Administrations- und Wartungsaufwand (Administrator Sicht)? Portabilität 7 Hier stellt sich die Frage: • Wie stark bin ich an ein Betriebssystem-Plattform gebunden? • Wieviel Aufwand bedeutet es für einen Kunden die Betriebssystem-Plattform zu wechseln? • Wieviel Aufwand ist es von einem Datenbanksystem auf ein anderes Datenbanksystem eines anderen Herstellers zu wechseln? Sicherheit gegen unerlaubte Zugriffe Bei der Frage nach Sicherheit geht es um die Punkte: • Authentifizierung (Authentication) – Wer darf auf die Daten in der Datenbank zugreifen? • Autorisierung (Authorization) - Auf welche Daten darf der Anwender einer Datenbank zugreifen und welche Operationen (CRUD) darf er ausführen? Ausfallsicherheit Hier geht es um die Fragen: • Wie sicher sind meine Daten beim Systemausfall? • Wie oft kann es vorkommen, dass meine Datenbank ausfällt? (MTBF – meantime between failures) = Mittlere Zeitdauer zwischen zwei Systemausfällen • Wie lange dauert das Wiederherstellen von Daten nach einem Systemausfall? Datensicherheit Wie der Name schon vorgibt, geht es hier um die Sicherheit der Daten selbst. Hierunter fallen alle Fragen wie: • Verlässlichkeit - Sind die Daten in der Datenbank auch richtig? - Integrität • Aktualität – Wie aktuell sind meine Daten? (Keine veralteten Daten) • Konsistenz – Sind die Daten konsistent? Jede Änderung des Datenbestandes einer Datenbank führt von einem logisch korrektem zu einem anderen logisch korrektem Zustand. Jedes DBMS überwacht die Einhaltung von Integritätsregeln Mehrfachzugriff In der Regel wird eine Datenbank von vielen Benutzern verwendet, die zum Teil auf den gleichen Daten arbeiten. In einer firmenweiten Datenbank können dies in der Praxis mehrere Hundert Benutzer sein. Daher stellen sich folgende Anforderungen: 7 • Mehrere Benutzer können auf die gleichen Daten zugreifen. • Die Daten müssen dabei immer konsistent sein • Die Benutzer dürfen sich nicht gegenseitig behindern. 7 8