آموزش پروژه: پیاده‌سازی سیستم مدیریت پایگاه داده 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

پارسر کوئری SQL برای Create Table Create Table SQL Query Parser

  • راه‌اندازی فایل‌های پارسر Setting Up Parser files

  • کوئری Create: بحث درباره CFG SQL Create Query : CFG Discussion

  • کوئری Create: پیاده‌سازی CFG SQL Create Query : CFG Implementation

  • کوئری Create: تست پارسر SQL Create Query : Testing the Parser

  • کوئری Create: جمع‌آوری داده‌های SQL SQL Create Query : SQL Data Collection

  • رفع باگ ویدیو ۳.۵ Bug Fix - Lecture Video 3.5

یکپارچه‌سازی درخت‌های B+ Integrating B+ Trees

  • معرفی درخت‌های B+ Introducing B+ Trees

  • انطباق درخت‌های B+ با RDBMS B+Trees adaptability to RDBMS

  • یکپارچه‌سازی کتابخانه B+Tree B+Tree Library Integration

  • دموی شروع کار با B+Tree B+ Tree Demo Getting Started

  • نوشتن تابع مقایسه‌ای B+Tree Writing B+ Tree Comparison Function

  • پیاده‌سازی عملیات CRUD در B+Tree Implement B+ Tree CRUD Operations

  • راه‌اندازی کتابخانه B+Tree برای پروژه SQL Setting Up B+ Tree Library for SQL Project

  • درک عمیق درخت B+ B+ Tree understanding

پیاده‌سازی بک‌اند کوئری Create Table Implementing SQL Create table query : Back End

  • کوئری Create Table: بررسی کلی Create Table Query : Overview

  • تعریف جدول Schema Defining Schema Table

  • پیاده‌سازی جدول Schema Schema Table Implementation

  • افزودن رکوردها به جدول Schema Adding Records to Schema Table

  • تکلیف اجباری Mandatory Assignment

  • مقداردهی اولیه جدول رکوردها Initializing Record Table

  • درک ساختار دیتابیس (جدول Catalog) Understanding Database Layout ( Catalog Table )

  • تکلیف اجباری Mandatory Assignment

  • پیاده‌سازی دیتابیس (جدول Catalog) Implementing Database (Catalog Table)

  • تکلیف: تست پیاده‌سازی شما Assignment - Test your Implementation

کوئری SQL برای Drop Table Drop Table SQL Query

  • کوئری SQL برای Drop Table Drop Table SQL Query

پشتیبانی از کوئری Insert Into Supporting Insert Into SQL Query

  • نقشه راه کوئری Insert Into Insert Into SQL Query - RoadMap

  • نوشتن پارسر کوئری Insert Into Writing Insert into Query Parser

  • کوئری Insert Into: جمع‌آوری داده‌ها Insert into Query - Data Collection

  • کوئری Insert Into: بحث در مورد الگوریتم Insert into Query - Algorithm Discussion

  • کوئری Insert Into: پیاده‌سازی الگوریتم Insert into Query - Algorithm Implementation

  • تکلیف Assignment

  • تست پروژه در این مرحله! Testing the project at this point !

یکپارچه‌سازی کتابخانه MathExpression Integrating MathExpression Library

  • چالش‌های یکپارچه‌سازی کتابخانه Mexpr Integrating Mexpr Library - Challanges

  • تکلیف Assignment

  • یکپارچه‌سازی و کامپایل کتابخانه Mexpr Mexpr Library Integration and Compilation

  • چالش یکپارچه‌سازی Mexpr: توازن Enumsها Mexpr Intgn Challange - Balancing Enums

  • بحث کلی درباره Linking Generic Discussion on Linking

  • یکپارچه‌سازی Mexpr: رفع عدم سازگاری Enums Mexpr Intgn - Fixing the Enums Incompatibility

  • گام نهایی: مدیریت Lexical Stack Last Step : Handling Lexical Stack

  • آیا اپلیکیشن ماشین‌حساب شما هنوز درست کار می‌کند؟ Is your Calculator Application still working fine ?

پیاده‌سازی فرانت‌اند کوئری Select Implementing SQL Select query : Front End

  • کوئری‌های Select The Select Queries

  • بازبینی طرح اجرای کوئری (ReVisit) Query Execution Plan ( ReVisit )

  • وابستگی کوئری‌های Select به درخت‌های عبارت (Expression Trees) Select queries dependency on Expression Trees

  • API برای ساخت درخت عبارت API to Build Expression Tree

  • ساختار داده طرح اجرای کوئری Query Execution Plan - Data structure

  • کوئری Select: نوشتن پارسر Select Query - Writing Parser

  • تکلیف اجباری: توسعه پارسر و پیاده‌سازی عملیات JOIN Mandatory Assignment - Extending Parser : Implement JOIN operation

  • کوئری Select: تست پارسر Select Query - Testing the Parser

پیاده‌سازی عملیات Join Implementing Join Operation

  • عملیات Join The Join Operation

  • ساختار داده Joined_row_t Joined_row_t Data Structure

  • تکلیف اجباری Mandatory Assignment

  • تغییرات کد بر اساس ویدیوی قبلی Code Changes as per prev lecture video

  • تکلیف اجباری: بازسازی جزئی کد Mandatory Assignment - Minor Code ReStructuring

  • پیاده‌سازی Join API Join API to Implement

  • تکرارکننده‌های وضعیت‌دار (Stateful Iterators) Stateful Iterators

  • تکرارکننده‌های جدول: Init و De-Init Table Iterators - Init and De-Init

  • پیاده‌سازی Join API Join API Implementation

  • تست عملیات Join Join Operation Testing

محاسبه خروجی کوئری Select Select Query Output Calculation

  • عملیات Blocking Join Blocking Join Operation

  • هدف از این بخش Goal of this section

  • تکلیف اجباری Mandatory Assignment

  • تحلیل عملوندها و محاسبه خروجی Select Operand Resolution and Computing Select output

  • تعریف ساختار Data Src و تابع Resolution Defining Data Src structure and Resolution Fn

  • تحلیل یک درخت عبارت (Expression Tree) Resolving an Expression Tree

  • محاسبه عبارت‌های ستون‌های Select Select Columns Expressions Calculation

  • نگاه کلی به تصویر بزرگتر Bigger Picture

  • تابع تبدیل Dtype به C struct Conversion Function Dtype -> C struct

  • تابع چاپ خروجی Qutput Printing Function

پشتیبانی از نام ستون‌ها و Alias Column Names and Alias Support

  • تغییرات بک‌اند - گام ۱ از ۴ Backend Changes - Step 1/4

نمایش نظرات

آموزش پروژه: پیاده‌سازی سیستم مدیریت پایگاه داده SQL-RDBMS از صفر با C/C++
جزییات دوره
8 hours
69
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
431
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

من شبکه می سازم!

Shiwani Nigam Shiwani Nigam

مجری بازاریابی دیجیتال

Ekta Ekta Ekta Ekta

مدیر تاسیسات