WWW.ABSTRACT.XLIBX.INFO
FREE ELECTRONIC LIBRARY - Abstract, dissertation, book
 
<< HOME
CONTACTS



Pages:   || 2 | 3 | 4 | 5 |   ...   | 8 |

«Bachelorarbeit im Studiengang Informatik Relationenalgebra als Datenbankanfragesprache Stefanie Bernhardt Matr.-Nr. 2517460 12. Mai 2009 Prüfer und ...»

-- [ Page 1 ] --

Leibniz Universität Hannover

Fakultät für Elektrotechnik und Informatik

Institut für Praktische Informatik

Fachgebiet Datenbanken und Informationssysteme

Bachelorarbeit

im Studiengang Informatik

Relationenalgebra als Datenbankanfragesprache

Stefanie Bernhardt

Matr.-Nr. 2517460

12. Mai 2009

Prüfer und Betreuer: Prof. Dr. Udo Lipeck

Zweitprüfer: Dr. Hans Hermann Brüggemann

Inhaltsverzeichnis

1 Einleitung 3

1.1 Zielsetzung der Arbeit............................. 3

1.2 Gliederung der Arbeit............................. 3 2 Grundlagen 4

2.1 Die Relationenalgebra............................. 4 2.1.1 Grundoperationen............................ 4 2.1.2 Ableitbare Operationen......................... 5 2.1.3 Erweiterung der Relationenalgebra.................. 6

2.2 Prinzipieller Aufbau eines Compilers..................... 7

2.3 JavaCC..................................... 8

2.4 Die JavaCC-Grammatikdatei.......................... 9 3 Anforderungen im Detail 12

3.1 Mindestanforderungen............................. 12

3.2 Verbesserungsmöglichkeiten.......................... 13 4 Entwurf 14

4.1 Syntax der Anfragesprache........................... 14

4.2 Analyse der Eingabe.............................. 16 4.2.1 Lexikale Analyse........

–  –  –

Kapitel 1 Einleitung

1.1 Zielsetzung der Arbeit Ziel dieser Arbeit ist die Entwicklung einer Datenbankanfragesprache auf Basis der Relationenalgebra. Dazu soll eine graphische Benutzerschnittstelle bereitgestellt werden, die auf komfortable Weise die Eingabe von Anfragen in der Relationenalgebra ermöglicht, sowie Ausgaben und ggf. Fehlermeldungen anzeigt. Die Anfragen werden intern in ihrer Struktur analysiert und auf Fehler geprüft. Im Fall eines Fehlers soll eine aussagekräftige Fehlermeldung ausgegeben werden. Ist die Anfrage fehlerfrei, so wird sie vereinfacht, in SQL übersetzt und an das Oracle-DBS gesendet. Die Ergebnistabellen sollen dem Nutzer in einem Ausgabebereich angezeigt werden.

Der Hauptteil dieser Arbeit wird sich mit der Analyse, der Vereinfachung und der Übersetzung von Anfragen beschäftigen. Daneben spielen die Bereitstellung der Benutzerschnittstelle, die Verbindung zum Datenbanksystem und die Erweiterbarkeit eine große Rolle.

Nach seiner Fertigstellung soll das Programm Studenten als Lernmittel dienen, um den sonst nur theoretischen Umgang mit der Relationenalgebra durch praktische Anwendung besser verinnerlichen zu können.

1.2 Gliederung der Arbeit Im Anschluss an diese kleine Einleitung sollen zunächst die nötigen Grundlagen erläutert werden, bevor etwas detaillierter auf die Anforderungen eingegangen wird. Im vierten Kapitel soll der Entwurf vorgestellt werden. Hier wird zunächst die Anfragesprache entworfen.

Die folgenden Unter-Kapitel beschäftigen sich mit dem Entwurf der einzelnen Analyseund Übersetzungs-Komponenten. Kapitel 5 gibt einen Überblick über die implementierten Klassen. Abschließend wird die Benutzeroberfläche vorgestellt.

