لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش پروژه: پیادهسازی سیستم مدیریت پایگاه داده SQL-RDBMS از صفر با C/C++
- آخرین آپدیت
دانلود Project : Implement SQL-RDBMS from Scratch in C/C++
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
توسعه پروژه با C/C++، برنامهنویسی سیستم، پیادهسازی کلون PostgreSQL، پارسر SQL، درختهای B+، طرح اجرای کوئری (Query Execution Plan)
نحوه نوشتن پارسرهای SQL با استفاده از ابزارهای تحلیل لغوی (Lexical Analyzer)
نحوه تجزیه و ارزیابی عبارتهای ریاضی و منطقی
پیادهسازی داخلی RDBMS از صفر در زبان C و کوئریهای مختلف SQL
ساختارهای داده پیشرفته مانند درختهای B+، جداول هش (Hashtables) و غیره
ذخیرهسازی و سازماندهی دادهها روی دیسک و بازیابی آنها در زمان نیاز
پیادهسازی طرح اجرای کوئریهای SQL
پیشنیازها:
- آشنایی با کوئریهای پایه SQL یا تجربه کار با RDBMSها
- تسلط بر زبانهای برنامهنویسی C/C++ در سطح متوسط
- دانش پایه در مورد حافظه مجازی و نحوه عملکرد malloc/free
- اشتیاق به یادگیری و جستجوی دانش
- دانش تئوری درباره درختهای B+ (و دلیل مناسب بودن آنها برای RDBMS)
** ۲۹ دسامبر ۲۰۲۳ - در حال توسعه **
این دوره درباره یادگیری طراحی داخلی و پیادهسازی RDBMSها است. شما بارها از پایگاههای داده استفاده کرده و کوئریهای SQL نوشتهاید، اما هرگز به این فکر نکردهاید که RDBMSها در لایههای داخلی چگونه کار میکنند. این دوره دقیقاً به همین موضوع میپردازد.
این دوره درباره یادگیری دستورات SQL یا نحوه کار با پایگاه داده نیست؛ بلکه دورهای مخصوص توسعهدهندگان است.
ما گام به گام طراحی، پیادهسازی، ساختارهای داده و الگوریتمهایی را بررسی میکنیم که در کنار هم باعث میشوند کوئریهای SELECT شما اجرا شوند!
این محتوا در قالب دو بخش ارائه میشود - در بخش اول (این دوره)، یک RDBMS پایه (کلون PostgreSQL) پیادهسازی میکنیم که بتواند کوئریهای اصلی SELECT، CREATE، INSERT و DELETE را مدیریت کند. سپس با پشتیبانی از ویژگیهای پیشرفتهای مانند توابع Aggregate، Joinها، عبارتهای Where و Group by، قابلیتهای آن را ارتقا میدهیم. کوئریهای تودرتو (Nested) نیز پشتیبانی خواهند شد. این RDBMS کاملاً در RAM اجرا میشود و با پایان یافتن پردازش، تمام دادهها پاک میشوند.
در بخش دوم، پیادهسازی خود را برای ذخیرهسازی دائمی روی دیسک منتقل میکنیم (مشابه RDBMSهای واقعی) و پیچیدگیهای دیگر مانند خوانندگان/نویسندگان همزمان (Concurrent)، لاگهای Write-Ahead-Logging (WAL)، تراکنشها (Transactions)، هوکهای بهروزرسانی دیتابیس و غیره را پیادهسازی میکنیم.
با استاد خود مشورت کنید - این پروژه را به عنوان پروژه ترم یا پروژه سال آخر ارائه دهید. موفق باشید!
ناگفته نماند که این دوره پیشرفته است و برای کسانی طراحی شده که به دنبال دانش و تعالی هستند، نه صرفاً مدرک و شغل.
هشدار: سطح این دوره متوسط تا پیشرفته است. کسانی که هنوز با ساختارهای داده پایه مشکل دارند، بهتر است فعلاً از این دوره صرفنظر کنند. انتظار میرود شما در کدنویسی مسلط باشید.
سرفصل ها و درس ها
مقدمه
Introduction
برنامه کلی
Agenda
دموی محصول نهایی دوره
Final Product of this Course - Demo
RDBMS ساده شده
Simplified RDBMS
دوره پیشنیاز
Pre-Requisite Course
دسترسی به کدها
Code Access
پروژه: شروع به کار
Project : Getting Started
معماری پروژه
Project Architecture
چرا به کتابخانه Mexpr نیاز داریم؟
Why We need Mexpr Library ?
طرح اجرای کوئری Select
Select Query Execution Plan
کوئریهای SQL پرمصرف از نظر حافظه
Memory Hungry SQL Queries
شروع کار: ایجاد فایل SqlEnums.h - بخش اول
Getting Started - Creating SqlEnums.h file - Part1
ادامه ایجاد فایل SqlEnums.h - بخش دوم
Continued - SqlEnums.h file - Part2
راهاندازی بخش پارسر پروژه
Setting up the Project Parser Component
افزودن عبارات منظم (Regex) در فایل Parser.l
Adding Regular Expressions in Parser.l file
نمایش نظرات