خرید دوره های برنامه نویسی با کیف پولت

اسکریپت لیست جداول با بیشترین ارتباطات (Relationship),اسکریپت Relationship در SQL Server,ارتباط بین جداول در SQL Server

اسکریپت لیست جداول با بیشترین ارتباطات (Relationship)

اسکریپت SQL Server برای شناسایی جداول با بیشترین ارتباطات ورودی و خروجی، بررسی وابستگی‌ها و تحلیل ساختار دیتابیس.

تیم تحریریه
2
0
19 مهر 1405
لینک کوتاه

اسکریپت لیست جداول با بیشترین ارتباطات (Relationship) در SQL Server

در طراحی پایگاه داده، ارتباط بین جداول یکی از مهم‌ترین بخش‌های ساختار اطلاعات است.
در SQL Server، این ارتباطات معمولاً با استفاده از کلیدهای خارجی (Foreign Key) تعریف می‌شوند و مشخص می‌کنند که اطلاعات یک جدول چگونه به اطلاعات جدول دیگر وابسته است.
در پایگاه‌های داده بزرگ، بعضی جداول با تعداد زیادی جدول دیگر ارتباط دارند.
شناسایی این جداول به مدیران پایگاه داده و توسعه‌دهندگان کمک می‌کند ساختار دیتابیس را بهتر بشناسند، وابستگی‌های اطلاعاتی را بررسی کنند و هنگام بهینه‌سازی یا تغییر ساختار جداول، تصمیم‌های دقیق‌تری بگیرند.


اسکریپت لیست جداول با بیشترین ارتباطات (Relationship) در SQL Server




🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!
این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.
با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!


چرا شناسایی جداول با بیشترین ارتباطات مهم است؟

جدولی که ارتباطات زیادی با سایر جداول دارد، ممکن است نقش مهمی در ساختار پایگاه داده ایفا کند.
برای مثال، جدول مشتریان در یک سیستم فروشگاهی می‌تواند با جدول سفارش‌ها، پرداخت‌ها، آدرس‌ها و اطلاعات تماس ارتباط داشته باشد.
شناسایی چنین جدول‌هایی کاربردهای مختلفی دارد:
  • تحلیل ساختار دیتابیس

    درک بهتر ارتباطات و وابستگی‌های بین جداول.
  • برنامه‌ریزی برای تغییرات

    بررسی تأثیر تغییر ساختار یک جدول بر سایر بخش‌ها.
  • بررسی وابستگی‌ها

    شناسایی جدول‌هایی که حذف یا تغییر آن‌ها ممکن است مشکلاتی ایجاد کند.
  • مستندسازی پایگاه داده

    تهیه گزارشی از جدول‌های مهم و ارتباطات آن‌ها.
  • بررسی معماری سیستم

    شناخت جدول‌هایی که در بخش‌های مختلف برنامه مورد استفاده قرار می‌گیرند.
البته تعداد زیاد ارتباطات به‌تنهایی به معنای اهمیت بیشتر یا طراحی بهتر جدول نیست؛ بلکه باید نقش جدول و نوع ارتباطات آن نیز بررسی شود.



چرا شناسایی جداول با بیشترین ارتباطات مهم است؟

اسکریپت لیست جداول با بیشترین ارتباطات

اسکریپت زیر از اطلاعات سیستمی SQL Server استفاده می‌کند و تعداد ارتباطات کلید خارجی هر جدول را محاسبه می‌کند.
در این گزارش، ارتباطات ورودی و خروجی به‌صورت جداگانه نمایش داده می‌شوند.

SELECT
    SCHEMA_NAME(t.schema_id) AS SchemaName,
    t.name AS TableName,

    COUNT(DISTINCT
        CASE
            WHEN fk.referenced_object_id = t.object_id
            THEN fk.object_id
        END
    ) AS IncomingRelationships,

    COUNT(DISTINCT
        CASE
            WHEN fk.parent_object_id = t.object_id
            THEN fk.object_id
        END
    ) AS OutgoingRelationships,

    COUNT(DISTINCT fk.object_id) AS TotalRelationships

FROM sys.tables AS t

