Найдено 81
Concurrency und Recovery
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
In der Praxis ist entscheidend, dass Zugriffe auf eine Datenbank deren Konsistenz unter keinen Umständen verletzen, auch nicht im Fehlerfall, und auch dann nicht, wenn hunderte Anwendungen parallel zugreifen. Wir wollen in diesem Kapitel ausgiebig über die Sicherstellung der Konsistenz in Situationen wie Parallelbetrieb und Rechnerabsturz sprechen. Unter Recovery verstehen wir die Rekonstruktion einer Datenbank im Fehlerfall. Aufgabe der Recovery ist es, nach aufgetretenen Problemen und Fehlern die Konsistenz der Daten zu gewährleisten. Unabhängig von der Art der Probleme, wie etwa plötzlicher Rechnerausfall oder sogar Feuer im Rechenzentrum, muss die konsistente Wiederherstellung der Daten möglich sein. Concurrency ist der englische Begriff für Parallelbetrieb. Gefordert ist hier das Zulassen gleichzeitiger Zugriffe mehrerer Benutzer auf eine Datenbank. Ohne entsprechende Maßnahmen können durch solch gleichzeitige Zugriffe Konsistenzverletzungen und Datenverlust auftreten. Dies lässt sich mit entsprechenden Synchronisationsmechanismen unterbinden.
Die Beschreibungssprache SQL
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
In diesem Kapitel geht es um das Erstellen von Datenbanken. Im Zentrum steht dabei das Erzeugen von Basistabellen, temporären Tabellen und Sichten. Anschließend lernen wir, Zusicherungen und Gebiete zu definieren. Wichtig für einen Datenbank sind auch Trigger und Sequenzen. Enorm wichtig ist aber ein umfassender Zugriffsschutz. Hierzu gehören vor allem passgenaue Zugriffsrechte und die Sicherstellung der Integrität. Wir gehen ganz ausführlich darauf ein. Zuletzt beschäftigen wir uns noch mit dem generellen Aufbau, dem Einrichten und der Verwaltung von Datenbanken.
Performance in Datenbanken
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
Dass Datenbanken so kurze Antwortzeiten besitzen, ist ausgefeilten Performance-Maßnahmen zu verdanken. Einige ganz wichtige Optimierungen wollen wir in diesem Kapitel vorstellen. Wir sehen uns zunächst den in allen größeren Datenbanken implementierten Optimizer an, der alle Zugriffsbefehle überprüft und optimiert, noch bevor sie ausgeführt werden. Mit Hilfe eines vom Optimizer generierten Ausführungsplans können wir nachvollziehen, wie ein Befehl letztendlich ausgeführt wird. Damit ausgerüstet, können wir gleich mit Indexen testen, wie viel diese sehr wichtigen Strukturen leisten. Bei sehr großen Relationen bietet die Partitionierung ebenfalls enorme Antwortzeitgewinne. In eine ganz andere Richtung gehen wir mit materialisierten Sichten. Performancemäßig nützen Sichten nur, wenn wir diese auch physisch speichern. Und genau dies tun materialisierten Sichten. Weiter geben wir Hinweise, wie wir unsere Select-Befehle optimieren können. Neben weiteren Optimierungen spielen Stored Procedures eine wichtige Rolle. Wir werden auch darauf eingehen.
Datenbankdesign
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
Wir werden in diesem Kapitel Normalformen von Relationen und die dazu benötigten Definitionen einführen. Während die Normalformenlehre immer nur einzelne Relationen getrennt untersucht, unterstützt das anschließend vorgestellte Entity-Relationship-Modell das Gesamtdesign einer Datenbank mit all den Beziehungen zwischen den einzelnen Relationen. Das Entity-Relationship-Modell ist enorm hilfreich und wird vielseitig eingesetzt, übrigens nicht nur in relationalen Datenbanken.
Übersicht über Datenbanken
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
Aller Anfang ist schwer. Dieses Kapitel soll diesen Anfang erleichtern und führt in diese ganz neue Welt der Datenbanken mit all ihren Begriffen und Besonderheiten ein. Wir beginnen mit der Definition einer Datenbank und stellen anschließend einen Katalog über Wünsche und Erwartungen an Datenbanken zusammen. Es überrascht nicht, dass dieser ziemlich umfangreiche Katalog heute von Datenbanken fast vollständig erfüllt wird. Und schon beginnen wir zu erahnen, wie mächtig und komplex moderne Datenbanksysteme sind. In den folgenden Abschnitten definieren wir die Aufgaben eines Datenbank-Administrators, lernen grob die einzelnen Datenbankmodelle kennen, gewinnen einen Überblick über Datenbankzugriffe und stoßen schließlich auf den enorm wichtigen Transaktionsbegriff. Der Leser, der bereits Grundkenntnisse in Datenbanken besitzt, kann dieses Kapitel gerne überspringen.
Anhang
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
Die Beispieldatenbank Bike wird in diesem Buch zu Übungszwecken durchgängig verwendet. Diese Datenbank ist der Praxis entnommen: Der hier betrachtete Fahrradhändler kann seine Aufgaben mit dieser Datenbank verwalten, auch wenn noch Wünsche offen bleiben. Dafür ist diese Datenbank mit nur zehn Relationen sehr übersichtlich und daher optimal für den Anfänger geeignet. Es heißt, wir lernen aus Fehlern, und so enthält die Datenbank Bike einige Designschwächen. Nicht jede Relation befindet sich in der 3. Normalform, auch inhaltlich ist die Datenbank Bike nicht immer optimal aufgebaut. Im Buch wird gezielt auf diese Problemfälle aufmerksam gemacht. Davon unabhängig sei als Übung empfohlen, die noch enthaltenen Designfehler zu identifizieren und zu beseitigen. Dieser Anhang enthält eine Gesamtdarstellung der Beispieldatenbank Bike. Die Installationsskripte für diese Datenbank werden kostenlos für Oracle, MS SQL Server und MySQL im Internet unter der folgenden Adresse zur Verfügung gestellt:
Datenbankprogrammierung mit PHP
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
In der Praxis wird nur selten mittels einzelner SQL-Befehle auf Datenbanken zugegriffen. Vielmehr werden umfangreiche Programme eingesetzt, um komplexe Aufgaben mit Unterstützung von Datenbanken zu bewältigen. Dabei spielt das Internet eine immer wichtigere Rolle. Wir werden daher in diesem Kapitel mittels der Internet-Programmiersprache PHP lernen, Datenbanken gezielt einzusetzen. Wir benutzen in PHP die datenbankunabhängige Schnittstelle PDO. Wir beginnen mit einfachen Anwendungen, werden dann ganze Tabellen auslesen und schließlich komplexe Transaktionen einschließlich Fehlerbehandlung ausführen. Auch der Zugriff auf große Binärdateien wird für uns am Schluss keine große Herausforderung mehr sein.
Moderne Datenbankkonzepte
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
In den letzten Jahren stieg das Interesse für verteilte Datenbanken enorm an. Hier sei nur das Stichwort Cloud erwähnt. Dieses Kapitel gibt im ersten Teil einen kleinen Überblick über den aktuellen Stand verteilter Datenbanken und von NoSQL. Dabei wird das Hauptgewicht auf die Definition und die Idee der verteilten Datenbanken gelegt. In verteilten Datenbanken werden die Daten nicht wie bisher zentral gespeichert, sondern auf mindestens zwei Rechner oder gleich im gesamten Netz verteilt. Diese Daten müssen inklusive einer möglichen Mehrfachhaltung korrekt verwaltet werden. Wir werden als Beispiel auf das Protokoll des Zwei-Phasen-Commit eingehen, das bereits seit vielen Jahren im praktischen Einsatz ist. Anders als bei verteilten Systemen stehen hinter objektorientierten Datenbanken Zugriffsstrukturen. Wir werden im zweiten Teil dieses Kapitels die objektrelationalen Konzepte am Beispiel von Oracle aufzeigen.
Die Zugriffssprache SQL
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
Dieses Kapitel behandelt überwiegend den lesenden Zugriff auf die Datenbankdaten. Wir arbeiten uns systematisch durch den Select-Befehl, um schließlich mittels Unterabfragen und Verbundoperationen (Joins) auch komplexe Zugriffe auf die Inhalte einer Datenbank meistern können. Im zweiten Teil behandeln wir Mutationsbefehle, die Schreibzugriffe auf die Daten. Diese Befehle sind relativ einfach, da sie syntaktisch weitgehend auf den Lesezugriffen aufbauen. Zuletzt gehen wir auf den Transaktionsbetrieb und einen Vergleich zur relationalen Algebra ein.
Das Relationenmodell
Schicker E.
Springer Nature
Informatik & Praxis, 2017, цитирований: 0, doi.org, Abstract
Dieses Kapitel beschäftigt sich mit dem logischen Aufbau einzelner Tabellen und ihrer Beziehungen zueinander. Wir beginnen mit einer Beispieltabelle, die wir nicht zur Nachahmung empfehlen. Erfahrungsgemäß motivieren Negativbeispiele dahingehend, es zukünftig besser zu machen. Wir gehen anschließend ausführlich auf relationale Datenstrukturen ein und werden relationale Datenbanken exakt definieren. Es folgt ein Abschnitt über die zwei Integritätsregeln, die zur Sicherstellung der Integrität in Datenbanken erfüllt sein müssen, und die deshalb den Aufbau von Tabellen und die Beziehungen zwischen den Tabellen entscheidend mitprägen. Wir beenden dieses Kapitel mit einem theoretischen Abschnitt zur relationalen Algebra, der mathematischen Grundlage des Zugriffs auf relationale Datenbanken.
Moderne Datenbankkonzepte
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
In den letzten Jahren stieg das Interesse für verteilte Datenbanken enorm an. Hier sei nur das Stichwort Cloud erwähnt. Dieses Kapitel gibt im ersten Teil einen kleinen Überblick über den aktuellen Stand verteilter Datenbanken und von NoSQL. Dabei wird das Hauptgewicht auf die Definition und die Idee der verteilten Datenbanken gelegt. In verteilten Datenbanken werden die Daten nicht wie bisher zentral gespeichert, sondern auf mindestens zwei Rechner oder gleich im gesamten Netz verteilt. Diese Daten müssen inklusive einer möglichen Mehrfachhaltung korrekt verwaltet werden. Wir werden als Beispiel auf das Protokoll des Zwei-Phasen-Commit eingehen, das bereits seit vielen Jahren im praktischen Einsatz ist. Anders als bei verteilten Systemen stehen hinter objektorientierten Datenbanken Zugriffsstrukturen. Wir werden im zweiten Teil dieses Kapitels die objektrelationalen Konzepte am Beispiel von Oracle aufzeigen.
Datenbankprogrammierung mit PHP
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
In diesem Kapitel werden wir mittels PHP auf Datenbanken zugreifen. Um datenbankunabhängig zu sein, werden wir die Schnittstelle PDO (PHP Data Objects) verwenden. Wir beginnen mit einfachen Anwendungen, um schließlich bei komplexeren Transaktionen anzukommen. Zuletzt werden wir uns noch mit dem Zugriff auf binäre Daten beschäftigen.
Performance in Datenbanken
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Dass Datenbanken so kurze Antwortzeiten besitzen, ist ausgefeilten Performance-Maßnahmen zu verdanken. Einige ganz wichtige Optimierungen wollen wir in diesem Kapitel vorstellen. Wir sehen uns zunächst den in allen größeren Datenbanken implementierten Optimizer an, der alle Zugriffsbefehle überprüft und optimiert, noch bevor sie ausgeführt werden. Mit Hilfe eines vom Optimizer generierten Ausführungsplans können wir nachvollziehen, wie ein Befehl letztendlich ausgeführt wird. Damit ausgerüstet, können wir gleich mit Indexen testen, wie viel diese sehr wichtigen Strukturen leisten. Bei sehr großen Relationen bietet die Partitionierung ebenfalls enorme Antwortzeitgewinne. In eine ganz andere Richtung gehen wir mit materialisierten Sichten. Performancemäßig nützen Sichten nur, wenn wir diese auch physisch speichern. Und genau dies tun materialisierten Sichten. Weiter geben wir Hinweise, wie wir unsere Select-Befehle optimieren können. Neben weiteren Optimierungen spielen Stored Procedures eine wichtige Rolle. Wir werden auch darauf eingehen.
Concurrency und Recovery
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
In der Praxis ist entscheidend, dass Zugriffe auf eine Datenbank deren Konsistenz unter keinen Umständen verletzen, auch nicht im Fehlerfall, und auch dann nicht, wenn hunderte Anwendungen parallel zugreifen. Wir wollen in diesem Kapitel ausgiebig über die Sicherstellung der Konsistenz in Situationen wie Parallelbetrieb und Rechnerabsturz sprechen. Unter Recovery verstehen wir die Rekonstruktion einer Datenbank im Fehlerfall. Aufgabe der Recovery ist es, nach aufgetretenen Problemen und Fehlern die Konsistenz der Daten zu gewährleisten. Unabhängig von der Art der Probleme, wie etwa plötzlicher Rechnerausfall oder sogar Feuer im Rechenzentrum, muss die konsistente Wiederherstellung der Daten möglich sein. Concurrency ist der englische Begriff für Parallelbetrieb. Gefordert ist hier das Zulassen gleichzeitiger Zugriffe mehrerer Benutzer auf eine Datenbank. Ohne entsprechende Maßnahmen können durch solch gleichzeitige Zugriffe Konsistenzverletzungen und Datenverlust auftreten. Dies lässt sich mit entsprechenden Synchronisationsmechanismen unterbinden.
Anhang
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Die Beispieldatenbank Bike wird in diesem Buch zu Übungszwecken durchgängig verwendet. Diese Datenbank ist der Praxis entnommen: Der hier betrachtete Fahrradhändler kann seine Aufgaben mit dieser Datenbank verwalten, auch wenn noch Wünsche offen bleiben. Dafür ist diese Datenbank mit nur zehn Relationen sehr übersichtlich und daher optimal für den Anfänger geeignet. Es heißt, wir lernen aus Fehlern, und so enthält die Datenbank Bike einige Designschwächen. Nicht jede Relation befindet sich in der 3. Normalform, auch inhaltlich ist die Datenbank Bike nicht immer optimal aufgebaut. Im Buch wird gezielt auf diese Problemfälle aufmerksam gemacht. Davon unabhängig sei als Übung empfohlen, die noch enthaltenen Designfehler zu identifizieren und zu beseitigen. Dieser Anhang enthält eine Gesamtdarstellung der Beispieldatenbank Bike. Die Installationsskripte für diese Datenbank werden kostenlos für Oracle, MS SQL Server und MySQL im Internet unter der folgenden Adresse zur Verfügung gestellt:
Das Relationenmodell
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Dieses Kapitel beschäftigt sich mit dem logischen Aufbau einzelner Tabellen und ihrer Beziehungen zueinander. Wir beginnen mit einer Beispieltabelle, die wir nicht zur Nachahmung empfehlen. Erfahrungsgemäß motivieren Negativbeispiele dahingehend, es zukünftig besser zu machen. Wir gehen anschließend ausführlich auf relationale Datenstrukturen ein und werden relationale Datenbanken exakt definieren. Es folgt ein Abschnitt über die zwei Integritätsregeln, die zur Sicherstellung der Integrität in Datenbanken erfüllt sein müssen, und die deshalb den Aufbau von Tabellen und die Beziehungen zwischen den Tabellen entscheidend mitprägen. Wir beenden dieses Kapitel mit einem theoretischen Abschnitt zur relationalen Algebra, der mathematischen Grundlage des Zugriffs auf relationale Datenbanken.
Datenbankdesign
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Wir werden in diesem Kapitel Normalformen von Relationen und die dazu benötigten Definitionen einführen. Während die Normalformenlehre immer nur einzelne Relationen getrennt untersucht, unterstützt das anschließend vorgestellte Entity-Relationship-Modell das Gesamtdesign einer Datenbank mit all den Beziehungen zwischen den einzelnen Relationen. Das Entity-Relationship-Modell ist enorm hilfreich und wird vielseitig eingesetzt, übrigens nicht nur in relationalen Datenbanken.
Übersicht über Datenbanken
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Aller Anfang ist schwer. Dieses Kapitel soll diesen Anfang erleichtern und führt in diese ganz neue Welt der Datenbanken mit all ihren Begriffen und Besonderheiten ein. Wir beginnen mit der Definition einer Datenbank und stellen anschließend einen Katalog über Wünsche und Erwartungen an Datenbanken zusammen. Es überrascht nicht, dass dieser ziemlich umfangreiche Katalog heute von Datenbanken fast vollständig erfüllt wird. Und schon beginnen wir zu erahnen, wie mächtig und komplex moderne Datenbanksysteme sind. In den folgenden Abschnitten definieren wir die Aufgaben eines Datenbank-Administrators, lernen grob die einzelnen Datenbankmodelle kennen, gewinnen einen Überblick über Datenbankzugriffe und stoßen schließlich auf den enorm wichtigen Transaktionsbegriff. Der Leser, der bereits Grundkenntnisse in Datenbanken besitzt, kann dieses Kapitel gerne überspringen.
Die Beschreibungssprache SQL
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Überwiegend beschäftigen wir uns mit Abfragen. Wir arbeiten uns systematisch durch den Select-Befehl, um schließlich mittels Unterabfragen und Verbundoperationen (Joins) auch komplexe Zugriffe auf die Inhalte einer Datenbank meistern können. Im zweiten Teil behandeln wir Mutationsbefehle, die Schreibzugriffe auf die Daten. Diese Befehle sind relativ einfach, da sie syntaktisch weitgehend auf den Lesezugriffen aufbauen. Zuletzt gehen wir auf den Transaktionsbetrieb und einen Vergleich zur relationalen Algebra ein.
Die Zugriffssprache SQL
Schicker E.
Springer Nature
Informatik & Praxis, 2014, цитирований: 0, doi.org, Abstract
Überwiegend beschäftigen wir uns mit Abfragen. Wir arbeiten uns systematisch durch den Select-Befehl, um schließlich mittels Unterabfragen und Verbundoperationen (Joins) auch komplexe Zugriffe auf die Inhalte einer Datenbank meistern können. Im zweiten Teil behandeln wir Mutationsbefehle, die Schreibzugriffe auf die Daten. Diese Befehle sind relativ einfach, da sie syntaktisch weitgehend auf den Lesezugriffen aufbauen. Zuletzt gehen wir auf den Transaktionsbetrieb und einen Vergleich zur relationalen Algebra ein.
Optimierung der Datenbank
Eirund H., Kohl U.
Springer Nature
Informatik & Praxis, 2003, цитирований: 0, doi.org, Abstract
In unserem Beispielszenario haben wir in den Kapiteln 1 und 2 einen ersten Entwurf eines Datenbankschemas geschaffen. Wir haben Mechanismen kennen gelernt, mit denen das Speichern von nicht korrekten Feldwerten weitgehend ausgeschlossen wird. Allerdings sind im Tabellenentwurf und in der Festlegung von Beziehungen noch Fallen und Probleme enthalten. Diese aufzuspüren und zu beseitigen ist Thema dieses Kapitels. Das Verfahren, das dabei zum Einsatz kommt, nennt man Normalisierung eines Datenbankschemas
Datenbankentwurf — die ersten Schritte
Eirund H., Kohl U.
Springer Nature
Informatik & Praxis, 2003, цитирований: 0, doi.org, Abstract
Ziel dieses Kapitels ist es, die ersten Schritte eines Datenbankentwurfs zu veranschaulichen. Diese bestehen daraus, eine modellhafte Abbildung des relevanten Anwendungsumfeldes zu entwickeln. Ein Modell ist eine vereinfachte Darstellung bzw. Beschreibung eines Ausschnitts aus der Realität. Im Modell wird auf unwesentliche Informationen verzichtet, somit die Sicht auf komplexe Zusammenhänge erleichtert oder das Arbeiten hiermit ermöglicht.
Beziehungen
Eirund H., Kohl U.
Springer Nature
Informatik & Praxis, 2003, цитирований: 0, doi.org, Abstract
In der Realität finden sich Beziehungen zwischen Entitäten. In Datenbanken gibt es Beziehungen zwischen Daten. Sie sind unter Umständen komplex und nicht leicht nachzuvollziehen — aber gleichwohl von großer Bedeutung. Sie ermöglichen es beispielsweise, die zergliederten Daten in unserer Datenbank in einer Abfrage wieder passend zusammenzufügen. Erst so entsteht die Basis für eine richtig gute Datenbank, die effizientes Arbeiten ermöglicht und ausbaufähig ist.
Abfragen: suchen, verknüpfen, berechnen, verändern
Eirund H., Kohl U.
Springer Nature
Informatik & Praxis, 2003, цитирований: 0, doi.org, Abstract
Neben der Speicherung und konsistenten Änderung von Daten bieten DBMS die Möglichkeit, Daten miteinander zu verknüpfen und dies bei automatischer Suche und Datenänderungen auszunutzen. Datenbank-Abfragen ermöglichen diese Funktionalitäten.
Einleitung
Eirund H., Kohl U.
Springer Nature
Informatik & Praxis, 2003, цитирований: 0, doi.org, Abstract
Warum nutzen wir Datenbanken? Dieses Kapitel gibt Auskunft über die wesentlichen Vorteile beim Einsatz von Datenbanken und Führt in das Beispielszenario ein, das durchgebend in diesem Buch verwendet wird.
Cobalt Бета
ru en