جداول سیستمی در PL/SQL

تیم تحریریه 1403/07/24 0 92
لینک کوتاه https://zoheirsoftware.com/z/778ea0a |
جداول سیستمی در PL/SQL,ساختار و محتوای جداول سیستمی, انواع جداول سیستمی در  PL/SQL

جداول سیستمی در PL/SQL

PL/SQL زبان برنامه‌نویسی رویه‌ای اختصاصی برای مدیریت و تعامل با پایگاه داده اوراکل است.

یکی از مفاهیم مهم در اوراکل و PL/SQL، استفاده از جداول سیستمی است.

جداول سیستمی اوراکل شامل اطلاعات مربوط به ساختار پایگاه داده، کاربران، اشیاء پایگاه داده (مانند جداول، ویوها، ایندکس‌ها)، و مجوزها هستند.

این جداول به عنوان بخشی از کاتالوگ داده (Data Dictionary) به کار می‌روند و اطلاعات کاملی درباره وضعیت پایگاه داده و اشیاء آن فراهم می‌کنند.

در این مقاله، به بررسی جامع جداول سیستمی در PL/SQL، انواع مختلف آن‌ها، کاربردهای آن‌ها و نحوه استفاده از این جداول برای مدیریت و نگهداری پایگاه داده پرداخته می‌شود.

همچنین به نکات و بهترین روش‌ها در استفاده از این جداول و دیدگاه‌های سیستمی در محیط‌های PL/SQL اشاره خواهد شد.

جداول سیستمی چیست؟

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

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

پایگاه داده اوراکل به صورت خودکار این جداول را ایجاد و مدیریت می‌کند.

کاتالوگ داده (Data Dictionary) در اوراکل یک مجموعه ساختاریافته از جداول سیستمی و نماها است که به پایگاه داده اجازه می‌دهد اطلاعات متا‌داده‌ای (metadata) خود را مدیریت کند.

این اطلاعات شامل مواردی مانند نام جداول، ستون‌ها، انواع داده‌ها، اندازه‌ها و محدودیت‌ها است.

 

جداول سیستمی چیست؟

انواع جداول سیستمی در  PL/SQL

در PL/SQL ، جداول سیستمی به سه دسته اصلی تقسیم می‌شوند:

  • جداول _USER

    این جداول اطلاعاتی را نشان می‌دهند که مربوط به اشیاء پایگاه داده‌ای است که توسط کاربر فعلی ایجاد یا مدیریت می‌شود. این نماها فقط اشیاء متعلق به کاربر جاری را نمایش می‌دهند.
  • جداول _ALL

    این جداول شامل اطلاعاتی از تمامی اشیاء در پایگاه داده است که کاربر فعلی دسترسی به آن‌ها دارد. این دسترسی‌ها ممکن است از طریق مجوزهای مستقیم یا غیرمستقیم (مانند نقش‌ها) به دست آمده باشند.
  • جداول _DBA

    این جداول مخصوص مدیران پایگاه داده (DBAs) است و شامل اطلاعات کاملی از تمامی اشیاء در سطح کل پایگاه داده است. فقط کاربران با سطح دسترسی مدیریتی به این جداول دسترسی دارند.

 

انواع جداول سیستمی در  PL/SQL

ساختار و محتوای جداول سیستمی

  •  جداول _USER

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

      اطلاعات مربوط به جداولی که کاربر ایجاد کرده است را نگهداری می‌کند. این اطلاعات شامل نام جداول، تعداد ستون‌ها، فضای مصرفی و دیگر ویژگی‌های جداول است.
    • USER_TAB_COLUMNS

      این جدول اطلاعاتی در مورد ستون‌های جداولی که کاربر ایجاد کرده است، ارائه می‌دهد. ستون‌های هر جدول، نوع داده، اندازه و محدودیت‌های تعریف شده بر روی آن‌ها در این جدول موجود است.
    • USER_INDEXES

      اطلاعات مربوط به ایندکس‌های جداول کاربر را نشان می‌دهد. این اطلاعات شامل نام ایندکس، نوع ایندکس و جدول مرتبط با ایندکس می‌شود.
    • USER_VIEWS

      شامل اطلاعات مربوط به ویوهای (Views) ایجاد شده توسط کاربر فعلی است. این اطلاعات شامل نام ویو و پرس‌وجوی پایه‌ی آن است.
    • USER_SEQUENCES

      اطلاعات مربوط به توالی‌ها (Sequences) که توسط کاربر تعریف شده است را نمایش می‌دهد.
    • USER_CONSTRAINTS

      این جدول اطلاعاتی درباره محدودیت‌های (Constraints) تعریف شده روی جداول کاربر ارائه می‌دهد، مانند محدودیت‌های کلید اصلی (Primary Key) و کلید خارجی (Foreign Key).
  • جداول _ALL

