Info- / Arbeitsblatt Datum: THEMA: Datenbank (Grundbegriffe) Lehrer: Zier Seite 1 Grundbegriffe Schauen wir uns zunächst die Grundbegriffe zum Thema "Datenbanken" in seiner Bedeutung etwas genauer an. Daten Das allseits beliebte Online-Lexikon wikipedia weist dem zentralen Begriff "Daten" als logisch gruppierte Informationseinheiten (engl., aber auch in der Informationstheorie Datum, von lat. dare = geben, datum = das Gegebene) aus, die zwischen Systemen übertragen werden oder auf Systemen gespeichert sind. Für Informatiker sind Daten nicht nur Gebilde aus Zeichen, die aufgrund bekannter oder unterstellter Abmachungen Informationen zu Objekte und Subjekte der realen Welt vermitteln, vorrangig zum Zweck der Sammlung und Verarbeitung, sondern inzwischen jegliche Formen digitalisierbarer Informationen (Bilder, Video, Sound). Um aus Daten Informationen zu gewinnen, müssen sie in einem Bedeutungskontext interpretiert werden. So kann die Zahlenfolge „12345678“ zum Beispiel nur in ihrem Kontext als eine Telefonnummer, eine Kontonummer oder die Anzahl von Meerschweinchen in deutschen Haushalten stehen. Als reiner Datenblock betrachtet handelt es sich bei „12345678“ erst einmal nur um eine Aneinanderreihung von Ziffern oder Symbolen. Die Bedeutung wird erst im jeweiligen Kontext sichtbar. Die Speicherung von Daten in datenverarbeitenden Maschinen erfolgt in der Regel in binärer Form, in Form von Bits als kleinste Speichereinheit, denn in der Computertechnik finden wir Speichersysteme, die nur die Zustände „An“ und „Aus“ kennen, die als 1 und 0 und damit die Basiswerte des Binärsystems interpretiert werden. Man unterscheidet: unstrukturierte Daten (beispielsweise Textdokumente) strukturierte Daten (zum Beispiel Datenbanken) semistrukturierte Daten (z. B. XML - Extensible Markup Language) Datenbank In der Informatik versteht man unter Datenbank (engl. database) einen logisch zusammengehörigen Datenbestand, also eine Ansammlung von Informationen, die sich auf ein bestimmtes Thema oder einen bestimmten Zweck beziehen, z. B. Bücher in einer Bibliothek, Waren im Warenlager, Personal in einem Unternehmen, usw. Eine Datenbank ist also die elektronische Form eines Karteikastens. Die erste Generation von Datenbanken bestand aus Lochkarten, die hintereinander (sequentiell) ausgelesen werden mussten, was zur Folge hatte, dass alle Informationen, die vor der gesuchten standen, ausgelesen und verarbeitet werden mussten. Ähnlich 1 Info- / Arbeitsblatt THEMA: Datenbank (Grundbegriffe) Datum: Lehrer: Zier Seite 2 funktionierten Magnetbänder, auf denen nur sequentielle Dateien gespeichert werden konnten. Die zweite Generation der Datenbanken wurde ca. 1960 entwickelt. Zu diesem Zeitpunkt begann man, die Daten auf Festplatten zu halten, was zu einem erheblichen PerformanceVorteil führte und zudem der Mehrbenutzerbetrieb möglich machte, d.h. vielen Benutzern hattengleichzeitige Zugriff auf die Datenbank. Zwischen 1965 und 1975 wurde die dritte Generation der Datenbanken entwickelt. In dieser Zeit entstanden das Hierarchische Datenbankmodell und die Netzwerkdatenbank, auf die hier nicht eingegangen werden soll; ebenso bleiben neuere Entwicklung, so genannte objektorientierte Datenbanken (OODBMS) aussen vor. Einen wesentlichen Fortschritt in der dritten Generation erzielte in den 60er und 70er Jahren Edgar F. Codd mit seiner Forschungsarbeit am IBM Almaden Research Center in San Jose. Codd entwickelte die Grundlagen der relationalen Datenbanken. Relationale Datenbanken Relationale Datenbanken sind heute am weitesten verbreitet. In ihnen werden Daten (Texte, Zahlen und Binärdaten) in Tabellen abgespeichert. Die Bezeichnung Relational entstammt dem zugrunde liegenden mathematischen Modell, der Relationalen Algebra, auf dem diese Datenbanken beruhen. Tabelle Eine Tabelle ist eine Zusammenfassung einer Anzahl von Datensätzen mit gleicher Struktur, vergleichbar einem Karteikasten. Im DBMS werden diese Datensätze üblicherweise auch tabellarisch dargestellt. Eine Adresstabelle könnte z.B. speichern: Name, Vorname, Straße, Hausnummer, Ort, Telefonnummer. Datensatz Alle Informationen, die zusammen einen Datensatz (Record, Tupel) ausmachen, sind als eine Zeile der Tabelle realisiert. Man kann den Datensatz als Zeile anschauen oder übersichtlicher als Formular auf einer Seite darstellen. Ein Datensatz ist vergleichbar mit einer Karte aus einem Karteikasten. Datenfeld Ein (Daten-) Feld bzw. Attribut ist ein Teil eines Datensatzes, z. B. in einer Adresstabelle das Feld mit dem Nachnamen. In Feldern können sich Daten unterschiedlichster Art - aber eines definierten Datentyps - befinden, z. B. Text, Zahlen, Bilder, Sound, etc. Ein Feld ist 2 Info- / Arbeitsblatt THEMA: Datenbank (Grundbegriffe) Datum: Lehrer: Zier Seite 3 vergleichbar einer Zeile auf einer Karte eines Karteikastens. Hierbei werden Schlüsselattribute und sonstige Attribute unterschieden. Das Schlüsselattribut dient zum Identifizieren und Verknüpfen von Datensätzen, während die restlichen Attribute nur vom Schlüssel abhängige Daten enthalten. (Beispiel: Personalnummer ist Schlüssel; Eintrittsdatum und Geburtsdatum sind Attribute). Datenbankmanagementsystem Der Datenbestand wird von einem Datenbankmanagementsystem (DBMS) auf einem Speichermedium verwaltet. Das DBMS ist die eingesetzte Software, die für das Datenbanksystem installiert und konfiguriert wird. Datenbankmanagementsysteme selbst sind hochkomplexe Softwaresysteme, deren Auswahl eine kritische Entscheidung ist und die von dem zugrunde gelegten Datenbankmodell abhängen. Dieses Verwaltungssystem ermöglicht dem Nutzer, bestimmte Informationen (Daten) zu erfassen, zu speichern, wieder aufzufinden, zu aktualisieren oder weitere Operationen mit den Daten durchzuführen, wie z. B. das Sortieren nach bestimmten Kriterien. Um einen effizienten Zugriff auf die Daten zu gewährleisten, verwaltet das DBMS in der Regel eine Speicherhierarchie, die insbesondere auch einen schnellen Zwischenspeicher (Pufferpool) umfasst. Zur Wahrung der Integrität des Datenbestandes müssen sich alle Softwaresysteme, egal ob Betriebssystem oder Textverarbeitung, an das DBMS wenden, um die Datenbank nutzen zu können. Einzelne DBMS-Hersteller verwenden geringfügig voneinander abweichende Begrifflichkeiten dafür, was man genau unter einer Datenbank versteht: entweder alle Daten, die von einem laufenden DBMS bzw. der Instanz verwaltet werden, oder nur die jeweils inhaltlich zusammengehörigen Daten. Bei verteilten Datenbanken gibt es auch im Modell mehrere Datenbanken auf unterschiedlichen Systemen, die miteinander verbunden sind. Wir wollen uns mit einem Relationalen Datenbankmodell beschäftigen und uns dabei die Funktionsweise eines RDBMS (relationales Datenbankmanagementsystem) am Beispiel von MS ACCESS anschauen. Der Begriff relational deutet dabei schon an, dass Tabellen und deren Beziehungen eine wichtige Rolle spielen. Derzeit verwenden alle wichtigen DesktopDatenbanksysteme dieses Schema. MS ACESS beinhaltet alle Komponenten, die zur Eingabe, Speicherung, Auswertung und Ausgabe von Informationen dienen. Dazu zählen im einzelnen: Tabellen zur Informationsspeicherung Abfragen, um gezielt Informationen zu finden Formulare zur Ein- und Ausgabe von Informationen und zur Benutzerführung Berichte, um Informationen auszudrucken Makros, um Arbeitsabläufe zu automatisieren Module zur individuellen Programmierung 3 Info- / Arbeitsblatt THEMA: Datenbank (Grundbegriffe) Datum: Lehrer: Zier Seite 4 Microsoft ACCESS ist ein DBMS, mit dem sich auch größere Datenbestände schnell und komfortabel in Datenbanken verwalten lassen. Funktionen von DBMS Zur Wahrung der Datenintegrität und Konsistenz der Daten erfüllen moderne DBMS folgende Funktionen: Datensicherheit Das RDBMS speichert neben den eigentlichen Daten zusätlich Informationen über die Datenstruktur und Zugriffsrechte von Benutzern. Letztere sind wichtig, um die Datensicherheit zu garantieren. Dazu gehört sowohl Schutz gegen Datenverlust sowie Schutz gegen unerlaubten Zugriff. Die Metadaten eines DBMS werden auch als das Data Dictionary oder Katalog des Systems bezeichnet. Ein weiterer Wichtige aufgabe des RDBMS ist das Sichern des Datenbestandes durch Backups. Transaktionen Ein weiterer wichtiger Teil der Datensicherheit ist das Transaktionskonzept, das Datenverlust durch den parallelen Zugriff mehrerer Benutzer schützt. Das Ergebnis der Änderungen würde dann vom Zufall abhängen. Vereinfacht dargestellt, sperren Transaktionen Daten vorübergehend für den Zugriff durch einen Benutzer, bis eine Transaktion beendet ist. Danach werden die geänderten Daten wieder freigegeben. Datenintegrität Die Integrität der Daten kann durch sog. Constraints sichergestellt werden: Regeln im Managementsystem beschreiben, wie Daten verändert werden dürfen. Der wichtigste Vertreter bei relationalen Datenbanksystemen ist der Foreign Key Constraint, denn dieser verhindert, dass Daten gelöscht werden können, die noch von einer anderen Tabelle benötigt werden. Das sind Daten, die über einen Foreign Key (Fremdschlüssel) verknüpft sind. Abfrageoptimierung Damit Daten abgefragt und manipuliert werden können, stellt das DBMS eine Datenbanksprache zur Verfügung, die die Abfrage an das Datenbanksystem in die Sprache der logischen Operationen übersetzt. Die Wahl der Operatoren und die Reihenfolge ihrer Ausführung nennt man das Erstellen eines Ausführungsplans durch den Abfrageoptimierer der ein besonders komplexer Teil und wichtiger der Datenbanksoftware ist. Bei der Abfrage spielen Indizes eine wichtige Rolle. Sie dienen dazu, besondern in großen datenbeständen, schneller einen bestimmten Datensatz zu finden. Welche Daten einen Index erhalten, wird beim Anlegen der Datenbankstruktur festgelegt, kann aber später noch angepasst werden. Die Datenbanksprache hat folgenden Zwecke: Datenabfrage und -manipulation (DML) 4 Info- / Arbeitsblatt Datum: THEMA: Datenbank (Grundbegriffe) Verwaltung der Datenbank und Definition der Datenstrukturen (DDL) Berechtigungssteuerung (DCL) Lehrer: Zier Seite 5 Bei den relationalen DBMS sind diese Bereich durch die Sprache SQL (das Kürzel für Structured Query Language; offizielle Aussprache [ɛskjuːˈɛl]) abgedeckt. Anwendungsunterstützung Benutzerfreundliche Systeme ermöglichen das Programmieren von Datenbankapplikationen, die über Trigger und Stored Procedures mit der Datenbank kommunizieren. Ein Trigger löst eine Aktion in der Datenbank aus, wenn ein bestimmtes Ereignis eingetreten ist, z.B. wenn der Benutzer in seiner Datenbankanwendung auf den Löschen-button klickt. Stored Procedures dienen dem Ausführen von Scripten in der Datenbank. Datenbanken, die Trigger und Stored Procedures unterstützen, werden auch als aktive Datenbanken bezeichnet Mehrbenutzerfähigkeit Für den Zugriff auf die Daten des DBS müssen Berechtigungen verwaltet werden. Ohne Berechtigung kann die entsprechende Operation nicht durchgeführt werden. Für den (pseudo-)gleichzeitigen Zugriff mehrerer Anwendungen bzw. Anwender regelt das DBMS die Zugriffe durch Sperren (engl. locks), Systemprotokolle (engl. logs bzw. log files) Transaktionen. 5