18_8335_305-SQL-View - Offene

Werbung
Das diesem Dokument zugrundeliegende Vorhaben wurde mit
Mitteln des Bundesministeriums für Bildung und Forschung
unter dem Förderkennzeichen 16OH21005 gefördert.
Die Verantwortung für den Inhalt dieser Veröffentlichung liegt
beim Autor/bei der Autorin.
In diesem Abschnitt werden wir uns sogenannte VIEWS näher ansehen.
1
In dem Abschnitt VIEWs geht es zunächst darum zu verstehen, WAS Views
überhaupt sind und welche Probleme man dadurch lösen kann.
Danach werden wir uns ansehen, wie mal mittels SQL Befehlen VIEWS
erstellen kann und welche Merkmale Views in der Praxis aufweisen.
2
Bei den VIEWS geht es darum, wie man verschiedene Sichten einem Anwender
zur Verfügung stellen kann.
Die Grundidee dabei ist, dass ein Benutzer ein bestimmtes Verständnis des
Datenmodells hat, welche nicht unbedingt einem normalisierten physikalischen
Datenmodell entspricht, so wie in einer Datenbank abgelegt.
Die Frage ist nun:
.. Und wo ist das Problem dabei ?
Das schauen wir uns in der nächsten Abbildung an.
3
Das Problem stellt sich wie folgt dar:
1. Der Benutzer hat ein etwas anderes Verständnis der Daten als ein DatenbankDatenmodell-Spezialist, welcher eine normalisierte Datenbank zur Verfügung
stellt.
2. Es kann vorkommen, dass ein Benutzer nicht alle Spalten oder Zeilen einer
Datenbanktabelle benötigt
3. Das normalisierte Datenmodell ist für den Benutzer zu komplex bzw. nur
schwer verständlich
Um diese Probleme bzw. Herausforderungen zu lösen, kann man sogenannte
Views erstellen.
In der nächsten Abbildung sehen wir uns an , was nun ein VIEW genau ist.
4
In der Abbildung soll dies anhand eines kleinen Beispiels verdeutlicht werden.
Nehmen wir an, in einer Datenbank gibt es unter anderem 2 Tabellen. Zwischen
den Tabellen gibt es eine Beziehung. Dies ist typisch für nominierte
Datenmodelle.
Wenn nun eine Anwendung immer Daten aus beiden Tabellen benötigt und auch
nicht wissen soll/muss wie diese Daten zusammenhängen, bietet sich geradezu
ein VIEW an.
Mittels einer SQL –Anweisung Create View ( Syntax ist nachfolgend kurz
beschrieben, kann ein VIEW definiert werden. Auf einen View kann man dann
ganz normal über eine SELECFT Anweisung zugreifen, um Daten lesen zu
können.
Ein VIEW sieht für die Anwendung / Benutzer genau so aus wie eine ganz
normale Tabelle.
Syntax:
CREATE VIEW viewName As
SELECT …..
5
Wie Sie der SYNTAX entnehmen können, hat jeder View einen Namen. Dieser Name
kann in einer Select-Anweisung wie ein Tabellenname verwendet werden.
Welche Daten nun in dem View „enthalten“ und somit dem Anwender zur Verfügung
gestellt werden, ergeben sich aus der SELECT-Klausel.
Dort sind die Tabellennamen , WHERE und JOIN Bedingungen aufgeführt, aus denen die
Daten den View gebildet werden.
Wichtig zu Wissen ist:
• Die SELECT Anweisungen werden nicht beim Anlegen des VIEWS ausgeführt.
• Die Select Anweisungen werden zur Laufzeit ausgeführt und zwar immer dann , wenn
ein Benutzer eine SELECT auf den View macht. Dies bedeutet, die Daten werden erst
dann „zusammengesucht“ und dem Benutzer bereitgestellt, wenn der Benutzer die
Daten auch wirklich benötigt.
Das Beispiel auf der nächsten Abbildung verdeutlich den Sachverhalt.
5
Schauen wir uns ein Beispiel an, wie man Views anwendet.
In dem Beispiel bedienen wir uns den Tabellen aus dem Abschnitt „JOIN“. Dort
gab es zwei Tabellen
TabelleA mit den Spalten „name“ und „ort“
TabelleB mit dem Spalten „name“ und „arbeitgeber“
Nun können wir einen View wie folgt definieren
Create view „Employee“ As
Select TabelleA.name, TabelleA.ort, TabelleB.arbeitgeber
From TabelleA, TabelleB
Where TabelleB.name = TabelleA.name
Aus Anwendungssicht kann dann folgende Select Anweisung ausgeführt werden.
SELECT * from Employee
6
Als Ergebnismenge erhält man dann das Tupel
name, ort, arbeitgeber
TIPP:
Führen Sie nun die Übungen aus dem Übungsbuch zu dem Themenbereich SQL Views
durch.
6
Machen wir uns zum Abschluss noch einmal die Merkmale von View klar
• Ein VIEW kann wie eine Tabelle verwendet werden ( Ausnahmen siehe weiter
unten )
• Die SELECT Anweisungen, die durch einen VIEW ausgeführt werden, sind
für den Benutzer/Anwendung nicht sichtbar.
•
Wenn sich nun Tabellennamen ändern, bleibt dies für die Anwendung
verborgen
• Die SELECT-Bedingungen eines Views können geändert werden, ohne dass
die Anwendung geändert werden muss, da dies ja nicht sichtbar ist
• VIEW ist somit eine Schnittstelle
• Views erlauben jedoch keine INSERT, UPDATE und DELTES
• Die Daten, die durch via VIEW gelesen werden, werden zum
Ausführungszeitpunkt bestimmt.
7
8
Herunterladen