به نام پروردگار هدایت کننده به راه راست
دانشگاه اصفهان
ساختمان داده – دکتر رمضانی
پاییز ۰۲-۰۳
پروژه چهارم - سیستم پایگاه داده
طراحان پروژه : امیرعلی گلی – علی ابراهیمی
اهداف پروژه :
- کار با ساختمان داده درخت
- پیادهسازی عملیاتهای پرکاربرد درخت
- آشنایی با پایگاه دادهها
در این پروژه قرار است با استفاده از درخت B-Tree یک سیستم پایگاه داده را شبیهسازی کنید.
1- مقدمه
شما در ابتدا باید ساختمان داده B-Tree را به صورت کامل و با توابع مورد نیاز و عملیات Self-Balancing پیاده سازی کنید. سپس با استفاده از این ساختمان داده سیستم مدیریت پایگاه داده پیاده سازی کنید که برای عملیات جستجو، افزودن و حذف بهبود ایجاد میکند.
این پروژه به عنوان یک پایگاه داده جهت ذخیره و مدیریت اطلاعات انواع مختلف دادهها با استفاده از B-Tree طراحی شده است. در واقع کلیدها و ایندکس های پایگاه داده شما، همان نودهای B-Tree هستند که سرعت دسترسی به خانه های پایگاه داده را با استفاده از سرچ درختی افزایش میدهند.
توضیحات کامل پیاده سازی و کاربردهای B-Tree را میتوان از لینک مطالعه نمود.
همچنین برای آشنایی با پایگاهدادهها و نحوه کارکرد آن ها میتوانید از لینکهای زیر استفاده کنید :
- https://www.geeksforgeeks.org/what-is-database/
- https://www.javatpoint.com/what-is-rdbms
- https://www.w3schools.com/mysql/mysql_rdbms.asp
2- ویژگیها
2-1- ایجاد و مدیریت جداول
• ایجاد جداول با ویژگیهای مختلف مانند نام، نوع دادهها، و اطلاعات دیگر.
• افزودن، حذف و بهروزرسانی رکوردها در جداول.
2-2- پشتیبانی از انواع دادهها
• پشتیبانی از انواع مختلف دادهها از جمله عددی، رشته، و تاریخ.
• مدیریت اطلاعات با دقت و صحت.
2-3- ایجاد و مدیریت ایندکسها
• پیادهسازی ایندکسها با استفاده از B-Tree برای بهبود عملیات جستجو و مرتبسازی.
• ایجاد ایندکسهای اصلی، یکتا و غیر یکتا.
2-4- پشتیبانی از B+ Tree (امتیازی)
• امکان استفاده از B+ Tree به جای B-Tree به عنوان بخش امتیازی.
• بهبود عملکرد درخت به ویژه برای عملیات بازهای و جستجوهای پیچیده.
3- ساختار پروژه
پروژه به چندین بخش اصلی تقسیم میشود:
1- بخش BTree:
• پیادهسازی اصلی B-Tree با روشهای افزودن، جستجو و حذف.
• مدیریت توازن درخت.
2- بخش DatabaseTable:
• پیادهسازی جدول پایگاه داده با امکانات مدیریت رکوردها و ایندکسها.
• پشتیبانی از انواع دادهها و مدیریت اطلاعات.
3- بخش Index:
• پیادهسازی ایندکسها با استفاده از B-Tree یا B+ Tree (امتیازی).
• ایجاد ایندکسهای اصلی، یکتا و غیر یکتا.
- گرافیک
- استفاده از B+Tree بجای B Tree معمولی
- پیاده سازی Queryهای پیشرفته برای پایگاه داده
- این پروژه بصورت گروه های دونفری باید پیاده سازی شود.
- بستر پیاده سازی پروژه روی گیتهاب میباشد.
- سعی کنید هریک از بخشها را در یک کامیت جداگانه انجام دهید.
- رعایت اصول کدنویسی تمیز بخش بسیار زیادی از نمره را به خود اختصاص میدهد و درصورتی که کد کاملا به شکل غیراصولی پیاده سازی شده باشد. تحویل گرفته نمیشود.
- استفاده از هر زبان، فریمورک و رابطهای گرافیکی کاملا آزاد است. ( به غیر از زبان و فریمورک های پایتون )
- به افرادی که از تکلنولوژیهای جدید استفاده کنند، توکن تمدید اضافهتر داده خواهد شد.