I have a system that involves a rather large and complex oracle database, and while the system as a whole is easy enough (for me) to understand, the database feels more like a black box of mysterious powers that I need some assistance wrapping my head around.

Are there any analytical tools to help with this? Ideally, I’d like a tool that would connect to the database and make a diagram over which tables connect to which other tables, as well as naming any stored procedures relevant to each. If such a tool exists, that’d be grand, but any other tools that can help breaking down this rube goldberg machine into something more digestible would be great.

And yes, it is much overdue for a postgresql successor. Getting the current contraption mapped out is the first step in building its replacement.

EDIT: Oh, and this database also interacts a lot with orasched, as well as external processes. A lot of things that should have been a cron job is now a procedure stored in the scheduler. A lot of things that should have been an external script/program is a stored procedure. And most offensive of all: many things that should have been in a config file is part of an SQL table. Whoever built this contraption must’ve been paid to write SQL and nothing else.

  • CandleTiger
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 days ago

    which tables connect to which other tables

    You get no guarantees whatsoever that the database schema actually contains this information.

    Some databases are set up with validation rules that an external tool can understand, that column FOO.BAR_ID represents a foreign key for column BAR.ID

    But some databases (for example mine) have no such rules and depend on the developers to know this through documentation or occult consultation with the spirits of departed coworkers.