Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Grundlagen der Programmierung: Datenbanken

Attribute definieren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wichtige Daten für sämtliche Entitäten werden in Datenbanken als Attribute definiert und in den vorhandenen Tabellen als Spalten festgelegt. Dabei sollten möglichst detaillierte Unterteilungen vorgenommen werden.

Transkript

Wir haben also Entitäten und müssen uns jetzt anschauen, welche einzelnen Daten wichtig sind, um sie zu speichern. In einem Entity-Relationship-Modell spricht man hierbei von Attributen. Und so wie die Entitäten zu unseren Tabellen werden, werden die Attribute, die wir für jede Entität speichern, zu den Spalten in diesen Tabellen. Beim Skizzieren eines ER-Diagramms stellt man die Attribute oftmals so dar, wie hier gezeigt in ovalen Kreisen. Wenn Sie eine Tabelle, wie z. B. eine Mitarbeitertabelle, definieren, tun Sie das in der Regel ziemlich feingliedrig. Das heißt, so individuell wie möglich. Also nicht einfach eine Spalte für den Namen, sondern getrennte Spalten für Vornamen und Nachnamen. Ich benenne hier die Spaltennamen schon auf Englisch, denn ich finde, in der Programmierung ist es guter Stil, Variablen, Funktionsnamen und eben auch Spaltennamen international verständlich zu benennen. Warum teilen wir eigentlich die Namensspalte in "FirstName" und "LastName" auf? Das hängt u. a. damit zusammen, dass Sie diese Bestandteile ggf. auf verschiedene Weise verarbeiten und deshalb gezielt darauf zugreifen möchten. Es ist wesentlich einfacher, alle Mitarbeiter nach dem Nachnamen zu sortieren oder herauszufinden, wie viele Kunden in einer bestimmten Stadt wohnen, wenn Sie diese Datenelemente unabhängig voneinander speichern. Wie sollten wir nun diese Spalten genau benennen? Welche Begriffe sollten sie enthalten? Es gibt hier die unterschiedlichsten Konventionen, wie man die Spalten benennt. Manchmal findet man Unterstriche zwischen mehreren Wörtern, manchmal verwendet man die sogenannte Kamel-Schreibeweise. Das heißt auf Englisch "Camel Case", also mit einem kleinen Anfangsbuchstaben und Großbuchstaben mitten im Wort. Manche bezeichnen die Spalten auf Deutsch, ich bevorzuge Englisch. Wichtig für Ihren Alltag beim Arbeiten mit Datenbanken ist es, dass Sie konsistent in der Namensgebung bleiben. Manche Datenbanken unterstützen übrigens Leerzeichen in Spaltennamen. Ich vermeide sowas, denn wenn Sie sie in Programmen verwenden möchten, müssen Sie sie in Anführungszeichen einschließen und das kann ganz schön nervig sein. Doch die Namensgebung ist nicht alles. Als nächstes müssen sie festlegen, welche Art von Daten in den einzelnen Spalten gespeichert werden sollen. Wie lautet der Datentyp für jede Spalte? Sind es Textdaten, also Worte und Begriffe, oder sind die Werte numerisch, also Zahlen? Handelt es sich um ein Datum, um eine Uhrzeit oder sogar um binäre Daten, das heißt Bild-, Audio- oder Videodaten? Datentypen in einer Datenbank sind also nicht das Gleiche wie die Datentypen in einer Programmiersprache. Es gibt ziemlich viele Datentypen in Datenbanken. Zum Beispiel für MySQL finden Sie allein unter der Rubrik für die numerischen Typen den Unterbereich "Integer" und dort dann ein normales "INT" für Integer, ein "TINYINT", ein "SMALLINT", ein "MEDIUMINT" und den Typ "BIGINT". Die brauchen alle unterschiedlich viel Platz auf der Festplatte. Außerdem unterscheiden sie sich alle in den Wertebereichen und in der Vorzeichenbehandlung. Das heißt, ob Plus- oder auch Minuswerte erlaubt sind. Letztlich müssen Sie genau wissen, wofür jedes Datenelement vorgesehen ist. Brauchen Sie einige Buchstaben, um beispielsweise einen Vornamen darzustellen? Oder wollen Sie den Inhalt eines tausendseitigen Manuskripts speichern? Ziel dieser Festlegung ist eine Spaltendefinition, die eine Spalte so klein wie möglich, aber nicht kleiner macht. Feste Längen lassen sich effizienter verarbeiten. Es liegt aber auf der Hand, dass Sie nicht so flexibel sind. Wenn Sie einen Namen mit 15 Zeichen in einer Spalte unterbringen möchten, die ursprünglich mal für 12 Zeichen definiert war, gehen die letzten drei Zeichen verloren. Viele Datenbanksysteme bieten zudem Optionen, um ASCII-Text und Unicode-Text zu speichern. Deutschsprachige Texte benötigen den Unicode. Sie wissen schon, das liegt an den "Äs", "Ös", "Üs" und so weiter. Deshalb ist diese Variante dringend zu empfehlen. Des Weiteren gibt es die Option zum Speichern von Binärdaten, das heißt, Foto-, Video- und Audiodaten oder auch Tabellenkalkulationen oder Word-Dokumente. Außerdem bringen einige Datenbanken spezielle Methoden mit, um mit sehr großen Binärobjekten umgehen zu können; das heißt, mit Binärdateien, die mehrere Gigabyte umfassen; Full-HD-Videos zum Beispiel. Derartige Typen werden auch als "Binary Large Objects" oder abgekürzt BLOBs bezeichnet. Analog lassen sich auch große Textmengen als "Character Large Objects" oder CLOBs benennen. Nachdem Sie den Datentyp und optional die Länge festgelegt haben, stellt sich eine wichtige Frage. Wenn eine neue Zeile eingefügt wird, ist dann in dieser Spalte ein Wert erforderlich oder ist er optional? Die meisten Datenbanken erwarten standardmäßig, dass alle Spalten Werte enthalten. Doch manchmal ist es gar nicht notwendig. Zum Beispiel können Sie im ersten Adressfeld einen Wert verlangen, aber nicht im zweiten Adressfeld. Hier im Beispiel heißt das "AddressLine1" und "AddressLine2". Diese zweite Spalte definieren Sie dann so, dass Sie NULL-Werte enthalten dürfen. "NULL" ist ein wichtiges Schlüsselwort in relationalen Datenbanken. Ein NULL-Wert ist nicht dasselbe wie eine Null. Also NULL, in Großbuchstaben N-U-L-L, bedeutet das vollständige Fehlen eines Wertes. Für Spalten kann man festlegen, dass sie NULL-Werte zulassen oder umgekehrt, was typischer ist, dass sie nicht NULL sein dürfen. Eine Frage: Was passiert, wenn Sie keinen Wert für eine Spalte bereitstellen? Kann dann automatisch ein Standardwert in die Spalte eingetragen werden? Zum Beispiel könnte ich sagen, wenn ich eine neue Mitarbeiterzeile anlege und ich in die Spalte des Einstellungsdatums nichts eingebe, wird das heutige Datum als Standardwert genommen. In diesem Zusammenhang lassen sich auch Einschränkungen festlegen, um eingegebene Werte in Bezug auf Maximal- oder Minimalwerte, zu überprüfen. Sie können auch definieren, soll der Wert einem Muster entsprechen, etwa einer E-Mail-Adresse, einer Telefonnummer oder einer Kreditkartennummer. Flexibilität ist gut, aber den meisten relationalen Datenbanken ist es nicht geheuer und deswegen auch nicht erwünscht. Wenn Sie eine E-Mail-Adresse für einen Mitarbeiter speichern möchten, wollen Sie genau wissen, ob es sich um eine E-Mail-Adresse handelt oder nicht doch um seine Faxnummer. Am Ende haben Sie hoffentlich für jede Tabelle, sprich jede Entität, eine vernünftige Liste der anzulegenden Spalten und der Daten, die in jeder Spalte erlaubt sind. Die Spalten so genau wie möglich zu definieren, heißt, dass Ihre Datenbank diese Regeln auf diesen Spalten durchsetzt, dass Ihre Daten gültig und konsistent bleiben und dass Sie letztlich nicht mit einer Datenbank voller Müll dastehen.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!