جدولهای کاتالوگ در پایگاه داده
جدولهای کاتالوگ در پایگاهداده، که به عنوان جدولهای سیستمی یا متادیتا نیز شناخته میشوند، حاوی اطلاعاتی درباره ساختار و سازماندهی پایگاهداده هستند. این جدولها شامل دادههایی درباره جدولها، ستونها، ایندکسها، کاربران، مجوزها و سایر اشیاء پایگاهداده میباشند. در ادامه به برخی از سیستمهای مدیریت پایگاهداده (DBMS) معروف و جدولهای کاتالوگ مرتبط با آنها اشاره میشود:
1. MySQL / MariaDB
information_schema
: این دیتابیس حاوی جدولهای کاتالوگ است که اطلاعاتی درباره سایر دیتابیسها و جدولها ارائه میدهد.TABLES
: اطلاعات درباره جدولها.COLUMNS
: اطلاعات درباره ستونهای جدولها.SCHEMATA
: اطلاعات درباره دیتابیسها.STATISTICS
: اطلاعات درباره ایندکسها.USER_PRIVILEGES
: اطلاعات درباره مجوزهای کاربران.
SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name';
2. PostgreSQL
pg_catalog
: این اسکیما شامل جدولهای سیستمی است که اطلاعاتی درباره ساختار پایگاهداده ارائه میدهد.pg_class
: اطلاعات درباره جدولها، ایندکسها و سایر اشیاء.pg_attribute
: اطلاعات درباره ستونهای جدولها.pg_index
: اطلاعات درباره ایندکسها.pg_user
: اطلاعات درباره کاربران.
SELECT * FROM pg_catalog.pg_tables WHERE schemaname = 'public';
3. Oracle
ALL_
,USER_
,DBA_
: این پیشوندها برای دسترسی به جدولهای کاتالوگ استفاده میشوند.ALL_TABLES
: اطلاعات درباره جدولهایی که کاربر به آنها دسترسی دارد.USER_TABLES
: اطلاعات درباره جدولهای متعلق به کاربر.DBA_TABLES
: اطلاعات درباره تمام جدولهای پایگاهداده (فقط برای کاربران با مجوزهای بالا).ALL_TAB_COLUMNS
: اطلاعات درباره ستونهای جدولها.
SELECT * FROM ALL_TABLES WHERE OWNER = 'your_schema_name';
4. SQL Server
sys
: این اسکیما شامل جدولهای سیستمی است.sys.tables
: اطلاعات درباره جدولها.sys.columns
: اطلاعات درباره ستونهای جدولها.sys.indexes
: اطلاعات درباره ایندکسها.sys.users
: اطلاعات درباره کاربران.
SELECT * FROM sys.tables;
5. SQLite
sqlite_master
: این جدول حاوی اطلاعاتی درباره تمامی جدولها، ایندکسها، ویوها و تریگرها است.type
: نوع شیء (جدول، ایندکس، ویو و …).name
: نام شیء.tbl_name
: نام جدول مرتبط با شیء.sql
: دستور SQL که برای ایجاد شیء استفاده شده است.
SELECT * FROM sqlite_master WHERE type = 'table';
6. DB2
SYSCAT
: این اسکیما شامل جدولهای کاتالوگ است.SYSCAT.TABLES
: اطلاعات درباره جدولها.SYSCAT.COLUMNS
: اطلاعات درباره ستونهای جدولها.SYSCAT.INDEXES
: اطلاعات درباره ایندکسها.
SELECT * FROM SYSCAT.TABLES WHERE TABSCHEMA = 'your_schema_name';
نکات مهم:
- دسترسی: دسترسی به جدولهای کاتالوگ معمولاً محدود به کاربران با مجوزهای خاص است.
- تغییرات: تغییر مستقیم در جدولهای کاتالوگ توصیه نمیشود و ممکن است باعث بروز مشکلات جدی در پایگاهداده شود.
- پرفورمنس: کوئریهای روی جدولهای کاتالوگ ممکن است بر عملکرد سیستم تأثیر بگذارند، به خصوص در پایگاهدادههای بزرگ.
با استفاده از این جدولها، میتوانید اطلاعات مفیدی درباره ساختار پایگاهداده خود به دست آورید و مدیریت بهتری روی آن داشته باشید.
جدول مبنا چیست؟
جدول مبنا (Base Table) در پایگاهدادهها به جدولی گفته میشود که به طور مستقیم از دادههای ذخیرهشده در دیسک تشکیل شده است. این جدولها به عنوان منبع اصلی دادهها در نظر گرفته میشوند و معمولاً توسط کاربران یا برنامهها بهطور مستقیم مورد استفاده قرار میگیرند.
ویژگیهای جدول مبنا:
- ذخیرهسازی مستقیم دادهها: دادهها بهطور مستقیم در این جدولها ذخیره میشوند.
- عدم وابستگی به دیگر جدولها: این جدولها معمولاً مستقل هستند و دادههای آنها از جدولهای دیگر استخراج نمیشود.
- پایگاه داده رابطهای: در پایگاهدادههای رابطهای، جدولهای مبنا بهعنوان جدولهای اصلی در نظر گرفته میشوند که بین آنها روابط (Relations) برقرار میشود.
مثال:
فرض کنید یک پایگاهداده برای مدیریت کتابخانه داریم. جدولهای مبنا در این پایگاهداده ممکن است شامل جدولهای زیر باشند:
- کتابها (Books): شامل اطلاعات کتابها مانند عنوان، نویسنده، سال انتشار و غیره.
- اعضا (Members): شامل اطلاعات اعضای کتابخانه مانند نام، آدرس و شماره عضویت.
- امانتها (Loans): شامل اطلاعات مربوط به امانتهای کتابها توسط اعضا.
این جدولها بهطور مستقیم دادهها را ذخیره میکنند و به عنوان جدولهای مبنا در نظر گرفته میشوند.
تفاوت با View:
- View: یک نمایش مجازی از دادهها است که از یک یا چند جدول مبنا استخراج میشود. View خود دادهای ذخیره نمیکند، بلکه یک پرسوجو (Query) است که در زمان اجرا دادهها را از جدولهای مبنا میخواند.
- جدول مبنا: دادهها بهطور فیزیکی در این جدولها ذخیره میشوند.
بهطور خلاصه، جدول مبنا به جدولی گفته میشود که دادهها بهطور مستقیم در آن ذخیره میشوند و به عنوان منبع اصلی دادهها در پایگاهداده استفاده میشود.
دیدگاه شما