This gist is a small subset of objects in the the Oracle database, and their dependencies on the object, SYS.DBA_OBJECTS.
When database objects are created, they create a tree structure. It’s possible to have many root nodes to a single child node, such as a stored procedure that reads six or more tables.
When creating objects such as functions or procedures, all the parent objects must first be created and valid. If a single object become invalidated, all child objects also become invalidated.
Queries to the data dictionary view, DBA_OBJECTS, will show dependencies, however, the dependencies are only shown only one level up or down. Another problem with such queries, is that it’s often possible to see the same object listed many times in the output. An example could be an error handling procedure that is called by all other procedures.
Thus, determining some things is problematic. One is determining the order of operations to create the objects. Another question, if this object is invalid, what are all generations of its parent objects, in order to revalidat them all. And, if we were to drop this object, what are all generations its child objects that would become invalid?
The underlying issue is that output from SQL shows rows and columns. However, the actual structure of the objects is a tree, exactly the structure that a graph database models.
A longer write up is here: http://rodgersnotes.wordpress.com/2013/07/31/dba_objects-tree-modelled-as-a-graph/
A gist of a small subset of objects in the the Oracle database. Database objects are created one by one in a tree structure, exactly what a graph database models. Useful to determine impacts of the loss of one object. And the order of operations to create the objects.
CREATE ( _3192{owner : 'SYS' , object_name : 'DBA_OBJECTS' , object_type : 'VIEW' , object_id : 3192 })
CREATE ( _19 {owner : 'SYS' , object_name : 'IND$' , object_type : 'TABLE' , object_id : 19 })
CREATE ( _22 {owner : 'SYS' , object_name : 'USER$' , object_type : 'TABLE' , object_id : 22 })
CREATE ( _134 {owner : 'SYS' , object_name : 'LINK$' , object_type : 'TABLE' , object_id : 134 })
CREATE ( _951 {owner : 'SYS' , object_name : 'SUM$' , object_type : 'TABLE' , object_id : 951 })
CREATE ( _3070 {owner : 'SYS' , object_name : '_CURRENT_EDITION_OBJ' , object_type : 'VIEW' , object_id : 3070 })
CREATE ( _71903 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_BUILDER' , object_type : 'PACKAGE BODY' , object_id : 71903 })
CREATE ( _71931 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_CUSTOM_AUTH_STD' , object_type : 'PACKAGE BODY' , object_id : 71931 })
CREATE ( _71939 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_HINT' , object_type : 'PACKAGE BODY' , object_id : 71939 })
CREATE ( _73104 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_INSTALL_WIZARD' , object_type : 'PACKAGE BODY' , object_id : 73104 })
CREATE ( _73081 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_LOAD_EXCEL_DATA' , object_type : 'PACKAGE BODY' , object_id : 73081 })
CREATE ( _73078 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_QUERY_BUILDER' , object_type : 'PACKAGE BODY' , object_id : 73078 })
CREATE ( _71932 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_SW_API' , object_type : 'PACKAGE BODY' , object_id : 71932 })
CREATE ( _73079 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_SW_OBJECT_FEED' , object_type : 'PACKAGE BODY' , object_id : 73079 })
CREATE ( _71895 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_SW_UTIL' , object_type : 'PACKAGE BODY' , object_id : 71895 })
CREATE ( _73086 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_TABLE_DRILL' , object_type : 'PACKAGE BODY' , object_id : 73086 })
CREATE ( _71200 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_UPGRADE' , object_type : 'PACKAGE BODY' , object_id : 71200 })
CREATE ( _71927 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_UPGRADE_REPORT' , object_type : 'PACKAGE BODY' , object_id : 71927 })
CREATE ( _71917 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_WIZARD_API' , object_type : 'PACKAGE BODY' , object_id : 71917 })
CREATE ( _73098 { owner : 'APEX_030200' , object_name : 'WWV_FLOW_WIZ_CONFIRM' , object_type : 'PACKAGE BODY' , object_id : 73098 })
CREATE ( _73029 { owner : 'APEX_030200' , object_name : 'WWV_MIG_FRM_UTILITIES' , object_type : 'PACKAGE BODY' , object_id : 73029 })
CREATE ( _55732 { owner : 'CTXSYS' , object_name : 'DRIACC' , object_type : 'PACKAGE BODY' , object_id : 55732 })
CREATE ( _55733 { owner : 'CTXSYS' , object_name : 'DRICON' , object_type : 'PACKAGE BODY' , object_id : 55733 })
CREATE ( _55758 { owner : 'CTXSYS' , object_name : 'DRIUTL' , object_type : 'PACKAGE BODY' , object_id : 55758 })
CREATE ( _65353 { owner : 'OLAPSYS' , object_name : 'CWM2_OLAP_UTILITY' , object_type : 'PACKAGE BODY' , object_id : 65353 })
CREATE ( _3193 { owner : 'PUBLIC' , object_name : 'DBA_OBJECTS' , object_type : 'SYNONYM' , object_id : 3193 })
CREATE ( _64023 { owner : 'SYS' , object_name : 'APS_VALIDATE' , object_type : 'PROCEDURE' , object_id : 64023 })
CREATE ( _3194 { owner : 'SYS' , object_name : 'DBA_INVALID_OBJECTS' , object_type : 'VIEW' , object_id : 3194 })
CREATE ( _11860 { owner : 'SYS' , object_name : 'DBMSOBJG' , object_type : 'PACKAGE BODY' , object_id : 11860 })
CREATE ( _11657 { owner : 'SYS' , object_name : 'DBMS_AQADM_SYS' , object_type : 'PACKAGE BODY' , object_id : 11567 })
CREATE ( _11544 { owner : 'SYS' , object_name : 'DBMS_AQ_SYS_EXP_INTERNAL' , object_type : 'PACKAGE BODY' , object_id : 11544 })
CREATE ( _11562 { owner : 'SYS' , object_name : 'DBMS_AQ_SYS_IMP_INTERNAL' , object_type : 'PACKAGE BODY' , object_id : 11562 })
CREATE ( _11964 { owner : 'SYS' , object_name : 'DBMS_CAPTURE_ADM_INTERNAL' , object_type : 'PACKAGE BODY' , object_id : 11964 })
CREATE ( _12130 { owner : 'SYS' , object_name : 'DBMS_COMPRESSION' , object_type : 'PACKAGE BODY' , object_id : 12130 })
CREATE ( _8575 { owner : 'SYS' , object_name : 'DBMS_COMPRESSION' , object_type : 'PACKAGE' , object_id : 8575 })
CREATE ( _64100 { owner : 'SYS' , object_name : 'DBMS_CUBE_ADVISE_SEC' , object_type : 'PACKAGE BODY' , object_id : 64100 })
CREATE ( _11839 { owner : 'SYS' , object_name : 'DBMS_DEFERGEN_UTIL' , object_type : 'PACKAGE BODY' , object_id : 11839 })
CREATE ( _51774 { owner : 'SYS' , object_name : 'DBMS_JAVA' , object_type : 'PACKAGE BODY' , object_id : 51774 })
CREATE ( _11975 { owner : 'SYS' , object_name : 'DBMS_LOGREP_EXP' , object_type : 'PACKAGE BODY' , object_id : 11975 })
CREATE ( _11548 { owner : 'SYS' , object_name : 'DBMS_PRVTAQIM' , object_type : 'PACKAGE BODY' , object_id : 11548 })
CREATE ( _11547 { owner : 'SYS' , object_name : 'DBMS_PRVTAQIS' , object_type : 'PACKAGE BODY' , object_id : 11547 })
CREATE ( _57060 { owner : 'SYS' , object_name : 'DBMS_REGXDB' , object_type : 'PACKAGE BODY' , object_id : 57060 })
CREATE ( _11869 { owner : 'SYS' , object_name : 'DBMS_REPCAT_COMMON_UTL' , object_type : 'PACKAGE BODY' , object_id : 11869 })
CREATE ( _11909 { owner : 'SYS' , object_name : 'DBMS_REPCAT_MIG_INTERNAL' , object_type : 'PACKAGE BODY' , object_id : 11909 })
CREATE ( _11865 { owner : 'SYS' , object_name : 'DBMS_REPCAT_OUTPUT' , object_type : 'PACKAGE BODY' , object_id : 11865 })
CREATE ( _11915 { owner : 'SYS' , object_name : 'DBMS_REPCAT_UTL' , object_type : 'PACKAGE BODY' , object_id : 11915 })
CREATE ( _11905 { owner : 'SYS' , object_name : 'DBMS_REPCAT_UTL3' , object_type : 'PACKAGE BODY' , object_id : 11905 })
CREATE ( _11881 { owner : 'SYS' , object_name : 'DBMS_SNAPSHOT_UTL' , object_type : 'PACKAGE BODY' , object_id : 11881 })
CREATE ( _11885 { owner : 'SYS' , object_name : 'DBMS_SNAP_INTERNAL' , object_type : 'PACKAGE BODY' , object_id : 11885 })
CREATE ( _12025 { owner : 'SYS' , object_name : 'DBMS_SPACE' , object_type : 'PACKAGE BODY' , object_id : 12025 })
CREATE ( _12129 { owner : 'SYS' , object_name : 'PRVT_COMPRESSION' , object_type : 'PACKAGE BODY' , object_id : 12129 })
CREATE ( _5075 { owner : 'SYS' , object_name : 'SM_$VERSION' , object_type : 'VIEW' , object_id : 5075 })
CREATE ( _64645 { owner : 'SYS' , object_name : 'XOQ_VALIDATE' , object_type : 'PROCEDURE' , object_id : 64645 })
CREATE ( _13458 { owner : 'WMSYS' , object_name : 'LTDTRG' , object_type : 'PACKAGE BODY' , object_id : 13458 })
CREATE ( _13453 { owner : 'WMSYS' , object_name : 'LTUTIL' , object_type : 'PACKAGE BODY' , object_id : 13453 })
CREATE ( _13460 { owner : 'WMSYS' , object_name : 'WM_DDL_UTIL' , object_type : 'PACKAGE BODY' , object_id : 13460 })
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_3193)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_3194)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_5075)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_8575)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11544)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11548)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11562)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11567)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11839)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11860)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11865)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11869)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11881)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11885)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11905)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11909)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11915)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11964)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_11975)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_12025)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_12129)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_12130)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_51774)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_55732)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_57060)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_64023)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_64100)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_64645)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71200)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71895)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71903)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71917)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71927)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71931)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71932)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_71939)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_73029)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_73078)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_73079)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_73081)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_73086)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_73104)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_13453)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_13458)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_13460)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_55733)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_55758)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_65353)
CREATE UNIQUE (_19)- [ :PARENT_OF ]-> (_3192)
CREATE UNIQUE (_22)- [ :PARENT_OF ]-> (_3192)
CREATE UNIQUE (_134)- [ :PARENT_OF ]-> (_3192)
CREATE UNIQUE (_951)- [ :PARENT_OF ]-> (_3192)
CREATE UNIQUE (_3070)- [ :PARENT_OF ]-> (_3192)
CREATE UNIQUE (_3192)- [ :PARENT_OF ]-> (_3193)
MATCH path = p - [ :PARENT_OF* ] -> c
where has ( p.object_name )
and p.object_name = 'DBA_OBJECTS'
and p.owner = 'SYS'
return c