R.O., 07.11.2008 Übung 2 zum Datenbankentwurf: Erstellen verschiedener Varianten von SQL-Skripten: Für den Diskursbereich "Studenten – Lehrveranstaltungen - Dozenten" sollen folgende Festlegungen gelten: Jeder Student kann an einer oder mehreren Lehrveranstaltungen teilnehmen. An jeder Lehrveranstaltung nehmen mehrere Studenten teil. Jede Lehrveranstaltung wird von einem Dozenten geleitet. Jeder Dozent kann eine oder mehrere Lehrveranstaltungen leiten. grundsätzlicher Hinweis: Dies ist keine Prüfung, sondern eine Übung! Das heißt, Sie können mich jederzeit um Rat fragen, und Sie können mir auch die Ergebnisse aus den einzelnen Arbeitsschritten zur Begutachtung vorlegen. Ungeachtet dessen möchte ich, dass Sie mir am Ende einige Ihrer Ergebnisse als Mail zusenden. Arbeitsschritte: 1.) Entwerfen Sie per Hand (d.h. ohne programmtechnische Hilfsmittel) ein dem Diskursbereich entsprechendes Entity-Relationship-Diagramm. 2.) Überführen Sie dieses Diagramm auf dieselbe Weise in ein physisches Datenbankdiagramm. Ergänzen Sie dabei alle Entity-Mengen um ein zusätzliches Attribut als Identifikator (Datentyp integer; zulässige Werte zwischen 1.000 und 30.000) 3.) Legen Sie sich eine neue Datenbank "Lehrveranstaltungen" unter SQL_Anywhere an, in der Sie alle folgenden Aufgaben unmittelbar im ISQL-Fenster ausprobieren können. 4.) Notieren Sie alle SQL-Anweisungen zum Erzeugen der benötigten Tabellen. 5.) Ergänzen Sie diese SQL-Anweisungen um weitere SQL-Anweisungen zum Eingeben der benötigten Daten (siehe Tabelle "Dateninhalt"). 6.) Speichern Sie dieses in den beiden vorangegangenen Schritten entstandene Skript unter dem Namen "LV_1.SQL". 7.) Fertigen Sie für denselben Diskursbereich nochmals einen konzeptuellen Entwurf an, jetzt aber mit Hilfe des Programms PowerDesigner. Bevor Sie die einzelnen EntityMengen anlegen, definieren Sie eine eigene Domäne (domain, Definitionsbereich): Datentyp integer; zulässige Werte zwischen 1.000 und 30.000. Benutzen Sie diese Domäne stets für die Identifikatorattribute der Entity-Mengen. 8.) Überführen Sie diesen Entwurf (wieder mit dem PowerDesigner) in ein physisches Datenbankschema, passend zum DBMS SQL_Anywhere. 9.) Lassen Sie sich vom PowerDesigner aus diesem Schema ein SQL-Skript erzeugen, und speichern Sie dieses Skript unter dem Namen "LV_2.SQL". 10.) Ergänzen Sie auch das Skript "LV_2.SQL" um die Eingabeanweisungen aus Punkt 5. 11.) Löschen Sie alle Objekte in der Datenbank "Lehrveranstaltungen" (oder legen Sie sich eine weitere Datenbank an), und lassen Sie das bei Punkt 9 entstandene Skript abarbeiten. 12.) Rufen Sie unter Sybase-Central die Funktion "Datenbank entladen (unload database)" auf. 13.) Geben Sie dem zu erstellenden Skript den Namen "LV_3.SQL", lassen Sie Struktur und Daten entladen, und speichern Sie die SQL-Anweisungen und die Daten zweckmäßigerweise in ein neues Verzeichnis. 14.) Sehen Sie sich an, was im letzten Schritt in Ihrem Verzeichnis angelegt wurde. 15.) Vergleichen Sie die drei entstandenen SQL-Skripte (LV_1.SQL, LV_2.SQL und LV_3.SQL) sorgfältig miteinander und notieren Sie die wesentlichen Unterschiede in einer Tabelle wie der folgenden: LV_1.SQL LV_2.SQL LV_3.SQL 16.) Schicken Sie mir eine e-Mail: - Empfänger: [email protected] - Betreff: LV, Ihr_Name - Mailtext: leer - Anhänge: LV_1.SQL und die Tabelle aus der letzten Aufgabe. Viel Erfolg! Dateninhalt: Studenten LV Dozenten MNr Name Vorname Geb_Ort IMJ LVNr Bez SWS Sem DNr Name Vorname Wohnort 1004 Berger Bernd Bernau 2007 20.005 BS 2 2 25.001 Braun Beate Berlin 1004 Berger Bernd Bernau 2007 20.107 DB 2 1 25.002 Gerber Gert Glindow 2022 Dinkel Doris Dessau 2008 20.005 BS 2 2 25.001 Braun Beate Berlin 2022 Dinkel Doris 2008 20.107 DB 2 1 Gerber Gert Glindow 2022 Dinkel Doris 2008 20.001 GI 2 1 Gerber Gert Glindow 1199 Stab Steffen Stahnsdorf 2007 20.107 DB 2 1 Gerber Gert Glindow 1199 Stab Steffen Stahnsdorf 2007 20.001 GI 2 1 Gerber Gert Glindow mit: LV MNr Geb_Ort IMJ LVNr = = = = = Dessau Dessau Lehrveranstaltung Matrikelnummer Geburtsort Immatrikulationsjahr LV-Nummer Bez SWS Sem DNr = = = = 25.002 25.002 25.002 25.002 Bezeichnung Semesterwochenstunden Semester Dozentennummer