Kapitel 2 Grundlagen

2.1 Die Relationenalgebra Die Relationenalgebra ist die Menge aller endlichen Relationen zusammen mit Operationen. Durch Kombination von Operationen lassen sich Terme formulieren, die man als prozedurale Datenbank-Anfragesprache auffassen kann.

Im Folgenden werden die einzelnen relationalen Operationen beschrieben. Dabei sei jeweils für die Relation R das Schema (A1 : D1,..., An : Dn ), sowie für die Relation S das Schema (B1 : D1,..., Bm : Dm ) mit Attributen Ai, Bj und Datentypen Dk vorausgesetzt.

2.1.1 Grundoperationen

• R∪S Die Vereinigung R ∪ S vereinigt alle Tupel zweier Relationen R und S unter der Vorraussetzung, dass beide Relationen die gleichen Schemata besitzen.

Voraussetzung: Schema(R)=Schema(S)=(A1,..., An ) Ergebnis-Schema: (A1,..., An ) Ergeibnis-Relation: {t | t ∈ R ∨ t ∈ S}

–  –  –

• σϕ (R) Die Selektion σϕ (R) liefert eine Teilmenge aller Tupel einer Relation R entsprechend der Selektionsformel ϕ. Dabei ist ϕ entweder eine atomare Selektionsformel

oder eine Zusammensetzung atomarer Selektionsformeln mit den logischen Operatoren ∧, ∨, ¬, ⇒, ⇔. Eine atomare Selektionsformel sei ϕ = θ (α1,..., αn ) mit θ:

n-stelliger Vergleichsoperator und αk : Attributterm aus R-Attributen, DatentypOperationen und Datentyp-Konstanten.

Ergebnis-Schema: Schema(R)=(A1,..., An ) Ergebnis-Relation: {t | t ∈ R ∧ t erfüllt ϕ}

• πA (R) ¯

–  –  –

• R×S Das Kartesische Produkt R × S bildet alle möglichen Kombinationen von Tupeln aus R und S. Vorraussetzung ist, dass die Attributmengen von R und S disjunkt sind.

Voraussetzung: {A1,..., An } ∩ {B1,..., Bm } = ∅ Ergebnis-Schema: (A1,..., An, B1,..., Bm ) Ergebnis-Relation: {t | r ∈ R, s ∈ S, t = r · s} 2.1.2 Ableitbare Operationen





• R ∩ S = R − (R − S) Der Durchschnitt R ∩ S liefert alle Tupel, die in R und S enthalten sind.

Voraussetzung: Schema(R)=Schema(S)=(A1,..., An ) Ergebnis-Schema: (A1,..., An ) Ergebnis-Relation: {t | t ∈ R ∧ t ∈ S}

–  –  –

Der Verbund bzw. Join liefert alle Kombinationen von R- und S-Tupeln bei denen die Verbundsbedingung ϕ erfüllt ist. Dabei ist die Verbundsbedingung ϕ eine Mengen von ∧-verknüpften Vergleichen Ai θBj von Attributtermen von R und S mit Vergleichsoperator θ. Für θ ≡= handelt es sich um einen Equijoin.

Ergebnis-Schema: (A1,..., An ) · (B1,..., Bm ) Ergebnis-Relation: {r · s | r ∈ R ∧ s ∈ S ∧ r, s erfüllen ϕ}

–  –  –

Der Anti-Semijoin R ϕ S = R − (R ϕ S) liefert alle R-Tupel, die keine Joinpartner in S haben.

Ergebnis-Schema: Schema(R)=(A1,..., An ) Ergebnis-Relation: {t ∈ R | ¬∃ (s ∈ S) t, s erfüllen ϕ}

–  –  –

• Division R ÷ S Für R(A1,..., An ) und S(B1,..., Bm ) und unter der Voraussetzung (B1,..., Bm ) = (An−m+1,..., An ) selektiert die Division R ÷ S alle (A1,..., An−m )-Tupel aus R die mit allen S-Tupeln in R auftreten.

