From Block to Lock Lock Modes von der Theorie bis zur Praxis

Größe: px
Ab Seite anzeigen:

Download "From Block to Lock Lock Modes von der Theorie bis zur Praxis"

Transkript

1 From Block to Lock Lock Modes von der Theorie bis zur Praxis Tobias Deml Trivadis GmbH München Schlüsselworte Performance, Troubleshooting, Datenmodell, Sperre, Lock, Constraints Einleitung Ein bekanntes Szenario für Datenbank Administratoren: Von den Anwendern wird ein "Lock in der Datenbank" gemeldet. Nun beginnt die Analyse der vorgefundenen Situation mit der Klassifizierung der Sperre und der Identifizierung des Blockers. Im produktiven Betrieb ist ein solcher Zustand meist kritisch und lässt daher oftmals wenig Zeit für diese Tätigkeiten. Aus diesem Grund ist es wichtig, die vorherrschende Sachlage richtig verstehen und einschätzen zu können. Diese Sperren sind ein elementarer Bestandteil der Sicherstellung von Regeln, die ein relationales Datenbanksystem ausmachen. Konzeptionelle Grundlage der Sperren Mit dem bekannten Schriftstück A Relational Model of Data for Large Shared Data Banks legte der britische Mathematiker und Physiker Edgar F. Codd die Grundlagen eines modernen relationalen Datenbanksystems fest. Hiermit wurden Grundsätze festgelegt die noch immer Bestand und Anwendung finden. Einige dieser Regeln werden in einer Oracle Datenbank mit Sperren in der Datenbankstruktur sichergestellt. Eine davon ist die referenzielle Integrität, welche die Beziehungen (Constraint) zwischen Objekten in einer Datenbank regelt. So muss gesichert sein, dass ein entsprechend gegenstehender Primärschlüssel bereits vorhanden ist, wenn ein neuer Datensatz mit einem Fremdschlüssel in eine Datenbank geladen wird. Umgekehrt gilt, wenn Daten gelöscht werden, dürfen keine Daten mehr existieren, welche diesen Schlüssel referenzieren. Ein weiterer Grundsatz ist die Konsistenz in einer Datenbank. Es muss sichergestellt werden, dass die Daten zum Zeitpunkt der Abfrage immer den aktuell festgeschriebenen Zustand widerspiegeln. Ebenso genannt wird die Konkurrenz bzw. Nebenläufigkeit, welche Regeln für die simultane Bearbeitung der Daten von mehreren Parteien festlegt. Hierbei wird sichergestellt, dass die gleichzeitige Änderungsanforderung konsistent und fehlerfrei abläuft.

2 Arten von Sperren in einer Datenbank Um diesen divergierenden Anforderungen gerecht zu werden, gibt es eine Vielzahl von verschiedenen Sperren. Diese Locks können in drei Gruppen eingeteilt werden. Die folgende Abbildung zeigt die verschiedenen Arten und die jeweilig vorhandenen Untergruppierungen: DML Locks Bei dieser Art unterscheidet man grundsätzlich zwei verschiedene Typen: - Row Lock (TX) - Table Lock (TM) Ein TX-Lock beschreibt die Sperrung einer oder mehrerer Zeilen in einer Tabelle durch eine DML- Operation (Data Manipulation Language). Diese Sperren sind immer exklusiv, also kann diese jeweils nur einmal pro Row gesetzt werden. Das Setzen des Locks geschieht über den Eintrag der jeweiligen Session-Informationen in den Header des entsprechenden Datenbankblocks. Wenn ein Benutzer eine solche Aktion durch INSERT, UPDATE oder DELETE auslöst, resultiert daraus immer eine Sperre auf die entsprechende Tabelle. Diese Sperre wird implizit gelöst, sobald die jeweilige Transaktion durch einen Commit oder einen Rollback abgeschlossen ist. Daneben gibt es die Table Locks (TM), die eine Sperrung einer Tabelle beschreiben. Hier wird zwischen fünf verschiedenen Lock-Arten unterschieden: Row Shared Lock (SS/RSX) Diese Art von Sperre ist am wenigsten restriktiv und erlaubt somit die meiste Konkurrenz auf die entsprechende Tabelle. Dieser Lock zeigt an, dass eine Transaktion, welche diese Sperre auf der Tabelle hält, beabsichtigt, eine Zeile zu ändern. Row Exclusive Table Lock (SX/RX) Diese Variante zeigt an, dass eine Session Daten eine DML-Operation ausgelöst oder durch ein SELECT FOR UPDATE hervorgerufen hat. Dieser Lockerlaubt jedoch SX-Sperren von weiteren Transaktionen. Somit ist es auch möglich, andere Datensätze der gleichen Tabelle zu bearbeiten.

