O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Datenbanken - Grundlagen und Design

Book Description

  • Konzepte, Entwurf, Design, Implementierung
  • Konkrete Erläuterungen am Praxisbeispiel
  • Zahlreiche Aufgaben mit Musterlösungen sowie Anregungen für eigene Projekte
Dieses Buch richtet sich an alle, die sich grundlegend und fundiert in das Thema Datenbanken einarbeiten wollen. Der Fokus liegt dabei auf einer strukturierten, leicht nachvollziehbaren und praxisrelevanten Darstellung des Stoffes, der anhand eines durchgängigen Beispiels präsentiert wird. Der Autor stellt die Inhalte soweit möglich herstellerneutral dar, so dass die verwendeten Techniken auf jedem relationalen Datenbanksystem umgesetzt werden können.Zunächst wird der Leser in die unterschiedlichen Datenbankmodelle eingeführt und lernt als grundlegendes Handwerkszeug das relationale Datenbankmodell, die ER-Datenbankmodellierung und die Normalisierung kennen. Nach der Darstellung der Datenbankentwicklung auf konzeptioneller Ebene werden die Umsetzung des Datenbankmodells und die Abfrage von Daten mithilfe von SQL beschrieben. Auch konzeptionelle Themen wie der Projektablauf bei der Erstellung eines Datenbanksystems, Transaktionen, Fat- und Thin-Clientmodelle, Client-Server-Architekturen, verteilte Datenbanksysteme, Data Warehouses, Data Mining, LINQ als mögliche Lösung des Impedance Mismatches und eine Einführung in Big Data finden in den entsprechenden Kapiteln ihren Platz. Der Leser wird umfassend in das Thema Datenbanken eingeführt und erhält zugleich eine praxisnahe Sichtweise auf die professionelle Realisierung von Datenbanksystemen von einem seit Langem in der Praxis arbeitenden Datenbankentwickler.
    Aus dem Inhalt:
  • Datenbanksysteme, Datenbankanwendungen und Middleware
  • Das relationale Datenbankmodell
  • ER-Datenbankmodellierung und Normalisierung
  • SQL-GrundlagenProjektablauf bei der Erstellung einer Datenbank
  • Transaktionen und konkurrierende Zugriffe
  • Fat- und Thin-Clientmodelle
  • Client-Server-Architektur
  • Verteilte Datenbanksysteme
  • Data Warehouses
  • Data Mining
  • LINQ
  • Einführung in Big Data

