خرداد
۲۴
۱۳۹۴

مدلسازی معنایی داده ها

مدلسازی معنایی داده ها

 

داده‌هایی که قرار است در پایگاه داده ذخیره شوند، ابتدا باید با یک دید سطح بالا از لحاظ معنایی و مفهومی مدلسازی شوند. حاصل عملیات مدلسازی معنایی، ساختار منطقی بانک اطلاعات و در واقع همان شمای ادراکی است.

مدلها و روش­های مختلفی برای مدلسازی معنایی داده­ها وجود دارند که از معروفترین آنها می­توان از مدل موجودیت- ارتباط (ER)، مدل Niam، مدل زبان یکپارچه مدلسازی (UML) و تکنیک مدلسازی شیئی (OMT) نام برد.

مدل ER و نمودار ER

مدل ER در اواسط دهه ۸۰ میلادی در دانشگاه MIT توسط فردی بنام چن پیشنهاد شد. این مدل بمرور زمان پیشرفت کرد و کم کم به EER (ER توسعه یافته) معروف شد. اما هنوز هم در خیلی جاها با همان نام ER از آن نام برده می­شود. در این فصل به شرح کامل این مدل می پردازیم.

در مدل ER سه مفهوم اصلی وجود دارد که عبارتند از: موجودیت، صفت و ارتباط. نمودار ER هم نموداری است برای مدلسازی معنایی داده­ها بر پایه مدل ER و در واقع سه مفهوم اساسی مدل ER، یعنی نوع موجودیت، صفت و ارتباط را بصورت شماتیک نمایش می­دهد. قبل از هرچیز بهتر است با این سه مفهوم آشنا شویم.

 

تعریف موجودیت

مفهوم کلی شیئ، پدیده و به طور کلی هر آنچه که می‌خواهیم در موردش اطلاعاتی در بانک اطلاعات داشته باشیم و با استفاده از آن اطلاعات شناخت خود را در موردش افزایش دهیم.

بعنوان مثال، برای یک سیستم آموزشی که قرار است در یک دانشگاه استفاده شود، موجودیتهای دانشجو، استاد، دانشکده و درس را می­توان نام برد.

همانطور که می­بینیم موجودیت یک مفهوم کلی و یا یک نوع داده مجرد است. اما هر موجودیت می­تواند نمونه هایی داشته باشد. نمونه ­های یک موجودیت، مصداق­های آن موجودیت هستند و در واقع نمونه­ ها هستند که وجود خارجی دارند. بعنوان مثال، درس پایگاه داده­ها با یکسری ویژگی­های خاص خودش یک نمونه از موجودیت درس است.

اولین گام در مدلسازی معنایی بانک اطلاعات، شناسایی موجودیتهای مساله است. اما سوالی که ممکن است پیش بیاید این است که مثلا در مثال فوق، چرا خود دانشگاه را بعنوان یکی از موجودیتها در نظر نگرفتیم؟ یا بطور کلی بر چه اساسی اقدام به شناسایی موجودیتها می­کنیم؟

یک قانون ساده برای تشخیص اینکه یک مفهوم خاص را آیا موجودیت به حساب بیاوریم یا خیر، این است که آن مفهوم بتواند شامل چند نمونه متمایز در حوزه مساله ما باشد. به بیان ساده، چیزی موجودیت تلقی می­شود که بخواهیم لیستی از آن را در سیستم نگه داریم. در مثال فوق، دانشگاه را موجودیت بحساب نمی­آوریم؛ چون سیستم قرار است اطلاعات دانشجویان یک دانشگاه را مدیریت کند. در اینجا دانشگاه خود حوزه اصلی مساله است که شامل موجودیتهای نامبرده شده می­باشد. اما اگر صورت مساله را اینطور عوض کنیم که می­خواهیم اطلاعات آموزشی دانشجویان سراسر کشور را از طریق این سیستم ذخیره و بازیابی کنیم، آنگاه دانشگاه هم یک موجودیت خواهد بود.

نکته دیگر در مورد موجودیتها این است که یک موجودیت معمولا بیش از یک ویژگی دارد که باید ذخیره شود. اما همانطور که خواهیم دید، این قانون همیشه صادق نیست.

در نمودار ER هر موجودیت در قالب یک مستطیل ساده نمایش داده می­شود.

 er-1

موجودیت مستقل و وابسته

موجودیت مستقل (قوی)، موجودیتی است که مستقل از هر موجودیت دیگر و به خودی خود، در یک محیط مشخص مطرح باشد. موجودیت وابسته (ضعیف)، موجودیتی است که وجودش وابسته به یک نوع موجودیت دیگر است. در واقع هر نمونه موجود از یک موجودیت ضعیف به یکی از نمونه ­های یک موجودیت قوی وابسته است. به این نوع ارتباط بین یک موجودیت ضعیف با یک موجودیت قوی وابستگی وجودی گفته می­شود.

بعنوان مثال، فرض کنید کارمند و فیش حقوقی دو موجودیت در یک سیستم پرسنلی باشند. پس اطلاعات تعدادی کارمند و نیز تعدادی فیش حقوقی (بعنوان نمونه ­های دو موجودیت) در سیستم ذخیره شده­اند. اگر یک کارمند را از سیستم حذف کنیم، وجود فیش­های حقوقی مربوط به او دیگر مفهومی ندارد و منطقا باید حذف شوند. پس در این مثال، کارمند یک موجودیت مستقل و فیش حقوقی یک موجودیت وابسته است. اگر اطلاعات افراد خانواده کارمندان (عائله کارمند) نیز بعنوان یک موجودیت دیگر در این سیستم ذخیره شده باشد، آن نیز یک موجودیت وابسته به موجودیت کارمند می­باشد.

برای تمایز موجودیتهای وابسته از موجودیتهای مستقل، در نمودار ER موجودیتهای وابسته با دو خط نشان داده می­شوند.

 er-2

تعریف صفت خاصه

خصیصه یا ویژگی یک نوع موجودیت است. هر نوع موجودیت مجموعه‌ای از صفات خاصه دارد. هر صفت یک نام، یک نوع و یک معنای مشخص دارد. در نمودار ER هریک از صفات خاصه یک موجودیت با یک بیضی نشان داده شده و به موجودیت متصل می­شوند.

er-3

انواع صفت خاصه

۱- صفت ساده یا مرکب

صفت ساده صفتی است که مقدار آن از لحاظ معنایی تجزیه‌نشدنی یا اتومیک است.

صفت مرکب صفتی است که از چند صفت ساده تشکیل شده است و به هر جزء آن بتوان بطور مستقیم دسترسی داشت.

صفت آدرس که خود شامل صفات جزئی­تر شهر، خیابان و … است، می­تواند یک صفت مرکب باشد، در صورتیکه ساختار آن در شمای ادراکی به­گونه­ای باشد که بتوان به این اجزا بطور مجزا و مستقیما دسترسی داشت. اما اگر ویژگی آدرس برای یک موجودیت بصورت یک رشته معمولی در نظر گرفته شود، دیگر یک صفت مرکب محسوب نمی­شود؛ چون دسترسی مستقیم به هر جزء آن نداریم.

در بانک اطلاعات رابطه­ای امکان تعریف صفات مرکب وجود ندارد و همه صفات باید ساده باشند. پس اگر بخواهیم به اجزای یک صفت مانند آدرس دسترسی داشته باشیم چه باید بکنیم؟ راه حل کلی برای این مساله این است که در صورتی که چنین ضرورتی وجود دارد، بجای تعریف یک صفت خاصه بنام آدرس برای موجودیت، اجزای آن را بطور جداگانه (چند صفت ساده بجای یک صفت) در نظر بگیریم.

۲- صفت تک‌مقداری یا چندمقداری

صفت تک‌مقداری، صفتی است که برای یک نمونه از یک نوع موجودیت حداکثر یک مقدار از دامنه مقادیر را می‌گیرد.

صفتی که برای بعضی از نمونه­ های موجودیت ممکن است بیش از یک مقدار داشته باشد، یک صفت چندمقداری است. بعنوان مثال، صفت شماره دانشجویی، نام خانوادگی و … برای موجودیت دانشجو صفات تک مقداری محسوب می­شوند؛ چون هر دانشجو تنها یک نام خانوادگی و یک شماره دانشجویی دارد. اما صفتی مانند شماره تلفن برای موجودیت دانشجو یک صفت چند مقداری است. زیرا بعضی از دانشجویان بیش از یک شماره تلفن دارند.

نمایش صفات چندمقداری در نمودار ER بصورت زیر است.

er-7

در بانک اطلاعات رابطه­ای امکان تعریف صفات چندمقداری وجود ندارد. پس اگر بخواهیم صفتی چندمقداری مثل شماره تلفن داشته باشیم چه باید بکنیم؟ راه حل کلی برای این مساله این است که برای هر صفت چندمقداری جدولی جداگانه طراحی کنیم و کلید موجودیت اصلی (مثل دانشجو) را بعنوان کلید خارجی در آن قرار دهیم.

۳- صفت کلید یا غیرکلید

صفت کلید یا شناسه موجودیت صفتی است که یکتایی مقدار دارد. بعبارت دیگر مقدار این صفت بین نمونه­های مختلف تکرار نمی­شود. بعنوان مثال، شماره دانشجویی برای موجودیت دانشجو یک صفت کلید است.

در مدلسازی معنایی، برای هر موجودیت باید یک شناسه مشخص کرد. اما یک موجودیت ممکن است بیش از یک شناسه داشته باشد. مثلا، کد ملی نیز یک شناسه دیگر برای موجودیت دانشجو است. در چنین حالاتی، یکی از شناسه­ها را باید بعنوان شناسه اول (اصلی) مشخص کرد. صفت دیگر نیز می­تواند بعنوان شناسه دوم (فرعی) معرفی شود.

صفتی که قرار است بعنوان شناسه اصلی یک موجودیت (وجه تمایز اصلی بین نمونه­های موجودیت) استفاده شود بهتر است حتی الامکان طول مقادیرش کوتاه باشد.

در نمودار ER شناسه اول یک موجودیت با کشیدن یک خط و شناسه دوم با کشیدن دو خط در زیر عنوان آن مشخص می­شود.

er-4

er-5

گاهی اوقات، یک موجودیت صفت تکرار ناپذیری ندارد تا بعنوان کلید آن در نظر گرفته شود. یک راه برای حل این مشکل استفاده از کلیدهای ترکیبی است. یعنی باید ترکیبی از صفات را بیابیم که آن ترکیب بین نمونه­ های آن موجودیت تکرار نشود. مثلا فرض کنیم موجودیت دانشجو اصلا صفاتی بنام شماره دانشجویی و کد ملی نداشت. در این حالت با این فرض که ترکیب سه صفت نام، نام خانوادگی و شماره شناسنامه بین دانشجویان امکان تکرار ندارد، می­توان ترکیب این سه صفت را بعنوان کلید موجودیت دانشجو معرفی کرد. به چنین کلیدهایی کلید ترکیبی گفته می­شود. روش نمایش کلیدهای ترکیبی در نمودار ER بصورت زیر است:

er-8

در فصل بعد، مفاهیم مربوط به کلید بطور کامل­­تر مورد بحث قرار خواهد گرفت.

۴- صفت هیچ‌مقدارپذیر یا ناپذیر

هیچ مقدار یعنی مقدار ناشناخته، مقدار غیرقابل اعمال یا مقدار تعریف نشده که معمولا با واژه Null نشان داده می­شود.

اگر مقدار یک صفت در یک یا بیش از یک نمونه از یک موجودیت، بتواند برابر با هیچ‌مقدار باشد، آن صفت هیچ‌مقدارپذیر است.

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

۵- صفت ذخیره‌شده یا مشتق

صفت ذخیره‌شده صفتی از یک موجودیت است که مقادیرش برای نمونه ­های آن موجودیت در پایگاه داده‌ها ذخیره شود.

صفت مشتق، صفتی است که مقادیرش در پایگاه داده‌ها ذخیره نشده باشد، بلکه از روی داده‌های ذخیره شده قابل اشتقاق یا محاسبه باشد. بعنوان مثال، اگر تاریخ تولد هر دانشجو (بعنوان یکی از صفات خاصه) در سیستم ذخیره شود، دیگر نیازی به ذخیره صفت سن دانشجو نیست و این ویژگی با توجه به تاریخ تولد قابل محاسبه است. پس در اینجا تاریخ تولد یک صفت ذخیره شده و سن یک صفت مشتق است.

