Inhalt Datenbanken 1 Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität alzburg 1 Erweiterte http://dbresearch.uni-salzburg.at ommersemester 2015 Version: 29. Juni 2015 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 1 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 2 / 61 Literatur und Quellen Inhalt Lektüre zum Thema : Kapitel 3 (3.4) aus Kemper und Eickler: Datenbanksysteme: Eine Einführung. 9. Auflage, Oldenbourg Verlag, 2013. Kapitel 6 (6.1) aus ilberschatz, Korth, and udarashan: Database ystem Concepts, McGraw Hill, 2011. Literaturquellen Elmasri and Navathe: Fundamentals of Database ystems. Fourth Edition, Pearson Addison Wesley, 2004. Danksagung Die Vorlage zu diesen Folien wurde entwickelt von: Michael Böhlen, Universität Zürich, chweiz Johann Gamper, Freie Universität Bozen, Italien 1 Erweiterte Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 3 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 4 / 61
yntaktische Konventionen Die relationale Algebra ist eine prozedurale Anfragesprache. Besteht aus sechs (notwendigen) Operatoren: elektion: σ Projektion: π Mengenvereinigung: Mengendifferenz: Kartesisches Produkt: Umbenennung: ρ (Hilfsoperation) Die relationale Algebra ist abgeschlossen: Argumente der Operatoren sind (ein oder zwei) elationen. Ergebnis der Operatoren ist wieder eine elation. Es ist hilfreich bei der Namensgebung systematisch zu sein. Wir verwenden folgende egeln. Tabellennamen: Großschreibung und Plural Beispiele: Vorlesungen, tudenten, Module,, Attributnamen: Großschreibung und ingular Beispiele: emester, Jahr, Name, A, B Konstanten (Werte): Numerische Werte: 12, 17.6 Zeichenketten: durch Hochkommas begrenzen Beispiele: Martin, Mehr als ein Wort Es gibt keinen einheitlichen tandard; verschiedene Lehrbücher verwenden verschiedene Notationen Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 6 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 7 / 61 elektion elektion σ Projektion π Mengenvereinigung Mengendifferenz Kartesisches Produkt Umbenennung ρ Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 8 / 61 Notation: σ p () (sigma) elektionsprädikat p ist aus folgenden Elementen aufgebaut: Attributnamen der Argumentrelation oder Konstanten als Operatoren arithmetische Vergleichsoperatoren (=, <,, >, ) logische Operatoren: (and), (or), (not) p(t), t heißt: Prädikat p ist für Tupel t aus elation erfüllt. Definition: t σ p () t p(t) Beispiel: σ FiName= Brugg (Konten) Beispiel: σ A=B D>5 () A B C D α 7 α β 5 7 β β 12 3 β β 23 10 σ A=B D>5 () A B C D α 7 β β 23 10 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 9 / 61
Projektion Mengenvereinigung Notation: π A1,...,A k () (pi) A 1, A 2,..., A k sind Attribute von und heißen Projektionsliste Definition: t π A1,...,A k () x(x t = x[a 1,..., A k ]), wobei x[a 1, A 2,..., A k ] ein neues Tupel bezeichnet, welches für die Werte von A i, 1 i k, die Werte der entsprechenden Attribute von x annimmt (alle Attribute A i müssen in x vorkommen müssen) Beachte: Allfällige Duplikate (identische Tupel), die sich aus der Projektion ergeben, müssen entfernt werden. Beispiel: π KoNr,Guthaben (Konten) Beispiel: π A,C () A B C 0 1 0 1 β 30 1 β 40 2 π A,C () A C β 1 β 2 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 10 / 61 Notation: Definition: t ( ) t t ist nur definiert, wenn r und s das gleiche chema haben (union compatible). Namensdifferenzen können durch explizites Umbenennung der Attribute eliminiert werden (s. weiter unten). Beispiel: π KuName (Kontoinhaber) π KuName (Kreditnehmer) Beispiel: A B β 1 A B β 3 A B β 1 β 3 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 11 / 61 Mengendifferenz Kartesisches Produkt (Kreuzprodukt) Notation: Definition: t ( ) t t / Die Argumentrelationen der Mengendifferenz müssen das gleiche chema haben (union compatible). Beispiel: A B β 1 A B β 3 A B β 1 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 12 / 61 Notation: Definition: t ( ) x, y(x y t = x y) bezeichnet die Konkatenation von Tupeln: [1, 2] [5] = [1, 2, 5] Die Attribute von und müssen unterschiedliche Namen haben. Beispiel: A B β 2 C D E 0 a β 10 a β 20 b γ 10 b A B C D E 0 a β 10 a β 20 b γ 10 b β 2 0 a β 2 β 10 a β 2 β 20 b β 2 γ 10 b Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 13 / 61
Umbenennung Zusammengesetzte Ausdrücke Erlaubt es den Namen der elation und der Attribute eines algebraischen Ausdrucks E zu spezifizieren. Wird auch verwendet um Namenskonflikte aufzulösen (z.b., in Mengenvereinigung oder Kreuzprodukt) Verschiedene Variationen (E ist ein relationaler Ausdruck): ρ (E) ist eine elation mit Namen. ρ [A1,...,A k ](E) ist eine elation mit Namen und Attributnamen A 1,..., A k. ρ [A1,...,A k ](E) ist eine elation mit Attributnamen A 1,..., A k. Beispiel: ρ [X,Y,U,V ] () A B C D α 7 β β 23 10 X Y U V α 7 β β 23 10 Geschachtelte Ausdrücke: Da die relationale Algebra abgeschlossen ist, d.h. das esultat eines Operators der relationalen Algebra ist wieder eine elation, ist es möglich Ausdrücke zu schachteln. Beispiel: σ A=C ( ) A B β 2 C D E 0 a β 10 a β 20 b γ 10 b A B C D E 0 a β 10 a β 20 b γ 10 b β 2 0 a β 2 β 10 a β 2 β 20 b β 2 γ 10 b σ A=C ( ) A B C D E 0 a β 2 β 10 a β 2 β 20 b Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 14 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 15 / 61 Integrierte Übung 3.1 Integrierte Übung 3.2 Identifizieren und korrigieren ie Fehler in den nachfolgenden relationalen Algebra Ausdrücken. elation hat chema sch() = [A, B]. σ.a>5 () Identifizieren und korrigieren ie Fehler in den nachfolgenden relationalen Algebra Ausdrücken. elation Pers hat chema sch(pers) = [Name, Alter, tadt]. σ Name= Name (Pers) σ A,B () σ tadt=zuerich (Pers) σ Alter> 20 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 16 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 17 / 61
Beispiel: Banken Anfragebeispiele/1 Fremdschlüssel: π FiName (Konten) π FiName (Filialen) π FiName (Kredite) π FiName (Filialen) π KuName (Kontoinhaber) π KuName (Kunden) π KoNr (Kontoinhaber) π KoNr (Konten) π KuName (Kreditnehmer) π KuName (Kunden) π KoNo (Kreditnehmer) π KrNr (Kredite) Jene Kredite die größer als $1200 sind. σ Betrag>1200 (Kredite) Die Nummern jener Kredite die größer als $1200 sind. π KrNr (σ Betrag>1200 (Kredite)) Die Namen aller Kunden die einen Kredit oder ein Konto (oder beides) haben. π KuName (Kreditnehmer) π KuName (Kontoinhaber) Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 18 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 19 / 61 Anfragebeispiele/2 Anfragebeispiele/3 Die Namen aller Kunden die einen Kredit bei der Brugg Filiale haben. Anfrage 1 π KuName (σ FiName= Brugg ( σ KrNo=KrNr (Kreditnehmer Kredite))) Anfrage 2 π KuName (σ KrNo=KrNr ( (σ FiName= Brugg (Kredite)) Kreditnehmer)) Die Namen aller Kunden die einen Kredit bei der Brugg Filiale haben, aber kein Konto bei der Bank. π KuName (σ FiName= Brugg ( σ KrNo=KrNr (Kreditnehmer Kredite))) π KuName (Kontoinhaber) Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 20 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 21 / 61
Integrierte Übung 3.3 Definition von relationalen Algebra Ausdrücken Gegeben: elation [A] = {[1], [2], [3]}. chreiben ie einen relationalen Algebra Ausdruck der den größten Wert in bestimmt. Ein elementarer Ausdruck der relationalen Algebra ist eine elation in der Datenbank (z.b. Konten). Falls E 1 und E 2 relationale Algebra Ausdrücke sind, dann lassen sich weitere relationale Algebra Ausdrücke wie folgt bilden: E 1 E 2 E 1 E 2 E 1 E 2 σ p (E 1 ), p ist ein Prädikat in E 1 π s (E 1 ), s ist eine Liste mit Attributen aus E 1 ρ x (E 1 ), x ist der Name für E 1 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 22 / 61 Notationsvarianten der elationalen Algebra Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 23 / 61 Zusammenfassung: Im Laufe der Zeit sind unterschiedliche Notationen entstanden. Notation von Kemper&Eikler (Lehrbuch) unterscheidet sich wie folgt. Qualifizierte Attributnamen Attributnamen werden durch Voranstellen des elationsnamen eindeutig gemacht (wo nötig), z.b.,.b,.b Kreuzprodukt ist auch dann erlaubt, wenn und gleichnamige Attribute haben Beispiele: Gegeben [A, B], [B, C] sch( ) = [A,.B,.B, C] σ.b=.b ( ) ist syntaktisch korrekt Umbenennung mit Zuordnung yntax von ρ unterscheidet sich für elationen und Attribute elation: ρ (E) benennt relationalen Ausdruck E mit Attribut: ρ A B () benennt Attribut A in B um (A sch()) ist prozedural und abgeschlossen. : unär: elektion σ, Projektion π, Umbenennung ρ binär: Mengenvereinigung, Mengendifferenz, Kreuzprodukt Ein relationaler Ausdruck kann sein: ein elementarer Ausdruck (elation) eine Kombination von relationalen Ausdrücken, die über relationale Operatoren verbunden sein müssen In der Prüfung ist die Notation aus der Vorlesung zu verwenden. Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 24 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 25 / 61
der elationalen Algebra Mengendurchschnitt Neben den elementaren Operatoren gibt es zusätzliche Operatoren: Mengendurchschnitt Join Zuweisung Die zusätzlichen Operatoren machen Algebra nicht ausdrucksstärker: man kann die zusätzlichen Operatoren mithilfe der elementaren Operatoren ausdrücken deshalb sind die zusätzlichen Operatoren redundant Formulierung häufiger Anfragen wird zum Teil erheblich vereinfacht. Notation: Definition: t ( ) t t Voraussetzung: und haben das gleiche chema Beachte: = ( ) Beispiel: A B β 1 A B β 3 A B Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 27 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 28 / 61 Theta Join (Verbund)/1 Theta Join (Verbund)/2 Notation: θ Annahme: und sind elationen. θ ist ein Prädikat über den Attributen von und. θ ist eine elation mit einem chema das aus allen Attributen von sch() und allen Attributen von sch() besteht. Beispiel: sch() = [A, B, D] und sch() = [X, Y, Z] A=Z chema des esultats ist [A, B, D, X, Y, Z] Äquivalent zu: σ A=Z ( ) A B D a β 2 a γ 4 b X Y Z 1 a α 3 a β 3 b ɛ σ A=Z ( ) A B D X Y Z a 1 a α β 2 a 3 a β Beispiel: sch() = [A, B, D] und sch() = [X, Y, Z] A=Z B<X chema des esultats ist [A, B, D, X, Y, Z] Äquivalent zu: σ A=Z B<X ( ) A B D a β 2 a γ 4 b X Y Z 1 a α 3 a β 3 b ɛ σ A=Z ( ) A B D X Y Z β 2 a 3 a β Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 29 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 30 / 61
Natürlicher Join emi- und Anti-Join Notation: Annahme: und sind elationen. Der natürliche Join verlangt, dass Attribute die sowohl in als auch vorkommen identische Werte haben. Das esultat von ist eine elation mit einem chema das alle Attribute von enthält und alle Attribute von die nicht in vorkommen. Beispiel: mit sch() = [A, B, D] und sch() = [B, D, E] chema des esultats ist [A, B, D, E] Äquivalent zu: π A,B,D,E (σ B=Y D=Z ( ρ [Y,Z,E] ()) A B D a β 2 a B D E 1 a α 3 a β A B D E a α emi-join: alle Tupel von die in einem natürlichen Join mit mindestens einen Join-Partner finden. = π sch() ( ) Anti-Join: alle Tupel von die in einem natürlichen Join mit keinen Join-Partner finden. = ( ) Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 31 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 32 / 61 Zuweisung Bankbeispiel Anfragen/1 Die Zuweisung ( ) erlaubt es, komplexe Ausdrücke in kleinere übersichtliche Blöcke aufzubrechen. links von steht eine Variable rechts von steht ein relationaler Algebra Ausdruck das esultat rechts von wird der Variablen links von zugewiesen komplexe Ausdrücke werden als equenz von Zuweisungen geschrieben Das Konto (bzw. die Konten) mit dem höchsten Kontostand. Lösung: 1. Bestimmen jener Konten die nicht den höchsten Kontostand haben (indem man jedes Konto mit allen anderen Konten vergleicht) K π KoNr (σ Guthaben<Guth (Konten ρ [Nr,Fil,Guth] (Konten))) 2. Mit Hilfe der Mengendifferenz werden jene Konten bestimmt die im ersten chritt nicht gefunden wurden. esult π KoNr (Konten) K Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 33 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 34 / 61
Bankbeispiel Anfragen/2 Bankbeispiel Anfragen/3 Alle Kunden die sowohl ein Konto als auch einen Kredit haben. π KuName (Kreditnehmer) π KuName (Kontoinhaber) Name und Kreditbetrag aller Kunden die einen Kredit haben. Lösung 1: π KuName,Betrag (Kreditnehmer KrNo=KrNr Kredite) Lösung 2: π KuName,Betrag (ρ [KuName,KrNr] (Kreditnehmer) Kredite) Kunden die sowohl ein Konto bei der Filiale Chur als auch der Filiale Lanquart haben. Lösung: π KuName (σ FiName= Chur (Kontoinhaber Konten)) π KuName (σ FiName= Lanquart (Kontoinhaber Konten)) Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 35 / 61 Zusammenfassung: Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 36 / 61 Erweiterte Operatoren der Erweiterten elationalen Algebra der relationalen Algebra: Mengendurschnitt Join (theta, natural) Zuweisung verändern nicht die Ausdrucksstärke der relationalen Algebra, vereinfachen aber die Anfragen. Besonders der Join Operator spielt eine große olle in der effizienten Implementierung der relationalen Algebra in ystemen. Die erweiterten Operatoren erhöhen die Ausdrucksstärke der relationalen Algebra. Verallgemeinerte Projektion π Gruppierung und Aggregation γ Äußerer Join (outer join) d ><, >< d, d >< d Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 37 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 39 / 61
Verallgemeinerte Projektion Erweiterte Aggregationsfunktionen Erweiterte Erlaubt arithmetische Funktionen in der Projektionsliste: E ist ein relationaler Ausdruck. π F1,F 2,...,F n (E) F 1, F 2,..., F n sind jeweils arithmetische Ausdrücke, welche Konstanten und Attribute des chemas von E enthalten. Beispiel: Gegeben eine elation Kredite[Kunde, Limit, KreditBetrag], finde heraus, wieviel jeder Kunde noch ausgeben darf: π Kunde,Limit KreditBetrag (Kredite) Aggregationsfunktionen erhalten eine Multimenge von Werten als Argument und liefern als Ergebnis einen einzigen Funktionswert. avg: Durchschnitt min: kleinster Wert max: größter Wert sum: umme aller Werte count: Anzahl der Werte (Kardinalität der Menge/Multimenge) Elemente der Argumentmenge und Funktionswert sind atomar, nicht Tupel. Multimenge (Menge mit Duplikaten): k-fache Werte gehen k-fach in die Berechnung ein. Beispiele: ({...} m ist eine Multimenge) min({3, 1, 5, 5} m ) = 1 count({3, 1, 5, 5} m ) = 4 avg({3, 1, 5, 5} m ) = 3.5 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 40 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 41 / 61 Gruppierung Erweiterte Gruppierungsoperator Erweiterte Partitionierung der Tupel einer elation gemäß ihrer Werte in einem oder mehreren Attributen. Gruppe (Parition): Alle Tupel mit identischen Werten in allen Gruppierungsattributen. Hauptzweck: Aggregation auf Teilen einer elation (Gruppen) Beispiel: Gegeben elation = {[1, 2, 3], [1, 2, 5], [1, 4, 3], [2, 3, 5], [2, 4, 5]} mit chema sch() = [A, B, C]. Gruppierung nach Attribut A ergibt die Gruppen {[1, 2, 3], [1, 2, 5], [1, 4, 3]} und {[2, 3, 5], [2, 4, 5]} Gruppierung nach den Attributen A, C ergibt die Gruppen {[1, 2, 3], [1, 4, 3]}, {[1, 2, 5]}, {[2, 3, 5], [2, 4, 5]} Die Gruppierung der relationalen Algebra: γ G1,G 2,...,G m;f 1 (A 1 ),F 2 (A 2 ),...,F n(a n)() ist eine elation: Gruppierungsattribute: G 1, G 2..., G m ist eine Liste von Attributen aus, über die gruppiert wird (kann leer sein) Aggregationsfunktionen: F i ist eine Aggregationsfunktion Aggregierte Attribute: A i ist ein Attribut von Leere Attributeliste: Gruppe besteht aus der gesamten elation. Ergebnis: elation mit m + n Attributen Anzahl der Tupel entspricht Anzahl der Gruppen (ein Tupel pro Gruppe) die Werte der ersten m Attribute des Tupels einer Gruppe entsprechen G 1, G 2,..., G m (Wert gleich für alle Tupel in der Gruppe) die letzten n Attribute entsprechen den Funktionsergebnissen von F i über die (Multi-)menge aller Werte von A i in der Gruppe Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 42 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 43 / 61
Beispiel: Gruppierungsoperator Erweiterte Äußerer Join (Outer Join) Erweiterte elation, es ρ [umc] (γ sum(c) ()) r A B C α α 7 α β 7 β β 3 β β 10 es sumc 27 Gesamteinlagen pro Filiale: es ρ [FiName,umEinlagen] (γ FiName;sum(Guthaben) (Konten)) Konten FiName KoNr Guthaben Perryridge A-102 400 Perryridge A-201 900 Brighton A-217 750 Brighton A-215 750 edwood A-222 700 es FiName umeinlagen Perryridge 1300 Brighton 1500 edwood 700 Erweiterung des Join Operators, welche Informationsverlust verhindert. Berechnet Join und fügt die Tupel, die keinen Join-Partner haben, zum Join-Ergebnis hinzu. Varianten: (Voller) äußerer Join ( d >< d ): erhält Tupel von und Linker äußerer Join ( d >< ): erhält nur Tupel von (linke elation) echter äußerer Join ( >< d ): erhält nur Tupel von (rechte elation) Verwendet null Werte, um die neuen Attribute der Tupel ohne Join-Partner zu füllen. Analog zum normalen (inneren) Join gibt es einen natürlichen und einen theta äußeren Join. Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 44 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 45 / 61 Beispiel: Äußerer Join/1 Erweiterte Beispiel: Äußerer Join/2 Erweiterte Beispiel elationen: Kredite KrNr FiName Betrag L-170 Downtown 3000 L-230 edwood 4000 L-260 Perryridge 1700 Kreditnehmer KuName KrNr Jones L-170 mith L-230 Hayes L-155 Beispiel elationen: Kredite KrNr FiName Betrag L-170 Downtown 3000 L-230 edwood 4000 L-260 Perryridge 1700 Kreditnehmer KuName KrNr Jones L-170 mith L-230 Hayes L-155 Join (auch innerer Join genannt) Kredite Kreditnehmer KrNr FiName Betrag KuName L-170 Downtown 3000 Jones L-230 edwood 4000 mith Linker äußerer Join (erhält Tupel der linken elation) Kredite d >< Kreditnehmer KrNr FiName Betrag KuName L-170 Downtown 3000 Jones L-230 edwood 4000 mith L-260 Perryridge 1700 null Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 46 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 47 / 61
Beispiel: Äußerer Join/3 Erweiterte Beispiel: Äußerer Join/4 Erweiterte Beispiel elationen: Kredite KrNr FiName Betrag L-170 Downtown 3000 L-230 edwood 4000 L-260 Perryridge 1700 Kreditnehmer KuName KrNr Jones L-170 mith L-230 Hayes L-155 Beispiel elationen: Kredite KrNr FiName Betrag L-170 Downtown 3000 L-230 edwood 4000 L-260 Perryridge 1700 Kreditnehmer KuName KrNr Jones L-170 mith L-230 Hayes L-155 echter äußerer Join (erhält Tupel der rechten elation) Kredite >< d Kreditnehmer KrNr FiName Betrag KuName L-170 Downtown 3000 Jones L-230 edwood 4000 mith L-155 null null Hayes (Vollständiger) äußerer Join (erhält Tupel beider elationen) Kredite d >< d Kreditnehmer KrNr FiName Betrag KuName L-170 Downtown 3000 Jones L-230 edwood 4000 mith L-260 Perryridge 1700 null L-155 null null Hayes Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 48 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 49 / 61 Erweiterte Zusammenfassung: Erweiterte Änderung der Datenbank Erweiterte ist ausdrucksstärker als elementare relationale Algebra. Verallgemeinerte Projektion π: Arithmetik in Projektionsliste Gruppierung und Aggregation γ: Berechnung über Gruppen von Attributwerten Äußerer Join d ><, >< d, d >< d : Tupel-erhaltender Join Der Inhalt der Datenbank kann mithilfe folgenden Operatoren verändert werden: Löschen (delete) Einfügen (insert) Ändern (update) All diese Operationen verwenden den Zuweisungsoperator. Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 50 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 52 / 61
Löschen Beispiel: Löschen Ausdruck ähnlich einer Anfrage, wobei die Ergebnistupel von der Datenbank entfernt werden. Nur ganze Tupel können entfernt werden; Werte einzelner Attribute können nicht entfernt werden. Löschen wird in der relationalen Algebra folgendermaßen ausgedrückt: E wobei eine elation ist und E ein Ausdruck der relationalen Algebra. Lösche alle Konten in der Filiale Domplatz: 1 σ FiName= Domplatz (Konten) Konten Konten 1 2 π KuName,KoNr ( 1 Kontoinhaber) Kontoinhaber Kontoinhaber 2 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 53 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 54 / 61 Einfügen Beispiel: Einfügen/1 Es gibt zwei Möglichkeiten, um Daten in die elation einzufügen: die einzufügenden Tupel explizit angeben eine Anfrage schreiben deren Ergebnis eingefügt werden soll Einfügen wird in der relationalen Algebra folgendermaßen ausgedrückt: E wobei eine elation und E ein relationaler Ausdruck sind. Wird ein einzelnes, explizites Tupel eingefügt, ist E eine konstante elation die nur ein Tupel enthält. Füge folgende Information in die Datenbank ein: Kunde mith eröffnet ein neues Konto mit Nummer A-973 auf der Domplatz Filiale und legt 1200 EU ein. Konten Konten {[ A-973, Domplatz, 1200]} Kontoinhaber Kontoinhaber {[ mith, A-973 ]} Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 55 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 56 / 61
Beispiel: Einfügen/2 Änderung Alle Kreditnehmer der Domplatz Filiale erhalten ein Konto mit 200 EU Guthaben geschenkt, wobei die Kontonummer des neuen Kontos identisch mit der jeweiligen Kreditnummer ist. 1 σ FiName= Domplatz (Kreditnehmer KrNo=KrNr Kredite) Konten Konten ρ KoNr,FiName,Guthaben (π KrNr,FiName ( 1 ) {[200]}) Kontoinhaber Kontoinhaber ρ KuName,KoNr (π KuName,KrNr ( 1 )) Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 57 / 61 Änderungen erlauben, einzelne Werte eines Tupels zu ändern, ohne alle Werte ändern zu müssen. Kann durch Löschen und Einfügen ausgedrückt werden. in realen ystemen ist die Änderungsoperation jedoch oft viel schneller deshalb gibt es einen eigenen Operator In relationaler Algebra werden Änderungen in der elation durch Ersetzten der elation durch einen relationalen Ausdruck E ausgedrückt: E Oft ist E eine erweiterte Projektion über [A 1, A 2,..., A n ]: π F1,F 2,...,F n () wobei F i entweder A i ist, falls Attribut A i nicht geändert werden soll oder eine Funktion, die einen neuen Wert für A i festlegt. Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 58 / 61 Beispiel: Änderung Zuasammenfassung Auszahlung der Zinsen von 5% auf alle Konten: Konten π KoNr,FiName,Guthaben 1.05 (Konten) Zahle 6% Zinsen für alle Konten mit mehr als 10.000 EU Guthaben und 5% für alle anderen Konten: Konten π KoNr,FiName,Guthaben 1.06 (σ Guthaben>10000 (Konten)) π KoNr,FiName,Guthaben 1.05 (σ Guthaben 10000 (Konten)) Löschen, Einfügen, Ändern Wird durch Zuweisungsoperator ( ) und Ausdrücken der relationalen Algebra ausgedrückt. Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 59 / 61 Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 60 / 61
Zuasammenfassung : : notwendig : redundant (können durch elementare Operatoren ausgedrückt werden) Erweiterte Operatoren: erhöhen die Ausdrucksstärke Manipulationssprache: Zuweisungsoperator und relationale Algebra Augsten (Univ. alzburg) Datenbanken 1 / ommersemester 2015 61 / 61