Anfrageoptimierung. Bernhard Seeger Fachbereich Mathematik und Informatik Universität Marburg. Seite 1

Größe: px
Ab Seite anzeigen:

Download "Anfrageoptimierung. Bernhard Seeger Fachbereich Mathematik und Informatik Universität Marburg. Seite 1"

Transkript

1 Anfrageoptimierung Bernhard Seeger Fachbereich Mathematik und Informatik Universität Marburg Seite 1

2 Voraussetzungen Organisation Datenstrukturen und Algorithmen Java Wünschenswert: Datenbanksysteme I, Compilerbau Vorlesungenstermine Dienstag 9-11h, Hörsaal IV Übungen Tutor: Michael Cammert Termine:? Homepage der Vorlesung Seite 2

3 Übersicht Architekturen von DBS Einführung in die relationale Algebra und SQL Übersetzung von SQL Logische und physische Anfrageoptimierung Implementierung physischer Operatoren Parallele Anfrageverarbeitung Anfrageoptimierung zur Laufzeit Anfrageverarbeitung auf Datenströmen Seite 3

4 Literaturliste T. Härder, E. Rahm: "Datenbanksysteme - Konzepte und Techniken der Implementierung", Springer, 2001 H. Garcia-Molina, J. Ullman, J. Widom: "Database System Implementation", Prentice Hall, 1999 A. Kemper, A. Eickler: "Datenbanksysteme'', Oldenbourg, 4. Auflage, G. Saake, A. Heuer: "Datenbanken - Implementierungstechniken", MITP-Verlag, 1999 Seite 4

5 Zeitschriften und Tagungsbände ACM TODS Transactions on Database Systems, ACM-Publikation (vierteljährl.) THE VLDB Journal VLDB Foundation (vierteljährlich) IEEE Trans. on Knowledge and Data Engineering (6-mal pro Jahr) Information Systems Pergamon Press (6-mal pro Jahr) ACM Computing Surveys ACM-Publikation (vierteljährlich) Tagungen im Bereich Datenbanksysteme SIGMOD Proceedings, jährliche Konferenz der ACM Special Interest Group on Management of Data VLDB Proceedings, jährliche Konferenz Very Large Data Bases (ACM, IEEE, ) IEEE Data Engineering, jährliche Konferenz der Datenbankgruppe von IEEE GI Tagungsbände der jährlichen Tagungen der Gesellschaft für Informatik, sowie Tagungen innerhalb des FA 2.5 Informationssysteme Seite 5

6 Datenbanktechnologie Einführung Konzepte, Methoden, Werkzeuge und Systeme für die dauerhafte Lebensdauer Daten > Dauer Erzeugungsprozeß zuverlässige Integrität, Konsistenz, Verlustsicherheit unabhängige wechselseitige Änderungsimmunität AWP-DB Verwaltung und komfortable höhere abstrakte Schnittstelle flexible Ad-hoc-Zugriffsmöglichkeit Benutzung von großen Größe Daten >> Größe Hauptspeicher integrierten von/für mehrere Anwendungen, kontrollierte Redundanz mehrfachbenutzbaren paralleler Zugriff Datenbasen Seite 6

7 DBS-Konzepte Ad-hoc-Anfragen Zugriffspfade Speicherungsstrukturen Verteilung Zugriffskontrolle Programmkopplung Datenintegration anwendungsorientierte Datenbeschreibung Datenunabhängigkeit Konsistenzkontrolle Mehrbenutzerbetrieb Datenintegrität Wiederanlauf Leistungsaspekte, Verteilung Datenschutz, Spracheneinbettung Datenmodelle, Schemata, Sichten Transaktionen Seite 7

8 Relationale Datenbanksysteme Verwendung von Relationen als die zentrale Datenstruktur Modellierung Anfrageverarbeitung Anfragesprache SQL Eine Anfrage Verarbeitung von Relationen Ergebnis ist wieder eine Relation deskriptive Sprache Beschreibung des Ergebnis keine explizite Vorschrift für die Berechnung des Ergebnis Anfrageübersetzung und -optimierung Transformation der SQL-Anfrage in einen Anfrageplan, der aus physischen Operatoren der relationalen Algebra besteht. Seite 8

9 AnfrageoptimierungUniversität Marburg Warum sind Kenntnisse in dem Bereich wichtig? Typische Problemstellung aus der Praxis: Effiziente Abbildung eines komplexen Modells (OO, XML) auf ein relationales DBMS Übersetzung einer Anfragesprache nach SQL ( Cross-Compiler) Anforderung dabei: Effizienz Erfolgreiche Bearbeitung einer solchen Aufgabe erfordert Kenntnisse über die Interna der relationalen Datenbanksysteme 9.

10 1. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): (1970) Kommerzielle DBMS wie z. B. Oracle, SQL Server, Sybase, Informix, DB2 und nicht-kommerzielle Systeme wie z. B. Interbase, mysql, PostgreSQL basieren in ihren Grundzügen auf dem relationalen Datenmodell Gründe für den Erfolg des relationalen Datenmodells Einfache Datenstruktur: Relation (vergleichbar mit einer Tabelle) mengenorientierte Verarbeitung der Daten wenig Grundoperationen zur Verabeitung und dadurch eine klare Semantik formale Theorie zur Modellierung und Anfrageverarbeitung Seite 10

11 1.1 Grundlegende Strukturen Eine Relation besteht aus folgenden Komponenten: Das Relationale Datenmodell einem Namen R, ein Relationenschema RS R Ein Relationenschema definiert die spezifische Struktur der Relation. RS R wird durch eine Liste von k Attributen (A 1,,A k ) beschrieben, wobei zu jedem Attribut A j es einen Wertebereich D j = dom(a j ) gibt. Der Wertebereich der Relation ist dann dom( R) = D 1 D 2 D k, k 1 Der Wertebereich eines Attributs ist endlich und besteht aus atomaren Elementen, die keine weitere Struktur besitzen. Beispiele hierfür sind Elemente vom Typ int oder String. eine Instanz I R einer Relation R ist eine Teilmenge des kartesischen Produkts der Wertebereiche: I R dom( R) Oft sind weitere semantische Eigenschaften bekannt, welche die Anzahl der möglichen Instanzen reduzieren. Ein Tupel (Zeile, Datensatz) entspricht einem Element einer Relationeninstanz. Ein Tupel hat somit für jedes Attribut genau einen Wert. Seite 11

12 Notation Das Relationale Datenmodell Tupel: (Franz, 2000, 1966) Dies könnte ein Tupel einer Relation Personal mit den Attributen Name, Gehalt und Geburtsjahr sein. Relationenschema einer Relation R: RS R = (A 1,,A k ) Für eine Relation R mit k Attributen bezeichnet k die Stelligkeit (Grad) von R. In der Literatur findet man auch häufig die Schreibweise R(A 1,,A k ). Relationeninstanz einer Relation R: I R = {t 1,,t n }, wobei t i die Tupel sind. Oft verwendete Sprechweisen Der Begriff Relation wird oft auch für die Instanz einer Relation verwendet. Ist klar, um welche Relation es sich handelt, wird der Index bei der Instanz und beim Schema einfach weggelassen. Häufig wird eine Relation als Tabelle dargestellt: Pers1 Name Gehalt GebJahr Carlo Beate Pers 1 ist der Relationennamen.Name, Gehalt, Gebjahr sind die Attributsnamen. Seite 12

13 Gleichheit von Relationen Das Relationale Datenmodell Seien R und S zwei Relationen. Dann sind R und S schemakonform, falls dom(r) = dom(s) und RS R = RS S. Zwei Relationen R und S sind gleich, wenn R und S schemakonform sind und I R = I S. Bemerkungen Relationen entsprechen dem Variablenbegriff einer Programmiersprache. Relationen sind Speicherbereiche im Rechner, die über den Relationennamen angesprochen werden. Seite 13

14 Reihenfolge der Attribute Das Relationale Datenmodell Bei unserem bisherigen Relationenbegriff hat die Reihenfolge der Zeilen (Tupel) keine Bedeutung. Eine Instanz wird immer als eine Menge von Tupeln betrachtet. Die Reihenfolge der Attribute ist aber von Bedeutung, was insbesondere dazu führt: Pers1 Name Gehalt GebJahr Carlo Beate = Pers2 Gehalt Name GebJahr 2000 Carlo Beate 1977 Um die Gleichheit solcher Relationen zu erzielen, betrachten wir folgende Definition für eine Relationeninstanz: Sei R eine Relation und RS R = { A 1,, A k } das zugehörige Schema. Wir gehen jetzt von einer Menge von Attributen aus. Die zu R gehörende Instanz I R ist eine endliche Menge von totalen Abbildungen der k Form t: RS R dom( A i ), wobei ta ( j ) dom( A j ) gilt. i = 1 Diese Definition liefert uns den gewünschten Effekt! Je nach Sachverhalt werden wir auf die eine oder die andere Defintion zurückgreifen (siehe auch Literatur). Seite 14

