ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
بررسی پایگاه داده SQL Server و دستورات آن
03-30-2017, 01:35 AM
ارسال: #11
اصول SQL و پروژه
SQL Server داراي چهار پايگاه داده سيستمي tempdb, model, master و msdb و يك يا چند پايگاه داده مربوط به كاربران است. برخي از سازمان ها فقط داراي يك پايگاه داده كاربر هستند كه شامل تمام داده هاي آنها است. برخي از سازمان ها نيز داراي پايگاه هاي داده مختلفي براي هر گروه در سازمان هستند. به عنوان مثال، يك سازمان مي تواند يك پايگاه داده براي فروش، يك پايگاه داده براي حقوق و يك پايگاه داده براي مديريت اسناد داشته باشد.
لازم نيست كه چند نسخه از SQL Server را اجرا كنيد تا كاربران بتوانند به پايگاه هاي داده يك سرويس دهنده دسترسي يابند. SQL Server قادر به جوابگويي به هزاران كاربر در پايگاه هاي داده مختلف به طور همزمان بر روي يك سرويس دهنده مي باشد. SQL Server تمام پايگاه هاي داده موجود در سرويس دهنده را براي تمام كاربراني كه به سرويس دهنده متصل هستند، با توجه به جوازهايشان قابل دسترسي مي سازد.
هنگام اتصال به SQL Server ، اتصال شما با يك پايگاه داده مشخص روي سرويس دهنده در ارتباط مي باشد. اين پايگاه داده، پايگاه دادة جاري ناميده مي شود. شما معمولاً به پايگاه داده اي كه به عنوان پيش فرض توسط مدير سيستم تعريف شده است متصل هستيد مگر اين كه با استفاده از گزينه هاي اتصال API هاي پايگاه داده، پايگاه داده ديگري را مشخص كنيد.

[تصویر:  6362647582583476970SQL3.JPG]

اجزاء منطقي پايگاه داده
داده هاي درون يك پايگاه داده SQL Server در چند شيء مختلف ذخيره شده اند. اين شيء ها پس از اتصال به پايگاه داده، براي كاربر قابل رؤيت هستند.
در SQL Server اجزاء زير به صورت شيء تعريف شده اند :
محدوديت ها جدول ها
پيش فرض ها Trigger ها
شاخص ها نوع هاي داده اي تعريف شده توسط كاربر
كليدها ديدها
رويه هاي ذخيره شده
نوع هاي داده اي و ساختار جدول
تمام داده هاي پايگاه داده SQL Server در شيء هايي به نام جدول قرار دارند. هر جدول دلالت بر شيء اي دارد كه براي كاربر با معنا مي باشد. به عنوان مثال، در يك پايگاه داده مدرسه، جدول ها مي توانند جدول كلاس، جدول معلم و جدول دانش آموز باشد.
جدول هاي SQL Server داراي دو جزء اساسي هستند :
• ستون :‌ نشان دهنده بعضي از صفت هاي شيء اي است كه توسط جدول مدل سازي شده است.
• سطر : نشان دهنده نمونه اي از يك شيء است كه توسط جدول مدل سازي شده است.

ميدان، مجموعه اي از تمام مقادير مجاز در يك ستون است. به عنوان مثال، ميدان رنگ قطعه هم شامل نوع داده اي مانند char(6) و هم شامل رشته هاي كاراكتري مجاز در ستون مانند Green, Blue, Red و غيره است.
جدول ها، كنترل هاي متعددي دارند كه صحت داده ها را تضمين مي كنند. به عنوان مثال، مي توانيد پايگاه داده اي به نام MyCoDb براي مديريت داده هاي شركت خود ايجاد كنيد. مي توانيد جدولي به نام Employees براي ذخيره اطلاعات كارمندان ايجاد كنيد. جدول مي تواند ستون هايي به نام ؟؟؟ داشته باشد. مي توانيد رويه اي به نام ؟؟ ايجاد كنيد تا مقادير داده اي مربوط به يك كارمند جديد را دريافت كرده و عمليات مربوط به درج سطر در جدول Employees را انجام دهد.
ستون ها مي توانند مقادير NULL را قبول كرده و يا رد نمايند. NULL يك مقدار ويژه در پايگاه داده است كه مفهوم" مقدار ناشناخته" را در بر دارد. NULL با مقادير جاي خالي يا صفر تفاوت دارد. جاي خالي در واقع يك كاراكتر مجاز و صفر يك عدد مجاز است در حالي كه NULL صرفاً نشان دهنده اين باور است كه ما نمي دانيم اين مقدار چيست. NULL با رشته به طول صفر نيز تفاوت دارد.
SQL Server داده هاي مربوط به تعريف مشخصات سرويس دهنده و تمام جدول هاي خود را در مجموعه ويژه اي از جدول ها به نام جدول هاي سيستمي ذخيره مي كند. كاربران نبايد مستقيماً جدول هاي سيستمي را بهنگام سازي كرده و يا روي آنها پرس و جوهايي اجرا كنند. فقط SQL Server بايد در پاسخ به دستورات مديريتي كه توسط كاربران صادر مي شود به جدول هاي سيستمي ارجاع كند.
SQL Server داراي جدول موقت مي باشد. نام اين گونه جدول ها با علامت شروع مي شود. اگر يك جدول موقت هنگام قطع اتصال كاربر حذف نشود، به طور خودكار توسط SQL Server حذف مي شود. جدول هاي موقت در پايگاه داده جاري ذخيره نمي شوند بلكه در جدول سيستمي tempdb ذخيره مي شوند. دو نوع جدول موقت وجود دارد :
• جدول هاي موقت محلي كه فقط داراي يك علامت # در ابتداي نامشان هستند. اين جدول ها فقط براي اتصالي كه آنها را ايجاد كرده است قابل رؤيت هستند.
• جدول هاي موقت عمومي كه داراي دو علامت # در ابتداي نامشان هستند. اين جدول ها براي تمام اتصال ها قابل رؤيت هستند. اگر اين جدول ها توسط اتصالي كه آنها را ايجاد كرده است قبل از قطع اتصال صريحاً حذف نشوند، به طور خودكار پس از اين كه تمام اتصال هاي ديگر، ارجاع خود به اين جدول ها را پايان دادند، بلافاصله حذف مي شوند. اگر اتصالي كه يك جدول موقت را ايجاد كرده است قطع گردد، از آن پس ديگر هيچ اتصال جديدي نمي تواند به جدول موقت ارجاع كند.

ديدهاي SQL
ديد را مي توان به عنوان يك جدول مجازي يا پرس و جوي ذخيره شده درنظر گرفت. داده هايي كه از طريق يك ديد قابل دستيابي هستند به عنوان يك شيء مجزا در پايگاه داده ذخيره نمي شوند. چيزي كه در پايگاه داده ذخيره مي شود يك دستور SELECT است. مجمموعه نتيجه دستور SELECT ، جدول مجازي حاصل از ديد را تشكيل مي دهد. از ديد براي انجام كارهاي زير استفاده مي شود :
• محدود كردن كاربر به سطرهاي ويژه اي از يك جدول.
• محدود كردن كاربر به ستون هاي ويژه اي از يك جدول.
• الحاق ستون هايي از جدول هاي مختلف به طوري كه همانند يك جدول باشند.
• بدست آوردن اطلاعات جمعي به جاي پرداختن به جزئيات.
جدول هايي كه دستور SELECT موجود در تعريف ديد به آنها ارجاع مي كند، جدول مبنا ناميده مي شوند.
پس از تعريف ديد، مي توانيد همانند يك جدول به آن ارجاع كنيد. در تعريف ديد مي توان به يك ديد ديگر ارجاع كرد.
ديدهاي SQL Server قابل بهنگام سازي هستند در صورتي كه عمل بهنگام سازي فقط بر يكي از جدول هاي مبنايي كه توسط ديد ارجاع مي شود، تاثير داشته باشد.

رويه هاي ذخيره شده

رويه ذخيره شده، مجموعه اي از دستورات Transact-SQL است كه در يك طرح اجرايي كامپايل شده اند.
رويه هاي ذخيره شده به چهار طريق داده ها را باز مي گردانند :
1- پارامترهاي خروجي كه مي توانند داده يا يك متغير كرزر را باز گردانند.
2- كدهاي بازگشتي كه همواره مقادير صحيح هستند.
3- براي هر دستور SELECT درون رويه ذخيره يا رويه هاي ذخيره شده ديگري كه در اين رويه قرار دارند، يك مجموعه نتيجه بازي گرداند.
4- كرزر عمومي كه نمي تواند خارج از رويه ذخيره شده ارجاع شود.
نمونه اي از يك رويه ذخيره شده را در زير مشاهده مي كنيد :
برنامه هاي كاربردي لازم نيست كه تمام دستورات SQL درون رويه را ارسال كنند . در عوض فقط يك دستور EXECUTE يا CALL كه شامل نام رويه و مقادير پارامتر ها است ارسال مي شود.
رويه هاي ذخيره شده كاربران را از جزئيات جدول هاي درون پايگاه داده بي نياز مي كنند. اگر مجموعه اي از رويه هاي ذخيره شده تمام كارهاي مورد نياز كاربران را پشتيباني كند كاربران هرگز مجبور نخواهند بود كه مستقيماً به جدول ها دسترسي يابند. يك نمونه از اين نحوه استفاده از رويه هاي ذخيره شده ، رويه هاي ذخيره شده سيستمي SQL Server است كه كاربران را از ارتباط مستقيم با جدول هاي سيستمي بي نياز مي كند. نام اين رويه هاي ذخيره شده با SP شروع مي شود. اين رويه هاي ذخيره شده تمام وظايف مديريتي لازم براي اجراي SQL Server را پشتيباني مي كند. در واقع، شما مي توانيد با استفاده از دستورات مديريتي Transact-SQL يا رويه هاي ذخيره شده سيستمي، SQL Server را مديريت نماييد و هرگز نياز نخواهيد داشت كه مستقيماً جدول هاي سيستمي را بهنگام سازي كنيد.
اجراي يك رويه ذخيره شده بهتر از اجراي يك دستور SQL مي باشد زيرا لازم نيست SQL Server به طور كامل يك طرح اجرا را كامپايل نمايد و فقط بايد بهينه سازي طرح ذخيره شده رويه را تكميل نمايد.
SQL Server داراي رويه هاي ذخيره شده موقت نيز مي باشد كه هنگام قطع اتصال حذف مي شوند. رويه هاي ذخيره شده موقت در tempdb ذخيره مي شوند. از اين رويه ها بيشتر در مواقعي استفاده مي شود كه برنامه هاي كاربردي، دستورات SQL-Transact پويا توليد مي كنند و چندين بار اجرا مي شوند. به جاي اين كه دستورات SQL Server چند بار كامپايل شوند، مي توان يك رويه ذخيره شده ايجاد كرد كه در اولين اجراي خود كامپايل شده و سپس طرح از پيش كامپايل شده چندين بار اجرا شود. استفاده بيش از حد از رويه هاي ذخيره شده موقت، منجر به ايجاد تداخل در جدول هاي سيستمي tempdb مي شود.
در زير، مثال ساده اي بيان شده است كه سه روش بازگرداندن داده ها توسط رويه هاي ذخيره شده را تشريح مي كند :
1- ابتدا يك دستور SELECT اجرا مي شود كه مجموعه نتيجه اي را از فروشگاه هاي جدول Sales باز مي گرداند.
2- سپس يك دستور SELECT اجرا مي شود كه يك پارامتر خروجي را مقدار دهي مي كند.
3- در ا نتها، يك دستور RETURN به همراه يك دستور SELECT وجود دارد كه يك عدد صحيح را باز مي گرداند :‌

محدوديت ها
محدوديت ها روشي را ارائه مي دهند كه SQL Server جامعيت يك پايگاه داده را اعمال كند. محدوديت ها قواعد مربوط به مقادير مجاز در ستون ها را تعريف مي كنند و مكانيزم استانداردي براي ا عمال جامعيت به شمار مي آيند. پنج نوع محدوديت وجود دارد:
1- NOTNULL مقرر مي كند كه ستون، مقادير NULL را قبول نكند.
2- محدوديت CHECK ، جامعيت ميدان را با محدود كردن مقاديري كه مي تواند در يك ستون قرار گيرد، اعمال مي كند. اين محدوديت يك عبارت منطقي را مشخص مي كند كه به تمام ممقاديري كه مي خواهند در ستون وارد شوند، اعمال مي شود. تمام مقاديري كه اين عبارت منطقي براي آنها FALSE ارزيابي شود رد مي شوند. براي هر ستون مي توانيد چند محدوديت CHECK مشخص كنيد. مثال زير نشان مي دهد كه چگونه محدوديت chk id تضمين مي كند كه فقط اعدادي در محدوده مشخص شده وارد شوند :‌

3- محدوديت UNIQUE منحصر بفرد بودن مقادير در مجموعه اي از ستون ها را اعمال مي كند. هيچ دو سطري از جدول نمي توانند داراي مقادير غير NULL و يكسان در ستون هاي مشخص شده در محدوديت UNIQUE باشند.
4- محدوديت PRIMARY KEY مجموعه اي از ستون ها را مشخص مي كند كه مقادير آنها يك سطر از جدول را به طور منحصر بفرد شناسايي مي كند. هيچ دو سطري از جدول نمي تواند كليد اصلي يكسان داشته باشد. ستون هاي موجود در كليد اصلي مقادير NULL نمي پذيرند. يك جدول ممكن است داراي تركيب هاي مختلفي از ستون ها باشد كه يك سطر را به طور منحصر بفرد شناسايي مي كنند. هر تركيب يك كليد كانديد به شمار مي آيد. يكي از اين كليدهاي كانديد را مي توان به عنوان كليد اصلي انتخاب كرد.
اگر يك محدوديت PRIMARY KEY بر روي بيش از يك ستون تعريف شده باشد. مقادير موجود ندر يك ستون ممكن است تكراري باشند، اما هر تركيب از مقادير تمام ستون هاي PRIMARY KEY بايد منحصر بفرد باشند.
5- محدوديت FOREIGN KEY ارتباط بين جدول ها را ايجاد مي كند. كليد خارجي در يك جدول به يك كليد كانديد در جدول ديگر اشاره مي كند. نمي توان سطري را در جدول درج كرد كه مقدار كليد خارجي آن داراي مقدار متناظر در كليد كانديد نباشد. همچنين نمي توان سطري از يك جدول را حذف كرد اگر مقاديري از كليد خارجي به كليد كانديد آن ارجاع مي كنند. در مثال زير، ستون part_nmbr يك كليد خارجي است.
محدوديت ها مي توانند محدوديت ستوني و يا محدوديت جدولي باشند. محدوديت ستوني به عنوان قسمتي از تعريف ستون مشخص مي شود و فقط بر آن ستون اعمال مي شود. محدوديت جدولي مستقل از تعريف ستون مشخص مي شود و مي تواند بر بيشتر از يك ستون از جدول اعمال شود.
محدوديت هاي جدولي در مواقعي به كار مي روند كه بيشستر از يك ستون بايد در محدوديت شامل شود. به عنوان مثال، اگر يك جدول داراي دو يا چند ستون در كليد اصلي باشد، براي شامل كردن دو ستون در كليد اصلي بايد از محدوديت جدولي استفاده كرد.
به عنوان مثال، جدولي را درنظر بگيريد كه رويدادهاي واقع شده در يك ماشين در يك كارخانه را ثبت مي كند. فرض كنيد رويدادهايي از انواع مختلف مي توانند در يك زمان ايجاد شوند اما دو رويدادي كه در يك زمان واقع مي شوند نمي توانند از يك نوع باشند.
اين امر ميتواند در زير باشامل كردن ستونهاي time , type دريك كليد اصلي دو ستوني اعمال شود :

