What exactly is first normal form?
What's the connection between relations and predicates?
What's semantic optimization?
What's a join dependency?
Why is semidifference important?
Why doesn't deferred integrity checking make sense?
What's a relational variable?
What's nonloss decomposition?
Can a relation have attributes whose values are relations?
What's the difference between SQL and the relational model?
Why is the information principle important?
How does XML fit in the relational model?
Provokante Fragen, nicht wahr?
Vor ca. 2500 Jahren schrieb Sunzi ein Buch, welches mit den Worten beginnt.
"Die Kunst des Krieges ist für den Staat von entscheidender Bedeutung. Sie ist eine Angelegenheit von Leben und Tod, eine Straße, die zur Sicherheit oder in den Untergang führt. Deshalb darf sie unter keinen Umständen vernachlässigt werden."
Mit dem Erscheinen einer neuen Version einer Software kommen naturgemäß auch viele neue und/oder aktualisierte Bücher zu dieser Software auf den Markt. Der potentielle Käufer hat dann die Qual der Wahl sich zwischen den verschiedenen Büchern für Entwickler, Administratoren oder Anwendern entscheiden zu müssen. Dies wird zusätzlich noch erschwert durch den Umstand, daß die diversen Autoren eine unterschiedliche Auffassung davon haben, was denn so für einen Entwickler oder Administrator von Interesse sei.
Die Online Hilfe des SQL Servers (Books Online, aka BOL) ist eine technische Dokumentation, die an Umfang und Ausführlichkeit kaum Wünsche offenläßt. Nahezu alles, was man zum SQL Server wissen muß und will, wird in BOL erklärt. Man muß "nur" wissen, wie man an diese Informationen gelangt.
Die Integration der Common Language Runtime (CLR) in SQL Server 2005 und die dabei verbundene Möglichkeit, in .NET geschriebenem Code nun innerhalb der Datenbank ausführen zu können, ist sicherlich eine der tiefgreifensten Neuerungen im SQL Server 2005. Während man in früheren SQL Server Versionen ausschließlich auf Erweiterte Gespeicherte Prozeduren beschränkt war, die zudem noch in Sprachen wie C, C++ oder Delphi geschrieben sein mußten, so stehen nun die deutlich weiterverbreiteten Sprachen VB und auch C# zur Verfügung. Während früher schlecht geschriebene Erweiterte Gespeicherte Prozeduren den gesamten Server destabilisieren oder gar zum Absturz bringen konnten, gibt die CLR nun deutlich mehr Kontrolle und Sicherheit über die nicht in T-SQL geschriebenen Datenbankobjekte.
Ohne Zweifel erweitert die Integration der CLR deutlich die Möglichkeiten, die einem Datenbankentwickler oder -administrator nun zur Verfügung stehen. Doch wie bei allen neuen Features gilt es auch hier erst einmal auszuloten, was denn eigentlich nun so alles möglich ist, um eine fundierte Entscheidung treffen zu können, was auch wirklich sinnvoll ist. Das vorliegende Buch hilft dem Leser, die Möglichkeiten der CLR kennenzulernen und einschätzen zu können.
Folgende Themen werden behandelt:
Auf über 260 Seiten führen die Autoren den Leser Schritt für Schritt durch die schöne neue Welt der SQL Server CLR.
Die zahlreichen Code Beispiele sind in C# geschrieben. Grundkenntnisse in C# sind also durchaus hilfreich. VB.NET Entwickler brauchen nun aber nicht das Buch wieder aus der Hand legen. Der Code ist stets gut erläutert, so daß man auch ohne C# Kenntnisse den Autoren folgen kann. Auch braucht sich der VB.NET Entwickler keine Gedanken machen, ob er nun die Beispiele aus dem Buch komplett neu in seiner Entwicklungsprache schreiben muß. Sämtliche Beispiele aus dem Buch, geschrieben in VB.NET, sind frei downloadbar von der Homepage von Apress.
Dies ist ein weiteres gelungenes Buch von Apress zum SQL Server 2005. Es hat Spaß gemacht, das Buch zu lesen und hat, zumindest bei mir, einen Teil der starken Vorbehalte gegen die Integration der CLR in SQL Server aus dem Weg geräumt, da die Autoren sinnvolle Beispiele für deren Einsatz bringen. Es ist den Autoren zu Gute zu halten, daß sie nicht nur die positiven Seiten der CLR anführen, sondern auch auf die Limitationen und mögliche Probleme bzw. Stolperfallen hinweisen. Genauso erwähnenswert ist es, daß die Autoren nicht empfehlen, ab sofort nur noch CLR Code zu schreiben oder nur deshalb alles von T-SQL auf CLR zu migrieren, weil halt jetzt die Möglichkeit dazu besteht. Man sollte jeden einzelnen Fall abwägen. T-SQL ist nach wie vor die erste Wahl, wenn es darum geht, Daten zu verarbeiten. Und nur diejenigen Fälle, in denen entweder T-SQL bis ans Limit ausgereizt wurde (z.B. wg. komplexer mathematischer Formeln oder dergleichen), sollte man für die Migration in Erwägung ziehen.
Mit seinen ca. $50 ist das Buch zwar nicht unbedingt ein Schnäppchen, aber für denjenigen, der sich mehr als nur oberflächlich mit der CLR auseinandersetzen will oder muß, durchaus empfehlenswert.
Pro SQL Server 2005 Assemblies |
Das vorliegende Buch versteht sich selbst als Buch, das "Lösungsszenarien und Praxisbeispiele für alle wichtigen Aspekte des SQL Server 2005" präsentiert. Diese werden anhand eines fiktiven Unternehmens dargestellt, daß von Excel auf SQL Server 2005 migriert und nun im Begriff ist, die Möglichkeiten des SQL Servers 2005 auszuloten.
Hin und wieder stößt man in Online Communities auf Fragen wie "Kann ich Daten vor dem Datenbankadministrator verbergen?" oder "Wie kann ich verhindern, daß Systemadministratoren meine Daten lesen?" Und oft ist die Antwort darauf: "Einen Datenbankadministrator kann man nicht daran hindern, die Daten einer Datenbank einzusehen. Warum auch? Schließlich braucht der Administrator vollen Zugriff im Falle eines Falles. Und wenn man schon seinen Administratoren nicht mehr trauen kann, hat man wahrscheinlich noch ganz andere Probleme." oder "Wenn schon, dann sollten die Daten im Front-End verschlüsselt werden und danach in der Datenbank gespeichert werden. Datenbankverschlüsselung allein ist schwach."
Datensicherheit ist teilweise ein sträflich vernachlässigtes Thema. Zumindest was die Sicherheit anbetrifft, die nach der Firewall und Intrusion Detection Systemen kommt und sich unternehmensintern abspielt. Medienwirksamer sind zweifelsohne die spektakulären Nachrichten darüber, daß irgendjemand in irgendein Netzwerk eingedrungen ist und dort Schaden angerichtet hat. Nachrichten über "interne Hacker" gerade naturgemäß selten nach außen und an die Medien.
Der interne "Angreifer" hat den Vorteil, daß er sich bereits hinter dem äußeren Wall befindet, Zugriff auf das Netzwerk hat und auch mehr oder weniger ausgeprägte Kenntnisse über die Netzwerktopologie besitzt. Gerade als Datenbankadministrator ist man hier in einer sehr priviligierten Position. Nicht nur hat man bereits den Zugriff auf sämtliche in der Datenbank gespeicherten Daten, sondern als Admin ist man auch in der Lage, die Spuren einer solchen eventuellen Attacke zu verwischen. Kryptographie kann helfen, dieses latente Sicherheitsrisiko zu minimieren. Doch Datenbank-Kryptographie alleine ist nicht genug. Um ein Höchstmaß an Sicherheit zu erzielen muß man eine komplette kryptographische Infrastruktur errichten.
Damit ist im Groben der Inhalt dieses Buches wiedergegeben. Auf ca. 270 Seiten entwickelt der Autor solch eine kryptographische Infrastruktur bzw. gibt genügend Ideen, um eine solche in seiner eigenen IT-Landschaft zu erstellen oder Produkte von Drittanbietern auf ihre Zweckmäßigkeit einschätzen zu können.
Der Autor leitet Symantec's IT Applikations- und Datenbanksicherheits-Programm und sorgt in dieser Position dafür, daß die internen Systeme von Symantec sicher sind. Die Beispiele werden anhand von MySQL als Datenbanksystem und Java als Programmiersprache präsentiert, aber diese sollten ohne größere Schwierigkeiten auch auf andere Datenbanksysteme und Sprachen übertragbar sein. Der komplette Source Code seines Kryptographie Projektes ist downloadbar von der Webseite des Verlages.
Lesenswert ist dieses Buch vor allem für Leute, die an Projekten oder in Umgebungen arbeiten, für die Sicherheit die oberste Priorität ist. Seien es nun Systemarchitekten, Systemanalysten, Entwickler oder auch Risikomanager, die jedoch zumindest über Grundkenntnisse in der Kryptographie verfügen sollten.
Cryptography in the Database |
Was erwartet man von einem Buch, daß vom einem Direktor des SQL Server Produkt Teams zusammen mit 2 SQL Server MVP's (Most Valuable Professionals) und anderen Datenbank Veteranen geschrieben wurde?