Skip to main content
  • 201 Accesses

Zusammenfassung

Die Möglichkeit, mit Hilfe einer Anfragesprache (query language) Anfragen (queries) an die Datenbank zu stellen, sei es durch ein Anwendungsprogramm oder aber ad hoc durch den Endbenutzer am Computer, und unmittelbar darauf eine Antwort vom System zu erhalten, gehört sicherlich mit zu den wesentlichsten Stärken eines DBMS. Anfragen wie „Welche Mitarbeiter der Firma X verdienen mehr als 3000 DM monatlich?“ oder „An welchen Stellen schneiden sich das Wasserwege-und das Straßennetz in der Bundesrepublik?“ können auf unterschiedliche Art und Weise mit unterschiedlichen Kosten ausgeführt werden. Ziel der Anfrageverarbeitung (query processing) ist es, eine gegebene Anfrage unter Ausnutzung logischer Gesetzmäßigkeiten und physischer Strukturen möglichst effizient auszuführen. Aus Sicht des DBMS ist eine Anfrage ein Programm, das übersetzt und ausgeführt werden muss. In diesem Sinne durchläuft eine Anfrage die üblichen, aus dem Übersetzerbau für Programmiersprachen bekannten Phasen der Programmübersetzung: lexikalische Analyse, Parsen (d.h. syntaktische Analyse), Validierung (d.h. semantische Analyse) und Code-Generierung. Hinzu kommt bei Datenbankanfragen allerdings noch ein zusätzlicher Aspekt, der vom meist nichtprozeduralen, deklarativen Charakter der Anfrage(sprache)n herrührt. Bei der Formulierung einer Anfrage beschreiben wir, was das Problem ist, anstatt dem DBMS mitzuteilen, wie das Problem zu lösen ist. Folglich muss das DBMS entscheiden, wie das Problem zu lösen ist, und, falls es mehrere Lösungsalternativen gibt, diejenige mit minimalen Kosten auswählen. Eine effiziente Anfrageauswertung hängt natürlich insbesondere davon ab, wie die Daten physisch gespeichert sind. Vorhandene Indexe können die Anfrageverarbeitung beträchtlich beschleunigen. Neben der vom Anfrage-Parser (query parser) durchgeführten Anfrageübersetzung (query translation) und der vom Anfrage-Ausführer (query executor) bewirkten Anfrageausführung (query execution) spielt also die Anfrageoptimierung (query optimization), für die der AnfrageOptimierer (query optimizer) zuständig ist, eine wichtige Rolle, um lange Ausführungszeiten zu vermeiden. Parser, Ausführer und Optimierer bilden zusammen den Anfrage-Prozessor (query processor). In diesem Kapitel werden wir uns hauptsächlich auf die Übersetzung, Optimierung und Ausführung von Anfragen, die auf dem relationalen Datenmodell beruhen, konzentrieren.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 19.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Schneider, M. (2004). Anfrageverarbeitung. In: Implementierungskonzepte für Datenbanksysteme. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-55888-7_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-55888-7_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41962-4

  • Online ISBN: 978-3-642-55888-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics