11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
der Universität Oldenburg
Allgemeine Technologien II
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
SQL als Abfragesprache
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 Tabellen In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information,
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
PL/SQL – Die prozedurale Erweiterungssprache Zu SQL
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
DVG Klassen und Objekte
JDBC EDV JDBC.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
objekt-relationale Datenbanken
... und alles was dazugehört
Visualisierung objektrelationaler Datenbanken
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Datenbanken?.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
SQL Überblick Abfragen aus einer Tabelle
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
Freiwillige Feuerwehr der Stadt Perg
Aggregatsfunktion SQL = Structured Query Language.
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Verdichten von Daten mit Gruppenfunktionen
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
3 Einzelzeilen-Funktionen. 3-2 Ziele Verschiedene Typen von Funktionen, die in SQL verfügbar sind Verwendung von numerischen, Zeichen- und Datumsfunktionen.
2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT.
Einführung Schedule: Timing Topic 60 minutes Lecture 60 minutes Total.
Integritätsbedingungen (Constraints)
10 Sichten (Views) Ziele Verständnis einer View Erzeugen einer View Lesen von Daten durch eine Sicht Ändern der Definition von Views Einfügen, Ändern.
7 Verändern von Daten. 9-2 Ziele Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Einfache SQL-Befehle Schedule: Timing Topic 40 minutes Lecture
SQL-Prozeduren Charakteristika: Kapselung von SQL-Anweisungen in Prozeduren, die wiederholt aufgerufen werden können. Dazu Verbergen parametrisierter SQL-
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Eine Zeitreise mit Oracle 10g: Praktisches mit Flashback DOAG Regionaltreffen/Gütersloh Petra Flach Ventara AG.
DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.
Thomas Tretter, 10. Februar 2004Oracle Label Security1 Oracle Label Security (fine grained access control) 10. Februar 2004.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Create Table, Rechte und Rollen
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
(Structured Query Language)
 Präsentation transkript:

11 Verwaltung von Abhängigkeiten

Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte von Änderungen eines DB-Objekts auf gespeicherte Prozeduren und Funktionen Verwaltung prozeduraler Abhängigkeiten Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte von Änderungen eines DB-Objekts auf gespeicherte Prozeduren und Funktionen Verwaltung prozeduraler Abhängigkeiten

Verständnis der Abhängigkeiten View Procedure Function Package Specification Package Body Database Trigger View Procedure Function Package Specification Package Body Database Trigger Table View Sequence Synonym Procedure Function Package Specification Table View Sequence Synonym Procedure Function Package Specification Referenzierte Objekte Abhängige Objekte

Abhängigkeiten AbhängigesObjekt xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv Prozedur View/Prozedur DirekteAbhängigkeit Abhängiges und referenziertesObjekt ReferenziertesObjekt Tabelle DirekteAbhängigkeit IndirekteAbhängigkeit

Lokale Abhängigkeiten xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView INVALIDINVALIDINVALID Lokale Referenz Definition geändert ProzedurTabelle vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv

xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView VALIDINVALIDINVALID Fern-Referenz Definition geändert ProzedurTabelle vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv Netzwerk Abhängigkeiten von Ferndatenbanken

xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv Prozedur ADD_EMP Prozedur QUERY_EMP Tabelle EMP View NEW_EMP EMPNO ENAME 7839 KING 7698 BLAKE 7782 CLARK 7566 JONES EMPNO ENAME HIREDATE JOB 7839 KING17-NOV-81PRESIDENT 7698 BLAKE01-MAY-81MANAGER 7782 CLARK09-JUN-81MANAGER 7566 JONES02-APR-81MANAGER Szenario lokaler Abhängigkeiten

SQL> SELECT name, type, referenced_name, referenced_type 2 FROM user_dependencies 3 WHERE referenced_name IN ('EMP', 'NEW_EMP' ); SQL> SELECT name, type, referenced_name, referenced_type 2 FROM user_dependencies 3 WHERE referenced_name IN ('EMP', 'NEW_EMP' ); NAME TYPE REFERENCED_NAME REFERENCED_TYPE QUERY_EMP PROCEDURE EMP TABLE ADD_EMP PROCEDURE NEW_EMP VIEW NEW_EMP VIEW EMP TABLE NAME TYPE REFERENCED_NAME REFERENCED_TYPE QUERY_EMP PROCEDURE EMP TABLE ADD_EMP PROCEDURE NEW_EMP VIEW NEW_EMP VIEW EMP TABLE Anzeige direkter Abhängigkeiten aus USER_DEPENDENCIES

