Frage

Ich weiß, relationale Datenbank ist eine Datenbank, wo die Felder in einer Tabelle mit Zeilen in den anderen verknüpfen, so etwas wie diese.

Aber ich kann nicht verstehen, was es für mich bedeutet als Web-Entwickler!

Wie ich weiß, eine Abfrage mit Joins und verschachtelte Select können perfomance reduzieren (insbesondere Drupal-Stil-Abfragen mit Dutzenden von Joins). Noch mehr, alle Anfragen an die DB sind Engpässe, und Sie dann haben viele Benutzer müssen Sie jedes ausgewählte Anfrage zwischenzuspeichern.

Wenn Sie jede Auswahl Cache-Anforderung, ist es besser, einfache Anfragen zwischenzuspeichern und nicht kompliziert. Sie können entweder Cache "select * from tbl1 wo id = 123" und "select * from tbl2 wo id = 456" oder "select * from tbl1, tbl2 wo ...", aber wenn man den zweiten Weg wählen, werden Sie muß jede Kombination von Objekten cachen -. es ist nicht cool

Ok, jetzt benutzen wir nur sehr einfache Abfragen wie „select * from tbl1 wo id = 123“ von „select id aus tbl1 Auftrag von id Grenze 0, 30“ und cachen sie (oder wir können nur den ersten Typ-Cache Abfragen, was auch immer). Es Abfragen und nicht weniger einfache INSERT, DELETE und UPDATE sind alle, was wir brauchen, und alles, was wir verwenden!

Wie wir sehen können, alle relationalen Logik sind in der Hauptsprache der Anwendung, nicht in SQL. Also, warum brauchen wir diese alle relationalen Dinge? Was meinen sie? Was tun „relational“ Typ hat, was andere Arten nicht, aber es ist erforderlich? Wenn wir nicht relationale Eigenschaften, warum jeder noch verwenden MySQL oder was auch immer relationale Datenbanken, auch wenn er über die Perfomance kümmern?

Diese Art von Datenbanken hat sich zu einem Standard geworden. Warum? Ich habe keine Ahnung. Ich habe kaum jemals gehört, über jemanden mit nicht-relationale Datenbank, mit Ausnahme der auf in GAE.

Bin ich etwas fehlt?

War es hilfreich?

Lösung

Wenn Sie über das, was relationale Mittel lernen wollen, ich das Buch empfehlen „ SQL und Relational Theory “von CJ Datum.

Relational in diesem Zusammenhang nicht , um Beziehungen beziehen. Er bezieht sich auf Beziehungen , die im Grunde sind das, was Tabellen in den mathematischen Theorien genannt werden, die auf die relationales Modell .

Der Grund, dass relationale Datenbanken allgegenwärtig geworden ist, dass sie die Allzwecklösung für die Organisation von Daten mit minimaler Redundanz sind.

Es gibt gute Gründe, nicht-relationale Lösungen zu verwenden. Sie lösen oft spezifische Aufgaben der Datenverwaltung sehr gut, aber schwach in anderen Bereichen. Während SQL und relationale Datenbanken schlagen einen Kompromiss, eine größere Reihe von Problemen zu lösen angemessen, mit weniger Schwachstellen.

Andere Technologien, die derzeit zur Verfügung, die nicht auf dem relationalen Modell beruht, sind aufgelistet in „ Die Next-Gen-Datenbanken . "

Andere Tipps

Ich bin von Ihrer Frage verwirrt. Wie sonst Ihnen vorschlagen, Sie verfolgen, wie verschiedene Tabellen beziehen sich auf einander?

zum Beispiel, habe ich eine Liste von Autos, und eine Liste von Menschen, und ich brauche, um eine Verbindung, welche Person jedes Auto besitzt, so hat ich eine car_ID Spalte in der Person Datenbank. Wie würde vorschlagen dieser Beziehungen

Verfolgen