15 Beispiel: Städte Name Einwohner Land München Bayern Bremen Bremen Relationenschema der Relation Städte: {Name, Einwohner, Land} mit dom(name) = String[40], dom(einwohner) = INTEGER und dom(land) = String[40] Ausprägungen: t 1 und t 2 t 1 (Name) = München, t 1 (Einwohner) = und t 1 (Land) = Bayern t 2 (Name) = Bremen, t 2 (Einwohner) = und t 2 (Land) = Bremen Das Relationale Datenmodell Datenbank: Analog zu einer Relation läst sich eine Datenbank durch drei Eigenschaften beschreiben: Name Datenbankschema: Menge der Relationenschemata Datenbankinstanz: Menge der Instanzen der Relationen Viele der somit beschreibaren Datenbankinstanzen können nicht auftreten. Es ist deshalb sinnvoll die möglichen Datenbankinstanzen durch semantische Bedingungen einzuschränken. Seite 15

16 Einfache Integritätsbedingungen Das Relationale Datenmodell Integritätsbedingungen sind semantische Eigenschaften einer Relation, welche die Menge der möglichen Instanzen einschränken. Im Folgenden werden wir zwei wichtige Bedingungen erläutern. Eine detailierte Diskussion folgt später. Notation Sei R eine Relation und RS das zugehörige Schema. Sei X RS. Dann bezeichnet t[x] das Tupel t eingeschränkt auf X. Ist X = {A}, so schreiben wir kurz t[a] (statt t[{a}]. Nullwerte Jeder Wertebereich eines Attributs enthält den Wert NULL. Gilt für ein Tupel t und einem Attribut A einer Relation t[a] == NULL ist dies folgendermaßen zu interpretieren, dass ein gültiger Wert nicht existiert oder nicht bekannt ist. Es gilt für t 1, t 2 I R mit t 1 [ A] = NULL und t 2 [ A] = NULL stets: t 1 t 2 Sei R eine Relation und A RS R. Dann kann explizit gefordert werden, dass NULL nicht in dom(a) liegt. Seite 16

17 Das Relationale Datenmodell Schlüssel X RS wird als Schlüssel bezeichnet, wenn folgende Bedingungen erfüllt sind: Eindeutigkeit: Für alle (real möglichen) Relationeninstanzen I der Relation R gilt: Für zwei beliebige Tupel t 1 und t 2 aus I gilt: t 1 [ X] = t 2 [ X] t 1 = t 2 Minimalität: es gibt kein Y X ( Y X), so dass die Eindeutigkeit erfüllt ist. Wenn mehrere Teilmengen eines Relationenschemas Schlüssel sind, wird einer von diesen als Primärschlüssel ausgezeichnet. Die Attribute des Primärschlüssels werden im Schema durch Unterstreichen hervorgehoben. Es folgt aus der Eindeutigkeit, dass Nullwerte in Schlüsselattributen nicht erlaubt sind. Seite 17

18 Algebra: 1.2 Die relationale Algebra gegeben eine Menge N ( Anker der Algebra ) Menge von Operationen { σ 1,, σ n } der Form σ j :N k N Das Relationale Datenmodell Relationale Algebra Anker ist die Menge aller Relationen Insgesamt gibt es 6 Grundoperationen. Seite 18

19 Das Relationale Datenmodell Grundoperationen der relationalen Algebra Gegeben zwei Relationen R(A 1,,A r ) und S(B 1,,B s ) mit Stelligkeit r und s. Zur Erleichterung der Definition sei hier angenommen, daß die Attribute der Relationen geordnet sind. Dann gilt: I R = {(a 1,,a r ) a i dom(a i ), 1 i r} und I S = { (b 1,,b s ) b i dom(b i ), 1 i s} Vereinigung: R S Voraussetzung: R und S sind schemakonform. RS R S = RS R. und I R S = I R I S Differenz: R S Voraussetzung: R und S sind schemakonform. RS R S = RS R. und I R S = I R I S Kartesisches Produkt: R S Ann.: RS R RS S = RS R S = RS R RS S, I R S = I R I S Seite 19

20 Das Relationale Datenmodell π i1,, i R m Projektion: ( ) mit 1 i j r. RS πi1,, i ( R) = { A i1,, A im } m I πi1,, i m ( R) = ( c 1,, c m ) ( a 1,, a r ) I R : c j = a ij für j = 1 m Statt Indizes können auch Attributsnamen verwendet werden (X = {A 1,A 2 }): π X ( R) = π A1, A ( R) = π 2 12, ( R) Selektion: Dabei ist F eine Boolesche Funktion (Prädikat), die sich folgendermaßen zusammensezt: a) Operanden: Konstanten oder Name eines Attributs b) Vergleichsoperatoren: =,, <,, >, c) Boolesche Operatoren:,, σ F ( R) RS σf ( R) = RS R I σf R ( ) = { t t I R Ft ()} Seite 20

21 Das Relationale Datenmodell Umbennen von Relationen und Attributen ( + 1- Operation ) ρ S ( R) : Relation R wird in Relation S umbenannt ρ B A ( R) : Attribut A der Relation R wird umbenannt in B Umbennung unterscheidet sich von den anderen Operatoren dadurch, daß keine neue Instanz erzeugt wird, sondern nur das Schema der Relation verändert wird. Operator ist notwendig, wenn eine Relation mehrfach in einer Anfrage vorkommt. Seite 21

22 Das Relationale Datenmodell Beispiele R A B C a b c d a f c b d S D E F b g a d a f R S π A, C R a b c d a f c b d b g a R S R S A B C D E F a b c a b c b g a c b d 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 ( ) A C A B C ( ) a d c c f d σ B = b R a b c c b d ρ B D ( S) B E F b g a d a f Seite 22

23 Das Relationale Datenmodell Beispiele für Anfragen Relationenschemata: Städte( SName, SEinw, LName) Länder( LName, LEinw, Partei) Bestimme alle Großstädte und ihre Einwohnerzahlen π SName, SEinw σ SEinw ( ( Städte) ) In welchem Lande liegt die Stadt Passau? π LName ( σ SName = Passau ( Städte) ) Bestimme die Namen aller Städte, deren Einwohnerzahl die eines Landes übersteigt. π SName ( σ SEinw > LEinw ( Städte Länder) ) Finde alle Städtenamen in CDU-regierten Ländern. π SName ( σ Städte.LName = Länder.LName ( Städte σ Partei = CDU ( Länder) )) Gib alle Städte, die es nur in Hessen gibt? π SName ( σ LName = Hessen ( Städte) ) π SName ( σ LName Hessen ( Städte) ) Seite 23

24 1.2.2 Abgeleitete Operationen Das Relationale Datenmodell Durchschnitt: R S R S Beispiel: = R ( R S) R B C D b c a b c d b f b a d c S B C D b c d b c e a d b R S B C D b c d Seite 24

25 Quotient (Division): Das Relationale Datenmodell R S vereinfachende Annahme: r > s, S und A r = B s, A r-1 = B s-1,, A r-s+1 = B 1 Relationenschema = {A 1,,A r-s } Resultatsinstanz des Quotienten: ( R S) := { ( a 1,, a ) r s ( b,, b ) I 1 s S : ( a 1,, a r s, b 1,, b s ) I R } Ableitung des Quotienten durch die Basisoperationen (siehe Übung) Beispiel: R A B C D a b c d a b e f b c e f e d c d e d e f a b d e S C D c d e f R S A B a b e d Seite 25

26 Das Relationale Datenmodell Theta-Join (Verbund): R iθj S Auswahl bestimmter Tupel aus dem kartesischen Produkt R S: R iθj S := σ Ai θ B ( R S) j mit θ { =,, <,, >, } für θ = = wird der Join auch als Equijoin bezeichnet Beispiel: R A B C S D E R B < D S A B C D E Seite 26

27 Natürlicher Verbund (natural join): R S wichtigste Operation neben der Selektion vereinfachende Annahme: A 1 = B 1,, A k = B k und A j B i für alle j und i mit k< j r und k< i s Das Relationale Datenmodell Dann ist: ( R S) := π ik + 1, i k + 2,, i σ r+ s R.A1 = S.B 1 R.A k = S.B ( R S) k Beispiel: R B C A b c a b c d b f b a d c S B C D b c d b c e a d b R S B C A D b c a d b c a e b c d d b c d e a d c b Seite 27