Voraussetzung: Schema(S) ⊆ Schema(R), S = ∅ Ergebnis-Schema: (A1,..., An−m ), Ergebnis-Relation: { t : (A1,..., An−m ) | ∃(r ∈ R) ( t = πA1,...,An−m (r) ∧ ∀(s ∈ S) t·s ∈ R)}

• Umbenennungen Jeder Relationsoperand darf mit einem Alias versehen werden. Für eine Relation R und ein Alias X, ist die Schreibweise (R X). Auf die Attribute der umbenannten R-Relation wird mit X.Ai zugegriffen.

2.1.3 Erweiterung der Relationenalgebra

• ΓG#F (R) ¯¯

–  –  –

2.2 Prinzipieller Aufbau eines Compilers Im Allgemeinen bestehen Compiler aus sechs Funktionseinheiten mit klar abgegrenzten Aufgabenbereichen. Dieses Vorgehen ermöglicht eine hohe Wiederverwendbarkeit einzelner Komponenten und vereinfacht nachträgliche Änderungen durch Austauschen einzelner Einheiten. In der Praxis gibt es durchaus Abweichungen in der Anzahl der Komponenten, sowie in der Verteilung ihrer Aufgaben, was aber an der grundlegenden Funktionsweise nichts ändert. Im folgenden Abschnitt werden kurz die typischen Funktionseinheiten erläutert.

Lexikale Analyse Die aktive Komponente der lexikalen Analyse ist der Scanner bzw. Lexer. Der Scanner liest den zu übersetzenden Code zeichenweise ein und erzeugt daraus eine Tokenfolge. Jedes Token besteht dabei aus einer Tokenklasse und ggf. einem Tokenwert. Ein Tokenwert ist ein Zeiger auf den entsprechenden Eintrag in der Symboltabelle, in welcher Informationen über die auftretenden Tokens abgespeichert werden.

Syntaktische Analyse Die aktive Komponente der syntaktischen Analyse ist der Parser. Er analysiert die vom Scanner erzeugte Tokenfolge anhand einer Grammatik, die die Syntax der Quellsprache beschreibt, und erzeugt daraus einen Syntaxbaum.

Semantische Analyse Die letzte Analysephase ist die semantische Analyse. Die Hauptaufgaben der semantischen Analyse sind die Datentypprüfung und die Untersuchung von Gültigkeitsbereichen. Bei behebbaren Typfehlern kann ggf. eine Typanpassung vorgenommen werden.

Zwischencodeerzeugung Damit ist die Analyse der Eingabe abgeschlossen. In manchen Fällen wird an dieser Stelle schon direkt der Zielcode erzeugt. Im Allgemeinen wird jedoch zunächst ein Zwischencode erzeugt, der sich leicht produzieren lässt und sich leicht in die Zielsprache übersetzen lässt.

Der Zwischencode kann als Basis für verschiedene Übersetzungen in ähnliche Sprachen dienen und soll Optimierungen vereinfachen.

Codeoptimierung Der Zwischencode wird nun in Hinblick auf Laufzeitverhalten und Speicherplatzbedarf optimiert. Dazu werden zum Beispiel überflüssige Berechnungen entfernt oder Anweisungen verschoben, sofern sie im Zielcode dadurch seltener ausgeführt werden müssen und die Verschiebung semantisch nichts verändert.

Zielcodeerzeugung In der letzten Phase wird nun aus dem optimierten Zwischencode der Zielcode erzeugt.