Table of Contents

  1. Impressum
  2. Vorwort zur 5. Auflage
  3. Über den Autor
  4. Teil I: Grundlagen
  5. Kapitel 1: Einführung in das Thema Datenbanken
    1. 1.1 Warum ist Datenbankdesign wichtig?
    2. 1.2 Dateisystem und Datenbanken
      1. 1.2.1 Historische Wurzeln
      2. 1.2.2 Probleme bei der Datenhaltung im Dateisystem
      3. 1.2.3 Datenredundanzen und Anomalien
    3. 1.3 Das Fallbeispiel
    4. 1.4 Zusammenfassung
    5. 1.5 Aufgaben
      1. 1.5.1 Wiederholung
      2. 1.5.2 Zum Weiterdenken
  6. Kapitel 2: Datenbanksysteme, Datenbankanwendungen und Middleware
    1. 2.1 Datenbanksysteme
    2. 2.2 Verschiedene Arten von Datenbanksystemen
    3. 2.3 DBMS-Funktionen
    4. 2.4 Datenbankmodelle
      1. 2.4.1 Hierarchische Datenbanken
      2. 2.4.2 Netzwerk-Datenbanken
      3. 2.4.3 Relationale Datenbanken
      4. 2.4.4 ER-Datenbankmodelle
      5. 2.4.5 Objektorientierte Datenbanken
    5. 2.5 Datenbankanwendungen
      1. 2.5.1 Einschichtige Datenbankanwendungen
      2. 2.5.2 Zweischichtige Datenbankanwendungen​
      3. 2.5.3 N-schichtige Datenbankanwendungen​
    6. 2.6 Middleware
      1. 2.6.1 ODBC
      2. 2.6.2 ADO
      3. 2.6.3 ADO.NET
    7. 2.7 Zusammenfassung
    8. 2.8 Aufgaben
      1. 2.8.1 Wiederholung
      2. 2.8.2 Zum Weiterdenken
  7. Kapitel 3: Das relationale Datenbankmodell
    1. 3.1 Entitäten und Attribute
    2. 3.2 Tabellen
    3. 3.3 Schlüssel
    4. 3.4 Relationale Operatoren
      1. 3.4.1 DIFFERENCE
      2. 3.4.2 DIVIDE
      3. 3.4.3 INTERSECT
      4. 3.4.4 JOIN
      5. 3.4.5 PRODUCT
      6. 3.4.6 PROJECT
      7. 3.4.7 SELECT
      8. 3.4.8 UNION
    5. 3.5 Beziehungen innerhalb der Datenbank
      1. 3.5.1 1:1-Beziehung
      2. 3.5.2 1:N-Beziehung
      3. 3.5.3 M:N-Beziehung
      4. 3.5.4 Optionale und nicht-optionale Beziehungen
      5. 3.5.5 Primär-/Fremdschlüssel und Datenredundanzen
    6. 3.6 Metadaten
    7. 3.7 Indizes
    8. 3.8 Zusammenfassung
    9. 3.9 Aufgaben
      1. 3.9.1 Wiederholung
      2. 3.9.2 Zum Weiterdenken
  8. Teil II: Datenbankdesign und Implementierung
  9. Kapitel 4: ER-Datenbankmodellierung
    1. 4.1 Datenmodelle und Abstraktion
      1. 4.1.1 Das konzeptionelle Modell
      2. 4.1.2 Das interne Modell
      3. 4.1.3 Das externe Modell
      4. 4.1.4 Das physikalische Modell
    2. 4.2 Das Entity-Relationship-Modell
      1. 4.2.1 Entitäten
      2. 4.2.2 Attribute
      3. 4.2.3 Primärschlüssel
      4. 4.2.4 Beziehungen
    3. 4.3 Erstellen eines ER-Diagramms
    4. 4.4 Zusammenfassung
    5. 4.5 Aufgaben
      1. 4.5.1 Wiederholung
      2. 4.5.2 Zum Weiterdenken
  10. Kapitel 5: Normalisierung
    1. 5.1 Warum Normalisierung?
      1. 5.1.1 Das Normalisierungsbeispiel
      2. 5.1.2 Erste Normalform​
      3. 5.1.3 Zweite Normalform​
      4. 5.1.4 Dritte Normalform​
      5. 5.1.5 Boyce-Codd-Normalform (BCNF)
      6. 5.1.6 Höhere Normalformen
    2. 5.2 Normalisierung und Datenbankdesign
    3. 5.3 Denormalisierung​
    4. 5.4 Zusammenfassung
    5. 5.5 Aufgaben
      1. 5.5.1 Wiederholung
      2. 5.5.2 Zum Weiterdenken
  11. Kapitel 6: SQL-Grundlagen
    1. 6.1 Einführung
      1. 6.1.1 Historischer Überblick
      2. 6.1.2 Datentypen
      3. 6.1.3 Die SQL-Komponenten
      4. 6.1.4 Logische Verknüpfungen​​
    2. 6.2 Daten mit SQL abfragen
      1. 6.2.1 Einfache Abfragen
      2. 6.2.2 Tabellen verknüpfen mit Joins​
      3. 6.2.3 Verschachtelte Abfragen
      4. 6.2.4 Sichten​
    3. 6.3 Daten mit SQL verändern
      1. 6.3.1 INSERT​
      2. 6.3.2 UPDATE​
      3. 6.3.3 DELETE​
    4. 6.4 Weitere wichtige SQL-Befehle
      1. 6.4.1 Mengenfunktionen
      2. 6.4.2 Stringfunktionen
      3. 6.4.3 Numerische Funktionen
      4. 6.4.4 Datetime-Funktionen
    5. 6.5 Zusammenfassung
    6. 6.6 Aufgaben
      1. 6.6.1 Wiederholung
      2. 6.6.2 Zum Weiterdenken
  12. Teil III: Weiterführende Themen
  13. Kapitel 7: Projektablauf bei der Erstellung einer Datenbank
    1. 7.1 Der System Development Life Cycle
      1. 7.1.1 Planung​
      2. 7.1.2 Analyse​
      3. 7.1.3 System-Design
      4. 7.1.4 Implementierung​
      5. 7.1.5 Wartung​
    2. 7.2 Der Datenbank-Lebenszyklus
      1. 7.2.1 Grundlegende Analyse
      2. 7.2.2 Datenbankdesign​
      3. 7.2.3 Implementierung und Datenimport
      4. 7.2.4 Test und Evaluierung
      5. 7.2.5 Betrieb
      6. 7.2.6 Wartung und Evolution
    3. 7.3 Zusammenfassung
    4. 7.4 Aufgaben
      1. 7.4.1 Wiederholung
  14. Kapitel 8: Transaktionen und konkurrierende Zugriffe
    1. 8.1 Was ist eine Transaktion?
      1. 8.1.1 Eigenschaften einer Transaktion
      2. 8.1.2 Transaktionsverwaltung mit SQL
      3. 8.1.3 Das Transaktionsprotokoll
    2. 8.2 Konkurrierende Zugriffe
      1. 8.2.1 Lost Updates​
      2. 8.2.2 Dirty Read​
      3. 8.2.3 Nonrepeatable Read​
      4. 8.2.4 Phantome
    3. 8.3 Sperrmechanismen (Locks)
      1. 8.3.1 Granularität
      2. 8.3.2 Sperrtypen
      3. 8.3.3 Zwei-Phasen-Locking
      4. 8.3.4 Deadlocks
    4. 8.4 Zusammenfassung
    5. 8.5 Aufgaben
      1. 8.5.1 Wiederholung
      2. 8.5.2 Zum Weiterdenken
  15. Kapitel 9: Die Client-Server-Architektur
    1. 9.1 Was ist Client-Server?
      1. 9.1.1 Geschichte von Client-Server
      2. 9.1.2 Vorteile von Client-Server
    2. 9.2 Client-Server-Architektur
      1. 9.2.1 Client-Komponenten
      2. 9.2.2 Server-Komponenten
      3. 9.2.3 Middleware​
      4. 9.2.4 Netzwerk-Protokolle
    3. 9.3 Zusammenfassung
    4. 9.4 Aufgaben
      1. 9.4.1 Wiederholung
  16. Kapitel 10: Verteilte Datenbanksysteme
    1. 10.1 Vor- und Nachteile verteilter Datenbanksysteme
    2. 10.2 Verteilte Datenverarbeitung vs. verteilte Datenbanken
    3. 10.3 Komponenten eines verteilten Datenbanksystems
    4. 10.4 Transparenz beim Datenzugriff
      1. 10.4.1 Transparente Datenverteilung
      2. 10.4.2 Transparentes Transaktionsmanagement
    5. 10.5 Datenfragmentierung
    6. 10.6 Replikation
    7. 10.7 Zusammenfassung
    8. 10.8 Aufgaben
      1. 10.8.1 Wiederholung
  17. Kapitel 11: Data Warehouses
    1. 11.1 Die Notwendigkeit der Datenanalyse
    2. 11.2 Decision-Support-Systeme
      1. 11.2.1 Der Unterschied zwischen operationalen Daten und DSS-Daten
      2. 11.2.2 Anforderungen an eine DSS-Datenbank
    3. 11.3 Das Data Warehouse
      1. 11.3.1 Data-Marts
      2. 11.3.2 Zwölf Eigenschaften, an denen man ein Data Warehouse erkennen kann
    4. 11.4 OLAP (Online Analytical Processing)
      1. 11.4.1 OLAP-Architekturen
      2. 11.4.2 Relationales OLAP (ROLAP)
      3. 11.4.3 Multidimensionales OLAP (MOLAP)
    5. 11.5 Das Sternschema
      1. 11.5.1 Fakten
      2. 11.5.2 Dimensionen
      3. 11.5.3 Attribute
      4. 11.5.4 Attribut-Hierarchien
      5. 11.5.5 Sternschemata in der Praxis
      6. 11.5.6 Techniken zur Erhöhung der Performance
    6. 11.6 Das Snowflake-Schema
    7. 11.7 Slowly changing Dimensions
      1. 11.7.1 Typ 1
      2. 11.7.2 Typ 2
      3. 11.7.3 Typ 3
      4. 11.7.4 Typ 4
      5. 11.7.5 Typ 6/Hybrid
    8. 11.8 Zusammenfassung
    9. 11.9 Aufgaben
      1. 11.9.1 Wiederholung
  18. Kapitel 12: Data-Mining
    1. 12.1 Der Data-Mining-Prozess
      1. 12.1.1 Das Problem definieren
      2. 12.1.2 Daten vorbereiten
      3. 12.1.3 Die Daten sichten
      4. 12.1.4 Ein Data-Mining-Modell definieren
      5. 12.1.5 Data-Mining betreiben
      6. 12.1.6 Die Ergebnisse zur Verfügung stellen
    2. 12.2 Zusammenfassung
    3. 12.3 Aufgaben
      1. 12.3.1 Wiederholung
  19. Kapitel 13: LINQ
    1. 13.1 Unverträglichkeit zwischen Relationen und Objekten
      1. 13.1.1 Das Problem, Objekt​e auf Tabellen abzubilden
      2. 13.1.2 Wem gehört das Schema​?
      3. 13.1.3 Das Doppel-Schema-Problem​​
      4. 13.1.4 Identitätsproblem​e bei Entitäten
      5. 13.1.5 Rückgewinnung der Daten
    2. 13.2 Die Architektur von LINQ​
    3. 13.3 Spracherweiterungen, die LINQ ermöglichen, am Beispiel von C#
      1. 13.3.1 Anonyme Typen​
      2. 13.3.2 Objekt-Initialisierer​
      3. 13.3.3 Collection-Initialisierer​
      4. 13.3.4 Partielle Methoden​
      5. 13.3.5 Implizit deklarierte lokale Variablen
      6. 13.3.6 Erweiterungsmethode​n
      7. 13.3.7 Lambda-Ausdrücke​
      8. 13.3.8 Abfrage-Ausdrücke​
    4. 13.4 Aufgaben
      1. 13.4.1 Wiederholung
  20. Kapitel 14: Big Data
    1. 14.1 Strukturierte, semistrukturierte und unstrukturierte Daten
    2. 14.2 Die Evolution der Datenverarbeitung
      1. 14.2.1 Datenstrukturen erstellen
      2. 14.2.2 Data Warehouses, Datamarts und BLOBs
      3. 14.2.3 Content-Management-Systeme
      4. 14.2.4 Die dritte Stufe der Evolution
    3. 14.3 Was genau ist eigentlich Big Data?
    4. 14.4 Der Big-Data-Projektzyklus
    5. 14.5 Die Architektur eines Big-Data-Projekts
    6. 14.6 Map Reduce
    7. 14.7 Big Table
    8. 14.8 Hadoop
    9. 14.9 Aufgaben
      1. 14.9.1 Wiederholung
  21. Anhang A: Lösungen zu den Wiederholungsaufgaben
    1. A.1 Kapitel 1
    2. A.2 Kapitel 2
    3. A.3 Kapitel 3
    4. A.4 Kapitel 4
    5. A.5 Kapitel 5
    6. A.6 Kapitel 6
    7. A.7 Kapitel 7
    8. A.8 Kapitel 8
    9. A.9 Kapitel 9
    10. A.10 Kapitel 10
    11. A.11 Kapitel 11
    12. A.12 Kapitel 12
    13. A.13 Kapitel 13
    14. A.14 Kapitel 14