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.

PostgreSQL Grundkurs

Vorteile relationaler Datenbanken

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein Fremd- oder Nachschlageschlüssel stellt einen wesentlichen Vorteil relationaler Datenbanken dar und dient dazu, Beziehungen zwischen einzelnen Tabellen aufzubauen.

Transkript

Nachdem Sie wissen, wie Sie in PostgreSQL eine Datenbank anlegen und in dieser Datenbank Tabellen erzeugen, ja sogar diese verändern können, sind Sie im Grunde soweit, Ihre eigenen Datenbankplanungen umzusetzen. Es ist aber durchaus empfehlenswert, nicht einfach direkt mit der Datenbank zu beginnen und das Ganze praktisch umzusetzen, sondern sich zunächst einmal zu überlegen, wie soll überhaupt meine Datenbank und die Tabellen, die sich darin befinden, inklusive der Datensätze strukturiert und aufgebaut sein. Dafür gibt es im Großen und Ganzen zwei mögliche Planungsszenarien, nämlich das eine nennt sich das sogenannte ER-Modell, Entity-Relationship-Modell. Hier spricht man von Entitäten und meint damit im Grunde die Tabellen und stellt grafisch die Beziehungen zwischen diesen einzelnen Tabellen dar. Die zweite Variante, die ich persönlich bevorzuge, ist die sogenannte theoretische Schreibweise und die sieht so aus. Wenn Sie sich das mal anschauen, dann ist da eine große Ähnlichkeit mit vielleicht auch Schreibweisen, die Sie bereits aus der Schulzeit kennen und zwar aus der Mathematik. Vielleicht erinnern Sie sich an solche Beschreibungen wie F(X,Y). Wenn Sie sich das hier anschauen und übertragen, dann ist F von (X,Y,Z, irgendwas anderes) genau das Gleiche wie kunden(kunden_id, name, vname, geburtsdatum). Diese Schreibweise kommt eigentlich tatsächlich aus der Mathematik und zwar aus der relationalen Datenbank Algebra. Sie ist hervorragend dafür geeignet, tatsächlich eigene Datenbankplanungen vorzunehmen. Worauf muss man da achten? Das Projekt, was mir so vorschwebt, ist eine einfache Verwaltung von Kundenadressen und Personaladressen und einer kleinen Projektdatenbank. Das heißt, wir brauchen zwei weitere Tabellen, nämlich die Tabelle Personal und die Tabelle Projekt. Und Sie sehen, dass die einzelnen Spaltenbezeichner immer in der runden Klammer stehen und bei der Tabelle Kunden und auch bei der Tabelle Personal nahezu identisch sind. Das einzige, was sich unterscheidet ist eben der Hinweis auf die Kunden ID und die Personal ID. Ich will damit nur verdeutlichen, dass ist auch kein Problem ist, gleiche Spaltenbezeichner in den Tabellen zu verwenden. Das ist der Datenbank oder dem Datenbankserver völlig egal. Wichtig ist allerdings für die weitere Vorgehensweise, dass wir uns auf die Tabelle Personal und Projekt konzentrieren, denn die ist im Großen und Ganzen am wichtigsten vom Verständnis her. Trotz alledem nur mal ganz kurz zur Kundentabelle zurück. In der Kundentabelle ist das erste Attribut die Kunden ID sicherlich sinnvoll zu belegen mit dem bereits bekannten Primary Key, dem Primärschlüssel, denn ein Kunde, eine Kundennummer sollte möglichst auch nur einmal in einer Tabelle vorkommen. Sobald sie mehrfach vorkommt, ist sie wertlos. Dann die gesamten anderen Attribute wie name, vname, geburtsdatum, die sind vom Inhalt her eigentlich völlig egal. Da können Wiederholungen vorkommen, da können auch einfach leere Zellen stehen, je nachdem, was die Datenbank zulässt, aber für die Planung, für das, was dort eingetragen wird, ist das völlig wurscht. Das erklärt vielleicht auch so ein kleines bisschen, warum es manchmal, wenn Sie mit Datenbank Designern sprechen, warum die die Hände über'm Kopf zusammenschlagen, wenn Sie eine Änderung wünschen und das nächste Mal sagt man, ja, ist überhaupt kein Problem. Es ist nämlich dann überhaupt kein Problem, wenn Sie nur einfache Attribute hinzufügen oder löschen müssen. Es wird aber zu einem richtigen Problem, sobald Sie Schlüsselfelder ändern müssen, wie hier angegeben durch Kunden ID, Personal ID und Projekt ID. Nun gut, wie gehen wir da weiter? Konzentrieren wir uns mal auf die Tabelle Personal. Und da sieht das ja so aus, wenn man sich das bildlich vorstellt, dass die Personal ID später eine Nummer wird. Dann kommt eben name, vorname, geburtsdatum, also hier angedeutet durch Max Mustermann und dann das nächste Personal, oder die nächste Mitarbeiterin ist die Nummer 57, die Susi Schmidt, usw. Im Projekt sieht es ähnlich aus. Hier haben wir die Projekt ID, dann eine Bezeichnung und den Projektleiter. Ich bezeichne das Projekt einfach mal als 22. Das ist der Messeauftritt und der Betreuer, der Projektleiter, ist der Max Mustermann. Jetzt wird sofort deutlich, dass der Max Mustermann ein Mitarbeiter ist, der in der Tabelle Personal gespeichert wurde. Und wenn ich das nun in der Tabelle Projekt so eintrage, wie Sie es hier sehen, dann habe ich damit gleich mehrfach Probleme, denn zum einen muss man wissen, dass in einer Datenbank Text weitaus mehr Speicherplatz belegt wie einfach Zahlenwerte. Das ist Punkt Nummer eins. Punkt Nummer zwei und der ist aber noch viel gravierender, denn diese beiden Werte müssen absolut identisch sein. Wenn ich das nicht korrekt eintrage, werde ich später bei den Datenbankabfragen Riesenprobleme bekommen. Stellen Sie sich mal vor, ich möchte eine Abfrage starten, bitte gib mir alle Projekte aus, die der Max Mustermann beinhaltet oder leitet. und wenn ich da anstelle Max Mustermann einen Mik Mustermann eingetragen habe, weil ich mich einfach vertippt habe oder ich habe gedacht, der heißt so, dann werde ich niemals die Projekte von Max Mustermann angezeigt bekommen. Und ganz abgesehen davon haben wir noch ein drittes Problem nämlich sogenannte, ich sage da immer Datenleichen zu, weil es kann überhaupt kein Mik Mustermann Projektleiter des Messeauftritts sein, weil ich überhaupt keinen Mitarbeiter habe, der so heißt. Also gleich mehrfache Probleme, die allein nur durch die Eingabe eines normalen Textes entsteht. Viel sinnvoller ist es, diese beiden Tabellen miteinander in Beziehung zu setzen und da sind wir jetzt bei einem ganz wichtigen Punkt. Über die Schlüsselwerte. Das heißt, anstatt das über den Text und den Namen zu machen, der ja sowieso in der Tabelle Personal auch noch zwei Attribute darstellt und in der Tabelle Projekt als ein Attribut bezeichnet wird, ist es viel sinnvoller, diese Verbindung und Beziehung über die Personal ID, also den Primary Key zu machen und in der Tabelle Projekt diesen Primary Key aufzurufen. Und jetzt sind wir bei dem zweiten wichtigen Begriff. In der Tabelle Projekt ist genau dieser Schlüsselwert der Foreign Key, also der Nachschlageschlüssel. Und jetzt habe ich zwar immer noch die Gefahr, dass ich theoretisch gesehen, wenn ich das eingeben müsste, einen falschen Wert eingebe. Ich könnte hier auch sagen, ok, da gebe ich jetzt mal 54 ein, aber hier greift der Datenbankserver des Datenbankmanagementsystem ein und warnt mich und sagt nämlich dann, bei einer korrekten Verknüpfung mit Primary und Foreign Key, dass es den Wert 54 nicht gibt. Und dafür brauche ich nicht extra was zu programmieren. Das macht das Datenbanksystem automatisch. Ganz abgesehen davon, ist es hinterher in der Praxis meist sowieso so, dass Sie dort Pulldown-Felder haben, aus denen Sie dann einfach auswählen können und das erspart schon eine große Gefahr zum Beispiel auch der Falscheingaben etc. Also wenn Sie ein neues Projekt eingeben würden in einer grafischen Oberfläche, dann müssen Sie einen Projektleiter zuordnen zum Beispiel, können aber nur aus einer Liste vorhandener Projektleiter auswählen. Und das, wie gesagt, reduziert Falscheingaben und Fehler, die Benutzer machen, doch ganz erheblich. Genau so ein Projekt werden wir im Folgenden uns einfach mal anschauen und versuchen, mit PostgreSQL umzusetzen.

PostgreSQL Grundkurs

Lernen Sie, wie Sie PostgreSQL in Ihr System integrieren und Datenbanken, Tabellen und Datensätze anlegen und verwalten können.

2 Std. 53 min (28 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:26.01.2017
Aktualisiert am:15.05.2017
Laufzeit:2 Std. 53 min (28 Videos)

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!