28 Das Relationale Datenmodell Beispiele Datenbankschema: P-M-Zuteilung: pnr mnr Fähigke it Abteilungsleiter: abtnr pnr B10 67 A A64 51 Abteilung: abtnr AName B10 Spielzeug A63 Computer A64 Suppen Personal: pnr PName Vorname abtnr Lohn 67 Meier Helmut B10 L4 73 Müller Margot B10 L5 114 Bayer Martin A63 L6 51 Daum Birgit A64 L7 69 Störmer Willi A64 L6 333 Haar Hans A63 L6 701 Reiner Willi A64 L6 82 Just Michael A64 L6 Maschinen: mnr MName 84 Presse 93 Füllanlage 101 Säge Seite 28

29 Das Relationale Datenmodell Anfragen Gib alle Namen von Personen, die an einer Maschine ausgebildet sind. π PName ( Personal P-M-Zuteilung) Gib alle Namen der Personen, die an keiner Maschine genügend gut ausgebildet sind. π PName (( π pnr ( Personal) π pnr ( σ Fähigkeit < 5 ( P-M-Zuteilung) )) Personal) Gib die Namen der Personen aus Abteilung Suppen, die an der Maschine mit mnr = 93 ausgebildet sind. π PName ((( σ AName = Suppen ( Abteilung) ) Personal) σ mnr = 93 ( P-M-Zuteilung) ) Gib die Namen der Personen, die an der gleichen Maschine ausgebildet sind wie die Person mit pnr = 114. π PName ( Personal (( π mnr ( σ pnr = 114 ( P-M-Zuteilung) )) P-M-Zuteilung) ) Seite 29

30 Weitere Join-Operatoren Das Relationale Datenmodell bisherige Join-Operatoren werden auch als innere Joins bezeichnet Datensätze ohne Join-Partner gehen verloren äußere Join-Operatoren (engl.: outer joins): Schema des äußeren Joins entspricht dem des inneren Joins Datensätze ohne Join-Partner werden (teilweise) berücksichtigt und mit Nullwerten aufgefüllt. Varianten linker äußerer Join R S: Tupel von R bleiben erhalten recher äußerer Join R S: Tupel von S bleiben erhalten vollständiger äußerer Join R S: Tupel von S und R bleiben erhalten Semi-Join Sei RS das Schema der Relation R. Dann ist der Semi-Join von R und S folgendermaßen definiert: R S = Π RS ( R S) enthält alle Tupel der Relation R, die an dem Join mit der Relation S beteiligt sind. Seite 30

31 Das Relationale Datenmodell Beispiele R A B C a 1 b 1 c 1 a 2 b 2 c 2 S C D E c 1 d 1 e 1 c 3 d 2 e 2 linker äußerer Join R S A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 NULL NULL Semi-Join R S A B C a 1 b 1 c 1 Seite 31

32 bisher: 3.4 Das Relationenkalkül Benutzung einer prozeduralen Anfragesprache explizite Beschreibung, wie das Ergebnis berechnet wird Das Relationale Datenmodell zugrundeliegende Idee beim Relationenkalkül: Ergebnis einer Anfrage ist eine Menge von Tupeln Beschreibung der Ergebnisrelation ohne dabei explizit eine Vorschrift für die Konstruktion des Ergebnisses anzugeben. Prädikatenlogik erster Stufe Zwei verschiedene Techniken Tupelkalkül Domänenkalkül Seite 32

33 Das Relationale Datenmodell Das Tupelkalkül eine Anfrage im Tupelkalkül wird wie folgt formuliert: { trs ( ) ψ() t } Ψ ist hierbei eine Boolsche Funktion. Die Ergebnismenge der Anfrage ist durch die Tupel t aus dem Schema RS gegeben mit ψ() t = true Häufig ergibt sich das Schema aus der verbalen Formulierung der Anfrage. Das Schema wird deshalb bei den Formeln nicht immer explizit angegeben. Beispiele: Was sind die Namen der Mitarbeiter aus Abteilung A63? { t s Personal mit t[pname] = s[pname] und s[abtnr] = A63 } Quotient der Relationen R mit Schema A und S mit Schema B, A B: { t t r R t s S mit t s ( B A) = t und t s ( A) = t r } Seite 33

34 Formeln des Tupelkalküls Eine Formel Ψ setzt sich zusammen aus Atomen der Form R(s): s ist Element der Relation R (s ist Tupelvariable) s[i] θ u[j] mit θ { =,, <,, >, } Beispiele: s[i] θ a Personal(t), t[fähigkeit] > 4, t[abtnr] = u[abtnr] Das Relationale Datenmodell Eine Formel ist gegeben durch ein Atom Ψ 1 Ψ 2, Ψ 1 Ψ 2, Ψ 1, ( Ψ 1 ) srs ( )Ψ, srs ( )Ψ, wobei s eine Tupelvariable in Ψ und RS eine Menge von Attributen ist, auf der das Tupel definiert ist. RS wird auch als Schema der Variable s bezeichnet Seite 34

35 Das Relationale Datenmodell Bemerkung: Reihenfolge der Ausführung: und ; ; ; Klammern setzten die Reihenfolge außer Kraft Beispiele: Annahme: Tupelvariable x ist aus dem Schema {pnr,mnr,fähigkeit} x[ Fähigkeit] > 4 ( xpnr [ ] = y[ pnr] ) x[ Fähigkeit] > 4 P-M-Zuteilung( x) ( x[ pnr] = ypnr [ ]) x[ Fähigkeit] > 4 x( P-M-Zuteilung( x) ( x[ pnr] = y[ pnr] ) x[ Fähigkeit] > 4) Seite 35

36 Das Relationale Datenmodell Freie und gebundene Tupelvariablen entspricht dem Prinzip globaler und lokaler Variablen in einem Programm falls ein Quantor vor einer Variablen steht, wird diese zu einer gebundenen Variablen folgende Bedingungen gelten: das Auftreten einer Tupelvariablen in einem Atom ist stets frei für f = g und f = ( g) sind alle freien Variablen von g auch frei in f für f = g h und f = g h sind die Variablen in f frei, falls sie es in g und h sind für f = x ( RS) ( g) und f = x (RS)( g) muß x eine freie Variable in g sein, die in f gebunden ist. Dabei ist RS das Schema der Variable x. Beispiel: x( { pnr, mnr, Fhigkeit} )( P-M-Zuteilung( x) x[ Fähigkeit] > 4) Seite 36

37 Das Relationale Datenmodell Berechnung der Formeln des Tupelkalkül ein Ausdruck des Tupelkalküls hat die Form { trs ( ) Ψ() t } wobei t (aus dem Schema RS) die einzig freie Variable in Ψ ist. Substitution: Sei Ψ( s) eine Formel. Dann ist Ψ( t/s) die Substitution von der Tupelvariablen s in Ψ durch das Tupel t, falls in jedem Atom, das ein freies Auftreten von s enthält, wie folgt verfahren wird: R(s) wird ersetzt durch wahr, falls t R. Andernfalls durch falsch. s[i] θ u[j] wird ersetzt durch c θ u[j] mit c = t[i] (Ann.: u s ) s[i] θ c wird ersetzt durch wahr, falls ti []θc gilt. Bemerkung: Durch Substitution gewinnt man eine Formel die nur noch Konstanten der Form wahr und falsch und Atome mit gebundenen Variablen enthält. Seite 37

38 Das Relationale Datenmodell Beispiele u und t aus dem Schema {pnr,mnr, Fähigkeit} gegeben sei die Formel. u( P-M-Zuteilung(u) u( pnr) = t( pnr) u( Fähigkeit) < t( Fähigkeit) ) für das Tupel t = (73,84,5) gilt: u( P-M-Zuteilung(u) u( pnr) = 73 u( Fähigkeit) < 5) gegeben sei die Formel: P-M-Zuteilung(u) u( pnr) = 73 u( Fähigkeit) < 5 Für das Tupel u = (51,93,2) gilt: true false true Seite 38

39 Interpretation der Formel Das Relationale Datenmodell Sei f eine Formel ohne freie Variablen. Die Interpretation I(f) ist wie folgt definiert: Falls f = wahr, dann ist I(f) := true. Andernfalls, I(f) := false. Sei f = xrs ( ) ( gx ( )). Dann ist I(f) := true, falls es mindestens ein Tupel t aus dem Schema RS gibt, so daß I(g(t/x)) = wahr ist. Andernfalls, I(f) := false Sei f = xrs ( )( gx ( )). Dann ist I(f) := true, falls für alle t aus dem Schema RS I(g(t/x)) = true gilt. Andernfalls, I(f) := false. Sei E = { x( RS) Ψ( x) } ein Ausdruck des Tupelkalküls und sei RS = {A 1,,A n } das Schema von x und D 1 D 2 D n der Wertebereich. Der Wert von E zu einer gegebenen Datenbank besteht aus allen Tupel t D 1 D 2 D n, die erfüllen. I( Ψ( t/x) ) = true Seite 39

