دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Enumeration در سی شارپ
1403/09/01 -
پارتیشن بندی در پایگاه داده اوراکل
1403/08/30 -
Delegates در سی شارپ
1403/08/29 -
انواع ایندکس در پایگاه داده اوراکل
1403/08/28 -
سربارگذاری متدها در سی شارپ
1403/08/27
جداول سیستمی در 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) است و شامل اطلاعات کاملی از تمامی اشیاء در سطح کل پایگاه داده است. فقط کاربران با سطح دسترسی مدیریتی به این جداول دسترسی دارند.
ساختار و محتوای جداول سیستمی
-
جداول _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
در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیادهسازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .