آنچه یاد خواهید گرفت:
چگونه تجزیهگرها (SQL) را با استفاده از ابزار Lexical Analyzer بنویسیم؟
چگونه عبارات را تجزیه و ارزیابی کنیم؟ (عبارات ریاضی یا منطقی)
پیادهسازی اجزای داخلی RDBMS از ابتدا با زبان C و کوئریهای مختلف SQL
ساختارهای داده پیشرفته مانند B+Trees، جداول هش و غیره
ذخیره و سازماندهی داده روی دیسک و بازیابی تقاضا
پیادهسازی برنامه اجرای کوئریهای SQL
توضیحات دوره
در حال توسعه تا 29 دسامبر 2023
این دوره درباره یادگیری طراحی داخلی و پیادهسازی RDBMSs است. بارها از RDBMS استفاده کرده و چند کوئری SQL نوشتهاید، اما هرگز به این فکر نکردهاید که این سیستمها چگونه به صورت داخلی کار میکنند. این دوره دقیقاً به همین موضوع میپردازد.
این دوره به شما یاد نمیدهد چگونه کوئری SQL بنویسید یا با RDBMSs کار کنید. این دوره برای توسعهدهندگان است.
ما طراحی گامبهگام، پیادهسازی، ساختارهای داده و الگوریتمهایی که با هم کار میکنند تا کوئریهای SELECT شما اجرا شوند را بررسی میکنیم.
این دوره به دو بخش تقسیم میشود - در بخش اول (این دوره) یک RDBMS اولیه (کلون PostgreSQL) را پیادهسازی میکنیم که قادر به پردازش کوئریهای ساده SQL مانند SELECT و CREATE و INSERT و DELETE است. ما قابلیتها را با افزودن ویژگیهای پیشرفته مانند توابع تجمیع، جوینها، WHERE Clause و Group by Clause توسعه میدهیم. همچنین کوئریهای تودرتو نیز قابل پشتیبانی خواهند بود. این RDBMS به صورت کامل در حافظه RAM وجود دارد و با پایان اجرای برنامه، همه داده از بین میروند.
در بخش بعدی دوره، پیادهسازی RDBMS را برای ذخیرهسازی پایدار روی دیسک توسعه میدهیم (مانند RDBMS واقعی) و پیچیدگیهای پایگاه داده مانند ریدرها و رایترهای همزمان، Write-Ahead-Logging (WAL)، تراکنشها، هوکهای بروزرسانی پایگاه داده و غیره را پیادهسازی میکنیم.
بدیهی است که این دوره پیشرفته است و برای افرادی است که به دنبال دانش و تخصص هستند نه اینکه فقط دنبال مدرک و شغل باشند.
هشدار - سطح این دوره از متوسط تا پیشرفته است. اگر هنوز در درک ساختارهای داده اولیه مشکل دارید، این دوره ممکن است برای شما مناسب نباشد. انتظار میرود تسلط کاملی به کدنویسی داشته باشید.
این دوره برای چه کسانی مناسب است؟
دانشجویان با پروفایل توسعهدهنده
حرفهایهای شاغل
توسعهدهندگان RDBMS یا افرادی که روی فناوریهای مشابه کار میکنند.