فصل 1. آشنایی با مفاهیم پیشرفته در PostgreSQL
- تفاوت PostgreSQL با سایر پایگاههای داده رابطهای (RDBMS)
- ویژگیهای کلیدی PostgreSQL (ACID، MVCC، و … )
- معماری داخلی PostgreSQL (Backend و Frontend)
- مدیریت تراکنشها و نسخهبرداری چندگانه (MVCC)
فصل 2. معماری PostgreSQL و نحوه ذخیرهسازی دادهها
- ساختار صفحات (Pages) و بلوکها (Blocks)
- مدیریت حافظه (Shared Buffers، Work Memory، Temp Buffers)
- ساختار جدولها و نحوه نگهداری دادهها
- نحوه نگهداری و مدیریت فایلهای WAL (Write-Ahead Logging)
فصل 3. ویژگیهای پیشرفته PostgreSQL در مقایسه با سایر پایگاههای داده
- پشتیبانی از دادههای ساختار یافته و غیرساختار یافته (JSON/JSONB، XML)
- قابلیت پشتیبانی از دادههای مکانی (GIS) و افزونه PostGIS
- مقایسه سیستم ایندکسها (B-Tree، GIN، GiST) با سایر پایگاهها
- قابلیتهای Query Optimization و مدیریت پرسوجوهای پیچیده
فصل 4. بررسی نسخههای مختلف و قابلیتهای آنها
- مرور تاریخچه PostgreSQL و پیشرفت نسخهها
- تغییرات کلیدی در نسخههای اخیر (مثلاً 14 و 15)
- انتخاب نسخه مناسب برای محیطهای مختلف (تولید، توسعه، آزمایش)
- معرفی توزیعها و نسخههای سفارشی (مانند Amazon Aurora، Citus، TimescaleDB)
فصل 5. کاربردهای PostgreSQL در سناریوهای پیشرفته
- استفاده از PostgreSQL برای دادههای تحلیلی و OLAP
- کاربردهای عملی PostgreSQL در صنعت (فینتک، تجارت الکترونیک، IoT)
- دلایل انتخاب PostgreSQL در محیطهای ابری و مقیاسپذیر
فصل 1. آمادهسازی سیستم برای نصب
- بررسی نیازمندیهای سیستمی (RAM، CPU، دیسک)
- نصب ابزارهای پیشنیاز (GCC، Make، Libraries)
- پیکربندی فایروال برای دسترسی به PostgreSQL
فصل 2. روشهای نصب PostgreSQL
- نصب از طریق پکیج منیجر:
- نصب در Linux (Debian/Ubuntu:
apt-get، CentOS/RedHat:yumیاdnf) - نصب در macOS با Brew
- نصب در Windows با Installer
- نصب در Linux (Debian/Ubuntu:
- نصب از سورسکد:
- دانلود سورس از وبسایت PostgreSQL
- کامپایل و نصب با استفاده از ابزارهای خط فرمان (
configure,make,make install) - تنظیم مسیرهای محیطی (
PATH)
فصل 3. پیکربندی اولیه پس از نصب
- تنظیم محل ذخیرهسازی دادهها (
initdb) - تنظیم مالکیت و مجوزها برای دایرکتوری دادهها
- شروع سرویس PostgreSQL (
pg_ctlیاsystemctl)
فصل 4. پیکربندی فایلهای اصلی
- تنظیمات پیشرفته در فایل
postgresql.conf:- تغییر پورت پیشفرض
- تنظیمات حافظه (Shared Buffers, Work Memory)
- تنظیمات اتصالات همزمان (Max Connections)
- مدیریت دسترسیها در فایل
pg_hba.conf:- تعریف روشهای Authentication (MD5، SCRAM، Peer)
- محدود سازی دسترسیها بر اساس IP یا شبکه
فصل 5. مدیریت سرویس PostgreSQL
- راهاندازی سرویس بهصورت خودکار در Startup
- مدیریت سرویس با دستورات
systemctl,service, یاpg_ctl - بررسی وضعیت و گزارشات سرویس
فصل 6. ساخت پایگاه داده و کاربر اولیه
- ساخت پایگاه داده اولیه با دستور
createdb - ایجاد کاربران (Roles) اولیه با دستور
createuser - اختصاص مجوزها به کاربران
فصل 7. نصب PostgreSQL در کانتینرها
- نصب PostgreSQL در Docker:
- دانلود و اجرای Image آماده PostgreSQL
- پیکربندی محیطی کانتینر (Volumes، Ports)
- نصب در Kubernetes با Helm Charts:
- راهاندازی StatefulSet برای PostgreSQL
- مدیریت مقیاسپذیری و دسترسی بالا
فصل 8. تنظیمات دسترسی از راه دور
- فعالسازی دسترسی از راه دور در
postgresql.conf(listen_addresses) - افزودن IPهای مجاز در
pg_hba.conf - تست اتصال از کلاینتهای راه دور با ابزارهایی مثل
psqlیا نرمافزارهای مدیریت گرافیکی
فصل 9. مدیریت نسخهها و بهروزرسانی
- نصب نسخههای مختلف PostgreSQL روی یک سیستم
- مدیریت نسخهها با ابزارهای Containerization
- بهروزرسانی و ارتقای نسخه PostgreSQL بدون Downtime
فصل 10. ابزارهای مرتبط با نصب و راهاندازی
- استفاده از ابزارهای مدیریتی مثل
pgAdmin,DBeaver - نصب افزونههای مفید مانند
PostGIS,TimescaleDB - پیکربندی ابزارهای Backup و Replication
فصل 11. نکات مربوط به امنیت در نصب
- تنظیم مجوزها برای فایلهای پیکربندی
- فعالسازی ارتباطات امن با SSL/TLS
- محدود سازی دسترسیها بر اساس کاربران و شبکهها
فصل 1. مفاهیم پایه کاربران و نقشها
- تفاوت بین کاربران و نقشها (Roles vs. Users)
- ایجاد کاربران و نقشهای جدید
- اصول تعریف مجوزها (Permissions)
فصل 2. ایجاد و مدیریت نقشها
- ایجاد نقشها با دسترسیهای خاص
- تنظیم سطوح دسترسی برای نقشها (Login، Superuser، Create DB، Replication)
- استفاده از ویژگیهای Inheritance در نقشها
- مدیریت نقشهای گروهی (Group Roles)
فصل 3. مدیریت مجوزها
- اعطای مجوزها (GRANT)
- در سطح پایگاه داده
- در سطح جداول، ستونها و Sequenceها
- لغو مجوزها (REVOKE)
- مدیریت مجوزها در سطح Function و View
فصل 4. کنترل دسترسی ردیفی (Row-Level Security – RLS)
- پیادهسازی RLS در جداول
- ایجاد قوانین (Policies) برای کنترل دقیق دسترسی
- تست و اعتبارسنجی دسترسیهای RLS
فصل 5. مدیریت دسترسی کاربران
- محدود سازی دسترسی کاربران به پایگاه دادهها
- تنظیم دسترسی در سطح شبکه با استفاده از فایل
pg_hba.conf - مدیریت Connection Limits برای کاربران
فصل 6. مدیریت سیاستهای رمز عبور
- تنظیم قوانین پیچیدگی رمز عبور
- محدودیتهای زمان انقضای رمز عبور
- مدیریت تغییر رمز عبور (ALTER ROLE)
فصل 7. مانیتورینگ و رفع مشکلات امنیتی کاربران
- بررسی لاگهای دسترسی کاربران
- شناسایی فعالیتهای غیرمجاز
- استفاده از ابزارهای مانیتورینگ مانند
pg_stat_activity
فصل 8. احراز هویت پیشرفته
- استفاده از مکانیزمهای احراز هویت (MD5، SCRAM، GSSAPI)
- تنظیم SSL/TLS برای ارتباط امن
- احراز هویت بر اساس Active Directory یا LDAP
فصل 9. اسکریپتنویسی برای مدیریت کاربران و مجوزها
- استفاده از اسکریپتهای SQL برای مدیریت خودکار کاربران
- نمونه اسکریپتهای مدیریت گروهی کاربران
فصل 10. بهترین شیوهها برای امنیت کاربران
- استفاده از نقشهای حداقل دسترسی (Least Privilege Principle)
- مدیریت دسترسیها بر اساس اصول Least Authority
- مستندسازی دسترسیها و مجوزها برای اطمینان از شفافیت
فصل 1. طراحی اسکیما (Schema Design)
- تحلیل نیازمندیها و طراحی اولیه:
- بررسی نیازهای کسبوکار و شناسایی موجودیتها و روابط.
- استفاده از ERD (Entity-Relationship Diagram) برای طراحی.
- عادیسازی پایگاه داده:
- بررسی قوانین عادیسازی (Normal Forms: 1NF، 2NF، 3NF و BCNF).
- حذف دادههای تکراری و بهینهسازی ساختار جداول.
- طراحی Denormalized:
- زمانی که سرعت مهمتر از عادیسازی است.
- ایجاد جداول تجمیعی و ذخیره دادههای پیشمحاسبهشده.
- نامگذاری استاندارد:
- ایجاد استانداردهای نامگذاری برای جداول، ستونها و ایندکسها.
- مستندسازی اسکیما:
- استفاده از ابزارهایی مانند pgAdmin یا DBeaver برای مستندسازی اسکیما.
فصل 2. انواع ایندکسها (Indexes)
- ایندکسهای پایه:
- B-Tree Index: پیشفرض برای عملیات SELECT.
- Hash Index: مناسب برای جستجوهای دقیق.
- ایندکسهای پیشرفته:
- GiST (Generalized Search Tree): مناسب برای دادههای فضایی.
- GIN (Generalized Inverted Index): برای جستجوهای سریع در دادههای JSON و Full-Text.
- BRIN (Block Range Index): مناسب برای دادههای بزرگ با ترتیب خاص.
- ایندکسهای ترکیبی و چند ستونی:
- استفاده از چند ستون در ایندکس برای بهبود سرعت جستجو.
- ایندکسهای جزئی (Partial Index):
- تعریف ایندکس برای بخشی از دادهها بر اساس شرط مشخص.
- ایندکسهای Expression-Based:
- ایجاد ایندکسها بر روی مقادیر محاسبهشده.
فصل 3. بهینهسازی جداول
- فشردهسازی دادهها:
- استفاده از فشردهسازی برای کاهش فضای ذخیرهسازی.
- حذف و مدیریت دادههای قدیمی:
- پارتیشنبندی یا انتقال دادههای قدیمی به آرشیو.
- انواع داده مناسب:
- انتخاب انواع داده متناسب با نیاز (مثل TEXT در برابر VARCHAR).
- Column Store vs Row Store:
- مقایسه بین ذخیرهسازی ستونی و ردیفی و استفاده در شرایط خاص.
فصل 4. مدیریت پارتیشنبندی (Partitioning)
- پارتیشنبندی افقی (Horizontal Partitioning):
- تقسیم جداول بر اساس محدوده (Range) یا لیست (List).
- پارتیشنبندی عمودی (Vertical Partitioning):
- جدا کردن ستونهای کم استفاده به جداول دیگر.
- ایجاد و مدیریت پارتیشنها:
- ایجاد پارتیشن با دستورات PostgreSQL.
- پارتیشنبندی خودکار:
- استفاده از Ruleها و Triggerها برای مدیریت خودکار پارتیشنها.
فصل 5. بهینهسازی عملکرد
- Index Maintenance:
- تحلیل و بازسازی ایندکسهای قدیمی با REINDEX.
- Query Caching:
- استفاده از Materialized Views برای ذخیره نتایج پرمصرف.
- Vacuuming و Autovacuum:
- مدیریت فضای ذخیرهسازی با VACUUM و تحلیل آن.
- Query Execution Plans:
- استفاده از Explain برای بررسی برنامههای اجرای پرسوجو.
فصل 6. ابزارهای کمکی
- طراحی و مستندسازی:
- pgModeler، dbDiagram.io
- تحلیل و بهینهسازی:
- استفاده از ابزارهای pg_stat_statements و pgHero.
فصل 1. Subqueries (زیرپرسوجوها)
- Subqueries در SELECT، FROM و WHERE
- Subqueries همبسته (Correlated Subqueries)
- مقایسه بین Subqueries و JOIN
فصل 2. Common Table Expressions (CTEs)
- معرفی CTE و کاربرد آن
- CTE های بازگشتی (Recursive CTEs) برای پیمایش دادههای سلسلهمراتبی
- بهینهسازی پرسوجوهای پیچیده با CTE
فصل 3. Window Functions
- استفاده از OVER برای تعریف پنجرهها
- Aggregate Functions در Window Queries (مانند SUM، AVG، RANK)
- تابعهای RANK، DENSE_RANK، ROW_NUMBER
- کار با LAG، LEAD برای تحلیل دادهها
فصل 4. کار با دادههای غیرساختار یافته
- ذخیرهسازی دادهها با فرمت JSON و JSONB
- پرسوجوهای پیشرفته با JSON (مانند ->، ->>)
- جستجوی دادههای تو در تو در JSON
- تبدیل دادههای JSON به جداول (json_to_record، json_to_array)
فصل 5. ایجاد و کار با جداول موقت
- ایجاد Temporary Tables
- بهینهسازی عملکرد با جداول موقت
- استفاده از UNLOGGED Tables برای عملیات سریعتر
فصل 6. Query Optimization
- استفاده از EXPLAIN و EXPLAIN ANALYZE
- شناسایی Bottleneck ها در پرسوجوها
- استفاده از Hints برای راهنمایی بهینهساز PostgreSQL
- Index Scan در مقابل Sequential Scan
فصل 7. کار با دادههای زمانی
- استفاده از TIMESTAMP، INTERVAL و DATE
- Queryهای پیشرفته با دادههای زمانی
- محاسبات فاصله زمانی و مقایسه دادههای تاریخی
- استفاده از TO_CHAR و TO_DATE برای فرمتبندی دادههای زمانی
فصل 8. کار با دادههای جغرافیایی
- معرفی افزونه PostGIS برای دادههای جغرافیایی
- استفاده از دادههای Geometry و Geography
- پرسوجوهای نزدیکترین نقاط و محاسبات فاصله
فصل 9. پرسوجوهای Full-Text Search
- جستجوی متنی با استفاده از قابلیتهای tsvector و tsquery
- ترکیب جستجوی متنی با دیگر فیلترها
- استفاده از To_tsvector و To_tsquery برای تحلیل متنی
فصل 10. پرسوجوهای تحلیلی پیچیده
- ترکیب چندین CTE و Subquery
- تحلیل دادههای چند بعدی (OLAP)
- استفاده از Cube، Rollup و Grouping Sets
خدمات شبکه فراز نتورک | پیشرو در ارائه خدمات دیتاسنتری و کلود

نقد و بررسی وجود ندارد.