Forholdsregning - Relational calculus

Den relasjonelle beregningen består av to beregninger, tuple -relasjonsberegningen og domenerelasjonsberegningen , som er en del av relasjonsmodellen for databaser og gir en deklarativ måte å spesifisere databasesøk.

Den relasjonelle beregningen ligner den relasjonelle algebraen , som også er en del av relasjonsmodellen: Mens relasjonsberegningen er ment som et deklarativt språk som ikke foreskriver noen henrettelsesordre på underuttrykkene til et relasjonsberegningsuttrykk, er relasjonsalgebra ment som et imperativt språk: subuttrykkene til et relasjonsalgebraisk uttrykk er ment å bli utført fra venstre til høyre og innsiden ut etter hekkingen.

Et relasjonsalgebrauttrykk kan foreskrive følgende trinn for å hente telefonnumre og navn på bokhandler som leverer noen prøvebøker :

  1. Bli med i bokbutikker og titler over BookstoreID.
  2. Begrens resultatet av den sammenføyningen med tuples for boken Some Sample Book .
  3. Prosjekter resultatet av denne begrensningen over StoreName og StorePhone.

Et relasjonsberegningsuttrykk ville formulere denne spørringen på følgende beskrivende eller deklarative måte:

Skaff deg StoreName og StorePhone for bokbutikker slik at det finnes en tittel BK med samme BookstoreID -verdi og med en BookTitle -verdi på Some Sample Book .

Den relasjonelle algebraen og relasjonsberegningen er logisk ekvivalente : for ethvert algebraisk uttrykk er det et ekvivalent uttrykk i beregningen, og omvendt. Dette resultatet er kjent som Codds teorem .

Raison d'être for den relasjonelle beregningen er formalisering av spørringsoptimalisering . Spørringsoptimalisering består i å bestemme ut fra en spørring den mest effektive måten (eller manerer) for å utføre den. Spørringsoptimalisering kan formaliseres som å oversette et relasjonsberegningsuttrykk som gir et svar A til effektive relasjonsalgebraiske uttrykk som gir det samme svaret A.

Se også

Referanser

  • Date, Christopher J. (2004). En introduksjon til databasesystemer (8. utg.). Addison Wesley. ISBN 0-321-19784-4.