Oh, es gibt viele Unterschiede, die Sie berücksichtigen müssen
Ansichten zur Auswahl:
- Ansichten bieten Abstraktion über Tabellen. Sie können Felder in einer Ansicht einfach hinzufügen / entfernen, ohne das zugrunde liegende Schema zu ändern
- Ansichten können komplexe Verknüpfungen einfach modellieren.
- Ansichten können datenbankspezifische Inhalte vor Ihnen verbergen. Zum Beispiel, wenn Sie einige Überprüfungen mit der Oracles SYS_CONTEXT-Funktion oder vielen anderen Dingen durchführen müssen
- Sie können Ihre GRANTS problemlos direkt in Ansichten und nicht in den tatsächlichen Tabellen verwalten. Es ist einfacher zu verwalten, wenn Sie wissen, dass ein bestimmter Benutzer möglicherweise nur auf eine Ansicht zugreift.
- Ansichten können Ihnen bei der Abwärtskompatibilität helfen. Sie können das zugrunde liegende Schema ändern, aber die Ansichten können diese Fakten vor einem bestimmten Client verbergen.
Ansichten zum Einfügen / Aktualisieren:
- Sie können Sicherheitsprobleme mit Ansichten behandeln, indem Sie Funktionen wie die Oracle-Klausel "WITH CHECK OPTION" direkt in der Ansicht verwenden
Nachteile
- Sie verlieren Informationen über Beziehungen (Primärschlüssel, Fremdschlüssel)
- Es ist nicht offensichtlich, ob Sie eine Ansicht einfügen / aktualisieren können, da die Ansicht die zugrunde liegenden Verknüpfungen vor Ihnen verbirgt
Ansichten können:
Und Sie sollten keine Tabellen entwerfen, die mit Ansichten übereinstimmen . Ihr Basismodell sollte sich mit dem effizienten Speichern und Abrufen der Daten befassen. Ansichten sind teilweise ein Werkzeug, mit dem Sie die Komplexität eines effizienten, normalisierten Modells verringern können, indem Sie diese Komplexität abstrahieren können.
Die Frage "Was sind die Vorteile einer Ansicht gegenüber einer Tabelle?" Ist kein guter Vergleich. Sie können nicht ohne Tabellen gehen, aber Sie können ohne Ansichten verzichten. Sie existieren jeweils aus einem ganz anderen Grund. Tabellen sind das konkrete Modell und Ansichten sind eine abstrahierte Ansicht.
quelle
Ansichten sind akzeptabel, wenn Sie sicherstellen müssen, dass jedes Mal komplexe Logik befolgt wird. Zum Beispiel haben wir eine Ansicht, die die Rohdaten erstellt, die für die gesamte Finanzberichterstattung benötigt werden. Wenn alle Berichte diese Ansicht verwenden, arbeiten alle mit demselben Datensatz, anstatt dass ein Bericht einen Satz von Verknüpfungen verwendet und ein anderer vergisst, einen zu verwenden, der unterschiedliche Ergebnisse liefert.
Ansichten sind akzeptabel, wenn Sie Benutzer auf eine bestimmte Teilmenge von Daten beschränken möchten. Wenn Sie beispielsweise keine Datensätze löschen, sondern nur den aktuellen als aktiv und die älteren Versionen als inaktiv markieren, möchten Sie, dass in einer Ansicht nur die aktiven Datensätze ausgewählt werden. Dies verhindert, dass Benutzer vergessen, die where-Klausel in die Abfrage aufzunehmen, und schlechte Ergebnisse erhalten.
Mithilfe von Ansichten kann sichergestellt werden, dass Benutzer nur auf eine Reihe von Datensätzen zugreifen können. Beispielsweise kann eine Ansicht der Tabellen für einen bestimmten Client und keine Sicherheitsrechte für die Tabellen bedeuten, dass die Benutzer für diesen Client immer nur die Daten sehen können für diesen Kunden.
Ansichten sind beim Refactoring von Datenbanken sehr hilfreich.
Ansichten sind nicht akzeptabel, wenn Sie Ansichten zum Aufrufen von Ansichten verwenden, was zu einer schrecklichen Leistung führen kann (zumindest in SQL Server). Wir haben fast einen Multimillionen-Dollar-Kunden verloren, weil sich jemand dafür entschieden hat, die Datenbank so zu abstrahieren, und die Leistung war horrend und es kam häufig zu Zeitüberschreitungen. Wir mussten auch für das Update bezahlen, nicht für den Kunden, da das Leistungsproblem vollständig unsere Schuld war. Wenn Ansichten Ansichten aufrufen, müssen sie die zugrunde liegende Ansicht vollständig generieren. Ich habe dies gesehen, wo die Ansicht eine Ansicht aufgerufen hat, die eine Ansicht aufgerufen hat, und so viele Millionen Datensätze generiert wurden, um die drei zu sehen, die der Benutzer letztendlich benötigte. Ich erinnere mich, dass eine dieser Ansichten 8 Minuten dauerte, um eine einfache Zählung (*) der Datensätze durchzuführen. Ansichten, die Ansichten aufrufen, sind eine äußerst schlechte Idee.
Ansichten sind oft eine schlechte Idee, um Datensätze zu aktualisieren, da Sie normalerweise nur Felder aus derselben Tabelle aktualisieren können (auch dies ist SQL Server, andere Datenbanken können variieren). In diesem Fall ist es sinnvoller, die Tabellen trotzdem direkt zu aktualisieren, damit Sie wissen, welche Felder verfügbar sind.
quelle
Ansichten sind praktisch, wenn Sie aus mehreren Tabellen auswählen oder nur eine Teilmenge einer Tabelle abrufen müssen.
Sie sollten Ihre Tabellen so gestalten, dass Ihre Datenbank gut normalisiert ist (minimale Duplizierung). Dies kann das Abfragen etwas erschweren.
Ansichten sind eine gewisse Trennung, sodass Sie die Daten in den Tabellen anders anzeigen können als sie gespeichert sind.
quelle
Es ist üblich, Verknüpfungen in einer Ansicht auszublenden, um dem Benutzer ein stärker denormalisiertes Datenmodell zu präsentieren. Andere Verwendungszwecke umfassen Sicherheit (z. B. durch Ausblenden bestimmter Spalten und / oder Zeilen) oder Leistung (bei materialisierten Ansichten).
quelle
Sie sollten Ihre Tabelle OHNE Berücksichtigung der Ansichten entwerfen.
Neben dem Speichern von Verknüpfungen und Bedingungen haben Ansichten einen Leistungsvorteil: SQL Server kann seinen Ausführungsplan in der Ansicht berechnen und speichern und ihn daher schneller als "on the fly" SQL-Anweisungen machen.
Die Ansicht kann auch Ihre Arbeit hinsichtlich des Benutzerzugriffs auf Feldebene erleichtern.
quelle
Wie der Name schon sagt, ist eine Ansicht unveränderlich. Dies liegt daran, dass eine Ansicht nichts anderes als eine virtuelle Tabelle ist, die aus einer in der Datenbank gespeicherten Abfrage erstellt wurde. Aus diesem Grund haben Sie einige Eigenschaften von Ansichten:
Es gibt also eine Unmenge von Anwendungsfällen, für die Ansichten besser geeignet sind als Tabellen. Denken Sie nur daran, nur aktive Benutzer auf einer Website anzuzeigen. Eine Ansicht wäre besser, da Sie nur eine Teilmenge der Daten bearbeiten, die sich tatsächlich in Ihrer Datenbank befinden (aktive und inaktive Benutzer).
Schauen Sie sich diesen Artikel an
hoffe das hat geholfen ..
quelle
Laut Wikipedia ,
Ansichten können gegenüber Tabellen viele Vorteile bieten:
Ansichten können den Grad der Exposition der zugrunde liegenden Tabellen gegenüber der Außenwelt begrenzen : Ein bestimmter Benutzer hat möglicherweise die Berechtigung, die Ansicht abzufragen, während ihm der Zugriff auf den Rest der Basistabelle verweigert wird.
Ansichten können mehrere Tabellen zu einer einzigen virtuellen Tabelle verbinden und vereinfachen .
Ansichten können als aggregierte Tabellen fungieren , in denen das Datenbankmodul Daten (Summe, Durchschnitt usw.) aggregiert und die berechneten Ergebnisse als Teil der Daten darstellt.
Ansichten können die Komplexität von Daten verbergen . Beispielsweise könnte eine Ansicht als Sales2000 oder Sales2001 angezeigt werden, wodurch die eigentliche zugrunde liegende Tabelle transparent partitioniert wird.
Ansichten benötigen nur sehr wenig Speicherplatz . Die Datenbank enthält nur die Definition einer Ansicht, keine Kopie aller darin enthaltenen Daten.
Ansichten können abhängig von der verwendeten SQL-Engine zusätzliche Sicherheit bieten .
quelle