Anzeige direkter und indirekter Abhängigkeiten SQL> EXECUTE deptree_fill (‘TABLE’, ‘SCOTT’, ‘EMP’) PL/SQL procedure successfully completed. SQL> EXECUTE deptree_fill (‘TABLE’, ‘SCOTT’, ‘EMP’) PL/SQL procedure successfully completed. 1. Ausführen des Skripts UTLDTREE.SQL 2. Ausführen der Prozedur DEPTREE_FILL

SQL> SELECT nested_level, type, name 2 FROM deptree 3 ORDER BY seq#; NESTED_LEVELTYPE NAME TABLE EMP 1VIEW NEW_EMP 2PROCEDURE ADD_EMP 1PROCEDURE QUERY_EMP SQL> SELECT * 2 FROM ideptree; DEPENDENCIES TABLE SCOTT:EMP VIEW SCOTT.NEW_EMP PROCEDURE SCOTT.ADD_EMP PROCEDURE SCOTT.QUERY_EMP SQL> SELECT nested_level, type, name 2 FROM deptree 3 ORDER BY seq#; NESTED_LEVELTYPE NAME TABLE EMP 1VIEW NEW_EMP 2PROCEDURE ADD_EMP 1PROCEDURE QUERY_EMP SQL> SELECT * 2 FROM ideptree; DEPENDENCIES TABLE SCOTT:EMP VIEW SCOTT.NEW_EMP PROCEDURE SCOTT.ADD_EMP PROCEDURE SCOTT.QUERY_EMP Views DEPTREE und IDEPTREE

Tabelle EMP Prozedur REDUCE_SAL Prozedur RAISE_SAL Ein weiteres Szenario lokaler Abhängigkeiten EMPNO ENAME HIREDATE JOB 7839 KING 07-NOV-81 PRESIDENT 7698 BLAKE01-MAY-81MANAGER 7782 CLARK 09-JUN-81MANAGER 7566 JONES02-APR-81MANAGER xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv

Tabelle EMP Prozedur QUERY_EMP Public Synonym EMP X Ein Szenario lokaler Namensabhängigkeiten EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvv vvvvvvxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvvvvv

Abhängigkeiten von Ferndatenbanken Definition geändert Netzwerk xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView VALIDINVALIDINVALID Fern-Referenz ProzedurTabelle xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv

Konzepte der Abhängigkeiten von Ferndatenbanken Fern-Abhängigkeiten werden durch den vom Benutzer gewählten Modus geregelt: TIMESTAMP-Prüfungoder SIGNATURE-Prüfung Fern-Abhängigkeiten werden durch den vom Benutzer gewählten Modus geregelt: TIMESTAMP-Prüfungoder SIGNATURE-Prüfung

Parameter für den Modus der Abhängigkeiten von Ferndatenbanken Als init.ora-Parameter REMOTE_DEPENDENCIES_MODE = wert Auf Systemebene ALTER SYSTEM SET REMOTE_DEPENDENCIES_MODE = wert Auf Sitzungsebene ALTER SESSION SET REMOTE_DEPENDENCIES_MODE = wert Als init.ora-Parameter REMOTE_DEPENDENCIES_MODE = wert Auf Systemebene ALTER SYSTEM SET REMOTE_DEPENDENCIES_MODE = wert Auf Sitzungsebene ALTER SESSION SET REMOTE_DEPENDENCIES_MODE = wert

xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv ProzedurView VALIDINVALIDINVALID Definition geändert ProzedurTabelle vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv xxxxxxxxxxxxxx vvvvvvvvvvvvvv Netzwerk 1 2 Abhängigkeiten von Ferndatenbanken und Timestamp-Modus: Szenario

Fern-Prozedur B kompiliert um 8:00 VALID Fern-Prozedur B kompiliert

Lokale Prozedur A kompiliert um 9:00 Lokale Prozedur A VALID Fern-Prozedur B kompiliert VALID A kompiliert B kompiliert

Prozedur A wird aufgerufen um 10:00 ( Prozedur B wurde nicht rekompiliert seit 8:00) Lokale Prozedur A VALID Fern-Prozedur B kompiliert VALID A kompiliert B kompiliert Zeitstempel-vergleich

Lokale Prozedur A VALID Fern-Prozedur B kompiliert INVALID zur Startzeit A kompiliert B kompiliert...paßt nicht Zeitstempel-vergleich... Prozedur A wird aufgerufen um 12:00 (Prozedur B wurde rekompiliert um 11:00 (Lokalzeit) ) 

