Unser Buch wendet sich an alle Entwickler, die die neue Version der Microsoft-Datenbank nutzen wollen. Im Vordergrund steht die Integration des .NET-Frameworks, das die Programmierung mit den .NET-Sprachen ermöglicht. Vom ersten Datenbankentwurf und den SQL-Grundlagen, der Migration von SQL Server 2000 bis hin zu den neuen Features und konkreten Programmierbeispielen beschreiben die Autoren alles Notwendige, um den SQL Server 2008 als Programmierplattform und Datenmanagement-Server zu nutzen. In der neuen Auflage wurde das Buch aktualisiert und um viele Themen wie Indizierte Sichten, Partionierung von Tabellen, Event Notification unter ADO.NET etc erweitert
Aus dem Inhalt:
Installation und Aktualisierung von SQL Server 2008
Datenbankentwurf
Grundlagen der SQL-Programmierung
Mehrtabellenabfragen
Erstellen und Ändern von Datenbanken
Erstellen von Tabellen
Verwendung der räumlichen und hierarchischen Datentypen
Daten verwalten
Benutzerverwaltung und Schemas
Sichten
Programmierung von gespeicherten Prozeduren
Programmierung von benutzerdefinierten Funktionen
Programmierung und Einsatz von Triggern
Ereignisbenachrichtigungen (Event Notifications)
Erstellung und Einsatz eines Cursors
Indizes
Transaktionen
Der SQL Server als Laufzeitumgebung für .NET
.NET-Programmierung
T-SQL: Neuerungen und Verbesserungen der Kompatibilität
Einsatz von XML in der Datenbank
Der Einsatz von Webservices in der Datenbank
Datenbankzugriff mit ADO.NET
LINQ
Galileo Press heißt jetzt Rheinwerk Verlag.
Rezensionen / Stimmen
Mit einem Buch für alle, vom Einsteiger bis zum erfahrenen Datanbankentwickler, haben sich die Autoren eine große Aufgabe gestellt - und sie verblüffend gut gelöst. Jeder der Autoren ist Spezialist auf seinem Gebiet und hat einen der drei Teile des Buches verfasst. So ist ein gelungener Einstieg entstanden, der weiterleitet zu einer vollständigen Übersicht der Programmierung des Servers, vom einfachen Beispiel, an das der Einsteiger anknüpfen kann, bis zu tiefgehenden Details für den Profi. Die Gesamtnote lautet deshalb: Sehr gut.
Reihe
Sprache
Verlagsort
Verlagsgruppe
Editions-Typ
Maße
Höhe: 24 cm
Breite: 16.8 cm
ISBN-13
978-3-8362-1395-0 (9783836213950)
Schweitzer Klassifikation
... Vorwort ... 23
1 ... Installation und Aktualisierung von SQL Server 2008 ... 25
... 1.1 ... Überblick über die verfügbaren SQLServer2008Versionen ... 25
... 1.2 ... Installationsvoraussetzungen ... 26
... 1.3 ... Installation von SQL Server 2008 ... 27
... 1.4 ... Installation der SQL-Server-Beispieldatenbanken ... 39
... 1.5 ... Aktualisierung auf SQL Server 2008 ... 45
2 ... Datenbankgrundlagen ... 57
... 2.1 ... Server und Client ... 57
... 2.2 ... Relationale Datenbanken ... 58
... 2.3 ... Datenbankmanagementsystem ... 77
... 2.4 ... Integritätsarten ... 80
3 ... Logischer Datenbankentwurf ... 83
... 3.1 ... Grundlagen des Datenbankentwurfs ... 83
... 3.2 ... Normalisierungsregeln (Normalformen) ... 84
... 3.3 ... Normalisierung in der Praxis ... 91
... 3.4 ... Denormalisierung ... 95
... 3.5 ... Entity-Relationship-Diagramme ... 96
4 ... Die Oberfläche des SQL Servers ... 99
... 4.1 ... Das SQL Server Management Studio ... 99
... 4.2 ... Das Bearbeiten von SQL-Anweisungen im Management Studio ... 118
... 4.3 ... SQL-Server-Dokumentation und Hilfen zur Programmierung ... 135
... 4.4 ... Überblick über die SQL-Server-Dienste ... 148
... 4.5 ... Das Dienstprogramm sqlcmd ... 149
5 ... Grundlegende Abfragetechniken ... 153
... 5.1 ... Einführung in SQL ... 153
... 5.2 ... SQL-Grundlagen ... 154
... 5.3 ... Grundlegende Operatoren ... 163
... 5.4 ... Einfache Abfragen ... 167
... 5.5 ... Auswahloperatoren ... 182
... 5.6 ... Aggregatfunktionen ... 190
... 5.7 ... Unterabfragen ... 193
... 5.8 ... Zusammenfassung, Gruppierung und Beschränkung von Abfrageergebnissen ... 196
... 5.9 ... Ausgaben mit PRINT und SELECT ... 205
6 ... Grundlagen der SQL-Programmierung ... 207
... 6.1 ... Das Stapeltrennzeichen GO ... 207
... 6.2 ... (Lokale) Variablen ... 209
... 6.3 ... Ablaufsteuerung ... 217
... 6.4 ... Fallunterscheidungen ... 227
... 6.5 ... Funktionen ... 234
... 6.6 ... Dynamische SQL-Anweisungen ... 246
... 6.7 ... Fehler in SQL Server und ihre Behandlung ... 248
... 6.8 ... Fehlerbehandlung ... 251
7 ... Mehrtabellenabfragen ... 269
... 7.1 ... Tabellen verknüpfen (JOIN-Anweisung) ... 269
... 7.2 ... Abfragen unter Verwendung mehrerer Server ... 279
8 ... Erstellen und Ändern von Datenbanken ... 281
... 8.1 ... Erstellen einer einfachen Datenbank ... 281
... 8.2 ... Einfluss der model-Datenbank auf das Erstellen neuer Datenbanken ... 289
... 8.3 ... Löschen von Datenbanken ... 290
... 8.4 ... Erstellen einer Datenbank mit mehreren Dateien ... 290
... 8.5 ... Nachträgliche Änderungen an Datenbankdateien ... 293
... 8.6 ... Erstellen einer Datenbank mit mehreren Dateigruppen ... 296
... 8.7 ... Datenbanken verkleinern ... 299
... 8.8 ... Datenbankdateien verkleinern ... 301
... 8.9 ... Gespeicherte Systemprozeduren (Stored Procedures) zur Datenbankverwaltung ... 302
... 8.10 ... Datenbank-Snapshots ... 303
... 8.11 ... RAID-Systeme ... 312
9 ... Erstellen von Tabellen ... 317
... 9.1 ... Die grundlegende Syntax zur Tabellenerstellung ... 317
... 9.2 ... Tabellen ändern ... 321
... 9.3 ... Löschen von Tabellen ... 323
... 9.4 ... Implementierung der Datenintegrität ... 324
... 9.5 ... Anwendungsbeispiel zu Einschränkungen ... 331
... 9.6 ... Nachträgliche Definition von Einschränkungen ... 333
... 9.7 ... Verwaltung von Einschränkungen ... 334
... 9.8 ... Temporäre Tabellen ... 336
... 9.9 ... Partitionierung von Tabellen ... 338
10 ... Verwendung der räumlichen und hierarchischen Datentypen ... 349
... 10.1 ... Räumliche Datentypen ... 349
... 10.2 ... Der hierarchische Datentyp ... 372
11 ... Daten verwalten ... 381
... 11.1 ... Grundlegende Befehle zur Datensatzmanipulation ... 381
... 11.2 ... Verwendung des Zeilenkonstruktors ... 390
... 11.3 ... Kombinierte Auswahl-/Einfügeanweisungen ... 391
... 11.4 ... Die MERGE-Anweisung ... 393
... 11.5 ... Massenkopierprogramme ... 400
12 ... Benutzerverwaltung und Schemas ... 403
... 12.1 ... Authentifizierung am Server ... 404
... 12.2 ... Datenbankzugriff erteilen ... 408
... 12.3 ... Zusammenfassung von Benutzern zu Rollen ... 411
... 12.4 ... Rechtevergabe an Benutzer und Rollen ... 415
... 12.5 ... Deaktivierung und Aktivierung von Log-ins und Datenbankbenutzern ... 421
... 12.6 ... Vordefinierte Konten auf Server- und Datenbankebene ... 424
... 12.7 ... Schema ... 426
13 ... Sichten ... 433
... 13.1 ... Einsatz von Sichten ... 434
... 13.2 ... Verwalten von Sichten ... 436
... 13.3 ... Datenmanipulationsanweisungen auf eine Sicht ... 438
... 13.4 ... Systemsichten des SQL Servers ... 444
14 ... Programmierung von gespeicherten Prozeduren ... 447
... 14.1 ... Überblick über die Verwendung von gespeicherten Prozeduren in SQL Server ... 447
... 14.2 ... Erstellung und Aufruf von gespeicherten Prozeduren ... 451
... 14.3 ... Tabellenübergabe an eine gespeicherte Prozedur ... 468
... 14.4 ... Optionen von gespeicherten Prozeduren ... 471
15 ... Programmierung von benutzerdefinierten Funktionen ... 477
... 15.1 ... Überblick über benutzerdefinierte Funktionen ... 477
... 15.2 ... Skalare Funktionen (Skalarwertfunktionen) ... 478
... 15.3 ... Inlinefunktionen (Tabellenwertfunktionen) ... 482
... 15.4 ... Tabellenwertfunktion mit mehreren Anweisungen ... 485
... 15.5 ... Ändern und Löschen von benutzerdefinierten Funktionen ... 488
... 15.6 ... Verwendung des Datentyps TABLE als lokale Variable ... 488
16 ... Programmierung und Einsatz von Triggern ... 493
... 16.1 ... DML-Trigger ... 493
... 16.2 ... DDL-Trigger ... 514
17 ... Ereignisbenachrichtigungen (Event Notifications) ... 521
... 17.1 ... Aktivierung des Service Brokers ... 522
... 17.2 ... Konfiguration des Zieldienstes ... 523
... 17.3 ... Erstellen einer Ereignisbenachrichtigung ... 525
... 17.4 ... Auslösen und Empfangen einer Ereignisbenachrichtigung ... 526
... 17.5 ... Löschen der erstellten Objekte ... 528
18 ... Erstellung und Einsatz eines Cursors ... 529
... 18.1 ... Funktionsweise eines Cursors ... 529
... 18.2 ... Erstellung eines Cursors ... 531
... 18.3 ... Öffnen eines Cursors ... 533
... 18.4 ... Das Abrufen von Datensätzen aus einem Cursor ... 534
... 18.5 ... Schließen und Löschen eines Cursors ... 543
... 18.6 ... Schleifenprogrammierung zum automatischen Durchlaufen eines Cursors ... 544
... 18.7 ... Daten in der Cursorauswahl aktualisieren und löschen ... 549
19 ... Indizes ... 551
... 19.1 ... Der nicht gruppierte Index auf einem Heap ... 552
... 19.2 ... Der gruppierte Index ... 556
... 19.3 ... Der nicht gruppierte Index auf einem gruppierten Index ... 559
... 19.4 ... Erstellung von Indizes ... 562
... 19.5 ... Verwaltung von Indizes ... 566
... 19.6 ... Statistiken ... 570
... 19.7 ... Planung des Einsatzes von Indizes ... 575
... 19.8 ... Weitere Optimierungsmöglichkeiten mit Hilfe von Indizes ... 584
20 ... Transaktionen ... 593
... 20.1 ... Einführung in Transaktionen ... 593
... 20.2 ... ACID ... 596
... 20.3 ... Interne Transaktionsverarbeitung ... 598
... 20.4 ... Verhalten bei Systemfehlern ... 600
... 20.5 ... Programmierung expliziter Transaktionen ... 602
... 20.6 ... Implizite Transaktionen ... 605
... 20.7 ... Wiederherstellung beim Systemstart (Recovery) ... 607
... 20.8 ... Sperren ... 610
... 20.9 ... Isolationsstufen auf Verbindungsebene ... 612
... 20.10 ... Sperrhinweise auf Tabellenebene ... 622
... 20.11 ... Informationen zu Sperren ... 623
... 20.12 ... Deadlocks ... 624
21 ... Der SQL Server als Laufzeitumgebung für .NET ... 629
... 21.1 ... Die Programmiermodelle im Vergleich ... 629
... 21.2 ... Die CLR-Integration im Detail ... 633
... 21.3 ... Der Hosting Layer ... 637
... 21.4 ... Verwaltung von Assemblies ... 640
... 21.5 ... Sicherheitsstufen ... 641
22 ... .NET-Programmierung ... 643
... 22.1 ... CLR-Unterstützung aktivieren ... 643
... 22.2 ... CLR-Prozeduren und Funktionen ... 645
... 22.3 ... Gespeicherte Prozeduren ... 650
... 22.4 ... Benutzerdefinierte Funktionen ... 658
... 22.5 ... Serverseitiger Datenzugriff mit ADO.NET ... 666
... 22.6 ... Pipes ... 668
... 22.7 ... Impersonalisierung ... 676
... 22.8 ... Benutzerdefinierte Typen ... 680
... 22.9 ... Benutzerdefinierte Aggregate ... 697
... 22.10 ... Benutzerdefinierte Trigger ... 705
... 22.11 ... Administration und Monitoring von CLR-Objekten ... 712
23 ... T-SQL: Neuerungen und Verbesserungen der Kompatibilität ... 717
... 23.1 ... CROSS APPLY und OUTER APPLY ... 719
... 23.2 ... Kreuztabellen mit PIVOT erstellen ... 721
... 23.3 ... Common Table Expressions ... 729
... 23.4 ... Fehlerbehandlung ... 737
... 23.5 ... Ranking- und Windowing-Funktionen ... 744
... 23.6 ... Die OUTPUT-Klausel ... 751
... 23.7 ... Die TABLESAMPLE-Klausel ... 753
... 23.8 ... EXCEPT- und INTERSECT-Statement ... 755
... 23.9 ... Tabellenwertparameter ... 756
24 ... Einsatz von XML in der Datenbank ... 761
... 24.1 ... Warum XML? ... 762
... 24.2 ... HTML und XML ... 762
... 24.3 ... XML-Fähigkeiten des SQL Servers ... 767
... 24.4 ... Der XML-Datentyp ... 767
... 24.5 ... Auf gespeicherte XML-Daten zugreifen ... 774
... 24.6 ... Darstellung von Abfrageergebnissen im XML-Format ... 785
... 24.7 ... XML-Schema ermitteln ... 802
... 24.8 ... XML-Daten in einem relationalen Modell speichern ... 804
25 ... Der Einsatz von Webservices in der Datenbank ... 807
... 25.1 ... Warum Webservices? ... 808
... 25.2 ... Den SQL Server als Webservice-Backend betreiben ... 809
... 25.3 ... Endpoints ... 811
... 25.4 ... Einen Endpoint erstellen ... 811
... 25.5 ... WSDL ermitteln ... 819
... 25.6 ... Zugriff vom Client ... 821
... 25.7 ... Session- und State-Management ... 824
... 25.8 ... Batch-Abfragen ... 827
... 25.9 ... Endpoints verwalten ... 829
26 ... Datenbankzugriff mit ADO.NET ... 831
... 26.1 ... Einleitung ... 831
... 26.2 ... Die Datenprovider ... 835
... 26.3 ... Die Verbindung zu einer Datenbank herstellen ... 837
... 26.4 ... Die Datenbankabfrage ... 861
... 26.5 ... Das SqlDataReader-Objekt ... 867
... 26.6 ... Parametrisierte Abfragen ... 877
... 26.7 ... Der SqlDataAdapter ... 892
... 26.8 ... Daten im lokalen Speicher -- das DataSet ... 905
... 26.9 ... Mit mehreren Tabellen arbeiten ... 931
... 26.10 ... Aktualisieren der Datenbank ... 940
... 26.11 ... Objekte vom Typ DataView ... 970
... 26.12 ... Stark typisierte DataSets ... 976
... 26.13 ... Fazit: Typisierte oder nicht typisierte DataSets? ... 1003
... 26.14 ... Projekte mit grafischer Benutzeroberfläche ... 1004
... 26.15 ... Datenbindung ... 1013
27 ... LINQ ... 1029
... 27.1 ... Was ist LINQ? ... 1029
... 27.2 ... Neue Sprachfeatures in C# 3.0 ... 1031
... 27.3 ... LINQ to Objects ... 1046
... 27.4 ... LINQ to SQL ... 1075
... 27.5 ... Der LINQ-to-SQL-Designer (O/R-Designer) ... 1100