[Begriffserklärung] Repository (Oracle)

Kerwin

Erfahrenes Mitglied
Hallo,

ich wollte einmal nachfragen, was denn genau ein Repository macht und wozu es dient. Wörtlich übersetzt bedeutet es ja "Lager". Doch was wird darin abgelagert? Tabellen etc werden ja in einem Tablespace abgelegt.
Wie ist der Zusammenhang zwischen einem Repository und dem Schema eines Benutzers?

Ich hoffe mir kann da einer helfen.

Grüße
Kerwin
 
Hallo Kerwin,

du hast Recht, Tabellen werden in Tablespaces abgelegt.
Aber die Information, welche Tabellen wo existieren, welche Spalten sie besitzen, welche Constraints auf den Tabellen existieren, welche Indizes usw., all diese Informationen werden bei Oracle in einem "Data Dictionary" abgelegt. Einmal zur Verwaltung für die Datenbank selbst, die so alles über sich weiss und zum anderen auch für den User, der diese (Meta)-Daten auch abrufen kann.

Beispielsweise folgende Queries:

SQL:
SELECT table_name 
  FROM user_tables
 WHERE ...

zeigt die alle Tabellen an, die dir gehören (owner).

oder:
SQL:
SELECT name, type, referenced_name, referenced_type
  FROM user_dependencies
 WHERE ...

Diese Query zeigt dir Abhängigkeiten der verschiedenen Oracle-Objekte an. Z.B. eine Stored-Procedure in einem Package greift auf eine View zu, diese wiederum greift auf eine Tabelle zu.
Natürlich "sieht" man diese Informationen, wenn man sich die Definition des Packages anschaut oder die View, aber so hat diese Information einen Mehrwert für die Datenbank.
Sie weiss in diesem Falle bspw. welche Objekte beim Ändern der Tabellenstruktur eventuell neu kompiliert werden müssen oder aber ungültig werden ( in dem Fall die View oder di Stored Procedure).

Zurück zu deiner Frage:
Dieses von Oracle genannte "Data Dictionary" ist also im Prinzip ein Repository.
Der Begriff Repository selbst wird im Oracle-Umfeld ein wenig anders benutzt, wenn auch der Charakter ähnlich oder auch gleich ist.

Es gibt z.B.für den Enterprise-Manager ein Repository, das Informationen über verschiedene damit verwaltetete Datenbanken enthält und so einen zentralen Zugriff bietet.

Es gibt ein Repository, das beim Backup/Restore benutzt werden kann.

Es gibt ein Repository, das Oracle-Designer benutzt um Entwicklungsobjekte alle Art zu speichern.

Es gibt ein Automatic Workload Repository (wichtig!), das verschiedene Kennzahlen über die Datenbank anderen Prozessen zur Verfügung stellt (SQL-Queries, Statistiken usw.)

und noch einige mehr.


Ein Schema wiederum korrespondiert bei Oracle normalerweise mit den Datenbank-Objekten, die einem bestimmten Datenbank-Benutzer direkt gehören,
ist also eine logische Zuordnung. (die natürlich ebenfalls im Data Dictionary hinterlegt ist)

Hoffe diese Beispiele helfen dir ein wenig,

Markus
 
Zuletzt bearbeitet:
Zurück