Was ist eine relationale Datenbank? [geschlossen]


9

Ich bin meistens ein Systemadministrator und arbeite nicht direkt mit anderen Datenbanken als der Installation, dem Einrichten von Konten, dem Gewähren von Berechtigungen usw. Mir wurde klar, dass wenn The Boss auf mich zukam und fragte: "Was ist eine relationale Datenbank?" Ich konnte wahrscheinlich keine zufriedenstellende Antwort geben ... Ich würde vielleicht etwas darüber murmeln, dass Daten nach Kategorien gespeichert und organisiert werden, die Sie mit einer speziellen Programmiersprache (dh SQL) abfragen können.

Könnte jemand eine gute "Boss-Antwort" für eine relationale Datenbank geben? Und vielleicht ist es anders, als nur Daten auf einem Dateiserver zu speichern? Bonuspunkte für clevere, aber leicht zugängliche Analogien und Erklärungen zu Tabellen, Spalten, Datensätzen und Feldern. Ich würde eine "Boss-Antwort" als eine kurze Erklärung für einen (vielleicht zwei) Absatz für nicht-technische Leute definieren ... meistens Ihren Boss, in den seltenen Fällen fragen sie Sie tatsächlich, was Sie den ganzen Tag tun.


2
Ich bin mir nicht sicher, ob Serverfehler der richtige Ort für diese Frage ist, obwohl er nützlich ist. Vielleicht DBA.SE oder Programmers.SE .
Orbling

1
Warum sollte Ihr Chef eine solche Frage stellen und, was noch wichtiger ist, was hat das mit der Systemadministration zu tun?
John Gardeniers

1
@ John Gardeniers, es könnte hierher gehören, weil viele "Systemadministratoren" einen "Datenbankverwaltungs" -Hut tragen, was bedeutet, dass sie ein gutes Verständnis für die Funktionsweise von RDBMS haben. Warum Chefs Fragen stellen, wer weiß, aber zu wissen, wie man Konzepte klar kommuniziert, ist eine gute Sache, IMO.
Zoredache

1
@Zoredache, in meinem Job trage ich viele Hüte. Das bedeutet nicht, dass sie alle für SF zum Thema gehören.
John Gardeniers

Die folgenden Antworten sind sehr gut, aber denken Sie daran, dass Sie nicht relationale Datenbanken (wie z. B. btrieve) haben und dennoch die Beziehungen zwischen den normalisierten Daten durch geeignete Anwendungslogik aufrechterhalten können.
Mark Henderson

Antworten:


16

Eine relationale Datenbank speichert nicht nur Daten, sondern auch Beziehungen zwischen Daten und erleichtert die Verwendung dieser Beziehungen. In den frühen Tagen der relationalen Datenbankterminologie wurden Tabellen als "Beziehungen" bezeichnet, da sie zusammen mit den Beziehungen zwischen dieser Beziehung und anderen Beziehungen verwandte Datenbits (Felder, jetzt Spalten) speicherten.

Normalisierung ist der Akt unkomplizierter Beziehungen: "Machen Sie alles so einfach wie möglich, aber nicht einfacher." (Alan Perlis) Manchmal bedeutet "... aber nicht einfacher", dass wir die Dinge nicht vollständig normalisiert speichern, weil "einfacher" komplexer wird. (Sie können den Status aus der Postleitzahl ableiten, aber warum sich die Mühe machen?)


10

Eine relationale Datenbank ist eine Methode zur Strukturierung von Daten, sodass eine einzelne Tatsache an einem einzigen Ort gespeichert wird. Wenn also John und Jane Doe beide für dasselbe Unternehmen arbeiten, würden Sie nur unternehmensspezifische Details an einem Ort speichern (Tabelle). Sie würden Daten, die nur für John und Jane gelten, an einem anderen Ort speichern, und Sie würden die Beziehung von John und Jane zum Unternehmen an einem dritten Ort speichern. In der idealen Welt sollte dies bedeuten, dass ich nur ein einzelnes Feld / eine einzelne Zeile ändern muss, wenn sich die Faxnummer des Unternehmens geändert hat.

Bitte haben Sie Verständnis dafür, dass nicht alle in einem RDBMS gehosteten Datenbanken ordnungsgemäß normalisiert sind. Kompromisse werden aus Leistungsgründen und aus anderen Gründen gemacht.

Siehe den Artikel zur Datenbanknormalisierung. http://en.wikipedia.org/wiki/Database_normalization


4

Es gibt zwei Hauptkonzepte zur Unterscheidung von Beziehungsdatenbanksystemen. Das erste ist, dass Beziehungen zwischen Elementen gespeichert werden. Das ist das Tabellenmodell der Daten, das anhand der Tabellenkalkulationsanalogie erklärt wird. RDBMS werden komplexer als Tabellenkalkulationen, da es einfacher und üblicher ist, viele Referenzen zwischen Tabellen oder Arbeitsblättern zu haben (je nachdem, welche Seite der Analogie Sie verwenden).

Das zweite ist, dass RDBMS die Idee einer Transaktion implementieren, die ACID- Eigenschaften von

  • Atomizität,
  • Konsistenz,
  • Isolation und
  • Haltbarkeit

Das relationale Modell ermöglicht es, viele komplexe Beziehungen aufzunehmen, abzufragen, zu sortieren, zu gruppieren usw. Das Transaktionsmodell stellt sicher, dass Transaktionen vollständig oder gar nicht stattfinden, und hält das Beziehungsmodell konsistent und genau. Nun, zumindest ermöglicht es die korrekte Programmierung, dies so zu halten.


3