برای نمایش صفات مشتق در نمودار ER می توان یا بیضی مربوط به آن صفت و یا خط اتصال آن صفت به موجودیت را بصورت نقطه چین رسم کرد.

er-9

ارتباط

تعریف- تعامل و وابستگی بین دو یا بیش از دو نوع موجودیت است.

ارتباط بین دو موجودیت در حقیقت ارتباط بین نمونه ­های آن دو موجودیت است. هر ارتباط دارای یک عنوان و یک مفهوم مشخص است. بعنوان مثال، بین دو موجودیت دانشجو و درس ارتباط “انتخاب” وجود دارد. یعنی نمونه­ های موجودیت دانشجو، نمونه­ هایی از موجودیت درس را انتخاب می­کنند.

در نمودار ER ارتباط با نماد لوزی نشان داده می­شود.

er-10

اگر نمونه­ هایی از یک موجودیت بتوانند با نمونه ­هایی از همان موجودیت ارتباط داشته باشند، باید یک ارتباط از موجودیت به خودش رسم شود. مثلا، بین نمونه­ های موجودیت درس، ارتباط پیش نیازی برقرار است.

er-12

ماهیت ارتباط

چندی ارتباط یا بعبارتی نوع تناظر بین نمونه­ های دو موجودیت حاضر در ارتباط را نشان می­دهد. ماهیت ارتباط می­تواند یک به یک (۱:۱)، یک به چند (۱:n) یا چند به چند (m:n) باشد.

ارتباط ۱:۱: هر نمونه از موجودیت اول می­تواند فقط با یک نمونه از موجودیت دوم ارتباط داشته باشد. هر نمونه از موجودیت دوم نیز فقط می­تواند با یک نمونه از موجودیت اول ارتباط داشته باشد. در واقع همان مفهوم تناظر یک به یک در نظریه مجموعه­ ها است.

er-11

بعنوان مثال، اگر درجه ارتباط بین موجودیت­های دانشجو و درس ۱:۱ باشد، مفهوم ارتباط چنین است:

er-13

هر دانشجو می­تواند فقط یک درس را بگیرد. هر درس هم می­تواند فقط توسط یک دانشجو گرفته شود.

ارتباط ۱:n: هر نمونه از موجودیت اول می­تواند با چند نمونه از موجودیت دوم ارتباط داشته باشد. اما هر نمونه از موجودیت دوم فقط می­تواند با یک نمونه از موجودیت اول ارتباط داشته باشد.

اما اگر درجه ارتباط بین موجودیت­های دانشجو و درس ۱:n باشد (مطابق شکل زیر)، مفهوم ارتباط چنین است:

er-14

هر دانشجو می­تواند چند درس را بگیرد. اما هر درس می­تواند فقط توسط یک دانشجو گرفته شود.

ارتباط m:n: هر نمونه از موجودیت اول می­تواند با چند نمونه از موجودیت دوم ارتباط داشته باشد. هر نمونه از موجودیت دوم نیز می­تواند با چند نمونه از موجودیت اول ارتباط داشته باشد.

حال اگر درجه ارتباط بین موجودیت­های دانشجو و درس m:n باشد (مطابق شکل زیر)، مفهوم ارتباط چنین است:

er-15

هر دانشجو می­تواند چند درس را بگیرد. هر درس هم می­تواند توسط چند دانشجو گرفته شود.

حد  ارتباط

برای هریک از موجودیت­های شرکت کننده در یک ارتباط می­توان یک حد مشخص کرد. این حد نشان دهنده حداقل و حداکثر تعداد نمونه ­های آن موجودیت است که می توانند در ارتباط شرکت کنند.

بعنوان مثال، حدود نشان داده شده در شکل زیر برای دو موجودیت دانشجو و درس بیانگر مفاهیم زیر هستند:

er-16

هر دانشجو حداقل ۱ و حداکثر ۵ درس را می تواند انتخاب کند.

هر درس می تواند توسط هیچ دانشجویی انتخاب نشود و یا حداکثر توسط ۲۰ دانشجو انتخاب شود.

شرکت اجباری و اختیاری در ارتباط

موجودیتهایی که در یک ارتباط شرکت دارند، نوع ارتباطشان می­تواند اجباری یا اختیاری باشد. اگر مقدار حداقل حد یک موجودیت در یک ارتباط ۰ باشد، به این معنی است که نمونه ای از این موجودیت می تواند وجود داشته باشد که اصلا در ارتباط شرکت نکند. در این حالت شرکت موجودیت را اختیاری می­گوییم. در غیر اینصورت، شرکت موجودیت در ارتباط اجباری است.

er-17

اگر شرکت موجودیت دانشجو در ارتباط انتخاب درس اجباری و شرکت درس در این رابطه اختیاری باشد، این دو مفهوم به شکل زیر در نمودار این دو موضوع به شکل زیر در نمودار ER نشان داده می­شوند.

نکته مهم:

در یک ارتباط ۱:n اگر نوع مشارکت موجودیت سمت n اجباری باشد، این موجودیت یک موجودیت وابسته است که وابستگی آن به موجودیت سمت ۱ است.

تبدیل نمودار ER به بانک اطلاعات رابطه ای:

اگرچه مفهوم بانک اطلاعات رابطه ای مبحث فصل بعد است، اما بدلیل اهمیت موضوع تبدیل نمودار ER به بانک اطلاعات و برای اینکه در بحث طراحی بانک اطلاعات فاصله ایجاد نشود، در اینجا اشاره­ای به این بحث می نماییم. بانک اطلاعات رابطه ای مدلی از بانک اطلاعات است که در آن هر موجودیت به شکل یک جدول در می آید که ستونهای آن صفات خاصه موجودیت و هر سطر آن نمونه ای از آن موجودیت است. ارتباط بین دو موجودیت نیز از طریق اضافه کردن کلید یک موجودیت به موجودیت دیگر (موسوم به کلید خارجی) برقرار می شود. با این مقدمه کوتاه، به شرح مراحل تبدیل موجودیتها به جداول می پردازیم:

۱- بازاء هر موجودیت یک جدول طراحی می کنیم که ستونهای آن صفات خاصه موجودیت بوده و هر سطر آن یک نمونه از آن موجودیت است.

۲- هر ارتباط بین موجودیتها در نمودار ER بسته به ماهیت آن باید در جدائل لحاظ شود. طبق قوانین زیر:

– ارتباط ۱:۱: در این حالت می توان دو موجودیت را در قالب یک جدول ادغام کرد و نیازی به جدا کردن دو جدول نیست.

– ارتباط ۱:n : پس کلید اصلی موجودیت سمت ۱ را بعنوان کلید خارجی به جدول مربوط به موجودیت سمت n نیز اضافه می­کنیم.

– ارتباط m:n : برای برقراری ارتباط بین دو جدول، یک جدول دیگر بعنوان جدول واسط طراحی می کنیم. در این جدول واسط، کلیدهای اصلی مربوط به هر دو موجودیت بعنوان کلیدهای خارجی قرار می­گیرند.

 

چند مثال جامع:

مثال اول:

برای یک سیستم فروشگاه با مشخصات زیر یک نمودار ER طراحی کنید و سپس آنرا به بانک اطلاعات رابطه ای تبدیل کنید.

فروشگاه تعدادی مشتری ثابت و مشخص دارد که هر مشتری دارای کد اشتراک، نام، نشانی و تلفن می­باشد.

هریک از اجناس فروشگاه یک کد مشخصه، نام و قیمت دارد. (توجه شود که اجناس یک نمونه کد مشخصه یکسانی دارند.)

هر مشتری می تواند در هر بار خرید از برخی اجناس تعدادی را خریداری کند. بازای هر خرید یک فاکتور صادر می شود که دارای شماره و تاریخ است.

حل:

طراحی نمودار ER:

با توجه به سوال مشخص است که موجودیتهای اصلی عبارتند از: مشتری، جنس و فاکتور. از لحاظ ارتباط منطقی هم مشتری و جنس هریک با فاکتور ارتباط دارند و باید توجه شود که ارتباط دو موجودیت مشتری و جنس فقط از طریق موجودیت فاکتور می­باشد.

ماهیت ارتباط بین مشتری و فاکتور: برای هر مشتری می تواند در زمانهای مختلف چندین فاکتور ثبت شود. اما هر فاکتور مربوط به یک مشتری است. بنابراین ماهیت ارتباط ۱:n است.

