27.12.2012 Aufrufe

Formaler Datenbankentwurf - Informatixx

Formaler Datenbankentwurf - Informatixx

Formaler Datenbankentwurf - Informatixx

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!