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

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

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

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

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

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

Klausur zur Vorlesung Datenbanksysteme I

Klausur zur Vorlesung Datenbanksysteme I Prof. Dr. W. Kießling 30.01.2002 Lehrstuhl für Datenbanken und Informationssysteme Universität Augsburg Klausur zur Vorlesung Datenbanksysteme I Wintersemester 2001/2002 Name Vorname Matrikelnummer Aufgabe

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

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

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

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

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

Transaktionen und Synchronisation konkurrierender Zugriffe

Transaktionen und Synchronisation konkurrierender Zugriffe Transaktionen und Synchronisation konkurrierender Zugriffe Fragestellungen Aufgaben des Transaktionsmanagers Aktivieren von Transaktionen entsprechend den Anforderungen von Anwendungsprogrammen. Dabei

Mehr

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

Mehr

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen Datenbankentwurf & Datenbankzugriff mit JDBC Georg Köster Sven Wagner-Boysen 6. November 2007 Gliederung 2 Datenbankentwurf für ProminentPeople.info ER-Modell Relationaler Entwurf Normalisierung Datenbankzugriff

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

Hochschule Karlsruhe Technik und Wirtschaft

Hochschule Karlsruhe Technik und Wirtschaft Hochschule Karlsruhe Technik und Wirtschaft Sommersemester 2009 Seite 1/12 Fakultät: Fakultät für Informatik und Wirtschaftsinformatik Semester: BC3 D4 Prüfungsfach: Datenbanken I Fachnummer: I 3B71 I

Mehr

Datenbanken: Transaktionskonzept und Concurrency Control

Datenbanken: Transaktionskonzept und Concurrency Control Wesentlich für das Arbeiten mit Datenbanken sind konsistente Datenbestände! Folgerung: es muss sichergestellt werden, dass Datenmanipulationen von Benutzern immer in einem erneut konsistenten Zustand der

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

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

Mehr

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock Übung Datenbanksysteme I Transaktionen, Selektivität und XML Thorsten Papenbrock Übersicht: Übungsthemen 2 Transaktionen Selektivität XML Thorsten Papenbrock Übung Datenbanksysteme I JDBC Transaktionen:

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

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

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

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

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 5 1.2 SQl-Anweisungen und Ergebnismengen.......................

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

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

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

Mehr

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14 Literatur und Quellen Datenbanken Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Lektüre zu den Themen : Kapitel 9 () aus Kemper und Eickler:

Mehr

Datenintegrität und Transaktionskonzept

Datenintegrität und Transaktionskonzept und Transaktionskonzept 1. / Datenkonsistenz 1 Mögliche Gefährdung der : Missachtung von Konsistenzbedingungen ("Semantische Integrität") Inkorrekte Verweise auf Datensätze in verschiedenen Tabellen ("Referentielle

Mehr

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

www.informatik-aktuell.de

www.informatik-aktuell.de www.informatik-aktuell.de Flashback Reise in die Vergangenheit einfach. gut. beraten. Warum Oracle Zeitreisen anbieten kann, der Microsoft SQL Server aber leider nicht. IT-Tage Datenbanken 18.12.2015,

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Synchronisation in Datenbanksystemen in a nutshell

Synchronisation in Datenbanksystemen in a nutshell Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.

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

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

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

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

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

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT 1 Metadaten a) Wozu werden Metadaten im Umfeld von DBMS benötigt? b) Nennen Sie mindestens zwei weitere Anwendungsfelder, in denen Metadaten zum Einsatz kommen.

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

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

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

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

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

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Datenbanken Konsistenz und Mehrnutzerbetrieb III Datenbanken Konsistenz und Mehrnutzerbetrieb III 1. Oracle Architektur! Komponenten des Oracle Servers! Zugriff über Netzwerk 2. Zugriffsrechte! Starten und Schließen der Datenbank! Nutzer und Rollen!

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

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

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

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

Praktikum Datenbanksysteme

Praktikum Datenbanksysteme Praktikum Datenbanksysteme Herbstsemester 2012 Dr. Andreas Geppert Platform Architecture Technology Infrastructure Services Credit Suisse geppert@acm.org Herbstsemester 2012 Slide 1 Themenübersicht konzeptueller

Mehr

Probeklausur Grundlagen der Datenbanksysteme II

Probeklausur Grundlagen der Datenbanksysteme II Prof. Dott.-Ing. Roberto V. Zicari Datenbanken und Informationssysteme Institut für Informatik Fachbereich Informatik und Mathematik Probeklausur Grundlagen der Datenbanksysteme II Frau: Herr: Vorname:

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

vs. Fehler zur Übersetzungszeit

vs. Fehler zur Übersetzungszeit Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der

Mehr

9 Transaktionskonzept

9 Transaktionskonzept 9 Transaktionskonzept Transaktionskonzept 9.1 Das Transaktionskonzept 9.2 Concurrency & Locking 9.3 Recovery 9.4 JDBC Teil II 9.4.1 Transaktionsmanagement 9.4.2 Objektrelationale Konzepte Schestag Datenbanken

Mehr

Terminologie. Kapitel 15 Verteilte Datenbanken. Verteiltes Datenbanksystem. Kommunikationsmedien

Terminologie. Kapitel 15 Verteilte Datenbanken. Verteiltes Datenbanksystem. Kommunikationsmedien Kapitel Verteilte Datenbanken Terminologie Motivation: geographisch verteilte Organisationsform einer Bank mit ihren Filialen Filialen sollen Daten lokaler Kunden bearbeiten können Zentrale soll Zugriff

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

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

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003 Kurzübersicht JDBC Marc Monecke monecke@informatik.uni-siegen.de 15. Januar 2003 Zusammenfassung Über JDBC-Schnittstellen können Anwendungsprogramme auf Datenbanken zugreifen, ohne daß dabei hersteller-

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

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

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

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

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

Datenbanken II Literatur

Datenbanken II Literatur Datenbanken II Literatur C. J. Date: An Introduction to Database Systems; Addison-Wesley Systems Programming Series. 6th ed. 1995 H. E. Erbs, S. Karczewski und I. Schestag: Datenbanken (Datenmodelle, Objekte,

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

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

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

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering Datenbanken Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea Institut für Informatik Software & Systems Engineering Agenda 1. Datenbanken 2. SQL 3. ADO.NET DataProvider (providerabhängig)

Mehr

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: Java

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

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

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

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

Mehr

Vorwort zur 5. Auflage... 15 Über den Autor... 16

Vorwort zur 5. Auflage... 15 Über den Autor... 16 Vorwort zur 5. Auflage...................................... 15 Über den Autor............................................ 16 Teil I Grundlagen.............................................. 17 1 Einführung

Mehr

Besonders für den Anfänger empfiehlt sich folgende Vorgehensweise für die Erstellung von Manipulationsabfragen:

Besonders für den Anfänger empfiehlt sich folgende Vorgehensweise für die Erstellung von Manipulationsabfragen: Manipulationsabfragen Datenbanksysteme 6 Manipulationsabfragen Lerninhalte Tabellenerstellungsabfragen Löschabfragen Anfügeabfragen Aktualisierungsabfragen Lerninhalte Mit den Datenbanksprachen SQL und

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

Einführung in Datenbanken

Einführung in Datenbanken Grundlagen der Programmierung 2 Einführung in Datenbanken Grundlagen der Programmierung 2 I-1 Inhalt Einführung Entity-Relationship-Diagramm Relationales Modell Entity-Relationship-Diagramm ins Relationales

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

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

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

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

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

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

2 Datenbanksysteme, Datenbankanwendungen und Middleware... 45

2 Datenbanksysteme, Datenbankanwendungen und Middleware... 45 Vorwort 15 Teil I Grundlagen 19 i Einführung In das Thema Datenbanken 21 I.I Warum ist Datenbankdesign wichtig? 26 i.2 Dateisystem und Datenbanken 28 1.2.1 Historische Wurzeln 29 1.2.2 Probleme bei der

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

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

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

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

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

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

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

Vorlesung Informationssysteme

Vorlesung Informationssysteme Saarbrücken, 25.06.2015 Information Systems Group Vorlesung Informationssysteme Vertiefung Kapitel 8: Transaktionen und wann sie gebraucht werden Erik Buchmann (buchmann@cs.uni-saarland.de) Foto: M. Strauch

Mehr

Vorlesung 30.03.2009 1) Einführung

Vorlesung 30.03.2009 1) Einführung Vorlesung 30.03.2009 1) Einführung Was versteht man unter dem Begriff Datenbank? - Eine Datenbank ist eine Struktur zur Speicherung von Daten mit lesendem und schreibendem Zugriff - Allgemein meint man

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

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement

Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement Anfrageformulierung: Allgemeines Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement nkmanagement- systeme ist die Unterstützung einer (oder mehrerer) Anfragesprachen. Eine Anfrage ist

Mehr

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, 11-13 Uhr Bearbeitungszeit: 90 Minuten Vorname: Nachname: Matrikelnummer: Bei der Klausur sind keine Hilfsmittel (Skripten,

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