Datenbanken Stosammlung WS 06/07

Größe: px
Ab Seite anzeigen:

Download "Datenbanken Stosammlung WS 06/07"

Transkript

1 Datenbanken Stosammlung WS 06/07 Marcel Häselich, Hendrik Engelbrecht 13. Februar 2007 Es handelt sich um ein von uns erstelltes Dokument ohne jeglichen Anspruch auf Korrektheit oder Vollständigkeit. 1

2 Inhaltsverzeichnis 1 Entity Relationship - Diagramme 4 2 Relationale Modelle Relationale Schema Relationale Ausdrücke Äquivalenz relationaler Ausdrücke Anomalien Relationale Algebra Operatoren der relationalen Algebra relationales Tupelkalkül relationales Domänenkalkül SQL wichtige SQL-Funktionen * avg max/min distinct union between intersect except count group by as like having Kurzfassung Operatoren Beispiel-Implementierung Erstellen der Tabellen Eingabe von Daten Anfragen an die Datenbank Normalformen Übersicht NF (Erste Normalform) NF (Zweite Normalform) NF (Dritte Normalform) BCNF (Boyce-Codd-Normalform) Kurzfassung der Normalformen Merkspruch Verlustfrei Abhängigkeitserhaltend

3 5 funktionale Abhängigkeiten Aus einem Relationenschema die funktionalen Abhängigkeiten bestimmen Synthesealgorithmus Funktionale Abhängigkeiten bestimmen Kandidatenschlüssel bestimmen Kanonische Überdeckung der funktionalen Abhängigkeiten Linksreduktion: Rechtsreduktion Generierung der Relationen Kandidatenschlüssel Redundanz eliminieren Historien Klassen von Ausführungsplänen Allgemeine Historien Serialisierbare Historien Rücksetzbare und serialisierbare Historien Serielle Historie Serialisierbare Historie ohne kaskadierendes Rücksetzen Strikte und serialisierbare Historie Serialisierbarkeit Deadlocks Webservices 19 9 Speicherhierarchie Ersetzung von Puer-Seiten nosteal steal Einbringen von Änderungen abgeschlossener Transaktionen Force-Strategie noforce-strategie Recovery Struktur Raids Raid Raid Raid

4 1 Entity Relationship - Diagramme Entitäten: werden in einem Rechteck gezeichnet Relationen: werden in einer Raute dargestellt und mit der/den zugeordneten Entitäten verbunden Eigenschaften: werden in einer Elipse ihrer Entität zugeordnet schwache Entitäten: werden mit einem doppelten Rechteck gezeichnet Primary Keys: Eigenschaften die zusätzlich unterstrichen werden Foreign Keys: Eigenschaften die zusätzlich gestrichelt unterstrichen werden Vererbung: wird durch ein Sechseck dargestellt, welches mit is-a beschriftet ist und anhand von Pfeilspitzen visualisiert, welche Entität erbt und welche vererbt Hinweis: zusätzlich können bei Bedarf über den Verbindungen durch die Relationen Wertigkeiten angebracht werden: 1, n oder ähnliches. 2 Relationale Modelle 2.1 Relationale Schema Haben die folgende Notation: Entität: {[Eigenschaft: Typ, Eigenschaft: Typ,...]} Relation: {[Eigenschaft: Typ, Eigenschaft: Typ,...]} Eine Eigenschaft kann ein Primary oder Foreign Key sein, dann wird er samt Typ unterstrichen, beim Foreign Key gestrichelt. Ein Typ kann ein interger, varchar oder ähnliches sein. 2.2 Relationale Ausdrücke Notation : π =Projektion σ =Selektion =Join Gesucht sind aus der Tabelle InKlasse alle Schüler der Klasse 11a (gleichnamige Spalte Klasse): σ KLASSE= 11a (InKlasse) Eine Tabelle 'Alter' mit den beiden Spalten 'Name' und 'Jahrgang'. Gesucht sind alle Menschen, die zwischen 1950 und 1952 geboren sind: π NAME (σ 1950 JAHRGANG JAHRGANG 1952 (Alter)) 4

5 2.3 Äquivalenz relationaler Ausdrücke Gegeben: Relationen: R(a,b,c) S(a,e,f) T(a,h) Relationaler Ausdruck: π e,h (σ b=10 ((R T ) S)) Sind folgende Ausdrücke äquivalent zum gegebenen? 1. π e,h ((σ b=10 (R)) (π a,e (S)) T ) Ja, da f aus S für das Ergebnis keine Rolle spielt und die Joins auch weiterhin klappen und nichts am Ergebnis verändern. 2. π e,h (σ b=10 (((π b (R)) (π a,e (S))) (π a,h (T )))) Nein, da π b (R) a wegprojiziert und dies für den Join als Attribut benötigt wird. 3. π e,h ((π a,b (σ b=10 (R))) (π a (S)) T ) Nein, da π a (S) e und f wegprojiziert und e für die Ergebnisprojektion benötigt wird. 4. π e,h (((π a,b (σ b=10 (R))) T ) (π a,e (S))) Ja, die Selektion geht nur über b und bei den Projektionen geht weder ein Join- noch Ergebnisattribut verloren. 2.4 Anomalien Beispieltabelle: Bestellungen Kd# Name Adresse Artikel# ArtikelBez Menge Einzelpreis 1 Maier Köln 47 Schreibtisch Maier Köln 48 Bürostuhl Müller Kassel 47 Schreibtisch Einfügeanomalie: Ein neuer Kunde kann nur in Verbindung mit einer Bestellung hinzugefügt werden. Löschanomalie: Wird die Bestellung eines Kunden gelöscht (z.b. Müller), so wird auch der Kunde gelöscht. Updateanomalie: Ändert sich die Adresse eines Kunden (z.b. Maier), so muss an mehreren Stellen seine Adresse geändert werden. Eine geeignete Zerlegung der Relation Bestellungen: Kunde: {Kd#, Name, Adresse} Bestellung: {Kd#, Bestell#} 5

6 Artikel: {Artikel#,Lagermenge} Bestellungsinhalt: {Bestell#, Artikel#, ArtikelBez, Menge, Einzelpreis} 2.5 Relationale Algebra Klasse: KID LID 11a WAG 10b AMR Lehrer: LID LName WAG Wagner AMR Meier A. Schüler: SID SName KID 8501 Gabi Müller 11a 8601 Rolf Peters 11a 8701 Rolf Peters 10b 8702 Inge Lang 10b Ausdrücke in relationaler Algebra, deren Resultattabellen die im folgenden gestellten Anfragen erfüllen: 1. Alle Schüler, deren Klassenlehrer Wagner heiÿt: Schueler (π KID (Klasse (σ LName= W agner (Lehrer)))) 2. Alle Vornamen und Nachnamen (SName) der Schüler, die doppelt vorkommen: π S1.SName (σ S1.SID S2.SID (ρ S1 (Schueler) S1.SName=S2.SName ρ S2 (Schueler))) Operatoren der relationalen Algebra = Join π = P rojektion σ = Selektion ρ = Rename (mit ρ altername neuername ) 2.6 relationales Tupelkalkül Ausdrücke in relationalem Tupelkalkül, deren Resultattabellen die im folgenden gestellten Anfragen erfüllen: 1. Alle Schüler, der Klasse 11a: {s s Schueler s.kid = 11a } 2. Alle Schüler mit Geburtsjahr 1985 (Ihre SID habe die Form: 85xx): {s s Schueler s.sid < 8600 s.sid 8500} 6

7 2.7 relationales Domänenkalkül Ausdrücke in relationalem Tupelkalkül, deren Resultattabellen die im folgenden gestellten Anfragen erfüllen: 1. Alle Schüler der Klasse 11a: {[s,n,k] [s,n,k] Schueler k = 11a } 2. Alle Schüler mit Geburtsjahr 1985 (Ihre SID habe die Form: 85xx): {[s,n,k] [s,n,k] Schueler s < 8600 s 8500} 3 SQL 3.1 wichtige SQL-Funktionen * Syntaxbeispiel: select * from haus; * gibt alle Spalten aus der Tabelle haus aus (z.b. HausNr., Str., usw) avg Syntaxbeispiel: select avg(punkte) from aufgaben; avg errechnet den Durchschnitt der angegebenen Spalte einer Tabelle max/min Syntaxbeispiel: select max(punkte) from aufgaben; select min(punkte) from aufgaben; max gibt das Maximum einer Spalte wieder, min das Minimum (auch von nicht-numerischen Datentypen: min a b c -> a) distinct Syntaxbeispiel: select distinct name from personen; distinct bewirkt, dass mehrfache Einträge nur einmal ausgegeben werden (der Name 'Peter Meier' wird nur einmal ausgegeben, obwohl er 5 mal in der Spalte name der Tabelle personen vorkommt) union Syntaxbeispiel: select name from menschen where alter < '40' union select name from tiere where alter >'50'; union verbindet die Ergebnisse zweier select-anfragen. Im Syntaxbeispiel werden alle Namen von Menschen ausgegeben, die jünger als 40 sind oder Tiere die älter als 50 sind (zu verstehen als select1 oder select2) 7

8 3.1.6 between Syntaxbeispiel: select name from personen where alter between '30' and '40'; between schränkt den Wertebereich der Ausgabe auf die Werte zwischen den beiden Parametern ein. So werden im Syntaxbeispiel nur die Namen ausgegeben, wenn die Person zwischen 30 und 40 Jahre alt ist intersect Syntaxbeispiel: select name from mitarbeiter where alter < '40' intersect select name from professoren where alter >'30'; intersect verbindet ebenfalls die Ergebnisse zweier select-anfragen. Im Syntaxbeispiel lautet das Ergebnis: Die Namen aller Mitarbeiter, die jünger als 40 sind und gleichzeitig ein Professor sind der älter als 30 ist (zu verstehen als select1 und select2) except Syntaxbeispiel: select name from abgabe where note < '4' except select name from abgabe where note > '2'; Except entfernt aus einer select-anfrage eine andere (zu verstehen als select1 ohne select2) count Syntaxbeispiel: select name, count(name) as anzahlnamen from personen; count zählt die Einträge der angegebenen Spalte einer Tabelle; das für as x benötigte x darf nicht anderweitig bereits verwendet sein group by Syntaxbeispiel: select name from personen group by name; group by fasst das Ergebnis der Anfrage nach einer oder mehreren Spalten zusammen und entfernt mehrfache Einträge as Syntaxbeispiel: siehe as wird verwendet, um einer Ergebnisspalte oder einem Funktionsergebnis einen Namen zuzuweisen (auch um diesen im weiteren Verlauf der Anfrage referenzieren zu können), dieser darf noch nicht anderweitig verwendet sein Beispiel-Notation: select a.spalte1 from tabelle1 as a where a.nummer = (select b.spalte3 from tabelle2 as b); 8

9 like Syntaxbeispiel: select name from werkzeuge where name like '%schraube%'; like liefert nicht nur gleiche Ergebnisse zurück, sondern auch ähnliche. So würde im Syntaxbeispiel der Schraubenzieher, die Schraube und die Schisschraube als Ergebnis zurückgegeben (falls in der tabelle werkzeuge vorhanden...) % bedeutet ein oder mehrere Erweiterungen sind an dieser Stelle erlaubt (im Beispiel Chars) _ bedeutet eine Erweiterung ist erlaubt: _bcd würde als Ergebnisse abcd und mbcd gelten lassen, allerdings nicht aabcd oder abcde having Syntaxbeispiel: select name, alter from personen group by name,alter having alter < '85'; having arbeitet auf einer gruppierten Spalte und funktioniert ähnlich wie ein Filter. Im Syntaxbeispiel werden nur Name und Alter von Personen ausgegeben, die jünger sind als 85 Jahre Kurzfassung * = alle Spalten avg = Durchschnitt einer Spalte distinct = Ergebnisse werden nur einmal ausgegeben union = in select1 oder in select2 intersect = in select1 und in select2 except = in select1 und nicht in select2 count = Anzahl der Zeilen einer Spalte group by = nach einer oder mehreren Spalten sortieren as = einem Ergebnis einen Namen zuweisen like = ähnliche Ergebnisse werden mit % und/oder _ mit einbezogen having = eine group by-spalte wird mit einer Bedingung geltert 9

10 Operatoren Operator/Element Associativity Description. left table/column name separator :: left PostgreSQL-style typecast [ ] left array element selection - right unary minus ^ left exponentiation * / % left multiplication, division, modulo + - left addition, subtraction IS IS TRUE, IS FALSE, IS UNKNOWN, IS NULL ISNULL test for null NOTNULL test for not null (any other) left all other native and user-dened operators IN set membership BETWEEN range containment OVERLAPS time interval overlap LIKE ILIKE SIMILAR string pattern matching < > less than, greater than = right equality, assignment NOT right logical negation AND left logical conjunction OR left logical disjunction 3.2 Beispiel-Implementierung Die Relation: Artikel = (ANr, Bezeichnung, Gewicht, Preis) Lager = (Position, ANr, Anzahl) Bestellung = (RNr, ANr, Anzahl, Datum) Erstellen der Tabellen CREATE TABLE Artikel( ANr Integer, Bezeichnung Varchar(40), Gewicht Integer, Preis Integer, constraint pk_artikel PRIMARY KEY(ANr)); CREATE TABLE LAGER( Postition Integer, ANr Integer, Anzahl Integer, 10

11 contraint pk_lager PRIMARY KEY(Position)); CREATE TABLE Bestellung( RNr Integer, ANr Integer, Anzahl Integer, Datum Date, constaint pk_bestellung PRIMARY KEY(RNr)); Eingabe von Daten INSERT INTO Artikel(ANr, Bezeichnung, Gewicht, Preis) VALUES(334, 'Gluehbirne', 70, 2); INSERT INTO Artikel(ANr, Bezeichnung, Gewicht, Preis) VALUES(355, 'Schraube', 150, 1); INSERT INTO Lager(Position, ANr, Anzahl) VALUES(3, 334, 400); INSERT INTO Lager(Position, ANr, Anzahl) VALUES(5, 355, 270); INSERT INTO Bestellung(RNr, ANr, Anzahl, Datum) VALUES(3311, 334, 5, ' '); INSERT INTO Bestellung(RNr, ANr, Anzahl, Datum) VALUES(3312, 355, 20, ' '); INSERT INTO Bestellung(RNr, ANr, Anzahl, Datum) VALUES(3313, 359, 2, ' '); Anfragen an die Datenbank 1. Welche Bestellungen wurden vor dem in Auftrag gegeben? SELECT Rnr FROM Bestellung where Datum < ' '; 2. Wie lautet der durchschnittliche Lagerbestand aller Artikel? SELECT AVG(Anzahl) FROM Lager; 3. An welchen Positionen im Lager sind Artikel mit der Artikelnummer 334? SELECT Position FROM Lager WHERE Anr = '334'; 4. Welche Artikel sind bestellt, jedoch nicht im Lager registriert? SELECT ANr FROM Bestellung EXCEPT SELECT Anr FROM Lager; 5. Ermitteln Sie für jeden unter der Bezeichnung Schraube geführten Artikel die Anzahl. 11

12 SELECT a.bezeichnung, l.anzahl FROM Artikel AS a, Lager AS l WHERE a.bezeichnung = 'Schraube' AND a.anr = l.anr; 4 Normalformen 4.1 Übersicht Normalformen 1 NF 2 NF 3 NF BC NF (4 NF) (5 NF) NF (Erste Normalform) Jedes Attribut der Relation muss einen atomaren Wertebereich haben. Das heiÿt, zusammengesetzte, mengenwertige oder geschachtelte Wertebereiche (relationenwertige Attributwertebereiche) sind nicht erlaubt. Kein Attributwertebereich kann in weitere (sinnvolle) aufgespalten werden (z. B.: Adresse darf nicht als Attribut verwendet werden, sondern muss in PLZ, Ort, Straÿe, Hausnummer zerlegt werden) NF (Zweite Normalform) Eine Relation ist in zweiter Normalform, wenn die erste Normalform vorliegt und alle Nichtschlüsselattribute von jedem Schlüsselkandidaten voll funktional abhängig sind. Einfacher gesagt: Alle nicht primären Attribute (nicht Teil des Schlüssels) sind vom ganzen Schlüssel abhängig, nicht von nur einem Teil des Schlüssels. Diese informelle Denition kann wie folgt präzisiert werden: Eine Relation ist genau dann in zweiter Normalform, wenn sie 1. in der ersten Normalform ist und 2. für jeden Schlüsselkandidaten (Key Candidate, KC) und jedes Attribut a der Relation gilt: * a gehört zu KC oder * a ist nicht von einer Teilmenge von KC abhängig. Man sagt: a ist voll funktional abhängig von jedem Schlüsselkandidaten NF (Dritte Normalform) Die dritte Normalform ist erreicht, wenn sich die Relation in 2NF bendet und man in den Relationen keine transitiven Abhängigkeiten hat. Hierbei handelt es sich um eine Abhängigkeit, bei der ein Attribut über ein anderes Attribut vom Primärattribut der Relation abhängig ist. D. h. wenn Attribut A1 von Attribut 12

13 P1 (dem Primärattribut) abhängt und Attribut A2 hängt von A1 ab, dann ist A2 transitiv abhängig von P1. Formal ausgedrückt: P 1 A 1 A 1 A 2 P 1 A 2 Einfach gesagt: Kein Nichtprimärattribut darf ausschlieÿlich von einem anderen Nichtprimärattribut abhängig sein. 4.5 BCNF (Boyce-Codd-Normalform) In der BCNF soll verhindert werden, dass Teile zweier aus mehreren Feldern zusammengesetzter Schlüsselkandidaten voneinander abhängig sind. Eine Relation ist in BCNF, wenn sie die Voraussetzungen der 3NF erfüllt und gleichzeitig jede Determinante (Menge von Attributen, von denen andere voll funktional abhängen) Schlüsselkandidat ist. Die Überführung in die BCNF ist zwar immer verlustfrei möglich, aber häug nicht abhängigkeitserhaltend. 4.6 Kurzfassung der Normalformen 1 NF: Atomarität der Attribute 2 NF: Alle nicht-schlüsselattribute sind vom ganzen Schlüssel abhängig (nicht nur von einem Teil des Schlüssels) 3 NF: Kein nicht-schlüsselattribut darf ausschlieÿlich von einem anderen nicht- Schlüsselattribut abhängig sein BC NF: Jede Menge von Attributen, von denen andere voll funktional abhängig sind, ist Schlüsselkandidat. 4.7 Merkspruch the key, the whole key and nothing but the key 4.8 Verlustfrei Wenn für jede gültige Ausprägung R von R gilt: R = R 1 R Abhängigkeitserhaltend Eine Zerlegung von R ist abhängigkeitserhaltend, wenn alle zugehörigen funktionalen Abhängigkeiten zuordbar sind. 5 funktionale Abhängigkeiten R = (Lieferant, Straÿe, PLZ, Ort, Produkt, Preis) Lieferant -> (Straÿe, PLZ) PLZ -> Ort 13

14 (Lieferant, Produkt) -> Preis Welches ist für die unten gegebene Zerlegung von R die höchste gültige Normalform im Bereich von 1NF bis BCNF. Ist die Zerlegung verlustfrei und/oder abhängigkeitserhaltend ist? R1 = (Lieferant, Straÿe, PLZ, Ort) R2 = (Lieferant, Produkt, Preis) 2NF gilt, da kein Attribut von Teilschlüsseln abhängt 3NF gilt nicht, wegen PLZ Ort (NSA NSA) verlustfrei, da R1 R2 = Lieferant (Schlüssel von R1) abhängigkeitserhaltend, da alle FDs zuordbar 5.1 Aus einem Relationenschema die funktionalen Abhängigkeiten bestimmen Bringen Sie das Relationenschema: AssisBossDiplomanden = (PersNr, Name, Fachgebiet, BossPersNr, BossName, MatrNr, SName, Semester, SWohnOrt) mittels des Synthesealgorithmus in die dritte Normalform. Hierbei sind MatrNr, SName, Semester und SWohnOrt die Daten der von den Assistenten betreuten Studenten. BossPersNr und BossName sind die Daten der Professoren, bei denen die Assistenten angestellt sind. PersNr, Name und Fachgebiet sind die Daten der Assistenten. Gehen Sie bei der Bearbeitung der Aufgabe schrittweise gemäÿ folgenden Teilaufgaben vor: 1. Bestimmen Sie die gelten funktionalen Abhängigkeiten: {PersNr} -> {Name, Fachgebiet, BossPersNr} {BossPersNr} -> {BossName} {MatNr} -> {SName, Semester, SWohnort, PersNr, BossPersNr} 2. Bestimmen Sie die Kandidatenschlüssel: {MatNr} ist einziger Kandidatenschlüssel 6 Synthesealgorithmus 6.1 Funktionale Abhängigkeiten bestimmen siehe 5.1 Als Beispiel: Relationenschemata R(A,B,C,D) mit den funktionalen Abhängigkeiten: F = {A C B A, C 14

15 D A, B, C A, B C} 6.2 Kandidatenschlüssel bestimmen Superschlüssel: Menge von Attributen (Spalten) in einer Relation (Tabelle), die ein Tupel (Zeile) in dieser Relation eindeutig identizieren. Ein trivialer Superschlüssel wäre zum Beispiel die Menge aller Attribute einer Relation. Kandidatenschlüssel (auch Schlüsselkandidat genannt): Eine Teilmenge des Superschlüssels, die aber auch schon die eindeutige Identizierung eines Tupels ermöglicht (Schlüsselkandidaten Superschlüssel). Primärschlüssel: Ein ausgewählter Schlüsselkandidat, der von anderen Relationen als das identizierende Attribut verwendet wird. Sekundärschlüssel: Alle anderen Schlüsselkandidaten, die nicht Primärschlüssel sind. kombinierter Primärschlüssel (auch Verbundschlüssel genannt): Primärschlüssel, der aus mehreren Attributen besteht. Fremdschlüssel: Ein Attribut einer Relation, welches auf einen Primärschlüssel einer anderen Relation verweist. Am obigen Beispiel F des Relationenschemata R: D A, B, C alleine reicht aus um A als Kanditatenschlüssel auszuschliessen, ebenso B und C. D ist Superschlüssel ebenso andere Kombinationen wie (A,B,C,D), D ist jedoch als einziger minimal. Man sagt auch, D ist minimal identizierend. 6.3 Kanonische Überdeckung der funktionalen Abhängigkeiten Linksreduktion: 1. Die Attributhülle jedes Elements bestimmen: Algotithmus: Jedes Element ist Teil seiner eigenen Attributhülle. Ist der linke Teil einer funktionalen Abhängigkeit komplett in der Attributhülle vorhanden, so füge den rechten ebenfalls hinzu, falls noch nicht vorhanden. Solange wiederholen, bis bei einem kompletten Durchlauf durch alle funktionalen Abhängigkeiten nichts mehr zur Attributhülle hinzugefügt wird.am obigen Beispiel F des Relationenschemata R: Für A: A seiner Attributhülle hinzufügen: A Huelle = {A} A C: A Huelle = {A, C} 15

16 B A, C: nichts passiert D A, B, C: nichts passiert A, B C: nichts passiert somit lautet die Attributhülle von A: {A,C} Für B: B seiner Attributhülle hinzufügen: B Huelle = {B} A C: nichts passiert B A, C: B Huelle = {B, A, C} D A, B, C: nichts passiert A, B C: nichts passiert somit lautet die Attributhülle von B: {B,A,C} Für C: C seiner Attributhülle hinzufügen: C Huelle = {C} A C: nichts passiert B A, C: nichts passiert D A, B, C: nichts passiert A, B C: nichts passiert somit lautet die Attributhülle von C: {C} Für D: D seiner Attributhülle hinzufügen: D Huelle = {D} A C: nichts passiert B A, C: nichts passiert D A, B, C: D Huelle = {D, A, B, C} A, B C: nichts passiert somit lautet die Attributhülle von D: {A,B,C,D} 2. Reduzierung der linken Seite: A C: die linke Seite kann nicht weiter reduziert werden (sie ist bereits atomar) B A, C: ebenfalls atomar D A, B, C: ebenfalls atomar A, B C: die linke Seite kann reduziert werden, C ist sowohl in der Attributhülle von A als auch von B. Daher streicht man B. (man könnte auch A streichen, dann würde diese Abhängigkeit allerdings erst in der Rechtsreduktion reduziert werden) 3. Überüssige (z.b. C C) oder doppelte Abhängigkeiten entfernen: Somit ergibt sich nach der Linksreduktion: A C B A, C D A, B, C (das zweite A C fällt weg, es handelt sich ja um eine Menge) 16

17 6.3.2 Rechtsreduktion Zwischenstand nach der Linksreduktion: A C B A, C D A, B, C 1. Attributhülle jedes Elements bestimmen (identisch zur Linksreduktion): A Huelle = {A, C} B Huelle = {A, B, C} C Huelle = {C} D Huelle = {A, B, C, D} 2. Reduzierung der rechten Seite: (i)a C:kann nicht weiter reduziert werden, die rechte Seite ist bereits atomar (ii)b A, C: C kann bereits transitiv über (i) erreicht werden, daher wird (ii) zu B A reduziert (A ist in der Attributhülle von B, C ist in der Attributhülle von A = Transitivität: C kann weggelassen werden; C ist in der Attributhülle von B, jedoch ist A nicht in der Attributhülle von C = keine Transitivität) (iii)d A, B, C: A kann bereits transitiv über (ii) erreicht werden, daher wird (iii) zu D B, C reduziert. B kann transitiv nicht erreicht werden (ist nur in der Attributhülle von D (und seiner eigenen)), somit kann B nicht weggelassen werden. C kann transitiv über (i) erreicht werden, also wird (iii) zu D B reduziert. 3. Somit ergibt sich nach der Rechtsreduktion: A C B A D B 6.4 Generierung der Relationen R1: {A, C} R2: {B, A} R3: {D, B} 6.5 Kandidatenschlüssel Der Kandidatenschlüssel liegt in R3 vor, somit muss keine weitere Relation erstellt werden. 6.6 Redundanz eliminieren Es gibt keine redundanten Relationen die eliminierbar wären. 17

18 7 Historien 7.1 Klassen von Ausführungsplänen Allgemeine Historien Beispiel: H 1 = r1(a) r2(a) w1(a) w2(a) c2 c1 H 1 ist nicht serialisierbar, da die Koniktoperationen r2(a) und w1(a) nicht vertauscht werden können. Durch die Abhängigkeiten r2(a) w1(a) und w1(a) w2(a) ergibt sich folgender Zyklus im Serialisierbarkeitsgraph: SG(H1) = T 1 T Serialisierbare Historien Beispiel: H 2 = r1(a) w1(a) r2(a) w2(b) c2 c1 H 2 ist serialisierbar, c1 lässt sich vor r2(a) ziehen. Der Serialisierbarkeitsgraph enthält nur die Abhängikeit r2 von r1 und ist somit nicht zyklisch: SG(H2) = T 1 T Rücksetzbare und serialisierbare Historien Beispiel: H 3 = r1(a) w1(a) r2(a) w2(b) c1 c2 Das commit der schreibenden Transaktion T1 ndet vor dem commit der lesenden Transaktion T2 statt. Auch hier lässt sich c1 vor r2(a) ziehen: SG(H3) = T 1 T Serielle Historie Beispiel: H 4 = r1(a) w1(a) c1 r2(a) w2(a) c2 Unverzahnt serialisierbar: SG(H4) = T 1 T Serialisierbare Historie ohne kaskadierendes Rücksetzen Beispiel: H 5 = r1(a) w1(a) w2(a) c1 c2 r3(a) w3(a) c3 Durch Vertauschen von w2(a) mit c1 liegt ein serieller Ausführungsplan ohne Zyklen vor: SG(H5) = T 1 T 2 T 3 18

19 7.1.6 Strikte und serialisierbare Historie Beispiel: H 6 = r1(a) w1(a) r2(b) c1 w2(a) c2 Durch Vertauschen von r2(b) mit c1 liegt ein serieller Ausführungsplan ohne Zyklen vor: SG(H6) = T 1 T Serialisierbarkeit Sind folgende Historien serialisierbar? Wenn ja, wie sieht die serielle Historie aus? 1. r3(a)w3(a)r1(a)r1(b)r2(b)w2(b)w3(b)c1c2c3 Nicht serialisierbar, da der Graph zyklisch ist. 2. w1(a)r2(a)r3(a)w3(b)r2(b)w2(c)c1c2c3 Serialisierbar, die einzige mögliche serielle Historie ist: T 1, T 3, T 2 3. r2(c)r1(a)w2(a)r4(a)r1(b)w3(b)r4(b)r4(c)w4(b)c1c2c3c4 Serialisierbar, mögliche serielle Historien sind: T 1, T 2, T 3, T 4 und T 1, T 3, T 2, T Deadlocks Sperrmodi Lock S X S - X - - T1:LockX(a) wartet auf T2:LockS(a), T:4LockS(b) muss nicht auf T5:LockS(b) warten. 8 Webservices Der folgende Web-Service liegt unter Schreiben Sie ein PHP-Skript, das die Operation dividieren dieses Services über SOAP aufruft, mit deren Hilfe 18/6 berechnet, und das Ergebnis ausgibt. GegebenKlausur: <?PHP require_once('/home/test/nusoap.php'); $ns=' $server = new soap_server; $server->congurewsdl('mathservice'); 19

20 $server->wsdl->schematargetnamespace=$ns; $server->register('dividieren', array('dividend' => 'xsd:oat','devisor' => 'xsd:oat'), array('return' => 'xsd:oat'), $ns); function dividieren ($dividend, $devisor){ return $dividend / $devisor; } $server->service($http_raw_post_data);?> PHP-Script: <?PHP require_once('nusoap.php'); $wsdl=( $client=new soapclient($wsdl,'wsdl'); $result=$client->call('dividieren',array('divident'=>18,'divisor'=>6)); if(!$err = $client->geterror()){ echo 'Result: '.$result; }else { echo 'Error: '.$err; }?> 9 Speicherhierarchie 9.1 Ersetzung von Puer-Seiten nosteal Bei dieser Strategie wird die Ersetzung von Seiten, die von einer noch aktiven Transaktion modiziert wurden, ausgeschlossen steal Jede nicht xierte Seite ist prinzipiell ein Kandidat für die Ersetzung, falls neue Seiten eingelagert werden müssen. 20

21 9.2 Einbringen von Änderungen abgeschlossener Transaktionen Force-Strategie Änderungen werden zum Transaktionsende auf den Hintergrundspeicher geschrieben noforce-strategie Geänderte Seiten können im Puer verbleiben. 9.3 Recovery force noforce nosteal kein Redo Redo kein Undo kein Undo steal kein Redo Redo Undo Undo Merkbar durch: nosteal->noundo & noforce->redo 9.4 Struktur [LSN, TransaktionsID, PageID, Redo, Undo, PrevLSN] LSN: fortlaufende Nummer TransaktionsID: T1, T2 etc... PageID: P A, P B etc... PrevLSN: Der Vorgänger der gleichen Transaktion 10 Raids 10.1 Raid 0 Striping: Daten werden auf alle Festplatten verteilt, fällt eine Platte aus ist der Groÿteil der Daten verloren Raid 1 Mirroring: Mindestens 2 Platten. Daten werden immer auf alle Platten geschrieben, Datenverlust erst bei Ausfall aller Platten Raid 5 21

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

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

Kapitel 7: Formaler Datenbankentwurf

Kapitel 7: Formaler Datenbankentwurf 7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen

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

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

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

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

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12

Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12 Prof. Dr. Lutz Wegner, Dipl.-Math. Kai Schweinsberg 21.03.2012 Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12 Name:... Vorname:... Matr.Nr.:... Studiengang:... Hinweis: Bearbeiten Sie alle

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Datenbanken. Sommersemester 2010 Probeklausur

Datenbanken. Sommersemester 2010 Probeklausur Prof. Dr. V. Linnemann Christoph Reinke Universität zu Lübeck Institut für Informationssysteme Lübeck, den 29. Juli 2010 Datenbanken Sommersemester 2010 Probeklausur Hinweise: Es ist sinnvoll, die Aufgaben

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

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

2. Übungsblatt 3.0 VU Datenmodellierung

2. Übungsblatt 3.0 VU Datenmodellierung 2. Übungsblatt 3.0 VU Datenmodellierung 15. Mai 2012 Allgemeines In diesem Übungsteil sollten Sie Aufgabenstellungen aus den Bereich SQL und Normalformentheorie bearbeiten. Lösen Sie die Beispiele eigenständig,

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

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

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

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

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

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

Übungen zur Vorlesung. Datenbanken I

Übungen zur Vorlesung. Datenbanken I Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 6 Aufgabe 1: In der Vorlesung haben Sie für die Einbringstrategie Update in Place die Vorgehensweisen steal,

Mehr

Normalformen: Sinn und Zweck

Normalformen: Sinn und Zweck Normalformen: Sinn und Zweck Redundanz und Inkonsistenz vermeiden Anomalien vermeiden Verlustlose Zerlegungen finden Abhängigkeiten bewaren NF2 und NF3 behandeln das Verhältnis zwischen Schlüsselund Nichtschlüssel-

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

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 Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

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

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

Software-Engineering Einführung

Software-Engineering Einführung Software-Engineering Einführung 7. Übung (04.12.2014) Dr. Gergely Varró, gergely.varro@es.tu-darmstadt.de Erhan Leblebici, erhan.leblebici@es.tu-darmstadt.de Tel.+49 6151 16 4388 ES Real-Time Systems Lab

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

Vorlesung Dokumentation und Datenbanken Klausur

Vorlesung Dokumentation und Datenbanken Klausur Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

U8: SQL Datenbank Daniel Baron 1

U8: SQL Datenbank Daniel Baron 1 U8: SQL Datenbank Daniel Baron 1 Allgemein Eine SQL Datenbank ist eine meist serverseitige Software, die Daten speichern und verwalten kann. Dabei werden diese Daten in Tabellen abgelegt und indiziert.

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

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

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

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

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

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

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

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

SQL. Fortgeschrittene Konzepte Auszug

SQL. Fortgeschrittene Konzepte Auszug SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt

Mehr

Design Theorie für relationale Datenbanken

Design Theorie für relationale Datenbanken Design Theorie für relationale Datenbanken Design von relationalen Datenbanken alternativen Datenabhängigkeiten Normalisierung Ziel: automatisches Datenbankdesign IX-1 Schlechtes Datenbank Design Frage:

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Wirtschaftswissenschaften Prof. Dr. W. Esswein Lehrstuhl Wirtschaftsinformatik, insbesondere Systementwicklung

TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Wirtschaftswissenschaften Prof. Dr. W. Esswein Lehrstuhl Wirtschaftsinformatik, insbesondere Systementwicklung TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Wirtschaftswissenschaften Prof. Dr. W. Esswein Lehrstuhl Wirtschaftsinformatik, insbesondere Systementwicklung Bachelorprüfung Sommersemester 2009 Programmierung

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5 Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5 Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Hinweise Der Aufgabensatz

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

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

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

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

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

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört.

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört. Beziehungen Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört. Eine Vorlesung wird von genau einem Dozenten gelesen. Ein Dozent kann

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

1. Ziel des Datenbankentwurfs

1. Ziel des Datenbankentwurfs 1. Ziel des Datenbankentwurfs Ziel ist der Aufbau eines Modells eines Teilbereiches der wahrnehmbaren Realität und Abbildung dieses Bereichs in Form von Daten, so dass diese nach verschiedensten Kriterien

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

https://webct.net.ethz.ch/script/dbsyst/scripts/student/serve_quiz_marked.pl?do_g...

https://webct.net.ethz.ch/script/dbsyst/scripts/student/serve_quiz_marked.pl?do_g... Seite 1 von 5 View Results Übung 3 User ID: unizh.ch_scherrer_larissa_733033363031363501 Attempt: 1 / 1 Out of: 16 Started: May 31, 2006 20:43 Finished: June 6, 2006 15:04 Time spent: 138 hr, 20 min.,

Mehr

Relationale Entwurfstheorie. Kapitel 5 201 / 510

Relationale Entwurfstheorie. Kapitel 5 201 / 510 Kapitel 5 Relationale Entwurfstheorie 201 / 510 Relationale Entwurfstheorie Ein schlecht entworfenes Schema führt zu folgenden Anomalien Updateanomalien: bei Änderungen eines Fakts müssen viele Tupel angefaßt

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Dieser Fragenkatalog wurde aufgrund das Basistextes und zum Teil aus den Prüfungsprotokollen erstellt, um sich auf mögliche

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Beispiel 1: Filmdatenbank

Beispiel 1: Filmdatenbank Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,

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

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Lehrer: Einschreibemethoden

Lehrer: Einschreibemethoden Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Datenbanken (Bachelor) 30.7302 (SPO2007) WS 2011/12

Datenbanken (Bachelor) 30.7302 (SPO2007) WS 2011/12 Aufgabenstellung: Prof. Dr. Inge Schestag zugelassene Hilfsmittel: 1 beidseitig bedrucktes oder beschriebenes A4-Blatt Bearbeitungszeit: 90 Minuten Note: Name: Matrikelnr. Aufgabe 1 Aufgabe 2 Aufgabe 3

Mehr

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 10 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing (gdb@in.tum.de)

Mehr

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Grundlagen: Datenbanken im WS15/16 Harald Lang, Linnea Passing (gdb@in.tum.de)

Mehr

Fachhochschule Deggendorf Platzziffer:...

Fachhochschule Deggendorf Platzziffer:... Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

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

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

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

EDV-Fortbildung Kombi-Schulung Word-Excel 2010. Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel

EDV-Fortbildung Kombi-Schulung Word-Excel 2010. Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel EDV-Fortbildung Kombi-Schulung Word-Excel 2010 Modul Excel Informationen zum Programm Microsoft Excel ist das meistverbreitete Programm zur Tabellenkalkulation. Excel bietet sich für umfangreiche, aber

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Bisherige Integritätsbedingungen Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge

Mehr

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SQL - Übungen Bearbeitung der Datenbank Personal (1) Bearbeitung der Datenbank Personal (1) 1. Abfragen einer einzigen Tabelle 1.1. Zeigen Sie alle Informationen an, die über die Kinder der Mitarbeiter gespeichert sind. 1.2. Zeigen Sie aus der Tabelle stelle

Mehr

Alerts für Microsoft CRM 4.0

Alerts für Microsoft CRM 4.0 Alerts für Microsoft CRM 4.0 Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle weiteren erwähnten

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

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

Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin

Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin Hochschule Bonn-Rhein-Sieg Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin Prüfung Probeklausur SoSe 2015 mit Lösung Teil 3: Jacobsen/Pieters Aufgabe 1: Abfragen Die Tabelle zeigt einen Auszug

Mehr

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL. Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände

Mehr

Objektrelationale Datenbanken

Objektrelationale Datenbanken Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

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

Dossier: Rechnungen und Lieferscheine in Word

Dossier: Rechnungen und Lieferscheine in Word www.sekretaerinnen-service.de Dossier: Rechnungen und Lieferscheine in Word Es muss nicht immer Excel sein Wenn Sie eine Vorlage für eine Rechnung oder einen Lieferschein erstellen möchten, brauchen Sie

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

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

Mehr