LEFT JOIN sys.foreign_keys AS fk
    ON fk.parent_object_id = t.object_id
    OR fk.referenced_object_id = t.object_id

GROUP BY
    t.object_id,
    t.schema_id,
    t.name

ORDER BY
    TotalRelationships DESC,
    SchemaName,
    TableName;



بررسی بخش‌های 
اسکریپت لیست جداول با بیشترین ارتباطات

1. استفاده از sys.tables

نمای sys.tables اطلاعات جدول‌های موجود در دیتابیس فعلی را در اختیار ما قرار می‌دهد.
با استفاده از این نما می‌توان نام جدول‌ها و شناسه آن‌ها را دریافت کرد.

2. استفاده از sys.foreign_keys

نمای سیستمی sys.foreign_keys اطلاعات مربوط به محدودیت‌های کلید خارجی را نگهداری می‌کند.
این اطلاعات مشخص می‌کنند هر کلید خارجی از کدام جدول شروع شده و به کدام جدول ارجاع می‌دهد.

3. محاسبه ارتباطات ورودی

ستون IncomingRelationships تعداد کلیدهای خارجی‌ای را نشان می‌دهد که به جدول موردنظر ارجاع می‌دهند.
برای مثال، اگر جدول Customers توسط جدول‌های Orders و Addresses ارجاع داده شود، تعداد ارتباطات ورودی آن می‌تواند برابر با ۲ باشد.

4. محاسبه ارتباطات خروجی

ستون OutgoingRelationships تعداد کلیدهای خارجی تعریف‌شده در جدول موردنظر را محاسبه می‌کند؛ یعنی ارتباطاتی که این جدول از طریق کلید خارجی با جدول‌های دیگر برقرار کرده است.
برای نمونه، اگر جدول Orders دارای کلید خارجی به جدول‌های Customers و PaymentMethods باشد، دو ارتباط خروجی خواهد داشت.

5. محاسبه مجموع ارتباطات

ستون TotalRelationships مجموع تعداد ارتباطات ورودی و خروجی را نمایش می‌دهد.
استفاده از COUNT(DISTINCT ...) کمک می‌کند هر محدودیت کلید خارجی فقط یک بار در شمارش لحاظ شود.
در پایان، نتایج براساس تعداد کل ارتباطات به‌صورت نزولی مرتب می‌شوند تا جدول‌های دارای بیشترین ارتباط در ابتدای گزارش قرار بگیرند.


بررسی بخش‌های اسکریپت لیست جداول با بیشترین ارتباطات


نکته مهم درباره تفسیر نتایج

این اسکریپت ارتباطات تعریف‌شده با کلید خارجی را بررسی می‌کند.
اگر در برنامه ارتباطی بین دو جدول وجود داشته باشد اما این ارتباط با FOREIGN KEY در دیتابیس تعریف نشده باشد، اسکریپت آن را شناسایی نمی‌کند.
همچنین، این گزارش تعداد محدودیت‌های کلید خارجی را می‌شمارد، نه تعداد تمام مسیرهای ممکن بین جدول‌ها. برای تحلیل دقیق‌تر، بهتر است نتایج را در کنار ساختار دیتابیس و منطق برنامه بررسی کنید.

جمع‌بندی

شناسایی جداول با بیشترین ارتباطات در SQL Server راهی کاربردی برای شناخت ساختار پایگاه داده و بررسی وابستگی‌های میان جدول‌ها است. اسکریپت ارائه‌شده با استفاده از نماهای سیستمی، ارتباطات ورودی و خروجی هر جدول را محاسبه می‌کند و جدول‌ها را براساس مجموع ارتباطات مرتب می‌سازد.
این گزارش می‌تواند هنگام مستندسازی دیتابیس، بررسی وابستگی‌ها، برنامه‌ریزی برای تغییرات ساختاری و تحلیل معماری سیستم مفید باشد. بااین‌حال، تعداد ارتباطات باید در کنار نقش جدول، نوع روابط و نیازهای واقعی برنامه ارزیابی شود.

محصولات مرتبط

کاربران ما

شما هم نظرتون با ما دریاره “اسکریپت لیست جداول با بیشترین ارتباطات (Relationship)” اشتراک بزارید

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو