Lassen Sie mich zunächst sagen, warum wir eine Datenbank benötigen.
Wir benötigen eine Datenbank, um Informationen so zu organisieren, dass wir die gespeicherten Daten effizient abrufen können.
Beispiele für relationale Datenbankverwaltungssysteme (SQL):
1) Oracle-Datenbank
2) SQLite
3) PostgreSQL
4) MySQL
5) Microsoft SQL Server
6) IBM DB2
Beispiele für nicht relationale Datenbankverwaltungssysteme (NoSQL)
1) MongoDB
2) Cassandra
3) Redis
4) Couchbase
5) HBase
6) DocumentDB
7) Neo4j
Relationale Datenbanken haben normalisierte Daten, da Informationen in Tabellen in Form von Zeilen und Spalten gespeichert werden. Wenn Daten in normalisierter Form vorliegen, hilft dies normalerweise, die Datenredundanz zu verringern, und die Daten in Tabellen stehen normalerweise in Beziehung zueinander Wenn wir die Daten abrufen möchten, können wir die Daten mithilfe von Join-Anweisungen abfragen und Daten nach Bedarf abrufen. Dies ist geeignet, wenn wir mehr Schreibvorgänge, weniger Lesevorgänge und nicht viele Daten benötigen. Dies ist auch relativ einfach Aktualisieren Sie Daten in Tabellen als in nicht relationalen Datenbanken. Horizontale Skalierung nicht möglich, vertikale Skalierung bis zu einem gewissen Grad möglich. Konformität mit CAP (Konsistenz, Verfügbarkeit, Partitionstoleranz) und ACID (Atomizität, Konsistenz, Isolation, Dauer).
Lassen Sie mich anhand von PostgreSQL als Beispiel die Eingabe von Daten in eine relationale Datenbank zeigen.
Erstellen Sie zunächst eine Produkttabelle wie folgt:
CREATE TABLE products (
product_no integer,
name text,
price numeric
);
Fügen Sie dann die Daten ein
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);
Schauen wir uns ein anderes Beispiel an:
Hier in einer relationalen Datenbank können wir die Schülertabelle und die Betreff-Tabelle mithilfe von Beziehungen über einen Fremdschlüssel und eine Betreff-ID verknüpfen. In einer nicht relationalen Datenbank müssen jedoch keine zwei Dokumente vorhanden sein, da keine Beziehungen vorhanden sind. Daher speichern wir alle Betreff-Details und Studentendetails in einem Dokument sagen Studentendokument, dann werden Daten dupliziert, was das Aktualisieren von Datensätzen schwierig macht.
In nicht relationalen Datenbanken gibt es kein festes Schema, Daten werden nicht normalisiert. Es werden keine Beziehungen zwischen Daten erstellt. Alle Daten werden meist in einem Dokument gespeichert. Gut geeignet für den Umgang mit vielen Daten und kann viele Daten gleichzeitig übertragen. Am besten, wenn große Lese- und Schreibvorgänge sowie weniger Aktualisierungen schwierig sind, Daten abzufragen, da kein festes Schema vorhanden ist. Horizontale und vertikale Skalierung ist möglich. Konformität mit CAP (Konsistenz, Verfügbarkeit, Partitionstoleranz) und BASE (grundsätzlich verfügbar, weicher Zustand, eventuell konsistent).
Lassen Sie mich ein Beispiel für die Eingabe von Daten in eine nicht relationale Datenbank mit Mongodb zeigen
db.users.insertOne({name: ‘Mary’, age: 28 , occupation: ‘writer’ })
db.users.insertOne({name: ‘Ben’ , age: 21})
Daher können Sie das in der Datenbank mit dem Namen db verstehen, und es gibt Sammlungen mit dem Namen users und ein Dokument mit dem Namen insertOne, zu dem wir Daten hinzufügen, und es gibt kein festes Schema, da unser erster Datensatz 3 Attribute und das zweite Attribut nur 2 Attribute hat Dies ist in nicht relationalen Datenbanken kein Problem, in relationalen Datenbanken jedoch nicht, da relationale Datenbanken ein festes Schema haben.
Schauen wir uns ein anderes Beispiel an
({Studname: ‘Ash’, Subname: ‘Mathematics’, LecturerName: ‘Mr. Oak’})
Daher können wir in nicht relationalen Datenbanken sehen, dass wir sowohl Schülerdetails als auch Fachdetails in ein Dokument eingeben können, da in nicht relationalen Datenbanken keine Beziehungen definiert sind. Hier kann dies jedoch zu Datenverdopplungen führen, und daher können Fehler bei der Aktualisierung auftreten.
Hoffe das erklärt alles