Datenbanken. Christian Silberbauer. Inhaltsverzeichnis

Größe: px
Ab Seite anzeigen:

Download "Datenbanken. Christian Silberbauer. Inhaltsverzeichnis"

Transkript

1 Datenbanken Christian Silberbauer Inhaltsverzeichnis 1. Allgemeine Begriffsdefinitionen Datenbanken allgemein Relationale Datenbanken Transaktion Normalformen Begriffsdefinitionen Definitionen der Normalformen SQL Begriffsdefinitionen Data Definition Language (DDL) Data Manipulation Language (DML) SQL für Objektrelationale Datenbanken PHP Funktionen Beispielskripte Regeln zum Datenbankentwurf Concurrency und Recovery...17 Dieses Skript orientiert sich überwiegend an der Vorlesung Datenbanken im Studiengang Wirtschaftsinformatik an der Fachhochschule Regensburg von Prof. Dr. Schicker. Alle Rechte vorbehalten.

2 Allgemeine Begriffsdefinitionen 1. Allgemeine Begriffsdefinitionen 1.1. Datenbanken allgemein Datenbank Semantisch zusammengehörige Daten, die von einem Datenbankmanagementsystem verwaltet werden Datenbankmanagementsystem (DBMS) Ein Datenbankverwaltungssystem kapselt die Verwaltung persistenter Daten von deren Nutzung durch ein Anwendungssystem. Semantisch zusammengehörige Daten werden in so genannten Datenbanken vereint. Die derzeit wirtschaftlich erfolgreichsten Datenbankmanagementsysteme sind der Reihe nach Oracle (Oracle), DB/2 (IBM) und SQL-Server (Microsoft). Weit verbreitet sind zudem MS-Access (Microsoft) und MySQL Datenbankschnittstelle Die Datenbankschnittstelle ermöglicht dem Anwendungssystem den Zugriff die Daten der Datenbank Relationale Datenbanken Relationale Datenbank Relationale Datenbanken sind Datenbanken, deren Daten in Relationen gespeichert sind. Beziehungen zwischen diesen Relationen werden ausschließlich durch Fremdschlüsselattribute hergestellt Überblick Formale Relationale Ausdrücke Informelle Ausdrucksweise Relation Tupel Kardinalität Attribut Grad Primärschlüssel Gebiet Tabelle eine Zeile einer Tabelle Anzahl der Zeilen einer Tabelle eine Spalte einer Tabelle Anzahl der Spalten einer Tabelle eindeutiger Bezeichner Menge aller möglichen Werte Relation Eine Relation ist eine Tabelle mit folgenden Eigenschaften: - Es gibt keine doppelten Tupel - Tupel sind nicht geordnet - Attribute sind nicht geordnet - Alle Attribute sind atomar Datenbanken Christian Silberbauer

3 Allgemeine Begriffsdefinitionen Schwache Relation Eine Relation heißt schwach, wenn sie lediglich eine andere Relation referenziert und die Existenz ihrer Tupel von der Existenz der referenzierten Tupel der anderen Relation abhängig ist. Eine Subtyp-Relation (1-1-Beziehung) ist meistens schwach Beziehungsrelation Eine Beziehungsrelation ist eine Relation mit zwei oder mehreren Fremdschlüsseln, die zusammen einen Schlüsselkandidaten bilden Schlüsselkandidat Ein Schlüsselkandidat besteht aus einer minimalen Menge von Attributen einer Relation, die die Tupel der Relation eindeutig identifizieren. minimale Menge bedeutet, dass keine Teilmenge dieser Attribute auch Schlüsselkandidat sein darf Primärschlüssel Ein Primärschlüssel ist ein ausgewählter Schlüsselkandidat einer Relation. Der Wert eines Fremdschlüssels, der auf ein Tupel dieser Relation verweist, muss einem Wert des Primärschlüssels entsprechen Alternative Schlüssel Alternative Schlüssel sind Schlüsselkandidaten, die nicht Primärschlüssel sind Fremdschlüssel Als Fremdschlüssel bezeichnet man ein oder mehrere Attribute, der oder die gemeinsam einen definierten Primärschlüssel beinhalten und somit auf das zugehörige Tupel verweisen Schlüsselattribut Ein Schlüsselattribut ist ein Attribut eines Schlüsselkandidaten Nichtschlüsselattribut Ein Nichtschlüsselattribut ist ein Attribut, das keinem Schlüsselkandidaten zugehört Transaktion Eine Transaktion ist eine feste Folge von Operationen. Transaktionen besitzen die ACID- Eigenschaften: Atomarität (atomicity): Konsistenz (consistency): Isolation (isolation): Eine Transaktion wird entweder ganz oder gar nicht ausgeführt. Nach Ausführung der Transaktion ist die Datenbank wieder in widerspruchsfreiem Zustand. Jede Transaktion ist unabhängig von eventuell parallel laufenden Transaktionen. Dauerhaftigkeit/Persistenz (durability): Änderungen von Transaktionen gelten auf Dauer. Datenbanken Christian Silberbauer

