Browsed by
Kategorie: Grundlagen

Basics zum Thema SQL Server.

SQL Server Security: Einführung

SQL Server Security: Einführung

Datenskandale sind inzwischen in den Medien wieder sehr präsent. Immer wieder liest man von Datenlecks bei großen Unternehmen. Gefühlt gibt es inzwischen kaum mehr eine große Plattform die nicht schon irgendwo Daten „verloren“ hat. Vermutlich hat jeder schon einmal seine Mailadresse beim Hasso Plattner Institut (https://sec.hpi.de/ilc/) oder auf Have I been pwned (https://haveibeenpwned.com) überprüft und vermutlich auch gefunden. Wer das noch nicht gecheckt hat sollte das dringend mal nachholen und dann gegebenenfalls handeln. Jeder der einen SQL Server betreibt hat…

Weiterlesen Weiterlesen

Was ist SQL Injection?

Was ist SQL Injection?

Haben sie ihr Kind wirklich ‚;DELETE FROM dbo.Schueler; genannt? Wenn man diese Frage am Telefon gestellt bekommt hat man als Eltern vermutlich Spaß mit der Schule. Natürlich ist das ein sehr überspitztes Beispiel. Aber SQL-Injection ist immer noch eine der größten und am häufigsten ausgenützten Sicherheitslücken. Nachdem immer häufiger Frameworks in der Softwareentwicklung verwendet werden wird die SQL Injection immer weniger. Aber auch die schützen nicht automatisch davor, da ist immer noch die Sorgfalt des Entwicklers gefragt. Was ist eigentlich…

Weiterlesen Weiterlesen

Common Table Expression – Was ist das?

Common Table Expression – Was ist das?

Das Ding mit dem WITH am Anfang heißt eigentlich Common Table Expression oder kurz CTE. Sie sind ein – wie ich finde – oft sehr performantes, unterschätztes Mittel in SQL. Was ist eine CTE? Zum Verständnis kann man eine CTE mit einer temporären Tabelle oder einer Tabellenvariable vergleichen. Sie ist erstmal wie eine Tabelle die ich nur für eine einzelne Anfrage verwenden kann. Eine Tabellenvariable hat als Gültigkeit einen kompletten Batch, eine temporäre Tabelle sogar darüber hinaus auch die Lebenszeit…

Weiterlesen Weiterlesen

Datenbank und Datum

Datenbank und Datum

In Datenbanken ist ein Datum ein ganz wichtiger Punkt der häufig verwendet werden muss. Dementsprechend gibt es auch viele Möglichkeiten ein Datum ein einer Datenbank zu speichern. Leider sieht man auch immer wieder, dass ein Datum als String abgespeichert wird. Ich kenne keinen Fall in dem das sinnvoll wäre. Man verbaut sich damit alle Chancen die ein als Datum typisiertes Feld bietet. Allein schon die Probleme wenn das Datum dann aus verschiedenen Regionen gespeichert wird, in denen vielleicht die Reihenfolge…

Weiterlesen Weiterlesen

Was ist ein Index? (Teil 4)

Was ist ein Index? (Teil 4)

Nachdem wir uns in den Teilen 1 – 3 um die Theorie gekümmert haben und geklärt haben was ein Index ist, soll es jetzt darum gehen wie Indizes überhaupt in der Realität gesetzt werden. Hier hat vermutlich jeder Datenbankdesigner sein eigenes Vorgehen. So ein paar allgemeingültige Regeln bzw. Vorgehensweisen gibt es aber trotzdem die zumindest bedacht werden sollten. Indexdesign Nach dem eine Tabelle entworfen wurde ist der erste Schritt zu überlegen welche Grundform die Tabelle haben soll. Wir müssen überlegen…

Weiterlesen Weiterlesen

Was ist ein Index? (Teil 3)

Was ist ein Index? (Teil 3)

Heap und Clustered Index sind ein erster Schritt im Tabellendesign. Allerdings reihen sie noch nicht aus um effizient auf Daten zugreifen zu können und das ist ja da eigentliche Ziel von Indizes. Die Abfragen sollen schnell werden. Mit dem Clustered Index können wir schon bestimmte Abfragen beschleunigen. In den meisten Fällen reicht das aber noch nicht. Nonclustered Index Um zurück zu dem Beispiel aus Teil 2 zu kommen mit den Adressen. Hier haben wir die Sortierung nach Name, wollen wir…

Weiterlesen Weiterlesen

Was ist ein Index? (Teil 2)

Was ist ein Index? (Teil 2)

Im ersten Teil haben wir kurz gezeigt was ein Baum ist und wie er funktioniert. Jetzt geht es darum wie der SQL Server damit umgeht. Heap vs. Index Eine Tabelle im SQL Server kann auf zwei unterschiedliche Arten gespeichert werden. Als Heap oder als Index. Wird die Tabelle als Index gespeichert spricht man hierbei dann vom Clustered Index. Ein Clustered Index ist also die Tabelle selbst. Insofern kann es ihn auch nur einmal geben pro Tabelle. Der Clustered Index beinhaltet…

Weiterlesen Weiterlesen

Was ist ein Index? (Teil 1)

Was ist ein Index? (Teil 1)

Die Frage „Was ist eigentlich ein Index?“ kann man auf verschiedene Arten beantworten. Im Idealfall sorgt ein Index dafür, dass eine Abfrage durch den SQL Server schneller abgearbeitet werden kann und weniger Ressourcen verbraucht werden. Natürlich gibt es auch eine technische Erklärung dazu. Ein Index ist eine Datenstruktur im SQL Server. Mit Hilfe dieser Datenstruktur können Abfragen effizienter verarbeitet werden. Tabellen Zuerst müssen wir dafür betrachten wie der SQL Server Daten speichert. Ein einfaches CREATE TABLE Statement erzeugt ermöglicht es…

Weiterlesen Weiterlesen