40 Das Relationale Datenmodell Beispiele Gib alle Personalnummern von Personen, die an einer Maschine ausgebildet sind. { t( { pnr} ) u( P-M-Zuteilung( u) u[ pnr] = tpnr [ ])} Gib alle Personalnummern der Personen, die an keiner Maschine genügend gut ausgebildet sind. { t( { pnr} ) u( P-M-Zuteilung( u) u[ Fähigkeit] 5 u[ pnr] = t[ pnr] )} Menge der möglichen Werte für u (t[pnr] = 1): P-M-Zuteilung u[pnr] = 1 alle möglichen Werte für u Seite 40

41 Das Relationale Datenmodell Einführung von Kurzschreibweisen: u R( ψ( u) ) := u( Ru ( ) ψ( u) ) u R( ψ( u) ) := u( Ru ( ) ψ( u) ) ( Ψ 1 Ψ 2 ):=( Ψ 1 Ψ 2 ) Beispiel Berechne die Namen der Personen, die an keiner Maschine genügend gut ausgebildet sind (Schema der Tupelvariablen t ist {PName}). { t x Personal( Ψ 1 ( x, t)) y( { pnr} )( ypnr [ ] = xpnr [ ] Ψ 2 ( y) ))} Ψ 1 ( xt, ) = ( xpname [ ] = tpname [ ]) Ψ 2 ( y) = u P-M-Zuteilung( u[ Fähigkeit] 5 u[ pnr] = y[ pnr] ) Ψ 2 Vereinfachen der Formel : Ψ 2 ( y) = u P-M-Zuteilung( ( u[ pnr] = ypnr [ ]) ( u[ Fähigkeit] 5) ) Seite 41

42 Das Relationale Datenmodell Sichere Ausdrücke Probleme des Tupelkalküls: Beschreibung unendlich großer Relationen keine effektive Berechnung möglich (d.h. nur durch Testen jedes Elements aus dem Wertebereich) Idee: Beschränkung der Wertebereiche nur auf die Werte, die tatsächlich in vorhandenen Relationen vorkommen. DOM( ψ) : Menge aller Werte, die explizit in Ψ vorkommen, oder in Relationen, die in Ψ erwähnt werden (zur Erinnerung: Relationen sind hier stets endlich). Beispiel: ψ = t[ 2] = 7 Rt () mit a 5. R b 3 Dann gilt: DOM( ψ) = { ab, } { 357,, } Seite 42

43 Ein Ausdruck { t(rs) ψ() t } ist sicher, falls gilt: I( ψ( u t) ) = true u DOM( ψ) für jede Teilformel u( ω( u) ) gilt: I( ω( v u) ) = true v DOM( ω) für jede Teilformel u( ω( u) ) gilt: v DOM( ω) I( ω( v u) ) = true Das Relationale Datenmodell Beispiele: { t Personal() t t[ Vorname] = Willi } ist ein sicherer Ausdruck { t ( Personal() t t[ Vorname] = Willi )} ist nicht sicher. für eine Relation R und eine Formel Ψ sind die folgenden Ausdrücke sicher: u R( ψ( u) ) u R( ψ( u) ) Seite 43

44 3.5 Erweiterung der relationalen Algebra Probleme mit der relationalen Algebra und dem Tupelkalkül Das bisherige Konzept der relationalen Algebra unterstützt nicht die Formulierung von wichtigen Anfragen. Datentyp Relation (Menge von Tupeln) nicht ausreichend. (i) Sortieren der Daten (insbesondere beim Ergebnis einer Anfrage) (ii) Abspeicherung von Duplikaten (die z. B. durch Projektion entstehen) Funktionalität der relationalen Algebra nicht ausreichend. (iii) Verdichtung der Daten einer Relation durch Aggregation (Summe, Durchschnitt) Anmerkung Wir werden später bei der tatsächlichen Anfragesprache relationaler Systeme (SQL) sehen, dass diese Anforderungen beim Entwurf von SQL berücksichtigt wurden. Seite 44

45 M-Relation Eine Multi-Relation (M-Relation) R besteht aus einem Relationenschema RS R und einer Instanz I R, wobei als Instanz eine Multimenge zulässig ist. Zwei M-Relationen heißen schemaverträglich, falls die Attribute der beiden Mengen gleich sind, und der Wertebereich der Attribute in beiden Relationen gleich ist. Sei M eine Multi-Relation. Dann bezeichnet V(M,x) die Anzahl der Vorkommen eines Tupels x in der Instanz von M. Instanzen von Multi-Relationen werden als Multimengen von Tupeln repräsentiert, wobei Tupel mehrfach vorkommen können. Um den Unterschied zu Mengen klar zu machen, verwenden wir statt Mengenklammern < und >. Gewöhnliche Relationen können als Spezialfall von M-Relationen betrachtet werden, für deren Tupel t stets V(M,t) = 1 gilt. Um die Semantik von Operationen zu definieren, verwenden wir die Funktionen V. Seien M und N schemaverträgliche Multimengen. Dann gilt M = N genau dann, falls x: V( Mx, ) = VNx (, ). M N genau dann, falls x: V( Mx, ) VNx (, ) Seite 45

46 Erweiterung der relationalen Operatoren Selektion: MRel -> MRel RS σf ( R) = RS R Es gilt: V( σ F ( R), x) = VRx (, ) falls F( x). 0 sonst Die Selektion auf M-Relationen entspricht damit der Selektion auf Relationen. Beispiel: Sei RS R = {A,B} und I R = ( 11, ),( 12, ),( 13, ),( 12, ). Dann ist I σb = 2 ( R) = 12, ( ), ( 12, ) Projektion: MRel -> MRel Das Relationenschema X der Projektion auf einer Relation R wird explizit beim Operationsaufruf definiert, wobei X RS R. Es gilt: V( π X ( R), x) = VRx' (, ). Bei der Projektion wird also jedes Tupel x' I R x' [ X] = x der Eingabe in ein Tupel der Ausgabe überführt. Gleiche Tupel werden verschmolzen und die entsprechenden Zähler aufaddiert. Beispiel: Für I R = ( 11, ), ( 12, ), ( 23, ) ist I π1 ( R) = ( 1), ( 1),( 2). Seite 46

47 Umbenennung: MRel -> MRel Entspricht der Operation, wie sie für Relationen definiert ist. Kartesisches Produkt: MRel x MRel -> MRel RS R S = RS R RS S (Ann.: RS R RS S = ). VR ( S, x) = VRxRS (, [ R ]) VSxRS (, [ S ]) für x Dom( R S). Es wird analog zu Mengen das kartesische Produkt bei Multimengen gebildet. Beispiel: I R = ( 1), ( 2), ( 1) und I S = ( 1), ( 2). Dann ist I R S = ( 11, ), ( 12, ),( 21, ),( 22, ),( 12, ),( 12, ). Vereinigung: MRel x MRel -> MRel Seien R und S schemaverträglich. Die Instanz ergibt sich aus folgender Bedingung: VR ( + S, x) = VRx (, ) + VSx (, ). Bei der Vereinigung werden also Duplikate nicht beseitigt. Beispiel: Seien I R = ( 1), ( 2), ( 1) und I S = ( 2), ( 3). Dann ist = ( ),( 2),( 1),( 2),( 3). I R 1 S + Diese Vereinigung wird auch als Summenvereinigung bezeichnet. Zusätzlich wird auch noch die Maximumvereinigung benötigt. Seite 47

48 Differenz: MRel x MRel -> MRel Annahme: R und S sind schemaverträglich. Somit ist RS R S = RS S ( = RS R ). Die Instanz ergibt sich aus folgender Bedingung: V( R S, x) = VRx (, ) VSx (, ) falls VRx (, ) > VSx (, ). 0 sonst Die Differenz entfernt somit nicht alle Instanzen von einem Element aus der ersten Multimenge, das in der zweiten Multimenge vorkommt. Beispiel: I R = ( 2),( 1),( 2),( 1) und I S = ( 2), ( 3). Dann ist = ( ), ( 1), ( 1). I R S 2 Als Alternative könnte man auch die Differenz strikt definieren, indem jedes Tupel aus der Relation R entfernt wird, das in der Relation S liegt. Seite 48

