پروژه - پیادهسازی SQL-RDBMS از ابتدا با C و ++C
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- چگونه تجزیهگرها (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 یا افرادی که روی فناوریهای مشابه کار میکنند.
پروژه - پیادهسازی SQL-RDBMS از ابتدا با C و ++C
-
دستور کار 04:39
-
محصول نهای دوره - دمو 01:09
-
RDBMS ساده شده 05:08
-
دوره پیشنیاز 02:46
-
دسترسی به کد 04:39
-
معماری پروژه 06:53
-
چرا به کتابخانه Mexpr نیاز داریم؟ 07:59
-
برنامه اجرای کوئری Select 09:24
-
کوئریهای SQL پرمصرف حافظه 04:49
-
شروع کار - ایجاد فایل SqlEnums.h - بخش 1 10:27
-
ادامه فایل SqlEnums.h - بخش 2 11:00
-
راهاندازی کامپوننت تجزیهگر پروژه 04:46
-
افزودن عبارات منظم در فایل Parser.l None
-
راهاندازی فایلهای تجزیهگر 12:42
-
کوئری Create در SQL - بحث درباره CFG 06:47
-
کوئری Create در SQL - پیادهسازی CFG 04:17
-
کوئری Create در SQL - تست تجزیهگر 02:54
-
کوئری Create در SQL - جمعآوری داده SQL 16:01
-
فیکس کردن باگ - ویدئوی درس 3.5 None
-
معرفی B+ Trees 05:44
-
سازگاری B+ Trees با RDBMS 08:12
-
یکپارچهسازی کتابخانه B+Tree 09:06
-
شروع کار دموی B+ Tree 08:42
-
نوشتن تابع مقایسه B+ Tree 08:07
-
پیادهسازی عملیاتهای CRUD برای B+ Tree 10:45
-
راهاندازی کتابخانه B+ Tree برای پروژه SQL 03:51
-
درک B+ Tree None
-
بررسی کوئری Create Table 07:23
-
تعریف جدول اسکیما 07:22
-
پیادهسازی جدول اسکیما 09:56
-
افزودن رکوردها به جدول اسکیما 02:15
-
تکلیف اجباری None
-
مقداردهی اولیه جدول رکورد 02:52
-
درک طرحبندی پایگاه داده (جدول Catalog) 04:43
-
تکلیف اجباری None
-
پیادهسازی پایگاه داده (جدول Catalog) 08:47
-
تکلیف - تست پیادهسازی خود None
-
کوئری Drop Table در SQL 01:33
-
نقشه راه کوئری Insert Into در SQL 05:26
-
نوشتن تجزیهگر کوئری Insert into 05:38
-
جمعآوری داده برای کوئری Insert into 04:00
-
بحث الگوریتمی درباره کوئری Insert Into 12:34
-
پیادهسازی الگوریتم کوئری Insert into 09:52
-
تمرین None
-
تست پروژه در این مرحله 01:33
-
یکپارچهسازی کتابخانه Mexpr - چالشها 03:29
-
تمرین None
-
یکپارچهسازی و کامپایل کتابخانه Mexpr 07:11
-
چالش یکپارچهسازی Mexpr - متعادلسازی Enums 09:35
-
بحث کلی درباره لینکدهی 07:23
-
یکپارچهسازی Mexpr - فیکس کردن ناسازگاری Enums 07:28
-
آخرین مرحله - مدیریت استک لکسیکال 05:42
-
آیا اپلیکیشن ماشینحساب شما هنوز به خوبی کار میکند؟ None
-
کوئریهای Select 09:15
-
وابستگی کوئریهای Select به درختان عبارات 06:54
-
API برای ساخت درخت عبارات 14:25
-
برنامه اجرای کوئری - ساختار داده 05:18
-
نوشتن تجزیهگر برای کوئری Select 08:30
-
تکلیف اجباری - گسترش تجزیهگر - پیادهسازی عملیات جیسان None
-
کوئری Select - تست تجزیهگر 04:09
-
عملیات جوین 10:39
-
ساختار داده Joined_row_t 06:39
-
تکلیف اجباری None
-
تغییرات کد مطابق ویدئوی درس قبلی 07:34
-
تکلیف اجباری - ساختاردهی مجدد جزئی کد None
-
API عملیات جوین برای پیادهسازی 08:00
-
Stateful Iterators 13:30
-
Iterators جدول - معرفی Init و De-Init 06:44
-
پیادهسازی API عملیات جوین 19:16
-
تست عملیات جوین 03:54
-
بلاک کردن عملیات جوین 03:00
-
هدف این بخش 03:00
-
تکلیف اجباری None
-
رزولوشن Operand و محاسبه خروجی Select 12:42
-
تعریف ساختار منبع داده و تابع رزولوشن 07:10
-
حل یک درخت عبارات 12:48
-
محاسبه عبارات ستونهای انتخاب شده 03:40
-
جزئیات مهم 03:13
-
تابع تبدیل Dtype به ساختار C 01:35
-
تابع چاپ خروجی 07:27
-
بیان مسئله 08:57
-
بهبود تجزیهگر Select_Q 09:05
-
تغییرات بکاند - گام 1 از 4 03:03
مشخصات آموزش
پروژه - پیادهسازی SQL-RDBMS از ابتدا با C و ++C
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:متوسط
- تعداد درس:83
- مدت زمان :08:16:01
- حجم :3.19GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy