• Keine Ergebnisse gefunden

n n n n VLDatenbankenI–6–1 n n VLDatenbankenI–6–2 n u u n n VLDatenbankenI–6–3

N/A
N/A
Protected

Academic year: 2022

Aktie "n n n n VLDatenbankenI–6–1 n n VLDatenbankenI–6–2 n u u n n VLDatenbankenI–6–3"

Copied!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

6. Grundlagen von Anfragen

Kriterien für Anfragesprachen

Anfragealgebren

Anfrage-Kalküle

Änderungsoperationen

VL Datenbanken I – 6–1

Einführung

bisher;Relationenschemata mit Basisrelationen, die in der Datenbank gespeichert sind

jetzt;„abgeleitete“ Relationenschemata mit virtuellen Relationen, die aus den Basisrelationen berechnet werden (Basisrelationen bleiben unverändert)

VL Datenbanken I – 6–2

Einführung II

Anfrage: Folge von Operationen, die aus den Basisrelationen eine Ergebnisrelation berechnet Ergebnisrelation

interaktiv auf dem Bildschirm anzeigen,

per Programm weiterverarbeiten („Einbettung“)

Sicht: Folge von Operationen, die unter einem Sichtnamen langfristig abgespeichert wird und unter diesem Namen wieder aufgerufen werden kann; ergibt eine Sichtrelation

Snapshot: Ergebnisrelation einer Anfrage, die unter einem Snapshot-Namen abgelegt wird, aber nie ein zweites Mal (mit geänderten Basisrelationen) berechnet wird (etwa Jahresbilanzen)

(2)

Kriterien für Anfragesprachen

Ad-Hoc-Formulierung: Der Benutzer soll eine Anfrage formulieren können, ohne ein vollständiges Programm schreiben zu müssen.

Deskriptivität: Der Benutzer soll formulieren „Was will ich haben?“ und nicht „Wie komme ich an das, was ich haben will?“.

Mengenorientiertheit: Jede Operation soll auf Mengen von Daten gleichzeitig arbeiten, nicht navigierend nur auf einzelnen Elementen (one-tuple-at-a-time).

Abgeschlossenheit: Das Ergebnis ist wieder eine Relation und kann wieder als Eingabe für die nächste Anfrage verwendet werden.

VL Datenbanken I – 6–4

Kriterien für Anfragesprachen II

Adäquatheit: Alle Konstrukte des zugrundeliegenden Datenmodells werden unterstützt.

Orthogonalität: Sprachkonstrukte sind in ähnlichen Situationen auch ähnlich anwendbar.

Optimierbarkeit: Die Sprache besteht aus wenigen Operationen, für die es Optimierungsregeln gibt.

Effizienz: Jede Operation ist effizient ausführbar (im Relationenmodell hat jede Operation eine Komplexität

≤O(n2), nAnzahl der Tupel einer Relation).

VL Datenbanken I – 6–5

Kriterien für Anfragesprachen III

Sicherheit: Keine Anfrage, die syntaktisch korrekt ist, darf in eine Endlosschleife geraten oder ein unendliches Ergebnis liefern.

Eingeschränktheit: (folgt aus Sicherheit,

Optimierbarkeit, Effizienz) Die Anfragesprache darf keine komplette Programmiersprache sein.

Vollständigkeit: Die Sprache muß mindestens die Anfragen einer Standardsprache (wie etwa die in diesem Kapitel einzuführende Relationenalgebra oder den sicheren Relationenkalkül) ausdrücken können.

(3)

Anfragealgebren

Mathematik: Algebra definiert durch Wertebereich und auf diesem definierte Operatoren

für Datenbankanfragen: Inhalte der Datenbank sind Werte, und Operatoren definieren Funktionen zum Berechnen von Anfrageergebnissen

Relationenalgebra

NF2-Algebra

Andere Algebra-Erweiterungen

VL Datenbanken I – 6–7

Relationenalgebra

Spalten ausblenden: Projektion, Zeichenπ; in [. . . ]:

welche Spalten behalten; in (. . . ): auf welche Relation anwenden

Zeilen heraussuchen: Selektion, Zeichenσ; in [. . . ]:

unter welchen Bedingungen; in (. . . ): auf welche Relation anwenden

Tabellen verknüpfen: Verbund (Join), Zeichen./; Tupel über gleichbenannten Spalten und Werten

aneinanderhängen

