Partner

thecampus ixto quest.com sqlpass

Einleitung

Unser Buch ist endlich fertig! Dick ist es geworden. Und wir sind stolz drauf! Was Sie hier zwischen den beiden Buchdeckeln finden, ist ein großer Teil unserer Kenntnisse und Erfahrungen in der Arbeit mit dem SQL Server 2005. Dass das Schreiben länger als geplant gedauert hat, verdanken wir nicht zuletzt dem Produkt SQL Server selbst. Mit einem Buch über die rein „klassische“ Datenbankentwicklung mit Transact-SQL wären wir sicher schneller fertig geworden. Nun ist aber der SQL Server 2005 nach unserer Meinung ein großer Wurf geworden, der so viele interessante Angebote an den Entwickler macht, dass es nicht ganz trivial ist, auch nur die wichtigsten ausreichend zu würdigen. Wenn es nach uns gegangen wäre, dann hätte dieses Buch noch mindestens 1000 Seiten mehr besitzen können, aber das wäre ja auch irgendwie unpraktisch - oder? So haben wir uns bemüht die Inhalte zu kondensieren und die Kernpunkte knapp und präzise rüber zu bringen.

Entwickeln heißt nicht einfach nur Programmieren und ein paar Objektmodelle gut kennen. Entwickeln heißt nach unserem Verständnis Lösungen schaffen. Und das möglichst effektiv. Seien Sie deshalb nicht böse, wenn Sie in diesem Buch Stellen finden, die mit wenig Quellcode auskommen - während es an anderen Stellen davon nur so wimmelt. Der von Microsoft geprägte Begriff der Daten-Managementplattform beschreibt sehr anschaulich, was Sie beim SQL Server 2005 erwartet. Wir erklären Ihnen die eine oder andere Technologie, die das Schreiben von eigenem Code reduziert - tut uns leid! Ein gutes Beispiel dafür sind die SQL Server Integration Services, die eine wirklich praktische und effiziente Umgebung für Datentransfer-Aufgaben darstellen. 80% der üblichen Aufgaben erledigen Sie dabei möglicherweise ohne eine einzige Zeile Quellcode zu schreiben und sparen eine Menge Entwicklungszeit.

Dieses Buch gehört vermutlich nicht zu denjenigen, die Sie mit einem guten Glas Wein in der Hand vor dem offenen Kamin lesen (aber warum eigentlich nicht?). Am sinnvollsten erscheint es uns, wenn Sie unser Buch an Ihrem Arbeitsplatz nutzen. Wir würden uns wünschen, dass Sie dieses Buch neben Ihre Tastatur legen, damit Sie alle Beispiele sofort ausprobieren können und das Buch Ihnen als tägliche Referenz bei Ihrer Entwicklertätigkeit dienen kann (klar - wir ahnen, dass Sie dieses Buch nicht von vorne bis hinten lesen werden. Ist schon in Ordnung, so!). Viele Entwickler - das wissen wir aus eigener Erfahrung - lesen Bücher zwischendurch in der S-Bahn, auf Flughäfen, abends im Hotelzimmer. Der Autor dieser Einleitung liest EDV-Bücher am liebsten in der Badewanne. Dies ist ein Buch für die Badewanne! Mit anderen Worten: Durch die Erklärung der Quellcode-Beispiele, durch Grafiken und Screenshots sollen Sie in die Lage versetzt werden „im Kopf zu entwickeln“. Zurück vor Ihrem Rechner können Sie unsere Programmschnipsel sofort laufen lassen und kreativ abändern.

Wenn wir das Buch nicht zufällig selbst geschrieben hätten - wir würden es uns kaufen!

Wer sind Sie (die Leser)?