قاعده ها
قاعده ها بيشتر براي سازگاري با نسخه هاي قبلي درنظر گرفته شده است و بعضي از همان كارهاي محدوديت CHECK را انجام مي دهند. فقط يك قاعده مي توان براي يك ستون مشخص كرد. قاعده ها خارج از تعريف ستون و به صورت شيء هايي مجزا ايجاد مي شوند و سپس به ستون مرتبط مي شوند.
در مثال زير يك قاعده تعريف شده است كه همان كار محدوديت CHCK را انجام ميدهد:

پيش فرض ها
پيش فرض مشخص مي كند كه اگر هنگام درج يك سطر مقداري براي ستون تعيين نشود، چه مقداري براي آن مورد استفاده قرار گيرد. براي اعمال كردن پيش فرض دو روش وجود دارد :
1- با استفاده از كلمه كليدي DEFAULT در دستور CREATETABLE يك عبارت ثابت را به عنوان مقدار پيش فرض براي ستون مشخص مي كنيم.
2- با استفاده از دستور CREATETABLE يك شيء پيش فرض ايجاد مي كنيم و سپس آن را با استفاده از رويه ذخيره شده سيستمي sp_binddefault به ستون هاي مورد نظر مرتبط مي كنيم. اين روش بيشتر براي سازگاري با نسخه هاي قبلي درنظر گرفته شده است.

Trigger ها كلاس ويژه اي از رويه هاي ذخيره شده هستند كه وقتي دستورات Insert, Upda TE يا DELETE روي يك جدول صادر مي شود، به طور خودكار اجرا مي شوند. البته در صورت امكان بهتر است به جاي Trigger از محدوديت ها و مقادير پيش فرض استفاده شود.
جدول ها مي توانند چند Trigger داشته باشند. براي تعريف Trigger از دستور CREATETABLE استفاده مي شود. در اين دستور مي توان با استفاده از عبارات FOR INSERT .FOR UPDATE يا Triggger, FOR DELETE را با يكي از دستورات پردازش داده ها مرتبط كرد. SQL Server امكان مي دهد كه چند Trigger را براي يك عمل مشخص روي جدول تعريف نمود.
‏Trigger ها حاوي دستورات Transact-SQL هستند. Trigger ها همانند رويه هاي ذخيره شده، مجموعه نتيجه توليد شده توسط دستورات SELECT درون خود را باز مي گردانند، لذا اجراي دستور SELECT در Trigger ها توصيه نمي شود زيرا عموماً كاربران هنگام اجراي دستورات پردازش داده انتظار ديدن مجموعه نتيجه را ندارند.
Trigger پس از تكميل اجراي دستوري كه باعث فعال شدنش شده است، اجرا مي شود. اگر اجراي دستور با خطا همراه باشد، Trigger مربوط به آن اجرا نمي شود.

شاخص هاي جدول
شاخص در SQL Server ساختاري مرتبط با يك جدول است كه واكشي سطرهاي يك جدول را تسريع مي كند. شاخص شامل كليدهايي است كه از يك يا چند ستون جدول ساخته شده است. اين كليدها در ساختاري ذخيره شده اند كه به SQL Server امكان مي دهد سطرهاي مرتبط با مقادير شاخص را سريع تر و كارآتر جستجو نمايد.
اگر جدولي بدون شاخص ايجاد شود، سطرهاي داده اي به ترتيب خاصي ذخيره نمي شوند. اين ساختار، heap ناميده مي شود. دو نوع شاخص در SQL Server وجود دارد :
1- خوشه اي :‌ شاخص هاي خوشه اي سطرهاي جدول را براساس مقادير كليد مرتب كرده و ذخيره مي كنند. چون سطرهاي داده اي به ترتيب براساس كليد شاخص خوشه اي ذخيره مي شوند، براي جستجوي سطرها كارآيي خوبي دارند. فقط يك شاخص خوشه اي مي تواند براي هر جدول وجود داشته باشد، زيرا سطرها به خودي خود فقط به يك ترتيب مي توانند مرتب باشند.
2- غير خوشه اي : شاخص هاي غيرخوشه اي داراي ساختاري هستند كه به طور كامل از سطرهاي داده اي مجزا مي باشند. سطرها به ترتيب كليد خوشه اي ذخيره نمي شوند. پايين ترين سطرهاي يك شاخص غيرخوشه اي شامل مقادير كليد شاخص غيرخوشه اي است و هر كليد، اشاره گرهايي به سطرهايي دارد كه شامل مقدار كليد هستند.
3- شاخص ها مي توانند منحصر بفرد باشند، در اين صورت هيچ دو سطري نمي تواند مقدار يكساني براي كليد شاخص داشته باشد.
4- عامل سر ريز خاصيتي از شاخص SQL Server است كه كنترل مي كند شاخص پس از ايجاد شدن، تا چه حد متراكم شود. عامل سرريز پيش فرض معمولاً داراي كارآيي خوبي است اما در بعضي اوقات بهتر است كه تغيير كند. اگر جدول قرار است درج ها و بهنگام سازي زيادي داشته باشد، ايجاد شاخص با عامل سرريز پايين فضاي بيشتري را براي كليدهاي آتي باقي مي گذارد. اگر جدول، يك جدول فقط خواندني و بدون تغيير است، ايجاد شاخص با عامل سرريز بالا اندازه فيزيكي شاخص را كاهش مي دهد. عامل سرريز فقط وقتي اعمال مي شود كه شاخص ايجاد شده باشد. در حالي كه كليدها درج و حذف مي شوند، شاخص در نهايت در يك چگالي مشخص تثبيت مي شود.
تصميم گيري در مورد اين كه چه مجموعه اي از شاخص ها كارآيي را بهتر مي كند بستگي به تركيب پرس و جوها در سيستم دارد.

كاربرها
شناسه كاربر، يك كاربر را درون يك پايگاه داده شناسايي مي كند. تمام جوازها و
مالكيت شيء ها در پايگاه داده توسط حساب كاربر كنترل مي شود. حساب هاي كاربر، متعلق به پايگاه داده خاص هستند. حساب كاربر xyz در پايگاه داده sales با حساب كاربر xyz در پايگاه داده inventory متفاوت مي باشد. شناسه هاي كاربر بوسيله اعضاي نقش پايگاه داده db_owner تعريف مي شوند.
يك شناسة login به خودي خود به يك كاربر جواز دستيابي به شيء هاي درون پايگاه داده را نمي دهد. قبل از اين كه كسي بتواند پس از اتصال بوسيله شناسه login، به شيء هاي درون پايگاه داده دسترسي يابد، آن شناسه login بايد با يك شناسه كاربر در پايگاه داده مرتبط شود. اگر يك شناسه login صريحاً با يك شناسه كاربر در پايگاه داده مرتبط نشده باشد، به طور خودكار با شناسه كاربر guest مرتبط مي شود. اگر پايگاه داده داراي حساب كاربر guest نباشد، login نمي تواند به پايگاه داده دسترسي يابد مگر اين كه با يك حساب كاربر مجاز مرتبط شود.
وقتي يك شناسه كاربر تعريف مي شود، با يك شناسة login مرتبط مي شود. به عنوان مثال، عضوي از نقش db_owner مي تواند شناسه login ويندوز NT مانند NETDOMAIN\joe را با شناسه كاربر abc در پايگاه داده sales و شناسه كاربر def در پايگاه داده employee مرتبط نمايد.
يك كاربر در پايگاه داده بوسيله شناسه كاربر شناسايي مي شود نه شناسه jogin به عنوان مثال، sa يك حساب login است كه به طور خودكار به حساب كاربر ويژه dbo در هر پايگاه داده نگاشته مي شود.
حساب guest، يك حساب كاربر ويژه در پايگاه داده SQL Server است. اگر كاربر دستور USE را براي دستيابي به يك پايگاه داده صادر كند كه در آن با يك حساب كاربر مرتبط نشده است، در عوض به كاربر guest مرتبط مي شود.

نقش ها در SQL
نقش ها ابزاري قدرتمند هستند كه به شما اجازه مي دهند كاربران را در يك واحد جمع آوري كرده و به آنها جوازهايي را اعطاء نماييد. جوازهايي كه به يك نقش اعطاء شده و يا از آن باز پس گرفته مي شود به اعضاي نقش نيز اعمال مي شود. مي توانيد يك نقش بوجود آوريد كه نشان دهنده كارهاي انجام شده بوسيله كلاس خاصي از كاركنان در سازمان شما باشد و جوازهاي مناسب را به آن نقش اعطاء كنيد. هنگامي كه كارمند ديگري به اين مجموعه اضافه مي شود، به سادگي مي توانيد او را به عنوان عضو جديد نقش به آن اضافه كنيد. وقتي آن شخص از مجموعه خارج مي شود مي توانيد او را از نقش حذف كنيد، در اين صورت مجبور نخواهيد بود به طور مكرر جوازهايي را به اشخاص اعطاء كرده و يا از آنها باز پس بگيريد.
اگر شما مجموعه اي از نقش ها را براساس كارهاي مختلف تعريف كنيد و به هر نقش جوازهاي لازم براي انجام آن كار را انتساب كنيد، مديريت جوازها در پايگاه داده تسهيل خواهد شد. از اين پس به راحتي مي توانيد كاربران را بين نقش ها جابجا كنيد و ديگر نيازي به مديريت انفرادي جوازهاي كاربران نيست. اگر يك كار تغيير كند، بهتر آن است كه جوازها را يك بار براي نقش تغيير دهيد و اين تغييرات به طور خودكار به تمام اعضاي نقش اعمال مي شود.
در SQL Server كاربران مي توانند به چند نقش متعلق باشند.
چند نقش ثابت در SQL Server تعريف شده است. كاربران مي توانند به اين نقش ها اضافه شوند تا جوازهاي مديريتي مربوط را دريافت كنند. نقش هاي زير در سطح سرويس دهنده مي باشند:
می توانيد با استفاده از رويه ذخيره شده سيستمي SP_helpsrvrole ليستي از نقش هاي ثابت سرويس دهنده و بوسيله SP-Srvrolepermission جوازهاي ويژه هر نقش را مشاهده كنيد.
هرپايگاه داده داراي مجموعه اي از نقش هاي ثابت پايگاهداده هستند . حوزه هر يك از اين نقش هاخاص يك پايگاه داده است. به عنان مثال اگر Database1 و Database2 هر دو داراي شناسه كاربر به نام Userx باشند اضافه كردن userx مربوط به Database1 به نقش پايگاه داده db-onwer هيچ تاثيري بر userx مربوط به Database2 ندارد.

گروه ها
در SQL Server مفهوم گروه وجود ندارد. نقش ها، جايگزين گروه ها در نسخه هاي اوليه SQL Server شده است. اما شما مي توانيد امنيت SQL Server را در سطح گروه ويندوز NT مديريت كنيد.
اگر از SP_grantlogin استفاده كرده و نام يك گروه ويندوز NT را مشخص كنيد، تمام اعضاي گروه مي توانند با استفاده از تاييد صلاحيت توسط ويندوز NT به SQL Server متصل شوند. پس از اينكه گروه براي اتصال تاييد صلاحيت شد، مي توانيد از SP_grantlogin براي مرتبط كردن اعضاي گروه با يك شناسه كاربر در پايگاه داده استفاده كنيد. از دو روش مي توانيد استفاده كنيد :
1- مي توانيد گروه را با يك شناسه كاربر در پايگاه داده مرتبط كنيد. در اين حالت، تمام اعضاي گروه با آن شناسه كاربر مرتبط مي شود.
2- مي توانيد يك حساب كاربر در گروه ويندوز NT را با يك شناسه كاربر در پايگاه داده مرتبط كنيد.
اعضاي يك گروه داراي جوازهايي هستند كه به كاربر مرتبط با گروه اعطاء شده است مگر اين كه حساب ويندوز NT آنها با يك كاربر خاص مرتبط شده باشد. اگر عضوي از گروه، يك شيء ايجاد كند نام مالك شيء نام حساب ويندوز NT خواهد بود نه نام گروه.

مالك ها و جوازها
هر شيء در SQL Server متعلق به يك كاربر مي باشد. مالك با يك شناسه كاربر پايگاه داده شناسايي مي شود. وقتي يك شيء براي اولين بار ايجاد مي شود، تنها شناسه كاربري كه مي تواند به شيء دسترسي يابد شناسه كاربر مالك يا ايجاد كننده است. اگر كاربران ديگر بخواهند به شيء دسترسي يابند، مالك بايد جوازهايي را به آنها اعطاء نمايد.
براي جدول ها و ديدها ، مالك مي تواند جوازهاي REFRENCES, SELECT, DELETE, UPDATE, INSERT يا ALL را اعطاء نمايد. قبل از اين كه كاربر بتوانند دستورات DELETE, UPDATE, INSERT يا select را روي يك جدول اجرا كند بايد داراي جوازهاي مربوطه باشد. جواز REFRENCES به مالك يك جدول ديگر امكان مي دهد كه از ستون هاي جدول شما در محدوديتREFRENCES FOREIGN KEY در تعريف ستون هاي جدول خودش استفاده نمايد.
مالك يك رويه ذخيره شده مي تواند جواز EXECUTE را براي رويه ذخيره شده اعطاء نمايد. اگر مالك يك جدول مبنا بخواهد از دستيابي مستقيم كاربران به جدول جلوگيري كند. مي تواند جوازهايي را براي ديدها يا رويه هاي ذخيره شده اي كه به جدول ارجاع مي كنند، اعطاء نمايد اما هيچ جوازي را روي خود جدول اعطاء ننمايد. اين كار، شالوده مكانيزم هاي SQL Server براي تضمين اين امر است كه كاربران داده هايي را كه صلاحيت دستيابي به آنها را ندارند، نمي بينند.
كاربران مي توانند جوازهاي دستورات را نيز دريافت كنند. بعضي از دستورات مانند CREATE Table و CREATE VIEW فقط بايد توسط كاربران خاصي اجرا شوند. اگر كاربر dbo بخواهد اجازه ايجاد جدول يا ديد را به ديگري نيز اعطاء نمايد، مي تواند جوازهايي را براي اجراي اين دستورات به آن كاربر بدهد.

پايگاه هاي داده و داده هاي سيستمي
SQL Server داراي چهار پايگاه داده سيستمي است :
1- پايگاه داده master تمام اطلاعات در سطح سيستم را براي SQL Server ثبت مي كند، مانند حساب هاي login و تمام تنظيمات پيكربندي سيستم. Master پايگاه داده اي است كه وجود پايگاه هاي داده ديگر و مكان فايل هاي اصلي را كه حاوي اطلاعات اوليه براي كاربران پايگاه داده هستند ثبت مي كند.
2- Tempdb تمام جدول هاي موقت و رويه هاي ذخيره شده موقت را نگهداري مي كند. Tempbd يك منبع عمومي است. جدول هاي موقت و رويه هاي ذخيره شده تمام كاربراني كه به سيستم متصل هستند در اين پايگاه داده ذخيره مي شود. هر بار كه SQL Server شروع به كار مي كند tempdb دوباره ايجاد مي شود. هنگام قطع اتصال، تمام جدول ها و رويه هاي ذخيره شده موقت حذف مي شوند.
3- Model قالبي براي تمام پايگاه هاي داده اي است كه در سيستم ايجاد مي شود. وقتي يك دستور CREATEDATABASE صادر مي شود، اولين قسمت از پايگاه داده با كپي كردن محتواي پايگاه داده model ايجاد مي شود. سپس قسمت هاي باقيمانده از پايگاه داده با صفحه هاي خالي پر مي شود.
4- Msdb توسط كارگزار SQL Server براي زمان بندي alert ها و job ها و ثبت اپراتورها موتور استفاده قرار مي گيرد.
هر پايگاه داده در SQL Server شامل جدول هاي سيستمي است كه داده هاي مورد نياز اجزاء SQL Server را ثبت مي كند. موفقيت عمليات در SQL Server بستگي به جامعيت اطلاعات در جدول هاي سيستمي دارد. بنابراين كاربران نمي توانند مستقيماً اطلاعات جدول هاي سيستمي را بهنگام سازي كنند.

معماري فيزيكي پايگاه داده
SQL Server در روش ذخيره سازي فيزيكي داده ها پيشرفت هاي قابل توجهي نموده است. اين تغييرات بيشتر براي كاربران معمولي SQL Server شفافيت دارند اما بر مديريت پايگاه داده SQL Server نيز تأثير دارند.

صفحه ها و Exent ها

واحد اصلي ذخيره سازي داده ها در SQL Server، صفحه است. در SQL Server اندازه صفحه ها 8 كيلو بايت است. 96 بايت اول هر صفحه، مربوط به سرصفحه است كه اطلاعات سيستمي مانند نوع صفحه، ميزان حافظه آزاد در صفحه و شناسه شيء اي كه مالك صفحه است را ذخيره مي كند. شش نوع صفحه در فايل هاي داده اي يك پايگاه داده وجود دارد:
داده. شامل سطرهاي داده اي با تمام داده ها به جز داده هاي نوع ntexxt,text و image است.
شاخص. مدخل هاي شاخص را در بردارد.
متن / تصوير. شامل داده هاي نوع ntext, text و image است.
نگاشت تخصيص عمومي. اطلاعاتي در مورد Extent هاي تخصيص يافته را دربردارد.
فضاي آزاد صفحه. اطلاعاتي در مورد فضاي آزاد موجود در صفحه ها را در بردارد.
نگاشت تخصيص شاخص. حاوي اطلاعاتي در مورد Extent هايي است كه توسط يك جدول يا شاخص مورد استفاده قرار گرفته است.
سطرهاي داده اي در صفحه بلافاصله بعد از سر صفحه به طور ترتيبي قرار گرفته اند. در انتهاي صفحه بلافاصله بعد از سر صفحه به طور ترتيبي قرار گرفته اند. در انتهاي صفحه، جدول آنست سطر قرار دارد. اين جدول براي هر سطر در صفحه شامل يك مدخل مي باشد كه هر مدخل مشخص مي كند كه سطر مزبور چند بايت از ابتداي صفحه فاصله دارد.
سطرها نمي توانند در صفحه ها زنجيره شوند. در SQL Server حداكثر مقدار داده اي كه مي تواند در يك سطر قرار گيرد، بدون احتساب داده هاي نوع ntext, text و image ، 8060 بايت است.
Extent ها واحد اصلي تخصيص فضا در جدول و شاخص ها هستند. هر Extent معادل هشت صفحه پيوستته يا 64 كيلو بايت است. SQL Server براي تخصيص بهتر فضا، كل Extent را به جدول هايي كه داده كمي دارند اختصاص نمي دهد. SQL Server داراي دو نوع Extent است :
Extent هاي يكنواخت كه متعلق به يك شيء واحد مي باشند. تمام هشت صفحه موجود در Extent فقط توسط شيء مالك مي توانند مورد استفاده قرار گيرند.
Extent هاي مخلوط كه حداكثر بوسيله هشت شيء به اشتراك گذاشته مي شوند.
Extent مخلوط كه حداكثر بوسيله هشت شيء به اشتراك گذاشته مي شوند.
صفحه هايي كه به يك جدول يا شاخص جديد اختصاص داده مي شود، از Extent مخلوط هستند. وقتي جدول يا شاخص به حدي رشد كند كه داراي هشت صفحه شود، Extent آن به نوع يكنواخت تبديل مي شود.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های 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 واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
03-30-2017, 01:36 AM
ارسال: #12
اس کیو ال
فايل ها و گروه هاي فايلي پايگاه داده فيزيكي
در SQL Server 7.0 يك پايگاه د اده به مجموعه اي از فايل هاي سيستم عامل نگاشته مي شود. پايگاه داده داراي سه نوع فايل مي باشد :
فايل هاي داده اي اصلي : اين فايل، نقطه شروع پايگاه داده است و به مابقي فايل ها در پايگاه داده اشاره مي كند . هر پايگاه داده داراي يك فايل داده اي اصلي است. پسوند پيش فرض اين فايل، mdf . است.
فايل هاي داده اي ثانوي :‌ اين فايل ها شامل تمام فايل هاي داده اي به جز فايل داده اي اصلي هستند. بعضي از پايگاه هاي داده ممكن است فايل داده اي ثانوي نداشته باشند. پسوند پيش فرض اين فايل ها، ndf . است.
فايل هاي log : اين فايل ها تمام اطلاعات log لازم براي ترميم پايگاه داده را نگهداري مي كنند. هر پايگاه داده بايد حداقل يك فايل log داشته باشد. پسوند پيش فرض اين فايل ها، Idf است.
فايل هاي SQL Server داراي دو نام هستند:
نام منطقي فايل كه در دستورات Transact-SQL براي ارجاع به فايل مورد استفاده قرار مي گيرد.
نام سيستم عاملي فايل كه نام فيزيكي آن مي باشد.
صفحه ها در يك فايل به طور تربيتي با شروع از صفر براي اولين صفحه، شماره گذاري مي شوند. هر فايل داراي يك عدد شناسه فايل است. براي شناسائي منحصر بفرد يك صفحه در پايگاه داده، هم شناسه فايل و هم شماره صفحه مورد نياز است.
اولين صفحه در هر فايل شامل اطلاعات در مورد صفحات فايل مي باشد. نهمين صفحه در فايل داده اي اصلي، راه اندازي پايگاه داده است كه شامل اطلاعاتي در مورد صفات پايگاه داده مي باشد.
فايل ها مي توانند از اندازه اوليه اي كه براي آنها مشخص شده است به طور خودكار رشد كنند. وقتي يك فايل را تعريف مي كنيد مي توانيد يك مقدار رشد نيز براي آن مشخص كنيد. هر موقع فايل پر مي شود، اندازه آن به مقدار مشخص شده افزايش مي يابد.
هر فايل داراي يك حداكثر اندازه نيز مي باشد. اگر حداكثر اندازه مشخص نشود رشد فايل ادامه مي يابد تا اين كه تمام فضاي موجود روي ديسك مصرف شود. فايل هاي پايگاه داده به منظور تخصيص و مديريت آسان مي توانند در گروه هاي فايلي دسته بندي شوند. بعضي از سيستم ها مي توانند با قرار دادن داده ها و شاخص ها روي ديسك هاي مشخص، كارآيي خود را بهبود بخشند. گروه هاي فايلي مي توانند به اين فرآيند كمك كنند. مدير سيستم مي تواند براي هر ديسك گروه فايلي ايجاد كند و سپس جدول ها و شاخص هاي ويژه اي را به گروه فايلي انتساب كند.
يك فايل فقط مي تواند عضو يك گروه فايلي باشد. جدول ها و شاخص ها و داده هاي ntext, text و image مي توانند با يك گروه فايلي مرتبط باشند، در اين صورت تمام صفحه هايي كه به آن اختصاص داده مي شود در آن گروه فايلي خواهد بود.
فايل هاي log هرگز در گروه فايلي قرار نمي گيرند. فضاي log به صورت مجزا از فضاي داده اي مديريت مي شود.
فايل هاي درون يك گروه فايلي به طور خودكار رشد نمي كنند، مگر اين كه در هيچ يك از فايل هاي درون گروه فايلي فضاي آزاد وجود نداشته باشد.

سه نوع گروه فايلي وجود دارد:
• اصلي. گروه فايلي اصلي شامل فايل داده اي اصلي و فايل هاي ديگري است كه در گروه فايلي ديگري قرار نگرفته است. تمام صفحه هاي جدول هاي سيستمي در اين گروه فايلي تخصيص داده مي شوند.
• تعريف شده توسط كاربر. اين گروه هاي فايلي با استفاده از كلمه كليدي FILEGROUP در دستور CREATE DATABASE يا ALTER DATABASE ايجاد مي شوند.
• پيش فرض. اين گروه فايلي شامل صفحه هاي تمام جدول ها و شاخص هايي است كه هنگام ايجاد شدن، هيچ گروه فايلي براي آنها مشخص نمي شود. در هر پايگاه داده، در هر لحظه فقط يك گروه فايلي مي تواند گروه فايلي پي فرض باشد. اعضاي نقش پايگاه دادهdb_owner مي توانند گروه فايلي پيش فرض را از يك گروه فايلي به گروه فايلي ديگر منتقل كنند. اگر گروه فايلي پيش فرض مشخص نشود گروه فايلي اصلي، گروه فايلي پيش فرض خواهد بود.
گروه هاي فايلي در واقع، ورودي / خروجي را بين چند ديسك توزيع مي كنند.
در مثال زير يك پايگاه داده با يك فايل داده اي اصلي يك گروه فايلي تعريف شده توسط كاربر ويك فايل log ايجاد مي شود. فايل داده اي اصلي در گروه فايل اصلي قرار دارد وگروه فايلي تعريف شده توسط كاربر داراي دو فايل داده اي ثانوي است.

تخصيص و استفاده دوباره از فضا
SQL Server به سرعت صفحه ها را براي شيء ها تخصيص مي دهد و فضايي را كه بوسيله حذف سطرها آزاد مي شود دوباره مورد استفاده قرار مي دهد. اين عمليات به طور داخلي در سيستم انجام مي شود و از ساختارهاي داده اي استفاده مي كند كه براي كاربران قابل رؤيت نيستند.
اگر در پايگاه داده فضاي آزاد زيادي فضاي آزاد زيادي وجود داشته باشد، SQL Serve پايگاه داده را به طور خودكار مي شكند. اين در مواقعي انجام مي شود كه گزينه autoshrink در پايگاه داده داراي مقدار true باشد. سرويس دهنده، استفاده از فضا در هر پايگاه داده را به طور نوبه اي بررسي مي كند. اگر پايگاه داده داراي فضاي آزاد زيادي باشد، SQL Serve اندازه فايل هاي پايگاه داده را كاهش مي دهد. همچنين مي توان با استفاده از Enterpise Manger يا دستور DBCC SHRINKDATABASE اين كار را به طور دستي انجام داد.
ساختارهاي داده اي SQL Serve كه فضاي آزاد را رديابي مي كنند نسبتاً ساده هستند. اين امر دو مزيت دارد:
• اطلاعات فضاي آزاد بسيار فشرده مي شود، لذا نسبتاً صفحه هاي كمي شامل اين گونه اطلاعات هستند. اين امر با كاهش دادن ميزان خواندن از ديسك كه براي واكشي اطلاعات تخصيص لازم است، سرعت را افزايش مي دهد. همچنين احتمال اين كه صفحه هاي تخصيص در حافظه باقي بمانند افزايش مي يابد كه خود باعث كاهش بيشتر خواندن از ديسك مي شود.
• بيشتر اطلاعات تخصيص به يكديگر زنجيره نشده اند. اين امر موجب مي شود كه نگهداري اطلاعات تخصيص تسهيل شود.
• SQL Serve براي ثبت تخصيص Extent ها از دو نوع نگاشت تخصيص استفاده مي كند :
• نگاشت تخصيص عمومي : صفحه هاي Extent,GAM هايي را كه تخصيص يافته اند ثبت مي كنند. هر GAM، 64 هزار Extent يا تقريباً 4 گيگا بايت داده را پوشش مي دهند. GAM داراي يك بيت براي هر Extent است. اگر بيت برابر 1 باشد، Extent متناظر آزاد است.
• نگاشت تخصيص عمومي مشترك : صفحه هاي SGAM Extent هايي را كه هم اكنون به عنوان Extent مخلوط استفاده شده اند و حداقل داراي يك صفحه استفاده نشده هستند، ثبت مي كنند. هر SGAM، 64 هزار Extent يا تقريباً 4 گيگا بايت داده را پوشش مي دهند. SGAM داراي يك بيت براي هر Exent است. اگر بيت برابر 1 باشد، Exent از نوع مخلوط است و داراي صفحه هاي آزاد مي باشد. اگر بيت برابر o باشد، Extent به عنوان Extent مخلوط استفاده نشده است و يا Extent مخلوطي است كه تمام صفحه هاي آن مورد استفاده قرار گرفته اند.
هر Extent داراي الگوهاي بيتي به صورت زيراست كه بر مبناي استفاده جاري از آنها در GAM,SGAM ثبت شده اند :
در نتيجه ، مديريت Extent ها الگوريتم ساده اي خواهد داشت. براي تخصيص يك Extent يكنواخت، SQL Serve در GAM به دنبال بيتي مي گردد كه برابر 1 باشد و سپس آن را برابر o قرار مي دهد. براي يافتن Extent مخلوط با صفحه هاي آزاد، SGAM براي پيدا كردن بيت 1 جستجو مي شود. براي تخصيص يك Extent مخلوط، GAM براي بيت 1جستجو مي شود و مقدار بيت برابر o قرار داده مي شود و سپس بيت متناظر در SGAM نيز برابر 1 مي شود. براي آزاد كردن يك SQL Serve,Extent تضمين مي كند كه بيت متناظر در GAM برابر 1 و در SGAM برابر o باشد. البته، الگوريتم هايي كه به طور داخلي در SQL Serve اجرا مي شوند پيچيده تر از آن هستند كه در اينجا مورد بررسي قرار گرفت.
صفحه هايي به نام فضاي آزاد صفحه وجود دارد كه نشان مي دهند آيا يك صفحه تخصيص داده شده است يا خير و مقدار فضاي آزاد صفحه را نشان مي دهند. هر PFS، 8000 صفحه را پوشش مي دهد. براي هر صفحه، PFS داراي يك نقش بيست است كه مشخص مي كند آيا صفحه خالي است، 50-1 درصد پر، 80-51 درصد پر، 95-81 درصد پر يا 100-96 درصد پر است.
صفحه PES اولين صفحه بعد از سرصفحه در فايل داده اي است بعد از آن GAM وبه دنبال آن SGAM قرار مي گيرد. 8000 صفحه بعد از اولين PESيك PES ديگر قرار مي گيرد . 64 هزار Extent بعد از اولين GAM يك GAM ديگر قرار مي گيرد . 64 هزار Extent بعد از اولين SGAM يك SGAM ديگر قرار مي گيرد والي آخر .


