به نام خدا شرح پروژه فاز اول درس پایگاه دادهها در این پروژه هدف تولید یک سیستم پایگاه دادهها بهصورت اولیه و با حداقل امکانات است .پایگاه داده ذکرشده بهصورت تک کاربره کار میکند و درخواستهای کاربر را از ورودی استاندارد میخواند و پاسخهای مربوطه را در خروجی استاندارد چاپ میکند .پایگاه داده بهصورت خط به خط از کاربر ورودی گرفته و پس از دریافت ورودی خروجی را چاپ میکند .برای پیادهسازی این پروژه از باید زبان Javaاستفاده کنید و شرح مشخصات پروژه را با دقت مطالعه کنید .با توجه به اینکه ارزیابی پروژه شما بهصورت کامپیوتری انجام میشود ،باید دقیقاً استانداردها عمل شده و خروجیها درست مانند خروجی ذکرشده باشد .پایگاه دادههای تولیدشده محتویات دادهای را بر روی حافظه اصلی ذخیره میکند و بههیچوجه هیچ فایلی در سیستم تولید نمیکند. در فاز اول هر گروه پایگاه دادههای خود را با امکانات گفتهشده تولید میکند و در فازهای بعدی همان برنامه تکمیل میشود و امکانات جدید به آن اضافه میشود .توصیه میشود برای اینکه در فازهای بعدی راحتتر باشید طراحی خوبی برای برنامه خودتان در نظر بگیرید. مشخصات فنی پایگاه دادههای شما از دو نوع فیلد در جدولها پشتیبانی میکند .که مدل عددی و مدل رشتهای است .مدل عددی یک عدد حداکثر 61رقمی را مدل میکند و مدل رشتهای یکرشته از کاراکترهای ASCIIرا نمایش میدهد. دستورهایی که باید پشتیبانی شود بهصورت زیر است. دستور : CREATE TABLE این دستور برای معرفی جدول جدید به پایگاه دادهها استفاده میشود و فرمت زیر را دارد .در این دستور جدولی بانام مشخص و ستونهای مشخص در پایگاه دادهها ساخته میشود. ;)CREATE TABLE TABLE_NAME ( COLUMN_NAME1 DATA_TYPE,COLUMN_NAME2 DATA_TYPE,.... TABLE_NAME نام جدول حداکثر 621حرف بهصورت ASCII COLUMN_NAME نام ستون حداکثر 621حرف بهصورت ASCII DATA_TYPE INTیا ( VARCHARبه معنای عددی و یا رشتهای ) حداکثر 22عدد تعداد ستونها خروجی مثال خروجی مثال TABLE CREATED ;)CREATE TABLE STUDENT (ID INT,FNAME VARCHAR,LNAME VARCHAR TABLE CREATED دستور : CREATE INDEX این دستور برای تولید شاخص برای یک ستون یک جدول استفاده میشود. TABLE_NAME COLUMN_NAME INDEX_NAME خروجی )CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME نام جدول موجود در پایگاه داده نام ستون موجود در جدول نام شاخص INDEX CREATED ;)CREATE INDEX STIDINDEX ON STUDENT (ID مثال INDEX CREATED خروجی مثال دستور :INSERT این دستور برای اضافه کردن رکورد به جدولها استفاده میشود .نام جدول و مقادیر رکورد باید در دستور وارد شود. TABLE_NAME VALUE ;)INSERT INTO TABLE_NAME VALUES (VALUE1,VALUE2,... نام جدول قبالً معرفیشده حداکثر 621حرف بهصورت ASCII مقدار فیلد رکورد بهصورت عددی و یا رشتهای درون ”“ و یا NULL برابر ستونهای جدول خروجی RECORD INSERTED تعداد فیلدها مثال خروجی مثال ;)INSERT INTO STUDENT VALUES ( 90111111,”FOO”,NULL RECORD INSERTED دستور :UPDATE این دستور برای تغییر رکوردها در جدولها استفاده میشود .ستونی که باید تغییر کند به همراه مقدار جدید مشخص میشود .شرط تغییر رکورد نیز در انتهای دستور قرار میگیرد. ;UPDATE TABLE_NAME SET COLUMN=COMPUTE_VALUE WHERE TUPLE_CONDITION TABLE_NAME نام جدول قبالً معرفیشده حداکثر 621حرف بهصورت ASCII COLUMN نام ستونی که قرار است متغیرش تغییر کند COMPUTE_VALUE مقدار انتخابی ستون با روش مقدار محاسبه شدنی TUPLE_CONDITION شرط انتخاب رکورد از جدول ;UPDATE STUDENT SET LNAME=FNAME+ID WHERE TRUE مثال ;UPDATE STUDENT SET FNAME=”Ali” WHERE ID=90111111 دستور :DELETE این دستور برای حذف رکوردها از جدولها استفاده میشود .رکوردهایی که شرط را دارند از جدول پاک میشوند. TABLE_NAME TUPLE_CONDITION مثال ;DELETE FROM TABLE_NAME WHERE TUPLE_CONDITION نام جدول قبالً معرفیشده حداکثر 621حرف بهصورت ASCII شرط انتخاب رکورد از جدول ;DELETE FROM STUDENT WHERE ID=90111111 دستور :SELECT این دستور برای بازیابی داده از پایگاه دادهها استفاده میشود .شرط انتخاب و نام جدول و ستونهای الزم مشخص میشود. ;SELECT COLUMN_NAME1,COLUMN_NAME2 FROM TABLE_NAME WHERE TUPLE_CONDITION TABLE_NAME نام جدول قبالً معرفیشده حداکثر 621حرف بهصورت ASCII COLUMN_NAME نام ستونی که قرار است در جدول خروجی قرار داشته باشد TUPLE_CONDITION شرط انتخاب رکورد از جدول در خط اول نام ستونها بهصورت با ویرگول جداشده خروجی در خطهای بعدی در هر خط اطالعات متناظر یک رکورد بهصورت با ویرگول جداشده. مثال خروجی مثال درصورتیکه رکوردی پیدا نشد NO RESULTS : ;SELECT FNAME FROM STUDENT WHERE TRUE ;”SELECT ID,FNAME FROM STUDENT WHERE LNAME=”BAR برای درخواست اول : FNAME Ali Reza برای درخواست دوم : ID,FNAME 90111111,Reza 91111111,Ali شرط رکورد ( : ) TUPLE CONDITION شرط رکورد در بعضی از دستورات باال است و در غالب یک گزاره است این گزاره برای بعضی از رکوردهای یک جدول درست است و برای بقیه غلط است .اگر شرط برای یک رکورد درست باشد آن رکورد انتخاب میشود .در جدول زیر شرطها مشخصشدهاند. شرط رکورد توضیحات TRUE برای همه رکوردها درست است. FALSE برای همه رکوردها غلط است. COLNAME=COMPUTE_VALUE درصورتیکه مقدار ستون برابر با مقدار محاسبه شدنی باشد درست است COLNAME<COMPUTE_VALUE در صورت کوچکتر بودن مقدار ستون از مقدار محاسبه شدنی درست است. ( برای رشتهای با استفاده از ترتیب دیکشنری ) COLNAME>COMPUTE_VALUE مانند باال ( عملگر بزرگتر ) COLNAME<=COMPUTE_VALUE مانند باال ( عملگر کوچکتر و یا مساوی ) COLNAME<=COMPUTE_VALUE مانند باال ( عملگر کوچکتر و یا مساوی ) )(TUPLE CONDITION) AND (TUPLE CONDITION در صورت درست بودن هر دو شرط درست است. )(TUPLE CONDITION) OR (TUPLE CONDITION در صورت درست بودن حداقل یکی از دو شرط درست است NOT TUPLE CONDITION در صورت درست نبودن شرط درست است. مثال : )(A=2) AND (B=4 )(NOT A=2) OR (B>5 )((B=1) OR (B=2)) AND (NOT A=1 A<A+B مقدار محاسبه شدنی : COMPUTE_VALUE مقدار محاسبه شدنی یک مقدار است که برحسب مقادیر فیلدهای یک رکورد به دست میآید .برای توضیحات بیشتر به توضیحات زیر توجه کنید. مقدار محاسبه شدنی توضیح مثال مقدار ثابت مقدار ثابت بهصورت عددی و یا رشتهای 3یا ”“Ali مقدار یک فیلد مقدار فیلد یک رکورد FNAME مقدار عملگر دار عملگر مابین دو مقدار محاسبه شدنی ID+2 FNAME+” “+LNAME (جمع رشته و عدد رشته است ) (جمع دو رشته به معنای الصاق است) عملگرهای عددی * ، - ، +و تقسیم ( بدون اولویت از چپ به راست ) عملگر رشتهای + 2+2*4 8 1+1+2/2 4 ”“Ali” + “Reza” “AliReza توضیحات تکمیلی پروژهها بر روی یک سیستم 16بیتی مجهز به نسخه 1.8جاوا تست خواهد شد پس حتماً از صحت اجرای برنامه خود بر روی این محیط اطمینان حاصل نمایید. نکته مهم :میتوانید فرض کنید که همه دستوراتی که به سیستم داده می شوند درست هستند و ایرادی در دستورات وجود ندارد. (گروه های پنج نفره باید خطا در دستورات ورودی را تشخیص دهند و خطای درست را چاپ کنند) زمان اجرای برنامه شما باید زمان معقولی باشد و نباید برای پردازش یک درخواست زمان زیادی طول بکشد .مخصوصاً بر روی شاخصها دقت کنید جستجو شرط رکوردی بر روی رکوردهایی که شاخص دارند باید از ) O(log nباشد. زمان نهایی ارسال پروژهها روز 61آبان 46است و ارسال پس از ساعت 62شب شامل کسر نمره خواهد شد .برای ارسال پروژه دو فایل OurSQL.jarو پوشه srcکه کد برنامه در آن قرار دارد را بهصورت فشرده تحت فرمت zipبانام DBProjectP1_GROUPNO#به ایمیل behinm@gmail.comارسال نمایید .این ایمیل با عنوان نام فایل زیپ و متن خالی باشد. با آرزوی موفقیت بهین موالیی
© Copyright 2025 Paperzz