49 Motivation Aggregation Um schnell einen Überblick der Daten einer Multi-Relation zu bekommen, soll in einer Anfragesprache auch die Berechnung wichtiger Kennzahlen unterstützt werden. Insbesondere im betriebswirtschaftlichen Umfeld sind dabei die Aggregationsoperationen Summe (sum), Durchschnitt (avg), Anzahl (count), Minimum (min) und Maximum (max) von Bedeutung. In der relationalen Algebra sind solche Operationen bisher noch nicht berücksichtigt worden. Erweiterung der relationalen Algebra Eine Aggregationsfunktion agg berechnet zu einer Multi-Relation einen Wert aus einem Wertebereich D. Ganz allgemein ist agg: MRel D. Die relevanten Aggregationsfunktionen sind avg, sum, count: MRel D und min und max, die eine Multi-Relation auf den Wert eines Attributs abbilden. Bei der Anwendung von sum und avg muß noch zusätzlich ein Attribut aus dem Schema der Relation angegeben werden, auf welches das Aggregat abgebildet wird. Die Operation count liefert die Anzahl der Tupel in der Instanz der Relation. Aggregate finden zunächst nur Verwendung in Kombination mit einem Gruppierungsoperator, den wir folgendermaßen einführen. Seite 49

50 Gruppierung Um gleich mehrere Kennzahlen für eine Multi-Relation zu berechnen, kann diese in Klassen (Partitionen) aufgeteilt und für jede dieser Partitionen eine Kennzahl berechnet werden. Eine Partition ist wiederum eine Relation, die das Schema von der Quelle erbt. Bei einer Relation R wird eine Partitionierung durch { A 1,, A n } RS R definiert. Eine Partition enthält alle Tupel aus I R, die bzgl. der Attribute { A 1,, A n } den gleichen Wert besitzen. Zu einer Aggregatoperation (und einem ausgezeichneten Attribut) wird nun für jede Partition eine Kennzahl berechnet. Diese Kennzahl wird zusammen mit den Werten der Partitionierungsattribute in der Ergebnisrelation eingetragen. Sei R eine Multi-Relation und A = { A 1,, A n } RS R. Desweiteren seien B 1,,B m Attribute und agg 1,,agg m Aggregatsfunktionen mit agg i : MRel dom( B i ).Dann ist der Gruppierungsoperator S = ( ) folgendermaßen definiert: γ A, B1 = agg 1,, B m = agg R m RS S = A { B 1,, B m }.(Ann.: B i A, 1 i m) V( Sx, ) = 1 falls ( VRxA (, [ ]) > 0) und x[b i ] = agg i ( σ ta [ ] = xa [ ] ( R) ). 0 sonst Seite 50

51 Beispiel: Betrachten wir die Relationeninstanz I R = ( 11, ),( 12, ),( 13, ),( 24, ). Dann ist ( ) = ( 1, 3), ( 21, ). Es treten also keine Tupel mehrfach auf. Spezialfall (Duplikateliminierung) γ A, C = count R Ein wichtiger Spezialfall des Gruppierungsoperators ist die Duplikateliminierung δ. Dabei setzen wir A = RS R und berechnen keine Aggregationsfunktion (m=0). Durch eine Duplikateliminierung werden alle Zähler von Tupeln der Relation R auf den Wert 1 gesetzt. Eine solche Multi-Relation entspricht einer gewöhnlichen Relation. Beispiele: Sei R = ( 1), ( 2), ( 1) eine M-Relation. Dann ist δ( R) = ( 1), ( 2). Relationenschemata: Städte( SName, SEinw, LName) Länder( LName, LEinw, Partei). Berechne die Namen der Städte in allen Bundesländern. δπ ( SName ( σ SEinw 8000 ( Städte) )) Seite 51

52 Abgeleitete Operationen Man hat bereits bemerkt, dass die Unterstützung von Multi-Relationen zu einem wesentlich komplexeren Modell führt. Insbesondere gelten die Mengengesetze für die Instanzen der Multi-Relationen nicht. Deshalb werden noch weitere Operationen für die Vereinigung und Differenz benötigt. Schnitt zweier schemaverträglicher Relationen R und S R S = R ( R S) Maximumvereinigung von R und S R ist die kleinste Multimenge T mit T R und T S S max Strikte Differenz R- strict S enthält alle Elemente aus R mit der entsprechenden Vielfachheit, falls dies nicht in S vorkommt. Anmerkung Leider ist dieser Grad an Präzision notwendig, da nur dadurch die Semantik von Anfragesprachen wie SQL klar definiert werden kann. Seite 52

53 Verallgemeinerung der Projektion Die Projektion und auch die Umbenennung sind bei M-Relationen Operatoren, die zu jedem Tupel der Eingabe ein Tupel der Ausgabe erzeugen. Solche Abbildungen werden auch als map bezeichnet. Seien R eine M-Relationen, RS T ein Relationenschema und f: (RS R -> Dom(R)) -> (RS T -> Dom(T)) eine Abbildung. Dann wird durch µ f ( R) die relationale Map definiert, wobei RS µf ( R) = RS T V ( I µf ( R), x) = VRy (, ) y I R x = fy () Man beachte dabei, dass f eine Funktion ist, die ein Tupel der Relation R auf ein Tupel der Relation T abbildet. Dabei haben wir die Definition des Tupels als eine Abbildung benutzt. Beispiel Sei R eine Relation mit RS R = {A,B} und I R = ( 12, ),( 21, ),( 12, ),( 21, ),( 46, ). Sei f(t) = (t[a]*t[b], t[a] + t[b]) eine Abbildung. Dann ist = (, ),( 23, ),( 23, ),( 23, ),( 24, 10). I µf ( R) 23 Seite 53

54 S-Relation Eine S-Relation besteht aus (R, < R ), wobei R eine M-Relation < R eine Ordnungsrelation auf dom(r) Durch : MRel -> SRel ω < wird eine M-Relation R auf eine S-Relation S = (R, <) abgebildet, wobei < eine Ordnungsrelation auf R definiert. Beispiel: R A B C Seite 54

55 Seien < 1 = {((a,b,c), (d,e,f)) a < d} < 2 = {((a,b,c), (d,e,f)) c < f oder (c = f) und b > e} Ordnungsrelationen. Dann sind Achtung: ω <1 ( R) A B C A B C Durch die Operation ω wird eine S-Relation erzeugt. Da aber die Operationen der rel. Algebra nicht für S-Relationen definiert sind, ist es in einem Ausdruck nur möglich, ω als letzte Operation anzuwenden. Berechne die Liste der Namen aller Städte, deren Einwohnerzahl die eines Landes übersteigt, und sortiere die Liste aufsteigend bzgl. SEinw. Man beachte, dass dieser Ausdruck zuviel an Information liefert, da zusätzlich zum Namen der Stadt auch noch der Name des Lands und die Einwohnerzahl zurückgegeben wird. ω <2 ( R) ω < ( π SName, LName, SEinw ( σ SEinw > LEinw ( Städte Länder) )) Seite 55

56 Zusammenfassung Begriff der Relation Relationenschema und Relationeninstanz Zwei Definitionen basierend auf Attributlisten / Attributmengen einfache Integritätsbedingungen Abbildung von ER-Modell in ein relationales Modell Relationale Algebra Mengenalgebra Tupelkalkül Prädikatenlogik erster Stufe Erweiterte relationale Algebra Algebra für Multimengen Geordnete Mengen weitere Operationen: Gruppierung Seite 56

57 SQL: Die Sprache relationaler DBMS 2. SQL: Die Sprache relationaler DBMS Basierend auf dem Tupelkalkül und der relationalen Algebra wurden mit dem Aufkommen relationaler DBMS auch spezielle Sprachen entwickelt. SQL ist die derzeit marktbeherrschende Anfragesprache Von praktischer Bedeutung waren auch noch bis Ende der 80er Jahre: a) QBE (Query by Example, basierend auf dem Domainkalkül) b) Quel (Anfragesprache von Ingres basierend auf dem Tupelkalkül). Bei Anfragesprachen wird unterschieden zwischen der Datendefinitionssprache (DDL) Anlegen und Ändern der Datenstrukturen für die drei Ebenen einer Datenbank (externe Ebenen, konzeptionelle Ebene, physische Ebene) Festlegen von Integritätsbedingungen Festlegen der Zugriffsrechte Datenmanipulationssprache (DML) Einfügen, Ändern und Löschen von Datenobjekten Formulierung von Anfragen Seite 57 von 109