مديريت فضاي مورد استفاده شيء ها
صفحه هاي نگاشت تخصيص شاخص ، Extent هاي يك فايل پايگاه داده را كه بوسيله يك heap يا شاخص مورد استفاده قرار گرفته است، معين مي كند. هر heap يا شاخص داراي يك يا چند صفحه IAM است كه تمام Extent هاي تخصيص يافته به شيء را ثبت مي كند. يك heap يا شاخص حداقل داراي يك IAM براي هر فايلي است كه در آن Extent هايي دارد. اگر محدوده Extent هاي مربوط به heap يا شاخص در فايل فراتر از حدي باشد كه IAM بتواند ثبت كند، در اين صورت heap يا شاخص ممكن است بيش از يك IAM در يك فايل داشته باشد.
صفحه هاي IAM بر حسب نياز براي شيء تخصيص داده مي شوند و در فايل به طور تصادفي قرار مي گيرند. اولين صفحه IAM در شيء اشاره مي كند و تمام صفحه هاي IAM براي آن شيء در يك زنجيره به هم پيوسته اند.
يك صفحه IAM داراي يك سرصفحه است كه اولين Extent واقع در محدوده Extent هايي را كه توسط IAM نگاشته شده است، معين مي كند IAM داراي يك نقش بيت نيز هست كه هر بيت آن متناظر با يك Extent است. اولين بيت، متناظر با اولين Extent، دومين بيت، متناظر با دومين Extent و … مي باشد. اگر بيت برابر صفر باشد Extent متناظر، به شيء اي كه مالك صفحه IAM است تخصيص نيافته است.
اگر SQL Server بخواهد سطر جديدي را درج كند و فضايي در صفحه جاري موجود نباشد، با استفاده از صفحه هاي IAM و PES صفحه اي را پيدا مي كند كه داراي فضاي كافي براي نگهداري سطر باشد. از IAM براي يافتن Extent هايي كه به شيء اختصاص داده شده، استفاده مي شود. براي هر Extent، صفحه هاي PFS براي جستجوي صفحه اي كه داراي فضاي آزاد كافي براي نگهداري سطر باشد، مورد استفاده قرار مي گيرند هر صفحه IAM و PFS تعداد زيادي از صفحه هاي داده اي را پوشش مي دهند و لذا در يك پايگاه داده تعداد كمي از اين صفحه ها وجود دارد، به همين دليل اين صفحه ها در حافظه اصلي قرار گرفته و جستجوي آنها سريع مي باشد. SQL Server فقط هنگامي يك Extent جديد به يك شيء تخصص مي دهد كه نتواند صفحه اي در Extent هاي موجود پيدا كند كه داراي فضاي آزاد كافي براي نگهداري سطر باشد. Extent هاي جديد از گروه فايلي تخصيص داده مي شوند. اگر يك گروه فايلي داراي دو فايل باشد كه فضاي آزاد يكي از آنها دو برابر ديگري است، به ازاء هر صفحه از يك فايل دو صفحه از فايل ديگر تخصيص مي يابد. اين بدان معني است كه در يك گروه فايلي درصد فضاي مصرفي براي تمام فايل ها بايد يكسان باشد.

ساختار جدول ها و شاخص ها
داده هاي هر جدول در صفحه 8 كيلو بايتي ذخيره مي شوند. هر صفحه داده اي داراي 96 بايت به عنوان سرصفحه است كه شامل اطلاعات سيستمي مانند شناسه جدولي كه مالك صفحه است و اشاره گرهايي به صفحه هاي قبلي و بعدي، مي باشد. يك جدول آفست سطر نيز در انتهاي صفحه قرار دارد. سطرهاي داده اي، باقيمانده صفحه را پر مي كنند.
SQL Server از دو روش براي سازماندهي صفحه هاي داده اي استفاده مي كند :
جدول هاي خوشه اي جدول هايي هستند كه داراي يك شاخص خوشه اي مي باشند. سطرهاي داده اي به ترتيب كليد شاخص خوشه اي ذخيره مي شوند. صفحه هاي داده اي در يك ليست پيوندي دو طرفه به هم پيوسته اند. شاخص به صورت ساختار B-tree پياده سازي مي شود.
Heap ها جدول هايي هستند كه شاخص خوشه اي ندارند. سطرهاي داده اي با هيچ ترتيب خاصي ذخيره نمي شوند.
هر جدول مي تواند 249 شاخص غيرخوشه اي داشته باشد. شاخص هاي غير خوشه اي نيز ساختار B-tree دارند. اين شاخص ها هيچ تاثيري بر ترتيب سطرهاي داده اي ندارند.
صفحه هايي كه داده هاي ntext,text و imageرا نگهداري مي كنند، براي هر جدول به صورت يك واحد منفرد مديريت مي شوند. تمام اين داده ها براي يك جدول در يك مجموعه از صفحه ها ذخيره مي شوند.
به ازاء هر جدول و شاخص، يك سطر در جدول sysindexes وجود دارد كه به طور منحصر بفرد با تركيبي از دو ستون شناسه شيء و شناسه شاخص شناسايي مي شود. تخصيص صفحه ها به جدول و شاخص بوسيله زنجيره اي از صفحه هاي IAM مديريت مي شود. ستون sysindexes.FirstIAM به اولين صفحه IAM در زنجيره صفحه هاي IAM اشاره مي كند.

هر جدول داراي مجموعه اي از سطرها در sysindexes مي باشد :
heap داراي يك سطر در sysindexes است كه در آن indid=0 ستون IAM به زنجيره IAM مربوط به مجموعه صفحه هاي داده اي جدول اشاره مي كند.
شاخص خوشه اي داراي يك سطر در sysindexes است كه در آن indid=1 ستون root به بالاي شاخص خوشه اي اشاره مي كند.
هر شاخص غيرخوشه اي كه براي جدول ايجاد مي شود داراي يك سطر در sysindexes است. Indid داراي مقاديري بين 2 تا 201 است. ستون root به بالاي شاخص غيرخوشه اي اشاره مي كند.
هر جدول كه داراي حداقل يك ستون از نوع ntext,text و imageرا باشد، داراي يك سطر در sysindexes است كه در آن indid=255.

ساختار Heap
SQL Server از صفحه هاي IAM براي حركت در Heap استفاده مي كند. صفحه
هاي داده اي و سطرهاي درون آنها به ترتيب خاصي قرار ندارند و به يكديگر پيوسته نيستند. تنها اتصال منطقي بين صفحه هاي داده اي، چيزهايي است كه در صفحه هاي IAM ثبت مي شود.
خواندن ترتيبي يك Heap با دنبال كردن IAM انجام مي شود تا Extent هايي كه صفحه هاي مربوط به Heap در آنها قرار دارند، جستجو شوند. چون ها را به ترتيبي كه در فايل هستند نشان مي دهند، لذا خواندن ترتيبي Heap به طور يكنواخت تا انتهاي فايل ادامه مي يابد.
خواندن جدول روي Heap به صورت زير انجام مي شود :
1- اولين IAM در اولين گروه فايلي خوانده مي شود و تمام Extent هاي موجود در IAM دنبال مي شوند.
2- اين فرآيند براي هر IAM مربوط به Heap در فايل انجام مي شود.
3- مراحل 1 و 2 براي هر فايل در پايگاه داده يا گروه فايلي تكرار مي شود تا اين كه آخرين IAM در Heap پردازش شود.

شاخص هاي خوشه اي
در شاخص هاي خوشه اي، صفحه هاي درون زنجيره داده ها و سطرهاي درون آنها بر حسب كليد شاخص خوشه اي مرتب هستند. عمليات درج در محلي انجام مي شود كه مقدار كليد سطر درج شده مطابق با ترتيب سطرها باشد.
شاخص ها به صورت B-tree سازماندهي شده اند. هر صفحه در يك شاخص حاوي يك سرصفحه و به دنبال آن سطرهاي شاخص مي باشد. هر سطر شاخص شامل يك مقدار كليد و يك اشاره گر است كه به يك صفحه يا سطر داده اي اشاره مي كند. هر صفحه در يك شاخص يك گره شاخص ناميده مي شود. گره بالايي B-tree گره ريشه ناميده مي شود. لايه پاييني گره ها در شاخص گره هاي برگ ناميده مي شوند كه به صورت يك ليست پيوندي دو طرفه هستند. در شاخص خوشه اي صفحه هاي داده اي همان گره هاي برگ هستند.
SQL Server براي جستجوي سطري كه متناظر با يك كليد شاخص است از بالا تا پايين شاخص حركت مي كند. براي جستجوي محدوده اي از كليدها، SQL Server در شاخص حركت كرده تا اولين مقدار كليد در محدوده را پيدا كند. سپس با استفاده از اشاره گرهاي next و previous بين صفحه هاي داده اي حركت مي كند. براي يافتن اولين صفحه در زنجيره صفحه هاي داده اي، سمت چپ ترين اشاره گرها از گره ريشه شاخص دنبال مي شود.

شاخص هاي غيرخوشه اي
ساختار شاخص غيرخوشه اي با شاخص خوشه اي دو تفاوت عمده دارد :
سطرهاي داده اي مرتب شده نيستند و به ترتيب كليد شاخص غيرخوشه اي ذخيره نمي شوند.
لايه هاي برگ در شاخص غيرخوشه اي شامل صفحه هاي داده اي نيستند.
در عوض ، گره هاي برگ حاوي سطرهاي شاخص هستند. هر سطر شاخص شامل مقدار كليد غيرخوشه اي و يك يا چند مكان نماي سطر است كه به سطر داده اي كه داراي مقدار كليد است اشاره مي كند.
شاخص هاي غيرخوشه اي مي توانند هم روي جدولي با شاخص خوشه اي و هم روي يك Heap تعريف شوند. مكان نماي سطر داراي دو شكل است :
اگر جدول يك Heap باشد، مكان نماي سطر، يك اشاره گر به سطر است. اشاره گر از شناسه فايل، شماره صفحه و شماره سطر در صفحه تشكيل شده است. به كل اشاره گر، شناسه سطر گفته مي شود.
اگر جدول يك شاخص خوشه اي داشته باشد، مكان نماي سطر، كليد شاخص خوشه اي براي سطر است. اگر شاخص خوشه اي، منحصر بفرد نباشد، SQL Server يك مقدار داخلي را به كليدهاي مضاعف اضافه مي كند تا منحصر بفرد شوند. اين مقدار براي كاربر قابل رؤيت نيست. اين مقدار براي منحصر بفرد كردن كليد براي استفاده در شاخص هاي غيرخوشه اي استفاده مي شود. SQL Server براي واكشي سطر داده اي، شاخص خوشه اي را با استفاده از كليد شاخص خوشه اي كه در سطر برگ شاخص غير خوشه اي ذخيره شده است، جستجو مي كند.
چون شاخص هاي غير خوشه اي كليدهاي شاخص خوشه اي را به عنوان مكان نماي سطر در خود ذخيره مي كنند، بهتر است كليدهاي شاخص خوشه اي تا حد امكان كوچك باشند. اگر يك جدول داراي شاخص هاي غيرخوشه اي نيز هست، از ستون هاي بزرگ به عنوان كليد در شاخص خوشه اي استفاده نكنيد.

داده هاي ntest,text و image
مقادير ntext, text و image در سطرهاي داده اي ذخيره نمي شوند، بلكه در مجموعه اي از صفحه هاي مجزا ذخيره مي شوند. براي هر كدام از اين مقادير تنها چيزي كه در سطر داده اي ذخيره مي شود يك اشاره گر 16 بايتي است. براي هر سطر، اين اشاره گر به محل اين داده ها اشاره مي كند. اگر سطر بيش از يك ستون از نوع ntext, text و image داشته باشد، براي هر كدام از اين ستون ها يك اشاره گر وجود خواهد داشت.
اين نوع داده ها در يك مجموعه از صفحه هاي 8 كيلوبايتي ذخيره مي شوند. صفحه ها به طور منطقي در يك ساختار B-tree ذخيره مي شوند. بر حسب اين كه مقدار داده كمتر يا بيشتر از 32 كيلو بايت باشد، ساختار B-tree قدري متفاوت است.
اگر مقدار داده كمتر از 32 كيلو بايت باشد، اشاره گر در سطر داده اي به يك ساختار ريشه 84 بايتي اشاره مي كند كه همان گره ريشه ساختار B-tree است. گره ريشه به بلاك هاي داده اي اشاره مي كند.
اندازة هر بلاك داده اي توسط برنامه كاربردي تعيين مي شود. بلاك هاي داده اي كوچك با هم تركيب شده تا يك صفحه را پر كنند. اگر مقدار داده كمتر از 64 بايت باشد تمام داده ها در ساختار ريشه ذخيره مي شوند. به عنوان مثال، اگر برنامه كاربردي 1 كيلو بايت داده نوع image داشته باشد، به عنوان مثال ، اگر برنامه كاربردي 1 كيلو بايت داده نوع image داشته باشد، به عنوان اولين بلاك 1 كيلو بايتي براي سطر ذخيره مي شود. اگر اين برنامه مجدداً 12 كيلو بايت داده ديگر را بخواهد ذخيره كند، 7 كيلو بايت از آن با 1 كيلو بايت اولي تركيب شده و بلاك اول پر مي شود. 5 كيلو بايت باقيمانده، بلاك دوم را تشكيل خواهد داد.
اگر مقدار داده در يك ستون نوع ntext, text و image بيشتر از 32 كيلو بايت باشد، SQL Server بين بلاك هاي داده اي و گره ريشه، گره هاي مياني توليد مي كند.