Wenn Sie professionell mit dem SQL Server zu tun haben, dann ist das hier Ihr Buch! Natürlich geht es in erster Linie um das Entwickeln von Datenbankanwendungen, aber auch Administratoren, die sich mit den Konzepten und der Praxis der SQL Server-Programmierung beschäftigen möchten, sind hier gut aufgehoben. Viele der besprochenen Techniken und Hintergrundinformationen lassen sich auch für die Wartung von SQL Servern einsetzen und Themen, wie Indizierung, Sicherheit, Abfrageoptimierung und Monitoring gehen auch „Alle“ etwas an. In vielen Fällen lassen sich die Jobrollen des Entwicklers und des Administrators im Datenbankbereich auch gar nicht voneinander trennen. Das Implementieren einer „ordentlichen“ SQL Server-Lösung besteht neben der Programmlogik häufig auch aus viel „Physik“.

Auch als reinrassiger .NET-Programmierer, der in seinen Anwendungen den SQL Server einsetzt, ziehen Sie Nutzen aus diesem Buch. Was auf dem Server in der Transact-SQL oder .NET-Programmierung langsam abläuft, holen Sie mit dem schönsten C#-Client nicht mehr auf. Das Buch soll Sie inspirieren Ihre Datenzugriffe möglichst Servernah zu programmieren. Damit können Ihre Anwendungen wirklich schnell werden und Sie sparen Programmierarbeit in Ihren Komponenten oder Ihrer Client/Server-Anwendung.

Dieses Buch ist keine Einführung in die aller einfachsten Grundlagen der Datenbankentwicklung. Sie sollten schon wissen, was eine relationale Datenbank ist und es schadet auch nicht, wenn Sie schon Erfahrungen mit anderen DBMS (ORACLE, MySQL, SQL Server 2000, Access ) gesammelt haben. Sie können aber erwarten, dass Sie eine gründliche Einführung in die Entwicklung mit dem SQL Server 2005 erhalten, bis hin zu fortgeschrittenen Implementierungs- und Optimierungstechniken.

Falls Sie vorhaben, sich für eine Microsoft Zertifizierung im Datenbankbereich zu qualifizieren (MCITP: Database Administrator oder Database Developer), dann bereitet Sie das Durcharbeiten dieses Buchs ergänzend auf die Prüfungen 70-431, 70-441, 70-442, 70-443, 70-444 und 70-447 vor.

Wer sind wir (die Autoren)?

Unsere Namen sind Bernd Jungbluth, Alexander Köller und Georg Urban. Wir alle arbeiten schon lange Jahre auf den Gebieten IT, Entwicklung und dem SQL Server.

Bernd Jungbluth hat sich ausführlich mit den Themen SQL Server Integration Services und auch den Reporting Services beschäftigt. Die entsprechenden Kapitel aus dem fünften Buchteil stammen von ihm.
Alexander Köller - als Experte für die Entwicklung mit Net und XML-Technologien - die Teile drei und vier beigetragen. Auch das Kapitel über den Service Broker stammt aus seiner Feder.
Georg Urban ist der „relationale Mann“ im Team und hat die ersten beiden Teile geschrieben. Und weil es ihm schon immer ein Anliegen war, sich programmatisch mit den ganz großen und den ganz kleinen Dingen zu beschäftigen, hat er die Kapitel über die Server Management Objects und SQL Server Mobile ergänzt, sowie das Kapitel über die Notification Services.

Weitere sachdienliche Hinweise zu unseren Personen finden Sie auf der Website zum Buch.

Aufbau des Buchs

Aus der Erfahrung vieler Workshops, Trainings und anderer Buchprojekte heraus haben wir uns dazu entschlossen, dieses Buch vor dem Hintergrund eines eigenen durchgängigen und konkreten Szenarios zu schreiben. Dieser Weg ist steinig, dass können Sie uns glauben. Da unterscheidet sich der Entwurf einer Datenbank für ein Buschbeispiel, an dem sich drei Leute die Köpfe heiß reden, nicht von einem „wirklichen“ Projekt. Uns hat dieses Vorgehen jedenfalls geholfen, auf dem Boden zu bleiben und anstelle abstrakten Philosophierens, die im Buch vorgestellten Technologien anhand konkreter Aufgabenstellungen zu demonstrieren. Wir hoffen, dass Ihnen der Hintergrund unserer Datenbankanwendung eben so dabei hilft, sich in den SQL Server 2005 hinein zu denken.

