Vorgehen und Wochenziele

Werbung
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
Herunterladen