ساختار ثبت تراكنش
هر پايگاه داده SQL Server داراي يك فايل ثبت تراكنش است كه تمام تغييرات انجام شده در پايگاه داده توسط تراكنش ها را ثبت مي كند . ثبت تراكنش ها و تغييرات آنها سه هدف را تأمين مي كنند :‌
ترميم انفرادي تراكنش ها : اگر يك برنامه كاربردي يك دستور ROLLBACK صادر نمايد و يا اگر SQL Server خطايي را كشف كند ، ركوردهاي log براي لغو تغييرات انجام شده توسط تراكنش تكميل نشده مورد استفاده قرار مي گيرد.
بازيابي تمام تراكنش هاي تكميل نشده هنگام شروع به كار SQL Server : اگر سرويس دهنده اي كه SQL Server را اجرا مي كند دچار اشكال شود، پايگاه هاي داده ممكن است در حالتي قرار گيرند كه بعضي از تغييرات از بافر در فايل هاي داده اي نوشته نشده باشند و ممكن است بعضي از تغييرات در فايل هاي داده اي ناشي از تراكنش هاي تكميل نشده باشند. وقتي SQL Server اجرا مي شود ناشي از تراكنش هاي تكميل نشده باشند. وقتي SQL Server اجرا مي شود شروع به ترميم تك تك پايگاه هاي داده مي كند. هر يك از تغييراتي كه در فايل log ثبت شده اند ولي در فايل داده اي نوشته نشده اند، انجام مي شوند. سپس تمام تراكنش هاي تكميل نشده لغو مي شوند تا جامعيت پايگاه داده حفظ شود.
بازيابي يك پايگاه داده از نسخه پشتيبان تا نقطه و قوع خطا : وقتي نسخه پشتيبان يك پايگاه داده بازيابي مي شود، عمليات ترميم براي لغو تراكنش هاي تكميل نشده آغاز مي شود. پس از اين كه نسخه پشتيبان پايگاه داده بازيابي مي شود، نسخه هاي پشتيبان ثبت تراكنش، تراكنش هاي تكميل شده را دوباره اعمال مي كنند تا پايگاه داده به وضعيت قبل از وقوع خطا باز گردد.
خصوصيات ثبت تراكنش عبارت است از :
ثبت تراكنش به صورت يك جدول پياده سازي نمي شود، بلكه به صورت يك يا مجموعه اي از فايل ها در پايگاه داده هستند. بافر log جدا از بافر مربوط به صفحه هاي داده اي مديريت مي شود، در نتيجه كد درون موتور پايگاه داده ساده تر، سريع تر و قوي تر مي شود.
قالب ركوردهاي log حتي لازم نيست كه مانند قالب صفحه هاي داده اي باشد.
ثبت تراكنش مي تواند روي فايل هاي متعدد پياده سازي شود. فايل ها مي توانند طوري تعريف شوند كه در مواقع لازم به طور خودكار رشد كنند. اين كار احتمال بالقوه كمبود فضا را كاهش داده و علاوه بر آن سربار مديريت سيستم را نيز كاهش مي دهد.
مكانيزم پاك كردن قسمت هاي استفاده نشده log سريع مي باشد و تأثير كمي نيز بر بازدهي تراكنش دارد.

ثبت تراكنش پيشرو
SQL Server همانند بسياري از پايگاه هاي داده رابطه اي از ثبت تراكنش پيشرو استفاده مي كند. ثبت تراكنش پيشرو تضمين مي كند كه هيچ تغييرات داده اي قبل از ركورد log مربوطه روي ديسك نوشته نشود.
SQL Server داراي يك بافر در حافظه مي باشد كه از آن براي خواندن صفحه هاي داده اي استفاده مي كند. تغييرات داده ها مستقيماً روي ديسك نوشته نمي شوند، بلكه در عوض بر روي كپي صفحه در بافر اعمال مي شود.
هنگامي كه تغييري در صفحه درون بافر اعمال مي شود، يك ركورد log در بافر log براي ثبت اين تغيير ساخته مي شود. اين ركورد log بايد قبل از اين كه صفحه مربوطه از بافر به فايل منتقل شود، روي ديسك نوشته شود. اگر صفحة مربوطه قبل از ركورد log روي ديسك نوشته شود، در اين صورت اگر قبل از اين كه ركورد log روي ديسك نوشته شود سرويس دهنده دچار اشكال شود، تغييري روي ديسك ايجاد شده است كه نمي توان آن را لغو كرد. چون ركوردهاي log پيش از صفحه هاي داده اي مربوطه روي ديسك نوشته مي شوند، ثبت تراكنش پيشرو خوانده مي شوند.

ساختار منطقي ثبت تراكنش
ثبت تراكنش، رشته اي ترتيبي از ركوردهاي log است. هر ركورد log توسط يك شماره ترتيبي شناسايي مي شود. هر ركورد log جديد در انتهاي فايل log با يك LSN بزرگتر از LSN ركورد قبلي نوشته مي شود.
عمليات مختلفي در ثبت تراكنش درج مي شوند، شامل :
ابتدا و انتهاي تراكنش.
تغييرات داده اي. اين امر شامل تغييراتي كه توسط رويه هاي ذخيره شده سيستمي يا دستورات زبان تعريف داده در جدول هاي سيستمي اعمال مي شود نيز هست.
تخصيص يا باز پس گرفتن Extent ها.
ايجاد و حذف جدول ها و شاخص ها.

ركوردهاي log به ترتيبي كه ايجاد شده اند ذخيره مي شوند. هر ركورد log با شناسه تراكنشي كه به آن تعلق دارد شناسايي مي شود. براي هر تراكنش، ركوردهاي log مربوط به آن در يك ليست پيوندي يك طرفه با اشاره گرهاي عقب گرد قرار دارند كه لغو تراكنش را تسريع مي كنند.

ساختار فيزيكي ثبت تراكنش
در يك پايگاه داده، ثبت تراكنش به يك يا چند فايل فيزيكي نگاشته مي شود. SQL Server هر فايل log فيزيكي را به چند log مجازي تقسيم مي كند. فايل هاي log مجازي اندازه ثابتي ندارند و همچنين براي يك فايل log فيزيكي تعداد ثابتي فايل log مجازي وجود ندارد. SQL Server اندازه فايل هاي log مجازي را به طور پويا هنگام ايجاد اين فايل ها تعيين مي كند. SQL server سعي مي كند كه تعداد اين فايل هاي مجازي را كم نمايد. تعيين اندازه و تعداد فايل هاي log مجازي خارج از اختيارات مدير سيستم است و فقط توسط SQL Server تعيين مي شود.
تنها موقعي كه فايل هاي log مجازي بر كارآيي تأثير مي گذارند زماني است كه اين فايل ها با اندازه كوچك و ميزان رشد كوچك تعريف شوند. اگر اين فايل هاي مجازي به مقدار زياد رشد كنند، فايل هاي log مجازي زيادي توليد خواهد شد كه موجب مي شود عمليات ترميم كن شود. توصيه مي شود كه فايل هاي log با اندازه اي نزديك اندازه نهايي خود و ميزان رشد فايل، بزرگ انتخاب شود.
پايگاه داده اي را با يك فايل log فيزيكي درنظر بگيريد كه به چهار فايل log مجازي تقسيم شده است. وقتي پايگاه داده ايجاد مي شود، فايل log منطقي از ابتداي فايل log فيزيكي شروع مي شود. ركوردهاي log جديد به انتهاي log منطقي اضافه مي شوند و به طرف انتهاي log فيزيكي رشد مي كند.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های 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 واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
03-30-2017, 03:10 AM
ارسال: #13
sql و مدیریت آن
مديريت پايگاه داده ها در SQL Server - امنيت اطلاعات و عمليات :
اشاره :
مقوله امنيت همواره يكي از مهم‌ترين شاخه‌هاي مهندسي نرم‌افزار و به تبع آن، يكي از حساس‌ترين وظايف مديران سيستم به‌خصوص مديران شبكه و يا مديران بانك‌هاي اطلاعاتي است. با تنظيم سطوح دسترسي براي كاربران شبكه يا بانك‌هاي اطلاعاتي شبكه، امنيت اطلاعات يا به عبارتي عدم دسترسي افراد فاقد صلاحيت به اطلاعات، تضمين مي‌گردد. هر سيستم‌عامل، پلتفرم يا بانك اطلاعاتي، شيوه‌هايي خاصي را براي برقراري قواعد امنيتي به كاربران معرفي مي‌نمايد. در SQL Server هم روش‌هاي خاصي براي اين مقوله وجود دارد كه در اينجا به آن‌ها مي‌پردازيم

امنيت در ورود به سيستم:
زماني كه يك بانك اطلاعاتي جديد را در SQL Server تعريف مي‌كنيد، با كليك سمت راست بر روي نام موتور پايگاه داده‌اي يك سرور درEnterprise Manager و انتخاب قسمت Properties، در زبانه security، موتور بانك اطلاعاتي امكان انتخاب دو روش مختلف در معرفي و يا شناسايي كاربران مجاز براي ورود به سيستم يا همان عمل احراز هويت (Authentication) را در دسترس قرار مي‌دهد. البته بعد از ساخت يك بانك اطلاعاتي، با كليك سمت راست بر روي نام آن بانك و انتخاب گزينه Properties و سپس security هم مي‌توان روش مورد استفاده را تغيير داد. (شكل 1)
يكي از اين دو روش كه برمبناي ارتباط موتور اين پايگاه داده با اكتيودايركتوري ويندوز 2000 سرور بنا شده است و Windows only نام دارد، باعث مي‌شود تا كاربران از قبل تعريف شده در دامنه (Domain) يك شبكه مبتني بر ويندوز 2000 سرور، به رسميت شناخته شوند. در اين صورت نيازي به معرفي كاربر جديد و يا انتخاب دو نام كاربري براي يك نفر وجود ندارد و كاربر مذكور مي‌تواند از همان نام كاربري و رمز عبوري كه براي ورود به دامنه شبكه ويندوزي خود استفاده مي‌كند، براي اتصال به بانك اطلاعاتي هم استفاده كند.
در روش دوم، ارايه مجوز دسترسي به كاربران با سيستمي خارج از محدوده دامنه‌‌ويندوزي صورت مي‌گيرد. بدين‌صورت مدير سيستم مجبور است براي كليه كاربراني كه قصد اتصال به بانك را دارند، نام كاربري و رمزعبور جديدي را تعريف كند.

تعريف كاربران:
در صورتي كه شيوه دوم تعريف كاربران را انتخاب كرده باشيد، بايد ابتدا ليستي از كاربران را به همراه رمزعبور
مربوطه‌شان در قسمتي از صفحه Enterprise Manager كه با عنوان Security مشخص شده، معرفي كنيد. اين كار با كليك سمت راست بر روي گزينه Login در قسمت مذكور و سپس new login انجام مي‌گيرد. انتخاب يك نام كاربري به همراه ورود رمزعبور تنها كاري است كه بايد در اين جا انجام گيرد تا يك كاربر به‌طور عمومي در ليست كاربران يك موتور پايگاده داده‌ قرار گيرد.
از اين به بعد، وظيفه مدير سيستم تعيين دسترسي كاربران تعريف شده در قسمت security، به بانك‌هاي مختلف تعريف شده در پايگاه است.
اين‌كار نيز از دو طريق قابل انجام است. در روش اول، دسترسي به هر بانك اطلاعاتي از طريق همان قسمت security صورت مي‌گيرد. كافي است بر روي هر كاربري كه در اين قسمت تعريف كرده‌ايد، كليك سمت راست كرده و ابتدا گزينه خصوصيات و سپس زبانه DataBase Access را انتخاب كنيد. پس از آن ليستي از كليه بانك‌هاي اطلاعاتي موجود در پايگاه به شما نمايش داده مي‌شود كه بايد بانك موردنظر را انتخاب كرده و در ستون Permit كليك موردنظر را انجام دهيد. پس از اين كار مي‌توانيد يك نام نمايشي را براي نام كاربري مربوطه در ستون user تايپ كنيد. در اين‌جا به عنوان مثال امكان دسترسي كاربر mda را به بانك Northwind فراهم نموده و نام نمايشي <مهيار داعي‌الحق> براي آن انتخاب شده است. همان‌طور كه مشاهده مي‌كنيد اين كاربر به‌طور خودكار در گروه كاربري عمومي(public) بانك مذكور قرار داده مي‌شود.
در روش دوم، به سراغ بانك اطلاعاتي موردنظر در ليست DataBases رفته و با كليك سمت راست بر روي عبارتusers، گزينه New User را انتخاب مي‌كنيم. حال در پنجره نمايش داده شده، بايد از درون ليست Login name، يكي از كاربراني را كه قبلاً در قسمت security تعريف كرده‌ايم انتخاب كرده و نام نمايشي آن را هم در قسمت user name تايپ كنيد. در اين‌جا هم به‌صورت خودكار، كاربر مذكور در گروه كاربري Public براي آن بانك اطلاعاتي قرار مي‌گيرد.

نقش‌ها (Roles)
درSQL Server، مي‌توان چندين كاربر را در يك گروه كاربري قرار داد. وقتي يك گروه كاربري تعريف مي‌شود، دسترسي آن به قسمت‌هاي مختلف يك بانك اطلاعاتي و كليه عملياتي كه اعضاء آن گروه مي‌توانند انجام دهند، توسط مدير سيستم تعيين مي‌گردد. از اين به بعد هرگاه كاربر جديدي به آن گروه اضافه ‌شود، نيازي به تعريف مجدد سطوح دسترسي و عملياتي براي وي وجود ندارد و سطوح دسترسي به صورت خودكار از طرف گروه به عضو جديد اعطا مي‌شود. درSQL Server به‌صورت پيش‌فرض تعدادي نقش (Role) وجود دارد كه در واقع همان گروه‌هاي كاربري مذكور مي‌باشد. هر كاربري كه توسط مدير سيستم به جمع كاربران اضافه مي‌شود به طور خودكار در نقش public ظاهر مي‌شود. نقش‌هاي از پيش تعريف شده و نحوه دسترسي و قابليت عملياتي آن‌ها عبارت هستند از:

1- db-accessadmin
كاربران تعريف شده در اين نقش قادر خواهند بود، سطوح دسترسي و امنيتي كليه كاربران و نقش‌ها را در قسمت‌هاي مختلف پايگاه تعريف كنند.

2- db-backupoperator
اين نقش مسؤول ايجاد نسخه‌هاي پشتيبان از سيستم و اطلاعات درون آن است.

3- db-datareader
اين نقش قادر است كليه اطلاعات تمام جداول بانك اطلاعاتي موجود در سيستم را بخواند. مگر آن‌كه اطلاعات خاصي توسط مكانيسم Deny از دسترس او دور نگاه داشته شود.

4- db-datawriter
افراد تعريف شده در اين نقش قادرند تا كليه اطلاعات موجود در كليه جداول بانك را با استفاده از دستورات سه‌گانهInsert ،UPdate ،Delete تغيير دهند. مگر آن ‌كه جدول يا فيلد خاصي توسط مكانيسم Deny از دسترس‌شان دور نگه داشته شود.

5- db-ddladmin
كاربران داراي اين نقش مي‌توانند ساختار جداول، ديدها، روتين‌ها و توابع يك بانك اطلاعاتي را با استفاده از دستورات سه‌گانه Create ،alter ،Drop، بسازند، تغيير دهند يا از بين ببرند.

6- db-denydatareader
اين نقش قادر به خواندن هيچ اطلاعاتي از جداول يا ساير قسمت‌هاي بانك نيست.

7- db-denydatawriter
اين نقش هم قادر به تغيير دادن هيچ يك از قسمت‌هاي بانك اطلا‌عاتي نيست.

8- db-owner
اين نقش قادر به انجام هر عملي در بانك‌اطلاعاتي مي‌باشد و بالاترين سطح موجود در يك بانك است.

9- db-securityadmin
مسؤول تعريف و تنظيم نقش‌ها، كاربران و سطوح دسترسي در يك بانك است.

