0

有没有什么软件可以从Oracle数据库自动生成ER图?

我的问题是数据库在设计过程中有一些“噪音”,它错过了一些强制性的外键。再者,db的大小相当大,不能简单地遍历每张表手动检查。

任何帮助或建议将不胜感激。

谢谢 :)

4

1 回答 1

2

好吧,如果有“缺失”的强制性外键,那么从技术上讲,这些外键不是强制性的,也不是缺失的。但我感觉到你的痛苦。

可能,作为开始,我会搜索共享列名并且其列名出现在表的主键列中的表:

select 
  a.table_name,
  b.table_name,
  a.column_name
from
      all_tab_columns   a 
join  all_tab_columns   b on a.table_name != b.table_name and
                             a.column_name = b.column_name
join  all_tables        u on b.table_name  = u.table_name   -- Exlude Views!
join  all_constraints   p on a.table_name  = p.table_name and
                             p.constraint_type = 'P'
join  all_cons_columns  c on p.constraint_name = c.constraint_name and
                             c.column_name = a.column_name
于 2012-04-10T07:10:11.057 回答