توليد E-R الرسم البياني عن طريق الهندسة العكسية قاعدة البيانات [مغلقة]

StackOverflow https://stackoverflow.com/questions/185967

سؤال

ملاحظة:أصلا هذا السؤال سئل عن الإنترنت ، ومع ذلك ، فإن الجواب ينطبق على ما يقرب من أي قاعدة بيانات الذي يحتوي على برنامج تشغيل JDBC التي يمكن الكشف عن المفتاح الخارجي الجمعيات.


الاستعلام عن كيو قاموس البيانات الخارجية-مفاتيح العلاقة بين الجداول واضحة جدا, ولكن كيف يمكن استخدام هذه المعلومات لإنشاء الرسم البياني من العلاقات بين الجداول ؟

أي توصيات حول الأدوات التي يمكن أن تفعل هذا ؟

تحرير: أنا أعرف GraphVIZ/نقطة يمكن تكون مفيدة, ولكن أنا لا أعرف أي فكرة بشأن كيفية رمز التطبيق الذي من شأنه أن يولد الموجهة البياني .DOT.

هل كانت مفيدة؟

المحلول

دوت هي جزء من graphviz الحزمة ، وهي رائعة/أداة مفيدة.بالطبع, سوف تحتاج إلى شيء لتوليد نقطة ملفات graphviz.لقد استعملت SchemaSpy مرة أو مرتين في الماضي ، وأنه يعمل بشكل جيد جدا ، شريطة أن يكون لديك علاقات محددة في قاعدة البيانات.

نصائح أخرى

Microsoft Visio بسهولة القيام بذلك.

على الأقل بالنسبة أوراكل تشغيل هذا الاستعلام أو اطلب DBA لتشغيله و ترسل لي النتائج.النتائج يمكن نسخها مباشرة إلى ملف نصي يجب أن تفسر من قبل Graphviz أدوات ، مما أدى إلى الرسم التخطيطي لقاعدة البيانات.

SELECT '"' || Source.TABLE_NAME || '" -> "' 
           || Destiny.TABLE_NAME || '";' AS For_GraphViz
FROM dba_constraints Source
JOIN dba_constraints Destiny
ON Source.owner='my_db_owner' AND Destiny.owner='my_db_owner'
AND Source.CONSTRAINT_TYPE='R'
-- theoretically this validation should be redundant
-- AND Destiny.Constraint_type = 'P'
AND Source.R_CONSTRAINT_NAME = Destiny.CONSTRAINT_NAME
ORDER BY Source.TABLE_NAME, Source.CONSTRAINT_TYPE, Source.CONSTRAINT_NAME
    , Source.R_CONSTRAINT_NAME, Source.INDEX_NAME;

مماثل الاستعلام يمكن أن تنشأ بسهولة ل SQL Server ، لا أعرف عن MySQL, PostgreSQL et al.

نقطة هو المتعدد و قد تكون مفيدة.

DBVisualizer هو أيضا مجاني و بديل لطيف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top