ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
مفاهیم پایگاه داده SQL Server
10-27-2017, 08:04 AM
ارسال: #1
مفاهیم پایگاه داده SQL Server
مقدمه:
پایگاه داده ها چیست؟
دادِگان (پایگاه داده‌ها یا بانک اطلاعاتی) به مجموعه‌ای از اطلاعات با ساختار منظم و سامانمند گفته می‌شود. این پایگاه‌های اطلاعاتی معمولاً در قالبی که برای دستگاه‌ها و رایانه‌ها قابل خواندن و قابل دسترسی باشند ذخیره می‌شوند. البته چنین شیوه ذخیره‌سازی اطلاعات تنها روش موجود نیست و شیوه‌های دیگری مانند ذخیره‌سازی ساده در پرونده‌ها نیز استفاده می‌گردد. مسئله‌ای که ذخیره‌سازی داده‌ها در دادگان را موثر می‌سازد وجود یک ساختار مفهومی است برای ذخیره‌سازی و روابط بین داده‌ها است.
پایگاه داده در اصل مجموعه‌ای سازمان یافته از اطلاعات است.این واژه از دانش رایانه سرچشمه می‌‌گیرد ،اما کاربر وسیع و عمومی نیز دارد، این وسعت به اندازه‌ای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانه‌ای برای پایگاه داده ایجاد می‌‌کند) شامل تعاریف غیر الکترونیکی برای پایگاه داده می‌‌باشد. در این نوشتار به کاربرد های تکنیکی برای این اصطلاح محدود می‌‌شود.
یک تعریف ممکن این است که: پایگاه داده مجموعه‌ای از رکورد های ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانه‌ای است که می‌‌تواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولا به صورت مجموعه‌ای از اجزای داده‌ای یا رویداد ها سازماندهی می‌‌گردد. بخش های بازیابی شده در هر پرسش به اطلاعاتی تبدیل می‌‌شود که برای اتخاذ یک تصمیم کاربرد دارد. برنامه رایانه‌ای که برای مدیریت و پرسش و پاسخ بین پایگاه‌های داده‌ای استفاده می‌‌شود را مدیر سیستم پایگاه داده‌ای یا به اختصار (DBMS) می‌‌نامیم. خصوصیات و طراحی سیستم های پایگاه داده‌ای در علم اطلاعات مطالعه می‌‌شود.
مفهوم اصلی پایگاه داده این است که پایگاه داده مجموعه‌ای از رکورد ها یا تکه هایی از یک شناخت است.نوعا در یک پایگاه داده توصیف ساخت یافته‌ای برای موجودیت های نگه داری شده در پایگاه داده وجود دارد: این توصیف با یک الگو یا مدل شناخته می‌‌شود. مدل توصیفی، اشیا پایگاه‌های داده و ارتباط بین آنها را نشان می‌‌دهد. روش های متفاوتی برای سازماندهی این مدل ها وجود دارد که به آنها مدل های پایگاه داده گوییم. پرکاربرد‌ترین مدلی که امروزه بسیار استفاده می‌‌شود، مدل رابطه‌ای است که به طور عام به صورت زیر تعریف می‌‌شود: نمایش تمام اطلاعاتی که به فرم جداول مرتبط که هریک از سطر ها و ستونها تشکیل شده است(تعریف حقیقی آن در علم ریاضیات برسی می‌‌شود). در این مدل وابستگی ها به کمک مقادیر مشترک در بیش از یک جدول نشان داده می‌‌شود. مدل های دیگری مثل مدل سلسله مراتب و مدل شبکه‌ای به طور صریح تری ارتباط ها را نشان می‌‌دهند.
در مباحث تخصصی تر اصتلاح دادگان یا پایگاه داده به صورت مجموعه‌ای از رکورد های مرتبط با هم تعریف می‌‌شود. بسیاری از حرفه‌ای ها مجموعه‌ای از داده هایی با خصوصیات یکسان به منظور ایجاد یک پایگاه داده‌ای یکتا استفاده می‌‌کنند
در ادامه قصد داریم معماری های مختلف پایگاه داده را مورد بررسی قرار دهیم.

معماری پایگاه داده ها به چند دسته مختلف تقسیم می شوند:

1_سیستم های متمرکز

2_سیستم های مشتری/خدمتگزار

3_ سیستم های موازی

4_ سیستم های توزیع شده

در ادامه به شرح سیستم های مختلف می پردازیم.

1_سیستمهای متمرکز

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

در این نوع معماری پایگاه داده در یک کامپیوترقرار دارد. بدین معنی که در این معماری یک یا بیشتر پردازنده و یک حافظه مشترک بین پایگاه داده و سیستم عمل وجود دارد.

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

همچنین از معایب آن می توان به موارد زیر اشاره کرد:
_تک کاربره بودن
_ مشکل بودن استفاده در سازمانهای بزرگ

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

2_سیستم های مشتری/خدمتگزار:
این نوع معماری بعد از معماری متمرکز و به علت نا کارآمدی معماری متمرکز در سیتم های بزرگتر بوجود آمد. در این نوع معماری قسمت های مختلف پایگاه داده در کامپیوتر های مختلف قرار می گیرند. در این روش یک کامپیوتر نقش سرور را به عهده می گیرند و کاربران می توانند با استفاده از کامپیوتر های دیگر و متصل شدن به سرور از پایگاه داده استفاده کنند. همانطور که مشخص است کاربران و کامپیوترها برای اتصال به سرور نیازمند به شبکه کامپیوتری هستند پس در واقع شبکه های کامپیوتری یکی از ملزومات این نوع معماری به حساب می آید.

پایگاه داده ها در این نوع معماری بر حسب کاربری به دو بخش تقسیم می شود:
• Back-end :1 این قسمت وظیفه بررسی و کنترل دسترسی ها، بررسی و بهینه سازی پرس و جو[5] ها و کنترل همزمانی ها و سالم بودن پایگاه داده ها را به عهده دارد.

• Front-end:2 شامل ابزار هایی برای نمایش و زیباسازی نتایج پرس و جو ها مثل ابزارهای تولید فرم ها و ابزار های گزارش گیری می باشد.

برای ایجاد ارتباط درست میان دو قسمت فوق نیازمند یک لایه و بستر است. این بستر میتواند از دو طریق دستورات SQL و یا API ها برقرار شود.

در مقایسه این نوع معماری با معماری متمرکز با استفاده از Mainframe ها می توان به مزایای زیر اشاره کرد:

• افزایش میزان کاربری سیستم با توجه به هزینه

• راحت تر شدن گسترش دادن و توزیع کردن منابع

• تولید واسط های کاربر بهتر

• راحت تر شدن نگهداری سیستم

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

1_ سرورهای داده ای: این نوع سرور ها بیشتر در سیستم های شی گرا مورد استفاده قرار می گیرند

2_سرور های تراکنشی: این نوع سرور ها بیشتر در سیستم های رابطه ای مورد استفاده قرار می گیرند

در ادامه به شرح این دو بخش می پردازیم.
در سرورهای تراکنشی که به آنها سرورهای پرس و جو هم گفته می شود روش کار بدین صورت است که درخواست های کاریران به این سیستم ها ارسال می شود و نتیجه در این سرور ها تولید و به کاربر ارسال می شود. درخواست های کاربران به صورت دستورات RPC و دستورات SQL ارسال می شود.برای ارسال و دریافت نیاز به نرم افزار هایی هست مانند ODBC و JDBC که وظیفه ارتباط با سرور و ارسال پرس و جوها و دریافت نتایج را به عهده دارد.

برای پیاده سازی سرورهای تراکنشی از تعدادی پردازه که حافظه مشترک دارند استفاده می شود که معمولا برای بهبود پردازه ها هر کدام از آنها Multithread مورد استفاده قرار می گیرند.

تعدادی از پردازه هایی که حتما یک سرور تراکنشی باید داشته باشد در زیر می بینیم:
_پردازه های سرور: این پردازه ها وظیفه دریافت پرس و جو ها و تولید پاسخ ها را به عهده دارد

_پردازه مدیریت همزمانی: وظیفه مدیریت همزمانی درخواست ها را عهده دار است این امکان یا با استفاده از سمافورهای سیستم عامل و یا با استفاده از روش های مثل Test and Set فراهم آورده می شود.

_پردازه نگارنده پایگاه داده: که وظیفه نوشتن نتایج پرس و جو ها را بر روی دیسک به عهده دارد

_پردازه نوشتن logها: این پردازه اطلاعات نوشته شده روی بافر برای ذخیره به حافظه های پایدار می نویسد.

_پردازه check point: این پردازه مسؤلیت چک کردن پردازشها در مراحل مشخص انجام می دهد

_پردازه Monitor Process: وظیفه این پردازه کنترل عملکرد دیگر پردازه ها و در صورت لزوم Recover کردن آن پردازه می باشد.

نوع دیگر سرور ها سرور های دیتا هستند که بیشتر در سیستم های شی گرا استفاده می شود. این سرورها معمولا در شبکه های Lan مورد استفاده قرار می گیرد.

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

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


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
10-27-2017, 08:10 AM
ارسال: #2
RE: مفاهیم پایگاه داده SQL Server
نوع دیگر این معماری، معماری بر پایه دیسک سخت مشترک است. دز این روش چند پردازنده با حافظه های مخصوص خود متصل شده به هم توسط شبکه پرسرعت و با یک دیسک سخت مشترک با هم در ارتباطند.

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

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

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

مشکل ایجاد شده امروزه مورد تحقیق و بررسی بسیاری از علاقمندان قرار دارد و گروه های متعدد روش هایی را برای چگونگی حل این مشکل ارایه داده و می دهند. برای نمومه یکی از روش ها استفاده از مفاهیم “شبکه های عصبی” در حل این مشکل است.
3.1 اجرای پرس و جو ها در معماری موازی:
برای اجرا پرس و جو ها ابتدا باید درخواست پرس و جو ها به درختواره عملیاتی تبدیل شود. در این درختواره می توان با حرکت از پایین به بالا دستوراتی که ورودی های آنها مشخص شده است را به صورت موازی اجرا کنیم. در این روش دستوراتی در درختواره وجود خواهند داشت که هنوز ورودی آنها مشخص نشده است در نتیجه این دستورات تا آماده شدن ورودی های آن اجرا نخواهد شد.

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

در بخش بندی داده ها روش هایی مانند Round- robin, استفاده از روش Hash و همینطور روش Range partitioning استفاده کرد. روش RR بیشتر برای مواردی که کل داده ها مورد پردازش قرار می گیرند بیشتر استفاده می شود. دو روش دیگر برای مواقعی که تنها بخش های خاصی از داده ها مورد پردازش قرار می گیرند استفاده می شوند.

3.2 عملگرهای تک عملوندی در معماری موازی :
در این بخش به چگونگی اجرای عملگرهای تک عملوندی در معماری موازی بدون به اشتراک گذاشتن منابع را مورد بررسی قرار می دهیم.

مرتب سازی:

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

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

_عمل Join
برای عمل Join بین دو رابطه هم از همان روش فوق یعنی تقسیم داده ها و توزیع آنها بین پردازنده ها استفاده می شود. در این روش دو نوع بخش بندی محتمل است. روش اول تقسیم بندی بدون توجه به عامل Join است که در این حالت تمامی داده ها بدون هیچ پیش فرضی تقسیم می شوند. روش دوم استفاده از عامل ارتباط است که در این حالت داده ها را با توجه به عامل ارتباط و با توجه به تعداد پردازنده ها تقسیم می کنیم. پس از تقسیم بین پردازنده ها عمل Join در هرکدام انجام می شود و نتیجه نهایی از اجتماع این نتایج بدست می آید. در هر کدام از پردازنده ها برای عمل Join از روش Hash Join که قبلا توضیح داده شده است استفاده می شود.

یک روش برای بهبود عمل Hash Join اینست که داده ها را به بخش های متعدد تقسیم کنیم و عمل Join هر بخش را به صورت موازی اجرا کنیم
عملگرهای دیگر نظیر عملگرهای گروهی مانند Sum نیز امروزه بحث های مهمی را در این زمینه ایجاد کرده اند و گروه های مختلفی بر روی چگونگی اعمال این عملگرها کار می کنند. یکی از روش های اعمال پردازش موازی اعمال روش بخش بندی و توزیع داده ها مانند روش های فوق است که برای عملگرهای گروهی نیاز به تغییرات و طراحی روش جدید است.
4_معماری پایگاه داده توزیع شده:
سيستم های توزيع شده بر توزيع داده و همچنين همبستگی فعاليت ها و کنترل روی اجزای توزيع شده سيستم دلالت دارند. اکثر سيستم های توزيع شده برای تقسيم کردن بارکاری يا برای انتقال عملکردهای پردازش داده به نزديکی محل انجام اين وظايف است. در هردو حالت هدف نامحسوس بودن توزيع شدگی از ديد کاربر است.




در این معماری، داده ها در محلهای مختلفی نگهداری می شود. دو خاصیت مهم این نوع از پایگاه داده ها :

1_استقلال داده های توزیع شده:
کاربران باید بتوانند بدون اطلاع از محل ذخیره داده ها، از پایگاه داده ها پرس و جو کنند. 2_عدم تفاوت تراکنشهای توزیع شده
: کاربران باید بتوانند دقیقاً مشابه روشی که در مورد تراکنشهای محلی(local) عمل می کردند، تراکنشهایی بنویسند که به داده ها در محلهای مختلف دسترسی داشته باشد و آنها را بروز کند.

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

انواع پایگاه داده های توزیع شده:

اگر داده ها توزیع شده باشند و تمام DBMSها از یک نوع بودند، یک سیستم پایگاه داده های توزیع شده همگن داریم. اگر داده ها در محلهای مختلف باشند ولی نوع DBMSها مختلف باشند در این حالت یک سیستم پایگاه داده های توزیع شده ناهمگن داریم. کلید ایجاد سیستم های ناهمگن داشتن استانداردهای مقبول برای پروتکلهای گذرگاهها می باشد.
معماریهای مختلف برای سیستم مدیریت پایگاه داده های توزیع شده:

1_ سیستمهای مشتری/خدمتگزار:
در این معماری وظایف مشتری و خدمتگزار کاملاً از هم جداست و در هر لحظه یک یا چند پردازه مشتری و یک یا چند پردازه خدمتگزار در سیستم موجود است و پردازه های مشتری می توانند به هر یک از پردازه های خدمتگزار پرس و جو بفرستند. این معماری به دلیل سادگی نسبی پیاده سازی و متمرکز بودن خدمتگزار خیلی رایج است. در این سیستم کاربر می تواند با استفاده از واسط کاربر گرافیکی در سیستم مشتری کار کند و نیازی به کار کردن با واسطهای کاربر نامأنوس در سیستم خدمتگزار نیست.
2_سیستم تشریک مساعی خدمتگزار:
سیستم مشتری/خدمتگزار به یک پرس و جو اجازه پوشش چند خدمتگزار را نمی دهد زیرا در این صورت مشتری باید پرس و جو را به بخشهای مختلف تقسیم کرده تا در خدمتگزارهای مختلف اجرا شوند و جوابها را با هم ترکیب کند که این کار اصل جدا بودن وظایف مشتری از خدمتگزار را زیر سوال می برد. در سیستم تشریک مساعی مجموعه ای از خدمتگزارها داریم که هر کدام توانایی اجرای تراکنش روی داده های محلی را دارند و با همکاری یکدیگر تراکنشهایی که شامل چند خدمتگزار می شود را اجرا می کنند.

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

تکرار :
تکرار به این معنی است که ما کپی های متعددی از یک رابطه و یا یک قطعه از یک رابطه را ذخیره کنیم. به طور مثال اگر R1 و R2 و R3 ،قطعه های رابطه R باشند، ما ممکن است یک کپی از R1 داشته باشیم ولی مثلاً R2 در دو سایت موجود است و R3 در تمامی سایت ها موجود است.

مزایای این روش عبارتند از :
1_افزایش دسترس پذیری داده :
اگر یک سایت که شامل یک کپی از یک رابطه است خراب شود ما همان داده را می توانیم در سایت دیگری پیدا کنیم همچنین اگر یک کپی محلی از رابطه هایی که در سایت های دیگر هستند را داشته باشیم کمتر در معرض تهدید از بین رفتن کانال ارتباطی خواهیم بود. Replication دارای دو نوع مختلف همگام[4] و غیر همگام [5] می باشد، تفاوت این دو نوع در روش به روز رسانی کپی های یک رابطه است در زمانی که یک رابطه تغییر می کند.

2_پرس و جو ها با سرعت بیشتری قابل اجرا هستند زیرا یک کپی محلی از داده های ذخیره شده درپایگاه داده موجود است.

3_انجام وظایف بصورت موازی:
در موردي كه بيشتر دسترسي هاي به رابطه r براي خواندن از رابطه r مي باشد، چندين سايت مي توانند پرس و جو را به صورت موازي پردازش كنند، نسخه هاي بيشترr شانس اينكه داده مورد نياز در سايتي كه تراكنش در حال اجراست، يافته شود را بالا مي برد از اين رو تکرار داده انتقال داده بين سايتها را حداقل مي كند.

4_افزایش سربار بروز کردن:
سيستم بايستي مطمئن شود كه تمام نسخه هاي رابطه r سازگار هستند. بنابراين هرگاه r، بروز شود اين بروز رسانی بايستي در تمامي سايتهايي كه حاوي نسخه ها هستند منتشر شود. در نتيجه overhead زياد مي شود.

اگر رابطه r ، نسخه برداري شده باشد، يك كپي از رابطه r در دو يا بيش از دو سايت ذخيره مي شود. در بيشتر موارد، با تکرار داده کامل روبرو هستیم، به اين منظور كه هر نسخه بر روي تمامي سايتها ذخيره مي شود. كنترل update هاي همزمان توسط چندين تراكنش روي داده هاي نسخه برداري شده مشكلتر از سيستمهاي متمركز است. ما مي توانيم مديريت نسخه هاي رابطه r را با انتخاب يكي از آنها به عنوان كپي اصلي r ساده كنيم.

شفافیت Transparency :

كاربر يك پايگاه داده توزيعي نبايد نياز به دانستن اين داشته باشد كه داده ها به صورت فيزيكي در كجا واقع شده اند يا اينكه در يك سايت محلي خاص داده ها چگونه دستيابي مي شوند. به اين خاصيت data transparency گفته مي شود و مي تواند چند فرم داشته باشد:

• Fragmentation Transparency: كاربر نيازي به دانستن اينكه يك رابطه چگونه بخش بندي شده است ندارد.

• Replication Transparency: كاربر هر شي داده را منطقا يكتا مي بيند. سيستم توزيعي ممكن است يك شي را تکرار كند تا کارایی يا در دسترس بودن داده ها را افزايش دهد. كاربر نگران اين موضوع نيست كه كدام اشياء داده اي تکرار شده اند يا در كجا اين نسخه ها قرارگرفته اند.

• Location Transparency: كاربران نياز به دانستن مكان فيزيكي داده ها ندارند. پايگاه داده توزيعي بايستي قادر به يافتن هر داده اي توسط اعمال شناسه داده در تراكنش كاربر باشد.

DATA ITEMها مثل رابطه ها، بخشها، و نسخه ها بايستي نامهاي يكتا داشته باشند. اعمال اين خاصيت در پايگاه داده هاي متمركز آسان است. در يك پايگاه داده توزيعي ما بايد مراقب باشيم كه دو سايت از يك نام مشابه براي data item هاي مجزا استفاده نكنند. يك راه براي اين مشكل اين است كه تمامي نامها در يك name server مركزي ذخيره شوند. name server كمك مي كند تا مطمئن شويم كه يك نام مشابه براي data item هاي مختلف استفاده نمي شود. ما همچنين مي توانيم از name server براي پيداكردن يك data item، طبق نام Item استفاده كنيم.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
10-27-2017, 08:11 AM
ارسال: #3
RE: مفاهیم پایگاه داده SQL Server
اين راه حل دو مشكل بزرگ دارد:
name server 1 مي تواند گلوگاه كارايي سيستم ما شود اگر محل data item طبق نامهايشان پيدا شود.
2 اگر name server،مشکلی پیدا کند سيستم از كار مي افتد.
رویکردهاي ديگر كه بيشتر استفاده مي شوند اين است كه هر سايت به هر نام كه توليد مي كند IDخودش را به صورت پيشوند اضافه كند. از اين جهت هيج كنترل مركزي نياز نيست .اما اين روش location transparency را نقض مي كند . برخي پایگاه داده ها آدرس اينترنتي خود را به عنوان ID سايت استفاده مي كنند.
براي غلبه بر اين مشكل سيستم پايگاه داده مي تواند مجموعه از نامهاي مستعار براي data item ها ايجاد كند.كاربر مي تواند به data item توسط نامهاي ساده كه توسط سيستم به نامهاي كامل ترجمه مي شوند مراجعه كند. نگاشت نامهاي مستعار به نامهاي واقعي مي تواند در هر سايت ذخيره شود.با نامهاي مستعار كاربر مي تواند از محل فيزيكي data item،ناآگاه بماند . همچنين چنانچه مدیر پایگاه داده ها تصميم به انتقال data item از سايتي به سايت ديگر رفت كاربر دچار مشكل نشود.
مدیریت کاتالوگ توزیع شده:

نام گذاری اشیاء:

در صورتی که یک رابطه قطعه بندی و تکرار می شود ما باید قادر باشیم هر کپی از یک قطعه را به صورت یکتا مشخص کنیم. یک راه حل اینست که یک global unique ID توسط یک name server تولید شود.

مشکلی که این راه حل دارد اینست که اشیاء محل باید بتوانند بدون در نظر گرفتن اسامی سراسری نام گذاری شوند. راه حلی کلی اینست که هر نام چندین فیلد داشته باشد. یک فیلد نام محلی که هر سایت مسئول نام گذاری آن است و یک فیلد Birth Site که سایتی که رابطه را تولید کرده و اطلاعات تمامی Fragment ها و کپی های رابطه را دارد، را مشخص می کند.

توسط این دو فیلد یک رابطه به صورت یکتا نام گذاری می شود که ما به آن global relation name می گوئیم. برای مشخص کردن یک replica ما از ترکیب global relation name و replica ID استفاده می کنیم و به آن global replica name می گوئیم.

ساختار کاتالوگ:
کاتالوگ می تواند بر روی یک سایت مرکزی باشد ولی درصورتی که آن سایت خراب شود کاتالوگ سیستم از بین می رود روش دیگر اینست که در هر سایت یک کپی از کاتالوگ سیستم نگهداری شود. ولی اشکال این روش هم اینست که هر تغییر در کاتالوگ سیستم باید به تمامی سایت های دیگر broadcast شود.

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

استقلال داده توزیع شده:
استقلال داده توزیع شده به این معناست کاربران بدون اینکه اطلاعی از تکرار ها و قطعه های یک رابطه باشند قادر به نوشتن پرس و جو های خود باشند. بازسازی رابطه ها وظیفه DBMS می باشد. به عبارت دیگر کاربران هنگام اجرای یک پرس و جو نباید نام کامل اشیاء داده ای را مشخص کنند.

در کاتالوگ سیستم نام محلی هر رابطه ترکیبی از نام کاربر و نام تعریف شده توسط کاربر برای آن رابطه است. هنگامی که کاربر query خود نام یک رابطه را می آورد، DBMS نام کاربر را به این نام اضافه می کند تا نام محلی رابطه را بدست آورد و سپس site-id کاربر را به آن اضافه می کند تا global relation name را بسازد. با جستجو براساس global name درون سایت مادر DBMS می تواند محل تکرار های آن رابطه را پیدا کند.

تراکنش های توزیع شده : هنگامی که یک تراکنش در یک سایت ثبت می شود، مدیر تراکنش ها در آن سایت، آن تراکنش را به چند زیر تراکنش تقسیم می کند به طوری که هر زیر تراکنش در سایت خاصی اجرا می شود.

بازیابی توزیع شده:
مقوله بازیابی در معماری های توزیع شده پیچیده تر از معماری های متمرکز است زیرا: 1_نوع Failure می توانیم داشته باشیم یکی از Failure کانال های ارتباطی و Failure سایت های دیگری که زیر تراکنش ها در آنها در حال اجرا می باشند.

2_یا تراکنش تمامی سایتها باید Commit شود و یا هیچ کدام از آنهاکه این مسئله توسط Commit Protocol تضمین می شود.


پروتوکلهای اجرای معمولی و ثبت :
در حین اجرا اعمال زیر تراکنش ها در آن سایت ثبت می شود. و نهایتاً Commit protocol بررسی می کند که آیا تمامی زیر تراکنش های آن تراکنش Commit شده اند یا خیر.

به مدیر تراکنش های سایتی که تراکنش به آن تعلق داد Coordinator می گویند و به مدیر تراکنش های سایتهایی که در آنها زیر تراکنش ها اجرا می شوند Subordinator می گویند هنگامی که کاربر تصمیم می گیرد که تراکنش را Commit بکند دستور Commit به Coordinator تراکنش فرستاده می شود و پروتکل two phase commit به صورت زیر اجرا می شود.
Coordinator_1یک پیغام Prepare به تمامی Subordinate ها می فرستد.
2_هنگامی که Subordinate پیغام prepare را دریافت می کند تصمیم می گیرد که آیا تراکنش را abort کند و یا commit کند. سپس در prepare log خود وضعیت را ثبت می کند و یک پیغام بله و یا خیر به Coordinator می فرستد.

3 _اگر Coordinator از تمامی Subordinate ها پیغام بله را دریافت کند یک Commit را در فایل log ثبت می کند و پیغام Commit را به تمامی Subordinate ها می فرستد. ولی در صورتی که حتی از یک Subordinate پیغام خیر دریافت کند و یا اینکه اصلاً پیغامی دریافت نکند پیغام abort را به تمامی Subordinate ها می فرستد. و آن را نیز log می کند.

_4 هنگامی که یک Subordinate پیغام abort را دریافت می کند abort را در فایل log ثبت می کند و یک پیغام ack به coordinator می فرستد و زیر تراکنش خود را abort می کند. در صورتی که Subordinator پیغام commit دریافت کند نیز آن را log می کند و یک ack به coordinator می فرستد و زیر تراکنش را commit می کند.
5 _هنگامی که coordinator از تمامی Subordinator ها پیغام ack را دریافت می کند برای تراکنش end را در فایل log ثبت می کند.
دلیل اینکه به این پروتکل two phase commit می گویند اینست که دو دسته پیغام رد و بدل می شود یک دسته پیغام های نظرسنجی [20] و دسته دوم پیغام های termination.
شروع دوباره بعد از Failure :
هنگامی که یک سایت پس از یک crash دوباره احیا می شود، فرآیند Recovery را فراخوانی می کند. فرآیند recovery و فایل log را می خواند و تمامی تراکنش هایی که هنگام Failure درحال اجرای commit protocol بودند را پردازش می کند.
.اگر برای تراکنش T مایک رکود Commit داریم T را Redo می کنیم و اگر رکورد abort باشد آن را undo می کنیم. در صورتی که این سایت coordinator باشد و از روی رکوردهای log می توان فهمید باید به تمامی Subordinate ها پیغام Commit و یا abort بفرستیم و بقیه کادر همانند قبل ادامه دهیم.

• اگر مایک رکورد Log برای تراکنش T داریم ولی رکورد Commit و abort نداریم آنگاه متوجه می شدیم که این سایت Subordinate است، از رکورد coordinator را شناسائی می کنیم و با آن ارتباط برقرار می کنیم تا وضعیت تراکنش T را بیابیم. هنگامی که coordinator وضعیت تراکنش را پاسخ داد (commit abort) همانند مورد قبل عمل می کنیم.

• اگر هیچ گونه log برای تراکنش T نداشته باشیم، مسلماً T برای commit نظر خواهی نکرده است در نتیجه ما می توانیم T را به سادگی abort کنیم. در این حالت ما نمی توانیم مشخص کنیم که سایت Coordinator بوده است یا Subordinate.

اگر سایت Coordinator ، fail شود، Subordinate ها نمی توانند تصمیم بگیرند که آیا زیر تراکش را Commit یا abort بکنند، در این موقعیت T بلاک شده است.

البته subordinate ها در این مرحله می توانند با یکدیگر ارتباط برقرار کنند تا از وضعیت یکدیگر مطلع بشوند و در صورتی که یکی از آنها abort کرده است بقیه نیز abort کنند.

_ارزيابي الگوريتم هاي كنترل همروندي ذرسيستم مديريت پايگاه داده توزيع شده:
اجراي همروند تراكنش‎ها در يك سيستم مديريت پايگاه داده توزيع شده ، ممكن است منجر به ناسازگاري‎هايي در پايگاه داده شود . ناسازگاري بر اثر مقادير نادرستي است كه براي داده‎هاي موجود در پايگاه داده بر اثر تداخل اجراء تراكنشها بوجود مي‎آيد . الگوريتمهاي كنترل همروندي ، جهت تضمين اجراء همروند چندين تراكنش كه بصورت موازي با داده‎هاي مشترك كار مي‎كنند طراحي شده‎اند . مسالة كنترل همروندي در پايگاه داده‎هاي توزيع شده امري ضروري و با اهميت مي‎باشد . در اين زمينه مطالعات و تحقيقات فراواني صورت گرفته است كه نتيجة آن الگوريتمهاي متنوع كنترل همروندي مي‎باشد . با توجه به الگوريتمهاي متنوع در اين زمينه و اين واقعيت كه روز به روز بر اهميت و ارزش پايگاه داده‎هاي توزيع شده افزوده مي‎شود ، اما هنوز كارآيي الگوريتمها در مقايسه با يكديگر مشخص نيست . يك تقسيم‎بندي بر روي الگوريتمهاي مزبور ، صورت مي‎گيرد و سه الگوريتم Wound_wait(WW) و Immediate_Restart(IRS) و Optimistic(OPT) از اين تقسيم‎بندي بوسيلة شبيه‎سازي مورد ارزيابي و مقايسه قرار مي‎گيرند . يك مدل جامع به عنوان يك مبنا و چهار چوب واحد براي ارزيابي الگوريتمها مورد استفاده قرار مي‎گيرد . در اين ارزيابي از معيارهاي نرخ تكميل تراكنش ( ميزان تراكنش تكميل شونده در يك مدت زماني معين ) ، زمان پاسخ ( مدت زمان تكميل تراكنش ) و نرخ برخورد ( ميزان برخورد بين تراكنشها در يك اجراء ) استفاده مي‎شود . نتايج حاصل براي طراحان پايگاه داده توزيع شده مي‎تواند بسيار مفيد باشد. در بار كاري كم ، هر سه الگوريتم داراي نرخ تكميل تراكنش يكسان مي‎باشند . اما با افزايش بار كاري ، الگوريتم OPT ، شديدا دچار ترشينگ مي‎شود . ديرتر از همه ، در الگوريتم IRS ترشينگ رخ مي‎دهد. OPT در بار كاري كم از نرخ Abort پايين‎تري نسبت به الگوريتمIRS بر خوردار مي‎باشد . اما در بار كاري بالا نرخ Abort الگوريتم OPT بالاتر از IRS قرار مي‎گيرد . در بار كاري كم الگوريتم OPT داراي كمترين زمان پاسخ بوده ، اما با افزايش بار كاري ، زمان پاسخ OPT بالاتر از همه قرار مي‎گيرد . زمان پاسخ در بار كاري بالا در الگوريتم WW پايين‎تر از دو الگوريتم ديگر مي‎باشد . هر سه الگوريتم بر اثر تكرارسازي ، دچار افزايش زمان پاسخ مي‎شوند . رفتار سه الگوريتم نسبت به يكديگر در حالت تكرارسازي مشابه حالت بدون تكرارسازي مي‎باشد . الگوريتمOPT در بار كاري كم ، كمترين ميزان افزايش زمان پاسخ را بر اثر تكرارسازي دارد . تاثير پذيري WW از تكرارسازي همواره كمتر از تاثيرپذيري IRS است . براي شروع مجدد تراكنش در الگوريتم IRS ، بهترين زمان براي تاخير شروع مجدد مقدار Adaptive مي‎باشد . اين مقدار برابر متوسط زمان پاسخ تراكنشهاي موجود در سيستم مي‎باشد . استفاده از مقدار Adaptive براي WW در بار كاري كم هيچ تاثيري در ميزان نرخ برخورد ندارد ؛اما در بار كاري بالا ميزان نرخ برخورد را كاهش مي‎دهد.
ايجاد يك محيط براي شبيه سازي و سنجش مدلهاي توزيع داده در پايگاه‌داده هاي توزيعي

1-مقدمه : سيستم توسعه يافته با عنوان يك محيط شبيه ساز الگوريتم هاي توزيع ، با توجه به نوع نگرش به مساله ، بطور خلاصه تنها به تعريف الگوريتم توزيع داده پرداخته و با توجه به ساختار الگوريتمهاي توزيع داده ، تنها بخش تصميم گيري در ايجاد انتقال داده را پياده سازي نموده و بدليل ساده شدن طراحي و تمركز بر روي الگوريتم مسير يابي ، نوع اطلاع رساني به گره ها پياده سازي نشده و پياده سازي پروتكل بصورت استاندارد نيست
الگوريتمهاي توزيع پوياي داده ، از آنجائيكه معمولا با توجه به نوع بكارگيري ، دو فاكتور متفاوت از شبكه را براي توزيع داده در پايگاه‌داده‌هاي توزيعي استفاده ميكنند ، معمولا از پيچيدگي بالاي برخوردار بوده و مساله از درجه NP محسوب ميشوند. در اين ميان ، تكنيكهاي مختلفي جهت كاهش درجه مساله بكار گرفته ميشود. از جمله اين تكنيكها ميتوان به استفاده از Heuristic هاي مختلف اشاره نمود. رايج ترين نوع Heuristic هاي بكار رفته ، ميتوان به تغيير نوع متريك در الگوريتمهاي توزيع داده در پايگاه‌داده‌هاي توزيعي عادي اشاره نمود.
در اين سيستم ، محيطي جهت آزمايش انواع متريكها پديد آمده است. با توجه به طراحي سنكرون در سيستم و وجود يك منبع دانش و يك جز هماهنگ كننده در مجموعه ، جريان اطلاعات در سيستم پيچيده نبوده و امكان تصميم‌گيري بر اساس متريكهاي سيستم بصورت دقيق وجود دارد.
بطور مثال ، از جمله مزاياي سنكرون بودن سيستم ، امكان محاسبه دقيق تاخير صف بندي در يك پيوند و يا تاخير بسته هاي دريافتي در يك گره ميباشد.

همانطور که قبلا گفته شد برنامه با توجه ساختار شي گراي خود از قابليت توسعه برخودار بوده و اجزاي مربوط به ساير سرويسها و لايه ها در شبکه و پايگاه داده‌هاي توزيعي به راحتي به مجموعه قابل افزايش است.
برنامه بطور كلي داراي 8 فايل در قالب زبان Java بوده و مشتمل بر 1500+700 خط برنامه است كه يكي از اين كلاسها مربوط به واسط كاربر بوده و ساير كلاسها در هر فايل براي شبيه سازي ايجاد شده است. در ادامه اين مستند به توصيف برنامه ايجاد شده پرداخته و هر قسمت را بطور جداگانه معرفي خواهيم نمود.
2-کلاس DDBDataAlloc : در اين کلاس اشيا اصلي برنامه نمونه گيري شده و ميتوان گفت که اين کلاس به نوعي مدير برنامه محسوب ميشود. در اين کلاس از کلاس RoutingUI که کلاس مربوط به واسط کاربر ميباشد نمونه گيري ميگردد ولي کلاسهاي مربوط به شبيه سازي شبکه از جمله coordinator و ... در اين کلاس استفاده نشده است.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
10-27-2017, 08:12 AM
ارسال: #4
RE: مفاهیم پایگاه داده SQL Server
3-کلاسRoutingUI : اين کلاس براي پياده سازي واسط کاربر ايجاد شده است. همانطور که در شکل 1 مشاهده ميشود در اين کلاس از يک شي jTextField براي دريافت طول مدت زمان شبيه سازي از کاربر استفاده ميشود. همچنين از تعدادي شي jRadioButton براي دريافت اطلاعات مربوط به نوع روش توزيع داده استفاده ميگردد. لازم به ذکر است .
در يک بخش از اين برنامه نيز ميتوان فرکانس کلي ارسال بسته ها را در سناريوي داده شده به برنامه اعلام نمود. در نسخه فعلي برنامه سازمان و ساختار شبکه و نيز سناريوي برنامه در داخل برنامه به کلاسها ارائه ميگردد ولي ميتوان برنامه را طوري تغيير داد که بتواند سازمان شبکه و نيز سناريوي بسته هاي ارسالي را از کاربر دريافت نمايد.

در بخش ديگري از اين کلاس با استفاده از اشيا از نوع jTextArea اطلاعات مربوط به نتيجه شبيه سازي به کاربر ارائه ميشود. اولين بخش از اين گزارشات مربوط به وضعيت بسته هاي دريافتي در هر گره ميباشد. اين گزارش شامل تعداد بسته دريافتي ميزان متوسط تاخير در بسته هاي دريافتي ميباشد.
در بخش بعدي از گزارش وضعيت مربوط به Link هاي موجود در شبکه ارائه شده است که نشانگر کارايي Link و نيز تعداد پالس زماني است که Link بصورت بيکار بوده است. همچنين در ادامه اين بخش وضعيت هر يک از جريان هاي داده اي بطور جداگانه بررسي شده است. همچنين در اين بخش تعداد داده هاي قرار گرفته شده در هر گره را نيز نمايش ميدهيم.
در نهايت يک جمعبندي از کل وضعيت شبيه سازي ارائه شده است. اين جمعبندي شامل ميانگين تاخير در گره هاي شبکه تعداد بسته هاي Drop شده تعداد بسته هاي دريافت شده متوسط تاخير در هر Link و ميانگين کارايي در Link ها ميباشد. دراين بخش ميزان تاخير در اثر انتقال داده و نيز تاخير در دريافت پاسخ پرس و جو نيز نمايش داده مي‌شود.
همانطور که مشاهده ميشود با فعال شدن رخ داد مربوط به jButtonStartSim يک شي از کلاس coordinator ايجاد نموده و شبيه سازي را آغاز مينمايد.
3-کلاس pack : اين کلاس اصلي ترين کلاس مربوط به انتقال داده ميباشد و به نوعي نماينده بسته هاي منتقل شده حاوي Query و نيز حامل داده در شبکه ميباشد.
در اين كلاس داده هاي هدف، نوع بسته ( شامل داده پايگاه داده، پرس و جو، پاسخ پرس و جو ) و ... را نمايش مي‌دهد.
علاوه بر موارد فوق در اين بسته تعدادي متغير صحيح وضعيت زماني بسته را در برخي مواقع خاص مثلا داخل يک صف شدن يا ارسال شدن مشخص ميسازد. همچنين توابع مربوط به محاسبه تاخير صف بندي و تاخير دريافت بسته نيز در اين کلاس گنجانده شده اند. اين مورد را ميتوان به عنوان يک مزيت نسبت به شبيه ساز DBSim معرفي نمود. در DBSim ما مجبور بوديم که فايل trace ايجاد شده را توسط يک برنامه جانبي ديگر تفسير نموده و نتايج را استخراج نمود ولي در اينجا برنامه قدرت محاسبه متريك شبكه را نيز دارد.
در اين كلاس با استفاده از TimeStamp هاي موجود در كلاس، ميزان تاخير يك بسته را در هر مرحله از پيمايش محاسبه نمائيم.
3-کلاس MyNode و كلاسهاي بكار رفته در آن : اين كلاس براي ايفاي نقش يك گره در شبكه ايجاد شده است . در اين كلاس تعداد بسته هاي دريافتي در هر گره محاسبه شده ونيز تاخير هر بسته از كلاس pack دريافت شده و ميزان متوسط تاخير بدست مي آيد.
اين كلاس يك كلاس queue دارد كه نقش صف خروجي را براي هر Link ايفا ميكند. همچنين يك كلاس rtTable در اين كلاس وجود دارد كه نقش جدول مسير يابي را ايفا ميكند.
در اين کلاس ما ويژگي هاي مربوط به يک گره را در سيستم پياده سازي نموده ايم . در اين کلاس چند زير کلاس وجود و اطلاعات را ايجاد مينمايد.
3.1-کلاس Queue : در اين کلاس يک صف براي هر Link پياده سازي ميگردد. اين کلاس صرفا يک صف ساده است ولي ميتوان با توسعه کد قابليت توزيع بسته بصورت عادلانه را ايجاد نمود. اين کلاس ميتواند جهت پياده سازي سيستم هاي صف بندي بکار رود.
3.2-کلاس rtTable : در اين کلاس فرآيند مسير يابي در سيستم قرار داده شده و با استفاده از متد hint اطلاعات مربوط به وضعيت شبکه را دريافت نموده و بر اساس آن مسير يابي را انجام ميدهد.
در اين کلاس ميتوان انواع متدهاي مسيريابي را پياده سازي نموده و متريکهاي مسيريابي را در هر نوع مشخص نمود.
با توجه به اينکه وضعيت شبکه با استفاده از کلاس coordinator قابل بازيابي است ميتوان گفت که اين سيستم احتياجي به پروتکلهاي انتقال پيام براي توصيف شبکه ندارد.
در اين کلاس در هنگام ايجاد هيپگونه مسير سازي انجام نميشود زيرا مسير ها در هنگام ساخته شدن اين کلاس ( يعني هنگام نمونه سازي کلاس container) مشخص نشده اند.
3.3-کلاس PacketGenerator : در اين کلاس عمليات توليد بسته پرس و جو برا ساس مبناي فرکانسي داده شده توط کاربر انجام ميشود. در اين کلاس به ازاي يک flow بسته ها ايجاد شده و توسط گره مبدا Get ميشوند.
اين کلاس وظيفه زماندهي بسته توليد شده را نيز دارد. در الگوريتمهاي کنترل کننده بار پايگاه داده توزيعي اين کلاس جهت تست در صورت refuse شدن درخواست توليد بسته قطع شده و تا زمان بيدار شدن مجدد متوقف ميگردد.
4-کلاس MyLink: در اين کلاس وضعيت يک Link در شبکه مشخص شده و فرآيند انتقال بسته با توجه به پهناي باند و تاخير Link انجام ميپذيرد. در اين کلاس فرآيند محاسبه کارايي يک Link انجام شده و تعداد پالسهايي که Link بصورت خالي ميباشد را محاسبه مينمايد. اين حالت ميتواند تسهيم مطلوب منابع شبکه را توسط الگوريتم مسير يابي مشخص ميگردد.
در اين کلاس فراخواني مربوط به دريافت بسته توسط کلاس گره انجام ميشود. اين کلاس بصورت خودکار هنگام رخداد مناسب بسته را منتقل مينمايد.
لازم به ذکر است در حالت فعلي نميتوان بصورت متناوب Link را از بسته هاي متوالي پر کرد در هر حال ميتوان گفت که در صورت تاييد صف يک Link ميتوان Link را بهتر Utillize کرد.
5-کلاس coordinator : در اين کلاس عمليات هماهنگي و مديريت زمان و اشيا انجام ميشود.
در اين کلاس چيدمان شبکه ارائه شده و يک سناريو براي ارسال بسته داده ميشود. در اين کلاس زمانبندي ارسال با يک تفاوتهايي از کاربر پرسيده ميشود.
اين کلاس جمع بندي نهايي شبيه سازي را ارائه نموده و فاکتورهاي لازم را از تمامي اشيا خود استعلام مينمايد.
6-کلاس DataAlloc : اين كلاسي است كه در آن مكانيزمهاي انتقال داده و نوع تصميم گيري فراهم شده است. شمارنده هاي ارجاع به داده ها و ... قرار دارد.
در اين کلاس دو روش مجزا براي تخصيص Fragment داده به سيستم در نظر گرفته شده است. که شرح اين دو روش در مقاله [5] آمده است. در حالتي که پارامتر AllocationType برابر N باشد تخصيص Fragment بصورت ارسال به درخواست کننده مي باشد. در غير اينصورت Fragment به گره بعدي ارسال مي گردد.
7- تکيمل سيستم : با توجه به ساختار موجود در برنامه قابليت ارتقا سيستم وجود داشته و مقرر گرديده تا با همکاري يک از دانشجويان درس پايگاه داده پيشرفته سيستم ايجاد شده تکميل گردد.
8- نحوه راه اندازي سيستم : با توجه به ساختار موجود در برنامه پس از نصب نرم افزار jBuilder بايستي فايل DDBFragment توسط اين برنامه باز شده و سپس سيستم اجرا گردد. بايستي در اجراي شبيه سازي طول شبيه سازي و نيز طول هر Fragment داده براي سيستم از طريق واسط کاربر مشخص شود.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-05-2017, 08:40 AM
ارسال: #5
قوانین نرمال سازی پایگاه داده
بانک اطلاعاتی مجموعه ای مجتمع و گرد آوری شده از فایل های اطلاعاتی مکانیزه است که در راستای یک هدف مشترک و مشخص با یکدیگر مرتبط می باشد.
بانک اطلاعاتی مجموعه ای مرتبط از اطلاعات قابل کنترل به منظور به کارگیری در یک یا چند کاربرد به صورت انتخابی و اختیاری ،این اطلاعات را طوری جمع آوری شده و تشکیل مجموعه می دهد که مستقل از برنامه هایی که آنها را مورد استفاده قرار خواهد داده باشند روش افزایش اطلاعات به بانک اطلاعاتی و فراخوانی اطلاعات موجود طبق یک روش تعریف شده صورت می گیرد.
سیستم های مدیریت بانک اطلاعاتی به مجموعه نرم افزارهایی گفته می شود که به کاربران اجازه می دهد تا اطلاعات خود را در ب انک های اطلاعاتی ذخیره تغییر یا بازیابی نمایند که وظایف زیر را بر عهده دارد.
1-ذخیره ساختن 2-فراهم نمودن مکانی جهت ذخیره نمودن 3-امکاناتی جهت تعریف واحد کار 4-کنترل نمودن دسترسی های همزمان به بانک اطلاعاتی 5-صحت اطلاعات موجود در بانک اطلاعاتی باید تضمین گردد6-بازیابی اطلاعات 7-استقلال اطلاعات 8-امنیت 9-برنامه ریزی کمکی
پنج نوع سیستم مدیریت بانک اطلاعهاتی 1-ترتیبی 2-شبکه ای3-مرتبطی
4-متن آزاد 5-موضوعی .