2.3 JavaCC JavaCC steht für Java Compiler Compiler und ist gleichzeitig Scanner- und Parsergenerator, der in Java implementiert ist und Java-Code erzeugt. JavaCC ist Open Source und unter den Bedingungen der BSD-Lizenz herausgegeben. Optional kann statt Scanner und Parser auch nur eine der Komponenten erzeugt werden. Ein einfacher generierter Scanner (TokenManager) erzeugt eine Tokenfolge und speichert für jedes Token den Tokenwert, die Tokenklasse und die Position. Der Tokenmanager wirft Fehler vom Typ TokenMgrError, die die Fehlerquelle gut beschreiben. Für Fehler in der Eingabe wird eine Fehlermeldung mit der genauen Position des unerwarteten Zeichens und einigen zusätzlichen Informationen ausgegeben. Auch interne Fehler, wie Endlosschleifen oder der Versuch einer zweiten Instanzierung des Tokenmanagers werden identifiziert. Der generierte Parser ist ein LL(n)Parser, wobei standardmäßig n=1 ist. Das Lookahead kann aber nicht nur optional größer eingestellt werden, sondern auch dynamisch während des Parsens angepasst werden. (ParseException noch erklären ) Einfache Scanner und Parser können mit wenig Aufwand erzeugt werden. JavaCC bietet aber auch zahlreiche Möglichkeiten komplexere Strukturen zu scannen und zu parsen.

Für den Tokenmanager können verschiedene Zustände (lexical states) definiert werden, in denen er unterschiedliche Token erkennt, was zum Beispiel zur Handhabung von Kommentaren hilfreich sein kann. Neben normalen Token und zu überlesenden Zeichenketten lassen sich SpecialTokens definieren, die an jeder beliebigen Stelle im Programm unabhängig von der Grammatik auftreten dürfen und keinen Einfluss auf den Parsingvorgang haben. Um dies zu gewährleisten tauchen die SpecialToken in der normalen Tokenfolge nicht auf. Stattdessen besitzt jedes Token einen zweite Referenz, auf ein SpecialToken unmittelbar vor dem Token. Jedes SpecialToken besitzt eine Referenz zum nächsten SpecialToken. Somit kann bei Bedarf auf die normale Tokenfolge ohne Specialtokens, auf die Specialtokenfolge und auf die Position der SpecialTokens innerhalb der Tokenfolge zugegriffen werden. Zusätzlich gibt es noch eine vierte Möglichkeit mit gescannten Zeichen umzugehen, dabei wird die eingelesene Zeichenkette zunächst zwischengespeichert und dem nächsten erkannten Token zugefügt. Auch diese Funktion kann zum Beispiel beim Umgang mit Kommentaren hilfreich sein.

Die Token für die Lexikale Analyse, sowie die Grammatik für den Parser, Einstellungen des Compilers und Javacode-Fragmente werden zusammen in einer Grammatikdatei definiert. Dabei werden die Token entweder als Strings oder als reguläre Ausdrücke notiert. Die Parser-Produktionen werden in EBNF oder in Javacode angegeben. Aus der Grammatikdatei erzeugt der JavaC-Compiler alle nötigen Dateien. Die erzeugten Klassen umfassen dabei die Klassen für den Parser, den Scanner (TokenManager) und eine Constants-Klasse, welche die definierten Token auf Konstanten abbildet. Diese Klassen werden bei jedem Kompiliervorgang neu erzeugt. Zusätzlich werden, sofern sie nicht bereits vorhanden sind, vier weitere Klassen erzeugt: Token.java, SimpleCharStream.java, TokenMgrError.java und ParseException.java.

Ein großer Vorteil von JavaCC ist, dass man sehr viele Möglichkeiten hat die Erzeugung von Klassen und deren Verhalten zu beeinflussen. Beispielsweise bietet JavaCC verschiedene Optionen, die zu Beginn in der Grammatikdatei auf die gewünschten Werte gesetzt werden können. Zum Beispiel lässt sich mit den Optionen USER_CHAR_STREAM und USER_TOKEN_MANAGER die Erzeugung der konkreten Charstream- und TokenManagerKlassen unterbinden und stattdessen Interfaces erzeugt. Über die Option BUILD_PARSER lässt sich die Erzeugung des Parsers abstellen. COMMON_TOKEN_ACTION ist eine Option die standardmäßig false ist. Setzt man sie auf true, so wird nach jedem gescannten Token die Methode CommonTokenActen(Token t) aufgerufen, die man selbst definieren kann. Dies eignet sich zum Beispiel sehr gut um die Symboltabelle mit den verschiedenen Token zu füllen. Natürlich gibt es noch eine Vielzahl weiterer Optionen, auf die ich aber an dieser Stelle aber nicht weiter eingehen möchte.



Pages:   || 2 | 3 | 4 | 5 |   ...   | 8 |


Similar works:

«Gentherapie der Rheumatoiden Arthritis mit foamyviralen Vektoren DISSERTATION zur Erlangung des naturwissenschaftlichen Doktorgrades der Bayerischen Julius-Maximilians-Universität Würzburg (Dr. rer. nat.) vorgelegt von Dipl. Biochem. Nicole Armbruster aus Marbach am Neckar Würzburg, 2011 Erklärung Hiermit erkläre ich an Eides statt, dass ich die Dissertation „Gentherapie der Rheumatoiden Arthritis mit foamyviralen Vektoren“ selbständig angefertigt und keine anderen als die von mir...»

«Contents General Terms and Conditions of Carriage (GTACC) 1. Definitions 2. Scope of Application 3. Booking 3.1 Contact Details for Notification and Information 3.2 Contract of Carriage 3.3 Ticket 3.4 Rebooked Flights 3.5 Cancellation of and Failure to Use a Ticket 3.6 Web Contact Form – Relatives 4. Prices / Payment 4.1 Fares 4.2 Taxes / Charges / Surcharges 4.3 Fees 4.4 Payments 5. Fares 5.1 FlyFlex/FlyFlex+ Fare 5.2 FlyClassic Fare 5.3 JustFly and FlyDeal Fares 6. Carriage 6.1 Check-In and...»

«Peer Review on Sust ainable Development Policies in Ger many Peer Review der deutsc hen N a c h h a l t i g ke i t s p o l i t i k Björn Stigson (chair), Suresh P Babu, Jeroen Bordewijk, Pamela O’Donnell, Pekka Haavisto, Jennifer Morgan, Derek Osborn Geneva, Kuala Lumpur, Amsterdam, Helsinki, Washington, Ottawa, London 30 September 2009 Mandated by the German Federal Government on 02 November 2007 Beauftragt durch die Bundesregierung am 02. November 2007 Facilitated by the German Council for...»

«Treten Sie ein in den Kreis der TeilnehmerInnen!3. Europäischer Kongress für Storytelling und narratives Management „Von Wertekommunikation zur Wertschöpfung“ 22. und 23. November 2007 in Salzburg www.symbiosis.co.at Impulse für Kommunikationsund Changeprozesse Personalentwicklung Marketingund Strategieprojekte Veranstalter: symbiosis Organisationsberatung | Bayerhamerstraße 47 | A-5020 Salzburg Tel.: 0043 (0) 662/890013 | Fax: 0043 (0) 662/890013-15 | office@symbiosis.co.at |...»

«Playing the Role Daddy's Girl in a Blond Wig #1 by Belle Hart Smashwords Edition Smashwords Edition, License Notes This ebook is licensed for your personal enjoyment only. This ebook may not be re-sold or given away to other people. If you would like to share this book with another person, please purchase an additional copy for each reader. If you’re reading this book and did not purchase it, or it was not purchased for your use only, then please return to your favorite retailer and purchase...»

«Christliche Literatur-Verbreitung e. V. Postfach 11 01 35 · 33661 Bielefeld ВОЛЬФГАНГ БЮНЕ Молитвеная жизнь Иисуса Первое издание 2013 © 2013 by CLV Christliche Literatur-Verbreitung Postfach 11 01 35 · 33661 Bielefeld www.clv.de Перевод с немецкого: Д. П. Воробьев Набор: Enns Schrift & Bild GmbH, Bad Oeynhausen Оформление обложки: Lucian Binder, Marienheide Типография: GGP Media GmbH,...»

«Draft Recommendations on the future electoral arrangements for Gedling in Nottinghamshire December 1999 LOCAL GOVERNMENT COMMISSION FOR ENGLAND LOCAL GOVERNMENT COMMISSION FOR ENGLAND The Local Government Commission for England is an independent body set up by Parliament. Our task is to review and make recommendations to the Government on whether there should be changes to the structure of local government, the boundaries of individual local authority areas, and their electoral arrangements....»

«DR. PRUGBERGER TAMÁS – DR. SZABÓ ÁGNES* SZÜKSÉGES-E A SZAPORÍTÓANYAGOKAT MINŐSÍTENI? KIHÍVÁSOK ÉS AKTUALITÁSOK EGY ÚJ UNIÓS RENDELET ** TERVEZETÉVEL KAPCSOLATBAN Napjainkban számos európai és hazai civil szervezet tiltakozik az Európai Bizottság Egészségügyi és Fogyasztóvédelmi Főigazgatósága által 2012 novemberében közzétett, a növényi szaporítóanyagok forgalmazásáról és előállításáról szóló európai parlamenti és tanácsi rendelet...»

«Sozialisation der Geschlechter: II Von der Geschlechterdifferenz zur Dekonstruktion der Geschlechterdualität II Sozialisation der Geschlechter Zur Einführung6 1 Sozialisation als Prozess der Vergesellschaftung und Individuierung 1 Sozialisation als Prozess der Vergesellschaftung und Individuierung Als individuelles Kind weiblichen oder männlichen Geschlechts heranzuwachsen und als Frau und Mann in einer bestimmten Gesellschaft, aber unterschiedlichen Kontexten zu leben, ist mit...»

«NYC Hospitality Guide 1 Penn Plaza, Suite 4800 New York, NY 10199 Front Desk +1 (212) 372-6996 © Polycom, Inc. All rights reserved.NYC HOSPITALITY GUIDE _ _ Table of Contents Welcome New York City Experience Center Location and Directions Directions from JFK Airport Directions from the Laguardia Airport Directions from Newark Airport Hotels near the NYC Experience Center Restaurants near the NYC Experience Center Entertainment near the NYC Experience Center Tourist Attractions by the NYC...»

«BOOK OF ABSTRACTS FOR THE FOURTH INTERNATIONAL LANGUAGE CONFERENCE ON THE IMPORTANCE OF LEARNING PROFESSIONAL FOREIGN LANGUAGES FOR COMMUNICATION BETWEEN CULTURES 22 AND 23 SEPTEMBER 2011 THE FACULTY OF LOGISTICS AT THE UNIVERISTY OF MARIBOR, MARIBORSKA CESTA 7, CELJE, SLOVENIA Published by UNIVERSITY OF MARIBOR, FACULTY OF LOGISTICS, SLOVENIA Website: http://fl.uni-mb.si/; Email: int.conference@fl.uni-mb.si Phone: +386 (0)3 428 53 00, Fax: +386 (0)3 428 53 38 THE FOURTH INTERNATIONAL LANGUAGE...»

«Masaryk University Faculty of Arts Department of English and American Studies English Language and Literature Alžběta Zedníková The Tenant of Wildfell Hall as a Critique of Jane Eyre Master‟s Diploma Thesis Supervisor: Stephen Hardy, Ph.D. I declare that I have worked on this thesis independently, using only the primary and secondary sources listed in the bibliography... Author‟s signature I would like to thank my supervisor, Stephen Hardy, Ph.D., for his guidance. Table of Contents 1....»





 
<<  HOME   |    CONTACTS
2016 www.abstract.xlibx.info - Free e-library - Abstract, dissertation, book

Materials of this site are available for review, all rights belong to their respective owners.
If you do not agree with the fact that your material is placed on this site, please, email us, we will within 1-2 business days delete him.