Alle Unternehmen speichern Daten aus einem einfachen Rekordbuch eines kleinen Unternehmens, vielleicht sogar in einem Journal oder einem Blatt Papier,
bis hin zu großen Unternehmen wie Amazon, die Computer benötigen, um Petabyte an Daten zu speichern.
Um diese Informationen zu speichern, benötigt so ziemlich jedes Unternehmen und manchmal auch Einzelpersonen eine
sogenannte Datenbank.
Wir haben im letzten Abschnitt gesehen, wie schwer es war, unseren Server an einen neuen Benutzer zu erinnern.
Jedes Mal, wenn der Server abstürzt, wird die Variable zurückgesetzt und dann beginnt alles von vorne.
Oder wenn wir uns anmelden oder signieren und die E-Mails und Passwörter überprüfen und durchlaufen wollten, eine Schleife
durch JavaScript durchzuführen, ist das ineffizient.
Hier kommt die Datenbank zur Rettung.
Fragen wir uns also, was ist eine Datenbank?
Eine Datenbank ist eine Sammlung von Daten.
Und was wir mit Daten meinen, es gibt viele Formen davon, richtig, es können Zahlen
sein, es können Daten sein, es könnten Passwort-Hashes sein, es könnten Benutzerinformationen sein.
Datenbanken ermöglichen es uns, diese Daten auf eine für uns nützliche Weise zu organisieren und die Datenverwaltung zu
vereinfachen.
Und daraus ist etwas entstanden, und es heißt Database Management System, kurz DBMS.
Es ist eine Sammlung von Programmen, die es uns ermöglicht, auf Datenbanken zuzugreifen und mit Daten zu arbeiten, und
es ermöglicht auch den Kontrollzugriff für Datenbankbenutzer.
Ein DBMS ist also etwas in dieser Box.
Etwas, das uns ein Werkzeug ermöglicht, eine Software, die es uns ermöglicht, zu kommunizieren.
Mit der Datenbank speichern Informationen, die für uns nützlich sind und es uns auch ermöglichen, zu aktualisieren, einzufügen, zu löschen, nachzuschlagen, was auch
immer in der Datenbank ist, und diese Idee eines DBMS nahm in den 1960er Jahren wirklich Gestalt an und steht jetzt an
der Spitze der Entwicklung viele spannende Dinge.
Es gibt eine ganze Branche von Ingenieuren, die nur mit Datenbanken arbeiten, weil es so wichtig ist.
Es gibt zwei Arten von DBMS, die derzeit sehr beliebt sind und über die wir in diesem Kurs sprechen
werden.
Und diese beiden Typen werden von Postscripts und Mongo DB sehr gut repräsentiert.
Lassen Sie uns über die erste sprechen, die eine relationale Datenbank ist.
Und dies ist wahrscheinlich das beliebteste.
Wie Sie auf der rechten Seite sehen können.
Sie sehen, dass all dies relationale Datenbanken, Postgraduierte Oracle, SQL Server sind.
Sie haben vielleicht schon von MySQL, Escorial Lite gehört.
Dies sind alles Arten von Datenbanken, die dieses relationale Datenbank-Tag haben, und das Schöne an ihnen ist, dass sie
alle ziemlich ähnlich sind.
Sie alle folgen dem gleichen Standardformat.
Relationale Datenbanken bestehen aus zwei oder mehr Tabellen mit Spalten und Zeilen.
In diesem Fall ist der Benutzer eine Tabelle und der vollständige Name, der Text des Benutzernamens, der in unseren Spalten erstellt wurde, und
alle Werte, die sie hier haben, sind Zeilen.
Jede Zeile steht für einen Eintrag in jeder Spalte.
Es handelt sich also um eine ganz bestimmte Art von Informationen wie Name, Adresse oder Telefonnummern.
Und dann die Beziehung zwischen Tabellen und Feld.
In einer relationalen Datenbank wird es als Schema bezeichnet. Das Schema muss klar definiert sein, bevor Informationen hinzugefügt werden
können.
Und wenn das jetzt verwirrend ist, keine Sorge, wir werden diese Datenbanken tatsächlich erstellen, damit es für
Sie sinnvoll ist.
Wenn wir zum Beispiel Twitter hätten, können Sie hier sehen, welche Arten von Tabellen wir haben und wie wir
sie organisieren würden.
Wir hätten einen User Stable, eine Tweet-Tabelle, eine folgende Tabelle.
Und wir können all diese Informationen verbinden, indem wir beispielsweise verschiedene Teile der Tabelle verbinden.
Der Benutzername ist beispielsweise in der Benutzertabelle derselbe wie in der Tweets-Tabelle.
Auf diese Weise können wir sagen, dass der Benutzername und die Tweets-Tabelle der Fremdschlüssel des Benutzernamens in der Benutzertabelle und
dann von Benutzer ist.
Wird der Fremdschlüssel des Benutzernamens in der folgenden Tabelle sein.
Dinge wie der vollständige Name oder die ID, die jede Zeile in einer Tabelle identifiziert, werden als Primärschlüssel bezeichnet, und wir werden
später in diesem Abschnitt darauf eingehen.
In Ordnung, all diese Datenbanken werden wir über Postkrisen-Cual lernen, aber sie sind alle ziemlich
gleich.
Wenn Sie also einen kennen, ist es ziemlich einfach, die anderen aufzunehmen.
Wie kommunizieren sie eigentlich mit einem Server mit dem Backend?
Nun, alle relationalen Datenbanken verwenden etwas, das als obscur bezeichnet wird.
Und bittet euch alle erlaubt uns zu kommunizieren, so wie es HTP zwischen dem Frontend und dem
Backend gemacht hat, mit euch konntet ihr alle mit der Datenbank kommunizieren und modifizieren oder abrufen oder aktualisieren, wie wir wollen.
Und wir werden auch ein Video zu diesem Thema haben.
Gut.
Das sind also relationale Datenbanken.
Was ist mit der zweiten Art?
Der zweite Typ heißt nicht-relationale Datenbank oder keine ESKIL-Datenbank, und noch einmal gibt es viele, viele verschiedene Arten
von Datenbanken mit einigen coolen Namen wie Kotb und Hyper Table.
Jetzt können Sie mit einer Mongo-DB oder einer nicht relationalen Datenbank eine Anwendung erstellen, ohne zuerst das
Schema definieren zu müssen, im Gegensatz zu einer relationalen Datenbank.
Wenn wir zur relationalen Datenbank zurückkehren, müssen dieses Schema oder diese Tabellen irgendwie vordefiniert sein, oder?
Wir müssen wissen, wie unsere App aussehen wird. Erstellen Sie diese Tabellen, damit wir nach der Veröffentlichung der
App Benutzerinformationen sowie Tweets und Follower eingeben können.
Ohne Entschuldigung oder ohne relationale Datenbank können wir sie einfach definieren, und sie alle haben unterschiedliche Möglichkeiten,
diese Informationen zu speichern.
Jeder ist also sehr, sehr unterschiedlich.
Und dies ist ein weiterer wichtiger Grund für die Verwendung einer nicht relationalen Datenbank: Wenn Ihre
Datenanforderungen zu Beginn Ihres Projekts nicht klar sind und Sie möglicherweise über eine riesige Menge unstrukturierter Daten verfügen, können Sie
sich möglicherweise nicht den Luxus leisten, eine relationale Datenbank zu entwickeln Datenbank mit einem klar definierten Schema.
Sie bieten stattdessen eine größere Flexibilität, da eine nicht relationale Datenbank eher Ordnern ähnelt, die nur
verwandte Informationen aller Art zusammenstellen.
Nun ist Mongo DB etwas, das als dokumentenorientiert bezeichnet wird, es speichert Informationen als Dokumente.
Lassen Sie mich Ihnen diesen Punkt veranschaulichen.
Ich habe hier meinen Desktop mit zwei Ordnern.
Eine ist eine wirklich relationale Datenbank und hier haben Benutzer Tweets, Profilfolgen.
Und Sie können sich relationale Datenbanken mit dieser Art von Speicherung vorstellen, bei denen sich dieser Ordner irgendwo auf einem Computer
befindet, der diese Informationen speichert, und jedes Mal, wenn wir eine Datenbank nach etwas fragen müssen, greifen wir
die Benutzer an.
Und wenn wir auch die Tweets des Benutzers erfassen wollen, finden wir den Benutzer, der uns
interessiert, dann finden wir die Tweets des Benutzers, der uns auch interessiert, mit dem Fremdschlüssel, der auf die Benutzer verweist.
Und wir können auch finden, wie viele Follower dieser Benutzer hat.
Wir erfassen diese Informationen und zeigen sie in unserer Web-App an.
Mongo DB hingegen hat tatsächlich jeden Benutzer als Dokument.
Wenn ich mir also den ersten Benutzer schnappen wollte, naja, ich habe mir einfach dieses Dokument geholt und es
hat alle Follower, die Tweets, das Profil, alles ist in diesem einen Dokument.
Und Sie denken vielleicht, dass Mongo DB eine bessere Wahl ist, als diese zu haben.
Art, die Dinge richtig zu machen.
Nun, es hängt von Ihrem Bedarf ab, und deshalb sind Datenbanken ein so komplexes Thema.
Es hängt wirklich sehr von Ihrer Situation ab.
Sie können sehen, dass dieser Mongo DB-Weg sehr nützlich ist, wenn Sie so etwas wie ein Profil haben, vielleicht ein
LinkedIn-Profil.
Aber wenn Sie etwas brauchen, bei dem Sie nur mit folgenden Daten arbeiten oder nur mit Tweets-Daten arbeiten, möchten
Sie vielleicht bei den Tweets sehen, wie groß die durchschnittliche Tweet-Größe ist?
Nun, es ist wirklich einfach, sich diese Datei zu schnappen und das im Vergleich zu dieser Methode zu berechnen, bei der
Sie sie möglicherweise von jedem der Benutzer extrahieren müssen.
Es hängt also wirklich von Ihren Bedürfnissen ab.
Lassen Sie mich Ihnen ein anderes Diagramm zeigen, das sein könnte.
Sinnvoll.
Wenn wir relationale und nicht relationale Datenbanken betrachten, können Sie sich relationale Datenbanken vorstellen, da jede Tabelle einen
Blog-Beitrag, ein Blog-Tag, einen Blog-Kommentar enthält und diese Tabellen verknüpft, um Ihnen die Blog-Informationen zu liefern, im Gegensatz zu
einer nicht-relationalen, die das Ganze speichert Blog-Post in einem Eintrag und hat Kommentare, Steuerkategorien und alle anderen
zugehörigen Daten an einem einzigen Ort.
Was verwendet Mongo DB also, um zu kommunizieren?
Wenn wir hier auf unser Beispiel zurückkommen, mussten wir Sie alle nach relationalen Datenbanken wie postcrisis oder Mongo
fragen.
DB hat seine eigene Abfragesprache, und es ist nur die Mongo DB-Abfragesprache.
Beide zielen jedoch darauf ab, dasselbe zu tun, nämlich mit der Datenbank zu kommunizieren und
dem Server eine einfache Möglichkeit zu bieten, mit der Datenbank zu kommunizieren.
Und in diesem Abschnitt werden wir darüber sprechen und wir werden endlich die Punkte verbinden und
Ihnen die Leistungsfähigkeit von Datenbanken zeigen, sobald sie mit einem Server verbunden sind.
Wir sehen uns im nächsten.