Wir haben die Fülle des Materials in fünf Buchteile gegliedert, um Ihnen die Übersicht zu erleichtern. Zur besseren Orientierung folgt an dieser Stelle eine kurze Übersicht, was Sie in den einzelnen Teilen erwartet.

Teil 1: SQL Server Grundlagen

Der erste Teil des Buchs erledigt die notwendige Grundlagenarbeit für die restlichen Teile dieses Buchs. Falls Sie den SQL Server 2005 bis jetzt noch nicht gut kennen, werden Sie hier zunächst einmal mit dessen Möglichkeiten vertraut gemacht. Außerdem geht es um die SQL Server Architektur. Falls Sie es eilig haben, dann können Sie dieses „Warming Up“ zunächst einmal überschlagen und direkt die Kapitel lesen, die Sie am brennendsten interessieren. Es ist aber nicht ganz unwahrscheinlich, dass Sie hin und wieder zurückblättern werden, um das eine oder andere Konzept nachzulesen. Ganz bewusst haben wir auf eine Einführung in den Entwurf relationaler Datenbanken verzichtet. Wir gehen davon aus, dass Sie sich damit auskennen. Es gibt Myriaden guter Bücher zu diesem Thema auf dem Markt, so dass wir an dieser Stelle Papier gespart haben. Worauf wir allerdings nicht verzichten konnten ist eine kurze Erläuterung des Datenmodells unseres Arbeitsbeispiels - der netShop-Datenbank. Diese finden Sie in Kapitel drei, welches Sie als Referenz benutzen können, wenn Ihnen irgendetwas an den Codebeispielen der folgenden Buchteile seltsam vorkommt und Sie den Hintergrund von Abfragen, Net-Routinen oder Reporting-Services-Berichten (und vielen anderen Programmierobjekten) genauer verstehen möchten.

Teil 2: Relationales Entwickeln und Transact-SQL

Im zweiten Teil betreten Sie die klassische Welt der relationalen Datenbankprogrammierung. Dass dies der umfangreichste Teil unseres Buchs geworden ist, sollte Sie eigentlich nicht verwundern: Trotz der hervorragenden neuen Möglichkeiten, die sich mit den XML und Net-Angeboten im SQL Server ergeben, bleibt der Kern des Datenzugriffs immer relational und SQL-basiert. Vielleicht wird es in zukünftigen SQL Server und ADO.NET-Versionen so sein, dass Sie das weniger spüren - die kommende LINQ-Architektur in ADO.NET 3.0 weist in diese Richtung. Im Kern wird es auf lange Zeit für viele Anwendungen keinen Weg an der Programmiersprache des SQL Servers - Transact-SQL - vorbei geben. Das gilt ganz besonders, wenn Sie in Ihrer Anwendung mit einer serverbasierten Datenzugriffsschicht aus gespeicherten Prozeduren, Triggern und Sichten arbeiten. Es gilt aber auch, wenn Sie in Ihrem clientseitigen Code Abfragen für den SQL Server formulieren möchten, egal ob Sie das direkt tun (zum Beispiel mittels eines Command-Objekts) oder verpackt in einem ADO.NET Data Adapter. Für einen möglichst effektiven Zugriff ist es wichtig T-SQL ganz genau kennen zu lernen. Der dritte Buchteil behandelt die Sprachgrundlagen von T-SQL, geht intensiv auf einen effektiven Aufbau von Tabellen und Indizes ein, führt über die verschiedenen „klassischen“ Programmierelemente bis hin zur Transaktionsverarbeitung und Optimierungen.

Teil 3: Net-Entwicklung

Die Integration des Net-Frameworks in den SQL Server, verbunden mit der Möglichkeit die Datenbankobjekte gespeicherte Prozeduren, Trigger, Funktionen, Aggregate und benutzerdefinierte Typen in einer Net-Sprache zu programmieren, ist eine gewaltige Erweiterung der Möglichkeiten für SQL Server-Entwickler. Im dritten Buchteil werden die Konzepte der Integration von CLR-Objekten in die relationale Programmierumgebung vorgestellt und deren Anwendung gezeigt. Wir verzichten auf eine ausführliche Einführung in die .NET-Entwicklung und beginnen direkt mit der praktischen Einführung in die Entwicklungsumgebung und dem Anlegen der verschiedenen Serverobjekte. Genauso wichtig sind natürlich die Themen Sicherheit und die Programmierung von Clients, die mittels ADO.NET auf den SQL Server zugreifen. Zum Abschluss gibt es einen Ausblick auf die administrative Programmierung des Servers und die Programmierung mit dem mobilen SQL Server.

Teil 4: XML

Mit der Version 2005 hat es beim SQL Server einen gewaltigen Sprung in den XML Fähigkeiten gegeben. Das ist vor allen Dingen dem neuen xml-Datentyp zu verdanken, der es ermöglicht XML-Dokumente nativ in Datenbanktabellen zu speichern. Das Speichern ist natürlich nur der halbe Spaß, Daten müssen auch abgefragt und verarbeitet werden. Transact-SQL ist daher gleichzeitig mit Spracherweiterungen versehen worden, mit denen man als „XML-fähiger Entwickler“ relationale Abfragen und Abfragen in den XML-Dokumenten miteinander kombinieren kann. Die XML-Dokumente werden dabei mit XPath und XQuery-Sprachkonstrukten abgefragt, die relationalen Daten ganz traditionell mit T-SQL gelesen. Der xml-Datentyp ist natürlich ein echter Gewinn für Programmierer, die XML-basiert arbeiten. XMLDaten werden im SQL Server nicht mehr als Blob betrachtet, beziehungsweise müssen diese nicht mehr „geplättet“ werden (flattening) um die Strukturen in relationale Datenstrukturen einzupacken. Der vierte Teil des Buchs stellt vor, wie man mit dem xml-Datentyp umgeht: Daten ablegt, gegen XMLSchemata prüft, für den schnelleren Zugriff mit Indizes versieht, abfragt und an Ort und Stelle modifiziert. Natürlich kommen auch die traditionellen Verfahren des Flattening und Un-Flattening (umwandeln in relationale Tabellen und zurück) nicht zu kurz.

Teil 5: Services

Der SQL Server macht dem Entwickler eine Reihe von Angeboten in Form von diversen „Services“, die auf den Technologien und Entwicklungsverfahren aufbauen, welche in den ersten vier Teilen des Buchs erläutert wurden. Diese Services stellen keine Dienste im engeren Sinn dar (etwa wie Windows-Services oder Webservices) sondern eher Enwicklungsplattformen, die in den SQL Server integriert sind. Es liegt uns am Herzen, dass Sie als Entwickler die Möglichkeiten dieser „Services“ nicht übersehen und in Ihren Anwendungen nutzen. Daher stellen wir im fünften Buchteil vier wichtige Plattformen für die Anwendungsentwicklung vor: Integration Services, Reporting Services, den Service Broker und die Notification Services. Entwickler finden hier Basistechnologien und Werkzeuge, die man entweder stand-alone benutzen kann oder auch in eigene Anwendungen integriert. So oder so kann Ihnen die Nutzung der Plattformen im Entwicklungsprozess eine Menge Zeit und Nerven sparen.

Die Begleit-CD

Die Begleit-CD enthält die Datenbanken, Projekte und Dateien, die Ihnen helfen werden, die Theorie sofort in die Praxis umzusetzen. Sicherlich ist der effektivste Weg, um mit Hilfe unseres Buchs die Entwicklung des SQL Servers 2005 in den Griff zu kriegen, das direkte Ausprobieren und Nachvollziehen des Quellcodes. Sie können alle Beispiele sofort laden und laufen lassen. Code to Go! Experimentieren Sie mit den Beispielen und passen Sie diese an eigene Erfordernisse an.
Berlin, den 20.01.2007

zum Seitenanfang
Impressum     Microsoft Press      Bestellen

Copyright© 2007 - 2011 Georg Urban IT-Beratung - Alle Rechte vorbehalten.