Inhalt. Datenbanken 1. Inhalt. Literatur und Quellen. Relationale Algebra

Ähnliche Dokumente
Datenbanken 1. Relationale Algebra. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Kapitalerhöhung - Verbuchung

Zeichen bei Zahlen entschlüsseln

Inhalt. Datenbanken 1. Literatur und Quellen. Inhalt. Das Relationale Modell. Nikolaus Augsten. Sommersemester Schema, Relation, und Datenbank

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Software Engineering Klassendiagramme Assoziationen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Sollsaldo und Habensaldo

Berechnungen in Access Teil I

Datenbanken 1. Das Relationale Modell. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

Sage Start Einrichten des Kontenplans Anleitung. Ab Version

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Java Einführung Operatoren Kapitel 2 und 3

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

SEP 114. Design by Contract

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

PowerPoint 2010 Mit Folienmastern arbeiten

Theoretische Grundlagen der Informatik

Was meinen die Leute eigentlich mit: Grexit?

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Tutorial: Homogenitätstest

teischl.com Software Design & Services e.u. office@teischl.com

OSF Integrator für Btracking und Salesforce Anleitung für die Nutzer

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Benutzeranleitung Superadmin Tool

Musterlösungen zur Linearen Algebra II Blatt 5

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Grundbegriffe der Informatik

ist die Vergütung für die leihweise Überlassung von Kapital ist die leihweise überlassenen Geldsumme

Einführung in. Logische Schaltungen

Gleichungen und Ungleichungen

Einrichten eines HBCI- Zugangs mit Bank X 5.1

1. Einführung. 2. Weitere Konten anlegen

Grundlagen: Datenbanken WS 15/16

1. So einfach ist der Excel-Bildschirm

How to do? Projekte - Zeiterfassung

Informatik 12 Datenbanken SQL-Einführung

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

LINGO: Eine kleine Einführung

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Hilfedatei der Oden$-Börse Stand Juni 2014

Anwendungsbeispiele Buchhaltung

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Codex Newsletter. Allgemeines. Codex Newsletter

Die Post hat eine Umfrage gemacht

nessbase Projekte Über Projekte I

SANDBOXIE konfigurieren

Theorie der Informatik

Updatehinweise für die Version forma 5.5.5

Vorkurs Informatik WiSe 15/16

Tipps zur Nutzung der ViT 1 Lernen ViT Üben HAU ViT ViT ViT ViT ViT Testen ViT VORSC Bewerten RAGTIME ViT zur Vollversion ViT

Analysis I für Studierende der Ingenieurwissenschaften

1 Aufgabe: Geldautomat 2. 2 Vorlage: Geldautomat 3. 3 Lösungsvorschlag: Geldautomat 5

Vorlesung Dokumentation und Datenbanken Klausur

Erwin Grüner

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Die Excel Schnittstelle - Pro Pack

BSV Ludwigsburg Erstellung einer neuen Internetseite

Lehrer: Einschreibemethoden

Benutzerverwaltung Business- & Company-Paket

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Vertrieb durch: h+f Informatik und Elektrotechnik Washingtonstrasse 32 CH-9400 Rorschach Tel: +41 (0) Mobile: +41 (0)

Reporting Services und SharePoint 2010 Teil 1

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

SJ OFFICE - Update 3.0

Änderungsbeschreibung HWS32 SEPA Überweisungen

Verbuchung von Zahlungseingängen über das PayPal-Konto

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Grundlagen der Künstlichen Intelligenz

5.2 Neue Projekte erstellen

Professionelle Seminare im Bereich MS-Office

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

3. GLIEDERUNG. Aufgabe:

Übungen lineare Gleichungssysteme - Lösungen 1. Bestimme die Lösungsmenge und führe eine Probe durch! a)

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

1. Einführung. 2. Die Abschlagsdefinition

Herstellen von Symbolen mit Corel Draw ab Version 9

Kurzanleitung OOVS. Reseller Interface. Allgemein

1 Mathematische Grundlagen

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

Inventur. mit Microsoft Dynamics NAV 2013 R2

Smart-Grid-Tools Beschleunigen Sie die Erstellung von Bauteilen ZUSAMMENFASSUNG. IM WORKSHOP Tip #14. Die Herausforderung, große Bauteile zu erstellen

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Übungsaufgaben Tilgungsrechnung

4 Aufzählungen und Listen erstellen

my.ohm Content Services Autorenansicht Rechte

Transkript:

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