Eine relationale Datenbank ähnelt einer Excel-Arbeitsmappe mit vielen Arbeitsblättern und einer umgebenden Softwareumgebung, um Leistungsoptimierungen wie Indizierung und Caching vorzunehmen, den sicheren Zugriff vieler Benutzer gleichzeitig zu erzwingen und die effiziente Anzeige möglicherweise verteilter Daten zu ermöglichen über viele der verschiedenen Arbeitsblätter.


1

Ein relationaler Datenverlust ist ein Werkzeug zum Speichern und Abrufen von Daten, die in einem relationalen Modell gespeichert sind.

Ein relationales Datenmodell wird anhand einer kleinen Anzahl erstellt (je nachdem, welches Buch Sie lesen, 4 oder 5 Regeln), die sicherstellen, dass auf die Daten auf konsistente Weise zugegriffen werden kann, wodurch die Richtigkeit des Entwurfs nachgewiesen werden kann und dies ermöglicht Das Datenbankverwaltungssystem (DBMS) erledigt den größten Teil der Arbeit beim schnellen Abrufen der Daten. Es bietet auch Tools zur formalen Dokumentation der Datenstruktur - die Implementierung einer Datenbank implementiert den größten Teil der Dokumentation.

Die meisten Menschen verstehen nicht, warum Korrektheit wichtig ist - dies bedeutet, dass Fehler weniger wahrscheinlich bei der Entwicklung einer Lösung auftreten - und dass (e.hg) 2 verschiedene Programmierer, die in ähnlichen Bereichen arbeiten, weniger wahrscheinlich Doppelarbeit leisten.

Als separate Entität vom Anwendungs-Front-End und mit einer konsistenten Ansicht der Datenstruktur ermöglicht die Verwendung eines Datenbankverwaltungssystems die Verwendung verschiedener Tools am Front-End für verschiedene Zwecke, sodass Sie viel mehr Nutzen daraus ziehen können von Standardkomponenten beim Erstellen einer Lösung.

Es gibt andere Modelle als das relationale zum Speichern von Daten - aber kein anderes Modell (meiner Erfahrung nach) kommt der Einfachheit, Flexibilität und Verfügbarkeit von Tools zum Entwickeln und Verwalten Ihrer Daten nahe.


1

Eine 100% nicht technische Antwort:

In einer relationalen Datenbank können Daten so gespeichert werden, dass Redundanz minimiert wird und Sie sie problemlos durchsuchen können.

Angenommen, eine Datenbank für eine Zoohandlung. Das Geschäft hat Artikel, es hat Kunden und es hat Verkäufe. Wenn wir das in Excel einfügen würden, könnten Sie dies für Spalten haben:

Kundenname | Kundennummer | Kundenadresse | Artikel gekauft | Preis | Datum

Erste Kundin, Frau Smith, kauft Katzenfutter:

Kundenname | Kundennummer | Kundenadresse | Artikel gekauft | Preis | Datum
Frau Smith | 123-555-1234 | 10 Main St | Katzenfutter | $ 15 | 2011-03-11

Und dann möchte Frau Smith auch ein Katzenspielzeug:

Kundenname | Kundennummer | Kundenadresse | Artikel gekauft | Preis | Datum
Frau Smith | 123-555-1234 | 10 Main St | Katzenfutter | $ 15 | 2011-03-11
Frau Smith | 123-555-1234 | 10 Main St | Katzenspielzeug | $ 1 | 2011-03-11

Und sie kommt im Grunde alle 2 Wochen oder so zurück und kauft die gleichen Dinge. Mit dieser Methode duplizieren Sie viele Informationen, was zu Fehlern führen kann. Sie können auch kein Inventar darin speichern, es muss eine ganz andere Excel-Tabelle sein, und diese muss bei jedem Verkauf aktualisiert werden.

Mit einer Datenbank könnten wir drei separate Entitäten haben: Kunden (mit ihren Informationen), Artikel (mit einer Beschreibung und einem Preis) und Verkauf (eine Verknüpfung zwischen Kunden und Artikeln, mit einem Datum und einer Menge).


Dies ist auch sehr wichtig zu erwähnen: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier

1

Einige gute technische Antworten hier. Aber mein Chef würde keinen von ihnen verstehen!

Ich würde mit einer äußerst einfachen Erklärung beginnen: „Wenn Sie Ihre Daten in einer Datei speichern, wird sie als eine lange Liste angezeigt. Eine relationale Datenbank speichert die Daten eher wie eine Karte oder ein Diagramm, sodass verschiedene Teile der Karte miteinander verknüpft sind. '

Und ein Beispiel - "... zum Beispiel Ihr Name verweist auf Ihre Adresse, die wiederum auf Ihre Stadt verweisen könnte."

Gefolgt von den geschäftlichen Vorteilen, die ihm wichtig sind: "Der Vorteil davon ist, dass es viel billiger ist, Code zu schreiben, um komplizierte Daten herauszuholen, z. B." Finde mich alle Leute, die in Seattle leben und deren Nachname Smith ist ". Auch relationale Datenbanken sind sehr zuverlässig und schnell. '

Und beenden Sie es mit einer Glaubwürdigkeitserklärung: „Relationale Datenbanken gibt es schon seit vielen Jahren, sie sind sehr ausgereifte Technologien. Unser spezielles Produkt ist [Produktname hier] '.


0

Mein Chef ist der DBA, aber in Laienbegriffen:

Stellen Sie sich zwei Tabellen in Excel und die LOOKUP-Funktion vor, um Elemente in einer Tabelle auf eine andere zu verweisen. Skalieren Sie das jetzt um mindestens den Faktor 10.

Das ist ungefähr die Computerebene einiger Leute und der Arbeit.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.