Formaler Datenbankentwurf - Informatixx
Formaler Datenbankentwurf - Informatixx
Formaler Datenbankentwurf - Informatixx
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL:Änderungen.12<br />
Beispiele für nicht existierende Transformationen:<br />
r =<br />
A B<br />
a b<br />
x b<br />
s =<br />
B C<br />
b c<br />
b z<br />
v = r ./ s =<br />
A B C<br />
a b c<br />
a b z<br />
x b c<br />
x b z<br />
Auf v sind folgende Löschungen, Einfügungen und Änderungen nicht möglich.<br />
Löschen von (a� b� c):<br />
Wird in r (a� b) gelöscht, so geht in v auch (a� b� z) verloren; analog für Löschen<br />
von (b� c) in s.<br />
Ändern von (a� b� c) zu (a� b� d) analog.<br />
Einfügen von (a� b� d) analog.<br />
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL:Änderungen.14<br />
Beispiel Selektionssicht:<br />
Sicht auf die Big Countries.<br />
CREATE VIEW BigCountry AS<br />
(SELECT *<br />
FROM Country<br />
WHERE area >= 1000000 AND<br />
population >= 100);<br />
UPDATE BigCountry<br />
SET population = 90<br />
WHERE code = '...';<br />
Tupel der Sicht BigCountry migrieren möglicherweise in eine andere Sicht.<br />
Durch Angabe der Klausel WITH CHECK OPTION kann dies verhindert werden.<br />
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL:Änderungen.13<br />
Beispiel Projektionssicht:<br />
Sicht: Sachbearbeiter dürfen den Namen nicht sehen.<br />
CREATE VIEW CountryInfo AS<br />
SELECT code, area, population<br />
FROM Country;<br />
INSERT INTO CountryInfo VALUES ('XY', 250000, 20);<br />
Das Einfügen muß auf der Relation Country nachgeführt werden.<br />
Jedoch welcher Wert? Für herausprojizierte Attribute können Default-Werte, bzw.<br />
NULL verwendet werden.<br />
Projektionssichten sind wenig problematisch, solange die Primärschlüssel der<br />
Basisrelationen in der Sicht nicht herausprojiziert werden.<br />
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL:Änderungen.15<br />
Beispiel Verbundsicht:<br />
Sicht: Kontinente und die in ihnen liegenden Städte.<br />
CREATE VIEW CityInfo AS<br />
SELECT City.name, encompasses.continent<br />
FROM City, encompasses<br />
WHERE City.country = encompasses.country;<br />
INSERT INTO CityInfo VALUES ('Freiburg', 'Europe');<br />
Einfügungen in die Basisrelationen:<br />
City: ('Freiburg', NULL, NULL, NULL,NULL)<br />
encompasses: (NULL, 'Europe', NULL)<br />
Jedoch die Anfrage SELECT * FROM CityInfo enthält nicht das Tupel (Freiburg,<br />
Europe). Es existiert keine Transformation.