Auch, sagen Sie, dass Sie alle Abfragen sind Engpässe "gecached werden sollen, und Sie wollen nur‚einfache‘Abfragen cachen. Aber ich bin 90% sicher, dass mehrere kleine Abfragen machen intensive ressourcen sein wird als mehrere kleinere Abfragen machen. Sie müssen nicht jede Kombination zwischenzuspeichern, nur diejenigen, die tatsächlich existieren. in meinem Beispiel, was mit einer Abfrage wie dies falsch ist?

SELECT person.*, car.* from person left join on car where person.car_ID = car.ID

Relationale Datenbanken hat die de-facto-Datenbank für eine Reihe von Gründen wird.

  1. Einrichten von Primär-, Außen- und eindeutige Einschränkungen bestimmte Geschäftsregeln auf der niedrigsten Ebene erzwingt, hilft Daten integrety zu gewährleisten, und macht die Datenbankbeziehungen leicht verständlich auf fast jede Ebene der IT-Profi.

  2. Ein richtig relationale Datenbank konzipiert ist in der Tat schneller hinter den Kulissen für viele Verfahren (nicht alle).

  3. Die Abfrage von relationaler Datenbank ist ziemlich schnell zu erlernen und einfach zu tun.

  4. Relationale Datenbanken Hilfe Limit Datenduplizierung und von einer Datentechnischer Sicht, das ist eine wunderbare Sache.

und viele andere, aber diese sind einige zu nennen.

Wenn Sie keine Beziehungen verwenden, müssen Sie alles in einem riesigen Tisch von Spalten mit zahlreichen Nummern speichern. Oder Sie können einen Datenwürfel verwenden (ich glaube?)

Es ermöglicht Ihnen, Ihre Daten zu normalisieren und redanancy entfernen. Anstatt alle Daten zu speichern, in einem flachen Tisch (wie eine Excel-Tabelle), speichern Sie unterschiedliche Daten in separaten Tabellen und beziehen sie dann miteinander.

Zum Beispiel können Sie speichern Benutzer in einer Benutzertabelle und Produkte in einer Tabelle Produkte und dann eine Beziehungstabelle verwenden, um zu beziehen, welche Nutzer welche Produkte bestellt werden.

  

UserA -> ProduktA

     

UserA -> ProduktB

     

BenutzerB -> ProduktA

     

UserC -> ProduktB

Mit normalisierten Daten, bedeutet es, wenn Datenänderungen, es braucht nur an einem Ort aktualisiert werden. Wenn ein Benutzer ändert ihren Namen, nur dass der Benutzerdatensatz ändert. Wenn ein Produktpreis muss angehoben werden, nur das Produktdatensatz ändert. Sie müssen nicht für doppelte Daten haben Ihren flachen Tisch scheuern suchen zu ersetzen.

Walja, wenn die Daten in der Anwendung nicht, aktualisiert oder gelöscht werden hinzugefügt, dann ist ein Cache der schnellste Weg, um es zu suchen und anzuzeigen. Ich bin neugierig zu wissen, was diese Daten ist, dass jeder so eilig ist, zu sehen, wird aber nicht aktualisiert werden? Vielleicht würde helfen, einige Details. Ich kenne jemand, der seine gesamte Datenbank im Speicher mit einer Write-Through-Cache gespeichert, und ja, es flog! Er ist der einzige Entwickler Ich weiß, wer diese durchziehen konnte. Vielleicht müssen Sie den Raketenmotor neu zu erfinden, und vielleicht auch nicht.

Beziehung ist das mathematische Wort für Tisch. Spalten sind in Beziehung zueinander, da sie sich nicht in der gleichen Tabelle waren.

Zum Beispiel zwei Zahlen in Beziehung zueinander sind, wenn sie ein Vielfaches von 3. Lassen Sie uns unterscheiden einige von ihnen aufschreiben: (0,0), (1,4), (2, -1), usw. zu sehen. Sie können eine Sammlung von Zeilen erscheinen, die eine Tabelle ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top