Beschreibung dbframe - BFH

Werbung
Das Program dbframe
Mit dem Programm dbframe können Queries sowohl in sql wie auch in relationaler Algebra
abgesetzt werden.
Installieren von dbframe
Die Software kann von meiner Homepage
staff.ti.bfh.ch/fep1 Datenbanken
herutergeladen werden. Entpacken Sie die Software mit unzip. Die Software wird im Subdirectory dbframe installiert. Das Programm dbframe verwendet einen Propertyfile RelAlgProperty.pr,
wo alle nötigen Angaben wie Driver, URL, Username, password usw. eingetragen sind. Dieses
File muss editiert werden und die folgenden Anpassungen vorgenommen werden:
• Bei der Property url muss der Text <DATABASENAME> durch Ihr Mailkürzel (kleinbuchstaben) ersetzt werden.
• Bei der Property user muss der Text <USERNAME> durch Ihr Mailkürzel ersetzt werden.
Eine MariaDB Datenbank ist für Sie auf dem Server db.bfh.ch schon installiert. Der Name
der Datenbank ist Ihr Mailkürzel. Der Benutzer ist auch Ihr Mailkürzel und das Passwort ist
student. Um auf die Datenbank zugreifen zu können müssen Sie zuerst vpn starten.
Verwendung von dbframe
Nun können Sie dbframe in einem DOS-Fenster oder UNIX-Shell folgendermassen Starten:
java -jar databaseframe [propertyfile]
Falls kein Propertyfile angegeben wird, so wird zuerst das File RelAlgProperty.pr auf dem
aktuellen Directory gesucht und falls dort nicht vorhanden auf Ihrem Homedirectory.
Befehle der relationalen Algebra
Die folgenden Befehle stehen zur Verfügung:
1
Relation auslisten
Um alle Tuple einer Relation auszugeben muss nur der Name des entsprechenden Relationenschemas angegeben werden.
Beispiele:
Mitarbeiter
Projekt
Die Selektion σ
select(rel-expr, condition)
rel-expr := Eine Relation oder das Resultat eines relationalen Ausdrucks.
condition := Ein Boolscher Ausdruck mit den Operatoren or, and und not.
Achtung:
String- und Datums-Konstanten sind immer in Hochkommas zu setzen. (’2001-01-02’,
’Meier’, usw.)
Die Konstante null existiert nicht. Zum testen ob ein Attribut null ist oder nicht, müssen
die Boolschen Funktionen isnull() und isnotnull() verwendet werden.
Beispiele:
select(Projekt, PStandort=’Bern’ and paNr>1)
select(Mitarbeiter, isnull(Vorgesetzter))
Die Projektion π
project(rel-expr, attribute {,attribute})
Beispiel: project(Mitarbeiter, mNr, Name, Ort)
Der natürliche Verbund ./
natjoin(rel-expr, rel-expr)
Beispiel: natjoin(Mitarbeiter, Angehoeriger)
Die Vereinigung ∪
union(rel-expr, rel-expr)
Beispiel: union(select(Mitarbeiter, Name = ’Meier’), select(Mitarbeiter, Ort = ’Bern’))
Der Durchschnitt ∩
intersect(rel-expr, rel-expr)
Beispiel: intersect(select(Mitarbeiter, Name = ’Meier’), select(Mitarbeiter, Ort = ’Bern’))
Die Differenz \
except(rel-expr, rel-expr)
Beispiel: except(select(Mitarbeiter, Name = ’Meier’), select(Mitarbeiter, Ort = ’Bern’))
Die Umbenennung β
rename(rel-expr, newattr <- attribute {,newattribut <- attribute)})
Beispiel: rename(project(Mitarbeiter, Ort, Name), Wohnort <– Ort, Famillienname <–
Name)
Das Resultat dieser Operationen ist immer eine Relation. Mit dem execute-Button wird der
Query ausgeführt und das Resultat als Tabelle angezeigt.
2
Views
Man kann ein Query auch einer Variablen zuweisen. So entsteht eine sogenannte temporäre
View. Nach der Zuweisung kann die Variable wie die anderen Relationen in Ausdrücken verwendet werden. Die View ist gültig bis die entsprechende Variable überschrieben wird oder
das Programm verlassen wird.
Beispiel:
Im folgenden Beispiel wollen wir den Natürlichen Verbund von Mitarbeiter mit ihren Angehörigen in eine View speichern.
MitAng := natjoin (Mitarbeiter, Angehoeriger)
Der Name MitAng ist nun für dieses Resultat reserviert und kann im folgenden gleich verwendet werden, wie der Name einer Basisrelation. Wir können nun aus dieser View selektieren
select(MitAng, Name = ’Meier’)
Weitere nützliche Befehle
list
Listet alle Relationen der Datenbank am Bildschirm aus.
describe Relationenchema
Listet die Attribute des angegebenen Realtionenschemas aus.
Mehrere Befehle und Kommentare
Wenn Sie mehr als einen Befehl der Datenbank senden wollen, so müssen diese durch einen
Strichpunkt getrennt werden. Kommentare können entweder als sql-Zeilenkommentare oder
als C-Blockkommentare geschrieben werden.
Beispiel:
Das folgende Beispiel zeigt wie mehrere Befehle und Kommentare gemischt werden können.
Beachten Sie auch, dass Programme von einem File eingelesen und auch auf einem File wieder
gespeichert werden können.
/* Dies ist ein Kommentar mit
* C-Syntax
*/
-- Alle Relationen ausgeben
list;
-- Alle Mitarbeiter ausgeben
Mitarbeiter;
-- Mitarbeiter mit Angeh\"origen speichern
R := natjoin(Mitarbeiter, Angehoeriger);
3
Shortcuts
Für alle Buttons in DatabaseFrame können auch Shortcuts verwendet werden:
Button
execute
clear input
clear output
print output
save to file
load from file
undo
Shortcut
CTRL-E
CTRL-I
CTRL-O
CTRL-P
CTRL-S
CTRL-L
CTRL-U
Die Shortcuts können im Propertyfile umdefiniert werden (Einschränkung: es müssen CTRLKeys sein).
4
Herunterladen