Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 19. -20. Mai 2008 Vorbereitungsaufgabe: Upload (als PDF) bis 13. Mai 2008 Präsenzaufgaben: Upload bis 25. Mai 2008 http://www.is.inf.uni-due.de/courses/dbp_ss08/abgabe/pre02.html Datum Team (Account) Aktuelle Informationen, Ansprechpartner, Material und Upload unter: http://www.is.inf.uni-due.de/courses/dbp_ss08/index.html Vorgehen und Wochenziele Der Entwurf einer Datenbank beschreibt den Prozess der Umsetzung einer MiniWelt in ein Datenbankschema, das in der Lage ist, die gewünschten Daten dieser Welt mit ihren Eigenschaften und Beziehungen darzustellen. Der Entwurf, an den sich dann die Implementierung anschließt, besteht im Wesentlichen aus diesen Schritten: • Modellierung • Umsetzung in ein Relationenschema • Normalisierung In dieser Praktikumswoche wollen wir zwei Dinge erreichen: • Die Semesteraufgabe wird eingeführt, und wir wollen die entsprechende MiniWelt in einem E/R-Diagramm modellieren. Aufgrund dieses Modells werden wir dann in der nächsten Woche die Tabellenstruktur für die Semesteraufgabe entwerfen. • Jede Gruppe soll in ihrer eigenen DB2-Instanz eine Datenbank für die Semesteraufgabe einrichten, damit wir dort in der kommenden Woche (nach den weiteren Entwurfsschritten) die ersten Tabellen einrichten können. Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 1 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Entwurfsschritt 1: Modellierung Die Informationen in diesem Abschnitt sollten schon aus der Vorlesung bekannt sein. Modellierung mit E/R-Diagrammen Die Modellierung dient der systematischen Darstellung einer Abstraktion der abzubildenden Miniwelt. Er dient auch zur Kommunikation mit Nichtfachleuten, die in der Regel nicht das Denken in Relationen oder Attributen gewohnt sind. Als eine Möglichkeit zur Modellierung einer Miniwelt ist das Entity-Relationship-Modell weit verbreitet. Zur Darstellung dieser Modelle werden E-R-Diagramme benutzt. Entitäten und Attribute Ein Objekt der realen Welt wird als Entität modelliert. Eine Entität ist normalerweise eine Person, ein Prozess oder ein Gegenstand der realen Welt, z.B. ein Mitarbeiter, eine Lieferung, ein Inventargegenstand oder ein Schriftstück. Gleichartige Entitäten bilden einen Entitätstyp, z.B. alle Wissenschaftlichen Angestellten, alle Autoteile oder alle Arbeitsverträge. In einem E-R-Diagramm wird ein Entitätstyp durch ein Rechteck dargestellt, das den Namen des Entitätstypen umschließt. Mitarbeiter Eine Entität (bzw. ein Entitätstyp) wird durch eine Menge von Attributen beschrieben. In einem E-R-Diagramm umschließt eine Ellipse den Namen des Attributes und eine Linie verbindet es mit dem zugehörigen Entitätstyp. Ein Attribut von Mitarbeiter ist z.B. der Name. Man spricht von einem zusammengesetzten Attribut, wenn ihm wiederum verschiedene Attribute zugeordnet sind. In einem E-R-Diagramm werden zusammengesetzte Attribute genau wie atomare Attribute dargestellt. Mitarbeiter Name Strasse Adresse Vorname PLZ Ort Attributkombinationen, die zur eindeutigen Identifikation einer Entität dienen, werden Schlüssel genannt. Beim Entitätstyp Mitarbeiter könnte z.B. (Name, Vorname, Adresse) oder (Mitarbeiternummer) als Schlüssel dienen. Ein Schlüssel identifiziert über die Attributwerte eine Entität eindeutig, insbesondere können keine zwei Entitäten in allen ihren Schlüsselattributen übereinstimmen. Unter allen Schlüsseln wird ein Schlüssel ausgezeichnet, dieser heißt Primärschlüssel. In einem E-R-Diagramm werden die Namen aller Attribute, die zum Primärschlüssel gehören, unterstrichen dargestellt. Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 2 von 16 Universität Duisburg-Essen Informationssysteme Name Raum Sitzzahl Prof. Dr.-Ing. N. Fuhr Gebäude Nummer Mehrwertige Attribute sind Attribute, die als Wert eine Liste oder eine Menge annehmen können. In einem E-R-Diagramm werden mehrwertige Attribute durch den Attributnamen in einem doppelten Oval dargestellt. Mitarbeiter Telefonnr. Beziehungen (Relationships) Die Objekte der realen Welt stehen zueinander in Beziehung. Durch Beziehungen werden im E-R-Modell Verknüpfungen, Zusammenhänge und Interaktionen zwischen Entitäten, bzw. den Entitätstypen, modelliert. Beispiele sind etwa ist-Teil-von, arbeitet-für, usw. Beziehungen derselben Art werden zu sogenannten Beziehungstypen zusammengefaßt. In einem E-R-Diagramm werden Beziehungstypen durch eine Raute dargestellt, die den Namen des Beziehunstyps enthält und mit allen Entitätstypen verbunden ist, die an dieser Beziehung teilnehmen. Ein Entitätstyp kann mehrfach an einer Beziehung teilnehmen. Es ist auch möglich, dass ein Entitätstyp in Beziehung mit sich selbst steht (das nennt man dann rekursive Beziehung). Verbindet ein Beziehungstyp nur zwei Entitätstypen jeweils einmal, so spricht man von einem binären Beziehungstyp, ebenso kennt man ternäre Beziehungen, usw. Wiss. Mitarbeiter arbeitet für Professor Beziehungen können wie Entitätstypen Attribute besitzen. Diese werden im ER-Diagramm genauso dargestellt wie bei Entitätstypen. Da Beziehungstypen nur Zusammenhänge und Beziehungen modellieren, können sie keine identifizierenden Schlüssel besitzen. Im E-R-Diagramm werde keine Schlüssel für Beziehungstypen ausgezeichnet. Bei Beziehungstypen ist es sinnvoll, sich schon in der Modellierungsphase klarzumachen, wie oft die verschiedenen Entitäten an einer Beziehung teilnehmen können. Diese Überlegungen führen zum Konzept der Funktionalitäten: Nimmt jede Entität eines Typs genau n-mal an einer Beziehung teil, so wird im E-R-Diagramm die Verbindungslinie mit dieser Zahl markiert. Nimmt jede Entität mindestens p-mal und höchstens k-mal an einer Beziehung teil, so wird in der (min,max)-Notation im E-R-Diagramm die Verbindungslinie mit (p,k) markiert. Das Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 3 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Zeichen N als Maximum zeigt normalerweise an, dass eine Entität dieses Typs beliebig oft an dieser Beziehung teilnehmen kann. Mitarbeiter ist beschäftigt an 1 Institut N Im E-R-Modell ist es nicht möglich, dass Beziehungen selbst wieder an Beziehungen teilnehmen. Das kann aber manchmal nötig und sinnvoll sein. Hierzu fasst man einen Beziehungstyp mit den an ihm beteiligten Entitätstypen zu einem aggregierten Entitätstyp zusammen. Dieser kann wiederum an Beziehungen teilnehmen. Im E-R-Diagramm wird ein aggregierter Entitätstyp dadurch dargestellt, dass die ihn definierende Entitätstypen- und Beziehungstypensymbole in ein Rechteck eingeschlossen werden. Generalisierung Um die Entitätstypen besser zu strukturieren, kann man im Entwurf Generalisierungen einführen. Dieses objektorientierte Konzept abstrahiert Entitätstypen und bildet Obertypen. Die Entitätstypen, die zu einem Obertyp generalisiert wurden, heißen Kategorien oder Untertypen des Obertyps. Ein Obertyp faßt allen Kategorien gemeinsame Eigenschaften zusammen. Diese werden vom Untertyp geerbt; zusätzlich kann ein Untertyp Eigenschaften haben, die nur für diesen charakterisierend sind. Die Entitätsmenge des Untertyps ist eine Teilmenge der Entitätsmenge des Obertyps, wobei üblicherweise zwei Fälle besonders interessant sind: • disjunkte Spezialisierung: die Schnittmenge von je zwei Untertypen ist leer • vollständige Spezialisierung: Obertyp ergibt sich als Vereinigung der Untertypen In einem E-R-Diagramm modelliert man die Generalisierungsbeziehung als Beziehung is-a durch ein spezielles Symbol: ein Sechseck statt einer Raute. PersNr Wiss. Mitarbeiter is−a Uni−Angestellter Professor Name RaumNr Rang Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 4 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Schwache Entitätstypen Wenn der Fall auftritt, dass ein Entitätstyp keinen eigenen Schlüsselkandidaten besitzt, spricht man von schwachen Entitätstypen. Sie nehmen an einer Beziehung mit einem anderen Entitätstyp teil, dem Eltern-Entitätstyp. Jedes Objekt des schwachen Entitätstyp nimmt mindestens an einer Beziehung zum Eltern-Entitätstyp teil. Das Objekt wird über diese Beziehung identifiziert. Der Primärschlüssel des ElternEntitätstyps wird auch für den schwachen Entitätstyp verwendet (eventuell durch einen Teilschlüssel erweitert). In der Regel sind die Objekte des schwachen Entitätstyps von den Objekten des Eltern-Entitätstyp abhängig, d.h. ohne diese sind sie nicht von Interesse bzw. besitzen keine eigene Existenz. Im E-R-Diagramm werden schwache Entitätstypen von normalen Entitätstypen dadurch unterschieden, dass ihr Name durch ein doppeltes Rechteck eingeschlossen ist. Die Teilschlüssel werden durch eine gestrichelte Unterstreichung ausgezeichnet. Nummer Mitarbeiter Vorname Kind hat Name Vorname Geburtsdatum Struktur der DB2-Installation Innerhalb einer DB2-Installation Datenbanksystem-Objekte: existieren die folgenden wichtigen • Instanzen • Datenbanken • Schemata • Tabellen • Views Tabellen und Views werden in den folgenden Sitzungen behandelt. Instanz Eine Instanz (auch: Datenbankmanager) ist ein Objekt, das Daten verwaltet. Es kontrolliert, was mit den Daten gemacht werden kann, und verwaltet die ihm zugewiesenen Systemressourcen. Jede Instanz ist eine vollständige Arbeitsumgebung, die ihre eigenen, für andere Instanzen unzugänglichen Datenbanken enthält. Alle Datenbankpartitionen einer Instanz teilen sich das gleiche Systemverzeichnis. Eine Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 5 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Instanz hat eine eigene Rechteverwaltung, die unabhängig von der anderer Instanzen ist. Jede Kleingruppe im Praktikum besitzt eine eigene Instanz auf salz unter dem Namen ihres Accounts (z.B. dbp0701). Auf dieser besitzt die Gruppe das Administratorrecht, und kann Datenbanken anlegen, ändern und löschen. Diese Instanz kann auf dem Datenbank-Server salz direkt manipuliert werden, auf anderen Rechnern muß der Zugriff zunächst ermöglicht werden (siehe unten). Die Konfiguration der eigenen Instanz kann man mit dem Befehl db2 get dbm cfg oder db2 get database manager configuration abfragen. Im interaktiven oder Batchmodus muß man natürlich das einleitende db2 weglassen. Im Folgenden werden DB2-Befehle durch (db2) gekennzeichnet. Der Datenbank-Manager muß zunächst gestartet werden, um weitere Befehle, wie das Erstellen einer Datenbank auszuführen. Läuft der DBM nicht, so erhält man eine entsprechende Fehlermeldung. Die Befehle zum Starten bzw. Stoppen des DBM lauten: (db2) start dbm (db2) stop dbm Um sich mit einer Instanz auf einem entfernten Rechner zu verbinden, muß man diese zunächst als einen lokalen Knoten katalogisieren. Wer dies in der Einführungsveranstaltung bereits getan hat, kann diesen Schritt überspringen! Der Befehl zum Katalogisieren einer externen Instanz über TCP/IP lautet für das Praktikum: (db2) catalog tcpip node salz remote salz.is.inf.uni-due.de server 50050 remote_instance dbprak system salz ostype linux Datenbank Eine relationale Datenbank ist eine Sammlung von Tabellen. Eine Tabelle besteht aus einer festen Zahl von Spalten, die den Attribute des Relationenschemas entsprechen, sowie einer beliebigen Zahl an Reihen. Zu jeder Datenbank gehören Systemtabellen, welche die logische und physikalische Struktur der Daten beschreiben, eine Konfigurationsdatei mit den Parametern der Datenbank und ein Transaktionslog. Eine neue Datenbank wird mit dem Befehl (db2) create database {name} erstellt. Dies erzeugt eine Datenbank mit der Standardkonfiguration. Gelöscht werden kann die Datenbank wieder mit dem Befehl (db2) drop database {name}. Der Befehl (db2) connect to {name} stellt eine Verbindung zu einer Datenbank her, die mit (db2) terminate wieder beendet wird. Um sich von einem entfernten Rechner mit einer Datenbank zu verbinden muß diese zunächst an einem lokalen Knoten katalogisiert werden. Angenommen es existiert bereits ein lokaler Knoten salz, dann lautet der Befehl zum Katalogisieren einer entfernten Datenbank sample auf dem mit salz verbundenen Server wie folgt: (db2) catalog database sample as sampleXX at node salz Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 6 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Dabei ist der samplexx der Aliasname, unter dem man sich mit der Datenbank lokal verbinden kann. Schemata Ein Schema ist eine Sammlung von benannten Objekten (Tabellen, Sichten, Trigger, Funktionen,...). Jedes Objekt in der Datenbank liegt in einem Schema. Objektnamen müssen innerhalb eines Schemas eindeutig sein. Ein Objekt in der Datenbank wird durch einen qualifizierten Namen identifiziert. Dieser besteht aus dem Namen des Schemas, in dem das Objekt liegt, gefolgt von einem Punkt und dem Objektnamen: DBPRAK.STAFF würde beispielsweise das Objekt STAFF im Schema DBPRAK bezeichnen. Wird nur ein Objektname angegeben, so qualifiziert DB2 diesen standardmässig durch den Benutzernamen. Man kann diesen Standardwert auch ändern: (db2) SET SCHEMA dbprak Tabellen Eine relationale Datenbank speichert Daten als eine Menge von zweidimensionalen Tabellen. Jede Spalte der Tabelle repräsentiert ein Attribut des Relationenschemas, jede Zeile entspricht einer spezifischen Instanz dieses Schemas. Daten in diesen Tabellen werden mit Hilfe der Structured Query Language (SQL) manipuliert, einer standardisierten Sprache zur Definition und Manipulation von Daten in relationalen Datenbanken. Tabellenerstellung, Constraints und Datentypen werden in der nächsten Sitzung behandelt. Um sich in einer existierenden Datenbank die vorhandenen Tabellen anzeigen zu lassen, benutzt man den Befehl (db2) list tables for schema {name} Mit Hilfe von (db2) describe table {schemaname}.{tablename} kann man Einzelheiten über den Aufbau einer existierenden Tabelle herausfinden. Benutzerverwaltung Das Authentifizierungskonzept von DB2 sieht keine gesonderten Benutzernamen vor, sondern baut auf das Benutzerkonzept des Betriebssystems auf. Jede Kleingruppe meldet sich unter dem Namen ihres Accounts bei der Datenbank an, zusätzlich gehört jede Kleingruppe zur Benutzergruppe students. In einer DB2-Instanz gibt es drei Stufen der Zugriffsberechtigung. Als Instanzbesitzer hat jede Gruppe in ihrer Instanz das SYSADM-Recht. SYSADM: Zugriff auf alle Daten und Ressourcen der Instanz SYSCTRL: Verwalten der Instanz, aber kein direkter Zugriff auf Daten SYSMAINT: niedrigste Berechtigungsstufe; kann z.B. Backups erstellen Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 7 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Um Berechtigungen in der Datenbank, mit der man gerade verbunden ist, zu setzen oder zu verändern, bedient man sich des GRANT-Statements. Umgekehrt wird das REVOKE-Statement benutzt, um Rechte auf einer Datenbank zu entziehen. GET AUTHORIZATIONS zeigt die aktuellen Berechtigungen an. Beispiele: (db2) (db2) (db2) (db2) db2s2e80.pdf, S. 569/642 GRANT dbadm ON DATABASE TO USER dbpw0301 GRANT connect, createtab ON DATABASE TO GROUP students GRANT connect ON DATABASE TO public REVOKE connect ON DATABASE TO public Ein Benutzer oder eine Gruppe mit dem DBADM-Recht besitzt automatische auch alle anderen Rechte auf dieser Datenbank, insbesondere auch das Recht IMPLICIT_SCHEMA. Das Recht DBADM kann nicht an PUBLIC vergeben werden. Nur ein Benutzer mit SYSADM-Recht kann das DBADM-Recht an andere Benutzer oder Gruppen verleihen oder entziehen. Wird einem Benutzer ein Recht entzogen, bedeutet das nicht notwendig, dass dieser das Recht nun nicht mehr besitzt, da Rechte auch durch Zugehörigkeit zu Gruppen bestehen können. Wer das Recht DBADM oder SYSADM besitzt kann Berechtigungen für ein Schema ändern. Dabei kann einem Benutzer auch das Recht gegeben werden, die erhaltenen Rechte an Dritte weiterzugeben. Der Befehl zum Vergeben bzw. Entziehen von Rechten auf Schemata ist GRANT/REVOKE ... ON SCHEMA. Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 8 von 16 db2s2e80.pdf, S. 583/657 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Übersicht über die neuen Befehle ? ? command start dbm stop dbm get dbm configuration catalog tcpip node name list node directory uncatalog node name catalog database name as alias list database directory uncatalog database alias create databse name drop database name connect to name terminate set schema name get authorizations grant privilege on database to public/group name/user name revoke privilege on database to public/group name/user name list tables for schema name describe table name Hilfe Hilfe zu einem Befehl Datenbankmanager starten Datenbankmanager stoppen Konfiguration des Datenbankmanagers anzeigen entfernten Datenbankserver als lokalen Knoten name katalogisieren Verzeichnis aller katalogisierten Knoten anzeigen katalogisierten Knoten name aus dem Verzeichnis entfernen Datenbank name unter lokalem Alias alias katalogisieren Verzeichnis aller katalogisierter Datenbanken anzeigen als alias katalogisierte Datenbank aus dem Verzeichnis entfernen neue Datenbank name erstellen Datenbank name löschen Verbinden mit Datenbank name Verbindung mit Datenbank beenden das aktuelle Schema auf name setzen die Privilegien auf der aktuellen Datenbank anzeigen allen, einer Gruppe oder einem Benutzer auf der aktuellen Datenbank ein Privileg verleihen ein Privileg auf der aktuellen Datenbank wieder zurücknehmen alle Tabellen für das Schema name anzeigen den Aufbau und die Attribute der Tabelle Name anzeigen Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 9 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Aufgaben Vorbereitung (Hausaufgaben zur Semesteraufgabe) Im Laufe dieses Praktikums soll eine sogenannte „soziale Bibliothek” entwickelt werden. Das ist ein datenbank-basiertes Programm, mit welchem eine Gruppe von Anwendern ihre privaten Bücher, Zeitschriften und Comics katalogisieren kann. Dazu müssen Anwender und deren Daten (Name, Email, evtl. mehr) verwaltet werden, außerdem natürlich Bibliotheksobjekte und deren Besitzverhältnisse. Ein Bibliotheksobjekt sei in diesem Kontext ein physisches Schriftstück (Buch, Zeitschrift oder ein Comicband), das ein oder mehrere Werke enthalten kann. Ein Werk sei zum Beispiel Goethes Faust und hat einen Titel und einen (oder mehrere) Autoren, sowie eine Originalsprache. Bücher sind spezielle Bibliotheksobjekte, die eine bestimmte Ausgabe eines Werkes repräsentieren, und besitzen eine eindeutige ISBN, ein Format, sowie evtl. weitere ausgabenspezifische Eigenschaften. Ein Buch kann auch eine Übersetzung sein und dann eine andere Sprache haben als das Originalwerk. Zeitschriften sind spezielle Bibliotheksobjekte, die üblicherweise mehrere Werke in Form von Artikeln enthalten. Eine Zeitschrifenausgabe wird bestimmt durch die ISSN der Reihe, den Jahrgang und die Nummer. Comicbände können entweder in Buchform als Sammlung von einzelnen Werken (Comics), oder als Einzelausgaben in einer Comicreihe wie eine Zeitschrift vertrieben werden. Alle Bibliotheksobjekte sollen außerdem in ein hierarchisches Kategoriensystem eingeordnet werden und können zu Reihen (oder Serien) gehören. Optional unter Angabe der Reihenfolge. Beispiel für eine solche Kategorienhierarchie: Das Buch von Glen Cooks „Sweet Silver Blues” (1987) würde in dieser Hierarchie den Kategorien [Belletristik → Phantastik → Andere Welten] und [Belletristik → Thriller] zugeordnet werden. Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 10 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Neben dem Benutzer gibt es weitere Personen, die entweder Autoren von Werken sein können, oder einen Beitrag (z.B. Coverdesigner oder Herausgeber) zu einem bestimmten Bibliotheksobjekt geleistet haben. Zu diesen wird nur ein Name und eine eindeutige ID benötigt. Schließlich sollen die Benutzer noch zu einzelnen Bibliotheksobjekten oder Pernonen Schlagwörter (Tags) zuordnen können. Jeweils zwei Schlagwörter können als bedeutingsgleich gekennzeichnet werden. Legt eure Modellierung offen genug an, um sie evtl. später mit Informationen zu Charakteren oder Handlungsorte ergänzen zu können. V1: Modellierung als E/R-Diagramm (a) Modelliert eine Mini-Welt für die oben beschriebene Semesteraufgabe. Verwendet dabei die Entitäten Anwender, Person, Katalogeintrag, Werk, Buch, Zeitschrift, Comicband, Reihe, Tag und Kategorie. (b) Überprüft anhand der folgenden Testdaten, ob ihr alle Fakten in eurer Modellierung darstellen könnt. Passt gegebenfalls eure Modellierung an. == Beispiel 1: Ein Werk und verschiedene Buchausgaben == Das Werk "Cryptonomicon" von Neal Stephenson (1999), Englisch gibt es unter anderem in Form folgender Bücher: "Cryptonomicon", Neal Stephenson ISBN 0060512806 Taschenbuch, B&T, 2002 Englisch "Cryptonomicon", Neal Stephenson ISBN 0099410672 Taschenbuch, Random House, 2000 Englisch "Cryptonomicon", Neal Stephenson ISBN 0380973464 gebundene Ausgabe, Avon Books, 1999 Englisch "Cryptonomicon", Neal Stephenson ISBN 344245512X Taschenbuch, Goldmann, 2005 Deutsch Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 11 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr == Beispiel 2: Eine Zeitschrift und Artikel == "Journal of the American Society for Information Science and Technology" Herausgeber (Editor): Donald H. Craft, ISSN: 1532-2882 Jahrgang 59, Ausgabe 7 (2008) enthält u.a. die Artikel (Werke): * "Domain-independent automatic keyphrase indexing with small training sets" von Olena Medelyan, Ian H. Witten * "Eye tracking and online search: Lessons learned and challenges ahead" von Lori Lorigo, Maya Haridasan, Hr?nn Brynjarsd?ttir, Ling Xia, Thorsten Joachims, Geri Gay, Laura Granka, Fabio Pellacini, Bing Pan * "User-based identification of Web genres" von Mark A. Rosso == Beispiel 3: Ein Comic-Sammelband == Das Trade Paperback "Buffy the Vampire Slayer - the Death of Buffy (TP)" (2002) von Fabian Nicieza, Tom Fassbender, Jim Pascoe, publiziert von Dark Horse Comics (ISBN 1-84023-516-0) umfasst die folgenden Comicbände der Reihe "Buffy the Vampire Slayer": * "#43 - The Death of Buffy, part 1" von Tom Fassbender, Jim Pascoe * "#44 - The Death of Buffy, part 2" von Tom Fassbender, Jim Pascoe * "#45 - The Death of Buffy, part 3" von Tom Fassbender, Jim Pascoe * "#46 - Withdrawal" von Tom Fassbender, Jim Pascoe (c) Welche Beziehungen gibt es zwischen den genannten Entitäten? Gebt auch die Rollen und Funktionalitäten an. (d) Zwischen welchen Entitäten gibt es eine Generalisierungsbeziehung? (e) Welche Attribute sind für die jeweiligen Entitäten und Beziehungen unbedingt notwendig? Welche wären vielleicht sinnvoll, aber nicht unbedingt notwendig? (f) Welche Attribute bzw. Attributkombinationen sind Schlüsselkandidaten? (g) Gibt es in Eurem Modell schwache Entitäten? (h) Gibt es in Eurem Modell rekursive Beziehungen? Hinweis: Für diese Aufgabe sind ein Diagramm und begleitende Notizen ausreichend, es muss nicht jede Teilaufgabe separat gelöst werden. Ihr solltet vor allem in der Lage sein, Eure Lösung in der Praktikumssitzung vorzustellen und zu erklären. Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 12 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Präsenz In der ersten Praktikumswoche habt Ihr bereits erste Erfahrungen mit dem Kommandozeilenwerkzeug (CLP) db2 gemacht. Ihr habt den Knoten salz mit der Instanz dbprak katalogisiert und konntet das im node directory nachvollziehen. Ebenso habt Ihr die Datenbank sample unter dem Alias mysample katalogisiert und sie dann im db directory wiedergefunden. Vielleicht habt Ihr auch schon auf die Datenbank zugegriffen. Sowohl der Knoten (also die Instanz dbprak auf dem Recner salz), als auch die Datenbank gehören jedoch dem Account dbprak. Ihr konntet nur lesend zugreifen. In dieser Woche wollen wir nun eine eigene Datenbank in Eurer eigenen DB2-Instanz anlegen und zum Schluss dem Account dbprak Leserechte geben. Die hierfür benötigten Befehle solltet Ihr am besten in einer Textdatei speichern, um sie später über die Webseite hochladen zu können. Dies ist für die Bescheinigung Eurer Teilnahme an dieser Praktikumssitzung notwendig. P1: Informationen über eine Datenbank ermitteln (a) Verschafft Euch wie in der letzten Woche Zugriff auf die Instanz dbprak auf dem Rechner salz (beides zusammen entspricht dem Knoten, den Ihr letzte Woche katalogisiert habt). Testet, ob Ihr auf die existierende Datenbank sample zugreifen könnt. (b) Versucht, möglichst viel über diese Datenbank herauszufinden. Zu welchem Schema gehört sie? Welche Tabellen existieren, wie sind diese aufgebaut? Welche Berechtigungen habt Ihr auf der Datenbank? Tabellen: Schema der Datenbank: Berechtigungen: Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 13 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr P2: Eigene Datenbank anlegen (a) Um eine eigene, neue Datenbank anzulegen, müsst Ihr Euch mit dem Datenbank-Server salz verbinden. Benutzt dazu das Icon auf dem Desktop oder den Befehl ssh salz db2 -c -t (b) Zunächst muß der Datenbankmanager für die aktuelle Instanz gestartet sein. (c) Legt dann eine neue, eigene Datenbank mit dem Namen biblio an. Befehl: (d) Gebt Eurem Tutor (mit dem Accountnamen dbprak) die Berechtigung, sich mit Eurer Datenbank zu verbinden. Befehl: (e) Beendet die Verbindung zur Datenbank dann wieder mit terminate P3: Eigene, entfernte Datenbank lokal katalogisieren (a) Katalogisiert Eure eigene Instanz dbp08XX auf dem Server salz.is.inf.uni-due.de mit dem Port 500XX (das XX ist wiederum jeweils durch Eure Account-Nummer zu ersetzen). Benutzt als Katalogisierungsalias groupXX statt salz. Befehl(e): Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 14 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr (b) Nach der Katalogisierung sollte Euer lokaler Knotenkatalog wie folgt aussehen: Node Directory Number of entries in the directory = 2 Node 1 entry: Node name Comment Directory entry type Protocol Hostname Service name = = = = = = SALZ = = = = = = GROUP38 LOCAL TCPIP salz.is.inf.uni-due.de 50050 Node 2 entry: Node name Comment Directory entry type Protocol Hostname Service name LOCAL TCPIP salz.is.inf.uni-due.de 50038 (c) Katalogisiert nun auf dem lokalen Rechner unter dem Knoten Eurer Instanz (also groupXX) die neu erstellte Datenbank unter dem Alias biblioXX (ersetzt das XX wieder durch Eure Gruppennummer). Befehl(e): Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Seite 15 von 16 Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr Nach der Katalogisierung sollte Euer lokales Datenbank-Verzeichnis wie folgt aussehen: System Database Directory Number of entries in the directory = 3 Database 1 entry: Database alias Database name Node name Database release level Comment Directory entry type Catalog database partition number = = = = = = = MYSAMPLE SAMPLE SALZ a.00 = = = = = = = BIBLIO38 BIBLIO GROUP38 a.00 = = = = = = = BIBLIO BIBLIO /export/a/home/dbp0838 a.00 Remote -1 Database 2 entry: Database alias Database name Node name Database release level Comment Directory entry type Catalog database partition number Remote -1 Database 3 entry: Database alias Database name Local database directory Database release level Comment Directory entry type Catalog database partition number Praktikum Datenbanken / DB2 Woche 2: Modellierung und DB2-Grundlagen Indirect 0 Seite 16 von 16