این جداول اطلاعات کاملی از تمامی اشیاء پایگاه داده را که کاربر فعلی به آن‌ها دسترسی دارد، فراهم می‌کند.
تفاوت اصلی بین جداول ALL_ و USER_ در این است که جداول ALL_ تمامی اشیائی که کاربر دسترسی دارد (حتی اگر آن‌ها را ایجاد نکرده باشد) را نمایش می‌دهد.
برخی از جداول مهم در این دسته شامل موارد زیر است:

    • ALL_TABLES

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

      اطلاعات مربوط به ستون‌های تمامی جداولی که کاربر به آن‌ها دسترسی دارد.
    • ALL_INDEXES

      اطلاعات مربوط به تمامی ایندکس‌هایی که کاربر می‌تواند مشاهده کند.
    • ALL_VIEWS

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

      اطلاعات تمامی محدودیت‌های جداولی که کاربر به آن‌ها دسترسی دارد.
  • جداول _DBA

    این دسته از جداول فقط توسط مدیران پایگاه داده (DBAs) قابل مشاهده است و شامل اطلاعات کاملی از تمامی اشیاء موجود در پایگاه داده می‌باشد.
    مدیران پایگاه داده از این جداول برای مدیریت و نظارت بر تمامی کاربران و اشیاء پایگاه داده استفاده می‌کنند.
    برخی از جداول مهم در این دسته شامل موارد زیر است:
    • DBA_TABLES

      اطلاعات کامل جداول پایگاه داده.
    • DBA_TAB_COLUMNS

      اطلاعات مربوط به ستون‌های تمامی جداول پایگاه داده.
    • DBA_INDEXES

      اطلاعات مربوط به تمامی ایندکس‌های پایگاه داده.
    • DBA_USERS

      اطلاعات مربوط به کاربران پایگاه داده از جمله نام کاربری، تاریخ ایجاد و تنظیمات امنیتی.
    • DBA_ROLES

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

نحوه استفاده از جداول سیستمی در PL/SQL

در PL/SQL، جداول سیستمی می‌توانند برای انجام بسیاری از وظایف مدیریتی و نظارتی پایگاه داده استفاده شوند.

این وظایف شامل مدیریت کاربران، ایجاد و تغییر جداول، بررسی ایندکس‌ها و ویوها، و نظارت بر عملکرد پایگاه داده می‌شود.

برای استفاده از جداول سیستمی، می‌توان از پرس‌وجوهای SQL ساده درون بلوک‌های PL/SQL استفاده کرد.

  • مثال‌های عملی

    •  مشاهده اطلاعات جداول کاربر

      می‌توان اطلاعات مربوط به جداول کاربر فعلی را با استفاده از جدول USER_TABLES به دست آورد:

 

BEGIN
  FOR rec IN (SELECT table_name FROM user_tables) LOOP
    DBMS_OUTPUT.PUT_LINE('Table: ' || rec.table_name);
  END LOOP;
END;
    • بررسی ستون‌های یک جدول

      برای مشاهده اطلاعات ستون‌های یک جدول خاص از USER_TAB_COLUMNS استفاده می‌کنیم:

 

BEGIN
  FOR rec IN (SELECT column_name, data_type FROM user_tab_columns WHERE table_name = 'EMPLOYEES') LOOP
    DBMS_OUTPUT.PUT_LINE('Column: ' || rec.column_name || ' - Type: ' || rec.data_type);
  END LOOP;
END;
    • نمایش ایندکس‌های تعریف شده روی جداول

      برای مشاهده ایندکس‌های جداول کاربر، می‌توان از جدول USER_INDEXES استفاده کرد:
BEGIN
  FOR rec IN (SELECT index_name, table_name FROM user_indexes) LOOP
    DBMS_OUTPUT.PUT_LINE('Index: ' || rec.index_name || ' on Table: ' || rec.table_name);
  END LOOP;
END;


مزایای استفاده از جداول سیستمی

استفاده از جداول سیستمی در PL/SQL مزایای زیادی دارد که به مدیریت و نگهداری بهتر پایگاه داده کمک می‌کند. برخی از این مزایا عبارتند از:

  • نظارت کامل بر پایگاه داده

    از طریق جداول سیستمی، می‌توان اطلاعات کاملی از وضعیت جداول، ایندکس‌ها، کاربران و مجوزها به دست آورد.
  • بهبود امنیت

    با استفاده از جداول سیستمی مانند DBA_USERS و DBA_ROLES، مدیران پایگاه داده می‌توانند کنترل دقیقی بر روی مجوزهای کاربران و نقش‌ها داشته باشند.
  • تشخیص مشکلات عملکردی

    با بررسی اطلاعات ایندکس‌ها و محدودیت‌های جداول، می‌توان به مشکلات مربوط به کارایی پایگاه داده پی برد.
  • سهولت در توسعه و نگهداری

    توسعه‌دهندگان PL/SQL می‌توانند با استفاده از جداول سیستمی، اطلاعات مورد نیاز برای اشیاء پایگاه داده را به دست آورده و فرآیند توسعه و نگهداری را ساده‌تر کنند.

 

 

 

بهترین روش‌ها در استفاده از جداول سیستمی

  • استفاده از پرس‌وجوهای کارآمد

    هنگام استفاده از جداول سیستمی، باید از پرس‌وجوهایی استفاده کرد که کارایی بالایی دارند تا باعث کاهش عملکرد سیستم نشوند.
  • استفاده از دسترسی‌های مناسب

    فقط به کاربران و مدیرانی که نیاز به مشاهده اطلاعات جداول سیستمی دارند، دسترسی‌های لازم داده شود.
  • به‌روزرسانی منظم

    اطلاعات جداول سیستمی باید به‌طور منظم بررسی شوند تا از صحت و دقت آن‌ها اطمینان حاصل شود.


بهترین روش‌ها در استفاده از جداول سیستمی

 

 

 

دوره های مرتبط
پکیج آموزش اوراکل,دوره آموزش پروژه محور پایگاه داده اوراکل,آموزش پایگاه داده اوراکل Oracle ,پایگاه داده اوراکل

اموزش پایگاه داده اوراکل Oracle

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

700,000 تومان

2.3k بازدید
مشاهده

ارسال دیدگاه

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