Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Die Grundterminologie Relationale Objekte Relation (Tabelle) Attribut (Spalte, Feld) Domain (Wertebereich) Degree(Ausdehnungsgrad der Tabelle) Tupel.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Die Grundterminologie Relationale Objekte Relation (Tabelle) Attribut (Spalte, Feld) Domain (Wertebereich) Degree(Ausdehnungsgrad der Tabelle) Tupel."—  Präsentation transkript:

1 1 Die Grundterminologie Relationale Objekte Relation (Tabelle) Attribut (Spalte, Feld) Domain (Wertebereich) Degree(Ausdehnungsgrad der Tabelle) Tupel (Datensatz, Rekord) Cardinalität Key (Schlüsselfeld) Candidate – Key (eindeutiger Schlüssel) Primary – Key ( Hauptschlüssel) Alternate – Key (Zweitschlüssel) Foreign – Key (Fremdschlüssel)

2 2 Relationale Integritätsregeln Entity – Integrität Referentielle Integrität Relationale Operationen Restriction (Zeilenselektion) Projection (Spaltenselektion) Union (Vereinigung) Intersection (Schnittmenge) Difference (Diferenz) Product (Kartesisches Produkt) Join (Verbindung) Division (Division)

3 3 Datenmodelle In jedem System, in dem Daten verwaltet werden, müssen diese eine bestimmte Struktur haben. Diese Struktur heißt "SCHEMA" einer Datenbank. Diese Struktur, zusammen mit den assoziirten Operatoren wird als Datenmodell, logisches Modell oder konzeptuelles Modell bezeichnet. Das bekannste und zugleich abstakteste Modell stammt von 1970 und wird relationales Datenbankmodell gennant. Der verfasser heisst CODD.

4 4 Codds Principles Jede Relation muss ein Identifikationsatributt haben (falls dieser nicht existiert muss er hergestellt werden); Jedes Attribut muss atomar (unzerteilbar) sein; Jedes Tupel einer Relation muss für ein Attribut einen einzige Wert enthalten; Jedes Attribut mus direkt und vollständig vom Identifikationsatributt abhängen; Ein Attribut darf nur ein einziges Mal innerhalb einer Relation auftreten. Um Codds Prinzipien einzuhalten und um die Redundanzheit innerhalb einer DB zu reduzieren, muss man die "Normalisierung von Relationen" zu benutzen.

5 5 Relationenalgebra Um die Relationen zu manipulieren, d.h. in einen vom Benutzer der Datenbank gewünschten Zustand zu bringen, gibt es eine Anzahl von Operatoren. Diese Operatoren nehmen Relationen als Input an und erzeugen Relationen.

6 6 Basisoperationen Es gibt 5 Basisioperationen (genügend um Algebra zu definieren und andere Operationen damit auszudrücken): Vereinigung (Union) R S Differenz (Set difference) R – S Kartesisches Produkt(Product) R x S Projektion (Projection) Ak... (R) Restriktion (Selection) F (R)

7 7 Es seien die Relationen R und S als Basisirelationen gegeben: R A B C S D E F a b c b g a d a f d a f c b d

8 8 Die Vereinigung R S ist auch eine Relation (E) und zwar die Menge aller Tupel, die in R oder S oder in beiden Relationen sind. Die Verknüpfung zweier Relationen mit UNION ist nur erlaubt, wenn beide Relationen den gleichen Degree besitzen und jedes Attribut der ersten Relation kompatibel ist mit dem korrespondierenden Attribut der zweiten Relation (d.h. dass die Folge der Attribute die selbe ist. Die Folge und nicht die Namen der Attribute!). Wenn diese Voraussetzung erfüllt ist, sind diese zwei Relationen "UNION-kompatibel".

9 9 Differenz. Die Differenz R – S ist eine Relation E. Diese Relation ist die Menge aller Tupel die in R aber nicht in S enthalten sind. Die Relationen R und S müssen denselben Degree haben und die Folge der Attribute muß dieselbe sein. (Die Folge und nicht die Namen der Attributen!). Auch bei der Differenz müssen die Relationen UNION-kompatibel zueinander sein.

