Scriptsprachen und ihre Anwendungen Beispielloesungen zu Blatt 2 ============================ Aufgabe 1: ---------- Hier sollte klargeworden sein, dass ein View eine vordefinierte Abfrage ist, die sich aber wie eine echte Tabelle (bei "select"-Statements) verhaellt. Es handelt sich also um eine "virtuelle Tabelle". Ein sinnvoller Einsatz von views waere beispielsweise, dass sie bei komplizierten Abfragen viel Tip-Arbeit ersparen. Ein "insert into..." laesst sich auf Views insbesondere dann nicht ausfuehren, wenn via join mehrere Tabellen miteinander verknuepft wurden oder die Views nur Teile von Tabellen (nicht alle Spalten) enthalten. Man unterscheidet deshalb auch zwischen "read-only"-Views und "updatable" Views. Aufgabe 2: ---------- Diese Aufgabe diente zu Experimentier-Zwecken und sollte Euch eine Motivation sein. Denn wie Ihr vermutlich gemerkt habt, koennt Ihr allein mit den Kenntnissen, die wir innerhalb einer Woche ueber relationale Datenbanken und SQL erworben haben, nun schon "ein wenig" die Programme OpenOffice Base bzw. Microsoft Access bedienen. Wichtig ist ausserdem, dass Ihr erkannt habt, dass man mit diesen Programmen wahlweise lokal arbeiten kann (dann liegen die Daten auf dem eigenen Rechner) oder sie als Klienten fuer einen Datenbank-Server nutzen kann. Dann arbeitet Ihr also auf externen Datenquellen. Aufgabe 3: ---------- Teilaufgabe 1a) --------------- Im Suchfeld (CTRL-F) unter "More Options..." das Kreuzchen bei "Regular Expressions" setzen, dann in die Suchmaske [A-Za-z]{3,}t[A-Za-z]{3,} eingeben und Suche starten Teilaufgabe 1b) --------------- Wie 1a), aber in Suchmase eingeben: ^[A-Za-z]{2}_ (wobei das _ am Ende ein Space sein soll / muss!) Teilaufgabe 2) --------------- Hier kommt das Thema "Rueckverweise (Back references)" zum Tragen. Auf Ausdruecke, die in runden Klammern stehen, nimmt man im Ersatztext mit $1, $2, $3 (Nummerierung nach Auftreten im Text) Bezug. Im Suchausdruck hingegen wird statt des "$" der Backslash genutzt. Deshalb sieht die Loesung wie folgt aus: Suchausdruck: ([A-Za-z]{3,})(\1) Ersatztext: $1-$2 Aufgabe 4: ---------- Die Ueberschrift ist selbst ein regulaerer Ausdruck, der fuer "grep", "egrep" und "fgrep" steht. "egrep" ist die Variante von grep, die regulaere Ausdruecke "versteht" und entspricht dem grep mit der Option -E. Analog entspricht "fgrep" dem grep mit der Option -F ("fixed Strings"). Er versteht KEINE regulaeren Ausdruecke sondern eben nur "fixed Strings" und ist deshalb etwas schneller (so gesehen koennte das "f" von fgrep auch fuer "fast" stehen...) Aufgabe 5: ---------- 1.) grep --count Windows *log 2.) grep "13/Sep/2009:18:39:[0-9][0-9].*" logdatei* 3.) egrep "^88\.7[0-5]\.[0-9]{2}\.[0-9]{2} " log* 4.) egrep "^88\.7[0-5]\.[0-9]{2}\.[0-9]{2} " log* | grep -v "Firefox" Aufgabe 6: ---------- egrep -vn "^[0-9]{2}-[a-z]{4}-[0-9]{5}-[a-z]{6}$" clientIDs.txt nh - 10/2009