Autor Beitrag
Felix2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: Sa 21.01.12 21:29 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: So 22.01.12 23:44 
user profile iconFelix2000 hat folgendes geschrieben Zum zitierten Posting springen:
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.