- 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
Frank Geisler hat an der University of Liverpool Information Technology studier, und er beschäftigt sich seit 1995 mit den unterschiedlichsten Datenbank- und Business-Intelligence-Lösungen. Frank Geisler ist geschäftsführender Gesellschafter der Geisler Datensysteme GmbH & Co. KG, eines der führenden Microsoft-IT-Beratungshäuser im Ruhrgebiet.
Inhaltsverzeichnis
1;Cover;1 2;Titel;3 3;Impressum;4 4;Inhaltsverzeichnis;7 5;Kapitel 1: Einführung in das Thema Datenbanken;19 5.1;1.1 Warum ist Datenbankdesign wichtig?;24 5.2;1.2 Dateisystem und Datenbanken;26 5.2.1;1.2.1 Historische Wurzeln;27 5.2.2;1.2.2 Probleme bei der Datenhaltung im Dateisystem;28 5.2.3;1.2.3 Datenredundanzen und Anomalien;35 5.3;1.3 Das Fallbeispiel;37 5.4;1.4 Zusammenfassung;38 5.5;1.5 Aufgaben;41 5.5.1;1.5.1 Wiederholung;41 5.5.2;1.5.2 Zum Weiterdenken;42 6;Kapitel 2: Datenbanksysteme, Datenbankanwendungen und Middleware;43 6.1;2.1 Datenbanksysteme;43 6.2;2.2 Verschiedene Arten von Datenbanksystemen;47 6.3;2.3 DBMS-Funktionen;48 6.4;2.4 Datenbankmodelle;51 6.4.1;2.4.1 Hierarchische Datenbanken;52 6.4.2;2.4.2 Netzwerk-Datenbanken;57 6.4.3;2.4.3 Relationale Datenbanken;59 6.4.4;2.4.4 ER-Datenbankmodelle;65 6.4.5;2.4.5 Objektorientierte Datenbanken;68 6.5;2.5 Datenbankanwendungen;73 6.5.1;2.5.1 Einschichtige Datenbankanwendungen;74 6.5.2;2.5.2 Zweischichtige Datenbankanwendungen;74 6.5.3;2.5.3 N-schichtige Datenbankanwendungen;76 6.6;2.6 Middleware;77 6.6.1;2.6.1 ODBC;78 6.6.2;2.6.2 ADO;79 6.6.3;2.6.3 ADO.NET;81 6.7;2.7 Zusammenfassung;82 6.8;2.8 Aufgaben;90 6.8.1;2.8.1 Wiederholung;90 6.8.2;2.8.2 Zum Weiterdenken;90 7;Kapitel 3: Das relationale Datenbankmodell;93 7.1;3.1 Entitäten und Attribute;94 7.2;3.2 Tabellen;95 7.3;3.3 Schlüssel;98 7.4;3.4 Relationale Operatoren;104 7.4.1;3.4.1 DIFFERENCE;104 7.4.2;3.4.2 DIVIDE;105 7.4.3;3.4.3 INTERSECT;105 7.4.4;3.4.4 JOIN;106 7.4.5;3.4.5 PRODUCT;108 7.4.6;3.4.6 PROJECT;109 7.4.7;3.4.7 SELECT;110 7.4.8;3.4.8 UNION;110 7.5;3.5 Beziehungen innerhalb der Datenbank;111 7.5.1;3.5.1 1:1-Beziehung;111 7.5.2;3.5.2 1:N-Beziehung;113 7.5.3;3.5.3 M:N-Beziehung;114 7.5.4;3.5.4 Optionale und nicht-optionale Beziehungen;115 7.5.5;3.5.5 Primär-/Fremdschlüssel und Datenredundanzen;115 7.6;3.6 Metadaten;116 7.7;3.7 Indizes;119 7.8;3.8 Zusammenfassung;120 7.9;3.9 Aufgaben;125 7.9.1;3.9.1 Wiederholung;125 7.9.2;3.9.2 Zum Weiterdenken;12
5 8;Kapitel 4: ER-Datenbankmodellierung;131 8.1;4.1 Datenmodelle und Abstraktion;132 8.1.1;4.1.1 Das konzeptionelle Modell;133 8.1.2;4.1.2 Das interne Modell;135 8.1.3;4.1.3 Das externe Modell;136 8.1.4;4.1.4 Das physikalische Modell;137 8.2;4.2 Das Entity-Relationship-Modell;138 8.2.1;4.2.1 Entitäten;138 8.2.2;4.2.2 Attribute;139 8.2.3;4.2.3 Primärschlüssel;145 8.2.4;4.2.4 Beziehungen;147 8.3;4.3 Erstellen eines ER-Diagramms;162 8.4;4.4 Zusammenfassung;170 8.5;4.5 Aufgaben;173 8.5.1;4.5.1 Wiederholung;174 8.5.2;4.5.2 Zum Weiterdenken;174 9;Kapitel 5: Normalisierung;177 9.1;5.1 Warum Normalisierung?;177 9.1.1;5.1.1 Das Normalisierungsbeispiel;179 9.1.2;5.1.2 Erste Normalform;180 9.1.3;5.1.3 Zweite Normalform;184 9.1.4;5.1.4 Dritte Normalform;186 9.1.5;5.1.5 Boyce-Codd-Normalform (BCNF);191 9.1.6;5.1.6 Höhere Normalformen;192 9.2;5.2 Normalisierung und Datenbankdesign;196 9.3;5.3 Denormalisierung;199 9.4;5.4 Zusammenfassung;200 9.5;5.5 Aufgaben;202 9.5.1;5.5.1 Wiederholung;202 9.5.2;5.5.2 Zum Weiterdenken;203 10;Kapitel 6: SQL-Grundlagen;205 10.1;6.1 Einführung;206 10.1.1;6.1.1 Historischer Überblick;207 10.1.2;6.1.2 Datentypen;208 10.1.3;6.1.3 Die SQL-Komponenten;210 10.1.4;6.1.4 Logische Verknüpfungen;216 10.2;6.2 Daten mit SQL abfragen;221 10.2.1;6.2.1 Einfache Abfragen;222 10.2.2;6.2.2 Tabellen verknüpfen mit Joins;243 10.2.3;6.2.3 Verschachtelte Abfragen;253 10.2.4;6.2.4 Sichten;254 10.3;6.3 Daten mit SQL verändern;258 10.3.1;6.3.1 INSERT;258 10.3.2;6.3.2 UPDATE;259 10.3.3;6.3.3 DELETE;260 10.4;6.4 Weitere wichtige SQL-Befehle;261 10.4.1;6.4.1 Mengenfunktionen;261 10.4.2;6.4.2 Stringfunktionen;266 10.4.3;6.4.3 Numerische Funktionen;268 10.4.4;6.4.4 Datetime-Funktionen;269 10.5;6.5 Zusammenfassung;271 10.6;6.6 Aufgaben;275 10.6.1;6.6.1 Wiederholung;275 10.6.2;6.6.2 Zum Weiterdenken;275 11;Kapitel 7: Projektablauf bei der Erstellung einer Datenbank;279 11.1;7.1 Der System Development Life Cycle;281 11.1.1;7.1.1 Planung;282 11.1.2;7.1.2 Analyse;284 11.1.3;7.1.3 Sys
tem-Design;286 11.1.4;7.1.4 Implementierung;287 11.1.5;7.1.5 Wartung;289 11.2;7.2 Der Datenbank-Lebenszyklus;289 11.2.1;7.2.1 Grundlegende Analyse;290 11.2.2;7.2.2 Datenbankdesign;295 11.2.3;7.2.3 Implementierung und Datenimport;307 11.2.4;7.2.4 Test und Evaluierung;309 11.2.5;7.2.5 Betrieb;309 11.2.6;7.2.6 Wartung und Evolution;310 11.3;7.3 Zusammenfassung;310 11.4;7.4 Aufgaben;312 11.4.1;7.4.1 Wiederholung;312 12;Kapitel 8: Transaktionen und konkurrierende Zugriffe;313 12.1;8.1 Was ist eine Transaktion?;313 12.1.1;8.1.1 Eigenschaften einer Transaktion;317 12.1.2;8.1.2 Transaktionsverwaltung mit SQL;318 12.1.3;8.1.3 Das Transaktionsprotokoll;320 12.2;8.2 Konkurrierende Zugriffe;322 12.2.1;8.2.1 Lost Updates;322 12.2.2;8.2.2 Dirty Read;323 12.2.3;8.2.3 Nonrepeatable Read;324 12.2.4;8.2.4 Phantome;325 12.3;8.3 Sperrmechanismen (Locks);326 12.3.1;8.3.1 Granularität;327 12.3.2;8.3.2 Sperrtypen;332 12.3.3;8.3.3 Zwei-Phasen-Locking;333 12.3.4;8.3.4 Deadlocks;334 12.4;8.4 Zusammenfassung;336 12.5;8.5 Aufgaben;339 12.5.1;8.5.1 Wiederholung;339 12.5.2;8.5.2 Zum Weiterdenken;340 13;Kapitel 9: Die Client-Server-Architektur;341 13.1;9.1 Was ist Client-Server?;341 13.1.1;9.1.1 Geschichte von Client-Server;342 13.1.2;9.1.2 Vorteile von Client-Server;343 13.2;9.2 Client-Server-Architektur;346 13.2.1;9.2.1 Client-Komponenten;349 13.2.2;9.2.2 Server-Komponenten;350 13.2.3;9.2.3 Middleware;351 13.2.4;9.2.4 Netzwerk-Protokolle;355 13.3;9.3 Zusammenfassung;361 13.4;9.4 Aufgaben;364 13.4.1;9.4.1 Wiederholung;364 14;Kapitel 10: Verteilte Datenbanksysteme;365 14.1;10.1 Vor- und Nachteile verteilter Datenbanksysteme;366 14.2;10.2 Verteilte Datenverarbeitung vs. verteilte Datenbanken;371 14.3;10.3 Komponenten eines verteilten Datenbanksystems;373 14.4;10.4 Transparenz beim Datenzugriff;376 14.4.1;10.4.1 Transparente Datenverteilung;377 14.4.2;10.4.2 Transparentes Transaktionsmanagement;382 14.5;10.5 Datenfragmentierung;385 14.6;10.6 Replikation;388 14.7;10.7 Zusammenfassung;389 14.8;10.8 A
ufgaben;392 14.8.1;10.8.1 Wiederholung;392 15;Kapitel 11: Data Warehouses;393 15.1;11.1 Die Notwendigkeit der Datenanalyse;395 15.2;11.2 Decision-Support-Systeme;396 15.2.1;11.2.1 Der Unterschied zwischen operationalen Daten und DSS-Daten;399 15.2.2;11.2.2 Anforderungen an eine DSS-Datenbank;407 15.3;11.3 Das Data Warehouse;410 15.3.1;11.3.1 Data-Marts;414 15.3.2;11.3.2 Zwölf Eigenschaften, an denen man ein Data Warehouse erkennen kann;415 15.4;11.4 OLAP (Online Analytical Processing);416 15.4.1;11.4.1 OLAP-Architekturen;421 15.4.2;11.4.2 Relationales OLAP (ROLAP);425 15.4.3;11.4.3 Multidimensionales OLAP (MOLAP);430 15.5;11.5 Das Sternschema;433 15.5.1;11.5.1 Fakten;433 15.5.2;11.5.2 Dimensionen;434 15.5.3;11.5.3 Attribute;435 15.5.4;11.5.4 Attribut-Hierarchien;437 15.5.5;11.5.5 Sternschemata in der Praxis;438 15.5.6;11.5.6 Techniken zur Erhöhung der Performance;439 15.6;11.6 Das Snowflake-Schema;442 15.7;11.7 Slowly changing Dimensions;444 15.7.1;11.7.1 Typ 1;445 15.7.2;11.7.2 Typ 2;446 15.7.3;11.7.3 Typ 3;449 15.7.4;11.7.4 Typ 4;450 15.7.5;11.7.5 Typ 6/Hybrid;451 15.8;11.8 Zusammenfassung;452 15.9;11.9 Aufgaben;453 15.9.1;11.9.1 Wiederholung;453 16;Kapitel 12: Data-Mining;455 16.1;12.1 Der Data-Mining-Prozess;458 16.1.1;12.1.1 Das Problem definieren;459 16.1.2;12.1.2 Daten vorbereiten;459 16.1.3;12.1.3 Die Daten sichten;460 16.1.4;12.1.4 Ein Data-Mining-Modell definieren;461 16.1.5;12.1.5 Data-Mining betreiben;463 16.1.6;12.1.6 Die Ergebnisse zur Verfügung stellen;464 16.2;12.2 Zusammenfassung;464 16.3;12.3 Aufgaben;465 16.3.1;12.3.1 Wiederholung;465 17;Kapitel 13: LINQ;467 17.1;13.1 Unverträglichkeit zwischen Relationen und Objekten;467 17.1.1;13.1.1 Das Problem, Objekte auf Tabellen abzubilden;468 17.1.2;13.1.2 Wem gehört das Schema?;472 17.1.3;13.1.3 Das Doppel-Schema-Problem;473 17.1.4;13.1.4 Identitätsprobleme bei Entitäten;473 17.1.5;13.1.5 Rückgewinnung der Daten;475 17.2;13.2 Die Architektur von LINQ;477 17.3;13.3 Spracherweiterungen, die LINQ ermöglichen
, am Beispiel von C#;481 17.3.1;13.3.1 Anonyme Typen;481 17.3.2;13.3.2 Objekt-Initialisierer;483 17.3.3;13.3.3 Collection-Initialisierer;483 17.3.4;13.3.4 Partielle Methoden;484 17.3.5;13.3.5 Implizit deklarierte lokale Variablen;485 17.3.6;13.3.6 Erweiterungsmethoden;487 17.3.7;13.3.7 Lambda-Ausdrücke;487 17.3.8;13.3.8 Abfrage-Ausdrücke;490 17.4;13.4 Aufgaben;492 17.4.1;13.4.1 Wiederholung;492 18;Kapitel 14: Big Data;495 18.1;14.1 Strukturierte, semistrukturierte und unstrukturierte Daten;495 18.2;14.2 Die Evolution der Datenverarbeitung;498 18.2.1;14.2.1 Datenstrukturen erstellen;501 18.2.2;14.2.2 Data Warehouses, Datamarts und BLOBs;501 18.2.3;14.2.3 Content-Management-Systeme;502 18.2.4;14.2.4 Die dritte Stufe der Evolution;502 18.3;14.3 Was genau ist eigentlich Big Data?;503 18.4;14.4 Der Big-Data-Projektzyklus;504 18.5;14.5 Die Architektur eines Big-Data-Projekts;506 18.6;14.6 Map Reduce;511 18.7;14.7 Big Table;511 18.8;14.8 Hadoop;511 18.9;14.9 Aufgaben;511 18.9.1;14.9.1 Wiederholung;512 19;Anhang A: Lösungen zu den Wiederholungsaufgaben;513 20;Stichwortverzeichnis;547
Jetzt reinlesen:
Inhaltsverzeichnis(pdf)