Wir arbeiteten dort mit dem Microsoft SQL Server als Datenbank.
Das Programm
Der Microsoft SQL Server (kurz: MSSQL) ist ein relationales Datenbankmanagementsystem von Microsoft. Die erste Version erschien 1989 und ist in Zusammenarbeit mit Sybase enstanden. 1999 erschien dann die Version 7.0, die nur noch von Microsoft war und eine vollkommen neue Datenbankengine enthielt. Dies war dann die Basis aller darauffolgenden Versionen. MSSQL orientiert sich am aktuellen Standard der SQL Version. Den Microsoft SQL Server gibt es in verschiedenen Editionen, die ein vielfältiges Angebot abdecken.
MSSQL verwendet für Datenbankabfragen Transact-SQL (T-SQL). Hauptmerkmal von T-SQL ist zusätzliche Syntax im Gebrauch von Stored Procedures (zu Deutsch: gespeicherte Prozedur, speichert eine Abfolge von Befehlen). Zudem bietet Microsoft eine Reihe von Techniken an, um Daten gezielt redundant zu speichern und somit eine Art Ausfallsicherheit zu erhalten.
Auch bietet MSSQL eine ganze Reihe von Datentypen an:
Auch bietet MSSQL eine ganze Reihe von Datentypen an:
Unterstützte Datentypen (Zum Vergrößern klicken) |
Die Sprache
Im Gegensatz zu SQLiteman, das ich im zweiten Semester genutzt habe, ist SQL in MSSQL sehr viel umfangreicher genutzt.
Inner Join:
Ein wichtiger Bestandteil von Abfragen ist das Inner Join (oder nur Join). Mit dem kann man eine Abfrage erstellen, bei der mehrere Tabellen (mit Fremdschlüsseln) genutzt werden. Das Join verbindet zum Beispiel den Fremdschlüssel in der Tabelle 1 mit dem Primärschlüssel der Tabelle 2 (auf den der Fremdschlüssel zeigt), so dass als Ausgabe in der Tabelle 1 anstelle des Fremdschlüssels der Wert aus der Tabelle 2 steht.
Beispiel:
So sieht das Grundgerüst aus:
SELECT <spaltenliste> FROM <haupttabelle>
JOIN <verknüpfte tabelle> ON <bedingung>
So könnte es dann verwendet werden:
SELECT Name, Vorname, Klasse FROM Schüler
JOIN Klassen ON Schüler.KlassenID = Klassen.KlassenID
Die Ausgabe wäre dann die Tabelle Schüler mit Namen und Vornamen aus der Schüler-Tabelle, sowie die jeweilige Klasse aus der Klassen-Tabelle.
Das Inner-Join ist nur eine Art des Join im MSSQL, Es gibt noch andere wie Right- und Left-Join, die, wie der Name schon sagt, entweder alles aus der rechten Tabelle sowie die Schnittmenge oder alles aus der linken Tabelle sowie die Schnittmenge anzeigen
![]() |
Join-Variationen (Zum Vergrössern klicken) |
Normalisierung
Unter Normalisierung versteht man das Aufteilen von Attributen (Tabellenspalten) in mehrere Tabellen entsprechend der Normalisierungsregeln, damit eine Form entsteht, die keine Redundanzen mehr aufweist, die man vermeiden könnte. Dabei soll vor allem in der Entwurfsphase normalisiert werden. Die derzeit gebräuchlichen Normalformen sind die erste, zweite und dritte Normalform.
Wenn ein Datenbankschema keine Anomalien aufweist, die zum Beispiel die erste Normalform vorgibt, spricht man davon, dass es in erster Normalform vorliegt.
Erste Normalform (1NF)
Definition:
Jedes Attribut der Relation muss einen atomaren Wertebereich haben und die Relation muss frei von Wiederholungsgruppen sein.
Bedeutung:
Zusammengesetzte Werte oder geschachtelte Wertebereiche sind nicht erlaubt. Beispielsweise dürfen in der Tabelle Adressen nicht die Strasse und die Postleitzahl in einem Feld sein. Jeder Wert muss einem eigenem Attribut angehören.
Zweite Normalform (2NF)
Definition:
Definition:
Eine Relation ist in der zweiten Normalform, wenn die erste Normalform vorliegt und kein Nichtschlüsselattribut funktional abhängig von einer echten Teilmenge eines Schlüsselkandidaten ist.
Bedeutung:
Die erste Normalform muss erfüllt sein.
Jedes Attribut, das nicht der Primärschlüssel ist, muss von allen Schlüsseln vollständig abhängig sein.
Jedes Attribut, das nicht der Primärschlüssel ist, muss von allen Schlüsseln vollständig abhängig sein.
Dritte Normalform (3NF)
Definition:
Die dritte Normalform ist genau dann erreicht, wenn sich das Relationenschema in 2NF befindet und kein Nichtschlüsselattribut von einem Schlüsselkandidaten transitiv abhängt.
Bedeutung:
Die zweite Normalform muss erfüllt sein.
Bedeutung:
Die zweite Normalform muss erfüllt sein.
Ein Nichtschlüsselattribut darf nicht von einer Menge aus Nichtschlüsselattributen abhängig sein, sondern muss immer direkt von einem Primärschlüssel abhängig sein.