views Flashcards
Worin unterscheiden sich Tabellen von Sichten?
Virtuelle Sichten stellen eine Teilmenge ovn Daten aus einer oder mehreren Tabellen logisch da. Wird umgesetzt mittels einer virtuellen Tabelle, diese wird also nicht physisch auf der DB abgelegt (nicht permanent gespeichert, neue anwendung = neue berechnung).
Welchen Arten von Sichten können unterschieden werden?
Projektionsansicht,
Selektionsansicht,
Verbundssicht,
Aggregationssicht
Auf einer Sicht sind nur solche DML Operation zulässig zu denen eine eindeutige Transformation auf die Basisrelation existiert.
Projektionssicht?
Eine Projektionssicht filtert bestimmte Spalten.
e.g
CREATE VIEW Projetkionssicht AS
SELECT PersNr, Abteilung
FROM Mitarbeiter;
Selektionssicht?
Selektionssicht filtert aus einer Tabelle bestimmte Zeilen heraus
CREATE VIEW Selektionssicht AS
SELECT PersNr, Gehalt
FROM Mitarbeiter WHERE Gehalt > 20;
Verbundsicht?
Eine Verbundsicht verknüpft mehrere Tabellen. CREATE VIEW Verbundsicht AS SELECT PersNr, Gehalt, AbtNr, Leiter FROM Mitarbeiter JOIN Abteilung ON (Abteilung = AbtNr);
Aggregationssicht?
Wendet Aggregationen Funktion (min, max, count etc.) an
CREATE VIEW Aggregationssicht (Abteilung, SummeGehalt) AS
SELECT Abteilung, SUM(Gehalt)
FROM MItarbeiter
GROUP By Abteilun;
Welche Voraussetzungen müssen virtuelle Sichten besitzen, damit diese änderbar sind?
EMKR
- Effektkonformität (Benutzer sieht Effekt als wäre die Änderung auf der Sichtrelation direkt ausgeführt worden)
- Minimalität (Basis DB sollte nur minimal geändert werden um Effekt zu erhalten)
- Konsitenzerhaltung (Änderungen einer Sicht darf zu keinen Integritätsverletzungen der Basistabelle führen)
- Respektierung der Zugriffskontrolle (bei einer sicht darf der bewusst ausgeblendete Teil der Basistabelle nicht von Änderungen in der Sicht betroffen sein)
Wozu wird das Sichtkonzept eingesetzt? Worin liegen die Vorund Nachteile?
Sichten werden eingesetzt um Komplexe abfragen zu erleichtern/verstecken. Datenzugriff kann für den Anwender eingeschränkt werden, und ihm die datenstruktur mehr oder weniger geheim gehalten. Anwender kann also nur das tun und sehen, was die Sicht hergibt und zulässt.
- Sicherheit und logische Datenunabhängigkeit zb App wird von externer Firma gebaut, bestimtme Daten werden vom Unternehmen gebraucht. Hier wird zB eine Sicht eingesetz (oft haben die auch nur leserechte). Sichten können auch für statistische Auswertungen verwendet werden. Als Ergebnis werden lediglich Ergebnisse geliefert, welche weiterverwendet werden können. Die Berechnungen werden im Hintergrund durchgeführt, Formeln können nicht zurückverfolgt werden. Die ursprünglichen Daten bleiben somit anonym.
Vorteile:
- Datezugriff einschräcken (Sicherheit)
- Strukturierung der Datenbank (zugeschnitten auf Benutzergruppen)
- Logische Datenunabhängigkeit gewährleisten (Sichten stabil bei Änderungen von Struktur und Anwendung)
- Komplexe Anfragen erlecihtern (es muss lediglich die Sicht angefragt werden).
Nachteil
- Eingeschränkte Änderung (aktualisierbare und nicht akutalisierbare Sichten)
Was versteht man unter logischer Datenunabhängigkeit?
Logische Datenunabhängigkeit gewährleisten (Sichten stabil bei Änderungen von Struktur und Anwendungen)
Der Datenzugriff kann somit für den Anwender eingeschränkt werden, außerdem wird durch eine Sicht die Datenstruktur mehr oder weniger geheim gehalten. Der Anwender kann also nur das tun und sehen, was die Sicht hergibt und zulässt. → Sicherheit und logische Datenunabhängigkeit.
Was is Tupelmigration?
Ein Datensatz wird so geändert dass er aus dem sichtbaren Bereich einer Sicht verschwinden würde. d.h im “neuen” Datensatz nicht mehr vorhanden. Manchmal sind diese jedoch erwünscht -> Effektkonformiätt und Zugriffskontrolle werden verletzt
Verhindern von Tupelmigration?
durch klausel. WITH CHECK OPTION gibt zb an, dass INSERT und UPDATE operationen nur angewendet werden können, wenn diese die Selektionsbedingungen erfüllen.
→ Bei Einsatz wird das Vorhaben überprüft und nur bei Erfüllung der Bedingung freigegeben.
Die With Check Option Klausel verhindert nur Inserts und Updates von Datensätzen, welche die View nicht selektieren würde. Hat aber keinerlei Einfluss auf Check Constraints der Basistabelle.
Was versteht man unter einer virtuellen Sicht im Kontext einer relationalen Datenbank? Worin liegt der Unterschied zu einer Basistabelle? Nennen Sie zwei Anwendungsgebiete?
Virtuelle Sichten stellen eine Teilmenge von Daten aus einer oder mehrer Tabellen logisch da. Wird umgesetzt mittel einer virtuellen Tabelle, unterschied zur basistabelle also das diese virtuelle tabelle nicht physisch auf der Datenbank abgelegt wird (nicht permament gespeicht, neue anwendung -> neue berechnung). Auch DML Operationen sind nur eingeschränkt möglich.
z.B. kann eine virtuelle Sicht angewendet um Benutzern Daten bereitzustellen, und diese lesen können ohne sich mit der DB auskennen zu müssen.
oder z.B. um den Zugriff/die Sicht auf geweisse Daten einzuschränken indem man gewissen Spalten nicht selektiert. (gib dem User nur was er braucht; datenschutz etc)
Welches Problem kann bei einer Selektionssicht im Hinblick auf Änderungsoperationen (bspw. INSERT, UPDATE) auftreten? Beschreiben Sie das Problem?
Es kann zu Tupelmigration kommen, d.h daten werden dabei in der Sicht so geändert, das sie nicht mehr dne Selektionsbedingungen entsprechen und aus der Sicht „fallen“ – VERHINDERUNG MIT WITH CHECK OPTIONS.