10- public
كاربران اين نقش‌ قادرند تمام جداول، ديدها و ساير قسمت‌هايي كه توسط خودشان يا توسط كاربران متعلق به نقش dbowner ساخته شده را بخوانند و بنويسند.
اما به غير از نقش‌هاي مذكور، مدير سيستم هم مي‌تواند به تناسب، نقش‌هايي را در سيستم تعريف كند. به عنوان مثال فرض كنيد كه در يك واحد حسابداري، كارمندان عادي آن قسمت، موظف به وارد كردن اسناد مالي به يكي از جداول بانك‌اطلاعاتي با استفاده از يك برنامه ويژوال بيسيك هستند. مدير مالي نيز توسط دكمه موجود در همان برنامه قادر است يك روتين ذخيره شده (stored procedure) را فراخواني كرده تا اسناد وارد شده را تأييد كند. بنابراين فقط كاربر مربوط به مدير مالي حق اجراي روتين مذكور را دارد. برهمين اصل مدير پايگاه يك گروه به نام <حسابداران> را براي ورود اسناد و گروه ديگري را به نام <مدير مالي> براي مديريت آن دپارتمان و جانشينان احتمالي وي در نظر مي‌گيرد و براي گروه اول، اجراي روتين مذكور را در حالت ممنوع (Deny) و براي گروه دوم، در حالت مجاز (Allow) قرار مي‌دهد. شما مي‌توانيد براي تعريف يك گروه يا نقش جديد، بر روي آيتم Roles كليك سمت راست كرده و گزينه New Role و سپس يك نام دلخواه را انتخاب كرده و آن‌گاه با كليك بر روي دكمه Add كاربران از قبل تعريف شده‌تان را يك به يك به جمع آن گروه اضافه نماييد. شايان ذكر است كه هر كاربر مي‌تواند جزء چند گروه يا نقش باشد. در ادامه بايد در همان پنجره مذكور با كليك بر روي دكمه مجوز (Permission)، دسترسي و قابليت عملياتي آن گروه را هم تعريف كنيد.

انواع مجوزها :
1- جداول اطلاعاتي و ديدها

در مورد يك جدول بانك اطلاعاتي شما مي‌توانيد امكان انجام پرس‌وجو، درج، تغيير، حذف و تعريف وابستگي را به ترتيب با علا‌مت زدن در ستون‌هاي SELECT ،UPDATE ،DELETE و DRI براي يك گروه يا كاربر، ممكن يا غيرممكن كنيد. در ضمن در صورتي كه بخواهيد بر روي تك‌تك فيلدها، قواعدي را وضع كنيد مي‌توانيد بر روي دكمه Colums هر جدول كليك كرده و امكان آوردن آن فيلد را در يك عبارت پرس‌وجو (SELECT) و يا امكان تغيير آن فيلد را در يك عمليات UPDATE براي گروه يا كاربر موردنظر مشخص كنيد. (شكل 5)‌ لازم به ذكر است كه همين عمليات براي ديدهاي (View) يك بانك هم قابل انجام است.

2- روتين‌ها و توابع
در مورد روتين‌ها و توابع تعريف‌شده (User Defined Fonction) فقط يك ستون مجوز به نام Exec و آن هم به معني امكان استفاده يا عدم استفاده وجود دارد كه توسط مدير سيستم تنظيم مي‌شود.

3- مجوزهاي اساسي
به غير از عمليات‌عمومي سيستم مثل جستجو، درج، تغيير، اجراي روتين و... كه در بالا ذكر شد، در SQL serverامكانات ويژه‌اي نيز براي كاربردهاي خاص در نظر گرفته شده كه فقط در مواقع لزوم به برخي كاربران يا نقش‌ها اعطا مي‌شود. اگر بر روي نام هر بانك اطلاعاتي موجود در سيستم مثل Northwind، كليك راست كرده و آيتم خصوصيات را انتخاب كنيد، در زبانه آخر يعني Permission ليستي از نقش‌ها و كاربرهاي موجود در سيستم را مشاهده مي‌كنيد كه در جلوي نام هر يك از آن‌ها و در 8 ستون به ترتيب از چپ به راست امكان ساخت جدول، ديد، روتين، مقادير پيش‌فرض، قواعد، توابع، پشتيبان‌گيري از اطلاعات و پشتيبان‌گيري از لاگ‌ها وجود دارد كه در مواقع خاصي قابل اعطا به كاربران با نقش‌هاي مختلف مي‌باشد. به عنوان مثال اگر برنامه‌نويس قصد داشته باشد تا براي فراهم‌ساختن امكان تهيه يك گزارش پيچيده، به كاربري اجازه اجراي دستور CREATE VIEW را از داخل يكي از فرم‌هاي برنامه ويژوال بيسيك خود بدهد، بايد قبلاً مدير پايگاه را مطلع نموده تا وي ستون Create View را براي آن كاربر، فعال نمايد. همين عمل جهت ساخت جداول موقت براي گرفتن گزارش يا ساير عمليات‌ پيچيده هم وجود دارد و از طريق ستون Create Table قابل انجام است.
در اين صورت كاربر مي‌تواند با استفاده از دستوراتي كه منتهي به ساخت جدول مي‌شود مثل Create Table يا Select INTO جداول موقتي را توسط برنامه ويژوال بيسيك مورد استفاده خود ايجاد نموده و پس از پايان كار با استفاده از دستور DROP آن‌ها را حذف نمايد.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های 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 واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
03-30-2017, 03:15 AM
ارسال: #14
مفاهیم بنیادی در sql server
پيشرفت سريع علم كامپيوتر و كاربرد وسيعي كه اين تكنولوژي در كليه امور زندگي بشر دارد از يك سو و حجم زياد اطلاعات و نياز بشر به سرعت،دقت و انسجام اطلاعات از سوي ديگر ،موجب گرديد تا اينجا بانك هاي اطلاعاتي به عنوان يكي از موضوعات مهم و اساسي جامعه بشري مطرح شود. بانك اطلاعاتي با ساختار خاص خود،ذخيره ساختن اطلاعات را براحتي ممكن ساخته و كاربران مجاز نيز به سادگي به اطلاعات دسترسي مي يابند. سعي داريم شما را با مفهوم بانك اطلاعاتي،سيستم مديريت بانك اطلاعاتي و فوايد استفاده از اين سيستمها آشنا سازيم.

داده ( Data ) و اطلاعات (Information )
دو اصطلاح داده و اطلاعات كه بيشتر اوقات به جاي يكديگر برده مي شوند در سيستمهاي اطلاعاتي مفاهيم متفاوتي دارند. داده ها در اين سيستمهاي اطلاعاتي عبارتند از : كلمات و ارزشهاي واقعي كه از طريق مشاهده و تحقيق بدست مي آيند در حالي كه اطلاعات داده هاي پردازش شده مي باشند كه براي گيرنده قابل درك بوده و با دانستن آن شروع به تصميم گيري مي كند. به عبارت ديگر داده نمودي از وقايع، معلومات،رخدادها ،پديده ها و مفاهيم مي باشد در حاليكه اطلاعات تكوين و پردازش يا تفسير داده بوده و شامل خواص ارتباط دهندگي و انتقال دهندگي مي باشد.

موجوديت ( Entity )
موجوديت مصداق كلي هر پديده،فرد يا شي ء يا مفهومي است كه مي خواهيم در مورد آن اطلاعاتي داشته باشيم به عنوان مثال اگر در نظر داريم يك سيستم پايگاه داده براي يك دبيرستان پياده سازي كنيم مواردي چون دانش آموزان ، دبيران، دروس ،كلاسها و .... جزء موجوديت هاي سيستم بشمار مي روند.

صفت خاصه ( Attribute )
هر موجوديت از يكسري صفات تشكيل شده است كه داراي مقادير واقعي هستند و به عباراتي وجه تمايز يك موجوديت از موجوديت ديگر بشمار مي رود. به عنوان مثال در سيستم دانشگاه اگر موجوديت دانشجو را در نظر بگيريم مي توانيم صفات خاصه: نام ،نام خنوادگي،سن،سال تولد،رشته تحصيلي،سال ورود و ... را برگزينيم و يا براي موجوديت درس: نوع موجوديت: درس صفات خاصه: كد درس،نام درس، تعداد واحد ‎ايجاد سيستم خودكار ذخيره و بازيابي داده ها دو روش كلي براي ذخيره ساختن و بازيابي خودكار داده ها وجود دارد:
1-روش استفاده از سيستمهاي اطلاعاتي ساده يا روش غير بانك اطلاعاتي
2-روش استفاده از بانكهاي اطلاعاتي

روش غير بانك اطلاعاتي
در اين روش ،داده ها در فايلهاي جداگانه اي قرار مي گيرند و براي استفاده از داده هاي موجود در آن فايلها،سيستمهاي جداگانه اي طراحي مي شوند. به اين نوع سيستمها سيستم پردازش فايل ( File-System ) گفته مي شود. در اين سيستمها هر برنامه ي كاربردي به فايل اطلاعاتي مربوط به خود مراجعه مي كند.

فايل 1« برنامه كاربردي 1 «كاربر 1
فايل 2« برنامه كاربردي 2 «كاربر 2
فايل 3« برنامه كاربردي 3 «كاربر 3


در اين روش بسياري از داده هاي مورد نياز كاربر 1 در بين داده هاي در اختيار كاربر 2 و 3 وجود دارد و در نتيجه عدم تجمع داده ها و عدم وحدت ذخيره سازي اطلاعات مورد نياز كاربر 1 در فايل 1 با تكرار ذخيره سازي اطلاعات روبرو هستيم و اين به معني افزونگي داده است. از طرفي حفظ امنيت اين سيستم مشكل است در صورت ايجاد تغييراتي در فايل 1 در زمينه اطلاعات موجود در آن، برنامه كاربردي مربوط نيز بايد تغيير پيدا كند.

روش بانك اطلاعاتي
در اين روش كليه داده ها به صورت مجتمع يا بانك ذخيره شده ولي هر كاربر ديد خاص خود را نسبت به داده ها دارد. در اين صورت كاربران مختلف مي توانند بصورت مشترك با بانك كار كنند همچنين افزونگي داده ها به حداقل ممكن كاهش مي يابد. در اين روش نرم افزار مديريت بانك اطلاعاتي ( DBMS ) به عنوان واسطه بين برنامه هاي كاربردي و بانك اطلاعاتي ايفاي نقش مي كند لذا امنيت داده ها در اين روش بيشتر است.

« برنامه كاربردي 1 «برنامه كاربردي1
فايل« DBMS « برنامه كاربردي 2 «برنامه كاربردي2
«برنامه كاربردي 3 «برنامه كاربردي 3


تعريف بانك اطلاعاتي ( Date Base )
به صورت جامع مي توان گفت: « بانك اطلاعاتي يا پايگاه داده ها مجموعه اي سازمان يافته از اطلاعات و داده هاي مرتبط به هم است ” و در يك تعريف كاملتر بانك اطلاعاتي عبارت است از ” مجموعه اي از داده هاي ذخيره شده بصورت مجتمع و مبتني بر يك ساختار، با حداقل افزونگي، تحت كنترل متمركز كه استفاده از آن بصورت اشتراكي و همزمان نيز مسير مي باشد.»

•مجتمع و مبتني بر يك ساختار بدين معني است كه كل داده هاي عملياتي محيط مورد نظر در يك ساختار مشخص به صورت يكجا ذخيره شده باشند و لازمه هر تجمعي وجود يك ساختار است.
•منظور از عدم افزونگي در يك تعبير ساده به حداقل رساندن ذخيره داده هاي تكراري و بهينه سازي استفاده از محيط هاي ذخيره اطلاعات مي باشد.

سيستم مديريت بانك اطلاعات ( DBMS )
DBMS مهمترين جزء نرم افزاري در سيستم بانك اطلاعاتي است كه به عنوان رابط بين بانك اطلاعاتي و كاربر عمل مي نمايد، به طوريكه كليه فايلهاي بانك اطلاعاتي فقط در اختيار اين نرم افزار قدرتمند قرار گرفته و كليه دستيابي ها به بانك از طريق DBMS صورت مي پذيرد. آنچه در مورد يك سيستم مديريت بانك اطلاعاتي اتفاق مي افتد عبارت است از :
1-كاربر با استفاده از بعضي زير زبان داده ها مانند SQL ( كه به تفضيل در فصل هاي آتي به آن اشاره خواهد شد) در خواست يك دسترسي مي نمايد.
2-DBMS در خواست مورد نظر را دريافت وآن را تحليل مي كند.
3-DBMS بترتيب ديد كاربر از داده هاي ذخيره شده و حفظ امنيت داده در محيط بانك اطلاعاتي را بازرسي و مرور مي كند. (‌كنترل امنيت و جامعيت داده ها )
4-DBMS عملكردهاي لازم را براي داده هاي ذخيره شده اجرا مي كند.

فايل و داده ها« سيستم عامل « DBMS «برنامه هاي كاربران

محيط DBMS
اجزاء اصلي سيستم بانك اطلاعاتي عبارتند از : داده ها، سخت افزار، نرم افزار و كاربران كه در اين جا به تشريح آنها خواهيم پرداخت.

داده ها ( Data ) داده كه قبلا به آن شاره گرديد از مهمترين اجزاء DBMS مي باشد. مجتمع و اشتراكي بودن داده ها به عنوان مزاياي اصلي سيستم پايگاه داده ها در محيط هاي بزرگ بشمار مي رود.

سخت افزار ( Hardware )
سخت افزار مورد نياز DBMS معمولا عبارتند از:
1-سخت افزار ذخيره سازي داده: در عمليات ذخيره سازي اده ها در محيط هاي بانك اطلاعاتي از ديسكهاي سريع و با ظرفيت بالا استفاده مي شود.
2-سخت افزار پردازنده هاي مركزي: با پيشرفت فناوري انفورماتيك، سيستم هايي به بازار عرضه شده اند كه از نظر معماري پردازنده مركزي، حافظه اصلي و ساير قسمتها از پيكربندي ويژه اي جهت ذخيره و بازيابي اطلاعات برخوردارند و به لحاظ اين ويژگي ها كاربرد بيشتري در محيط هاي بانك اطلاعاتي خواهند داشت.
3-سخت افزار ارتباطي: مجموعه امكانات سخت افزاري كه براي برقراري ارتباط بين كامپيوترها و دستگاهها جانبي و همچنين مابين چندين كامپيوتر ( به صورت شبكه اي ) استفاده مي شوند را تحت عنوان سخت افزارهاي ارتباطي بانك هاي اطلاعاتي مي شناسند.

نرم افزار ( Software )
نرم افزار شامل خود DBMS و برنامه هاي كاربردي، سيستم عامل و نيز نرم افزارهاي شبكه اي است. براي استفاده DBMS در محيط شبكه عمدتا از برنامه هاي كاربردي نوشته شده به زبانهاي برنامه نويسي نسل سوم مانند C ، كوبول، پاسكال و .... و يا زبانهاي نسل چهارم مانند SQL استفاده مي شود. هدف نرم افزارهاي DBMS ارائه چهار ابزار اصلي است كه عبارتند از :
1-زبانهاي پرس و جو (Query Language )
2-گزارش ها ( Report )
3-فرم ها ( Forms )
4-تصاوير ( Graphics )

كاربران (Users )
كاربران يا كساني كه به نحوي با سيستم در ارتباط هستند به چهار دسته مهم تقسيم مي شوند:
1-مديران بانك اطلاعاتي يا DBA
2-طراحان بانك اطلاعاتي يا DBD
3-برنامه نويسان بانك اطلاعاتي يا DBP
4-كاربران نهايي يا ساتفاده كنندگان سيستم ( End Users )