Signature Modus Die Signatur einer Prozedur beinhaltet: den Namen der Prozedur die Datentypen der Parameter die Modi der Parameter Die Signatur einer Prozedur beinhaltet: den Namen der Prozedur die Datentypen der Parameter die Modi der Parameter

Rekompilieren einer PL/SQL-Programmeinheit Implizit durch automatische Rekompilierung zur Laufzeit Explizit durch Rekompilierung mit der Anweisung ALTER Implizit durch automatische Rekompilierung zur Laufzeit Explizit durch Rekompilierung mit der Anweisung ALTER ALTER PROCEDURE [SCHEMA.] prozedur_name COMPILE ALTER FUNCTION [SCHEMA.] funktions_name COMPILE ALTER PROCEDURE [SCHEMA.] prozedur_name COMPILE ALTER FUNCTION [SCHEMA.] funktions_name COMPILE ALTER PACKAGE [SCHEMA.] package_name COMPILE [PACKAGE] ALTER PACKAGE [SCHEMA.] package_name COMPILE SPECIFICATION ALTER PACKAGE [SCHEMA.] package_name COMPILE BODY ALTER PACKAGE [SCHEMA.] package_name COMPILE [PACKAGE] ALTER PACKAGE [SCHEMA.] package_name COMPILE SPECIFICATION ALTER PACKAGE [SCHEMA.] package_name COMPILE BODY ALTER TRIGGER trigger_name [ENABLE|DISABLE|COMPILE]

Rekompilieren von Prozeduren rozeduren und Funktionen wird erfolglos sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolglos sein, wenn: Das referenzierte Objekt gelöscht oder umbenannt wurde Der Datentyp der referenzierten Spalte geändert wurde Die referenzierte Spalte gelöscht wurde Ein referenzierter View durch einen mit unterschiedlichen Spalten ersetzt wurde Die Parameterliste einer referenzierten Prozedur modifiziert wurde rozeduren und Funktionen wird erfolglos sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolglos sein, wenn: Das referenzierte Objekt gelöscht oder umbenannt wurde Der Datentyp der referenzierten Spalte geändert wurde Die referenzierte Spalte gelöscht wurde Ein referenzierter View durch einen mit unterschiedlichen Spalten ersetzt wurde Die Parameterliste einer referenzierten Prozedur modifiziert wurde

Rekompilieren von Prozeduren rozeduren und Funktionen wird erfolgreich sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolgreich sein, wenn: Die referenzierte Tabelle neue Spalten hat Der Datentyp referenzierter Spalten nicht geändert wurde Der PL/SQL-Body einer referenzierten Prozedur modifiziert und erfolgreich rekompiliert wurde rozeduren und Funktionen wird erfolgreich sein, wenn: Rekompilierung abhängiger Prozeduren und Funktionen wird erfolgreich sein, wenn: Die referenzierte Tabelle neue Spalten hat Der Datentyp referenzierter Spalten nicht geändert wurde Der PL/SQL-Body einer referenzierten Prozedur modifiziert und erfolgreich rekompiliert wurde

Rekompilieren von Prozeduren Minimieren von Abhängigkeitsfehlern durch: Record-Deklaration mit dem Attribut %ROWTYPE Variablen-Deklaration mit dem Attribut %TYPE Abfragen mit der Notation SELECT * Verwendung einer Spaltenliste bei INSERT-Anweisungen Minimieren von Abhängigkeitsfehlern durch: Record-Deklaration mit dem Attribut %ROWTYPE Variablen-Deklaration mit dem Attribut %TYPE Abfragen mit der Notation SELECT * Verwendung einer Spaltenliste bei INSERT-Anweisungen

Packages und Abhängigkeiten Prozedur A deklaration Package-Spezifikation Package-Body Prozedur A definition Standalone-Prozedur VALID Definition geändert

Packages und Abhängigkeiten Prozedur A deklaration Package-Spezifikation Package-Body Prozedur A definition Standalone-Prozedur INVALID VALID Definitiongeändert

Zusammenfassung Vermeidung von Produktionsstörungen durch: Überblick über prozedurale Abhängigkeiten Manuelle Rekompilierung, sobald die Definition von Datenbankobjekten geändert wurde Vermeidung von Produktionsstörungen durch: Überblick über prozedurale Abhängigkeiten Manuelle Rekompilierung, sobald die Definition von Datenbankobjekten geändert wurde

Übungsüberblick Verwaltung von Objektabhängigkeiten