PostgreSQL November 2012 E3A ER-Modell _ Datenbank Angenommen, du sollst für eine international tätige Event-Management-Firma eine Datenbank erstellen. Die Events werden durchnummeriert (automatisch fortlaufende Nummer), tragen einen Titel, eine Beginn- und eine Endzeit (Datum inklusive Uhrzeit minutengenau). Ein Event findet an einem Veranstaltungsort (venue) statt. Ein Veranstaltungsort weist eine eindeutige Nummer auf (fortlaufend), einen Namen (zum Beispiel »Wiener Oper«), eine Adresse (zum Beispiel »Opernring 2«). Ein Veranstaltunsort kann nur privat (private) oder öffentlich (public) sein, standardmäßig ist ein Veranstaltungsort public. Jeder Veranstaltungsort liegt in einem Ort, zu dem der Name und die Postleitzahl (können wie in Kanada aus einer Kombination von Buchstaben und Ziffern bestehen) gespeichert werden. Da die Postleitzahl nicht eindeutig ist (4600 ist der Ort Olten in der Schweiz und Wels in Österreich), wird noch der Ländercode (genau zweistellig) gespeichert. Beide gemeinsam ergeben eine Eindeutigkeit. Um einen Veranstaltungsort eindeutig einer Stadt zuordnen zu können, wird ein mehrspaltiger Fremdschlüssel angelegt (Achtung!!!). cities countries country_code* country_name postal_code* country_code* name has contains venues events event_id* title starts ends venue_id venue_id* name street_address type postal_code country_code hosts Abbildung 1: ER-Diagramm (Attribute mit * sind Primärschlüssel, kursiv geschriebene sind Fremdschlüssel) 1 E3A Informatik 1. Gib die Städte aus, in denen keine Veranstaltungen eingetragen sind. 2. Gib aus, in welchem Veranstaltungsort wie viele Veranstaltungen eingetragen sind (absteigend nach der Anzahl sortiert). 3. Gib die Länder und die Anzahl der abgehaltenen Veranstaltungen pro Land aus. 4. Erstelle eine Regel, die bei einem Einfügen eines events prüft, ob der Endezeitpunkt nach dem Startzeitpunkt liegt. Wenn nein, soll eine Meldung ausgegeben und das event nicht eingefügt werden. 5. Welche Veranstaltungen finden in den nächsten 30 Tagen statt? 2