SQL- & NoSQL-Datenbanken

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Die Autoren führen in relationale (SQL) und nicht-relationale (NoSQL) Datenbanken ein. Die 9. Auflage erklärt die drei Typen relationale Datenbanken, Graphdatenbanken und Dokumentdatenbanken im Detail anhand der Themen Datenbankmanagement, Datenbankmodellierung, Datenbanksprachen, Datenbanksicherheit und Systemarchitektur. Das Buch bietet außerdem einen Überblick auf postrelationale und nicht-relationale Datenbanksysteme. In den ersten fünf Kapiteln analysieren die Autoren detailliert die Verwaltung, Modellierung, Sprachen, Sicherheit und Architektur von relationalen Datenbanken, Graphdatenbanken und Dokumentendatenbanken. Außerdem wird ein Überblick über andere SQL- und NoSQL-basierte Datenbankansätze gegeben. Neben klassischen Konzepten wie dem Entitäts- und Beziehungsmodell und seiner Abbildung in SQL-Datenbankschemata, Abfragesprachen oder dem Transaktionsmanagement werden weitere Aspekte für NoSQL-Datenbanken wie nicht-relationale Datenbankschemas und Abfragesprachen (MQL, Cypher), das Map/Reduce-Verfahren, Verteilungsoptionen (Sharding, Replikation) oder das CAP-Theorem (Consistency, Availability, Partition Tolerance) erläutert. Die 9. Auflage bietet neu eine vertiefte Einführung in Dokumentdatenbanken mit einer Methode zur Modellierung von Dokumentstrukturen, einem Überblick auf dokumentenorientierte Datenbanksprache MongoDB Query Language MQL sowie Sicherheits- und Architekturaspekte. Die neue Auflage berücksichtigt neue Entwicklungen der Sprache Cypher. Das Thema Datenbanksicherheit wird neu als eigenes Kapitel eingeführt und im Detail bezüglich Datenschutz, Integrität und Transaktionen analysiert. Texte zum Datenmanagement, zur Datenbankprogrammierung und zum Data Warehouse wurden aktualisiert. Zudem erklärt die 9. Auflage die Konzepte JSON, JSON-Schema, BSON, indexfreie Nachbarschaft, Cloud-Datenbanken, Suchmaschinen und Zeitreihendatenbanken. Eine Webseite ergänzt den Inhalt des Buches durch Tutorien für Abfrage- und Manipulationssprachen (SQL, Cypher), Übungsumgebungen für Datenbanken (MySQL, Neo4j), zwei Fallstudien mit OpenOffice Base und Neo4j sowie als Unterrichtsmaterial Folienvorlagen mit allen Abbildungen Das Buch richtet sich sowohl an Studierende, die eine Einführung in das Gebiet der SQL- und NoSQL-Datenbanken möchten, als auch auch an Praktiker in Datenwissenschaften und Informatik, denen es hilft, Stärken und Schwächen relationaler und nicht-relationaler Ansätze sowie Entwicklungen für Big-Data-Anwendungen besser einschätzen zu können

Author(s): Michael Kaufmann; Andreas Meier
Edition: 9., erweiterte und aktualisierte Auflage
Publisher: Springer Vieweg
Year: 2023

Language: German
Pages: 294

Geleitwort
Vorwort
Inhaltsverzeichnis
1 Datenbankmanagement
1.1 Informationssysteme und Datenbanken
1.2 SQL-Datenbanken
1.2.1 Relationenmodell
Identifikationsschlüssel
Tabellendefinition
1.2.2 Strukturierte Abfragesprache SQL
1.2.3 Relationales Datenbanksystem
Relationales Datenbanksystem
1.3 Big Data und NoSQL-Datenbanken
1.3.1 NoSQL-Datenbanksysteme
NoSQL
NoSQL-Datenbanksystem
1.4 Graphdatenbanken
1.4.1 Graphenmodell
Property Graph
1.4.2 Graphenorientierte Abfragesprache Cypher
1.5 Dokumentdatenbanken
1.5.1 Dokumentmodell
Digitales Dokument
1.5.2 Dokumentorientierte Datenbanksprache MQL
1.6 Organisation des Datenmanagements
Bibliography
2 Datenbankmodellierung
2.1 Von der Anforderungsanalyse zur Datenbank
2.2 Das Entitäten-Beziehungsmodell
2.2.1 Entitäten und Beziehungen
2.2.2 Assoziationen und Assoziationstypen
Einfache Assoziation (Typ 1)
Konditionelle Assoziation (Typ c)
Mehrfache Assoziation (Typ m)
Mehrfach-konditionelle Assoziation (Typ mc)
2.2.3 Generalisation und Aggregation
2.3 Umsetzung im Relationenmodell
2.3.1 Abhängigkeiten und Normalformen
Relationenmodell
Redundanz eines Merkmals
Funktionale Abhängigkeiten
Erste Normalform (1NF)
Zweite Normalform (2NF)
Transitive Abhängigkeiten
Dritte Normalform (3NF)
2.3.2 Abbildungsregeln für relationale Datenbanken
Regel R1 (Entitätsmengen)
Regel R2 (Beziehungsmengen)
Abbildungsregeln für Beziehungsmengen
Regel R3 (netzwerkartige Beziehungsmengen)
Regel R4 (hierarchische Beziehungsmengen)
Regel R5 (einfach-einfache Beziehungsmengen)
2.4 Umsetzung im Graphenmodell
2.4.1 Eigenschaften von Graphen
Ungerichteter Graph
Zusammenhängender Graph
Das Entscheidungsproblem für Brückentraversierung (Eulerweg)
Grad eines Knoten
Berechnung kürzester Wege nach Dijkstra
Gewichteter Graph
Gewicht eines Graphen
Algorithmus von Dijkstra
Property Graph
2.4.2 Abbildungsregeln für Graphdatenbanken
Regel G1 (Entitätsmengen)
Regel G2 (Beziehungsmengen)
Abbildungsregeln für Beziehungsmengen
Regel G3 (netzwerkartige Beziehungsmengen)
Regel G4 (hierarchische Beziehungsmengen)
Regel G5 (einfach-einfache Beziehungsmengen)
2.5 Umsetzung im Dokumentmodell
2.5.1 Dokumentorientierte Datenbankmodellierung
Komplexe Objekte
Datenformat JSON
JSON-Schema
JSON-Datenmodellierung mit Prototypen
2.5.2 Abbildungsregeln für Dokumentdatenbanken
Regel D1 (Entitätsmengen und Attribute)
Regel D2 (Aggregierung)
Regel D3 (eindeutige untergeordnete Assoziation)
Regel D4 (mehrdeutige untergeordnete Assoziation)
Regel D5 (Beziehungsattribute)
Regel D6 (Dokumenttypen)
Regel D7 (Beziehungsmengen)
2.6 Rezept zum Datenbankentwurf
Bibliography
3 Datenbanksprachen
3.1 Interaktion mit einer Datenbank
3.2 Die Relationenalgebra
3.2.1 Übersicht über Operatoren
3.2.2 Die mengenorientierten Operatoren
Vereinigungsverträglichkeit
3.2.3 Die relationenorientierten Operatoren
3.2.4 Relational vollständige Sprachen
Kriterium der Vollständigkeit
3.3 Relationale Sprache SQL
3.3.1 Erstellen und Befüllen des Datenbankschemas
3.3.2 Relationale Operatoren
Projektion
Kartesisches Produkt
Verbund
Selektion
Vereinigung
Differenz
Schnittmenge
3.3.3 Eingebaute Funktionen
Aggregatfunktionen
Gruppierung
Geschachtelte Abfragen
3.3.4 Nullwerte
3.4 Graphbasierte Sprache Cypher
3.4.1 Erstellen und Befüllen des Datenbankschemas
3.4.2 Relationale Operatoren
Selektion und Projektion
Kartesisches Produkt und Join
3.4.3 Eingebaute Funktionen
Aggregatfunktionen
Datenoperatoren
3.4.4 Graphanalysen
3.5 Dokumentorientierte Sprache MQL
3.5.1 Erstellen und Füllen des Datenbankschemas
3.5.2 Relationale Operatoren
Selektion
Projektion
Join
Kartesisches Produkt
Vereinigung
3.5.3 Eingebaute Funktionen
Akkumulatoraggregationen
Gruppierung
Ausgabe valider JSON-Syntax
Verschachtelte Abfragen mit Pipelines
3.5.4 Nullwerte
3.6 Datenbankprogrammierung mit Cursor
3.6.1 Einbettung von SQL in prozedurale Sprachen
Stored Procedures und Stored Functions
Einbettung von SQL in externe Programmiersprachen
3.6.2 Einbettung graphbasierter Sprachen
3.6.3 Einbettung von Dokumentdatenbanksprachen
Bibliographie
4 Datenbanksicherheit
4.1 Sicherheitsziele und Maßnahmen
4.2 Zugriffskontrolle
4.2.1 Authentisierung und Autorisierung in SQL
Änderbare Sicht
SQL-Injection
4.2.2 Authentisierung und Autorisierung in Cypher
Cypher Injection
4.2.3 Authentisierung und Autorisierung in MQL
JavaScript Injection in MQL
4.3 Integritätsbedingungen
4.3.1 Relationale Integritätsbedingungen in SQL
4.3.2 Integritätsbedingungen für Graphen in Cypher
Eindeutigkeitsbedingung für Knoteneigenschaften
Existenzbedingung für Knoteneigenschaften
Existenzbedingung für Kantenattribute (Relationship Property)
Knotenschüsselbedingung
Wertebereichsbedingungen
Referenzielle Integrität
4.3.3 Integritätsbedingungen für Dokumentdatenbanken in MQL
Primärschlüsselbedingungen
Eindeutigkeitsbedingungen
Existenzbedingung
Wertebereichsbedingung
Referenzielle Integritätsbedingungen
4.4 Konsistenz von Transaktionen
4.4.1 Mehrbenutzerbetrieb
4.4.2 Das ACID-Prinzip
4.4.3 Serialisierbarkeit
Prinzip der Serialisierbarkeit
Serialisierbarkeitskriterium
4.4.4 Pessimistische Verfahren
Zweiphasen-Sperrprotokoll
4.4.5 Optimistische Verfahren
Optimistische Synchronisation (engl. „optimistic concurrency control“)
4.4.6 Fehlerbehandlung
4.5 Weiche Konsistenz bei massiv verteilten Daten
4.5.1 BASE und CAP-Theorem
CAP-Theorem
4.5.2 Differenzierte Konsistenzeinstellungen
4.5.3 Vektoruhren zur Serialisierung verteilter Ereignisse
Kausalitätsprinzip basierend auf Vektoruhren
4.5.4 Vergleich zwischen ACID und BASE
4.6 Sprachelemente für die Transaktionskontrolle
4.6.1 Transaktionsmanagement in SQL
4.6.2 Transaktionsmanagement in der Graphdatenbank Neo4j und in der Sprache Cypher
Isolation Levels
Transaktionen in Cypher
4.6.3 Transaktionsmanagement in MongoDB und MQL
Atomarität von Transaktionen
Transaktionen in der Mongo Shell
Isolation von verteilten Transaktionen über mehrere Rechner
Bibliographie
5 Systemarchitektur
5.1 Verarbeitung homogener und heterogener Daten
5.2 Speicher- und Zugriffsstrukturen
5.2.1 Indexe
5.2.2 Baumstrukturen
Mehrwegbaum (engl. „B-tree“)
5.2.3 Hashverfahren
Hashing mit Divisionsrest
5.2.4 Consistent Hashing
5.2.5 Mehrdimensionale Datenstrukturen
Gitterdatei
5.2.6 Binary JavaScript Object Notation BSON
5.2.7 Indexfreie Nachbarschaft
5.3 Übersetzung und Optimierung relationaler Abfragen
5.3.1 Erstellen eines Anfragebaums
Anfragebaum
5.3.2 Optimierung durch algebraische Umformung
5.3.3 Berechnen des Verbundoperators
Geschachtelter Verbund
Sortier-Verschmelzungsverbund
5.3.4 Kostenbasierte Optimierung von Zugriffspfaden
5.4 Parallelisierung mit Map/Reduce
5.5 Schichtarchitektur
5.6 Nutzung unterschiedlicher Speicherstrukturen
5.7 Clouddatenbanken
Bibliographie
6 Postrelationale Datenbanksysteme
6.1 Die Grenzen von SQL – und darüber hinaus
6.2 Föderierte Datenbanken
6.3 Temporale Datenbanken
6.4 Multidimensionale Datenbanken
6.5 Data Warehouse und Data Lake Systeme
6.6 Objektrelationale Datenbanken
6.7 Wissensbasierte Datenbanken
6.8 Fuzzydatenbanken
Bibliographie
7 NoSQL-Datenbanksysteme
7.1 Zur Entwicklung nicht-relationaler Technologien
7.2 Schlüssel-Wert-Datenbanken
7.3 Spaltenfamilien-Datenbanken
7.4 Dokumentdatenbanken
7.5 XML-Datenbanken
7.6 Graphdatenbanken
7.7 Suchmaschinen-Datenbanken
7.8 Zeitreihen-Datenbanken
Bibliographie
Glossar
Stichwortverzeichnis