3 Shared Table Lock (S) Dieser Lock erlaubt generell die Abfrage aller Daten. DML-Operationen(INSERT, UPDATE, DELETE) der Daten sind nur möglich, wenn nur ein Shared Lock auf der Tabelle existiert. Außerdem reicht das Setzen dieser Sperre nicht aus, um die Daten der Tabelle zu ändern. Shared Row Exclusive Table Lock (SSX/SRX) Etwas restriktiver als der S-Lock kann hier nur ein SSX pro Tabelle gehalten werden. Die Selektion der Daten ist für alle weiteren Sessions möglich, aber deren Änderung wird durch diese Sperre verhindert. Exclusive Lock (X) Dieser Lock ist der restriktivste seiner Art. Diese Sperre verhindert jegliches Ausführen von DML- Operation und Setzten eines anderen Lock-Modes. Jedoch ist die Selektion von Daten noch immer blockadefrei möglich. Hier eine Matrix mit den oben beschriebenen Lock-Modes und welche Operationen bzw. Sperren bei den jeweiligen Optionen noch möglich sind.

4 DDL Locks Diese Art von Sperren schützt während einer laufenden DDL-Operation die Definition von Datenbankobjekten, die in dem ausgeführten Statement referenziert werden. DDL Locks beziehen sich immer auf ein einzelnes Objekt und nie auf das gesamte Data Dictionary. Bei der Erstellung beispielsweise einer Procedure wird eine Sperre gesetzt, um während des Aufbaus des Objekts zu verhindern, dass eine referenzierte Tabelle strukturell geändert oder sogar entfernt wird. Bei dieser Gruppierung von Locks wird zwischen drei verschiedenen Typen unterschieden: Exclusive DDL Lock Dieser exklusive Lock verhindert die Ausführung jeglicher DDL oder DML-Operationen auf ein bestimmtes Objekt. Die meisten DDL-Operationen lösen eine solche exklusive Sperre aus, um einen alleinigen Zugriff auf das entsprechende Objekt zu gewährleisten. Beispielsweise ist es während einer DROP-Operation auf eine Tabelle nicht möglich, gleichzeitig deren Struktur durch ein ALTER- Statement zu verändern. Eine exklusive DDL Sperre dauert während der Ausführung der entsprechenden Operation an und wird automatisch nach deren Beendigung wieder entfernt. Share DDL Lock Die Share DDL Sperre verhindert, dass ein exklusiver Lock gesetzt werden kann. Es dürfen auf der Tabelle DML und DDL-Operationen ausgeführt werden, solange diese keine exklusive Sperre auf das Objekt benötigen. Während eines CREATE PROCEDURE-Statement etwa darf die referenzierte Tabelle nicht strukturell geändert werden. Jedoch ist es möglich, dass eine weitere Session gleichzeitig eine Procedure erstellt, welche die selbige Referenz auf die genannte Tabelle besitzt. Wie ein exklusive Lock, dauert die Share DDL Sperre ebenfalls nur während der Laufzeit der jeweiligen Operation an. Nach Beendigung des Statements wird der Lock automatisch gelöst. Breakable Parse Lock Diese Art von Sperre hält einen Lock auf einen entsprechen Bereich der Shared SQL Area während des Parse-Vorgangs eines Objekts (View, Procedure ). In diesem Bereich sind Informationen zu den vorhandenen Abhängigkeiten auf weitere Datenbankobjekte hinterlegt. Die Sperre kann durchbrochen und folglich invalidiert werden, wenn eine kollidierende DDL- Operation auf die referenzierenden Datenbankobjekte aufgeführt wird. Diese Art von Sperre wird gehalten, solange der oben genannte Bereich nicht aus dem Shared Pool gealtert ist.

5 System Locks Eine Oracle Datenbank verwendet eine Vielzahl von Sperren, um die interne Datenbank und Memory Struktur zu schützen. Diese Mechanismen sind dem Benutzer unzugänglich, da er keine Kontrolle über deren Auftreten oder Dauer hat. Latches Bei Latches handelt es sich um Serialisierungsmechanismen, welche die Zugriffe von mehreren Benutzern auf Datenbankobjekte, Dateien und geteilte Datenbankstrukturen regeln. Ebenfalls verhindern sie das Auftreten von Memory-Korruption, die aufgrund konkurrierender Zugriffe auftreten können. Im Speziellen unterbinden sie ebenfalls das Auftreten folgender Situationen: - Konkurrierende Modifikation der gleichen Daten von verschiedenen Sessions - Lesen von noch nicht festgeschriebenen Daten - Ausaltern von Daten aus der Memory-Struktur während diese verwendet werden Wenn beispielsweise mehrere Prozesse einer Instanz einen Speicherbereich im Shared Pool allokieren möchten, wird der neu reservierte Teil im Memory durch einen Latch geschützt. Somit wird verhindert, dass mehrere Prozesse gleichzeitig auf den entsprechenden Speicherbereich Zugriff bekommen. Ein Latch in einer Oracle Instanz bzw. Datenbank ist immer nur von sehr kurzer Dauer. Wenn beispielweise das Gehalt eines Mitarbeiters verändert wird, ist es nicht unüblich, dass während dieses Vorgangs mehrere tausend von Latches gesetzt und wieder gelöst werden. Die Dauer, die Größe des gesperrten Bereichs und die Wartezeit auf einen gesetzten Latch sind betriebssystemabhängig. Je größer die Anzahl der Sperren, desto geringer die Möglichkeit, ungehindert Daten zu manipulieren. Zur Veranschaulichung: Wenn etwa die Anzahl von Hard Parses steigt, erhöht sich auch die Menge an Latches im Library Cache. Mutexes Ein Mutex verhindert die Ausalterung oder die Korruption von Objekten im Memory, solange diese im Zugriff sind. Diese Art von Lock hat eine Ähnlichkeit zum Latch. Der Unterschied besteht darin, dass dieser nicht eine Gruppe von Objekten sondern nur einen Teil davon schützt. Ein Mutex hat folgende Vorteile gegenüber des Latches: - Dieser reduziert die Konkurrenz verschiedener Sessions bzw. Prozesse, da er nur einzelne Objekte und nicht eine Gruppe davon schützt. Dies bewirkt, dass auf einem bestimmten Speicherbereich mehr Verbindungen konkurrenzfrei agieren können. - Ein Latch verbraucht mehr Memory. Je nach Betriebssystem wird für einen Latch ca B benötigt, für einen Mutex lediglich ein Zehntel davon.

6 Internal Locks Diese haben eine höhere Komplexität als Latches oder Mutexes. Unter folgenden Typen wird unterschieden: - Dictionary cache locks Diese Sperren sind von sehr kurzer Dauer und werden während des Zugriffs oder der Manipulation des Data Dictionary verwendet. Hier wird wie bei den DDL Locks auch zwischen shared und exklusiven Sperren unterschieden. Das Verhalten ähnelt dem der Data Dictionary Locks, nur das diese im Speicher stattfinden. - File und Log Management Locks Diese Locks schützen diverse Dateien einer Oracle Datenbank. Beispielweise verhindert diese Art von Sperre den gleichzeitigen Zugriff mehrerer Prozesse auf ein Control File. Ebenfalls wird durch diesen Typus sichergestellt, dass ein Datafile nicht gleichzeitig an mehreren Datenbanken gemountet sein kann. - Tablespace and Undo Segment Locks Diese Sperre stellt den fehlerfreien Zugriff auf Tablespaces und die Undo Segmente sicher. Es wird damit geregelt, dass nur eine Instanz einer Datenbank in ein einzelnes Segment des Undo Tablespaces schreiben kann. Außerdem werden sie auch dazu verwendet, um über Instanzen hinweg zu bestimmen, ob ein Tablespace den Status Online oder Offline trägt. Locks und Foreign Key Constraints In einem Datenbanksystem wird die Integrität von Daten ebenfalls über Tabellen hinweg sichergestellt. Hierfür werden Beziehungen über Foreign Key Constraints realisiert. Das heißt wenn ein Datensatz in eine Child -Tabelle eingefügt wird, müssen bereits alle referenzierten Daten existieren. Wenn ein Mitarbeiten einer neuen Abteilung über eine ID-Spalte zugewiesen wird, muss bereits der entsprechende Satz der Abteilung inklusive ID vorhanden sein. Umgekehrt ist es ebenfalls der Fall: Wenn eine Abteilung gelöscht wird, darf es keinen zugewiesen Mitarbeiter mehr geben. Diese oben beschriebenen Regeln werden durch einen Lock auf die Child -Tabelle umgesetzt. Bei der Löschung einer Abteilung wird während der Ausführung des DELETE-Statements ein exklusiver Lock auf die referenzierte Tabelle Mitarbeiter gesetzt. Dadurch wird sichergestellt, dass keine neuen Mitarbeiter mit der zuvor gelöschten Abteilung eingefügt werden können. Oftmals wird für die Optimierung dieses Konstrukts ein Index auf die Foreign Key Spalte der Child Tabelle erstellt. Durch dieses zusätzliche Objekt muss die referenzierte Tabelle zur Sicherstellung der Integrität nicht mehr gesperrt werden. Stattdessen wird bei einer Löschung eines Parent-Datensatzes der gelöschte Wert im Foreign-Key-Index vorbelegt. Somit können keine weiteren Daten mit diesem Referenzschlüssel in die Child-Tabelle eingefügt werden. Die Regel der Index Erstellung auf Foreign Key Constraints kann und darf aber nicht generalisiert werden. Jeder Index, der auf der Child Tabelle angelegt wird, verschlechtert die Performance bei Insert- und Update Operationen. Falls sichergestellt werden kann, dass auf der Parent Tabelle selten oder generell keine Daten gelöscht werden, kann in Erwägung gezogen werden, den Index zugunsten der Performance nicht zu erstellen.

