Lösungen zu Datenbank und Informationssysteme

Größe: px
Ab Seite anzeigen:

Download "Lösungen zu Datenbank und Informationssysteme"

Transkript

1 zu Datenbank und Informationssysteme A Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank Azamon des Servers MMSERV ausgibt. Angezeigt werden soll eine Kopfzeile mit den Namen der in der Tabelle enthaltenen Spalten, sowie der Inhalt der Tabelle. 2. Daten lesen mit ADO.NET Schreiben Sie eine C#-Programm, das die Tabelle Books der Datenbank Azamon auf dem Server MMSERV ausgibt. Angezeigt werden soll eine Kopfzeile mit den Namen der in der Tabelle enthaltenen Spalten, sowie der Inhalt der Tabelle. Zum Lesen der Daten verwenden Sie einen DataReader. Es folgen zwei alternative Blöcke mit Aufgaben zu JDBC und ADO.NET. Sie entscheiden sich für eine der Techniken. 3. Interaktives SQL mit JDBC Schreiben Sie eine Java-Anwendung Interactive JDBC, mit der man beliebige SQL-Anweisungen (anfragende und modizierende Anweisungen) durchführen kann. Es soll möglich sein, in einem Dialog die Datenquelle zu wählen, mit der man sich verbinden möchte. Das Programm sollte etwa so aussehen wie das in Abb Datenbankexport mit JDBC _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Schreiben Sie eine Java-Anwendung, mit der man einen einfachen Datenbank-Export durchführen kann. Man gibt die Tabellen an, die man exportieren möchte und das Programm erzeugt zwei SQL-Skripten: eines, das die DDL-Anweisungen zum Erzeugen der Tabellen enthält, und eines, das die Insert-Anweisungen zum Füllen der Tabellen enthält. Zusatzaufgabe: Es sollen auch Anweisungen, die die referentielle Integrität betreffen, erzeugt werden. Seite 1

2 5. Interaktives SQL mit ADO.NET Schreiben Sie eine C#-Anwendung Interactive ADO.NET, mit der man beliebige SQL- Anweisungen (anfragende und modizierende Anweisungen) durchführen kann. Es soll möglich sein, in einem Dialog die Datenquelle zu wählen, mit der man sich verbinden möchte. Das Programm sollte ähnlich aussehen wie das Java-Programm in Abb TableViewer mit ADO.NET Schreiben Sie eine C#-Anwendung TableViewer, mit der man eine beliebige Tabelle einer Datenbank durchblättern kann. Das Programm soll etwa so aussehen, wie in Abb 2. Abbildung 2: TableViewer Verwenden Sie für die Implementierung das DataSet und das DataGrid von ADO.NET. _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Seite 2

3 B Transaktionenen und Nebenläufigkeit 7. Serialisierbarkeit Geben Sie an, welche der folgenden Abläufe serialisierbar sind mit Begründung (a) r 1 (x); r 2 (y); r 1 (z); r 3 (z); r 2 (x); r 1 (y); ja, nur lesende Zugriffe (nicht seriell, serialisierbar) (b) r 1 (x); w 2 (y); r 1 (z); r 3 (z); w 2 (x); r 1 (y); nicht serialisierbar, da Zyklus T 1 T 2 T 3 (c) r 1 (x) } {{ } ; w 2(y); r 1 (z); r 3 (z); w 1 (x) } {{ } ; r 2(y); ja, keine Konflikte, denn Schreibende Zugriffe nun auf verschiedene Datenobjekte (nicht seriell, serialisierbar) (d) r 1 (x); r 2 (y); r 1 (z); r 3 (z); w 1 (x); w 2 (y); ja, keine Konflikte (nicht seriell, serialisierbar) (e) r 1 (x); r 2 (y); w 2 (x); w 3 (x); w 3 (y); r 1 (y); nicht serialisierbar, da Zyklus T 1 T 2 T 3 (f) w 1 (x); r 2 (y); r 3 (z); r 1 (x); w 2 (y); ja, keine Konflikte (g) r 1 (z); w 2 (x); r 2 (y); w 1 (x); w 3 (z); w 1 (y); r 3 (x); kein Zyklus = serialisierbar _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET T 1 T 2 T 3 w 2 (x); r 2 (y); r 1 (z); w 1 (x); w 1 (y); w 3 (z); r 3 (x); T 2 T 1 T 3 seriell immer serialisierbar kein Konflikt immer serialisierbar Seite 3

4 8. 2PL und Serialisierbarkeit Beweisen Sie folgende Aussage: Gegeben sei ein Ablauf, der dem 2PL-Protokoll entspricht. Dann ist ein äquivalenter serieller Ablauf derjenige, bei dem Transaktionen in der Reihenfolge ausgeführt werden, wie sie im gegebenen Ablauf den ersten Lock freigeben. l i (x) w i (x)l i (z)l i (y) r 1 (x) w i (y) u i (x) l k (z) l k (x) aller erste u im Ablauf l i (x) u j (x) T i l i (z) nur noch Transaktionen! = T i 9. Deadlock & Wait-for-Graph Gegeben sei folgende Situation: Die Transaktionen T 1 T 7 halten Sperren auf den Datenobjekten x i und warten auf die Freigabe der Sperren auf Datenobjekten x i entsprechend folgender Aufstellung. Transaktion hat Lock auf wartet auf T 1 x 2 x 1, x 3 T 2 x 3, x 10 x 7, x 8 T 3 x 8 x 4, x 5 T 4 x 7 x 1 T 5 x 1, x 5 x 3 T 6 x 4, x 9 x 6 T 7 x 6 x 5 Zeichnen Sie einen Wait-for-Graph und ermitteln Sie Deadlocks. Dead-Lock: _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET T 1 T 2 T 3 T 4 T 5 T 6 T 7 Seite 4

5 10. Auflösung des Deadlocks Verwenden Sie den Wait-for-Graph aus der vorherigen Aufgabe und wenden Sie den Algorithmus aus der Vorlesung an, um die Deadlocks zu erkennen und aufzulösen. T 1 T 2 T 3 T 4 T 5 T 6 T 7 T T T T T T T T 1 läuft gut aber ist nicht interessant, weil sie an keinem Zyklus beteiligt ist (in der Spalte stehen Nullen). T 5 hat die meisten 1er, 1 bedeutet: steht im Konflikt = T 5 durchstreichen T 2 T 3 T 4 T 6 T 7 T T T Deadlock erkannt, breche T 5 ab. T T Phänomene Die Isolationslevel in SQL-Datenbanksystemen werden dadurch deniert, dass angegeben wird, welche Phänomene der Beeinflussung von Transaktionen garantiert ausgeschlossen werden. In dieser Aufgabe sollen Sie in Zweiergruppen arbeiten und den wechselseitigen Einuss zweier Transaktionen auf den verschiedenen Isolationsleveln erproben. Legen Sie in der Datenbank azamon eine Tabelle an und schreiben Sie mit JDBC oder ADO.NET kleine Programme, mit denen Sie die Phänomene erzeugen können. Jeder von Ihnen schreibt eine Transaktion, die auf dieselben Daten zugreift wie Ihr Partner oder Ihre Partnerin. Spielen Sie alle Kombinationsmöglichkeiten der Isolationslevel durch. import java. s q l. ; Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET public class I s o L e v e l { public s t a t i c void main ( S t r i n g [ ] a r g s ) { Connection con1 = null, con2 = null ; Statement stmt1 = null, stmt2 = null ; R e s u l tset r s 1 = null, r s 2 = null ; try { / S c h r i t t 1 : Treiber r e g i s t r i e r e n / Class. forname ( " sun. jdbc. odbc. JdbcOdbcDriver " ) ; / S c h r i t t 2 : Connection zur Datenbank h e r s t e l l e n / Seite 5

6 con1 = DriverManager. getconnection ( " jdbc : odbc : azamon ", " d i s ", " Pass " ) ; con2 = DriverManager. getconnection ( " jdbc : odbc : azamon ", " d i s ", " Pass " ) ; con1. setautocommit ( f a l s e ) ; con1. s e t T r a n s a c t i o n I s o l a t i o n ( Connection.TRANSACTION_SERIALIZABLE) ; con2. setautocommit ( f a l s e ) ; con2. s e t T r a n s a c t i o n I s o l a t i o n ( Connection.TRANSACTION_READ_COMMITTED) ; / S c h r i t t 3 : Satement erzeugen / stmt1 = con1. createstatement ( ) ; stmt2 = con2. createstatement ( ) ; / S c h r i t t 4 : Anweisung d i r e k t ausfuehren / System. out. p r i n t l n ( " Satement wird a u s g e f u e h r t " ) ; stmt1. executeupdate ( " update konto10822 s e t Name= Mueller where ktonr =1" ) ; r s 2 = stmt2. executequery ( " s e l e c t from konto10822 " ) ; System. out. p r i n t l n ( " Statement 1 und 2 wurden a u s g e f u e h r t " ) ; / S c h r i t t 5 : Ergebnis verwenden / while ( r s 2. next ( ) ) { System. out. p r i n t l n ( r s 2. g e t S t r i n g ( " ktonr " ) + " ) + r s 2. g e t S t r i n g ( " Saldo " ) ) ; } " + r s 2. g e t S t r i n g ( "Name" } catch ( Exception e ) { } f i n a l l y { try { / S c h r i t t 6 : Nicht mehr b e n o e t i g t e Resourcen f r e i g e b e n / i f ( r s 1!= null ) r s 1. c l o s e ( ) ; i f ( stmt1!= null ) stmt1. c l o s e ( ) ; i f ( con1!= null ) con1. c l o s e ( ) ; _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET } Ergebnis: } catch ( Exception e ) { } } } 1. MS Access berücksichtigt IsoLevel NICHT. 2. mysql out of the box = myisam als DB Engine bercüksichtigt IsoLevel NICHT. 3. mysql mit INNODB als DB Engine berücksichtigt IsoLevel, aber manchmal z. B. Bei REPEATABLEREAD etwas eigenwillig Seite 6

7 4. PostgreSQL und Oracle berücksichtigen nur READ_COMMITTED und SERIALIZABLE. Achtung: PostgreSQL unterstützt keine READ_UNCOMMITTED erlaubt also nur SERIALIZABLE und READ_COMMITTED postgresql benutzt Mulivisioning, dies untersttzt keine Read Uncommitted, d. h. vom vorner herein ist READ_UNCOMMITTED nicht erlaubt 5. MS SQL-Server verhält sich Standard-konform. Pragmatische Vorgehensweise 1. Verwende READ_COMMITTED, wenn du Änderungen anderer sehen willst. 2. Verwende SERIALIZABLE, wenn du vor anderem unbeeinflusst sein willst. 3. Prüfe genau, wenn du spezielles Verhalten brauchst. 12. Eine endlose Transaktion Ein etwas abwegiges Beispiel soll die Konzeption der Isolationslevel veranschaulichen: Gegeben sei eine Relation PC(model, speed, ram, price) und wir nehmen an, eine Transaktion enthält eine Endlosschleife, die immerzu nachschaut, ob es mittlerweile einen PC mit 2 Gigahertz unter 1000 e gibt. Währenddessen nden andere Transaktionen statt, die mit verschiedenen Isolationsleveln laufen, etwa eine solche, die ein gesuchtes PC-Modell in die Relation einfügt. Pseudocode: begin t r a n s a c t i o n ; f o r e v e r { s l e e p ( 1 s e c ) ; s e l e c t from PC; untersuche ergebnismenge ; i f ( found ) goto ende ; } ende : commit ( ) ; ausgabe ; _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Erläutern Sie was passiert, wenn die endlose Transaktion in folgendem Isolationslevel läuft: (a) SERIALIZABLE Ergebnis: Unsere Transaktion endet nie, weil SERIALIZABLE bedeutet: Ich möchte in keiner Weise durch andere Transaktionen beeinflusst werden. Seite 7

8 (b) REPEATABLE_READ Ergebnis: Unsere Transaktion endet, wenn ein neuer passender PC eingetragen wird. Denn REPEATABLE_READ bedeutet: Ich möchte durch Phantom-Zeilen durch andere Transaktionen beeinflusst werden. (c) READ_COMMITTED Ergebnis: Unsere Transaktion endet, wenn es einen passenden PC gibt. Sei es ein neuer oder geändert. Denn READ_COMMITTED bedeutet: Ich möchte bestätigte Änderungen anderer Transaktionen sehen (d) READ_UNCOMMITTED Ergebnis: Unsere Transaktion endet auch dann, wenn eine andere Transaktion einen passenden PC erzeugt hat, auch wenn sie diese Änderungen später durch ein Rollback rückgängig macht. Also auch dann, wenn es einen passenden PC nicht wirklich gibt. Denn READ_UNCOMMITTED bedeutet: Ich möchte alle Änderungen anderer Transaktionen sehen, auch wenn sie noch nicht bestätigt sind. 13. Wirkung des Isolationslevels Wir gehen von folgender Relation aus: M(MId, Gehalt). In der Relation sind zwei Tupel gespeichert: (A, 1000) und (B, 2000). Nun werden folgende Transaktionen durchgeführt: Transaktion 1 : begin t r a n s a c t i o n ; update M s e t Gehalt = Gehalt 2 where MId = A ; update M s e t Gehalt = Gehalt +100 where MId = B ; commit ; Transaktion 2 : begin t r a n s a c t i o n ; s e l e c t sum( Gehalt ) as G1 from M; s e l e c t sum( Gehalt ) as G2 from M; commit ; Die erste Transaktion wird im Isolationslevel SERIALIZABLE durchgeführt. _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Berechnen Sie alle möglichen Werte für G1 und G2, wenn (a) die zweite Transaktion mit dem Isolationslevel SERIALIZABLE durchgeführt wird. (b) die zweite Transaktion mit dem Isolationslevel READ_COMMITTED durchgeführt wird. (c) die zweite Transaktion mit dem Isolationslevel READ_UNCOMMITTED durchgeführt wird. Seite 8

9 14. Phantome Gegeben sei ein Datenbankschmema mit zwei Tabellen T1 und T2, die jeweils drei Attribute a1, a2, a3 haben Betrachten Sie die SQL-Anweisung s e l e c t T1. a1, T2. a1 from T1, T2 where T1. a2 = T2. a2 and T1. a3 = 5 and T2. a3 = 7 Formulieren Sie eine SQL-Anweisung, die zu einem Phantom führen kann. 15. Snapshot-Isolation Erklären Sie, weshalb bei Snapshot-Isolation folgende Phänomene nicht auftreten können: (a) Dirty Reads (b) Lost Updates (c) Nonrepeatable Reads (d) Phantom Rows Ist Snapshot-Isolation mit dem Isolationslevel SERIALIZABLE identisch? 16. SERIALIZABLE Gegeben seien zwei nebenläuge Transaktionen T 1 und T 2. Beweisen Sie folgende Aussage: Wird T 1 im Isolationslevel SERIALIZABLE ausgeführt und T 2 in einem beliebigen Isolationslevel, dann sieht T 1 entweder alle Änderungen, die T 2 gemacht hat oder keine. 17. READ COMMITTED _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Wir haben in der Vorlesung zwei Implementierungen des Isolationslevels READ COMMITTED kennengelernt: durch Sperrmechanismen und durch Multiversionierung. Konstruieren Sie ein Beispiel, bei dem die beiden Implementierungen unterschiedliche Ergebnisse haben. Seite 9

10 18. Statistische Auswertung Eine Transaktion für eine statistische Auswertung liest Daten aus der Datenbank, die im vergangenen Monat eingegeben wurden und erstellt aus diesen Daten einen Bericht. Welches Isolationslevel kann man für diese Transaktion verwenden? 19. Kompensatorische Transaktionen Geben Sie zu folgenden Datenbankänderungen an, ob es eine kompensatorische Transaktion gibt. Wenn ja, was müsste sie tun? (a) Erhöhung des Gehalts aller Professoren um 10%. (b) Erhöhung des Gehalts aller Mitarbeiter um 10%, sofern sie weniger als 3000 e verdienen. (c) Setze die Note von Student Max auf 2. (d) Füge einen Datensatz mit der Matrikelnummer (Primaärschlüssel) und den Angaben Max, Schneider für Vorname, Name ein. (e) Setze einen Wert auf das Quadrat des bisherigen Wertes. _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Seite 10

11 C Verteilte Datenbanken 20. Unterschied horizontaler und vertikaler Zerlegung Beschreiben Sie den Unterschied zwischen horizontaler und vertikaler Zerlegung in einer verteilten Datenbank. Durch welche relationalen Operatoren werden die beiden Typen der Zerlegung in der Regel realisiert: beschreiben Sie die Zerlegung und das Zusammenführen der Daten als relationale Operationen. 21. Horizontale Zerlegung einer Tabelle Ein Unternehmen verwendet in drei Werken Teile. Die Teile mit den Nummern 1 bis 300 werden in Werk I verwendet, in Werk II werden die Teile mit den Nummern 301 bis 500, aber mit Ausnahme von 399 eingesetzt und in Werk III werden alle übrigen Teile verwendet. Konzipieren Sie die horizontale Zerlegung der globalen Tabelle Teile( TeileNr, Bez, LieferNr, Preis ) unter der Voraussetzung, dass in der Regel in der verteilten Datenbank im jeweiligen Werk auf die Teile zugegriffen wird, die dort verwendet werden. Zeigen Sie außerdem, wie die globalen Relation aus den Fragmenten entsteht. 22. Beispiel für Zerlegung Die Relation Angest( PersNr, Name, Gehalt, MgrNr, AbtNr, Anschrift ) soll so zerlegt werden, dass ein Fragment Namen und Anschrift, eines die Personalnummer des Vorgesetzten und die Abteilungsnummer enthält, schließlich soll das dritte Fragment Namen und Gehalt umfassen. Wie kann man die globale Relation aus den Fragmenten denieren? 23. Schema einer verteilten Datenbank _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Ein Softwarehaus möchte eine verteilte Datenbank für das Projektmanagement in ihren Geschäftsstellen Hamburg (HH), Darmstadt (DA) und München (M) einrichten. Die im Moment in der zentralisierten Datenbank verwendete Datenstruktur ist so aufgebaut: Angest ( PersNr, Name, Gehalt, AbtNr, A n s c h r i f t ) Abt ( AbtNr, Name, MgrNr, BereichNr, RegionNr ) Projekt ( ProjNr, Name, Kontraktvolumen, ProjMgrNr, AbtNr ) Leistung ( PersNr, ProjNr, Stunden ) Bereich ( BereichNr, Name ) Region ( RegionNr, Name ) Seite 11

12 dabei sind Bereiche: Consulting (SC), Entwicklung (SE) und Rechenzentrumsbetrieb (RZ) Regionen: Hamburg (HH) mit den Bereichen SC, SE; Darmstadt (DA) mit dem Bereich SE und München mit den Bereichen SE und RZ. Die Zentrale der Firma ist in München, wo auch die Personalabteilung (HR) ist. Üblicherweise werden folgende Informationen benötigt: Informationen über die Projekte in den Bereichen, wobei jedes Projekt mit Mitarbeiter aus der Region durchgeführt wird. Informationen der zentralen Personalabteilung über alle Mitarbeiter. Informationen der Abteilung über die Arbeit der Mitarbeiter an Projekten für die Rechnungsstellung. Erarbeiten Sie einen Vorschlag für die Zerlegung und Replikation von Daten, die der geschilderten Situation gerecht wird. Begründen Sie Ihre Vorgehensweise: Erstellen Sie ein Entity-Relationship-Diagramm für die Datenstruktur. Erstellen Sie das Design für Verteilung und Replikation. Zeigen Sie wie die globalen Relationen aus den Fragmenten rekonstruiert werden können. Überlegen Sie Anfragestrategien für die oben skizzierten typischen Anfragen in der verteilten Datenbank 24. Semijoin Betrachten Sie folgende Situation in einer verteilten Datenbank: An Site 1 ist die Tabelle T gespeichert, die Zeilen mit den ids 1, 3, 5, 8, 14 enthält. Jede Zeile ist 1024 Bytes lang, 4 Bytes für die id und 1020 Bytes für die Nutzdaten. An Site 2 ist die Tabelle S gespeichert, deren Zeilen analog aufgebaut sind, und die ids 1, 2, 4, 7, 14, 20 haben. An Site 1 soll der Join durchgeführt werden: select * from T, S where T.id = S.id. _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Spielen Sie die Schritte durch, die erforderlich sind, wenn man den Join mittels des Semijoins ermittelt. Zeigen Sie, welche (Teile von) Tabellen von Site 1 an Site 2 und umgekehrt übertragen werden müssen. Wieviele Bytes müssen bei diesem Vorgehen über das Netz übertragen werden? Vergleichen Sie den Wert mit der Vorgehensweise, dass die komplette Tabelle S an Site 1 übertragen wird und dort der Join durchgeführt wird. Semijoin Seite 12

13 1. Projektion von T auf Joinattribute id (an Standort 1) π id (T ) = T p select id from T Spalte id von T übertragen nach Standort = 20 Bytes. 2. Join von T p mit S an Standort 2 T p S select S.id, data2 from Tp, S where TP.id = S.id <Zeichnung1> Zeilen von S mit übereinstimmenden id s d. h. 2 Zeilen (id 1 und 14) übertrgen nach Standort Bytes 3. Join von T mit S R am Standort 1 T S R select T.id, data2 from T,SR where T.id=SR.id Variante 1: übertrage S komplett an Standort 1 Variante 2: Semijoin 2048 Bytes 6144 Bytes Variante 3: Bloomjoin 3074 Bytes (mehr als Variante 2?) 25. Bloomjoin Gehen Sie wieder von der Situation der vorherigen Aufgabe aus, spielen Sie nun den Bloomjoin durch, bei dem Sie die Hashfunktion h(x) = x mod 7 verwenden. Berechnen Sie wieder, wieviele Bytes über das Netz übertragen werden müssen. {1, 3, 5, 0} {0, 1,, 6} Diese Menge im Computer repräsentieren Bitvektor Wähle Hashfunktion h und Zahl n In Aufgabe vorgegeben h(x) = x mod 7, n = 7. Bilde Bitvektor Berechne Hashfunktion für jede id und schreibe Ergebnis in eine Menge {1, 3, 5, 0} _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Bitvektor: schicke Bitvektor + Zahl n an Standort 2 Seite 13

14 <Tabelle2> S R die Tabelle mit Zeilen mit ids 1,7,14. Übertrage S R nach Standort Bytes 3. Wie gehabt an Standort 1 T S R 26. Vorgehen in einer verteilten Datenbank I Betrachten Sie folgende Datenbank: Mitarbeiter( MId, MName, WId, Gehalt) Werk( WId, Sitz) Setzen Sie voraus, dass die Tabelle Mitarbeiter horizontal fragmentiert ist nach der WId am jeweiligen Sitz des Werks. Beschreiben Sie Strategien für folgende Statements: update Mitarbeiter set Gehalt = Gehalt * 1.05 an allen Standorten update Mitarbeiter set WId = 12 where MId = 2314 Standort übergreifend insert into Mitarbeiter values(4567, Schneider, 12, 5000) DBMS muss erstmal die MId validieren. 27. Vorgehen in einer verteilten Datenbank II _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Verwenden Sie die Datenbank und ihre Verteilung aus der vorherigen Aufgabe. Setzen Sie zusätzlich voraus, dass folgende Replikationsstrategie eingeführt ist: Jedes Fragment hat 2 Replika: eines in der Zentrale in Frankfurt, das andere am Sitz des jeweiligen Werkes. Beschreiben Sie gute Suchstrategien für folgende Abfragen, wenn Sie sich in Hamburg benden: Alle Angestellten in Bremen Durchschnittsgehalt aller Beschäftigten Seite 14

15 28. Vorgehen in einer verteilten Datenbank III Wir wandeln unsere Datenbank etwas ab: Mitarbeiter( MId, MName, AId, Gehalt,...) Abteilung( AId, MgrId, Sitz, Status,...) (MgrId ist die MId des Managers der Abteilung.) Die Abfrage, die uns interessiert, lautet: select * from Mitarbeiter M, Abteilung A where M.MId = A.MgrId and A.Status > 50 und wir wissen, dass etwa 1 Prozent der Mitarbeiter Abteilungsleiter sind und etwa die Hälfte der Abteilungen den gewünschten Status hat. Setzen Sie voraus, dass die Tabelle der Mitarbeiter in Frankfurt, die der Abteilungen in München gespeichert ist. Sie selbst sind in Hamburg. Die Tabelle Mitarbeiter hat Zeilen à 4 KBytes, die Tabelle Abteilung Zeilen à 4 KBytes. Die Schlüssel sind jeweils 4 Bytes lang. Für die Übertragungsrate im Netz nehmen wir 100 KBytes pro Sekunde an. Diskutieren Sie folgende Strategien und machen Sie Aussagen über die Übertragunskosten: Transferieren Sie beide Tabellen nach Hamburg und berechnen den Join dort. Transferieren Sie Abteilung nach Frankfurt und berechnen den Join dort, übermitteln Sie das Ergebnis nach Hamburg. Berechnen Sie den Join mit der Strategie des Bloomjoin in Frankfurt und übermitteln Sie das Ergebnis nach Hamburg. Berechnen Sie den Join mit der Strategie des Semijoin in München und übermitteln Sie das Ergebnis nach Hamburg. 29. Arten der Replikation _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET Erläutern Sie den Unterschied zwischen synchroner und asynchroner Replikation in verteilten Datenbanken. Nennen Sie Gründe, weshalb bei den heute verfügbaren DatenbankSystemen in der Regel die asynchrone Replikation verwendet wird? Seite 15

16 30. 2PC Absturz des Teilnehmers Im 2PC sieht der Ablauf (bei globalem Commit) für Teilnehmer und Koordinator (zusammengefasst) so aus: Koordinator: schreibe [prepare,t] in Log sende <prepare> an alle Teilnehmer nach Erhalt der (positiven) Antwort: schreibe [commit,t] in Log sende <globales Commit> an alle Teilnehmer nach Bestätigung: schreibe [eot,t] in Log Teilnehmer: nach <prepare>: schreibe [ready,t] in Log sende <stimme Commit> an Koordinator nach <globales Commit>: schreibe [commit,t] in Log sende <ack> an Koordinator Erläutern Sie, wie das 2PC-Protokoll verläuft, wenn der Teilnehmer in folgender Situation abstürzt: vor Erhalt der Nachricht <prepare> nach Erhalt von <prepare>, aber vor der Antwort an den Koordinator nach Antwort <stimme Commit> an Koordinator nach der Nachricht <ack> an Koordinator 31. 2PC Absturz des Koordinators Erläutern Sie, wie das 2PC-Protokoll verläuft, wenn der Koordinator in folgender Situation abstürzt: vor dem Schreiben von [prepare,t] _Loesungen.tex,v,1.1,January 7, 2007 at 17:22:41 CET nach dem Senden von <prepare> an alle Teilnehmer nach Erhalt der Antwort <stimme Commit> von einem Teil der Teilnehmer nach dem Schreiben von [commit,t] nach dem Senden von <globales Commit> an einen Teil der Teilnehmer nach dem Senden von <globales Commit> an alle Teilnehmer Seite 16

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Transaktionen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Motivation ACID-Eigenschaften Übersicht Transaktionen Motivation ACID-Eigenschaften Ursachen für Logging und Backup

Mehr

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

TAV Übung 3. Übung 3: Verteilte Datenhaltung

TAV Übung 3. Übung 3: Verteilte Datenhaltung Übung 3: Verteilte Datenhaltung 1. Serialisierung Konstruieren Sie Historien aus drei Transaktionen T1, T2 und T3, die folgende Merkmale aufweisen: 1. Die serielle Reihenfolge ist T1 vor T2 vor T3. 2.

Mehr

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig)

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig) 1 Grundlagen Begriffe Daten bekannte zutreffende Tatsachen über die Domäne/Miniwelt DBS Einsatz eines DBMS für eine Datenbank, DBS besteht aus folgenden Komponenten: 1. DBMS 2. Datenbank DBMS Software

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Java: Kapitel 8 Datenbankzugriff mit JDBC Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 8 Einführung in SQL und JDBC Verbindung zur Datenbank

Mehr

Datenbankanwendungen (JDBC)

Datenbankanwendungen (JDBC) Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Isolationslevel in SQL

Isolationslevel in SQL Isolationslevel in SQL Zu den ACID-Eigenschaften von Transaktionen gehört auch das I, also Isolation. Streng genommen versteht man unter Isolation, dass eine Transaktion unbeeinflusst durch andere Transaktionen

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

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

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung

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

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Datenbanken SQL-Grundlagen JDBC SQL-Constraints 2 / 26 Relationale Datenbanken Ein Datenbanksystem ist ein System zur

Mehr

Datenbanken und Informationssysteme

Datenbanken und Informationssysteme Datenbanken und Informationssysteme Verteilte Datenbanken Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16 Übersicht Architektur verteilter Datenbanken Definition Die ideale verteilte

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Institut für Informatik

Institut für Informatik Aufgaben für die 14. und 15. zur LV "Grundlagen der Informatik" Thema: Datenbanken ( ERM: Entity-Relationship-Modell und SQL: Structured Query Language ) sowie HTML (Hypertext Markup Language) -------------------------------------------------------------------------------------------------------------------------

Mehr

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENBANKSYSTEME VU 184.686 7. 5. 2014 Kennnr. Matrikelnr.

Mehr

Datenbanksysteme 2015

Datenbanksysteme 2015 Datenbanksysteme 2015 Kapitel 09: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen ODBC MS Visio MS Access Embedded SQL JDBC Application SQLJ

Mehr

Datenbank Anbindung. Arthur Zaczek. Nov 2014

Datenbank Anbindung. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Datenbank Anbindung 1.1 Übersicht Datenbankanbindung mit JDBC und ADO.NET. 1.2.NET ADO.NET Kein Treiberkonzept. Jede Datenbank hat eigenes Set an Klassen. Meistens wird für nur

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

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

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

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

Google Spanner. Proseminar Ein-/Ausgabe Stand der Wissenschaft. Hanno Harte. Betreuer: Julian Kunkel 24.6.13

Google Spanner. Proseminar Ein-/Ausgabe Stand der Wissenschaft. Hanno Harte. Betreuer: Julian Kunkel 24.6.13 Google Spanner Proseminar Ein-/Ausgabe Stand der Wissenschaft Hanno Harte Betreuer: Julian Kunkel 24.6.13 1 /31 Gliederung - Überblick - Funktionsweise - True Time - Konsistenzsemantik - Benchmarks - Zusammenfassung

Mehr

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Name: Vorname: Matrikelnummer: Studiengang: E-Mail: Schreiben Sie zunächst sofort Ihren Namen und Matrikelnummer auf

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Sommersemester 2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 10. Java: Datenhaltung mit Datenbanken 1 Datenbank-Programme Derby (Hersteller: Apache

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET Leibniz Universität IT Services Anja Aue Experteneinstellungen in Visual Studio Express Extras Einstellungen Experteneinstellungen. Es werden

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Übertragung von Terminen und Baustellen

Übertragung von Terminen und Baustellen In dieser Dokumentation wird die Anwendung und die Konfiguration der Programme beschrieben, die für die Übertragung der Baustellen und Termine aus der KWP SQL-Datenbank an das virtic-system verwendet werden

Mehr

IT-Kompaktkurs. Datenbanken Skript zur Folge 10. Prof. Dr. Dieter Rummler Fachhochschule Deggendorf

IT-Kompaktkurs. Datenbanken Skript zur Folge 10. Prof. Dr. Dieter Rummler Fachhochschule Deggendorf IT-Kompaktkurs Skript zur Folge 10 Prof. Dr. Dieter Rummler Fachhochschule Deggendorf Client Server Architektur Zunächst zur grundsätzlichen Unterscheidung zwischen File-Server Datenbank und Server-Datenbank

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

Michaela Weiss 01. April 2015. Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL

Michaela Weiss 01. April 2015. Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL Michaela Weiss 01. April 2015 Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL Seite 2 Datenbanken Allgemeines: Datenbank(management)systeme ermöglichen die Speicherung großer Datenmengen Kennzeichen

Mehr

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131 Architekturen Von der DB basierten zur Multi-Tier Anwendung DB/CRM (C) J.M.Joller 2002 131 Lernziele Sie kennen Design und Architektur Patterns, welche beim Datenbankzugriff in verteilten Systemen verwendet

Mehr

Übung: Data Warehousing und Data Mining

Übung: Data Warehousing und Data Mining Übung: Data Warehousing und Data Mining Sebastian Wandelt 20. Oktober 2011 wandelt@informatik.hu-berlin.de Überblick Organisatorisches Kurze Einführung JDBC PL/SQL 1. Aufgabenblatt Ablauf des Semesters

Mehr

Effizientes Arbeiten mit relationalen Datenbanken unter SAS - Mit SASTRACE zu mehr Performance -

Effizientes Arbeiten mit relationalen Datenbanken unter SAS - Mit SASTRACE zu mehr Performance - Datenmanagement Effizientes Arbeiten mit relationalen Datenbanken unter SAS - Mit SASTRACE zu mehr Performance - Philipp Krüger Versicherungskammer Bayern Maximilianstraße 53 80530 München philipp.krueger@vkb.de

Mehr

Hadoop. Simon Prewo. Simon Prewo

Hadoop. Simon Prewo. Simon Prewo Hadoop Simon Prewo Simon Prewo 1 Warum Hadoop? SQL: DB2, Oracle Hadoop? Innerhalb der letzten zwei Jahre hat sich die Datenmenge ca. verzehnfacht Die Klassiker wie DB2, Oracle usw. sind anders konzeptioniert

Mehr

Relationale Datenbanken Kursziele

Relationale Datenbanken Kursziele Relationale Datenbanken Kursziele DB Grundlagen Daten-Modellierung Relationales Modell und DB => Praxis: Mit SQL als Anfragesprache Mit MySQL als DB RDB 1-1 Kursinhalt (Tage) 1. DB Einleitung / Entity-Relationship

Mehr

Datenbanken in Kommunikationsnetzen

Datenbanken in Kommunikationsnetzen Datenbanken in Kommunikationsnetzen Datenbanken in Kommunikationsnetzen 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 Verteilte Datenbanken DB in Kommunikationsnetzen 9.1 Verteilte Datenbanken 2002

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 11 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

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

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

[DATENBANKPROGRAMMIERUNG IM. INTER-/INTRANET] Fachhochschule Landshut Fakultät Betriebswirtschaft WS 2008/09. Stefanie Wagensonner

[DATENBANKPROGRAMMIERUNG IM. INTER-/INTRANET] Fachhochschule Landshut Fakultät Betriebswirtschaft WS 2008/09. Stefanie Wagensonner Stefanie Wagensonner EBS, 7. Fachsemester [DATENBANKPROGRAMMIERUNG IM INTER-/INTRANET] Fachhochschule Landshut Fakultät Betriebswirtschaft WS 2008/09 Inhaltsverzeichnis Einleitung..... 3 Frage Nr. 2...

Mehr

Business Intelligence Praktikum 1

Business Intelligence Praktikum 1 Hochschule Darmstadt Business Intelligence SS 2014 Fachbereich Informatik Praktikumsversuch 1 Prof. Dr. C. Wentzel Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 07.05.2014 Business Intelligence Praktikum

Mehr

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

Mehr

Verschiedene Arten des Datenbankeinsatzes

Verschiedene Arten des Datenbankeinsatzes 1 Beispiele kommerzieller DBMS: Kapitelinhalt Was charakterisiert und unterscheidet verschiedene Einsatzbereiche für. Welche prinzipiell unterschiedlichen Anforderungen ergeben sich für das DBMS bei Ein-

Mehr

Access und OpenOffice.org

Access und OpenOffice.org Access-Datenbanken in OpenOffice.org 1.1 einbinden Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen Timo Kozlowski Alle in diesem Dokument erwähnten

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

Event Stream Processing & Complex Event Processing. Dirk Bade

Event Stream Processing & Complex Event Processing. Dirk Bade Event Stream Processing & Complex Event Processing Dirk Bade Die Folien sind angelehnt an eine Präsentation der Orientation in Objects GmbH, 2009 Motivation Business Activity Monitoring Sammlung, Analyse

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Klausur Datenbanksysteme

Klausur Datenbanksysteme Prüfung Datenbanksysteme, 31.Jan. 2003 S. 1 Klausur Datenbanksysteme Name: Matrikel-Nr.: Studiengang: Aufgabenblatt nicht vor Beginn der Prüfung umdrehen! Prüfer: Prof. Dr. Martin Hulin Dauer: 90 Minuten

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

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

Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können!

Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können! Datenbanken: Standard CLI und JDBC Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können! (Endanwendern ist nicht zuzumuten, SQL zu lernen

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL Datenbanken und SQL Kapitel 8 Concurreny und Recovery Concurrency und Recovery Transaktionen Recovery Einführung in die Recovery Logdateien Checkpoints Conncurrency Sperrmechanismen Deadlocks SQL-Norm

Mehr

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

Mehr

Eine weitere Möglichkeit "die grosse weite Welt" zu erschliessen sind ODBC/JDBC bzw. ESS Verbindungen.

Eine weitere Möglichkeit die grosse weite Welt zu erschliessen sind ODBC/JDBC bzw. ESS Verbindungen. Database Designs Alexis Gehrt / alexis@database-designs.ch - Erster Kontakt mit FileMaker ca. 1991 ( Version 2, 2.1) - Jan 2000 - Database Designs - Seit 2007 bei einem Kunden (Linden-Grafik AG) angestellt

Mehr

Microsoft SQL Server 2005 für Administratoren

Microsoft SQL Server 2005 für Administratoren Microsoft SQL Server 2005 für Administratoren Irene Bauder ISBN 3-446-22800-4 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22800-4 sowie im Buchhandel Sichern von

Mehr

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

MySQL Replikation Neue Features in 5.5 und 5.6

MySQL Replikation Neue Features in 5.5 und 5.6 MySQL Replikation Neue Features in 5.5 und 5.6 DOAG SIG-MySQL 2013, München Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 25 Über FromDual GmbH FromDual bietet neutral

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Programmieren / Java Datenbankzugriff mit JDBC Frage Nr. 13 Datenbankzugriff mit JDBC Ausarbeitung einer Maturafrage aus dem Fach P r o g r a m m i e r e n / J a v a Andreas Hechenblaickner 5CDH HTBLA

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

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

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services

27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services 531 27 Transact-SQL-Erweiterungen in Bezug auf Analysis Services Im zweiten Teil dieses Buches haben wir die Eigenschaften der Transact-SQL- Sprache in Bezug auf die Bearbeitung von operativen Daten gezeigt.

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

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

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

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

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

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Gliederung und Einordnung

Gliederung und Einordnung Gliederung und Einordnung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel

Mehr

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Ausarbeitung zum Seminar Intelligente Datenbanken im Sommersemester 2005 Fabian Klingbeil Universität Bonn Institut für Informatik III am 19.7.2005 Seminar

Mehr

Java und Datenbanken Ein Überblick

Java und Datenbanken Ein Überblick Java und Datenbanken Ein Überblick Benjamin Lietzau & Philipp Meyer Sommersemester 2011 1 Themenüberblick 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 2 Themenüberblick 1. Einführung

Mehr