ماهیت ارتباط بین جنس و فاکتور: با توجه به اینکه اجناس همسان یکی فرض می­شوند (کد یکسانی دارند)، هر جنس ممکن است در چندین فاکتور ثبت شود. از طرفی هر فاکتور هم ممکن است شامل چندین قلم جنس باشد. بنابراین ماهیت ارتباط m:n است. در نتیجه این ارتباط خود به یک موجودیت تبدیل می­شود. تعداد خریداری شده از یک جنس یک قلم اطلاعاتی است که هم مربوط به جنس و هم مربوط به فاکتور است. پس یک صفت خاصه برای موجودیت واسط آنها محسوب می شود.

تبدیل به بانک اطلاعات رابطه ای:

بعد از رسم یک جدول برای هریک از موجودیتها،

– ارتباط بین مشتری و فاکتور ۱:n است. پس کلید اصلی مشتری (موجودیت سمت ۱) را بعنوان کلید خارجی به جدول فاکتور (موجودیت سمت n) نیز اضافه می­کنیم.

– ارتباط بین جنس و فاکتور m:n است. بنابراین برای برقراری ارتباط بین دو جدول، یک جدول دیگر بعنوان جدول واسط طراحی می کنیم. در این جدول واسط، کلیدهای اصلی مربوط به هر دو موجودیت فاکتور و جنس بعنوان کلیدهای خارجی قرار می­گیرند. این جدول نشان می دهد که چه فاکتوری (شماره فاکتور) شامل چه جنسی (کد جنس) بوده است. با قرار دادن صفت تعداد خریداری شده در این جدول مشخص می شود که چه فاکتوری شامل چه جنسی و به چه تعدادی بوده است.

برای کلید اصلی این جدول می توان از ترکیب دو صفت ش فاکتور و کد جنس استفاده کرد و یا از کلیدهای شماره گذاری اتوماتیک (Auto Increment Number) استفاده کرد.

db-er1

مثال دوم:

برای یک سیستم دانشگاه با مشخصات زیر یک نمودار ER طراحی کنید و سپس آنرا به بانک اطلاعات رابطه ای تبدیل کنید.

دانشگاه شامل تعدادی دانشکده است که هر دانشکده یک کد، نام، رئیس و یک سال تاسیس دارد.

در هر دانشکده تعدادی رشته دایر است که هر رشته شامل یک کد، یک نام و یک مقطع است.

در هر رشته تعدادی دانشجو تحصیل می­کنند که هر دانشجو دارای شماره دانشجویی، نام و نام خانوادگی است.

هر رشته تعدادی استاد دارد که البته بعضی از اساتید بین چند رشته مشترکند. هر استاد دارای کد، نام است.

در سرفصل هر رشته تعدادی درس تعریف شده که هر درس دارای کد، نام درس و تعداد واحد است. هر درس می تواند چندین پیش نیاز داشته باشد و یا پیش نیاز چندین درس دیگر باشد.

در هر ترم از هر درس چندین گروه درسی ارائه می شود که هر گروه یک کد مشخصه، یک شماره گروه و یک ساعت تشکیل دارد.

از دروس ارائه شده هر دانشجو چندین مورد را انتخاب می کند و در نهایت برای هرکدام نمره ای کسب می­کند.

db-ER

db-er-tables

دیدگاه ها بسته شده اند.

قیمت لحظه ای طلا و سکه و ارز

راهنمای دانلود

برای دانلود، کافی است که بر روی لینک دانلود آن کلیک نمایید تا وارد صفحه پرداخت آنلاین شوید. بعد از وارد کردن مشخصات کارت بانکی و مبلغ، پرداخت انجام شده و لینک دانلود نمایش داده می شود.

از این که حامی پروژه را برای دانلود انتخاب نموده اید، سپاسگزاریم.

در صورت بروز هر گونه مشکل برای خرید و دانلود، لطفا از طریق ایمیل زیر با ما مکاتبه نمایید.

HamiProje@Gmail.com

تبلیغات

alibaba02

تقویم شمسی

مهر ۱۳۹۷
ش ی د س چ پ ج
« شهریور    
 123456
۷۸۹۱۰۱۱۱۲۱۳
۱۴۱۵۱۶۱۷۱۸۱۹۲۰
۲۱۲۲۲۳۲۴۲۵۲۶۲۷
۲۸۲۹۳۰