7 Deadlocks Ein Deadlock beschreibt eine Situation, in der zwei oder mehrere Verbindungen auf die Lösung einer Sperre warten, aber der jeweils andere diese inne hält. Diese Vorkommnisse werden durch die Oracle Datenbank automatisch erkannt und durch Beendigung einer der Verbindungen gelöst. Der betroffene Benutzer wird über eine entsprechende Meldung auf SQL Ebene informiert. Zusätzlich wird das Auftreten dieser Situation ins Alert.log der Datenbank protokolliert. Hier ein entsprechender Auszug nach dem Auftreten eines Deadlocks: Es wird ebenfalls der Pfad zum entsprechenden Trace-File angegeben, in dem man detailliertere Informationen über die gelöste Sperre findet. Im oberen Teil dieser Dateien befinden sich zunächst generelle Informationen über das System und genauere Merkmale der Session inklusive deren Service, Module, ClientID und Action-Angaben. Darunter befindet sich der sogenannte Deadlock Graph, der Details über die involvierten Sessions aufzeigt. Außerdem sind hier alle gehaltenen und angeforderten Sperren der jeweiligen Verbindungen aufgeführt. Hierbei werden betroffene Objekte mit deren ID in Hexadezimal-Format angegeben. Diese kann man nach einer Konvertierung zum Dezimal-Format als Filterprädikat auf die DBA_OBJECTS verwenden um somit das entsprechende Objekt zu ermitteln.

8 Im nächsten Teil befinden sich genauere Informationen über die weiteren Sessions, die in diesem Deadlock involviert waren. Hier sieht man ebenfalls die ausgeführten Statements inklusiv deren SQL_IDs. Einem Deadlock liegt meistens ein Problem in der Applikation zugrunde. Ein mögliches Szenario könnten verschiedene Applikationsprozesse bilden, die einen gegenläufigen Abarbeitungszyklus besitzen und sich demzufolge gegenseitig bei der Abarbeitung ihrer Queues behindern würden. Da das Auftreten solch einer Situation nicht allein seitens der Datenbank unterbunden werden kann, ist hier eine Zusammenarbeit mit den entsprechenden Applikationsentwicklern gefordert.

9 Erkennung und Analyse von Lock-Situationen Zur Identifizierung und Klassifizierung der Sperren bei einem Problemfall stellt die Oracle Datenbank verschiedene hilfreiche Views zur Verfügung. Hier ein kurzer Auszug der Wichtigsten: GV$LOCK In dieser Abfrage werden alle aktuell gesetzten Sperren der Datenbank aufgelistet. Über die Spalte TYPE wird klassifiziert, um welchen Lock es sich handelt. Außerdem wird in der Spalte BLOCK dargestellt, ob dieser Vorgang einen weiteren Prozess blockiert. GV$LOCK_TYPE Hierin werden alle Typen dargestellt, welche die Spalte TYPE der GV$LOCK annehmen kann. Diese Klassen werden hier mit Beschreibungen und entsprechenden Abkürzungen gelistet. GV$LOCKED_OBJECT Es werden nur Ergebnisse angezeigt, wenn ein weiterer Prozess auf eine gesetzte Sperre wartet. Es werden ebenfalls Identifikationsmerkmal wie die SESSION_ID und die zugehörige OBJECT_ID aufgeführt. GV$LATCH Dort ist eine statistische Übersicht aller Latches in der Datenbank zu sehen. Gruppiert sind diese Daten nach den jeweiligen Typ. V$WAIT_CHAINS Bei der Selektion dieser View werden Informationen über blockierte Sessions anzeigt. Eine Wait Chain ist eine Kette von Verbindungen, die sich aneinander gereiht blockieren. Jede Zeile dieser Abfrage repräsentiert eine blockierte und eine blockende Session. DBA_DML_LOCKS Diese View zeigt alle DML Locks inklusive einiger Session Informationen an. DBA_BLOCKERS Hier werden Verbindungen angezeigt, wenn diese Sperren auf Datenbankobjekte inne halten und somit andere Session blockieren. Falls diese Verbindung ebenfalls auf einen Lock wartet und somit Teil einer Wait Chain ist, wird diese nicht aufgeführt. Bei RAC-Umgebungen werden hier nur Blocker der aktuellen Instanz angezeigt. Detaillierte Abfrage Um eine ganzheitliche Analyse eines Systems durchführen zu können und im Fehlerfall entsprechende Informationen erheben zu können, muss man über mehrere Views und Tabelle selektieren. Im Anhang befindet sich ein SQL-Statement, das bei einer Lock-Problematik diverse Informationen zurückgibt - Unter anderem um welche Sperre es sich handelt und welche Objekte involviert sind. Darüber hinaus wird zusätzlich ein Statement ausgegeben, mit dem sich die blockierende Session beenden lässt.

10 Fazit Grundsätzlich sind Sperren in einer Datenbank nötig und werden zur Umsetzung diverser Regeln eines relationalen Datenbanksystem benötigt. Falls jedoch Tabelle-Sperren vermehrt auftreten und zum Problem werden, muss eine ausgiebige Ursachenanalyse betrieben werden. Hierbei kann es vielerlei Ursachen geben, wie Probleme bei der Serialisierung von Applikationsprozessen. Ebenfalls sind strukturelle Ungereimtheiten im Datenbankmodell, beispielsweise ein störender Constraint oder andererseits ein fehlender Index auf dem Foreign Key, eine potenzielle Problemquelle. Auch nachdem eine bestehende Lock-Problematik behoben scheint, kann davon ausgegangen werden, dass die Lösung von Dauer ist. Sobald sich die Bedingungen oder die Anforderungen an das Datenbanksystem ändern, verschiebt sich auch die Belastung. Daraus folgen die Verschiebung des Heatpoints eines Systems und auch die Bereiche für mögliches Auftreten von diversen Locks. Kontaktadresse: Tobias Deml Trivadis GmbH Lehrer-Wirth-Str. 4 D München Telefon: Fax: tobias.deml@trivadis.com Internet:

11 Anhang SELECT S1.sid "blocking SID", S1.username "blocking user", S1.module "blocking Module", TRIM(S1.action) "blocking Action", S2.sid "blocked SID", S2.module "blocked Module", TRIM(S2.action) "blocked Action", L2.ctime "lock waiting time [s]", S1.event "blocking session waits for", S2.event "blocked session waits for", DECODE(L1.lmode, 0, L1.lmode ' - no lock', 1, L1.lmode ' - N/A', 2, L1.lmode ' - row shared lock (SS)', 3, L1.lmode ' - row exclusive lock (SX)', 4, L1.lmode ' - object shared lock (S)', 5, L1.lmode ' - object shared / row exclusive lock (SSX)', 6, L1.lmode ' - object exclusive / row exclusive lock (X)', L1.lmode) "lock mode blocking session", DECODE(L2.request, 0, L2.request ' - no lock', 1, L2.request ' - N/A', 2, L2.request ' - row shared lock (SS)', 3, L2.request ' - row exclusive lock (SX)', 4, L2.request ' - object shared lock (S)', 5, L2.request ' - object shared / row exclusive lock (SSX)', 6, L2.request ' - object exclusive / row exclusive lock (X)', L2.request) "lock request blocked session", L1.type ' - ' LT.name "lock type", LT.description "lock type description", ( SELECT SQLT.sql_text FROM GV$SQLText SQLT WHERE SQLT.piece = 0 AND SQLT.address = S2.sql_address AND SQLT.hash_value = S2.sql_hash_value) "blocked session SQL-Text", ( SELECT LISTAGG(AO.object_name, ', ') WITHIN GROUP (ORDER BY AO.object_name) FROM All_Objects AO, GV$Locked_Object LO, GV$Lock L3 WHERE AO.object_id = LO.object_id AND LO.xidSqn = L3.id2 AND LO.session_id = L3.sid AND L3.block = 1 AND L3.sid = L1.sid) "locked object(s)", ( SELECT AO.object_name FROM All_Objects AO WHERE AO.object_id = S2.row_wait_obj#) "waiting object", ( SELECT 'ALTER SYSTEM KILL SESSION ''' S3.sid ',' S3.serial# inst_id ''' IMMEDIATE;' FROM GV$Session S3 WHERE S3.sid = S1.sid AND ROWNUM = 1) "Kill SQL" FROM GV$Session S2, GV$Lock L2, GV$Lock_Type LT, GV$Lock L1, GV$Session S1 WHERE S2.sid = L2.sid AND L2.request > 0 AND S2.blocking_session = S1.sid AND LT.type = L1.type AND L1.BLOCK = 1 AND L1.sid = S1.sid;

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 6 Locks & Latches Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. Einführung Locks & Latches 2. Locks (Sperren) 3. Modi & Levels

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 Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Kapitel 7: Referentielle Integrität

Kapitel 7: Referentielle Integrität Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen

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

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

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

Data Dictionary for Oracle

Data Dictionary for Oracle Data Dictionary for Oracle Programm von QUEST SOFTWARE um Daten über die Struktur einer Oracle9i Datenbank und deren Objekte abzufragen Timo Meyer Seite 1 von 18 OCP DBA 9i 2005-07-05 Seite 1 von 18 Agenda

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien

3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien CREATE TABLE SPEND_STAT ( S_STATUS VARCHAR2(1), STAT_TXT VARCHAR2(15), PRIMARY KEY (S_STATUS) ENABLE ) ; 3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien DDL:

Mehr

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z

Mehr

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17 Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren Aufgabe 1 10 = 5 + 5 Punkte) DDL Relationenmodell eer-diagramm /10) Gegeben sei das folgende SQL-DDL-Skript zur Generierung eines Oracle-Datenbankschemas:

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13 Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

Es geht also um die sogenannte SQL- Data Definition Language.

Es geht also um die sogenannte SQL- Data Definition Language. In diesem Abschnitt werden wir uns die SQL Befehle ansehen, mit denen ein sogenanntes Datenbankschema angelegt, gepflegt und auch wieder gelöscht werden kann. Es geht also um die sogenannte SQL- Data Definition

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung Transaktionen:

Mehr

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition: 1 Referentielle Aktionen Gegeben sei folgende Datendefinition: [10 P.] CREATE TABLE Wissenschaftler( SVNr int PRIMARY KEY, Vorname varchar(25) NOT NULL, Nachname varchar(25) NOT NULL, Gehalt int NOT NULL

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

Als Datenbanksystem wird ein Datenbankverwaltungssystem zusammen mit einer oder mehrerer Datenbanken bezeichnet.

Als Datenbanksystem wird ein Datenbankverwaltungssystem zusammen mit einer oder mehrerer Datenbanken bezeichnet. Datenbankverwaltungssystem (DBVS/DBMS) Ein Datenbankverwaltungssystem (DBVS, data base management system : DBMS) ist die Gesamtheit aller Programme (Ressourcen) zur Erzeugung, Verwaltung (einschl. Daten-

Mehr

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen Welche Bestellungen hat Kunde x aufgegeben? Welche Kunden haben noch nie bestellt? Wer hat welche Bestellungen von welchen Kunden aufgenommen? S(tructured)Q(uery)L(anguage)

Mehr

Prakt. Datenbankprogrammierung. Sommersemester I,9: Datenmanipulation. Daten-Manipulations-Sprache. Das INSERT-Statement

Prakt. Datenbankprogrammierung. Sommersemester I,9: Datenmanipulation. Daten-Manipulations-Sprache. Das INSERT-Statement Prakt. Datenbankprogrammierung Sommersemester 2005 I,9: Datenmanipulation Daten-Manipulations-Sprache DML-Statements werden ausgeführt bei: Hinzufügen von Datensätzen Modifizieren von Datensätzen Löschen

Mehr

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke) Datenbank Objekte (, Segemente,, Blöcke) 5. Juni 2007 Datenbank Objekte (, Segemente,, Blöcke) Datenbank Objekte (, Segemente,, Blöcke) Aufbau eines Datenblocks Zeilenverkettung und -verschiebung Freispeicherverwaltung

Mehr

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

Mehr

4.14 Integrität und Trigger

4.14 Integrität und Trigger 4.14 Integrität und Trigger Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen können

Mehr

Technische Background Info und Trivadis Scripts

Technische Background Info und Trivadis Scripts Betrifft Autor Art der Info Quelle ITL-Waits identifizieren mit Oracle9i 9.2.x Andri Kisseleff (andri.kisseleff@trivadis.com) Technische Background Info und Trivadis Scripts Aus dem NF9i-DBA Kurs und TUN-Kurs

Mehr

Oracle Virtual Private Database

Oracle Virtual Private Database Oracle Virtual Private Database Rolf Wesp Consultant Application Development Rolf.Wesp@trivadis.com Düsseldorf, September 2008 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg

Mehr

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15 Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von

Mehr

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints Prakt. Datenbankprogrammierung Sommersemester 2005 I,11: Verwendung von Constraints Was sind Constraints? Constraints stellen Regeln auf Tabellenebene sicher. Constraints verhindern das Löschen aus einer

Mehr

Folien php/mysql Kurs der Informatikdienste

Folien php/mysql Kurs der Informatikdienste Folien php/mysql Kurs der Informatikdienste 1. Einführung in die Datenbank MySQL Kursbeispiel und Kursziele 1.1 Das Kursbeispiel: eine kleine Personalverwaltung 1.2 Was brauchen wir? 1.3 Ziele Kurs AEMS1,

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

Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe

Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe MySQL 4, 5 Kapitel 16: Fremdschlüssel Gliederung 1 Gliederung 1 Fremdschlüssel sichern die Referenzielle Integrität voneinander abhängiger Tabellen. Um Fremdschlüssel definieren zu können, müssen Sie die

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

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

Oracle Datenbank - Recovery

Oracle Datenbank - Recovery Oracle Datenbank - Recovery H.-G. Hopf Georg-Simon-Ohm Fachhochschule Nürnberg Datenbank-Recovery / 1 Η. G.Hopf / 10.04.2003 Inhaltsverzeichnis Transaktionsablauf Prozess - Recovery Instanz - Recovery

Mehr

Performance in der Oracle Datenbank von Anfang an

Performance in der Oracle Datenbank von Anfang an Performance in der Oracle Datenbank von Anfang an Marco Mischke, 26.04.2018 DOAG Regional Agenda Tabellen Indizes Ausführungspläne SQL vs PL/SQL Tabellen Zu 99% werden Standard Strukturen zur Speicherung

Mehr

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 5 Import von Adressen nach Firmen und Personen Import von Adressen nach Firmen und Personen - 2 - Inhalt Ausgangssituation

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

7 DCL (Data Control Language)

7 DCL (Data Control Language) 7 DCL (Data Control Language) 7 In diesem Kapitel werden wir die der SQL-Befehle für Transaktionen und für die Vergabe von Privilegien kennen lernen. Eine der wichtigsten Eigenschaften einer Datenbank

Mehr

Inhaltsverzeichnis. Vorwort... 11

Inhaltsverzeichnis. Vorwort... 11 Vorwort.................................................. 11 1 Das Problem mit dem Problem.............................. 13 1.1 SQL Die Sprache des Orakels.............................. 14 1.2 Die ersten

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

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT

Mehr

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

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

Die InnoDB Storage Engine. Handy aus?

Die InnoDB Storage Engine. Handy aus? Die InnoDB Storage Engine Kristian Köhntopp Handy aus? InnoDB: Vorteile, Nachteile Vorteile: Transaktionen MVCC Row Locks OLTP Concurrency Crash-Recovery Nachteile: Höherer Platzbedarf Höherer Speicherbedarf

Mehr

Donnerstag, 10. November h00, Musensaal Database. LogMiner im Einsatz. Marco Patzwahl MuniQSoft GmbH, Unterhaching b.

Donnerstag, 10. November h00, Musensaal Database. LogMiner im Einsatz. Marco Patzwahl MuniQSoft GmbH, Unterhaching b. Donnerstag, 10. November 2005 15h00, Musensaal LogMiner im Einsatz Marco Patzwahl MuniQSoft GmbH, Unterhaching b. München Schlüsselworte: LogMiner, Analyse der Redologdateien, Redolog Audit, fehlerhafte

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

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

Microsoft Access Relationen. Anja Aue

Microsoft Access Relationen. Anja Aue Microsoft Access Relationen Anja Aue 10.11.16 Beziehungen zwischen Tabellen Verknüpfung zwischen zwei Tabellen. Darstellung von Beziehungen zwischen Objektgruppen. Verweis in einer Tabelle auf den Datensatz

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

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

IBM DB2 für Unix/Linux/Windows SQL Grundlagen

IBM DB2 für Unix/Linux/Windows SQL Grundlagen IBM DB2 für Unix/Linux/Windows SQL Grundlagen Seminarunterlage Version: 2.12 Version 2.12 vom 22. Mai 2017 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer DB-Datenbanksysteme DB-13 043-SQL-DML 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache

Mehr

Extreme Performance mit Oracle Times Ten

Extreme Performance mit Oracle Times Ten Extreme Performance mit Oracle Times Ten Agenda 1. Architektur und Übersicht 2. Details der Caching-Technologie 3. Skalierbarkeit, Antwortzeiten, Benchmarkergebnisse 4. Times Ten für die Oracle-Datenbank

Mehr

Übung 01 Tabellen erstellen

Übung 01 Tabellen erstellen UEB-01-1 Übung 01 Tabellen erstellen Die folgende Musterrechnung dokumentiert eine Miniwelt "Rechnung" in einer Firma. 1. Welche Objekte und Beziehungen lassen sich daraus ableiten? 2. Erstellen Sie ein

Mehr

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse

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

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

Erzeugen von Constraints

Erzeugen von Constraints Erzeugen von Constraints Was sind Constraints? Durch Constraints werden Regeln auf einem bestimmtem Tabellen-Level erzwungen. Die folgenden Constraint-Typen sind in Oracle integriert: NOT NULL UNIQUE Key

Mehr

Datenzugriffskomponente mit JPA 2.1

Datenzugriffskomponente mit JPA 2.1 Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der

Mehr

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn DOAG Regionaltreffen TABLE REORG Klaus Reimers Leiter Beratung & Entwicklung, ORDIX AG, Paderborn kr@ordix.de Agenda Reorganisationsgründe - Extents - Blockfüllgrad - Migrated Rows Workarounds - Storage

Mehr

quick documentation Inhalt Datenmodellierung

quick documentation Inhalt Datenmodellierung quick documentation TO: FROM: SUBJECT: ARND.SPIERING@AS-INFORMATIK.NET QS ORACLE SPATIAL DATENBANKEN DATE: 14.08.2011 Inhalt Dieses Dokument beschreibt Ansätze zur Datenmodellierung, Qualitätssicherung

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

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Mittwoch, 9. November 2005 13h00, Bruno-Schmitz-Saal 18. Deutsche ORACLE-Anwenderkonferenz XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Volker Husemann Thyssen Krupp Stahl

Mehr

Oracle Streams Doag Vortrag Claus Cullmann

Oracle Streams Doag Vortrag Claus Cullmann Oracle Streams Doag Vortrag 27.10.11 Claus Cullmann Oracle Streams Doag Vortrag 27.10.11 Claus Cullmann Oracle Streams Doag Vortrag 27.10.11 Claus Cullmann Anwendungen Datenströme Überblick Oracle Streams

Mehr

9. Sicherheitsaspekte

9. Sicherheitsaspekte 9. Sicherheitsaspekte Motivation Datenbanken enthalten häufig sensible Daten (z.b. personenbezogene oder unternehmenskritische) Vielzahl verschiedener Benutzer hat Zugriff (z.b. Anwendungen, Mitarbeiter,

Mehr

Oracle AWR und ASH Analyse und Interpretation

Oracle AWR und ASH Analyse und Interpretation Oracle AWR und ASH Analyse und Interpretation Seminarunterlage Version: 2.02 Version 2.02 vom 11. März 2013 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

APEX Datenverwaltung Wo sind die Daten gerade?

APEX Datenverwaltung Wo sind die Daten gerade? APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst Trivadis GmbH München Schlüsselworte: APEX, Sessionverwaltung, Dynamic Actions Einleitung Eine APEX-Anwendung wird erst durch zusätzliche

Mehr

S(tructured)Q(uery)L(anguage)

S(tructured)Q(uery)L(anguage) S(tructured)Q(uery)L(anguage) Welche Kunden haben wir? Welche Kunden wohnen in Chicago? Welche Bestellung wurden zwischen dem 01.03.2006 und dem 31.03.2006 aufgegeben? Leibniz Universität IT Services Anja

Mehr

6. Updates in SQL 6-1. Inhalt. 1. Update-Kommandos in SQL. 2. Transaktionen. 3. Gleichzeitige Zugriffe

6. Updates in SQL 6-1. Inhalt. 1. Update-Kommandos in SQL. 2. Transaktionen. 3. Gleichzeitige Zugriffe 6. Updates in SQL 6-1 Inhalt 1. Update-Kommandos in SQL 2. Transaktionen 3. Gleichzeitige Zugriffe 6. Updates in SQL 6-2 Updates in SQL: Übersicht SQL-Befehle zur Änderung des DB-Zustands: 1. INSERT: Einfügung

Mehr

Üben von DDL und DML. Ergebnis:

Üben von DDL und DML.   Ergebnis: SQL DDL Üben von DDL und DML https://www.jdoodle.com/execute-sql-online Ergebnis: Befehlsgruppen in SQL DDL Data Definition Language DML Data Manipulation Language CREATE: Tabellen anlegen DROP: Tabellen

Mehr

Online Table Shrink. Freigabe von ungenutztem Speicherplatz. Autor: Ralf Durben, ORACLE Deutschland GmbH

Online Table Shrink. Freigabe von ungenutztem Speicherplatz. Autor: Ralf Durben, ORACLE Deutschland GmbH Online Table Shrink Freigabe von ungenutztem Speicherplatz Autor: Ralf Durben, ORACLE Deutschland GmbH DOAGNews Q2_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere

Mehr

Transaktionen. Concurrency Management in MS SQL Server

Transaktionen. Concurrency Management in MS SQL Server Transaktionen Concurrency Management in MS SQL Server Transaktionen in SQL Server SQL Server bietet die Möglichkeit, eine Reihe von Datenbankoperationen (Änderungen) in einem logischen Vorgang zu gruppieren

Mehr

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Transaktionen in Praxis. Dr. Karsten Tolle Vorl Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction

Mehr

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD Vorwort zur vierten Auflage 11 Vorwort zur dritten Auflage 13 Vorwort zur zweiten Auflage 15 Vorwort zur ersten Auflage 17 Hinweise zur CD 19 1 Datenbanken und Datenbanksysteme 21 1.1 Zentralisierung der

Mehr

SQL - Datenbankdesign - Aufbau

SQL - Datenbankdesign - Aufbau SQL - Datenbankdesign - Aufbau Kompakt-Intensiv-Training Unsere fünftägige ANSI SQL Schulung vermittelt Ihnen alle nötigen Kenntnisse zur Erstellung von Datenauswertungen und Programmierung wiederkehrender

Mehr

Aufgabe 1: Integrität

Aufgabe 1: Integrität Aufgabe 1: Integrität Gegeben sei das folgende Schema: Personal: (PNR, Name, Gehalt, Abt, Vorges) a) Geben Sie das CREATE TABLE Statement an, um die Tabelle Personal zu erzeugen. Folgende Integritätsbedingungen

Mehr

Datenbanken 1. Sommersemester Übung 8

Datenbanken 1. Sommersemester Übung 8 Datenbanken 1 Sommersemester 2017 Übung 8 (v2.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll

Mehr

SQL. Datendefinition

SQL. Datendefinition SQL Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer oder logischer Natur sein. Das folgende Kapitel beschäftigt sich mit der

Mehr

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................

Mehr

Ablaufkontrolle in der Datenbank bei externem Scheduling

Ablaufkontrolle in der Datenbank bei externem Scheduling Ablaufkontrolle in der Datenbank bei externem Scheduling Dr. Kurt Franke Cellent Finance Solutions GmbH Stuttgart Schlüsselworte Batch-Verarbeitung, Scheduling, Parallelverarbeitung, Locks Einleitung Wenn

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

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning. Kurs Oracle 9i Performance Tuning Teil 7 UNDO-Management Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 23 Seite 1 von 23 1. 2. Nutzung des Rollback Segments 3. 4. 5. Größe von UNDO- TBS berechnen 6.

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

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Isolationsstufen für Transaktionen. Dr. Karsten Tolle Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten 12.1.2004 Änderungsoperationen bei SQL (Daten) Einfügen neuer Tupel (schon bekannt) INSERT INTO Table (Spalte1, Spalte2)

Mehr

Prozessarchitektur einer Oracle-Instanz

Prozessarchitektur einer Oracle-Instanz 6. Juni 2008 Inhaltsverzeichnis Oracle Instanz 1 Oracle Instanz 2 3 Redo Log Buffer Shared Pool Java Pool & Large Pool Oracle Instanz Eine Oracle-Instanz ist Hauptbestandteil des Oracle Datenbank Management

Mehr