10 10 Kartesisches Produkt. Seien R und S Relationen mit Degree D1 und D2. Das kartesische Produkt R x S ist die Menge aller (D1+D2) gradigen Tupel, deren erste D1 Elemente ein Tupel in R und deren letzte D2 Elemente ein Tupel aus S darstellen.

11 11 Man bezeichnet: E = PRODUCT(R,S), wobei E A B C D E F a b c b g a a b c d a f d a f b g a d a f d a f c b d b g a c b d d a f Die Ergebnisrelation (E) hat die Cardinalität C(E) = C(R) * C(S), wenn sie nicht Duplikate enthält! Also, man bildet das kartesische Produkt aus zwei Relationen, indem man jedes Tupel der ersten Relation mit jedem Tupel der zweiten Relation kombiniert (es wird also jede Kombinationsmöglichkeit der beiden Relationen gebildet).

12 12 Projektion. Bei der Projektion werden einzelne Spalten einer Relation auf eine neue Relation abgebildet. Die Projektion einer Relation ist gleichbedeutend mit einer Ausschnittbildung der Relation in vertikaler Richtung. Sei R eine Relation mit Degre k. Dann ist A1,A2,..., Am (R) die Abbildung von R auf die Komponenten A1,A2,..., Am. Die entstehende Relation ist m-gradig.

13 13 Die formalen Beschreibungen sind: E = A1,A2,..., Am(R) E = R[A1,A2,...,Am] E = PROJ(R, ) Der Algorithmus: 1. Man löscht aus der Relation R alle Attribute welche nicht als Parametern der Projektion erwähnt sind. 2. Man liest die Tupeln in der bestimmten Reihenfolge. 3. In der Relation RP löscht man die Duplikate (Tupeln !)

14 14

15 15 Restriktion. Manchmal auch Selektion bezeichnet, diese Operation entwickelt eine Relation, indem nur bestimmte Tupel berücksichtig werden. Die Auswahl der Tupel erfolgt dieses Mal zusätzlich in horizontaler Art. Die Auswahl der Tupel wird nach einem bestimmten Kriterium gemacht.

16 16 Die Bedingung ist eine Formel. Diese Formel enthält: Operanden (Konstante oder Komponente einer Relation); Aritmethische Vergleichsoperatoren, <>; Logische Operatoren AND, OR, NOT. Sei F die Formel. Dann ist die Selektion F (R) die Menge aller Tupel t in R, für die die Formel F wahr ist.

17 17

18 18 Schnittmenge. Ermittelt gleiche Tupel aus zwei Relationen. Die Relationen müssen UNION-kompatibel zueinander sein. Das Ergebnisrelation ist die Menge der Tupel welche sowohl R als auch S gehören. Bemerkung. R S kann als R S = R – (R-S) ausgedrückt werden.

19 19

20 20 JOIN (Verbund). Durch eine Verknüpfung werden zwei Relationen zu einer Relation verbunden, indem die Attribute vergleicht werden und bei Übereinstimmung die Tupel kombiniert werden. Der Join verbindet zwei Relationen ähnlich wie das kartesische Produkt.

21 21 Die Ergebnisrelation E kann wie folgt berechnet werden: Man bildet das kartesische Produkt RxS. Für jedes Attribut, das sowohl in R als auch in S erscheint, selektiert man die Tupel, für die die Werte der gleichnamigen Attribute übereinstimmen. Eine der gleichen Spalten wird ausprojektiert.

22 22 Die allgemeine Form des Join ist das Theta-Join, geschrieben R S wobei eine Formel ist, die Elemente der Spalten i und j vergleicht. Der Vergleichsoperatoren sind =, >,, >=, <=. Die formale Beschreibung ist: E = JOIN(R, R.Ak S.Ak, S) wobei E = PROJ(REST(PRODUCT(R,S), R.A1 S.A1), )

23 23

24 24 Ein Theta-Join mit dem Vergleich-operator "=", wird Equi-Join gennant, wobei auch hier wie bei allen Theta-Joins die Ergebnis-relation beide Join Attribute beinhaltet. E = PROJ(REST(PRODUCT(R,S), R.A1 = S.A1), )

25 25

26 26 Natural-Join. Ein Equi-Join,dessen Ergebnis relation die beiden gleichen Attributwerte nur einmal beinhaltet, heißt natürlicher Join. E = PROJ(REST(PRODUCT(R,S), R.A1 = S.A1), )

27 27

28 28 Folgende Regeln gelten für Joins: Die Attribute, über die der Join ausgeführt wird (Join-Attribute), müssen keine Keys sein. Die Join-Attribute der beiden betroffenen Relationen müssen nicht den gleichen Namen haben. Jede Relation kann mit jeder anderen gejoint werden (auch mit sich selbst).

29 29 Auto-Join. Der Auto-Join, auch Self-Join genannt, ist eine Verknüpfung einer Relation mit sich selbst. E = REST(PRODUCT(R,R), R.A1 = R.A2). Inner-Join, Outer-Join. Der normale Join erzeugt nur Tupel in der Ergebnisrelation, wenn der Attributwert der ersten Relation in der zweiten Relation vorkommt. Dieser Join wird auch INNER-JOIN genannt.

30 30

31 31

32 32 Beispiel: Es seien die Relationen : ARTIKEL A_NrA_BezA_ArtLief_Nr 1ACERMonitor1 2LGMonitor2 3HerkulesGrafikkarte1 4SamsungMonitor3 5CompaqMonitor2 6HPDruker4 7HP+Druker4 8CannonDruker4

33 33 Und die Relation LIEFERANT Lief_NrLief_Name 1Oktalgroup 2Audio Master 3Elnicron 4Easyprint 5Sharp

34 34 Erste Frage: Welche Artikel (Artikelbezeichnung) werden vom Lieferanten nr.4 geliefert ? Die Lösung: E= PROJ(REST(ARTIKEL, Lief_Nr=4), A_Bez)

35 35 Zweite Frage: Welche Lieferanten liefern einen Monitor? Die Lösung: E=PROJ(REST(JOIN(ARTIKEL,Lief_Nr= Lief_Nr, LIEFERANTEN), A_Art="Monitor"), Lief_Name) oder E1=JOIN( ARTIKEL,Lief_Nr=Lief_Nr, LIEFERANTEN ) E2 = REST(E1, A_Art=Monitor) E = PROJ(E2, Lief_Name)

36 36 Oder E1=REST(PRODUCT( ARTIKEL,LIEFERANTEN ), Lief_Nr=Lief_Nr) E2=REST(E1, A_Art="Monitor) E=PROJ(E2, Lief_Name)

37 37 Beispiel: Es seien die Relationen: PRODUKT (Code,Bennenung, Maßeinheit,Preis) KUNDE (KNr,Name,Adresse,Konto) RECHNUNG (RNr,Datum,KNr,Code, Liefermenge)

38 38 Problem 1 Die Bennenungen aller Produkte welche an der Kunden GRIRO geliefert wurden. Lösung E1= REST(KUNDE, Name="GRIRO") E2= JOIN(RECHNUNG,KNr=KNr, E1) E3=PROJ(PRODUKT, Code, Bennenung) E4=JOIN(E2,E3, E2.Code = E3.Code) E = PROJ(E4, Bennenung)

39 39 Problem 2 Die Namen der Kunden an die, nach dem , keine Produkte mehr geliefert wurden. Lösung E1=REST(RECHNUNG,Datum ># #) E2=PROJ(E1, KNr) E3=PROJ(RECHNUNG, KNr) E4=MINUS(E3,E2) E5=JOIN(KUNDE,KNr=KNr, E4) E=PROJ(E5, Name)

40 40 Problem 3 Die Rechnungen für die Produkte mit einem höheren Preis als 100 Lei. Lösung E1 = REST(PRODUKT, Preis>100) E2 = JOIN(E1, Code = Code, RECHNUNG) E = PROJ(E2, RNr)


Herunterladen ppt "1 Die Grundterminologie Relationale Objekte Relation (Tabelle) Attribut (Spalte, Feld) Domain (Wertebereich) Degree(Ausdehnungsgrad der Tabelle) Tupel."

Ähnliche Präsentationen


Google-Anzeigen