Tabellen vereinigen: Vereinigung, Zeichen∪; Tupel aus beiden Relationen sammeln, doppelte herauswerfen

VL Datenbanken I – 6–8

Relationenalgebra II

Tabellen voneinander abziehen: Differenz, Zeichen−; Tupel aus der ersten Relation herausnehmen, falls sie auch in der zweiten Relation vorkommen

Spalten umbenennen: Umbenennung, Zeichenβ; einen Attributnamen in einen anderen umbenennen (wichtig für./und∪,−)

(4)

Laufendes Beispiel

Ausleih Invnr Name 4711 Meyer 1201 Schulz 0007 Müller 4712 Meyer Buch Invnr Titel ISBN Autor

0007 Dr. No 3-125 James Bond 1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 Vossen 4712 Datenbanken 3-891 Ullman 4717 Pascal 3-999 Wirth

VL Datenbanken I – 6–10

Projektion

Syntax

π[attributmenge] (relation)

Semantik

πX(r) :={t(X)|t∈r}

fürr(R)undX ⊆RAttributmenge inR.

VL Datenbanken I – 6–11

Projektion II

Beispiel 1: Projektion auf ein Attribut π[Name] (Ausleih) ergibt als Ergebnisrelation

Name Meyer Schulz Müller

Doppelte Ergebnistupel eliminiert

(5)

Projektion III

Beispiel 2: Projektion auf Attributmenge π [Invnr, ISBN] (Buch) ergibt

Invnr ISBN 0007 3-125 1201 3-111 4711 3-765 4712 3-891 4717 3-999

VL Datenbanken I – 6–13

Projektion IV

einfache Optimierungsregel: bei vielen Projektionen hintereinander reicht die zuletzt ausgeführte auch allein

π [Invnr] (π [Invnr, ISBN] (Buch)) ergibt optimiert

π [Invnr] (Buch)

VL Datenbanken I – 6–14

Selektion

Syntax

σ [bedingung] (relation)

Semantik

σF(r) :={t|t∈r∧F(t) =true}

(6)

Selektionsbedingungen

F Konstanten-Selektion

Attribut θ Konstante boolesches Prädikatθist=oder6=, bei linear geordneten Wertebereichen auch≤,<,≥oder>

F Attribut-Selektion

Attribut1 θ Attribut2

F logische Verknüpfung mehrerer Konstanten- oder Attribut-Selektionen mit∧,∨oder¬

VL Datenbanken I – 6–16

Selektion II

Beispiel

σ [Name ≤ ‘N’] (Ausleih) ergibt

Invnr Name 4711 Meyer 0007 Müller 4712 Meyer

VL Datenbanken I – 6–17

Selektion III

einfache Optimierungsregeln

Selektionen lassen sich in der Reihenfolge beliebig vertauschen

Manchmal lassen sich Projektion und Selektion vertauschen;

Voraussetzung: Selektionsattribute kommen in Projektionsliste vor

(7)

Verbund

Syntax des (natürlichen) Verbundes (engl.: natural join) Relation1 ./ Relation2

Semantik

r1./ r2 := {t|t(R1∪R2)∧

[∀i∈ {1,2}∃ti∈ri:ti=t(Ri)]}

Verbund verknüpft Tabellen über gleichbenannten Spalten bei gleichen Attributwerten

VL Datenbanken I – 6–19

Verbund: Beispiel

Ausleih ./ Buch ergibt

Name Invnr Titel ISBN Autor Müller 0007 Mr. No 3-125 James Bond Schulz 1201 Objektbanken 3-111 Heuer Meyer 4711 Datenbanken 3-765 Vossen Meyer 4712 Datenbanken 3-891 Ullman

nicht ausgeliehenes Pascal-Buch verschwindet: Tupel, die keinen Partner finden (dangling tuples), werden eliminiert

später: outer join, der „dangling tuples“ übernimmt

VL Datenbanken I – 6–20

Verbund II

π [Autor] (Buch) ./ π [Invnr] (Ausleih) Autor Invnr

James Bond 4711 James Bond 1201 James Bond 0007 James Bond 4712

Heuer 4711

Heuer 1201

Heuer 0007

Heuer 4712

Vossen 4711 . . . . entartet zu kartesischem Produkt

(8)

Eigenschaften Verbund

ausR1∩R2={}folgtr1./ r2=r1×r2