58 Historie SQL: Die Sprache relationaler DBMS SQL (structured query language) wurde bei IBM als Sprache des relationalen DBMS System R entwickelt (1974, D.D. Chamberlin et al.) Heute ist SQL quasi der Standard für Sprachen relationaler DBMS SQL1, 1985 SQL2, 1992 (wird auch als SQL92 bezeichnet) SQL3 (bzw. SQL:1999) SQL wird als interaktive Sprache eingesetzt, kann aber auch durch eine geeignete Kopplung in einer Programmiersprachen wie z. B. C und Java genutzt werden. SQL kann als eine Mischform aus einer erweiterten relationalen Algebra und dem Tupelkalkül verstanden werden. Anmerkung Das offizielle Dokument, in dem der Standard von SQL beschrieben wird, ist sehr groß, so dass im Rahmen dieser Vorlesung deshalb nur die wichtigsten Konzepte von SQL vorgestellt werden können. Viele Hersteller wie Oracle haben in ihren Systemen Erweiterungen von SQL implementiert. Andererseits wurde in Oracle SQL2 nicht vollständig, sondern nur der sogenannte Entry-Level implementiert. Seite 58 von 109

59 Lexikalische Elemente SQL: Die Sprache relationaler DBMS Wie jede andere Programmiersprache besitzt SQL lexikalische Elemente Leerzeichen, Zeilenumbruch und Tabulatoren trennen lexikalische Elemente Bezeichner Bezeichner werden benutzt, um Namen an Datenbanken, Relationen und Attribute zu vergeben. Aufbau eines Bezeichners Erstes Zeichen ist ein Buchstabe. Weiterhin können darin Zahlen und _ enthalten sein. Bezeichner müssen sich von einem Schlüsselwort unterscheiden Konstanten (Literale) sehr ähnlich zu den Konstanten in üblichen Programmiersprachen Gewöhnungsbedürftig sind Konstanten von Zeichenketten: Gerd ist eine Konstante Einige DBMS unterstützen auch andere Formate. Seite 59 von 109

60 2.1 DDL SQL: Die Sprache relationaler DBMS Vorbemerkungen Im Folgenden werden nun einige wichtige Aspekte bei der Datendefinition erläutert ohne jedoch auf viele der angebotenen Optionen einzugehen. Wir werden beispielhaft die Definition von Datenstrukturen der konzeptionellen Ebene (Relation) erläutern Definition von Datenstrukturen der internen Ebene (Index) und der externen Ebene (View) erfolgt später. Aufbau des Kapitels: Datentypen Definition von Relationen Einfache Integritätsbedingungen Seite 60 von 109

61 2.1.1 Datentypen SQL: Die Sprache relationaler DBMS Datenbanksysteme bieten eine sehr reichhaltige Palette von Datentypen an, die sich bis auf einen Kern erheblich unterscheiden. Zum Teil findet man gleiche Datentypen mit unterschiedlichen Namen. Auch wenn die Namen gleich sind, werden nicht die gleichen Operationen angeboten oder unterschiedliche Namen für die gleiche Methode. Heutige Systeme unterstützen auch die Definition benutzerdefinierter Datentypen Interbase bietet hierfür einen speziellen Befehl an. Klassifizierung Zeichenketten Zahlen Individuelle Erweiterungen, die es in nahezu allen DBMS gibt: BLOB, CLOB, Date DBMS spezifische Datentypen Die unterschiedlichen Datentypen tragen insbesondere dazu bei, dass eine Kopplung von SQL-Datenbanken nicht so einfach ist. Seite 61 von 109

62 Standardtypen SQL: Die Sprache relationaler DBMS Zeichenketten char(size) Zeichenkette mit konstanter Länge size Maximallänge ist abhängig vom System. char spezifiziert eine Zeichenkette mit einem Zeichen. varchar(size) variabel lange Zeichenkette mit maximaler Länge size Bedarfsorientierter Speicherplatzverbrauch Operationen auf Zeichenketten relationale Operatoren: =, <>, <, <=, =>, > sind überall verfügbar, aber die Semantik ist oft unterschiedlich. Weitere Operatoren im SQL92 Standard (der aber in dieser Form nicht von allen DBMS unterstützt wird): ist z. B. die Verknüpfung von zwei Zeichenketten Seite 62 von 109

63 Zahlen SQL: Die Sprache relationaler DBMS numeric(g,d) bzw. decimal(g,d) Gleitkommazahlen mit: g = #Gesamtstellen, d = #Nachkommastellen Darüber hinaus gibt es die üblichen Datentypen: integer, smallint, real, double precision Operationen *, /, +, - und noch viele andere. Z. B.: abs spezielle Datentypen Die oben genannten Datentypen sind in ihrer Größe erheblich eingeschränkt. Anfang der 90er Jahre wurde dieses Defizit durch Einführung neuer Datentypen gemildert. long: variabel lange Zeichenkette mit maximal 2 GB. Erhebliche Einschränkungen bei der Anfragebearbeitung clob / blob: variabel lange Zeichenfolge / Bytefolge mit maximal 4 GB date/time Datentypen für Datum und Uhrzeit date unterstützt ein Datum bis zum Jahr 9999 Seite 63 von 109

64 Definition neuer Datentypen SQL: Die Sprache relationaler DBMS In SQL lassen sich neue Wertebereiche anlegen, indem bestehende Wertebereiche eingeschränkt werden. Syntax: create domain <Name> [as] <Datentyp> [<Defaultwert>] [<Integritätsbedingung>] Beispiel: create domain Adresse varchar(50) default 'Marburg' Weiterhin können Datentypen zur Laufzeit verändert alter domain und gelöscht werden. drop domain Adresse Bemerkung Es handelt sich hierbei um eine sehr eingeschränkte Form der Definition von Datentypen. Es ist dadurch z. B. nicht möglich, strukturierte Datentypen zu definieren. Seite 64 von 109

65 SQL: Die Sprache relationaler DBMS Anlegen eines Relationenschemas Eine Beispielgrammatik zur Definition eines Subsets create table <Relationen-Name> (<Relationenkomponente>[,<Relationenkomponente>] * ) <Relationenkomponente> ::= <Spaltendefinition> <Integritätsbedingung> <Spaltendefinition>::= <Attributname> <Typ> [<Defaultwert>] [not null unique] <Defaultwert>::= default <Literal> null Die genaue Behandlung von Integritätsbedingungen erfolgt später. Im weiteren werden wir einige Möglichkeiten exemplarisch erläutern. Beispiele basieren auf dem folgenden Datenbankschema: Kunde (KName, KAdr, Kto) Auftrag (KName, Ware, Menge) Lieferant (LName, LAdr, Ware, Preis) Seite 65 von 109

66 SQL: Die Sprache relationaler DBMS Beispiel: create table Kunde( KName char (20) not null, KAdresse varchar (50) not null unique, Kto decimal (7) not null, /* decimal(7) ist eine Kurzform von decimal(7,0) */ primary key (KName) ) Anmerkungen zu den Integritätsbedingungen unique drückt aus, dass dieses Attribut ein Schlüsselkandidat ist. Wird ein Schlüsselkandidat durch mehrere Attribute A 1,, A n gebildet, so wird dies durch die Integritätsbedingung unique (A 1,,A n ) angegeben. not null sagt aus, dass das Attribut explizit belegt werden muss. Es dürfen keine Null- Werte auftreten. Durch primary key (A 1,,A n ) wird festgelegt, dass die Attributmenge {A 1,,A n } der Primärschlüssel der Relation ist. Durch Angabe eines Defaultwertes wird beim Einfügen eines Tupels dieser Wert zur Initialisierung benutzt, wenn explizit keine Wertzuweisung vorgenommen wurde. Seite 66 von 109

67 Beispiel: create table Auftrag( KName char(20) not null, Ware varchar(50) not null, Menge decimal(7) default 100, primary key (KName, Ware), foreign key(kname) references Kunde(KName) ) SQL: Die Sprache relationaler DBMS Anmerkungen zu den Integritätsbedingungen Ein Fremdschlüssel kann über die Intergritätsbedingung foreign key angegeben werden. Damit wird sichergestellt, dass das Tupel mit dem Schlüssel tatsächlich in der Relation (in unserem Beispiel ist das die Relation Kunde) existiert. Beim Einfügen eines neuen Tupels muss deshalb eine entsprechende Überprüfung stattfinden (was zu einem hohen Berechnungsaufwand führen kann). Entsprechend muss beim Löschen eines Tupels aus einer Relation geprüft werden, ob eine Referenz auf dieses Tupel existiert. Seite 67 von 109

68 SQL: Die Sprache relationaler DBMS Ändern/Löschen eines Relationenschema Ändern eines Relationenschemas alter table <Relationen-Name> add <Relationenkomponente> Besonderheiten Prinzipiell ist die Syntax und Semantik solcher Befehle stark von dem jeweiligen Systemhersteller abhängig. Löschen eines Relationenschemas drop table <Relationen-Name> Seite 68 von 109

69 2.2 DML SQL: Die Sprache relationaler DBMS Anfragen an die Datenbank werden in der DML formuliert Grundschema: select < Liste von Attributsnamen > z.b. select KName from < ein oder mehrere Relationennamen > from Kunde [ where< Bedingung > ] where Kto < 1000 Bemerkungen: Die select-klausel entspricht der Projektion in der relationalen Algebra (und nicht der Selektion). Die Bedingung nach der where-klausel enthält 1. Vergleichsoperatoren (<, >, =... ) 2. boolesche Operatoren (and, or, not) 3. Mengenoperatoren (in, not in) und Quantoren (exists, any, some, all) Reihenfolge der Ausführung wird durch Klammern bestimmt. Attribute mit gleichen Namen, die zu verschiedenen Relationen gehören, werden mittels des Relationennamen unterschieden. Seite 69 von 109

70 Algebra-Operationen in SQL SQL: Die Sprache relationaler DBMS Relation R select * from R Bei Angabe von * in der select-klausel werden alle Attribute der Relation aus der from-klausel ausgegeben. Projektion π A, C ( R) select distinct A, C from R Ohne das Schlüsselwort distinct würde als Ergebnis eine M-Relation erzeugt. Selektion σ B = b ( R) select * from R where B = b kartesisches Produkt select * from R, S R S Seite 70 von 109

71 Theta-Join auf Relationen R(A,B) und S(C,D) select * from R, S where B θ D Vereinigung der Relationen R(A,B) und T(A,B) select * from R union select * from T R BθD S Differenz der Relationen R und T select * from R /* Dies wird nicht in Interbase unterstützt */ except select * from T SQL: Die Sprache relationaler DBMS Allgemeine Bedeutung der select from where -Klausel in der relationalen Algebra: select distincta,b,c,.. π A,B,C, ( σ F ( R S T )) from R,S,T,... where F Damit ist insbesondere die Reihenfolge bei der Verarbeitung der Klausel bestimmt. Seite 71 von 109

72 Bemerkungen zu der Duplikatbeseitigung SQL: Die Sprache relationaler DBMS Die gewöhnliche select-klausel beseitigt keine Duplikate in der Ergebnisrelation. Dies ist aber durch Hinzufügen des Schlüsselworts distinct möglich: select distinct A, B, C, from R,S,T, where Bedingung Durch distinct wird als Ausgabe eine Relation erzeugt. Ansonsten wird eine M-Relation ausgegeben. Die minus-operation auf zwei Multi-Mengen entspricht der Semantik, wie wir sie bereits bei der erweiterten relationalen Algebra kennengelernt haben. Das Schlüsselwort minus wird nur von Oracle benutzt. In SQL92 wird stattdessen das Schlüsselwort except benutzt. except all entspricht der Summendifferenz der erweiterten relationalen Algebra Bei der Vereinigung auf Relationen werden automatisch Duplikate beseitigt. Dies gilt auch für M-Relationen. Sollen Duplikate nicht beseitigt werden, muss hinter dem Schlüsselwort union das Schlüsselwort all folgen. Seite 72 von 109

73 Beispielanfragen Datenbankschema (zur Erinnerung): Kunde (KName, KAdr, Kto) Auftrag (KName, Ware, Menge) Lieferant (LName, LAdr, Ware, Preis) Welche Lieferanten liefern Milch oder Mehl? select distinct LName from Lieferant where Ware = 'Mehl' or Ware = 'Milch' SQL: Die Sprache relationaler DBMS Welche Lieferanten liefern irgendetwas, das Huber bestellt hat? select distinct LName from Lieferant, Auftrag where Lieferant.Ware = Auftrag.Ware and KName = 'Huber' Seite 73 von 109

74 From-Klausel SQL: Die Sprache relationaler DBMS Innerhalb einer From-Klausel können auch Tupelvariablen definiert werden. from Lieferant L /* L Ist eine Tupelvariable */ Damit kann nun über die Tupelvariable die Attribute in der Relation L angesprochen werden. Dies ist notwendig, wenn Attribute mit gleichem Namen in den Relationen existieren. Z. B. dann, wenn ein Join einer Relation mit sich selbst ausgeführt wird. select distinct L1.LName, L2.LName, L1.Adresse from Lieferant L1, Lieferant L2 where L1.Adresse = L2.Adresse Man beachte, dass bei Angabe eines Attributs die Tupelvariable (bzw. Relationennamen) angegeben werden muss, es sei denn das Attribut kann eindeutig einer Relation in der from-klausel zugeordnet werden. In einer from-klausel können nicht nur physische Relationen angegeben werden, sondern auch wiederum Anfragen auftreten: select L1.LName from (select LName, Ware from Lieferant where Ware = 'Kaffee') L1 Seite 74 von 109

