Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Frage zu Views und DML Anweisungen
Felix2000 - Sa 21.01.12 21:29
Titel: Frage zu Views und DML Anweisungen
Hi Folks !
Ich habe mal eine Frage zum Thema Views an euch.
Ich weiß, das man mithilfe einer View auch INSERT, UPDATE und DELETE Befehle absetzen kann. Was mich jetzt mal interesiert, ist die Frage, ob sich diese Vorgänge auch immer zwangsläufig auf die Rohdatentabelle(n) auswirken müssen, die dort in der VIEW innerhalb einer FROM Klausel definiert sind (egal, ob nun eine einzelne Tabelle, ein INLINE VIEW innerhalb eines INNERJOINS oder eine komplexe FROM Klausel, die mithilfe einer OUTER JOINS definiert wurde)?
Wenn dem so ist, kann das auch deaktiviert werden (unabhängig vom verwendeten DBMS)?
Greetz
Felix
Ralf Jansen - Sa 21.01.12 21:50
| Zitat: |
| ob sich diese Vorgänge auch immer zwangsläufig auf die Rohdatentabelle(n) auswirken müssen |
Worauf sollten sich INSERT,UPDATE,DELETE sonst beziehen?
| Zitat: |
| Wenn dem so ist, kann das auch deaktiviert werden (unabhängig vom verwendeten DBMS)? |
Wenn du nicht willst das User bestimmte Aktionen ausführen nimm ihnen die entsprechenden Rechte (Grant).
Felix2000 - So 22.01.12 11:29
Hi Folks !
"Worauf sollten sich INSERT,UPDATE,DELETE sonst beziehen?"
Naja eben NUR evtl. auf die Inhalte der View und ncht der Rohdatentabelle...
Greetz
Felix
Th69 - So 22.01.12 12:34
Hallo Felix,
eine View ist eben nur eine bestimmte Sicht (Filterung, Sortierung, etc.) auf die Daten.
Was für einen Sinn sollten denn INSERT, UPDATE oder DELETE, nur auf die View bezogen, ergeben? Du kannst dir natürlich eine temporäre Tabelle anlegen, um Änderungen direkt an den Originaldaten zu verhindern.
Ralf Jansen - So 22.01.12 15:19
| Zitat: |
| Naja eben NUR evtl. auf die Inhalte der View und ncht der Rohdatentabelle... |
Wenn die View eigene Inhalte hätte wäre sie keine View sondern eine andere Tabelle die irgendwann mal zufällig aus dem SQL der View entstanden ist.
Wenn du sowas willst solltest du auch einfach eine andere Tabelle nehmen und mit einem entsprechenden Insert ... Select befüllen aber keine View nehmen.
Wenn du dachtest du könntest etwas basteln wo die Änderungen an den zugrunde liegenden Tabellen in der View sichtbar sind und Änderungen an der View nur im View dann sollte dir schnell mit ein paar logischen Überlegungen klar werden das das im allgemeinen Fall zu unauflösbaren Datenkonflikte führt(vermutlich ist dir das schon aufgefallen darum fragst du hier). Für einen ganz begrenzten Satz von möglichen Änderungen kann man vielleicht mit ein paar Triggern auf den zugrunde liegenden Tabellen die deine View entsprechende Tabelle updaten etwas entsprechendes erreichen. Und vielleicht haben ein paar Systeme da auch eine proprietäre Lösung. Etwas DBMS unabhängiges aber mit ziemlicher Sicherheit nicht.
Felix2000 - So 22.01.12 19:29
Hi Folks !
Beste Dank für eure Antworten !!
Was ich allerdings noch nciht so ganz verstanden habe ist die Tatsache, wie Views bspw. von einem system in ein anderes System importiert und dort genutzt werden können? Ich habe das derzeit bei einem Accessbasierten system auf unserer Arbeit gesehen, es könnt doch rein theoretisch passieren, dass man dann mit veralteten Daten arbeiten, also wenn die View nicht aktualisiert ist, richtig?
Best Greetz
Felix
daeve - So 22.01.12 23:44
Felix2000 hat folgendes geschrieben : |
Hi Folks !
Beste Dank für eure Antworten !!
Was ich allerdings noch nciht so ganz verstanden habe ist die Tatsache, wie Views bspw. von einem system in ein anderes System importiert und dort genutzt werden können? Ich habe das derzeit bei einem Accessbasierten system auf unserer Arbeit gesehen, es könnt doch rein theoretisch passieren, dass man dann mit veralteten Daten arbeiten, also wenn die View nicht aktualisiert ist, richtig?
Best Greetz
Felix |
Also mit alten Daten wirst du nicht arbeiten solange die DB in der Struktur keine Änderungen hat.
Eine View gibt dir ja immer die Daten aus der DB raus, es sind ja keine Daten in der View gespeichert sondern nur die abfragen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!