Projektion nicht inverse Operation zu Verbund:

πR1(r1./ r2)⊆r1

Verbund nicht die inverse Operation zu zwei Projektionen (nur bei Verbundtreue)

Verbund kommutativ:r1./ r2=r2./ r1

Verbund assoziativ:(r1./ r2)./ r3=r1./(r2./ r3)

Daher erlaubt:

./pi=1ri

VL Datenbanken I – 6–22

Mengenoperationen und Umbenennung

Buch1 Autor1 James Bond Heuer Vossen Ullman Wirth

Buch2 Autor2 Witt Vossen Silberschatz Meier Wirth

Umbenennung

β [neu ← alt] (relation) ändert Attributnamen vonaltinneu

β [Autor1 ← Autor2] (Buch2) Durch Umbenennung nun Vereinigung, Differenz und Durchschnitt möglich

VL Datenbanken I – 6–23

Mengenoperationen: Vereiningung

relation1 ∪ relation2 Beispiel:

Buch1 ∪ β [Autor1 ← Autor2] (Buch2) Autor1

James Bond Heuer Vossen Ullman Wirth Witt

Silberschatz Meier

(9)

Mengenoperationen: Differenz

relation1 − relation2 Beispiel:

Buch1 − β [Autor1 ← Autor2] (Buch2) Autor1

James Bond Heuer Ullman

VL Datenbanken I – 6–25

Mengenoperationen: Durchschnitt

relation1 ∩ relation2 Beispiel:

Buch1 ∩ β [Autor1 ← Autor2] (Buch2) Autor1

Vossen Wirth

VL Datenbanken I – 6–26

Mengenoperationen, Umbenennung I

Umbenennung ermöglicht

Verbunde, wo bisher kartesische Produkte ausgeführt wurden (unterschiedliche Attribute werden gleich benannt),

kartesische Produkte, wo bisher Verbunde ausgeführt wurden (gleiche Attribute werden unterschiedlich genannt),

Mengenoperationen

(10)

Mengenoperationen, Umbenennung II

Formal fürr1(R)undr2(R)

UmbenennungβBA(r) :={t0| ∃t∈r:t0(R−A) = t(R−A)∧t0(B) =t(A)}

Vereinigungr1∪r2:={t|t∈r1∨t∈r2}

Durchschnittr1∩r2:={t|t∈r1∧t∈r2}

Differenzr1−r2:={t|t∈r1∧t6∈r2}

Durchschnitt∩wegenr1∩r2=r1−(r1−r2)überflüssig

VL Datenbanken I – 6–28

Unabhängigkeit und Vollständigkeit

Minimale Relationenalgebra:

Ω =π,σ,./,β,∪und−

unabhängig: kein Operator kann weggelassen werden ohne Vollständigkeit zu verlieren

andere unabhängige Menge:./undβ durch×ersetzen

Relationale Vollständigkeit: jede andere Menge von Operationen genauso mächtig wieΩ

Strenge relationale Vollständigkeit: zu jedem Ausdruck mit Operatoren ausΩgibt es einen Ausdruck auch mit der anderen Menge von Operationen

VL Datenbanken I – 6–29

Problem: Quantoren

Allquantor in Relationenalgebra ausdrücken, obwohl in Selektionsbedingungen nicht erlaubt

Division (kann ausΩhergeleitet werden)

r1(R1)undr2(R2)gegeben mitR2⊆R1,R0=R1−R2. Dann ist

r0(R0) = {t| ∀t2∈r2∃t1∈r1:t1(R0) =t∧t1(R2) =t2}

= r1÷r2

Division vonr1durchr2

r1÷r2R0(r1)−πR0((πR0(r1)./ r2)−r1)

(11)

Division: Beispiel

r1

PILOT FLUGZ.

Snoopy 707

Snoopy 727

Snoopy 747

Meyer 707

Meyer 727

Müller 707

Müller 727

Müller 747

Müller 777

Lüdenscheid 727 r2

FLUGZ.

707 727 747

r3

FLUGZ.

707

r1÷r2ergibt r0

PILOT Snoopy Müller

r1÷r3ergibt

r0

PILOT Snoopy Meyer Müller

VL Datenbanken I – 6–31

NF

2

-Algebra

∪,−, π, ./zunächst wie in Relationenalgebra

σ-Bedingungen erweitern um:

Relationen als Operanden (statt nur Konstanten von Standard-Datentypen)

Mengenvergleiche, wie etwaθ:=,⊆,⊂,⊃,⊇

rekursiv aufgebaute Operationsparameter, etwaπundσ auch innerhalb von Projektionslisten und

Selektionsbedingungen anwendbar

zusätzliche Operationenν(Nestung) undµ(Entnestung)

VL Datenbanken I – 6–32

Nestung und Entnestung

A B C 1 2 7 1 3 6 1 4 5 2 1 1

−→

νB,C;D(r)

←−

µD(r0)

A D

B C 2 7 1 3 6 4 5 2 1 1 Nestung nicht allgemein die Inverse der Entnestung:

A B C 1 2 7 1 3 6 1 4 5 2 1 1

6−→

νB,C;D(r)

←−

µD(r0)

A D

B C 1 2 7

3 6 1 4 5 2 1 1

(12)

Spezielle NF

2

-Algebren

Minimale geschachtelte Algebra nurν undµ

Orthogonale geschachtelte Algebra

Schek und Scholl: Selektion und Projektion rekursiv

Algebren für PNF-Relationen erhalten PNF-Eigenschaft

VL Datenbanken I – 6–34

Andere Algebra-Erweiterungen

Nullwerte

Operationen auf Wertebereichen (Spaltenerweiterung, abgeleitete Attribute)

Gruppierung

. . .

VL Datenbanken I – 6–35

Anfrage-Kalküle

Kalkül: eine formale logische Sprache zur Formulierung von Aussagen

Ziel: Einsatz eines derartigen Kalküls zur Formulierung von Datenbank-Anfragen

Logikbasierter Ansatz:

Datenbankinhalte entsprechen Belegungen von Prädikaten einer Logik, Anfragen abgeleiteten Prädikaten

(13)

Ein allgemeiner Kalkül

Motivation: mathematische Notation

{x2|x∈IN∧x3>0∧x3<1000}

Anfrage hat die Form

{f(x)|p(x)}

xbezeichnet Menge von freien Variablen x={x1:D1, . . . , xn:Dn}

VL Datenbanken I – 6–37

Ein allgemeiner Kalkül II

Funktionf bezeichnet Ergebnisfunktion überx

wichtige Spezialfälle: Angabe einer Variable selber (f ist hier die Identitätsfunktion) und Tupelkonstruktion

(Ergebnis vom Typ tuple of)

pSelektionsprädikat über freien Variablenx

Terme aus Variablen, Konstanten und Funktionsanwendungen

Prädikate der Datentypen, etwa≤,<,>,≥, ...

→atomare Formeln über Termen

Bezug zur aktuellen Datenbank→

Datenbankprädikate, z.B. Relationennamen im RM

prädikatenlogischen Operatoren∧,∨,¬,∀,∃

→Formeln

VL Datenbanken I – 6–38

Ergebnisbestimmung einer Anfrage

x={x1:D1, . . . , xn:Dn}

1. Bestimme aller Belegungen der freien Variablen inx, für die das Prädikatpwahr wird.

2. Wende Funktionf auf die durch diese Belegungen gegebenen Werte an.

Unter welchen Umständen liefern Kalkülanfragen endliche Ergebnisse?

Sicherheit von Anfragen

(14)

Relationale Kalküle

Bereichskalkül: Variablen nehmen Werte elementarer Datentypen (Bereiche) an

Tupelkalkül: Variablen variieren über Tupelwerte (entsprechend den Zeilen einer Relation)

VL Datenbanken I – 6–40

Bereichskalkül

Terme:

Konstanten, etwa42oder’MZ-4’.

Variablen zu Datentypen, etwax.

Die Datentypangabe erfolgt in der Regel implizit und wird nicht explizit deklariert!

Funktionsanwendungf(t1, . . . , tn): Funktionf, Terme ti, etwaplus(12, x)bzw. in Infixnotation12 +x.

Atomare Formeln:

PrädikatanwendungΘ(t1, . . . , tn),

Θ∈ {<, >,≤,≥,6=,=, . . .}Datentypprädikat, Termeti. Zweistellige Prädikate wie üblich in Infix-Notation.

Beispiele:x=y,42> xoder3 + 7 = 11.

VL Datenbanken I – 6–41

Bereichskalkül II

Atomare Formeln (fortg.):

Prädikatanwendungen für Datenbankprädikate, notiert alsR(t1, . . . , tn)für einen RelationennamenR. Voraussetzung:nmuß die Stelligkeit der RelationR sein und alletimüssen vom passenden Typ sein Beispiel:bestellt(’Maier’, x,100)

Formeln wie üblich mit∧,∨,¬,∀und∃.

Anfragen:{x1, . . . , xn|φ(x1, . . . , xn)}

φist Formel über den in der Ergebnisliste aufgeführten Variablenx1bisxn. Das Ergebnis ist eine Menge von Tupeln. Die Tupelkonstruktion erfolgt implizit aus den Werten der Variablen in der Ergebnisliste.

(15)

Basiskalkül

Einschränkung des Bereichskalküls:

Wertebereich: ganze Zahlen

Datentypprädikate werden wie bei der

Relationenalgebra auf Gleichheit und elementare Vergleichsoperatoren eingeschränkt

Funktionsanwendungen sind nicht erlaubt; nur

Konstanten dürfen neben Bereichsvariablen als Terme verwendet werden

VL Datenbanken I – 6–43

Sichere Anfragen

Sichere Anfragen (auch semantisch sichere Anfragen):

Anfragen, die für jeden Datenbankzustand σ(R)ein endliches Ergebnis liefern.

Beispiel für nicht sichere Anfrage:

{x, y| ¬R(x, y)}

Einfaches Beispiel für sichere Anfrage:

{x, y|R(x, y)}

VL Datenbanken I – 6–44

Sichere Anfragen II

Weiteres Beispiel für sichere Anfrage:

{x, y|y= 10∧x >0∧x <10}

Sicherheit folgt direkt aus den Regeln der Arithmetik.

Semantische Sicherheit ist im allgemeinen nicht entscheidbar !

(16)

Syntaktisch sichere Anfragen

Syntaktisch sichere Anfragen: Anfragen, die

syntaktischen Einschränkungen unterliegen, um die semantische Sicherheit zu erzwingen.

Grundidee:

Jede freie Variableximuß überall inφ(x1, . . .) durch positives Auftretenxi=toderR(. . . , xi, . . .) an endliche Bereiche gebunden werden.

Die Bindung an endliche Bereiche muß für die ganze Bedingung, also insbesondere für alle Zweige einer Disjunktion, gelten.

VL Datenbanken I – 6–46

Relationen für Beispiele

Kunde(KName,Adresse,Konto), bestellt(KName,WareBez,Anzahl)

Ware(WareBez,Preis,Vorrat)

VL Datenbanken I – 6–47

Beispiele Bereichskalkül

„Alle (Namen von) Kunden in Magdeburg’".

{x|Kunde(x, y, z)∧y=0MD0}

Vereinfachte Notation: Ansonsten ungebundene

Variablen (hieryundz) im Bedingungsteil existentiell mit

∃gebunden. Vollständige Version:

{x| ∃y∃zKunde(x, y, z)∧y=0MD0}

Einsparung von Bereichsvariablen, indem Konstanten als Parameter des Prädikats eingesetzt werden:

{x|Kunde(x,0MD0, z)}

(17)

Beispiele Bereichskalkül II

Abkürzung für beliebige, unterschiedliche existentiell gebundene Variablen ist _ Symbol:

{x|Kunde(x, y,_)∧y=0MD0}

Verschiedene Auftreten des Symbols _ stehen hierbei für paarweise verschiedene Variablen.

VL Datenbanken I – 6–49

Beispiele Bereichskalkül II

„Städte mit mehr als zwei Kunden’".

{y|Kunde(x, y, z)∧Kunde(x0, y, z0)∧x6=x0}

Diese Anfrage zeigt eine Verbundbildung über das zweite Attribut derKunde-Relation

Verbundbildung kann einfach durch die Verwendung der selben Bereichsvariablen als Parameter in

verschiedenen Relationsprädikaten erfolgen

VL Datenbanken I – 6–50

Beispiele Bereichskalkül III

„Wer hat Waren unter 1.- DM bestellt?’"

{x, w|Kunde(x, y, z)∧bestellt(x, w, a)∧ Ware(w, p, v)∧a >0∧p <1.00}

Verbund über drei Relationen

(18)

Beispiele Bereichskalkül IV

„Wer hat überhaupt etwas bestellt?’"

{x|Kunde(x, y, z)∧ ∃w∃a(bestellt(x, w, a)∧a >0)}

Einsatz einer existentiell gebundenen Unteranfrage

derartige Unteranfragen können aufgrund der Regeln der Prädikatenlogik wie folgt aufgelöst werden:

{x|Kunde(x, y, z)∧(bestellt(x, w, a)∧a >0)}

VL Datenbanken I – 6–52

Beispiele Bereichskalkül V

„Wer hat nur Waren in großer Anzahl bestellt?’"

{x|Kunde(x, y, z)∧ ∀w∀a(bestellt(x, w, a) =⇒ a >100)}

universell gebundene Teilformeln können nicht aufgelöst werden

VL Datenbanken I – 6–53

Ausdrucksfähigkeit Bereichskalkül

Bereichskalkül ist streng relational vollständig, d.h. zu jedem Termτ der Relationenalgebra gibt es einen äquivalenten (sicheren) Ausdruckηdes Bereichskalküls.

(19)

Umsetzung von Relationenoperationen

Gegeben: zwei RelationenschemataR(A1, . . . , An)und S(B1, . . . , Bm)

Vereinigung (fürn=m).

R∪S={xˆ 1. . . xn|R(x1, . . . , xn)∨S(x1, . . . , xn)}

Differenz (fürn=m).

R−S={xˆ 1. . . xn|R(x1, . . . , xn)∧ ¬S(x1, . . . , xn)}

Natürlicher Verbund.

R ./ S=ˆ {x1. . . xnxn+1. . . xn+m−i|R(x1, . . . , xn)∧ S(x1, . . . , xi, xn+1, . . . , xn+mi)}

Hierbei seien die ersteniAttribute vonRundSdie Verbundattribute, alsoAj=Bj fürj= 1. . . i.

VL Datenbanken I – 6–55

Umsetzung von Relationenoperationen II

Projektion.

πA(R) ˆ={y1. . . yk| ∃x1. . .∃xn(R(x1, . . . , xn)∧y1=xi1

∧ · · · ∧yk=xik)}

Hierbei ist die Attributliste der Projektion wie folgt gegeben:A= (Ai1, . . . , Aik)

Selektion.

σφ(R) ˆ={x1. . . xn|R(x1, . . . , xn)∧φ0} Die Formelφ0wird hierbei ausφgewonnen, indem Variablexian Stelle der AttributnamenAieingesetzt werden.

VL Datenbanken I – 6–56

Änderungsoperationen

u(d) :=inserttintori(Ri)

d7−→

d0:={r1, . . . , ri∪ {t}, . . . , rp} fallsd0DAT(S)

d sonst

u(d) :=deletetfromri(Ri)

d7−→

d0:={r1, . . . , ri− {t}, . . . , rp} fallsd0DAT(S)

d sonst

u(d) :=replacet→t0inri(Ri) d7−→

d0:={r1, . . . ,(ri− {t})∪ {t0}, . . . , rp} fallsd0DAT(S)

d sonst

Referenzen

ÄHNLICHE DOKUMENTE

die ISBN eines Buchs, der Titel einer Vorlesung, oder das Semester, in dem eine Vorlesung gehalten wird.. bei gegebener fester Interpretation µ der Datentypen durch Wertebereiche

where Bücher.ISBN = Buch_Stichwort.ISBN select Bücher.ISBN, Titel, Stichwort (richtig) from Bücher, Buch_Stichwort. where Bücher.ISBN

Vorl V_Bez SWS Semester Studiengang _DB _zwei _erstes Informatik Vorl_Voraus V_Bez Voraussetzung.

exec sql declare AktBuch cursor for select ISBN, Titel, Verlagsname from Bücher. for update of

Die Spirale ist eine logarithmische Spirale mit folgender Drehstreck- symmetrie: Drehung um 45° mit gleichzeitiger Streckung mit 2 ist eine Deckabbil- dung

Es werden allerdings nicht alle pythagoreischen Tripel generiert... Jedes pythagoreische Dreieck ist zwei

Die zu den Tripeln gehörenden Dreiecke nähern sich eben- falls einem rechtwinklig gleichschenkligen Dreieck an.. Die beiden Kathetenlängen un- terscheiden sich immer nur

Für gerade Eckenzahlen n ≥ 10 gibt es ein einheitliches Verfahren, ein gleichseitig- rechtwinkliges Polygon in ein Würfelraster einzubetten..