Oracle Data Dictionary: Tabellenbeziehungen

Hallo zusammen,
in welcher Tabelle des Data Dictionary finde ich unter Oracle 8.x Informationen über die Beziehungen der Tabellen untereinander bzw. gibt es diese Informationen überhaupt ?

Besten Dank & Gruß,
tim taylor

Hi,

bzw. gibt es diese Informationen überhaupt ?

Ja, die gibt es.

in welcher Tabelle des Data Dictionary finde ich unter Oracle
8.x Informationen über die Beziehungen der Tabellen
untereinander

Es sind mehrere Tabellen, genaugenommen Views. Zunächst der generelle Aufbau der Bezeichnungen:

Es gibt eine Menge Informationen, die der DBA ansehen darf. Die Viewnamen davon fangen mit DBA_ an.

Dazu gibt es eine Sammlung von Infos, auf die der eingeloggte Benutzer zugreifen darf, auch wenn die betreffenden Objekte nicht ihm gehören (auf die Objekte hat er durch GRANTS midestens Leseberechtigung). Die Viewnamen fangen mit ALL_ an.

Daneben gibt es Infos zu den Objekten des eingeloggten Benutzers. Diese fangen mit USER_ an.

Du kennst sicher USER_TABLES (alle meine Tabellen), ALL_TABLES (alle Tabellen, die ich sehen kann) und DBA_TABLES (alle Tabellen im System. Analog dazu findest du die Informationen zu allen möglichen Objekten: Views (ALL_VIEWS bzw. USER_VIEWS und DBA_VIEWS), ALL_TAB_COLUMNS, usw. usf.

Beziehungen werden in ALL_CONSTRAINTS abgebildet. Schau dir mal die Doku dazu an. Unter anderem wird da aufgeschlüsselt, ob der Constraint ein Primary Key, ein Foreign Key, ein Unique- oder ein Check-Constraint ist. Bei Foreign Key (Constraint_type=‚R‘) steht unter R_OWNER und R_CONSTRAINT_NAME der referenzierte Constraint (der dann ein ‚P‘, Primary, als CONSTRAINT_TYPE trägt).

Übrigens kannst du dir die Namen solcher Tabellen und eine kurze Bemerkung zum Zweck ansehen, wenn du bei DICT suchst und ungefähr weißt, was du suchst:

select \* 
 from dict 
 where table\_name like '%CONSTRAINT%';

Gruß

Sancho

Hallo Sancho,
vielen Dank für die Anleitung, das bringt mich auf jeden Fall weiter.

Viele Grüße,
Tim