2012-03-31 25 views
2

In Microsoft Retail Management System, wenn wir die Datenbank prüfen, es nicht eine der folgenden Beziehung verwendet haben:Datenbank benötigt Relation

One to One

one to many

viele zu viele

ein Experte sagte mir, dass Beziehungen manchmal schädlich sind, genauso wie es in unserem täglichen Leben schädlich ist. Vermeiden Sie also Beziehungen sowohl im Leben als auch in der Datenbank. Ich hielt es immer noch für einen Scherz.

so, bitte sagen Sie mir, was ist das wirklich brauchen, um die Beziehungen zu nutzen, auch gleiche Sache, die wir durch Abfrage usw. auch verwalten können

+0

Mit Beziehungen meinen Sie den Einsatz von Fremdschlüsseln? –

Antwort

0

Beziehungen (ER-Modell) sind gut, weil sie Ihr Modell beschreiben - einfach gesagt können Sie leichter sehen, welche Entitäten miteinander verwandt sind, wenn sie auf dem Diagramm miteinander verbunden sind.

Wenn die Beziehung einen Fremdschlüssel (Speichermodell) haben sollte, lautet die Antwort: Es kommt darauf an.

Es hängt davon ab, was die Art der Beziehung ist. In der Firma, für die ich arbeite, folgen wir der Regel: Erzeuge FK nur zwischen Entitäten, die vom Benutzer definiert sind (für Beziehungen, die für ihn bedeutsam sind, wie Kunde - Auftrag), vermeide FK auf Entitäten, die automatisch vom System hinzugefügt werden (wie log/Audit-Einträge, besonders wenn es viele von ihnen gibt).

Wenn Sie einen Fremdschlüssel haben, kann dies die Leistung beim Löschen von Entitäten beeinträchtigen, da die Datenbank prüfen muss, ob diese Entität nicht "in Verwendung" ist. Dies erfordert so viel Zeit wie die Durchführung der entsprechenden select Anweisung.

0

s und s haben sehr wenig miteinander zu tun.

Eine relationale Datenbank besteht aus einer oder mehreren Mengen von Fakten, die in Beziehungen organisiert sind. In diesem Modell ist eine Beziehung nichts anderes als ein Bündel von Fakten, die die gleiche "Art" von Anspruch machen. Um sicherzustellen, dass die Menge der in der Datenbank dargestellten Fakten gültig ist, gibt es normalerweise einige zusätzliche Einschränkungen, die auf die Darstellung von Fakten angewendet werden. Erstens müssen Fakten identifizierbar sein, es sollte einen "Schlüssel" für jede Tatsache und nur eine solche Tatsache für jeden möglichen Schlüssel geben. Der andere ist, dass, wenn eine Tatsache eine Behauptung auf eine andere Tatsache erhebt, es definitiv sein muss, dass die behauptete Tatsache (der Referent) existiert und mit der "Meta-Tatsache" übereinstimmt. Als Beispiel für das oben Genannte möchten Sie sicherlich nie in einer Position sein, in der Sie wissen, dass "Kunde 10 15 Tage hinter seinen Zahlungen zurückliegt", aber dass Sie nicht wissen, welcher Kunde 10 derjenige ist, der dahinter steckt weil es mehr als einen von ihnen gibt, oder dass es überhaupt keinen Kunden gibt. Diese Einschränkungen dienen dazu, die Datenbank "konsistent" zu machen.

Entitätsbeziehungen sind nur in Bezug auf das Anwendungsdesign sinnvoll. Es ist eine "Sprache", um zu beschreiben, wie abstrakte Programmkomponenten miteinander in Beziehung stehen. Relationale Datenbanken bieten über eine funktionale Abhängigkeit eine Art der Modellierung dieser "ist-a", "hat-viele", "gehört-zu" Art von Design, aber es ist keineswegs die einzige. Ein anderes Beispiel ist die Vererbung und Zusammensetzung, die in objektorientiertem Design verwendet wird.

Bezeichnenderweise kann eine Anwendung mehrere Klassen haben, die ausreichend unabhängig voneinander sind, dass keine Zusammensetzung oder Vererbung benötigt wird, und ähnlich kann eine Datenbank keine funktionalen Abhängigkeiten haben, wird aber dennoch konsistent sein.

Das heißt, solche Anwendungen werden wahrscheinlich sowohl klein als auch ungewöhnlich sein; Diese Werkzeuge bieten einen beträchtlichen Wert für die Aufgabe, eine "gute" Anwendung zu entwickeln, und praktisch alle werden diese Werkzeuge teilweise und möglicherweise umfassend nutzen.