اصول معماري سيستم هاي بانك اطلاعاتي
با توجه به گفته هاي بالا در مي يابيم كه سيستم بانك اطلاعاتي ،سيستمي چند سطحي است. اين سيستم بوسيله امكانات سيستم مديريت بانك اطلاعاتي ايجاد شده و در اختيار كاربران قرار مي گيرد. در نظر داشته باشيد كه اين سيستم چند سطحي داراي يك معماري خاص مي باشد كه بيانگر نحوه تعريف داده ها در سطوح مورد نظر است.

وظايف DBMS
وظايف سيستم مديريت بانك اطلاعاتي بستگي به نوع كاربران آن دارد اين وظايف در چارچوب واحدهاي نرم افزاري طراحي و پياده سازي مي شوند. هر چند وظايف DBMS در سيستم هاي مختلف تا حدودر متفاوت است، اما به طور كلي اين وظايف عبارتند از:
•تعريف داده ها
•تامين امكان دستكاري داده ها
•ايجاد ديكشنري داده ها
•كنترل امنيت و جامعيت داده ها
•ايجاد امكان بازيابي از بانك اطلاعاتي
•بهنگام سازي داده ها
•تامين امكان كنترل كارايي
•تامين تسهيلاتي براي كاربران به منطور توسعه سيستم

براي انجام اين وظايف مي بايست واحدهاي نرم افزاري مربوط در سيستم مديريت بانك اطلاعاتي وجود داشته باشد. هر كدام از اين واحدها ممكن است مركب از چند واحد كوچكتر باشند. توجه داشته باشيد كه هر سيستم نيازمند يك بخش كنترلي است. در سيستم مديريت بانك اطلاعاتي ، مجموعه واحدهايي كه وظايف كنترلي را بر عهده دارند اصطلاحا به سيستم كنترل بانك اطلاعاتي معروف مي باشند. به طور كلي واحدهاي زير در سيستم كنترل بانك اطلاعاتي وجود دارند:
•واحد نظارت بر اجراي برنامه كاربر
•واحد كامپايل كننده احكام و درخواستها
•واحد دستيابي به بانك فيزيكي
•واحد ثبت رويدادها و تغيراتي كه در بانك ايجاد مي شوند
زبان تعريف داده ها DDL
همانطور كه اشاره شد تعريف داده ها يكي از وظايف DBMS است. DDL از زبانهاي فرعي داده اي جهت تعريف داده ها است كه از آن جهت تعريف صفحات مشخصه و خصوصيات يك بانك استفاده مي شود. ساختار ركوردها، تعريف فيلدها، محل فايلها و شيوه ذخيره سازي داده ها در بانك به وسيله احكام DDL انجام مي پذيرد.

زبان پردازش و مديريت داده ها DML
تامين امكان دستكاري داده ها نيز از وظايف DBMS عنوان شد. زبان دستكاري ،پردازش و مديريت بانك اطلاعاتي به زباني گفته مي شود كه براي درج داده ها بروز رساني آنها و اجراي پرس و جو از يك بانك اطلاعاتي مورد استفاده قرار مي گيرد. اين زبانها اغلب داراي قابليت انجام محاسبات رياضي و آماري مي باشند كه به وسيله آنها عمليات گزارش گيري از بانك اطلاعاتي آسان تر خواهد شد.

ديكشنري داده ها
يكي ديگر از وظايف DBMS ، ايجاد ديكشنري يا فرهنگ داده است. ديكشنري داده ها يكي از امكاناتي است كه در محيط هاي بانك اطلاعاتي در اختيار اداره كنندگان بانك قرار مي گيرد. ديكشنري داده ها كه به آن راهنماي سيستم نيز مي گويند در واقع بانكي در مورد خود بانك و داده هاي ذخيره شده در آن است. بطور كلي اطلاعات و محتواي ديكشنري داده ها بشرح زير مي باشد:
• شرح ساختار و پيكر بندي فيزيكي بانك .
• تاريخ ايجاد داده ها .
• مكانسيم ورود داده ها به بانك .
• ارتباط بين برنامه هاي كاربردي و داده ها .
• مشخصات كاربران و چگونگي حق دستيابي آنها .

آشنايي با جداول و اجزاء تشكيل دهنده آنها در بانك هاي اطلاعاتي
جدول مهمترين ساختار داده اي در سيستم بانك هاي اطلاعاتي رابطه اي است (‌در ادامه اين فصل به تشريح سيستم هاي رابطه اي خواهيم پرداخت. ) جدول در سيستم رابطه اي تشكيل شده از چندين سطر و ستون مي باشد كه مقادير داده در هر سطر و ستون در طول زمان متغير خواهد بود. به طور كلي جداول ساختار بنيادين رابطه ها هستند. سطرهاي موجود در جداول را « ركورد» و ستونهاي آن را « فيلد» مي نامند.

ركورد
ركورد يك ساختار داده اي متشكل از مجموعه فيلدهاست كه هر يك از اين فيلدها نام و نوع خاص خود را دارند. برخلاف يك آرايه كه تمام عناصر آن نمايانگر انواع يكساني از اطلاعات هستند و دستيابي به آنها با يك شاخص (‌ايندكس )‌انجام مي شود، عناصر يك ركورد نمايانگر انواع مختلفي از اطلاعات مي باشد كه بوسيله نامشان مورد دستيابي قرار مي گيرند.

فيلد
فيلد محلي است در يك ركورد كه نوع خاصي از داده ها در آن ذخيره مي شود. به عنوان مثال چنانچه قرار باشد براي ذخيره سازي اطلاعات كارمندان يك سازمان از جداول استفاده شود،ركورد اين جداول ممكن است فيلدهايي براي ذخيره سازي نام خانوادگي، نام، نشاني ،مدرك تحصيل و .... داشته باشد. فيلدها بوسيله بيشينه طول و نوع داده هايشان (‌كاراكتري ، عددي، تاريخ و ... )‌ از يكديگر تميز داده مي شوند. توجه داشته باشيد كه امكان تعريف اين مشخصات معمولا در زبان تعريف داده ها (DDL ) قرار دارد.

آشنايي با روشهاي ارتباط و مدلهاي بانك هاي اطلاعاتي
سه مدل داده اي براي سيستم هاي بانك اطلاعاتي وجود دارد. لازمه هر مدل داده اي وجود يك ساختار داده اي است كه علاوه بر مدل داده عناصر ديگري را نيز در بردارد. عناصر مدل داده اي عبارتند از ساختارداده اي ، عملگرهاي عمل كننده روي ساختار و قواعد عام براي تامين جامعيت مي باشند. در ادامه اين بحث قصد داريم مدلهاي موجود را مورد مطالعه قرار دهيم. از آنجا كه بانك اطلاعاتي اوراكل مبتني بر مدل رابطه اي است، لذا بيشتر بحث خود را بر مدل رابطه اي معطوف مي داريم .

مدل سلسله مراتبي
اين ساختار ،قديمي ترين مدل براي طراحي بانك هاي اطلاعاتي است، در اين ساختار داده ها و ارتباط بين آنها به كمك يك درختواره نمايش داده مي شوند. در رختواره گرافي است داراي يك ريشه و N گره كه در حالت بسته و غير چرخشي قرار دارد. منظور از حالت بسته اين است كه بين هر دو گره پيوندي وجود دارد كه يك مسير منطقي را از گرهي به گره ديگر تامين مي كند و هميشه از سطح بالاتر به سطح پايين تر است . غير چرخشي نيز يعني مسيري از گره سطح پايين تر به گره سطح بالاتر وجود ندارد. هر گره از هر سطح مي تواند تعدادي گره وابسته يا فرزند داشته باشد ولي هر گره فرزند فقط يك گره پدر دارد. هر گره از رختواره مي تواند ركوردي حاوي يك نوع موجوديت باشد. از آنجا كه ريشه سلسله مراتب، نقطه ورود به ساختار بوده و مسير منطقي از سمت بالاتر به سمت پايين تر است، براي عمليات بازيابي ، علاوه بر دستيابي به ريشه، امكان دستيابي به فرزند نيز بايد وجود داشته باشد. در بحث ذخيره سازي نيز اين سيستم داراي اشكال است.

مدل شبكه اي
در اين ساختار موجوديت ها به كمك انواع ركوردها،و ارتباطات به كمك پيوندهاي بين ركوردها نمايش داده مي شوند. چنانچه خواسته باشيم اين ساختار را با مفاهيم موجود در رختواره توضيح دهيم، بايد گفت كه در اين ساختار، هر گره فرزند مي تواند بيش از يك گره پدر داشته باشد. بنابراين به كمك اين ساختار مي توان ارتباطات يك به چند را نمايش داد. مدل شبكه اي پيچيده تر از مدل سلسله مراتبي است و به همان نسبت عمليات ذخيره و بازيابي پيچيده تري دارد.

مدل رابطه اي
پايگاه داده رابطه اي از ديد كاربران يك مجموعه از جدولهايي است كه به درستي قابل درك مي باشند. چهار مفهوم اساسي در اين مدل به شرح زير وجود دارد:
1- جدول 2- ستونها 3- رديفها 4- فيلدها
اين مدل داده ها را در روابط سازماندهي نموده و از قوانين رياضي تبعيت مي كند. صفات خاصه يك موجوديت در يك سيستم به عنوان يك رابطه در اين مدل مطرح مي شود. به عنوان مثال در سيستم دانشگاه مي توانيم رابطه دانشجو را در نظر بگيريم :
( شماره شناسنامه، سال ورود، رشته، نام ، شماره دانشجويي ) دانشجو
صفت خاصه نام رابطه

اين رابطه بر طبق مدل رابطه اي بصورت زير نمايش داده مي شود:
شماره شناسايي سال ورود رشته نام
1012 1379 كامپيوتر علي 245
2578 1380 رياضي حسين 265
3920 1379 آمار رضا 327
17 1381 كامپيوتر بهرام 493

هر ستون در مدل رابطه اي همچنان كه در بالا مشاهده مي كنيد نشان دهنده يك صفت خاصه ( فيلد)‌ از يك نوع موجوديت ( دراين مثال دانشجو)‌ و هر سطر نمايانگر يك نمونه از يك موجوديت (ركورد)‌ مي باشد.

خواص ارتباطات رابطه اي
يك جدول يا رابطه شامل خواص زير است:
• رديفهاي تكراري در آن وجود ندارد.
• ترتيب رديفها مهم نيست.
• ترتيب ستونها مهم نيست.
• مقادير اتميك (Atomic ) مي باشند ( يا به عبارتي همه مقادير صفات غير قابل تجزيه هستند.)

كليد در مدل رابطه اي

كليد در مدل رابطه اي صفت خاصه يا نام ستوني است كه براي هر كدام از سطرهاي مقدار منحصر بفردي دارد به عنوان مثال در رابطه دانشجو شماره دانشجويي مي تواند يك كليد باشد زيرا هر دانشجو شماره دانشجويي مخصوص به خود را دارد اما نام را نمي توان يك كليد در نظر گرفت . كليد مي تواند تركيبي از صفات باشد به عنوان مثال در رابطه دانشجو مجموعه نام و شماره شناسنامه نيز مي توانند به عنوان كليد در نظر گرفته شوند. كليد كانديد: از مجموعه كليدهايي كه مي توانيم براي يك رابطه در نظر بگيريم آنهايي كه در دو ويژگي زير صدق كنند به عنوان كليد كانديد در رابطه مذكور مطرح مي شوند.
1- منحصر به فرد بودن: مقدار اين صفت براي هر سطر منحصر به فرد است.
2- خاصيت غير قابل كاهش بودن: هيچ زير مجموعه مناسبي از صفات تشكيل دهنده كليد. داراي خاصيت منحصر به فرد بودن نباشد.
به عنوان مثال اگر مجموعه دو صفت شماره دانشجويي و نام را به عنوان كليد در نظر بگيريم شرط اول در مورد اين كليد صادق است ولي شرط دوم برقرار نيست زيرا شماره دانشجويي به عنوان زير مجموعه اي از دو صفت شماره دانشجويي و نام داراي خاصيت منحصر به فرد بودن است. پس اين مجموعه كليد كانديد نيست. اما كليد اصلي، كليد كانديدي است كه توسط طراح بانك اطلاعاتي انتخاب و معرفي مي شود يا به عبارتي طراح بانك،يكي از كليدهاي كانديد را به عنوان كليد اصلي بر ميگزيند در تعيين كليد اصلي از بين كليدهاي كانديد بايد دو ضابطه زير را در نظر گرفت:
1- در نظر گرفتن اهميت كليد اصلي نسبت به ساير كليدهاي كانديد كه در پاسخگويي به نيازهاي متنوع كاربران از اهميت بيشتري برخوردار است.
2- كوتاهتر بودن طول كليد كانديد از نظر طول رشته بايتي.

سيستم بانك اطلاعاي رابطه اي
سيستم مديريت بانك اطلاعاتي رابطه اي داراي شرايط زير است:
1- بانك اطلاعاتي مبتني بر رابطه ها ( بطوريكه كاربر بانك را بصورت مجموعه اي از جداول ببينيد. جداولي كه دو سطر تكراري در آن وجود ندارد. ترتيب رديفها و ستونها در آن مهم نيست و ستونها قابل تجزيه نيستند.)
2- حداقل سه عمل زير روي جداول آن قابل انجام باشديا به عبارتي داراي عملگرهايي جهت انجام سه مورد زير بر روي جداول باشد.
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 واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
03-30-2017, 07:25 AM
ارسال: #15
پایگاه داده توزیع شده
تعريف پايگاه داده هاي توزيع شده:
مجموعه اي از داده هاي ذخيره شده ( با ويژگي هاي بر شمرده در تعريف پايگاه داده ها)
كه منطقا به اين سيستم تعلق دارند ، ولي در مانه هاي ( گره ها:كامپيوتر) مختلف يك يا بيش از يك شبكه توزيع شده اند مي توان گفت كه در اين معماري تعدادي پايگاه داده هاي ذخيره شده روي كامپيوترهاي مختلف داريم
كه از نظر كاربران، پايگاه واحدي هستند به بيان ديگر مجموعه اي است از چند پايگاه داده منطقا به مرتبط و توزيع شده روي يك شبكه كامپيوتري ، توجه داشته باشيم كه در اين معماري در سطح طراحي بر اساس يك استراتژي توزيع و يك طرح تخصيص مشخص داده هايش را در چند مانه توزيع مي كند . مانه ها با يكد يگر چنان همكاري دارند كه هر كاربر مي تواند به داده هاي مورد نيازش در هر مانه دستيابي داشته باشد به گونه اي كه انگار داده هايش در مانه خودش ذخيره شده باشند. در اين معماري هر مانه خود يك سيستم پايگاه داده هاست يعني : پايگاه داده ها ، سيستم مديريت پايگاه داده ها و مدير انتقال داده ها دارد.
اصطلاحاً مي گوئيم تعدادي DBMS محلي داريم و براي ايجاد هماهنگي بين اين سيستم محلي ، عضو نرم افزاري خاصي كه نوعي گسترش DBMS است لازم مي باشد . در واقع هر مانه يك DDBMS دارد يعني يك DBMS با توانش ايجاد و مديريت پايگاه داده هاي توزيع شده . بنابراين نماي كلي هر مانه به صورتي است كه در شكل ديده مي شود.
مانه ها از طريق امكانات شبكه اي ( محلي – گسترده – متحرك ) به هم مرتبط اند و هر مانه اجزا و عناصر سخت افزاري و نرم افزاري خود را دارد اين اجزا و عناصر مي توانند همگن و يا ناهمگن باشند مثالي از يك طرح كلي در شكل ديده مي شود
معماري توزيع شده با سه مانه
با توجه به تعريف اين نوع معماري و طرح كلي آن در شكل ويژگيهاي اين سيستم را مي توان برشمرد.
• مجموعه اي است از داده هاي منطقا مرتبط و اشتراكي
• داده به بخش هايي تقسيم و در مانه توزيع شده اند
• بعضي بخش ها ممكن است به طور تكراري ( در چند نسخه ) در مانه ها ذخيره شده باشند
• مانه ها از طريق يك شبكه به هم مرتبط اند
• داده هاي كنترل شده در هر مانه تحت كنترل يك DBMS است.
• DBMS در هر مانه مي تواند برنامه هاي كاربردي محلي را به طور اتوماتيك اجرا كند
• هر DBMS حداقل در اجراي يك برنامه كاربردي سرتاسري مشاركت دارد.
شبكه خود مي تواند توپولوژي مختلفي داشته باشد.
صرف وجود يك شبكه در يك محيط به معناي وجود پايگاه توزيع شده درآن محيط نيست مثالي از طرح يك معماري كه پايگاه داده ي توزيع شده نيست مثلاً مي تواند معماري يك سيستم پايگاه : مشتري – خدمتگزار باشد و خدمات ديگري نيز ارائه كند
پيكربندي سخت افزاري
گفتيم كه اجزاء تشكيل دهنده اين معماري مي توانند ناهمگن باشند به ويژه از نظر سخت افزاري پيكر بندي هاي مثل:

قواعد :
اصل مهم در معماري سيستم پايگاه داده توزيع شده اين است كه سيستم بايد چنان عمل كند كه كاربران دقيقاً مثل محيط پايگاه داده هاي متمركز معمولي از آن استفاده كنند ( و اين ويژگي يك از ويژگي هاي اين معماري با معماري مشتري – خدمتگزار است) براي رعايت اين اصل مهم در هر سيستم پايگاه داده توزيع شده قواعدي بايد رعايت شوند كه در واقع اهداف اين سيستم مي باشند.
1. خود مختاري محلي ( داخلي )
2. تداوم عمليات
3. ناوابستگي مانه ها به مانه اصلي
4. ناوابستگي برنامه به مكان ذخيره سازي داده ها
5. ناوابستگي برنامه به طرز جايدهي داده ها در مانه ها
6. پردازش پرسش ها به گونه اي توزيع شده
7. نا وابستگي برنامه ها به سخت افزار
8. نا وابستگي برنامه به سيستم عامل
9. نا وابستگي برنامه ها به سيستم مديريت پايگاه داده ها
10. ناوابستگي برنامه ها به شبكه
و قواعدي ديگر گاهي بعضي از قواعد نا وابستگي را با اصطلاح " قواعد نامرئي بودن" مطرح مي كنند: نامرئي بودن نرم افزار، نامرئي بودن مكان داده ها، نامرئي بودن سخت افزار، نامرئي بودن شبكه و... ( ممكن است از كلمه شفافيت نيز به جاي نامرئي بودن استفاده شود.
ميزان واقعي بودن يك سيستم پايگاه داده توزيع شده بستگي به ميزان رعايت اين قواعد با ميزان ذيل با اين اهداف دارد.
اين معـماري را گاهي معماري توزيع شده با مانه هاي توزيع شده با مانه هاي همطراز مي گويند.

مزايا:
برخي از اين مزايا عبارتند از:
1. سازگاري و هماهنگي با ماهيت سازمانهاي نوين
2. كارآيي بيشتر در پردازش داده ها به ويژه در پايگاه داده هاي بزرگ
3. دستيابي بهتر به داده ها
4. اشتراك داده ها
5. افزايش پردازش موازي
6. كاهش هزينه ارتباطات
7. تسهيل گسترش سيستم
8. استفاده از پايگاه داده هاي از قبل موجود
معايب :
برخي از معايب اين معماري عبارتند از :
1. پيچيدگي طراحي سيستم
2. پيچيدگي پياده سازي
3. كاهش كارايي در برخي موارد
4. هزينه بيشتر
5. مصرف حافظه بيشتر
طرح هاي رايج تر در عمل
تا اين جا گونه هايي از معماري سيستم پايگاهي را ديديم اما در عمل بر اساس همين معماري ها براي ايجاد طرح هاي متفاوتي وجود دارد از اين طرح ها تنها ، يكي معماري پايگاه توزيع شده به معناي واقهي است برخي از اين طرح ها عبارتند ازمعماري با پردازش موازي
اين معماري با ساخت و گسترش ماشين هاي موازي ، براي ايجاد پايگاه داده هاي خيلي بزرگ ( از حدود 1012 بايت بيشتر) مورد توجه قرار گرفت.
گونه گسترش يافته معماري توزيع شده است و بردي كارايي و تامين كارايي و دستيابي پذيري بالا و گسترش پذيري سريع طراحي مي شود در اين گونه سيستم ها معمولا تعداد زيادي تراكنش در ثانيه ( حدود چند هزار) و بطور موازي اجرا مي شوند و بر اساس يكي از دو طرح زير مي باشند
• چند پردازنده قوي ( دو يا چهار درحال حاضر و گاه بيشتر)
• تعدادي پردازنده كوچك ( گاهي چند صد تا و يا بيشتر)
در طرح دوم ، توازي عمليات بيشتري امكان پذير مي شود
در ماشين با پردازش موازي دو هدف اساسي وجود دارد
افزايش سرعت (كارايي) : يعني انجام يك عمل در زمان كمترو...
افزايش مقياس كار( گسترش پذيري) يعني انجام كارهاي بزرگتر در زمان كمتر

طرح كلي معماري:
به طور كل براي ايجاد پايگاه داده ها با معماري پردازش موازي ، چهار مدل وجود دارد
1. معماري با حافظه مشترك
2. معماري با ديسك مشترك
3. معماري بي اجزا مشترك
4. معماري سلسله مراتبي
براي ايجاد پايگاه داده هاي موازي ، علاوه بر استفاده از يكي از اين معماري ها ، روشهايي نيز براي جايدهي داده ها روي ديسك ها و يا در حافظه هاي نهان و نيز بهينه سازي پرسش هاي كاربران به كار گرفته مي شود بنابراين صرف وجود معماري موازي براي ايجاد پايگاه داده هاي موازي كافي نيست.

1- معماري با حافظه مشترك
در اين طرح پردازنده ها به حافظه مشترك دسترسي دارندمزيت اين طرح اين است كه ارتباط بين پردازنده ها به طور كار انجام مي شود زيرا پيام هاي بين پردازنده ها با نوشتن در حافظه مبادله مي شود كه زمان آن كمتر از ميكرو ثانيه است داده هاي ذخيره شده در حافظه در اختيار همه ي پردازنده ها قرار دارند
عيب اين معماري در اين است كه نمي توان بيش از 32 يا 64 پردازنده داشت زيرا احتمال بروز تنگنا در باسهاي حافظه اي يا شبكه ارتباطي افزايش مي يابد البته اگر در هر پردازنده با فرمهاي نهان با اندازه بزرگ وجود داشته باشد دفعات مراجعه به حافظه اصلي كاهش مي يابد هر چند نمي توان همه داده ها را در اين بافرها جاي داد طرح كلي اين معماري در شكل نشان داده شده است .
( در تمام شكل ها P به جاي پردازنده و M به جاي حافظه است )
2- معماري با ديسك هاي مشترك
در اين طرح تمام پردازنده ها به تمام ديسك ها از طريق شبكه ارتباطي دستيابي دارند هر پردازنده حافظه اختصاصي خود را دارد.
مزيت :
1. عدم بروز تنگنا در باس هاي حافظه
2. تسهيل تحمل خرابي: زيرا در صورت خراب شدن يك پردازنده يا حافظه، پردازنده ديگر مي تواند كار را ادامه دهد. مي توان از سيستم RAID هم استفاده كرد
عيب: دشواري در گسترش سيستم، زيرا با افزايش ديسك ها و پردازنده ها، در ارتباط بين اجزا تنگنا ايجاد مي شود و سرعت ارتباط بين آنها كاهش مي يابد. طرح كلي در شكل

3- معماري بي اجزا مشترك
دراين طرح هر ماسين پردازنده ، ديسك و حافظه خود را دارد يك شبكه ارتباطي با سرعت بالا اين ماشين ها را به هم مرتبط مي كند هرماشين نوعي خدمتگزار پايگاهي است
معماري بي اجزاء مشترك
4- معماري سلسله مراتبي
دراين طرح ويژگي هاي سه طرح قبل با هم وجود دارد در بالاترين سطح سيستم تعدادي گره با شبكه ارتباطي به هم مرتبط اند و اجزا مشترك ندارند پس در اين سطح معماري بي اشتراكي نداريم هر گره خود مي تواند تعداد كمي پردازنده با حافظه مشترك داشته باشد يا يك سيستم با ديسك هاي مشترك باشد بنابراين يك سلسله مراتب از معماري هاي پيش گفته ايجاد مي شود ايجاد مي شود
معماري سلسله مراتبي
معماري چند پايگاهي
اين معماري نوعي معماري توزيع شده است كه درآن ، مانه ها خود مختاري كامل دارند در سالهاي اخير گرايش زيادي به اين معماري ايجاد شده است در اين معماري معمولاً چند سيستم با معماري توزيع شده ( و در حالت خاص ، چند سيستم با معماري متمركز) از قبل وجود دارد و هر سيستم روي عمليات محلي خود كنترل كامل دارد. اما براي آنكه كاربران بتوانند نيازهاي اطلاعاتي خود را تامين كنند بي آنكه مستقيما با اجزاء معماري مرتبط باشند و در واقع بتوانند از يك سيستم چند پايگاهي بهره برداري كنند به يك لايه نرم افزاري خاصي نياز است اين لايه نرم افزاري امكان مي دهد تا در هر سيستم ، مدير پايگاه داده ها روي داده هاي پايگاه خود كنترل كامل داشته باشد و نيازي به كنترل متمركز نباشند و در عين حال خدمات لازم به كاربران داده شود.
اين لايه نرم افزاري در سطح بالاتر از DBMS ها و احياناً سيستم هاي فايلينگ موجود در پيكربندي سيستم چند پايگاهي قرار دارد و از ديد كاربران مخفي است اين لايه چنان عمل مي كند كه كاربران سيستم هاي مختلف مجموعه پايگاه ها را به صورت يك پايگاه واحد مي بينند.
واضح است كه در سيستم چند پايگاهي ، يك شماي اداركي جامع ( سراسري ) و در هريك ازDBMS ها ، يك شماي اداركي محلي وجود دارد.
اين معماري به دو صورت فدرال و نافدرال طراحي و پياده سازي مي شود. در چنين سيستمي طبعاً به كاتالوگي جامع نيازمنديم اين معماري علاوه بر مشكلات تكنيكي موجود در يك سيستم توزيع شده مشكلات خاص خود را نيز دارد در اينجا يك معماري ممكن براي سيستم چند پايگاهي فدرال ارائخ مي كنيم.
سيستم پايگاههاي همراه
با رشد سريع تكنولوژي ارتباطات اينك ديگر انسان مي تواند از هر جا به هر داده ذخيره شده در هرجاي ديگر دستيابي داشته باشد هرچند هنوز مشكلاتي در اين"داده فرستي داده گيري وجود دارد اما تا آن جا كه به حيطه دانش و تكنولوژي پايگاه داده ها مربوط مي شود نوع نويني از سيستم پايگاه داده ها پديد آمده و در حال گسترش يافتن است سيستم پايگاه داده هاي همراه ( جا به جا شونده ) ما در قسمت هاي قبل انواع معماري پايگاه داده را ديديم ولي معماري توزيع نشده هنوز مشكلاتي از جمله " عملي نبودن در همه جا" ايمني سيستم و داده ها ، هزينه و ... را دارد سيستم پايگاه داده هاي همراه راه حلي است براي برخي از اين دشواريها بويژه در كاربردهاي شخصي.

معماري پايگاههاي همراه:
در اين معماري يك ( يا بيش از يك ) كامپيوتر متوسط يا بزرگ نقش خدمتگزار پايگاه داده ها را ايفا مي كند اين كامپيوتر را خدمتگزار ميزبان مي ناميم هر كاربر كامپيوتر كوچك همراه خود را دارد ( با خود عمل مي كند ،نوعي دفتر كار همراه) در اين كامپيوتر داده هاي عملياتي و برنامه هاي كاربردي مورد نيازش ذخيره شده اند پايگاه داده هاي ذخيره شده در كامپيوتر خدمتگزار ميزبان حاوي داده هاي پوياست بدين ترتيب كاربر مي تواند از هر جا با زير سيستم خدمتگزار پايگاهي مرتبط بوده و پردازشهاي مورد نظرش را انجام دهد
در شكل طراحي سيستم را مي بينيم
در اين سيستم لزومي ندارد كه پايگاههاي همراه و پايگاههاي ميزبان در يك شبكه باشند ارتباط ميان همراه و ميزبان در بازه هاي زماني نامنظم و معمولاً كوتاه بر پا مي گردد بين كامپيوترهاي همراه مگر درشرايط خاص ، چندان ارتباط برقرار نمي گردد.
دو جنبه اساسي اين سيستم كه بايد در طراحي و پياده سازي به آن توجه شود عبارت از مديريت كارآيي پايگاههاي همراه و ايجاد ارتباط پويا و سريع بين پايگاههاي همراه و پايگاه ميزبان

کد:
خلص ارزش فعلي       سود حسابداري ساليانه     جريان نقدي      نيروي انساني     هزينه اوليه     پروژه
      100                            40                          45                   3              210                1    
     190                             70                          75                   5              340               2
      80                              33                          35                   2               150              3
      30                               18                        10                   1                60                4
     220                            120                    150                   8                540              5
     150                            150                    80                      3                 350              6

      MAX    100 MIN    100MIN    حداكثر 12       حداكثر 1000


پروژهاي 3 و 4 را نمي توان به هم برگزيد و پروژه 6 وقتي انتخاب مي شود كه 1 انتخاب شده باشد
مساله را فرموله نمائيد :
کد:
MAX =100X1+ …………+ 150X6

      < 1000 210X1+ ………….+ 360X6              
          3X1+…………….+ 3X6 <12                                                      
S.T
45X1 + ………..+ 100X6 >100                                            

40X1+…………+ 80X6 >100                                                
    
X3+X7<1                                                                                            

X6<X1
مساله فروشنده دوره گرد محوريت ها زيادند


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های 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 واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


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