هدف از دوره: تربیت متخصصان توسعه و مدیریت بانک اطلاعاتی PostgreSQL (سطح ۱)
در این بخش مقدماتی چون معرفی PostgreSQL، معرفی مقدماتی لینوکس (بالاتر از سطح LPIC 1)، نصب و راه اندازی سرویس، آغاز به کار، ساختار دیتابیس کلاستر، افزونه ها، مقدمات برنامه نویسی دیتابیس تحت PostgreSQL، تراکنش ها، ساختار Transaction Log و بک آپ، ریکاوری، ریستور، و ریستور در واحد زمان (Point-in-time Recovery) عنوان می شود.
مدت زمان دوره: 45 ساعت
پیش نیاز دوره: داشتن دانش لینوکس در سطح LPIC 1 ترجیح دارد اما به هر حال ضروریات لینوکس برای این دوره تدریس میشود، همچنین به دلیل مدیریت کردن PostgreSQL تحت لینوکس به تدریج دانش مورد نیاز به صورت عملی حاصل می شود. داشتن دانش یک RDBMS دیگر همچون MySQL یا SQL Server برای شروع این دوره بسیار توصیه می شود.
رزومه مدرس دوره : مهندس علی مومن
پیش گفتار:
سیستم مدیریت بانک داده شیئی-رابطه ای (ORDBMS: Object-relational Database Management System) PostgreSQL یک سیستم مدیریت دیتابیس تراکنشی کد-باز و رایگان قوی و پایدار با امکانات متنوع، قدرتمند، فراوان و امکان توسعه به چندین زبان رویه ای (Procedural Language) مختلف است. از جمله این زبان ها PL/PGSQL، PL/Python، PL/Tcl و PL/Perl هستند. این مسئله باعث می شود که PostgreSQL بتواند پذیرای طیف وسیعی از توسعه دهندگان باشد. ویژگی های شیئ گرایی آن باعث ساده تر شدن کار برنامه نویسان برای استفاده از قابلیت های برنامه نویسی شیئ گرا شده است. از نمونه امکانات دیگر می توان به عنوان مثال به امکاناتی چون دیتا تایپ های متنوع و Operator Overloading اشاره کرد باعث شده است توسعه دهندگان بتوانند ایندکس ها را به مفهومی گسترده تر و پیچیده تر تعریف کنند.
این RDBMS به صورت خاص برای سیستم عامل های رایگان و کد-باز بر پایه Unix از جمله Linux طراحی شده، اما قابل نصب شدن و استفاده بر روی همه سیستم عامل های عمده از جمله Windows، Unix، macOS، Solaris، سیستم عامل های BSD و غیره به صورت native و همچنین کانتینرها است. به علاوه از این ORDBMS روی Device های فراوانی استفاده می شود.
PostgreSQL همانند میزبان اصلی خود یعنی لینوکس، به شدت customizable بوده و از لحاظ feature ها و ماژول های فراوان اقماری قابل مدیریت است تا استفاده کنندگان حسب نیاز خود بتوانند feature های مطلوب خود را برای افزایش امکانات این RDBMS به صورت دلخواه نصب کنند. اما این ویژگی باعث پیچیده تر شدن مدیریت آن همچون لینوکس می شود. ماژول های PostgreSQL شامل ماژول های تجاری و رایگان می شود اما غالب آنها Open-source و رایگان هستند.
این RDBMS بسیار محبوب بوده و community بسیار گسترده ای از کارشناسان بسیار دارد که در ارتقاء PostgreSQL و ماژول های آن و همچنین حل مشکل کارشناسان دیگر مشارکت می کنند.
PostgreSQL در سطح Enterprise به صورت رایگان قابل استفاده است و همچنین میزبان عمده آن لینوکس نیز رایگان است و به همین دلیل شرکت های فراوانی آن را به عنوان سیستم ذخیره سازی داده اصلی یا یکی از سیستم های اصلی ذخیره سازی داده استفاده می کنند. این RDBMS در حال حاضر بسیار محبوب بوده و جایگاه قدرتمندی برای خود ایجاد کرده است.
PostgreSQL همچنین پلی برای دستیابی به RDBMS پیشرفته و توزیع شده CockroachDB نیز هست که قابلیت های فراوانی دارد.
در نهایت، براساس بررسی های آماری شرکت های مختلف و اطلاعات بدست آمده، غالب شرکت ها در دنیای امروزی از سیستم های Data Management هایبرید استفاده میکنند که یکی از مهمترین آنها PostgreSQL است. همچنین بر اساس نظرسنجی جدید شرکت ردگیت، غالب متخصصان حوزه Data Management باور دارند که متخصصان امروزی دیگر نمی توانند به یادگیری یک سولوشن Data Management اکتفا کنند و باید چندین DBMS را فراگیرند.
Course Contents
Introduction
Introduction to PostgreSQL
?Why PostgreSQL
Multi-Skilled DBAs and its necessity, Cloud Computing
?What does robustness mean in PostgreSQL
PostgreSQL vs. Other RDBMSs
References
Introduction to Linux 1
Brief Explanation, History, Distros
Quick Installation Guide
Basic Commands & Concepts 1
Introduction to Linux 2
Basic Commands and Concepts 2
References
Setup, Installation, Basic Configuration
Setup PostgreSQL RHEL &Debian 1
Setup PostgreSQL RHEL &Debian 2
Setup PostgreSQL on Docker
PostgreSQL Data Directory and Conf Files
Beginning to Work with PostgreSQL
PSQL
Meta Commands
SHOW Command
Other Clients
Basic Concepts and Objects
Relations
PG Binaries
Schemas
databases (Default and User)
basic security
Important System Catalogs
Migration to & From PostgreSQL
Extensions (+ some important extensions)
Internals of PostgreSQL
Structure
Data Structure
Data Low-Level Structure
Tablespaces etc
Process and Memory Architecture
Vacuuming
WAL Structure
Basic Development
PL/PGSQL
Concurrency Control
Transactions
Transaction Processing
Backup, Recovery
Backups
Backup types (Physical and Logical)
Base backup (Backup & Restore)
PITR