4 Normalformen 2. Normalformen 2.1. Begriffsdefinitionen Funktionale Abhängigkeit Ein Attribut Y einer Relation R heißt funktional abhängig vom Attribut X derselben Relation, wenn zu jedem X-Wert höchstens ein Y-Wert möglich ist. (X -> Y) alle Attribute hängen vom Primärschlüssel und den alternativen Schlüsseln funktional ab Volle Funktionale Abhängigkeit Ein Attribut Y einer Relation R heißt voll funktional abhängig vom Attribut X derselben Relation, wenn es funktional abhängig ist von X und es nicht funktional abhängig ist von beliebigen Teilattributen von X. (X => Y) es gilt: es gilt nicht: Primärschlüssel -> alle anderen Attribute Primärschlüssel => alle anderen Attribute Determinante Eine Determinante ist ein Attribut, von dem ein anderes voll funktional abhängig ist Mehrfache Abhängigkeit (Grob-Definition) Ein Attribut Y einer Relation R heißt mehrfach abhängig vom Attribut X derselben Relation, wenn zu jedem X-Wert höchstens eine eng begrenzte Anzahl Y-Werte möglich sind Definitionen der Normalformen Normalform Eine Relation ist in der 1. Normalform, wenn alle ihr zugrunde liegenden Gebiete nur atomare Werte enthalten. Eine (normalisierte) Relation ist immer in der ersten Normalform Normalform Eine Relation ist in der 2. Normalform, wenn sie in der 1. Normalform ist und jedes Nicht- Schlüsselattribut vom Primärschlüssel voll funktional abhängig ist. Das heißt, die Attribute müssen vom ganzen Primärschlüssel abhängig sein Es gilt mit 2. NF: Primärschlüssel => Nichtschlüsselattribute Eine Relation in erster Normalform mit nicht zusammengesetztem Primärschlüssel ist immer in der zweiten Normalform Normalform (nach Boyce/Codd) Eine Relation ist in der 3. Normalform, wenn sie in der 2. Normalform ist und jede Determinante dieser Relation ein Schlüsselkandidat ist. Das heißt, ein Nichtschlüsselattribut darf von keinem anderen Nichtschlüsselattribut abhängig sein. Datenbanken Christian Silberbauer

5 Normalformen Normalform Eine Relation ist in der 4. Normalform, wenn sie in der 3. Normalform ist und jede mehrfache Abhängigkeit auch eine funktionale Abhängigkeit nach sich zieht Normalform (Projektion-Join-Normalform; Grob-Definition) Eine Relation ist in der 5. Normalform, wenn sie in der 4. Normalform ist und sie nicht-trivial nicht mehr in mindestens zwei Relationen zerlegt werden kann. Datenbanken Christian Silberbauer

6 SQL 3. SQL 3.1. Begriffsdefinitionen SQL (Structured Query Language) ist eine Abfrage- und Manipulationssprache für relationale Datenbanken. SQL ist eine deklarative, mengenorientierte Sprache. SQL-Anweisungen werden in drei Klassen: - DDL (Data Definition Lanugage): Datenbankobjekte (Tabellen, Views etc.) angelegen und manipulieren (z.b. CREATE TABLE, CREATE VIEW) - DML (Data Manipulation Language): Daten aus Tabellen selektieren und verändern (z.b. SELECT, INSERT, UPDATE, DELETE) - DCL (Data Control Language): Steuern von Transaktionen (z.b. COMMIT, ROLLBACK) 3.2. Data Definition Language (DDL) CREATE TABLE-Befehl Syntax CREATE TABLE Tabellenname ({ Spalte { Datentyp Gebietsname } [Spaltenbedingung [ ]] Tabellenbedingung } [, ] ) Spaltenbedingung := [CONSTRAINT Bedingungsname] { NOT NULL PRIMARY KEY UNIQUE CHECK (Bedingung) REFERENCES Tabellenname [(Spalte [, ])] [ ON DELETE { NO ACTION CASCADE SET NULL }] [ ON UPDATE { NO ACTION CASCADE SET NULL }] } [ ] Tabellenbedingung := [CONSTRAINT Bedingungsname] { PRIMARY KEY (Spalte [, ]) UNIQUE (Spalte [, ]) CHECK (Bedingung) FOREIGN KEY (Spalte [, ]) REFERENCES Tabellenname [(Spalte [, ])] [ ON DELETE { NO ACTION CASCADE SET NULL }] [ ON UPDATE { NO ACTION CASCADE SET NULL }] } [ ] Datenbanken Christian Silberbauer

7 SQL Die wichtigsten Datentypen INTEGER, INT SMALLINT NUMERIC(x, y) DECIMAL(x, y) FLOAT(x) CHARACTER(n), CHAR(n) VARCHAR(n) DATE Ganzzahl Ganzzahl x-stellige Dezimalzahl mit y Nachkommastellen mindestens x-stellige Dezimalzahl mit y Nachkommastellen Gleitpunktzahl mit x Nachkommstellen Zeichenkette der Länge n (ungenutzte Zeichen werden mit Leerzeichen aufgefüllt!) Variable Zeichenketten mit bis zu n Zeichen Datumsfeld Anwenden der relationalen Integritätsregel Im Falle von Manipulationen referenzierter Tupel (Primärschlüsselwerte ändern oder Tupel löschen) sind bei einem Fremdschlüssel folgende Konsequenzen zur Erhaltung der relationalen Integrität möglich: Aktion zurückweisen ON DELETE NO ACTION ON UPDATE NO ACTION Aktion kaskadierend ausführen ON DELETE CASCADE ON UPDATE CASCADE Referenzen auf NULL setzen ON DELETE SET NULL ON UPDATE SET NULL Datumsfeld Variable (String) in Datum umwandeln SQL CAST z.b. CAST( AS DATE) DATE z.b. DATE Oracle TO_DATE z.b. TO_DATE( 00-Jan-01, YY-MMM-DD ) MySQL STR_TO_DATE z.b. STR_TO_DATE( , %d.%m.%y ) MS-Access CDATE z.b. CDATE( ) Heutiges Datum SQL, Oracle, MySQL Oracle MS-Access Current_Date Sysdate Date() CHECK Im CHECK als Spaltenbedingung darf nur auf das assoziierte Attribut selbst Bezug genommen werden. Andernfalls ist eine Tabellenbedingung notwendig. Datenbanken Christian Silberbauer

8 SQL CREATE VIEW-Befehl Syntax CREATE VIEW Sichtname [(Spalte [, ] )] AS Select-Befehl [WITH CHECK OPTION] // wenn gesetzt, wird eine Änderung auf die Sicht nur dann // ausgeführt, wenn die betroffenen Tupel weiterhin Elemente // der Sicht bleiben. Mutationen auf Sichten sind nicht erlaubt, wenn der Select-Befehl - auf mehr als eine Relation zugreift, - eine GROUP-BY-Klausel enthält, - eine DISTINCT-Angabe enthält, - die Spaltenliste nicht nur aus einzelnen Spaltennamen besteht, - mindestens einen der Operatoren UNION, INTERSECT oder EXCEPT enthält oder: - der SELECT-Befehl auf einer Sicht basiert, die eine der fünf obigen Bedingungen erfüllt GRANT-Befehl Syntax GRANT { Zugriffsrecht [, ] ALL PRIVILEGES } ON { DOMAIN Gebietsname [TABLE] { Tabellenname Sichtname } } TO { Benutzer [, ] PUBLIC } [WITH GRANT OPTION] // erh. Rechte dürfen weitergegeben werden Zugriffsrecht := { SELECT INSERT [(Spalte [, ] )] UPDATE [(Spalte [, ] )] DELETE REFERENCES [(Spalte [, ] )] // Referenzieren der angegebenen Attribute USAGE // Verwenden des angegebenen Gebiets } Datenbanken Christian Silberbauer

9 SQL 3.3. Data Manipulation Language (DML) SELECT-Befehl Syntax Select-Hauptteil [ { UNION EXCEPT INTERSECT } [ALL] // Vereinigung, Differenz, Schnitt Select-Hauptteil [{ UNION EXCEPT INTERSECT } [ALL] ] ] [ORDER BY Ordnungsliste] // Sortierung Select-Hauptteil := SELECT [ALL DISTINCT] Spaltenauswahlliste // Projektion FROM Tabellenliste // Kreuzprodukt oder Join [WHERE Bedingung] // Restriktion [[GROUP BY Spaltenliste] // Gruppierung [HAVING Bedingung]] // Restriktion nach Gruppierung Aggregatsfunktionen Durchschnitt avg() Anzahl count() Maximum max() Minimum min() Summe sum() // Besonderheit: count() gibt 0 zurück, wenn keine Sätze gefunden // wurden. Alle anderen Aggregatsfunktionen geben in einem solchen // Fall NULL zurück. Funktionen, um NULL-Werte zu ersetzen coalesce() SQL-Standard nvl() Oracle nz() Access // Ermittelt eigentlich aus einer Liste den ersten Wert ungleich NULL Operatoren in der WHERE-Klausel Boolesche Operatoren AND, OR, NOT Vergleichsoperatoren <, <=, >, >=, =, <> Intervalloperator [NOT] BETWEEN AND Enthaltenoperator [NOT] IN Auswahloperatoren ALL, ANY, SOME // SOME und ANY sind Synonyme Ähnlichkeitsoperator [NOT] LIKE Existenzoperator EXISTS Eindeutigkeitsoperator UNIQUE Nulloperator IS [NOT] NULL Datenbanken Christian Silberbauer

10 SQL Wildcards (unter Verwendung des Ähnlichkeitsoperators) % ersetzt beliebig viele Zeichen (* in Access) _ ersetzt genau ein Zeichen (? in Access) JOIN Inner-Join Outer-Join Natural-Join Tabelle1 [INNER] JOIN Tabelle2 ON Tabelle1.Feld = Tabelle2.Feld Tabelle1 {LEFT RIGHT FULL} [OUTER] JOIN Tabelle2 ON Tabelle1.Feld = Tabelle2.Feld Tabelle1 NATURAL INNER JOIN Tabelle2 Logische Abarbeitungsreihenfolge des Select-Befehls 1. Relationen mittels Kreuzprodukt oder JOIN verknüpfen 2. Restriktion mit Hilfe der WHERE-Bedingung 3. Projektion durchführen 4. Gruppieren gemäß der GROUP-BY-Klausel 5. Restriktion auf Ergebnis der Gruppierung mit HAVING-Klausel 6. Alle so erstellten Hauptteile des SELECT-Befehls mittels UNION, INTERSECT oder EXCEPT miteinander verknüpfen 7. Ergebnisrelation anhand der ORDER-BY-Klausel sortieren Beispiele SELECT count(*) FROM tab SELECT count(distinct feld) FROM tab SELECT * FROM tab WHERE feld = any(1000, 2000, 3000) SELECT feld1 AS a, feld2 FROM tab ORDER BY 1 desc, a Datenbanken Christian Silberbauer

11 SQL INSERT-Befehl Syntax INSERT INTO { Tabellenname Sichtname } [(Spaltenliste)] { VALUES (Auswahlliste) Select-Befehl } Beispiel INSERT INTO Auftragsposten (Nr, Menge, Preis) VALUES (1, 10, 9.99) UPDATE-Befehl Syntax UPDATE { Tabellenname Sichtname } SET { Spalte = { Spaltenausdruck NULL }} [, ] [WHERE Bedingung] Beispiel UPDATE Auftragsposten SET Menge = Menge + 5 WHERE Nr = DELETE-Befehl Syntax DELETE FROM { Tabellenname Sichtname } [WHERE Bedingung] Beispiel DELETE FROM Auftragsposten WHERE Nr = 1 Datenbanken Christian Silberbauer

12 SQL für Objektrelationale Datenbanken 4. SQL für Objektrelationale Datenbanken 4.1. CREATE TYPE Syntax CREATE TYPE Typname AS { VARRAY VARRYING ARRAY } (Anzahl) OF Datentyp CREATE TYPE Typname AS OBJECT ( Spalte Datentyp [, ], [ { MEMBER { Prozedurname Funktionsname } } [, ]]) CREATE TYPE Typname AS MEMBER { Prozedurdeklaration Funktionsdeklaration }; [, ] CREATE TYPE Typname AS TABLE OF Datentyp 4.2. Funktionen für eingebettete Relationen the() multiset() CAST-Operator Wandelt eingebettete Relation in Ausgaberelation um Fasst eingebettete Relationen zusammen Typkonvertierung 4.3. Beispiele CREATE TYPE T_Name AS VARRAY(10) OF CHARACTER(30) // Array anlegen CREATE TYPE T_Adresse AS OBJECT ( Strasse CHARACTER(30), PLZ CHARACTER(5), ORT CHARACTER(30) ) // Objekt anlegen CREATE TYPE T_APos AS OBJECT ( Nr INTEGER, Anzahl INTEGER, Preis NUMERIC(10,2) ) // Objekt anlegen CREATE TYPE ET_APos AS TABLE OF TAPos // Eingebettete Tabelle anlegen CREATE TABLE Auftrag // Tabelle mit ( Nr INTEGER PRIMARY KEY, Bearbeiter T_Name, // Array Lieferadr T_Adresse, // Objekt APos ET_APos ) // und eingebetteter Tabelle anlegen NESTED TABLE APos STORE AS ET_APos_TAB CREATE VIEW VAuftrag(Nr, Lieferadr) AS // View mit Objekt erzeugen SELECT A.Nr, T_Adresse(A.Strasse, A.PLZ, A.Ort) FROM AuftragAlt A Datenbanken Christian Silberbauer

13 SQL für Objektrelationale Datenbanken INSERT INTO Auftrag // Satz mit Objekten einfügen ( 1, T_Name( Meier, Müller ), T_Adresse( Walhallaallee 26, 93093, Donaustauf ), ET_APos(T_APos(1023, 5, ), T_APos(3938, 1, 15.99)) ) INSERT INTO the(select APos FROM Auftrag WHERE Nr = 1) VALUES(T_APos(8020, 2, 30.11)) // Einfügen in eingebetteter Tabelle SELECT Nr, A.Lieferadr.Ort FROM Auftrag A // Objektattribut auslesen SELECT * // Eingebettete Tabelle ausgeben FROM the(select APos FROM Auftrag WHERE Nr=1) SELECT sum(p.preis) // Aggregatsf. auf eingebettete Tab. FROM the(select APos FROM Auftrag WHERE Nr=1) P SELECT A1.Nr, // Eingeb. Tabellen zusammenfassen cast(multiset( SELECT * FROM the(select APos FROM Auftrag A2 WHERE A2.Nr = A1.Nr) P WHERE P.Preis > 100 ) AS ET_APos) FROM Auftrag A1 Datenbanken Christian Silberbauer

14 PHP 5. PHP 5.1. Funktionen String-Funktionen trim(string) strlen(string) strcmp(str1, str2) strcasecmp(str1, str2) strtolower(string) strtoupper(string) entfernt Leerzeichen am Anfang und am Ende gibt die Länge einer Zeichenkette zurück vergleicht zwei Zeichenketten vergleicht zwei Zeichenketten ohne Beachtung der Groß- /Kleinschreibung wandelt in Kleinbuchstaben um wandelt in Großbuchstaben um Datenbank-Funktionen (Oracle) resource oci_connect (string username, string password, string db) array resource bool int string array object int int bool bool bool bool oci_error (resource source) oci_parse (resource connection, string query) oci_execute (resource stmt, int mode) oci_num_fields (resource statement) oci_field_name (resource statement, int field) oci_fetch_array (resource statement) // per default: numerisch und assoziativ oci_fetch_object (resource statement) oci_fetch_all (resource statement, array &output) oci_num_rows (resource stmt) // nicht bei select verwenden! oci_commit (resource connection) oci_rollback (resource connection) oci_free_statement (resource statement) oci_close (resource connection) Datenbanken Christian Silberbauer

15 PHP 5.2. Beispielskripte Beispiel Datenbankzugriff <html> <head><title>beispiel Datenbankzugriff (select und update)</title></head> <body> <?php $conn $_POST['Passwort'], rfhs8012_ora9i ) or die( Verbindung zur Datenbank gescheitert. Abbruch ); isset($_post['rabatt']) or die( Rabatt wurde nicht definiert. Abbruch ); isset($_post['limit']) or die( Limit wurde nicht definiert. Abbruch ); $sql = SELECT * FROM Auftragsposten WHERE Gesamtpreis > $_POST[Limit] ; $stmt = oci_parse($conn, OCI_DEFAULT) or die( Fehler beim Daten auslesen. Abbruch. ); ($rec = oci_fetch_array($stmt)) or die( Keine Aufträge betroffen. Abbruch. ); echo <table border=1> ; do { echo <tr> <td>$rec[anr]</td><td>$rec[teilenr]</td> </tr> ; } while ($rec = oci_fetch_array($stmt)); echo </table> ; $sql = UPDATE Auftragsposten SET Gesamtpreis = Gesamtpreis * (100 - $_POST[Rabatt]) / 100 WHERE Gesamtpreis > $_POST[Limit] ; $stmt = oci_parse($conn, OCI_DEFAULT) or die( Fehler beim Daten aktualisieren. Abbruch. );?> oci_commit($conn); oci_close($conn); </body> </html> Datenbanken Christian Silberbauer

16 PHP Beispiel Deadlocks <html> <head><title>beispiel Deadlocks (mit try-catch)</title></head> <body> <?php try { $conn $_POST['Passwort'], rfhs8012_ora9i ) if (!$conn) { $err = oci_error(); throw new Exception( Fehler beim Connect ($err[message]), $err['code']); } do { try { $sql = UPDATE Kunde SET Sperre = 0 WHERE Nr = 1 ; $stmt = oci_parse($conn, OCI_DEFAULT); $err = oci_error($stmt); if ($err['code']) throw new Exception ( Fehler beim Ausführen, $err['code']); $sql = UPDATE Kunde SET Sperre = 0 WHERE Nr = 2 ; $stmt = oci_parse($conn, OCI_DEFAULT); $err = oci_error($stmt); if ($err['code']) throw new Exception ( Fehler beim Ausführen, $err['code']); $ready = true; } catch (Exception $e) { } if ($e->getcode() == 60) { // Deadlock? echo e->getmessage(), Zeile: $e->getline(), Code: $e->getcode()<br> ; echo Deadlock! Transaktion wird abgebrochen und neu gestartet.<br><br> ; oci_rollback($conn); $ready = false; } else throw $e; } while (!$ready); oci_commit($conn); oci_close($conn); } catch (Exception $e) {?> } echo e->getmessage(), Zeile: $e->getline(), Code: $e->getcode()<br><br> ; oci_rollback($conn); oci_close($conn); </body> </html> Datenbanken Christian Silberbauer

17 Regeln zum Datenbankentwurf 6. Regeln zum Datenbankentwurf 6.1. Primärschlüssel - Kein NOT NULL und kein UNIQUE beim Primärschlüssel definieren. Das ist automatisch der Fall Alternative Schlüssel - UNIQUE explizit setzen - Bei zusammengesetztem alternativen Schlüssel jedes Attribut mit NOT NULL kennzeichnen 6.3. Pflichtfelder - NOT NULL setzen 6.4. Fremdschlüssel Allgemein - Generell ON UPDATE CASCADE verwenden Bei Beziehungsrelationen - Bei Fremdschlüsseln sind NULL-Werte nicht erlaubt - Beide Fremdschlüssel haben die Eigenschaft ON DELETE NO ACTION oder ON DELETE CASCADE Bei Schwachen Relationen - Bei dem einzigen (!) Fremdschlüssel sind NULL-Werte nicht erlaubt - Der Fremdschlüssel hat die Eigenschaft ON DELETE CASCADE Bei Subtyp-Relationen - Sie sind i.d.r. Schwache Relationen - Der Fremdschlüssel ist beim Subtyp zu setzen 6.5. Kringel setzen - bei Subtyp-Relation beim Subtyp - bei 1:n-Beziehungen immer beim n (ist technisch bedingt) - bei 1:n-Beziehungen bei der 1, wenn der Fremdschlüssel NULL sein kann. Dann und nur dann darf aber NOT NULL bei Fremdschlüsseln nicht gesetzt sein. Datenbanken Christian Silberbauer

18 Concurrency und Recovery 7. Concurrency und Recovery 7.1. Concurrency Gleichzeitiger Zugriff auf Daten einer Datenbank im Mehrbenutzerbetrieb Recovery Rekonstruktion einer Datenbank im Fehlerfall Logdatei Eine Logdatei speichert alle Datenbankänderungen zusätzlich auf einer eigenen Festplatte. Die Speicherung in dieser Datei erfolgt im Streaming-Modus (sequentiell). Durch die doppelte Datenhaltung ist das Datenbanksystem immun gegenüber Plattencrashs und gewährt dennoch hohe Performance, da durch das sequentielle Schreiben kaum Positionierzeiten auf der Platte anfallen Hot Spots Aus dem Datenbankpuffer werden geänderte Daten vom Datenbanksystem auf die Festplatte zurück geschrieben, wenn diese länger nicht benötigt werden. Auf manche Daten wird aber laufend lesend und schreibend zugegriffen, sodass die Änderungen auf Platte auf diese Art nicht stattfinden. Die entsprechenden Blöcke im Datenbankpuffer nennt man Hot Spots Checkpoints Regelmäßige Zeitpunkte, in denen der Datenbankpuffer gelehrt wird. Dadurch wird zwar der Datenbankbetrieb durch den hohen Ausgabeverkehr merklich gebremst, allerdings beseitigen sie Hot Spots und beschleunigen eine eventuelle Recovery. Das optimale regelmäßige Zeitintervall zwischen zwei Checkpoints zu finden ist Erfahrungssache. Es ist von der jeweiligen Anwendung abhängig. Zu häufige Checkpoints erhöhen den Ausgabeverkehr, zu seltene Checkpoints führen zu enormen Stoßbelastungen, da der Aufwand pro Checkpoint sehr hoch ist Transaktionssteuerung BEGIN TRANSACTION COMMIT WORK ROLLBACK WORK Startet eine Transaktion Schließt eine Transaktion ab Macht die bisherigen Änderungen einer offenen Transaktion rückgängig 7.7. Zwei-Phasen-Commit Bei datenbankübergreifenden Transaktionen, also bei Transaktionen, an denen mehr als eine Datenbank beteiligt ist, ist ein Protokoll namens Zwei-Phasen-Commit notwendig, um primär die Konsistenz der Datenbank zu gewährleisten. Datenbanken Christian Silberbauer

19 Concurrency und Recovery Dabei wird eine übergreifende Transaktion zunächst in lokalen Transaktionen abgearbeitet. Anschließend erfolgt eine Meldung über die erfolgreiche oder auch nicht erfolgreiche lokale Abarbeitung an einen sog. Koordinator (Phase 1). Wenn alle lokalen Transaktionen erfolgreich abgeschlossen werden konnten, setzt der Koordinator einen globalen Commit (Phase 2). Die datenbankübergreifende Transaktion ist damit abgeschlossen. Andernfalls wird ein Rollback initiiert und alle beteiligten lokalen Transaktionen werden rückgängig gemacht Sperrmodi Share-Lock erlaubt weitere Share-Locks, weist Exclusiv- Locks aber zurück (bei lesendem Zugriff) Exklusiv-Lock weist alle weiteren Lockanforderungen zurück (bei schreibendem Zugriff) 7.9. Deadlock Eine Verklemmung, bei der zwei oder mehrere Transaktionen gegenseitig auf die Freigabe eines oder mehrerer Locks warten, heißt Deadlock Isolation Level Level setzen SET TRANSACTION ISOLATION LEVEL Level Definierte Level Level Beliebiges Lesen möglich Lesen nicht wiederholbar Phantom möglich Read Uncommitted ja ja ja Read Committed nein ja ja Repeatable Read nein nein ja Serializable nein nein nein Beliebiges Lesen: Nicht wiederholbares Lesen: Phantom-Effekt: Hier sind Lesezugriffe jederzeit erlaubt Innerhalb einer Transaktion kann wiederholtes Lesen andere Ergebnisse liefern. Beim wiederholten Lesen können plötzlich zusätzliche Zeilen auftreten (-> Phantom) Datenbanken Christian Silberbauer

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

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

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } Create-Table-Befehl CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } [, ] ) Liste der wichtigsten Datentypen in SQL INTEGER INT SMALLINT NUMERIC(x,y)

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

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

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

SQL als Zugriffssprache

SQL als Zugriffssprache SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl

Mehr

Moderne Datenbankkonzepte

Moderne Datenbankkonzepte Verteilte Datenbanken Moderne Datenbankkonzepte Wünschenswert, aber extrem aufwändig ( Zweiphasen Commit) Objektrelationale Datenbanken Kompromiss zwischen relational und rein objektorientiert seit 1999

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

7. Übung - Datenbanken

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

Mehr

SQL 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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

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

Mehr

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

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

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

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

Mehr

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

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

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

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

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

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

Mehr

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

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Ein Ausflug zu ACCESS

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

Mehr

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

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

Übersicht über Datenbanken

Übersicht über Datenbanken Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen

Mehr

Labor 3 - Datenbank mit MySQL

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

Mehr

SQL (Structured Query Language) Schemata Datentypen

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

Mehr

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

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

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

Mehr

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Schnellübersichten. SQL Grundlagen und Datenbankdesign Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes

Mehr

Referentielle Integrität

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

Mehr

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

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

Mehr

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

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

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

Datenintegrität. Bisherige Integritätsbedingungen

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

Mehr

Arbeiten mit einem lokalen PostgreSQL-Server

Arbeiten mit einem lokalen PostgreSQL-Server Arbeiten mit einem lokalen PostgreSQL-Server Download für das Betriebssystem Windows PostgreSQL-Server und pgadmin: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows pgadmin: http://www.pgadmin.org/download/windows.php

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

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

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Referentielle Integrität

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

Mehr

Wiederholung VU Datenmodellierung

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

Mehr

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

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

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

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

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

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

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

Mehr

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

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

Mehr

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

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

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

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

Mehr

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

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

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

Mehr

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

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

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

Mehr

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

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

Mehr

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

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

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

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

Mehr

Wiederholung VU Datenmodellierung

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

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

105.3 SQL-Datenverwaltung

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

Mehr

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

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

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

Mehr

Entwurf einer einfachen Datenbank zur Wunschzettel- Verwaltung

Entwurf einer einfachen Datenbank zur Wunschzettel- Verwaltung Entwurf einer einfachen Datenbank zur Wunschzettel- Verwaltung Prof. Dr. Alfred Holl, Georg Simon Ohm University of Applied Sciences, Nuremberg, Germany 29.03.2014/1 Entwurf einer einfachen Datenbank zur

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

Relationenmodell. Ziel:

Relationenmodell. Ziel: Relationenmodell Ziel:! geringe Redundanz,! gute Handhabbarkeit,! einfache Zugriffe über möglichst wenige Tabellen! Sicherstellung von Konsistenz und Integrität. Beispielrelation Verkaeufer-Produkt Verk.-Nr.

Mehr

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

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

Mehr

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

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

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

Mehr

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

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

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

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

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 22. April 2013 - MySQL Sebastian Cuy sebastian.cuy@uni-koeln.de Datenbanken Was sind eigentlich Datenbanken? Eine

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

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

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

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

Mehr

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

Vorlesung Dokumentation und Datenbanken Klausur

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

Mehr

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

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

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

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

Mehr

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

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

Mehr

Erstellen einer Datenbank. Datenbankabfragen

Erstellen einer Datenbank. Datenbankabfragen Erstellen einer Datenbank Datenbankabfragen Überblick Die fünf Stationen Semantisches Modell Logisches Modell Prüfung auf Redundanz Abfragen Softwaremäßige Implementierung Zur Erinnerung: Semantisches

Mehr

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

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

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-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