Issuu on Google+

‫وزارت تحصیلت عالی‬ ‫پوهنتون پولیتخنیک کابل‬ ‫پوهنحی انجینری کمپیوترو انفارمتیک‬ ‫دیپارتمنت تکنالوژی معلوماتی‬

‫‪Educational practice‬‬ ‫کانکور آزمایشی‪ :‬این دیتا بیس امکان اعلن نتایج کنکورهای آزمایشی را به صورت آنلین‬ ‫امکان پذید می کند‪.‬‬

‫اعضای گروپ‪:‬‬ ‫•‬

‫مرتضی‬

‫•‬

‫قربان‬

‫•‬

‫علیرضا‬

‫•‬

‫محمد جان‬

‫استاد رهنما‪ :‬فرشته حنیف احسان‬


Contents

2|Page


‫‪Overview Of Project‬‬ ‫کنکورهای آزمایشی نقش مهمی در آمادگی محصلین برای شرکت در کنکور ورودی دانشگاهها دارد‪.‬هر‬ ‫ساله تعداد زیادی از محصلین در این امتحانات شرکت می کنند و به دلیل اینکه همه ی پروسه های‬ ‫اصل ح اوراق‪ ،‬و نمره دهی به صورت دستی صورت می گیرد‪ ،‬محصلین را با مشکلت زیادی مواجه می‬ ‫سازد‪.‬از این مشکلت می توان به تاخیر در زیاد در اعل م نتایج‪ ،‬وجود اشتباه در نتایج اعل م شده برای‬ ‫بعضی محصلین‪ ،‬نداشتن نتایج کنکورهای گذشته برای بررسی روند پیشرفت درسی محصل اشاره کرد‪.‬‬ ‫به دلیل ذکر شده تعدادی از محصلین گروه آی تی تصمیم گرفتند تا سیستمی کامپیوتری طراحی کنند‬ ‫تما م این مشکلت را برطرف سازد‪.‬‬ ‫این سیستم از دو بخش تشکیل شده که یک بخش آن را دیتابیش و بخش دیگر را برنامه اصل ح اوراق‬ ‫تشکیل می دهد‪ .‬بخش دیتابیس به منظور ذخیراطلعات محصلین‪ ،‬نتایج امتحانات‪ ،‬نتایج مربوط به روند‬ ‫پیشرفت و دیگر اطلعات مربوط به هر محصل مورد استفاده قرار می گیرد‪.‬‬

‫‪Mission‬‬ ‫هدف از ایجاد این دیتابیس ذخیره سازی و مدیریت نتایج کنکور و اطلعات محصلین به صورت دقیق‪ ،‬سریع‬ ‫و موثر می باشد و همچنین در اختیار گذاشتن نتایج مربوط به هر محصل از طریق صفحات اینترنتی است‪.‬‬

‫‪Mission Objectives‬‬ ‫به خاطر اینکه این دیتابیس بتواند نیازمندیهای سیستم را تامین کند باید قادر باشد تا عملیه های زیر را‬ ‫انجا م دهد‪.‬‬ ‫انجا م عملیه های ) ‪ (insert, edit, delete‬بر روی اطلعات محصلین‬ ‫انجا م عملیه های ) ‪ (insert, edit, delete‬بر روی اطلعات امتحانات‬ ‫انجا م عملیه های ) ‪ (insert, edit, delete‬بر روی اطلعات نتایج امتحانات‬ ‫انجا م عملیه ‪ search‬بر روی اطلعات محصلین‬ ‫انجا م عملیه ‪ search‬بر روی اطلعات امتحانات‬ ‫انجا م عملیه ‪ search‬بر روی اطلعات نتایج امتحانات‬ ‫گزارش نتیجه هر محصل‬

‫‪System Definition‬‬ ‫همان طور که در شکل زیر نشان داده شده است اطلعات مربوط به محصلین و نتایج کنکور آزمایشی در‬ ‫دیتابیس ذخیره می شود‪.‬‬ ‫‪3|Page‬‬


‫‪Application‬‬

‫‪Resaults‬‬

‫‪sort‬‬

‫‪Sorted resaults‬‬

‫‪manage‬‬

‫‪Each students‬‬ ‫‪resault‬‬

‫‪student‬‬

‫‪register‬‬

‫‪student‬‬

‫‪Student`s Details‬‬

‫‪Database Boundary‬‬

‫در این سیستم از سه ‪ userview‬استفاده شده که هر یک در ذیل مشخص شده اند‪.‬‬ ‫‪ : Manager View‬مربوط به مدیر سایت میباشد که به کل محتوای دیتابیس دسترسی دارد‪.‬‬ ‫‪ :Staff View‬به اطلعات مربوط به محصلین به منظور ثبت‪ ،‬ویرایش و حذف اطلعات دسترسی دارد‪.‬‬ ‫‪ :Student View‬هر محصل به نتایج مربوط به خود دسترسی دارد‪.‬‬ ‫‪Manager‬‬

‫‪Staff‬‬ ‫‪Students‬‬

‫‪4|Page‬‬


‫‪Requirement gathering and Analyze‬‬ ‫از آنجایی که این سیتم کامل جدید است و پیش از این هیچ سیستم مشابهی وجود نداشته است بنابر‬ ‫این نیست تا سیستم قبلی را مورد ببرسی قرار دهیم‪.‬‬

‫‪Managing the Requirements for the User‬‬ ‫دیتابیس مورد نظر ما دارای چند ‪ user view‬می باشد و دیتای ما بین این ‪ user view‬ها به اشتراک‬ ‫گذاشته می شود‪ .‬هر ‪ user‬می تواند عملیه هایی را که به آنها اجازه داده شده است را بر روی دیتا‬ ‫انجا م دهند‪ .‬در ذیل لیست این ‪ user view‬ها را ذکر می کنیم و سپس به تشریح هر یک می پردازیم‪.‬‬ ‫‪branches‬‬

‫‪staff‬‬

‫‪exams‬‬

‫‪lessons‬‬

‫‪sheets‬‬

‫‪students‬‬

‫‪User views‬‬

‫‪x‬‬

‫‪x‬‬

‫‪x‬‬

‫‪x‬‬

‫‪x‬‬

‫‪x‬‬

‫‪Manager‬‬

‫‪x‬‬

‫‪x‬‬

‫‪Staff‬‬

‫‪x‬‬

‫‪x‬‬

‫‪student‬‬

‫‪x‬‬

‫‪ :Manager‬در واقع همان ادمین دیتابیس می باشد که به همه ی دیتابیس دسترسی دارد‪.‬‬ ‫‪ :Staff‬وظیفه مدیریت هر برنچ را بر عهده دارد که به اطلعات مربوط به خود و محصلین مربوط به برنچ خود‪,‬‬ ‫دسترسی دارد‪.‬‬ ‫‪ :Student‬فقط به اطلعات مربوط به خود که شامل اطلعات شخصی و نتیجه هر امتحان است دسترسی‬ ‫دارد‪.‬‬

‫‪Design‬‬ ‫مرحله اول‪ :‬در این مرحله ‪ entity‬ها را مشخص می کنیم که هر کدا م می تواند خود به تنهایی یک ‪table‬‬ ‫یا بخشی از یک ‪ table‬یا بیشتر از یک ‪ table‬را در بر بگیرد‪.‬‬ ‫‪.1‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به محصلین‬

‫‪.2‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به پارچه هایی که هنوز چک نشده اند‪.‬‬

‫‪.3‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به پارچه های چک شده‪.‬‬ ‫‪5|Page‬‬


‫‪.4‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به هر درس‬

‫‪.5‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به هر امتحان‬

‫‪.6‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به مدیر هر برنچ‬

‫‪.7‬‬

‫یک ‪ entity‬برای ذخیره اطلعات مربوط به برنچ ها‬

‫‪Conceptual design‬‬

‫‪Staff‬‬ ‫‪Student‬‬ ‫‪Branch‬‬ ‫‪works‬‬ ‫‪register‬‬ ‫‪assign‬‬

‫‪sheet‬‬ ‫‪Has‬‬

‫‪Lessons‬‬ ‫‪Exam‬‬ ‫‪for a‬‬ ‫‪Consist of‬‬

‫‪6|Page‬‬


Logical design

7|Page


Physical design

8|Page


CREATE TABLE `branch` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 100 ) NOT NULL ,`address` TEXT NOT NULL ,`phone` INT( 15 ) NOT NULL ,`email` VARCHAR( 100 ) NOT NULL) ENGINE = INNODB; CREATE TABLE `student` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 50 ) NOT NULL ,`last_name` VARCHAR( 50 ) NOT NULL ,`father_name` VARCHAR( 50 ) NOT NULL,`school_name` VARCHAR( 50 ) NOT NULL ,`address` TEXT NOT NULL ,`phone` INT( 15 ) NOT NULL,`email` VARCHAR( 50 ) NOT NULL,`branch_id` INT NULL ,`province_id` INT NULL ,) ENGINE = INNODB; CREATE TABLE `staff` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 50 ) NOT NULL ,`last_name` VARCHAR( 50 ) NOT NULL ,`phone` INT( 15 ) NOT NULL ,`email` VARCHAR( 50 ) NOT NULL ,`branch_id` INT NULL ,INDEX ( `branch_id` )) ENGINE = INNODB; CREATE TABLE `lessons` (`id` INT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 50 ) NOT NULL ,`start` INT NOT NULL ,`end` INT NOT NULL) ENGINE = INNODB; CREATE TABLE `exam` (`id` INT NULL AUTO_INCREMENT PRIMARY KEY ,`date` date NOT NULL ) ENGINE = INNODB; CREATE TABLE `sheets` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`student_id` INT NOT NULL ,`exam_id` INT NOT NULL ,`is_key` ENUM( '0', '1' ) NOT NULL ,`n1` INT NOT NULL ,`n2` INT NOT NULL ,`n3` INT NOT NULL ,`n4` INT NOT NULL ,`n5` INT NOT NULL ,`n6` INT NOT NULL ,INDEX ( `student_id` , `exam_id` )) ENGINE = INNODB; CREATE TABLE `cheked_sheets` (`id` INT NOT NULL ,`student_id` INT NOT NULL ,`exam_id` INT NOT NULL ,`n1` ENUM( '0', '1' ) NOT NULL ,`n2` ENUM( '0', '1' ) NOT NULL ,`n3` ENUM( '0', '1' ) NOT NULL,`n4` ENUM( '0', '1' ) NOT NULL ,`n5` ENUM( '0', '1' ) NOT NULL ,`n6` ENUM( '0', '1' ) NOT NULL,`n7` ENUM( '0', '1' ) NOT NULL ,PRIMARY KEY ( `id` ) ,INDEX ( `student_id` , `exam_id` )) ENGINE = INNODB; CREATE TABLE `province` (`id` INT NOT NULL ,`name` VARCHAR( 50 ) NOT NULL ,PRIMARY KEY ( `id` ),INDEX ( `student_id` , `exam_id` )) ENGINE = INNODB;

Business rules Some Business Rules are as follow: 1: Primary Key can’t be null. 2: the attribute that makes from two word, the first letter of second word must be Capital. 3: the tables which are person, then we use ID for that, and the tables which are not person we use NO to identify the tables. 4: the attributes make from three word, the first letter of middle word must be capital. 9|Page


‫‪Like dateObirth.‬‬

‫‪Implementation‬‬ ‫از آنجایی که این دیتابیس بخشی از وب سایت موسسه ای می باشد که کاکنکور آزمایشی برگزار می‬ ‫کند‪ .‬این دیتابیس به صورت یک ‪ plugin‬برای ‪ CMS‬هایی مانند ‪ Joomla‬و ‪ WordPress‬ساخته میشود تا در‬ ‫کنار این دیتابیس بتوان از ویژگی های خوب این دو ‪ CMS‬نیز بهره مند شد‪ .‬برای تامین امنیت این دیتابیس‬ ‫می توان از متودهای استفاده شده در این دو ‪ CMS‬استفاده کرد که هر روزه توسط میلیونها نفر بهبود پیدا‬ ‫می کند‪.‬‬

‫‪Data conversation‬‬ ‫این سیستم کامل جدید بوده و نیاز به تبدیل دیتا ندارد‪.‬‬

‫‪Testing‬‬ ‫این دیتابیس قبل از این که ‪ launch‬شود از نظر سرعت اجرایی و لودی که بالی ‪ hardware‬دارد تست می‬ ‫شود و در صورتی که ‪ benchmark‬های قابل قبول داشت به مرحله اجرا می رسد در غیر این صورت برای‬ ‫عملکرد بهتر دوباره مورت بررسی قرار می گیرد‪.‬‬

‫‪Operational maintenance‬‬ ‫در این سیستم از ‪ Backup‬گیری اتومات استفاده می شود تا مشکلی را ایجاد نکند‪ .‬بعد از ایجرای این‬ ‫سیستم برای کارکرد بهتر ان چه از نظر سرعت و چه از نظر عملیه های اجرایی تلش مستمر صورت می‬ ‫گیرد تا کارایی سیستم به اتاندارد مورد نظر ما برسد‪.‬‬

‫‪10 | P a g e‬‬


Database