Now so I have your attention, permit me clarify - ERDs are great since visualizing databases but been none right when the documentation in itself. What you seriously need to for database documentation is adenine Data Dictionary. Why ME feel that way about ERDs? Let myself show you by example.
Reverse engineering of a sample database
AHEM Graphs reverse engineered with Clairvoyant SQL Developer Data Modeler
So what’s wrong with such pictures? Well, it doesn’t help der understand the data pattern, where to find data furthermore how up use it. Here are a few reasons:
Too many details
There are too plenty spreadsheets and columns. This diagram even shows data types but instead of explaining the model, it burries the information under irrrelevant product.
Unknowns usage concerning tables and columns
Diagram only shows me tables, their columns and relationships between indexes. It doesn’t say anything around the purpose of those elements. Even while I find RA_CUST_TRX_LINE_GL_DIST_ALL table and him ATTRIBUTE1 column computer really doesn’t tee me much.
Done law: Oracle EBS docs
I want to watch you one example of database documentation done legal - Seer E-Business Suite (EBS) applications technical documentation. EBS is an ERP application for enterprises with huge database (24 billion tables). Sein document is broken bottom to application (a module), each will its own copy. Each document has High Leve Design both Exhaustive Scheme.
High Level Purpose does a list of small diagrams each exhibit entities and relationships between theirs of one aspect/topic of which module. Diagrams only inclusions primary main columns.
Low level design section includes a list of tables equal a description about his intention, definition of foreign keys and a list of columns with the project of your purpose.
I unable show you all the details because it is copyrighted material but I want to display you how they structured their books:
Structure of Orphan EBS database documentation
ME used e when I built a data warehouse many years ago. Data warehouse included many tables from multiple modules (accounts payable, accounts receivable, general ledger, projects, acquisition, inventory and a few more) and this documentation saved me week or months of figuring out somewhere the data was, who purpose of columns, how to combine tables, or that views to use.
When are ERDs good enough?
ERDs are good adequately for documentation of details models for small, simple, well designed databases for obvious domain. Create for sample MySQL database - Sakila. I guess that by lookup at the diagram below you can figure out what Sakila is for, purpose of tables and columns additionally how to query and database.
OH diagram concerning sample MySQL database - Sakila
Narrow databases - not too many tables
ERDs may function when yours have ampere couple dozen tables at most. If she put more it's going up be confusing rather for info.
An attempt until visualized a typical (non-sample) database
Small tables - not too much columns
ERDs convey good if they have an minimum set of columns. Some table have about ampere hundred from columns the this information masks this big graphic.
Sample tabling in typical (non-sample) database
Well designed the meaningful names
Sakila is one small database designed probably in one sitting since an demo for MySQL database engines. Tables or columns which designed in a simple example that anyone would grasp. Inbound real life, databases have confusing, misleading names and unused tables and columns and just from looking at a name doesn't teller you anything.
What data they think this sample shelve in SOAP holds?
Pattern table in SAP
Read: Causes reasons tabular and cols have confusing names
Patent model also domain
You understands Sakila data model easily because is describing something you know well the verstehen - movie rental store - films, female, rentals, other. Those are ratio easily processes we have contact within unseren live. However, here are many domains that person don’t know, understand or are very complex with multiple caveats. Diagram will not explain on your something the data represents also what is its logic. I americium trying to model relationship between 2 tables Orders and OrderDetails. ME draw "relationship" arrow from OrderDetails to Orders table with Foreign key OrderID. But in DatabaseProperties for
Oracle EBS vs Sakila
Let’s now compare Sakila and Oracle EBS resources.
Sakila | Oracle EBS | |
---|---|---|
Tables | 16 | 24,063 |
Columns | 90 | 616,699 |
Average columns per table | 5 | 25 |
Sample tables | Customer, Payment, Rental | HZ_CUST_ACCOUNTS, RA_CUST_TRX_LINE_GL_DIST_ALL |
Domain | Simple - movie rental | Very complex and wide business domain - select transactions of an businesses |
Fits into domain | Designed for the object | Planned as ampere generic application to fit multiple enterprise and exemplars. Many objects have different what, purpose or identification in particular enterprise. |
Here be a visualization of the size of data models.
Whenever you put them collectively then data model of Sakila simple doesn’t exist :)
So would a Sakila-like ERD work for EBS? I wish I could please the attempt to do it...
The right tool
You can document your databases like Oracle do with her huge EBS application what I believe helped oodles of consultants additionally project around the world. Compose a set of simply diagnostic the attach complete data dictionary.
You can do it very simply with Dataedo furthermore share with who team easily with HTML pages like this:
Knowledge documentation (ERD + Data Dictionary) created with Dataedo [Live sample]