بانک اطلاعاتی رابطه ای:
یک سیستم اطلاعاتی است که اطلاعات را در قالب سطرهایی از جدول نگه می دارد که هر جدول خود شامل یک یا چند ستون است .که دارای مشخصه های زیر است.
استقلال داده های منطقی:
این مشخصه بدین معنی است که تغییر اعمال شده یک خصلت تأثیری بر سایر خصلتهای همان رابطه نداشته باشد.
جامعیت ارجاعی و داده ای:
بر خلاف سایر سیستم های بانک اطلاعاتی رابطه ای نرم افزار کاربردی را از تحمیل محدودیت هایی که منجر به تأمین جامعیت بانک می شوند معاف می کنند.
پرس و جوهای بداهه:
این مشخصه به کاربران این امکان را می دهد که بدون درگیر شدن با جزئیات امر داده های مورد نظر خود از بانک اطلاعاتی بازیابی کند.
زبان پرس وجوی ساخت یافته : SQL
یک زبان غیر روسیه ای است بر خلاف زبان هایی چون C یا cobol که نحوة دسترسی به داده ها و دستکاری آنها به طور صریح مشخص شود زبان SQL خود این کار را انجام
می دهد .
ابزار مفیدی برای سازماندهی مدیریت و بازاریابی اطلاعات از بانکهای اطلاعاتی است .مزایای دستیابی به اطلاعات در آن به صورت زیر است :
1-یک زبان غیر و الی است بنابرین استفاده از آن بسیار آسان است . 2 -استاندارد می باشد .3- زبان مشترک تولید کنندگان برنامه و استفاده کنندگان نهایی می باشد .
4- زبان مدیریت بانک نیز می باشد بنابراین اداره کنندگان سیستم مدیریت بانک اطلاعاتی از این زبان استفاده می کنند .5- امکانات SQL می تواند به صورت محاوره ای ونیز در داخل یکی از زبان های برنامه نویسی مانند کوبل ، فرترن یا C استفاده شود .
نرم افزارoracle:
از جمله ابزارهایی است که به منظور استفاده هر چه بیشتر امکانات کامپیوتری این مراکز مورد توجه تحلیل گران سیستم و برنامه نویسان کاربردی قرار گرفته است. Oracle برنامه ای است که توسط شرکت oracle که سازنده نرم افزارهای پایگاه
داده های رابطه ای کامپیوتر های بزرگ و کوچک می باشد تهیه گردیده است .
معرفی شرکتoracle
بزرگترین شرکت تولید کننده سیستم های مدیریت بانکهای اطلاعاتی رابطه ای می باشد مشخصات آنعبارتند از 1-قابلیت حمل 2-قابلیت اتصال بالا 3-کارآیی
4-امنیت 5-سازگاری
مروری بر محصولاتoracle:
شرکت oracleکه پیشرو صنعت نرم افزار بانک اطلاعاتی رابطه ای محسوب می شود محصول سیستم مدیریت بانک های اطلاعاتی رابطه ای خود با عنوان RDBMS Oracleا برای پیاده سازی بر روی بیش از 90 محیط زیر بنایی پشتیبانی می کند.
سیستم مذکور تحت سه نوع پیکر بندی زیر قابل دسترس است:
oracle aniversal serrer)
این محصول قادر است که کاربران بسیاری را بر روی محیط های زیر بنایی با مقیاس های بسیار وسیع همچون sun,hp,pyrmid.sequent پشتیبانی کرد.
بسیاری از امکانات تنها تحت این محصول ارائه می شود این محصول را می توان تحت سیستم های عامل و پیکر بندی های متنوع سخت افزاری مورد استفاده قرار داد.
oracle webse که سیستمی مجتمع برای تولید کد HTML ز محتویات یک بانک اطلاعاتی است تحت این محصول قابل استفاده است.
aniversal server Oracle شامل اجزای اختیاری زیر است.
الف)Distributed option
این جزء امکان می دهد بانک های اطلاعاتی وجود بر روی کامپیوترهای مختلف به عنوان یک واحد منطقی در نظر گرفته شود.
تحت این شرایط هر تراکنشی قادر است از طریق مکانیزی با عنوان two-phose commit چندین بانک اطلاعاتی مختلف را تحت تأثیر قرار دهد.
به کمک آن می توان بانکهای اطلاعاتی راه دور در را که ممکن است بر روی سیستم های عامل چون NT -anix یا سایر سیستم ها سوار شده باشند دست کاری نمود.
ب) The Replication option مکان تکثیر و انتشار تعمیرات اعمال شده به یک بانک اطلاعاتی را به سایر بانک های اطلاعاتی oracle در اختیار می گذارند.
ج) The context option توانایی کاربران را در جستجوی واژه های کلیدی یا موضوعات بخصوصی از بانک اطلاعاتی را افزایش می دهد.
د) ‏The spatial data option امکان ایجاد اینکه حس های ویژه ای را که پرس و جوهای کارآمدی را پشتیبانی می کنند در اختیار طراح بانک اطلاعاتی قرار می دهد.
oracle workqroup server
این محصول برای گروههای کاری طراحی شده است و تحت سیستم های عاملی چونnet ware-window nt -scounix-unix ware
قابل استفاده است. این محصول برای پشتیبانی از گروههای کوچکی از کاربران راه حلی بسیار مقرون به صرفه است.
personal oracle
نگارش تحت window بانک اطلاعاتی oracle است که عملکردی مشابه به دو محصول قبلی است.با وجود این که این محصول را نمی توان به عنوان یک سد در بانک اطلاعاتی جهت پشتیبانی از کاربران مورد بهره برداری قرار داد اما می توان از آن جهت شبیه سازی و کسب تجربه کار با ب انک های اطلاعاتی استفاده نمود.
سایر محصولات oracle :
شرکتoracleعلاوه بر ارائه سیستم های مدیریت بانک های اطلاعاتی رابطه ای خود به نام oracle RDBMS خانواده دیگری از محصولات نرم افزاری را نیز به شرح زیر ارائه می دهد.
Deverloper/2000
مجموعه ای از ابزار است که برای پشتیبانی از توسعه برنامه های کاربردی کلانیت سرور به کار گرفته می شوند کلیه این ابزارها در سه محیط گرافیکی motif-mac-window پشتیبانی می شوند.
شامل ابزار زیر است:
oracle forms
ابزاری است که جهت ایجاد برنامه های کاربردی متنی بر فرم است که می توان آنها را به همراه بانک اطلاعاتی oracle مورد استفاده قرار داد.
oracle Reports
ابزاری جهت ایجاد گزارش های پیچیده است .گزارش های ایجاد شده را می توان قبل از چاپ مورد رؤیت قرار داد.
oracle raphics
ابزاری است که می توان به منظور ارائه نمودارهای گرافیکی از پرس و جوهاهی بانک اطلاعاتی آنها را مورد استفاده قرار داد.
procedure bulider oracle
ابزاری است جهت توسعه ،نگه داری و تست نرم افزارهای نوشته شده به زبان pl/sql که می توان آن ها را در درون یک بانک اطلاعاتی oracle ذخیره و اجرا نمود.

power objects
محیط دیگری برای توسعه برنامه های کاربردی است که توسط محیط ها زیر بنایی windows-mac پشتیبانی می گردد.
اجزای مختلف یک برنامه کاربردی ایجاد شده توسط oracle power :
1. database session :بانک اطلاعاتی به مفهوم اتصال به یک بانک اطلاعاتی از طریق نام کاربر ،کلمه عبور،و نام بانک اطلاعاتی مورد نظر است.
2. appl ication:برنامه کاربردی مجموعه ای است از فرم ها ،گزارش ها ،کلاس ها و موضوعات که از طریق یک جلسه با بانک اطلاعاتی بخصوص ارتباط برقرار می کند.
3. library :مجموعه ای است از کلاسها و فایل های bitmap که می توان آن را بین چندین برنامه کاربردی به اشتراک گذاشت.
اتصال بانک اطلاعاتی:
منظور از اتصال با بانک اطلاعاتی oracle ارائه نام کاربردی و کلمه عبور قابل قبول و معتبر بانک مذکور است یکی از مشخصه های مهم هر اتصال بانک اطلاعاتی محلی یا راه دو بودن آن است. اصطلاح اتصال محلی بودن بدین معنی است که برنامه مورد استفاده کاربر جهت برقراری اتصال با بانک اطلاعاتی oracle و خود بانک اطلاعاتی هر دو بر روی یک ماشین واقعند. اتصال راه دور به این حقیقت اشاره دارد که برنامه مورد استفاده کاربر جهت برقراری اتصال با بانک اطلاعاتی oracle و خود بانک اطلاعاتی oracle بر روی ماشین های متفاوتی مستقر می باشد.
مفهوم پردازش به شیوه کلانیت سرور:
ترکیبی است از یک یا چند کامپیوتر که نقش کلانیت را عهده دار بوده و برنامه های کاربردی را جهت ارتباط با یک کامپیوتر راه دور که نقش سرور را عهده دار بوده است و به درخواست های کلانیت ها سرویس می دهد،اجرا می کند.
معماری کلانیت سرور نسبت به روش های پردازش پیشین دارای مزایای زیر است:
1.قادر به پشتیبانی طیف گسترده ا ی از انواع ماشین های کلانیت است.
2.وظایف و مسئولیت های پردازش داده ما بین کلانیت و سرور تقسیم می شوند.
3.مستقل از پروتکل شبکه و سیستم عاملهای مورد استفاده کلانیت و سرور است.
بانک های اطلاعاتی pc :
در سال 1981 شرکت ashton-tateبانک اطلاعاتی تک کاربره ای را به نامdBASE11 برای pc ارائه نمود.
در آن زمان توسعه یک برنامه کاربردی جدید به معنی کار سخت و طاقت فرسای دپارتمان dp بود ضمن اینکه توسعه یک برنامه کاربردی جدید مبتنی بر مین مریم فرآیندی پر هزینه و پیچیده به شمار می رفت بخشی از هزینه های توسعه مربوط به فرآیند دائمی ذخیره و نگه داری داده ها بود.
بانک های اطلاعاتی lan :
با همه گیر شدن pc ها سازمانهایی که چندین pc را در اختیار داشته نیازمند شی کارآمد و کم هزینه بودند تا بتوانند این ماشین ها را به یکدیگر متصل نموده و منابع کامپیوتری گران قیمتی چون حافظه های انبوه،مودمها و چاپگرها را به صورت اشتراکی در دسترس آنها قرار دهند.
نقاط منفی این برنامه:
1.کیفیت پایین نرم افزارهای ایجاد شده.
2.کمرنگ شدن اقتدار دپارتمان dp
3.گونه های مختلفی از اتوماسیون.
ابزارهای توسعه برنامه های کاربردی:
اوایل بیشتر برنامه های کاربردی کلانیت سرور زبان های برنامه نویسی نسل سومی چونc-fortran یا cobol بودند اما امروزه زبان های نسل چهارم را به عنوان محیط های توسعه برنامه کاربردی می شناسیم.
گامهای توسعه:
گام های توسعه به قرار زیر است:
1.ایجاد و جمع آوری اطلاعات مورد نیاز
2.طراحی برنامه کاربردی.
3.ایجاد برنامه کاربردی.
4.آزمایش برنامه کاربردی
5.نصب و پیکر بندی برنامه کاربردی.
6.نگه داری و پشتیبانی از برنامه کاربردی .
تعیین و جمع آوری اطلاعات مورد نیاز یک برنامه کاربردی:
نقطه آغاز توسعه هر برنامه کاربردی تعیین ملزومات آن است.
این یک فرآیند ضروری و در عین حال سرور است و برای هر کس که دید مناسبی از برنامه های کاربردی داشته باشد ضروری است.
فرآیندها:ارتباط با افراد-خط مشی ها-تغییرات-ملزومات مربوط به عملکرد-ملزومات مربوط به داده ها -ملزومات مربوط به کاربران.
طراحی و ساخت برنامه های کاربردی:
مراحل آن به شرح زیر می باشند:
1.توسعه یک مدل داده ای منطقی.
2.انتخاب ابزارهای توسعه.
3.پیاده سازی قابلیت های مورد نیاز کاربران.
4.بهره گیری از اجزائی با قابلیت استفاده مجدد.
5.استفاده از ابزاری جهت پیکر بندی.
6.تعیین نقش کاربران و مجوز هر یک از آنها .
7.استقلال از محیط زیر بنایی در حد امکان.
8.ارائه یک رابط کاربر ساده و یکسان.
9.درج قابلیت های عیب یابی و ردیابی عملیات در برنامه های کاربردی.

تست برنامه های کاربردی:
برنامه های کاربردی باید در هر مرحله از فرآیند توسعه تحت آزمایش قرار می گیرد.
این آزمایش باید موارد زیر را تحت پوشش قرار دهد:
1.تشخیص صحیح،منطقی و کامل بودن مدل داده ای.
2.تعیین سلیقه های کاربران در مورد رابط کاربر،ساختار منوها و روند کنترل.
3.بارگذاری داده های آزمایشی در بانک اطلاعاتی.
4.بررسی صحت عملکرد واحدهای مختلف برنامه pl/sql
5.استفاده از داده های واقعی به منظور بررسی پذیرش ورودی ها و انتخاب های نامعتبر و تولید نتایج صحیح.
6.تست های کارآیی به منظور بررسی و شبیه سازی بار حاصل از کار با سیستم در وضعیت های گوناگون.
نصب و پیاده سازی برنامه کاربردی:
شامل مراحل زیر است:
1.نصب برنامه کاربردی
2.آموزش کاربران
3.ارائه راهنمای onli ne استفاده از برنامه کاربردی
طرح منطقی بانک اطلاعاتی:
اساس هر برنامه کاربردی بانک اطلاعاتی ،مدل داده های منطقی آن است مانند هر مدل دیگری مدل داده ای منطقی نیز مدل ایده آلی از یک سیستم واقعی است. هر مدلی تنها زمانی مفید است که صحت داشته باشد مدل داده ای منطقی یک مدل پویا است بدین معنی که بر مبنای تغییرات آتی می توان آن را دستخوش تغییر و اصلاح نمود یکی از متداول ترین روش های توسعه یک مدل داده ای منطقی مدلسازی بر مبنای موجودیتها رابطه ها یا همان مدل است.
تئوری نرمال سازی:
یکی از مباحث ویژه تئوری بانک های اطلاعاتی رابطه ای محسوب می شود. مطالعه روابط جدول ها و خصلتها و ارتباط بین خصلتهای هر رابطه با دیگری است اهداف
نرمال سازی:1 .کمینه کردن تعداد داده های تکراری 2.از بین بردن احتمال خطا هنگام به روز سازی داده ها.3 .کاهش داده های نامتناسب4.طرح روش هایی به منظور تسهیل نگه داری و پشتیبانی از داده ها.
قوانین نرمال سازی:
1.کلیه ستون ها شامل جز اطلاعاتی ساده ای باشند.
2.کلیه ستون ها به کلید اصلی مربوط هستند.
3.همه ستون ها به کلیه اجزای سازنده کلید اصلی مربوطند نه به بخشی از آن


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
11-05-2017, 08:53 AM
ارسال: #6
RE: مفاهیم پایگاه داده SQL Server
مديريت پايگاه داده‌ها در SQL Server - بسته‌هايDTS
DTS چيست؟
DTS يك ابزار با واسط گرافيكي كاربر جهت انتقال اطلاعات موردنياز از يك محل به محل ديگر است. با استفاده از اين ابزار مي‌توان يك سري از اطلاعات موجود در سيستم را با استفاده از روش‌هاي عادي كاري پايگاه داده مانند دستور SELECT انتخاب كرده و به يك يا چند مقصد مختلف فرستاد. ويژگي ديگر اين نوع انتقال اطلاعات اين است كه مي‌توان آن را با استفاده از روش‌هاي مخصوص، زمانبندي (schedule) كرده تا به صورت اتوماتيك انجام شود. ويژگي سوم آن اين است كه علاوه برامكان استفاده از زبان SQL براي استخراج اطلاعات يا پردازش قبل از انتقال آن، مي‌توان با استفاده از امكانات ديگري پردازش و انتقال اطلاعات را انجام داد. البته واژه DTS در كل به يك سري ابزارها و سرويس‌هاي مختلف اطلاق مي‌شود كه مهمترين ابزار يا قسمت آن همان
بسته‌هاي ( DTS (PACKAGE DTS بوده كه كار مهم انتقال و پردازش زمانبندي شده اطلاعات را انجام مي‌دهد.
بسته‌هاي DTS
اين بسته‌ها كه مهمترين قسمت ابزارهاي DTS مي‌باشند، با استفاده امكاناتي كه در آن‌ها تعبيه شده است، قادرند وظيفه انتقال و پردازش اطلاعات را در قالب يك روتين كه مي‌تواند شامل مسيرهاي متوالي يا موازي مي‌باشد انجام دهند. اين روتين در قالب يك فايل ساختاريافته با فرمت‌هايي مثل فرمت برنامه‌ها و ماژول‌هاي ويژوال بيسيك يا فرمت‌هاي ديگري نظير فايل‌هاي Meta ذخيره مي‌شود و با استفاده از روش‌هايي قابل زمانبندي، ويرايش، تغيير و همچنين رمزگذاري مي‌باشند. يك بسته DTS در واقع شامل چند آيتم مرتبط به يكديگر بوده كه هر كدام يك وظيفه مشخص را انجام داده و نتيجه را به ديگري انتقال مي‌دهند.
اين آيتم‌ها به‌عنوان Task نامگذاري شده و در واقع محتويات يك بسته DTS را تشكيل مي‌دهند. هر كدام از Taskهاي موجود در يك بسته DTS به صورت جداگانه توسط كاربر پيكربندي شده و وظيفه موردنظر مثل پردازش، كپي‌كردن و يا انتقال اطلاعات به آن انتساب داده مي‌شود.
سپس با به‌وجود آوردن ارتباط لازم ميان Taskهاي موجود، امكان عملي كردن فرآيند موردنظر ميسر مي‌شود. يك Task مي‌تواند يكي از انواع زير باشد:
1- Importing / Exporting
اين نوع Task قادر است اطلاعات را از جايي مثل يك جدول بانك اطلاعاتي SQL Server يا هر نوع ديگر مثل اكسس و يا يك فايل ساده Text بخواند و آن را در يك جدول بانك اطلاعاتي SQL Server وارد (Import) كند. همچنين اين Task مي‌تواند عكس اين عمل را انجام دهد. يعني اطلاعات يك جدول بانك اطلاعاتي يا قسمتي از آن اطلاعات را به فرمت اكسس، اكسل يا فايل متني (Text) درآورد (Export) و آن را در مقصد موردنظر قرار دهد.

2- Transform
با استفاده از اين نوع Task مي‌توان با نوشتن يك دستورالعملSELECT نتيجه حاصل از عمل پرس‌وجو برروي يك يا چند جدول بانك اطلاعاتي مبدا را به يك جدول موجود در بانك اطلاعاتي مقصد انتقال داد. در اين روش بانك اطلاعاتي مبدا و مقصد مي‌توانند جدا از هم و يا يكسان باشند.
3- Copy
اين نوع Task مي‌تواند هر موجوديتي در يك بانك اطلاعاتي مثل ديدها (view)، ايندكس‌ها، لاگ‌ها، روتين و توابع، تريگرها و هر چيزي را به يك بانك اطلاعاتي ديگر منتقل كند.
4- Send/Receive Message
با اين نوعTask مي‌توان بين بسته‌هاي مختلف DTS موجود در سيستم ارتباط برقرار كرده و بين آن‌ها پيغام رد و بدل كرد. همچنين با استفاده از آن مي‌توان يك بسته را در داخل يك بسته ديگر فراخواني يا اجرا كرد. به‌علاوه اين‌كه اين نوع Task امكان ارسال Email را هم دارد.
5- Execute
با استفاده از اين نوع Task مي‌توان يك سري دستورالعمل SQL يا حتي اسكريپت‌هاي ActiveX و يا فايل‌هاي Exe را اجرا كرد.
Taskهاي از پيش تعريف شده در SQL Server عبارتند از:

1-FTP : جهت دريافت يك يا چند فايل از يك سرور FTP به داخل بسته DTS
2- ActiveX Script: براي استفاده از قابليت‌هاي زبان‌هاي اسكريپتي مثل ويژوال بيسيك يا جاوا در يك پردازش ‌خاص.
3- Transform Data: جهت انتقال اطلاعات بين دو منبع اطلاعاتي.
4- Execute Process: جهت اجراي يك فايل Exe
5- Execute SQL: جهت اجراي يك سري دستورات SQL
6- Data Driven Query: براي ايجاد يك منبع انتقال اطلاعات با استفاده از دستورSELECT
7- Copy Object: اينTask مي‌تواند كليه موجوديت‌هاي يك بانك اطلاعاتي را به بانك اطلاعاتي ديگر منتقل كند.
8- Send Mail: جهت ارسال ايميل به يك مقصد مشخص
9- Bulk Insert: جهت ورود (Import) اطلاعات از يك فايل به يك جدول بانك اطلاعاتي
10- Execute Package: با استفاده از اين Task مي‌توان يك بسته DTS ديگر را در داخل بسته DTS جاري لود و اجرا كرد.
11- Message Queve II: براي استفاده از امكانات پيغام‌دهي سرويس MSMQ ويندوز 2000 يا 2003 براي مبادله پيغام بين برنامه‌ها و ايستگاه‌هاي مختلف

12- Transfer Error Massages: براي انتقال پيغام‌هاي خطاي موجود در جدول سيستمي sysmessages از يك بانك اطلاعاتي به بانك ديگر
13- Transfer DataBase: براي انتقال كل بدنه يك بانك اطلاعاتي با تمام محتوا، ساختار و اطلاعاتش از يك سرور به سرور ديگر.
ارتباط DTS
مبدا و مقصد داده‌هاي منتقل شده توسط Taskها، مي‌توانند از انواع فايل‌هاي مختلف انتخاب شوند. كليه منابع اطلاعاتي كه از OLEDB و يا ODBC پشتيباني كنند مانند اوراكل، كليه فرمت‌ها برنامه‌هاي مشهوري كه در ذخيره و پردازش اطلاعات كاربرد زيادي دارند مثل اكسل، فاكس‌پرو، پاراداكس، اكسس و امثال آن، فايل‌هاي متني و همچنين كليه منابع اطلاعاتي كه ساختاري به غير از بانك‌هاي رابطه‌اي دارند مثل Exchange Server و بسياري برنامه‌هاي ديگر، مي‌توانند از جمله اين موارد باشند و در ساختن يك بسته DTS به عنوان مبدا يا مقصد به‌كار روند.
DTS Work Flow
مراحل زماني و توالي اجراي قسمت‌هاي مختلف يك بسته DTS را جريان كاري DTS مي‌نامند. در واقع با استفاده از اين جريان‌هاي كاري مي‌توان مشخص كرد كه كدام Task بايد زودتر اجرا شود و يا اين‌كه اجراي يك Task پيش نياز اجرا شدن چه Task (هاي) ديگري است. بدين‌وسيله اجرا شدن هر Task نسبت به Task ديگري داراي اولويت كمتر، بيشتر و يا حتي برابر مي‌تواند باشد. بدين‌معني كه در برخي اوقات يك Task بايد تا اتمام موفقيت‌آميز يك Task ديگر صبر كند.

اين مورد بيشتر در جايي كاربرد دارد كه يك Task بايد برروي خروجي و يا اطلاعات حاصل از نتيجه پردازش يك Task ديگر كار كند. در برخي اوقات هم اگر عملكرد دو Task هيچ ربطي به يكديگر نداشته باشند، مي‌توان زمان اجراي آن دو را به صورت موازي (Parallel) يعني اجراي همزمان (در صورت امكان) درنظر گرفت.
در SQL Server سه نوع جريان كاري مختلف وجود دارد كه به نام‌هاي on completion ،on success ،on failure عبور از يك Task به Task ديگر را به ترتيب در صورت اتمام پردازش، پردازش موفقيت‌آميز و پردازش غيرموفق Task مبدا، انجام مي‌دهند.
به عنوان مثال: فرض كنيد در يك سيستم اطلاعاتي توزيع شده (Distributed) به‌صورت منظم و روزانه و در يك ساعت خاص بايد به يك سايت FTP متصل شده، يك فايل با نام Imp.txt را كه هر روز در سايت مذكور روزآمد update مي‌شود را دريافت كرده، و آن را در جدول customers از پايگاه داده Northwind قرار دهيم.
فرض مي‌كنيم اين فايل متني (Text) شامل ليست مشتريان جديدي است كه روزانه به سيستم فروش ما اضافه مي‌شود. بنابراين پس از قرار دادن مشتريان جديد در جدول مذكور بايد يك دستور SQL را اجرا كنيم تا براي مشتريان تازه وارد شده در جدول customers يك حساب تفضيلي در جدول Accounts ايجاد كند.
از قرار معلوم در اين مثال به يك DTS Connection جهت دسترسي به پايگاه داده Northwind، يك Task از نوع FTP ، يك Task ديگر از نوع Bulk Insert و نهايتاً يك Task از جنس Execute SQL نيازمنديم. به همين منظور بر روي زبانه Data Transformation Services در Enterprise Manager كليك كرده سپس بر روي آيتم Local Package كليك سمت راست مي‌كنيم و دستور New Package را انتخاب مي‌كنيم تا پنجره ويژه طراحي بسته‌هاي DTS باز شود. ابتدا يك Connection از جنس OLEDB را بر روي صفحه قرار داده و آن را به پايگاه داده Northwind متصل مي‌كنيم. (شكل 1)‌

سپس از داخل ليست وظايف (Tasks)، يك شي از جنس FTP را برروي صفحه قرار داده و آدرس سايت موردنظر و مكان قرارگيري فايل دانلود شده را در محل Directory Path مشخص مي‌كنيم، سپس به زبانه Files رفته و فايل يا فايل‌هايي را كه قرار است دانلود شوند مشخص مي‌نماييم كه در اين مثال يك فايل متني با نام New Customer.txtرا كه حاوي اطلاعات مشتريان جديد است انتخاب مي‌كنيم. (شكل2)‌

در مرحله بعد يك شي از جنس BULK Insert را برروي صفحه طراحي قرار داده و قسمت‌هاي Connection ،Table و Data file آن را به ترتيب با اتصال پايگاه ساخته شده، جدول مشتريان و مقصد فايل دانلود شدني توسط FTP را پر مي‌كنيم. (شكل 3)

در آخرين مرحله ايجاد اشياء، اكنون نوبت به ايجاد يك شي Execute SQL جهت اجراي تابع از پيش ساخته شده است كه براي كليه مشتريان جديد جدول customers يك حساب در جدول Accounts باز مي‌كند. اين شي را بر روي صفحه قرار داده و دستور SQL موردنظر را در محل SQL statement وارد مي‌كنيم. (شكل 4)

پس از ايجاد تمام اشياء موردنياز، اكنون نوبت به ايجاد جريان‌هاي كاري لازم (WorkFlows) بين آن‌ها مي‌رسد. آنچه به نظر مي‌رسد اين است كه ابتدا يك جريان كاري بين دو موجوديت FTP و BULK Insert ايجاد كنيم. از آنجا كه اين جريان كاري بايد فقط در صورت موفقيت‌آميز بودن عمليات دريافت فايل توسط شي FTP منتقل شود، بنابراين براي ايجاد جريان كاري مذكور، با استفاده از حركت ماوس هر دو شي مذكور را انتخاب كرده و سپس از منوي WorkFlow دستور on success را انتخاب مي‌كنيم. همين عمل را براي دو شي Bulk Insert و Execute SQL هم انجام مي‌دهيم. (شكل 5)

اكنون بسته DTS آماده اجرا است. اين بسته مي‌تواند هم به صورت دستي و از همين محل طراحي تست يا اجرا شود و هم مي‌تواند براي اجرا در مقاطع زماني خاص (مثلاً روزي يك بار) در ساعت مخصوص زمانبندي (schedule) شود تا به صورت خودكار و در زمان موردنياز اجرا گردد. بدين‌منظور، پس از ساختن و ذخيره كردن بسته DTS مذكور، از محيط طراحي DTS خارج شده و برروي نام بسته موردنظر كليك سمت راست مي‌كنيم و دستور Schedule Package را انتخاب مي‌نماييم. در اينجا مي‌توانيم زمان و توالي اجراي اتوماتيك بسته DTS ساخته شده را تعريف كنيم.
دانلود فایل این مقاله به صورت فایل word در آدرس زیر:
http://forum.a00b.com/upload/Uploads/636...ackets.doc


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان