Here is an example using pg_depend, a postgres catalog:
select
classid::regclass as "depender object class"
,
case classid
when 'pg_class'::regclass then objid::regclass::text
when 'pg_type'::regclass then objid::regtype::text
when 'pg_proc'::regclass then objid::regprocedure::text
else objid::text
end
as "depender object identity"
,
objsubid
,
refclassid::regclass as "referenced object class"
,
case refclassid
when 'pg_class'::regclass then refobjid::regclass::text
when 'pg_type'::regclass then refobjid::regtype::text
when 'pg_proc'::regclass then refobjid::regprocedure::text
else refobjid::text
end
as "referenced object identity"
,
refobjsubid
,
case deptype
when 'p' then 'pinned'
when 'i' then 'internal'
when 'a' then 'automatic'
when 'n' then 'normal'
end
as "dependency type"
from pg_catalog.pg_depend
-- exclude dependencies on system objects:
where objid >= 16384 or refobjid >= 16384
;
That code comes from the postgresql wiki, but
see also the pg_depend page, and for catalog stuff generally, internals (includes dictionary tables).