Viewing large Oracle RDBMS ERD with table and keys only - oracle

I am new to Oracle, I have been asked to reverse engineer a huge legacy database; so huge in fact that when I went to view the ERD, it took up 3 plot diagrams; 3 walls.
I cannot zoom in; it is because there are numerous attribites (hundreds per ...)
Is there a way to:
1) View just table names, keys and relationships
2) Restrict the scope of the table names, keys and relationships
Is there a tool that would be present in large Enterprises that the DBA could grant me read permission to perform this analysis.
Thanks for your assistance!!! Chris

I recommend you Oracle SQL Developer Data Modeler
http://www.oracle.com/technetwork/developer-tools/datamodeler/overview/index.html
Where you can :
Create subViews from whole ERD model
http://docs.oracle.com/cd/E25259_01/doc.31/e25257/data_modeling.htm#BABCIAEG
Display only names (without attributes)
It is used for Big Enterprise data analysis projects
Many useful features
And the best feature : It´s FREE

Related

oracle schema sharing , is it possible?

Trying to understand if there is any such concept like this in Oracle Database.
Let's say I have two Databases, Database_A & Database_B
Database_A has schema_A, is there a way I can attach this schema to Database_B?
What I mean by this is if there is a job populating a TABLE_A in schema_A, I can see that read-only view in Database_B. We are trying to split a big Oracle database into two smaller databases and have a vast PL/SQL code, and trying to minimize the refactoring here.
Sharding might be what you're looking for. The schemas and tables will still logically exist on all databases, but you can arrange the data to be physically stored in specific databases. There might be a way to setup shardspaces, tablespaces, and user default tablespaces in a way where each schema's data is automatically stored in a specific database.
But I haven't actually used sharding. From what I've read, it seems to be designed for massive distributed OLTP systems, and it is likely complicated to administer. I'd guess this feature isn't worth the hassle unless you have petabytes of data.

Salesforce Table Relationships for Business Analyst

I am a business analyst. I use Tableau a lot but have limited knowledge about the back-end of Salesforce. The majority of our company's data is stored in Salesforce and our data team does not support business users for understanding such topics.
In many of my projects, I use the Salesforce connector inside Tableau to extract Salesforce tables, but it requires knowledge about joins relationships among tables. Most of the time, I can guess correctly about the primary key among tables, but I still want to learn systematically about the data structure and have my data independence.
So, how do I learn the data structure by myself? Or how do I ask specific structure questions to data team so I don't trouble them as much?
Do you have Salesforce account with "Customize Application" permission? If you don't have in production - maybe they'll be willing to promote you to sysadmin in one of sandboxes.
If you do - Setup -> Schema Builder might be easiest tool to visualise relations. It's bit old, flash-based but pretty neat way to model relationships. https://trailhead.salesforce.com/en/content/learn/modules/data_modeling/schema_builder
Another one might be workbench, http://workbench.developerforce.com/ It's not as neat but lets you experiment with metadata & queries, learn which object has what child relationships...
For standard objects if you have a primary key / foreign key you can use some lookup tables to learn more about target table. All Account Ids in all SF instances start with 001. Contacts with 003, Users with 005... Combine some blogs like http://www.fishofprey.com/2011/09/obscure-salesforce-object-key-prefixes.html with https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_objects_account.htm and it's a good start. Won't help much with custom objects and fields (specific to your company) but well.
It's bit "meta" but you can query info about tables and columns too. After all - you might be more comfortable in Tableau ;) Querying Salesforce Object Column Names w/SOQL might give you some hints.
If your job is to build advanced reports off these data sources, I would imagine you need to understand the data structure to some extent. This would mean you need to have authorization to view and access the database table list to get familiar with it and possibly run raw queries to verify data integrity.
If they are not comfortable with you touching the production system, ask for access to a development system which is a copy of production or even just realistic test data.

Suggestion on Reading a Oracle Data Model

Background:
I am doing a self study on an Oracle Product (Argus Safety Insight), and I need to understand the database schema of this product. I have installed the database and loaded the schema successfully. I have also generated data model using "SQL DEVELOPER DATA MODELER".
Issue:
This schema has 500 tables and 700 views which together gives around 20K columns, I couldn't navigate through the data model due its huge size; SQL developer hangs.
Question:
Will you please help me with a tool or technique on how to read and understand the logical relationships between tables in such huge databases.
You have two issues.
1: Technical - 'sql dev hangs' - you're asking it to open something so big, it overwhelms the Java Virtual Machine (JVM). For really LARGE models, we recommend you bump this to 2 or even 3 GB.
To increase the memory for the JVM, you need to find the product.conf file for SQL Developer. On Windows, it's under AppData for your user, and roaming profiles. On a Mac/NIX, it's in your $HOME directory, and then in a .SQLDev 'hidden' sub directory.
The file is documented quite well, but you need to do something like -
AddVMOption -Xmx2048m
Save, then re-open SQLDev and your design.
2: Human - how do you make sense of hundreds or thousands of objects in a diagram? You just can't. So you need to find application-driving MAIN tables, and generate SubViews (a subset of the diagram) for easier digestion.
I talk about how to do this here.
Now that your objects are grouped by SubViews, you can now view, print, report, and search them by SubView as well.

Create star/snowflake schema from existing database (Oracle)

I happen to find myself in a situation where i am using Oracle SQL Developer Version 1.5.5 and there's this huge database for which the documentation is very poor. I'd like to create a star or a snowflake schema for better understanding of the data. Is there a simple way to do it?
You can reverse engineer the physical data model using SQL Developer Data Modeler. This is actually a separate tool from SQL Developer but shares some branding. It is also free.
The quality of the resultant diagram will depend heavily on how well the physical data structures have been implemented. You will only get relationships if the database has defined foreign key constraints (disabled is good enough). Likewise UIDs require defined primary key constraints. If your database lacks constraints you'll have to rely on column naming conventions, data analysis and your business knowledge.
Star or Snowflake schemas are for data warehouses. Is that the sort of database you're dealing with?

Migrating data between 2 databases in Oracle 9i

I am new to Oracle. Since we have rewritten an earlier application , we have to migrate the data from the earlier database in Oracle 9i to a new database , also in 9i, with totally different structures. The column names and types would be totally different. We need to map the tables and columns , try to export as much data as possible, eliminate duplicates, and fill empty values with defaults.
Are there any tools which can help in mapping the elements of the 2 databases , with rules to handle duplicates, and default values and migrate the data ?
Thanks,
Chak.
If your goal is to migrate data between two very different schemas you will probably need an ETL solution (ETL=Extract Transform Load).
An ETL will allow you to:
Select data from your source database(s) [Extract]
apply business logic to the selected data [Transform] (deal with duplicates, default values, map source tables/columns with destination tables/columns...)
insert the data into the new database [Load]
Most ETLs also allow some kind of automatisation and reporting of the loads (bad/discarded rows...)
Oracle's ETL is called Oracle Warehouse Builder (OWB). It is included in the Database licence and you can download it from the Oracle website. As most Oracle products it is powerful but the learning curve is a bit steep.
You may want to look into the [ETL] section here in SO, among others:
What ETL tool do you use?
ETL tools… what do they do exactly? In laymans terms please.
In many cases, creating a database link and some scripts a'la
insert into newtable select distinct foo, bar, 'defaultvalue' from oldtable#olddatabase where xxx
should do the trick

Resources