75 Dies wird aber nicht in Interbase unterstützt SQL: Die Sprache relationaler DBMS Joins in der From-Klausel Die Joinbedingung kann sowohl direkt in der from-klausel als auch in der where-klausel angegeben werden. Letzteres wird in allen Systemen unterstützt. Natural Join /* Wird nicht von Interbase, SQL Server, unterstützt */ from R natural join S oder from R join S using ( θ-join (auch als inner join bezeichnet) from R join S on A θ B left outer join from T left join S on A θ B right outer join from T right join S on A θ B Bemerkung Im wesentlichen wurde diese Notation zur Formulierung von äußeren Joins eingeführt. Seite 75 von 109

76 SQL: Die Sprache relationaler DBMS Einfache Formeln in Where-Klauseln In einer where-klausel wird eine Boolesche Funktion angegeben, die im wesentlichen einer Formel des Tupelkalküls entspricht. Wir wollen zunächst einfache Formeln betrachten. Im wesentlichen setzen sich Formeln aus Atomen der Form A op B zusammen, op ist die Menge relationaler Operatoren Diese Atome können mit den Operatoren not, or und and zu komplexeren Formeln verknüpft werden. Dabei können sich A und B nicht nur auf Attribute bzw. Konstanten beziehen, sondern können komplexere Terme sein, die durch Verwendung der üblichen Operationen definiert werden. Bei numerischen Werten sind dies unter anderem die 4 Grundoperationen. Weiterhin können alle im DBS angebotenen Operationen wie z. B. abs verwendet werden. Bei Zeichenketten umfasst dies insbesondere die Konkatenation. Darüberhinaus gibt es noch weitere Varianten von atomaren Formeln: Das Schlüsselwort and kommt nochmals als Bestandteil eines anderen Operators vor: Seite 76 von 109

77 A between B and C Diese Boolesche Funktion ist äquivalent zu B <= A and A <= C SQL: Die Sprache relationaler DBMS Ein im Zusammenhang mit Strings wichtiger Operator in der where-klausel ist like. A like B Hierbei wird überprüft, ob die Zeichenkette A gleich der Zeichenkette B ist. Der Term kann nicht nur eine gewöhnliche Zeichenkette sein, sondern auch Wildcards enthalten: % bedeutet, dass hier beliebig viele Zeichen stehen können. _ bedeutet, dass genau ein beliebiges Zeichen hier steht. Beispiel: select KName from Kunde where KAdresse like '%b_rg' Eine weitere atomare Formel benutzt das Schlüsselwort in: A in (b,c,,z) Dabei ist A ein beliebiger Ausdruck und b,,z Konstanten. Dieser Ausdruck is äquivalent zu A = b or A = c or or A = z Seite 77 von 109

78 Nullwerte SQL: Die Sprache relationaler DBMS SQL benutzt zur Unterstützung von Nullwerten in Anfragen eine dreiwertige Logik. Beispiel Annahme: Es gibt ein Tupel ('Schneider', 'Lampen', NULL) in Relation Auftrag. Sowohl select * from Auftrag where Menge > 100 als auch select * from Auftrag where not Menge > 100 liefert uns nicht das Tupel als Ergebnis. Wir benötigen noch eine Möglichkeit, um Tupel mit Nullwerten zu finden. Dazu bedient man sich in SQL92 des Schlüsselworts IS: select * from Auftrag where Menge is null liefert die Tupel, deren Attribut Menge keinen Wert besitzt. Bemerkung Man könnte auch ein relationales Modell ohne die Verwendung von NULL-Werten entwickeln. Die Semantik von NULL-Werten ist sehr unterschiedlich in den kommerziellen DBMS. Seite 78 von 109

79 Select-Klausel SQL: Die Sprache relationaler DBMS Die Select-Klausel wird als letztes bei der SQL-Anfrage ausgeführt. Wurde eine Relation R berechnet, so werden durch select * die Tupel mit allen Attributen der Relation R ausgegeben. Entsprechend können alle Attribute eine am Join beteiligten Relation S durch select S.* from S, where ausgegeben werden. Prinzipiell kann als Ergebnis in der select-klausel ein Ausdruck stehen, der von mehreren Attributen abhängt. Man kann nun durch das Schlüsselwort as einer Spalte explizit einen neuen Namen zuweisen. select A*B as X from R Man kann dabei das Schlüsselwort as auch einfach weglassen. Zur Wiederholung: select distinct beseitigt Duplikate, wohingegen select all dies nicht macht (Default ist select all) Seite 79 von 109

80 Aggregatfunktionen SQL: Die Sprache relationaler DBMS In SQL werden folgende Aggregatfunktionen angeboten: count, sum, avg, min und max. Aggregate dürfen nur in der select-klausel einer Anfrage auftreten. Man beachte, dass die select-klausel zuletzt angewendet wird und dass zuvor eine Relation R als Zwischenergebnis bereits berechnet wurde. Wird ein Aggregat berechnet, ist das Ergebnis eine Relation mit genau einem Tupel. Als Parameter eines Aggregats ist ein Ausdruck erlaubt. Das Aggregat count kann auch als Parameter einen * besitzen. Dann wird als Ergebnis die Anzahl der Tupel der Relation R geliefert. Bei Angabe des Schlüsselworts distinct vor dem Term werden zunächst die Duplikate beseitigt, die durch Auswertung des Terms auf der Relation R entstehen, bevor das eigentliche Aggregat berechnet wird. Die Aggregatfunktionen min, max und count können auf beliebige Ausdrücke angewendet werden. Die Funktionen sum und avg erwarten als Eingabe eine Zahl. min berechnet das Minimum max berechnet das Maximum count die Anzahl der Terme sum berechnet die Summe aller Terme avg berechnet den Durchschnitt über alle Terme. Seite 80 von 109

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

Mehr

3.4 Die relationale Algebra

3.4 Die relationale Algebra Algebra: 3.4 Die relationale Algebra gegeben eine Menge N ( Anker der Algebra ) Menge von Operationen { σ 1,, σ n } der Form σ j :N k N elationale Algebra Anker ist die Menge aller elationen {(, I) I ist

Mehr

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

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln Structured Query Language, SQL vom American National Standards Institute, ANSI, genormte Datenbanksprache. enthält eine Teilsprache, die eine relationale Anfragesprache ist, Mischung von tupelorientierten

Mehr

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

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join Parsen der Anfrage (SQL) Transformation in eine Standardform (Relationenalgebra) Logische Optimierung Transformation in alternative Zugriffspläne, Physische Optimierung Ausführung des gewählten Zugriffsplans

Mehr

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

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

4.1 SQL. Wichtige skalare Datentypen

4.1 SQL. Wichtige skalare Datentypen 4. Basierend auf dem Tupelkalkül und der relationalen Algebra wurden mit dem Aufkommen relationaler DBMS auch spezielle Sprachen entwickelt. SQL ist die derzeit am weitesten verbreitete Anfragesprache

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

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

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

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

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14 Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Dr. Jérôme Kunegis Wintersemester 2013/14 Lernziele Grundideen des Domänen-Relationenkalküls (DRK) und des Tupel-Relationenkalküls

Mehr

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

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note: 1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%

Mehr

Abfragen: Grundbausteine

Abfragen: Grundbausteine Abfragen: Grundbausteine Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen Operation ist eine. Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large hared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBM wie

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Abfrage-Befehle in MySQL -diverse Funktionen -

Abfrage-Befehle in MySQL -diverse Funktionen - Abfrage-Befehle in MySQL -diverse Funktionen - Berechnungen mit MySQL -Einführung Ich liebe Funktionen! Es sollen die Projektbezeichnung, der Auftragswert, die Mehrwertsteuer und der Bruttobetrag für jedes

Mehr

Null-Werte in Relationalen Datenbanken

Null-Werte in Relationalen Datenbanken Seminar: Imperfektion in Datenbanken WS03/04 Null-Werte in Relationalen Datenbanken Thomas Bierhance Einführung Null-Werte in DBen sind notwendiges Übel, da... (1) das Wissen über die tatsächliche Welt

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

2.5.2 Primärschlüssel

2.5.2 Primärschlüssel Relationale Datenbanken 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Fahren fort mit SQL Befehlen. Bilden Relationenalgebra auf SQL ab. So Umsetzung von Anfragen an die DB (bzw. Tabellen) möglich. SELECT

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

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

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Tage des Unterrichts in Mathematik, Naturwissenschaften und Technik Rostock 2010 Prof. Dr. Hans-Dieter Sill, Universität Rostock, http://www.math.uni-rostock.de/~sill/

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik Beispielaufgaben Informationssysteme erstellt von Fabian Rump zur IS Vorlesung 2009/10 1 Multiple Choice Aussage richtig falsch Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT Eine Datenbank

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 7: Einführung Aussagenlogik schulz@eprover.org Logisches Schließen 2 gold +1000, 1 per step, Beispiel: Jage den Wumpus Performance measure death 1000 10

Mehr

Grundlagen: Datenbanken WS 15/16

Grundlagen: Datenbanken WS 15/16 Grundlagen: Datenbanken WS 15/16 2. Zentralübung / Wiederholung / Fragestunde Harald Lang gdb@in.tum.de Diese Folien finden Sie online. Die Mitschrift erhalten Sie im Anschluss. Termine Klausur 24.02.2016,

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin) Übungsblatt 4 Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin) Die Saartal Linien beauftragen Sie mit dem Entwurf der Datenstrukturen für ein Informationssystem. Dieses soll zur Verwaltung

Mehr

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

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies Kapitel 7 Dr. Jérôme Kunegis Logische Kalküle WeST Web Science & Technologies Lernziele Grundideen des Domain-Relationenkalküls (DRK) und des Tupel-Relationenkalküls (TRK) Relationale Datenbank als Formelmenge

Mehr

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen Abfragen lassen sich längst nicht nur dazu benutzen, die gewünschten Felder oder Datensätze einer oder mehrerer Tabellen darzustellen. Sie können Daten auch nach bestimmten Kriterien zu Gruppen zusammenfassen

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Mathematische Maschinen

Mathematische Maschinen Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen Prof. Dr. Volker Schulz Universität Trier / FB IV / Abt. Mathematik 8. November 2010 http://www.mathematik.uni-trier.de/ schulz/elan-ws1011.html

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Allgemeines zu Datenbanken

Allgemeines zu Datenbanken Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,

Mehr

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014 Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: moer@db.informatik.uni-mannheim.de Marius Eich Email: marius.eich@uni-mannheim.de Datenbanksysteme 2 8. Übungsblatt Frühjahr-/Sommersemester

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken 30 Wozu dient ein Primärschlüssel? Mit dem Primärschlüssel wird ein Datenfeld

Mehr

Datenbanken: Relationales Datenbankmodell RDM

Datenbanken: Relationales Datenbankmodell RDM Das RDM wurde in den 70'er Jahren von Codd entwickelt und ist seit Mitte der 80'er Jahre definierter Standard für Datenbanksysteme! Der Name kommt vom mathematischen Konzept einer Relation: (Sind A, B

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

R ist freie Software und kann von der Website. www.r-project.org

R ist freie Software und kann von der Website. www.r-project.org R R ist freie Software und kann von der Website heruntergeladen werden. www.r-project.org Nach dem Herunterladen und der Installation von R kann man R durch Doppelklicken auf das R-Symbol starten. R wird

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Einteilung von Datenbanken

Einteilung von Datenbanken Datenbanksysteme (c) A.Kaiser; WU-Wien 1 Einteilung von Datenbanken 1. formatierte Datenbanken 2. unformatierte Datenbanken Information Retrieval Systeme 2 Wozu Datenbanken? Speicherung und Verwaltung

Mehr

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie. GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen Teil 1: Einführung: Wissensbasis und Ontologie Was ist eine Wissensbasis? Unterschied zur Datenbank: Datenbank: strukturiert

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

Mehr

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

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Dokumentation. estat Version 2.0

Dokumentation. estat Version 2.0 Dokumentation estat Version 2.0 Installation Die Datei estat.xla in beliebiges Verzeichnis speichern. Im Menü Extras AddIns... Durchsuchen die Datei estat.xla auswählen. Danach das Auswahlhäkchen beim

Mehr

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr