پایان نامه رويکرد جديد در بهنگام سازی پايگاه پردازش تحليلي
چکيده:
در اين پروژه ابتدا پايگاه پردازش تحليلي معرفی شده و مسائل تحقيقاتي در آن مورد بررسی قرار می گيرد. هدف اصلی نوسازی داده در پايگاه پردازش تحليلي است به نحوی که همواره اطلاعات بروز در گزارش گيريها ارائه شود. به اين منظور ابتدا کارهای مختلف در نوسازی داده (استخراج و ثبت اطلاعات و پاکسازی داده ها) و روشهای انجام آنها بررسی شده، سپس کارهای انجام شده بر روی نوسازی داده بررسی می شود. ملاحظه شد که در روشهای ارائه شده، لزوما اطلاعات بروز در گزارش گيريها ارائه نمی شود.
در روش ارائه شده، پروتکلی به منظور نوسازی داده ارائه می شود که بر اساس پنج روش مختلف زمان، حجم، برخط بودن، با درخواست کاربر و ترکيب زمان و حجم می باشد. اين پروتکل بر روی سيستم بيمه سلامتی برای انجام آزمايشات پياده سازی می شود. لازم به ذکر است که به منظور پياده سازی از نرم افزارهای SQL-Server و Delphi استفاده می شود. پس از انجام آزمايشات ملاحظه می شود که بسته به کاربردهای مختلف، از روشهای مختلف به منظور نوسازی داده می توان استفاده نمود.
کلمات کليدی:
فارسی: پايگاه داده، پايگاه پردازش تحليلي، نوسازی داده، بهنگام سازی
انگليسي:
Database, data warehouse, refreshment, updating
فهرست مطالب | |
عنوان | صفحه |
مقدمه | 1 |
فصل اول: معرفی پايگاه پردازش تحليلي | 3 |
1-1- تعريف پايگاه داده | 3 |
1-2- تعريف تراکنش | 5 |
1-3- سيستم هاي تصميم يار | 7 |
1-4- تعاريف پايگاه پردازش تحليلي | 8 |
1-5- مشخصات پايگاه پردازش تحليلي | 10 |
1-6- انواع داده در پايگاه پردازش تحليلي | 13 |
1-7- ساختار پايگاه پردازش تحليلي | 14 |
1-8- روش ساخت پايگاه پردازش تحليلي | 18 |
1-9- نوسازی داده در پايگاه پردازش تحليلي و اهميت آن | 19 |
1-10- خلاصه و نتايج | 24 |
فصل دوم: مسائل تحقيقاتي در پايگاه پردازش تحليلي | 25 |
2-1- معماری پايگاه پردازش تحليلي | 25 |
2-2- مدل داده در پايگاه پردازش تحليلي | 28 |
2-3- نگهداری ديد | 28 |
2-4- موازی سازی در پايگاه پردازش تحليلي | 33 |
عنوان | صفحه |
2-5- نوسازی داده | 34 |
2-6- ديگر مسائل تحقيقاتی | 34 |
فصل سوم: نوسازی داده در پايگاه پردازش تحليلي | 36 |
3-1- انتخاب و بارگذاری داده ها از منابع داده به پايگاه پردازش تحليلي | 41 |
3-2- پاکسازی داده در پايگاه پردازش تحليلي | 55 |
3-3- بهنگام سازی پايگاه پردازش تحليلي برخط | 72 |
3-4- مدلسازی نوسازی داده در پايگاه پردازش تحليلي بصورت جريانی کاری | 95 |
3-5- خلاصه و نتايج | 115 |
فصل چهارم: طراحی و پياده سازی نوسازی داده در پايگاه پردازش تحليلي | 116 |
4-1- تعريف محيط عملياتی | 117 |
4-2- پايگاه پردازش تحليلي برای پايگاه داده مورد نظر | 122 |
4-3- پرکردن پايگاه داده | 127 |
4-4- بارگذاری اوليه اطلاعات از پايگاه داده به پايگاه پردازش تحليلي | 128 |
4-5- مشاهده و ثبت تغييرات ايجاد شده در پايگاه داده | 129 |
4-6- پروتکل ارائه شده به منظور نوسازی داده در پايگاه پردازش تحليلي | 134 |
4-7- خلاصه و نتايج | 140 |
فصل پنجم: مقايسه روشهای ارائه شده به منظور نوسازی داده | 141 |
عنوان | صفحه |
5-1- برنامه ارائه شده به منظور انجام مقايسات | 142 |
5-2- انجام آزمايشات با استفاده از برنامه ارائه شده و ارائه نتايج | 143 |
5-3- خلاصه و نتايج | 164 |
خلاصه و نتايج | 166 |
پيشنهادات برای ادامه کار | 167 |
ضمائم | |
ضميمه1: پرکردن جدول Person_Table | 169 |
ضميمه2: پرکردن جدول Damage_Table | 172 |
ضميمه3: پر کردن جدول Commitment_Table | 173 |
ضميمه4: بارگذاری اوليه بعد قرارداد | 175 |
ضميمه5: بارگذاری اوليه بعد تعهدات | 176 |
ضميمه6: بارگذاری اوليه بعد شخص | 178 |
ضميمه7: بارگذاری اوليه جدول حقايق | 180 |
ضميمه8: کد ارائه شده به منظور نوسازی داده در روش زمانی | 187 |
ضميمه9: کد ارئه شده به منظور انجام مقايسات | 212 |
ضميمه10: فهرست معادل کلمات انگليسي به ترتيب حروف فارسی | 258 |
ضميمه11: فهرست معادل کلمات انگليسي به ترتيب حروف انگليسي | 261 |
فهرست منابع | 264 |
فهرست شکل ها | |
عنوان | صفحه |
فصل اول | |
شکل 1-1: يک نمونه مدل چند بعدی | 15 |
شکل 1-2: پارامتر تحليلي مجموع گروه ذخيره شده در روز | 18 |
شکل 1-3: فعاليتهای لازم جهت ساخت پايگاه پردازش تحليلي | 19 |
فصل دوم | |
شکل 2-1: معماری کلی پايگاه پردازش تحليلي | 26 |
شکل 2-2: معماری دقيق پايگاه پردازش تحليلي | 27 |
فصل سوم | |
شکل 3-1: محيط رايج پايگاه پردازش تحليلي | 37 |
شکل 3-2: فرايند نوسازی داده پايگاه پردازش تحليلي | 40 |
شکل 3-3: بارگذاری داده از محيط های قبلی | 42 |
شکل 3-4: بارگذاری اوليه پايگاه پردازش تحليلي | 42 |
شکل 3-5: بارگذاری اوليه داده فعال از محيط عملياتی | 44 |
شکل 3-6: نوسازی داده درپايگاه پردازش تحليلي | 45 |
شکل 3-7: خواندن پايگاه داده عملياتی و جستجوی تغييرات | 46 |
شکل 3-8: خواندن تعداد زيادی رکورد برای يافتن تغييرات کم | 46 |
شکل 3-9: لزوم فعال بودن پايگاه داده | 47 |
عنوان | صفحه |
شکل 3-10: انجام پردازش در محيط کامپيوترهای بزرگ پرهزينه است | 48 |
شکل 3-11: استفاده از نوار ثبت وقايع | 49 |
شکل 3-12: راههای استفاده کارا از نوار ثبت وقايع | 50 |
شکل 3-13: برخی از موانع در خواندن از نوار ثبت وقايع | 51 |
شکل 3-14: استفاده از واسطه برای خواندن و مديريت نوار ثبت وقايع | 52 |
شکل 3-15: نوار ثبت وقايع به عنوان منبعی برای نوسازی داده | 53 |
شکل 3-16: پردازشهای انجام شده بر روی داده های نوار ثبت وقايع پيش از ارسال به منظور نوسازی داده | 53 |
شکل 3-17: قدمهای ساخت پايگاه پردازش تحليلي: فرايند ETL | 56 |
شکل 3-18: دسته بندی مسائل کيفيت داده در منابع داده | 59 |
شکل 3-19: مثالهای مسائل چند منبعه در سطوح کل طرح و نمونه های قبول شده | 62 |
شکل 3-20: مثالی از تعريف قدمهای تغيير | 67 |
شکل 3-21: چرخه حيات يک رکورد | 77 |
شکل 3-22: اجرای غيرهمزمان الگوريتم های برون خطی | 91 |
شکل 3-23: اجرای همزمان:2VNL | 92 |
شکل 3-24: اجرای همزمان: MVNL | 92 |
شکل 3-25: جريان کاری کلی فرايند نوسازی داده | 100 |
شکل 3-26: مثال اول سناريوی نوسازی داده | 105 |
عنوان | صفحه |
شکل 3-27: مثال دوم سناريوی نوسازی داده | 106 |
فصل چهارم | |
شکل 4-1: جدول شخص | 118 |
شکل 4-2: جدول رابطه | 118 |
شکل 4-3: جدول قرارداد | 119 |
شکل 4-4: جدول تعهدات | 120 |
شکل 4-5: جدول نوع تعهد | 120 |
شکل 4-6: جدول خسارت | 121 |
شکل 4-7: دياگرام ارتباطي پايگاه داده | 121 |
شکل 4-8: جدول حقيقت | 122 |
شکل 4-9: بعد زمان | 123 |
شکل 4-10: بعد شخص | 124 |
شکل 4-11: بعد قرارداد | 124 |
شکل 4-12: بعد تعهد | 125 |
شکل 4-13: دياگرام ارتباطی ستاره شکل | 126 |
شکل 4-14: پارامتر تحليلي مربوط به ماه | 126 |
شکل 4-15: پارامتر تحليلي مربوط به سال | 127 |
شکل 4-16: جدول ثبت تغييرات خسارت | 130 |
عنوان | صفحه |
شکل 4-17: جدول ثبت تغييرات قرارداد | 130 |
شکل 4-18: جدول ثبت تغييرات تعهدات | 131 |
شکل 4-19: جدول ثبت تغييرات اطلاعات اشخاص | 132 |
فصل پنجم | |
شکل 5-1: برنامه نوشته شده به منظور ارزيابی | 142 |
شکل 5-2: زمان صرف شده برای نوسازی داده در برنامه های بروز (تغييرات هر يک دقيقه) | 143 |
شکل 5-3: تعداد رکوردهايي که نوسازی داده شده اند در برنامه های بروز (تغييرات هر يک دقيقه) | 144 |
شکل 5-4: زمان صرف شده به منظور نوسازی داده در گزارش گيري در برنامه های بروز (تغييرات هر يک دقيقه) | 144 |
شکل 5-5: زمان صرف شده برای نوسازی داده در برنامه های بروز (تغييرات هر 15 دقيقه) | 144 |
شکل 5-6: تعداد رکوردهايي که نوسازی داده شده اند در برنامه های بروز (تغييرات هر 15 دقيقه) | 145 |
شکل5-7: زمان صرف شده به منظور نوسازی داده در گزارش گيري در برنامه های بروز (تغييرات هر 15 دقيقه) | 145 |
عنوان | صفحه |
شکل5-8: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش زمان، نوسازی داده هر 18 دقيقه) | 146 |
شکل5-9: تعداد رکوردهايي که نوسازی داده شده اند(در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش زمان، نوسازی داده هر 18 دقيقه) | 146 |
شکل5-10: زمان صرف شده به منظور نوسازی داده در گزارش گيري(در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش زمان، نوسازی داده هر 18 دقيقه) | 147 |
شکل5-11: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش زمان، نوسازی داده هر 5 دقيقه) | 147 |
شکل5-12: تعداد رکوردهايي که نوسازی داده شده اند(در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش زمان، نوسازی داده هر 5 دقيقه) | 147 |
شکل5-13: زمان صرف شده به منظور نوسازی داده در گزارش گيري(در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش زمان، نوسازی داده هر 5 دقيقه) | 148 |
شکل5-14: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش حجم، هر 5 رکورد) | 148 |
شکل5-15: تعداد رکوردهايي که نوسازی داده شده اند (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش حجم، هر 5 رکورد) | 149 |
عنوان | صفحه |
شکل5-16: زمان صرف شده به منظور نوسازی داده در گزارش گيري (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش حجم، هر 5 رکورد) | 149 |
شکل5-17: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش حجم، هر 9 رکورد) | 149 |
شکل5-18: تعداد رکوردهايي که نوسازی داده شده اند (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش حجم، هر 9 رکورد) | 150 |
شکل5-19: زمان صرف شده به منظور نوسازی داده در گزارش گيري (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش حجم، هر 9 رکورد) | 150 |
شکل5-20: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش درخواست، درخواست هر 18 دقيقه ) | 151 |
شکل5-21: تعداد رکوردهايي که نوسازی داده شده اند (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش درخواست، درخواست هر 18 دقيقه ) | 151 |
شکل5-22: زمان صرف شده به منظور نوسازی داده در گزارش گيري (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش درخواست، درخواست هر 18 دقيقه ) | 151 |
شکل5-23: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش درخواست، درخواست هر 5 دقيقه ) | 152 |
عنوان | صفحه |
شکل5-24: تعداد رکوردهايي که نوسازی داده شده اند (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش درخواست، درخواست هر 5 دقيقه ) | 152 |
شکل5-25: زمان صرف شده به منظور نوسازی داده در گزارش گيري (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش درخواست، درخواست هر 5 دقيقه ) | 152 |
شکل5-26: زمان صرف شده برای نوسازی داده (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش برخط ) | 153 |
شکل5-27: تعداد رکوردهايي که نوسازی داده شده اند (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش برخط ) | 153 |
شکل5-28: زمان صرف شده به منظور نوسازی داده در گزارش گيري (در برنامه هاييکه در زمانهای خاصی گزارش گيري می شوند، روش برخط ) | 154 |
شکل5-29: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش زمان، نوسازی داده هر 17 دقيقه) | 155 |
شکل5-30: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش زمان، نوسازی داده هر 17 دقيقه) | 155 |
شکل5-31: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش زمان، نوسازی داده هر 17 دقيقه) | 155 |
عنوان | صفحه |
شکل5-32: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش زمان، نوسازی داده هر 31 دقيقه) | 156 |
شکل5-33: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش زمان، نوسازی داده هر 31 دقيقه) | 156 |
شکل5-34: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش زمان، نوسازی داده هر 31 دقيقه) | 156 |
شکل5-35: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش حجم، نوسازی داده هر 2 رکورد) | 157 |
شکل5-36: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش حجم، نوسازی داده هر 2 رکورد) | 157 |
شکل5-37: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش حجم، نوسازی داده هر 2 رکورد) | 158 |
شکل5-38: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش حجم، نوسازی داده هر 6 رکورد) | 158 |
شکل5-39: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش حجم، نوسازی داده هر 6 رکورد) | 158 |
شکل5-40: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش حجم، نوسازی داده هر 6 رکورد) | 159 |
عنوان | صفحه |
شکل5-41: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش درخواست، نوسازی داده هر 17 دقيقه) | 159 |
شکل5-42: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش درخواست، نوسازی داده هر 17 دقيقه) | 160 |
شکل5-43: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش درخواست، نوسازی داده هر 17 دقيقه) | 160 |
شکل5-44: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش درخواست، نوسازی داده هر 31 دقيقه) | 160 |
شکل5-45: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش درخواست، نوسازی داده هر 31 دقيقه) | 161 |
شکل5-46: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش درخواست، نوسازی داده هر 31 دقيقه) | 161 |
شکل5-47: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش برخط ) | 162 |
شکل5-48: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش برخط ) | 162 |
شکل5-49: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش برخط ) | 162 |
عنوان | صفحه |
شکل5-50: زمان صرف شده برای نوسازی داده (برنامه هاييکه تغييراتشان کند است، روش زمان و حجم، نوسازی داده هر 25 دقيقه يا پس از تغيير هر 2 رکورد ) | 163 |
شکل5-51: تعداد رکوردهايي که نوسازی داده شده اند (برنامه هاييکه تغييراتشان کند است، روش زمان و حجم، نوسازی داده هر 25 دقيقه يا پس از تغيير هر 2 رکورد ) | 163 |
شکل5-52: زمان صرف شده به منظور نوسازی داده در گزارش گيري (برنامه هاييکه تغييراتشان کند است، روش زمان و حجم، نوسازی داده هر 25 دقيقه يا پس از تغيير هر 2 رکورد ) | 164 |
فهرست جدول ها | |
عنوان | صفحه |
فصل سوم | |
جدول 1: مثال برای مسائل تک منبعه در سطح کل طرح (نقض محدوديت های جامعيت) | 60 |
جدول 2: مثال برای مسائل تک منبعه در سطح نمونه های قبول شده | 60 |
جدول 3: مثال هايي برای استفاده از فراداده به منظور آدرس دهی مسائل کيفيت داده | 65 |
جدول 4: نگاشت عمليات بهنگام سازی منطقی به فيزيکي | 80 |
سپاسنامه:
بدين وسيله از زحمات و حمايتهای آقاي دکتر عبدالله زاده تشکر می نمايم که بيش از آنچه می بايست اينجاب را در انجام اين پروژه ياری نمودند و بدون راهنمايي هايشان انجام اين کار ميسر نبود.
همچنين از مادر عزيزم به سبب تلاشهای فراوان در جهت مهيا ساختن زمينه های مناسب فکری و تسهيلاتی که مشخصا آن را به عنوان يکي از علل اصلی کليه موفقيتهای زندگی خود می دانم قدردانی می نمايم و بيش از همه از همسر مهربانم که در طول اين راه يار و مشوق من بوده و با صبر و گذشت فراوان امکانات پيشرفت مرا ميسر نمود، قدردانی می نمايم.
تقديم به پدر عزيزم که ياد و خاطر او همواره با من است.
مقدمه :
کامپيوترها براي پردازش تراکنشها و تهيه اطلاعات بمنظور تصميم گيريها استفاده مي شوند. در آغاز دهه 1970 مساله قرار دادن بعضي داده ها در محيطي مجزا به منظور تصميم گيري مطرح شد[gra98]. اين کار باعث دسترسي آسان به داده مورد نياز، بهبود زمان پاسخ سيستم و افزايش امنيت و يکپارچگي داده ها مي شود. سيستمهاي تصميم يار اولين برنامه هاي کاربرديي بودند که از اين روش استفاده کردند. الزام انجام محاسبه براي کاربران نهايي باعث ايجاد داده آماده و استفاده از اين روش شد.
در دهه 1990 بسياري از سازمانها بمنظور پردازش درخواستهای تحليلي، پايگاه پردازش تحليلي ايجاد کردند. از آن زمان تا به حال تفاوت هاي زيادي در ايجاد اين محصول بوجود آمده است. بسته به شرايط متفاوت انواع سرورهاي نرم افزاري مختلفي مي توانند به عنوان منبع براي ذخيره داده استفاده شوند. با افزايش ابزار دسترسي به داده، کاربران نهايي توانستند آسانتر به اطلاعات دسترسي پيدا کرده و آنرا نمايش داده و تحليل کنند. بعنوان مثال بدون نوشتن پرسشهاي به زبان SQL توانستند اين کارها را انجام دهند.
همزمان با پيشرفت تکنولوژي, علاقه مديران صنعتی به پايگاه پردازش تحليلي افزايش يافت. امروزه, با افزايش سرعت محيط ها زمان تصميم گيري در رابطه با تکنولوژي اطلاعات کوتاهتر شده است.
اطلاعات بيشتر سازمانها در رابطه با مشتريانشان مي باشد و پايگاه داده بزرگي در اين رابطه دارند و براي بهبود کارها بايد از آن اطلاعات استفاده کنند. در مجموع در بسياري از سازمانها تنها راه بمنظور انجام تصميم گيريهاي بموقع انجام آناليز مي باشد.
نقش اصلي پايگاه پردازش تحليلي, پردازش درخواستهای تحليلي مي باشد. در بيشتر موارد انواع برنامه هاي کاربردي براي ايجاد پايگاه پردازش تحليلي استفاده مي شوند. پايگاه پردازش تحليلي حوزه آنها را توسعه داده و دقت و دسترسی به آنها را بهبود مي دهد.
در اين پايان نامه نوسازی داده در پايگاه پردازش تحليلي مورد بررسی قرار گرفته وروشی برای انجام آن ارائه می شود. اين روش شامل پنج انتخاب مختلف می باشد که انتخاب آنها بستگی به نوع کاربرد و برنامه های مختلف دارد. بر اين اساس گزارش ارائه شده شامل پنج فصل است:
در فصل اول مفاهيم پايه و پايگاه پردازش تحليلي تعريف شده اند. فصل دوم شامل مسائل تحقيقاتی مطرح در پايگاه پردازش تحليلي می باشد. در فصل سوم روشهای مختلف نوسازی داده، ارائه شده در مقالات مختلف و روشهای مختلف استخراج اطلاعات و پاکسازی آن مورد توجه قرار می گيرد. در فصل چهارم پروتکلی به منظور نوسازی داده ارائه شده است و بر روی يک مثال پياده سازی شده است اين پروتکل شامل پنج انتخاب مختلف است که اين پنج روش در فصل پنجم با يکديگر مقايسه می شوند.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.