فرمت فایل : word(قابل ویرایش)
تعداد صفحات:18
فهرست مطالب :
شرح پروژه
Tables
Forms
برنامه تحت ASP.NET
شرح پروژه :
به جهت امنیت سیستمهای کامپیوتری لازم است که برخی محدودیتها برروی سیستم قرار
داده شود تا دسترسی کاربران به سیستم را کنترل کند . بدین منظور طرحی با نام برنامه
Useraccess مطرح شده است . این برنامه همان طور که از اسم آن پیدا است میزان
دسترسی کاربران سیستم را تعیین می کند .بدین منظور نرم افزاری تولید می شود تا اینکه
بتواند بر روی برناه اصلی هر نوع سیستمی قرار گرفته ودرزمان اولین باراجرای برنامه
مدیر سیستم بتواند worker ها، نقشها ، منوی اصلی برنامه و ... را تعریف کند .همچنین
او باید نقش هر worker در سیستم را تعریف کرده و با توجه به آن حق دسترسی برای
آن worker تعریف کند . بعد از اتمام کار با توجه به توانایی های نرم افزار و سیستم
زمان آن است که سیستم از آن اطلاعات استفاده کند. سیستم با توجه به اطلاعات وارد شده
به ساخت منوی برنامه می پردازد و پس از آن با توجه به حق دسترسی های تعریف شده
سیستم پس از شناسایی کاربر منوهایی که قرار است در اختیار او نباشد راغیرفعال خواهد
کرد .بدین صورت عملکرد سیستم کنترل شده خواهد بود .
درابتدای کار باید گفت که این نرم افزار برای ذخیره سازی اطلاعات به یک پایگاه داده
متصل می شود که در زیر به شرح کامل آن می پردازیم :
پایگاه داده مابا نام useraccess دارای5 جدول کلی برای ذخیره سازی اطلاعات است :
Tables
1 ) Login
این جدول به جهت امنیت نرم افزار ساخته شده که حاوی اطلاعات مدیر اصلی
پروژه است .این جدول دارای دو ستون است ، که شامل Username ، ورمز
مدیر اصلی است . شکل کلی جدول به شکل زیر است :
این جدول تنها جدولی است که اطلاعات آن توسط خود برنامه نویس از ابتدا پر
می شود و کاربر به آن دسترسی ندارد .
فرمت فایل : word(قابل ویرایش)
تعداد صفحات:26
فهرست مطالب:
نمودار ERD:
مقدمه
ایجاد پایگاه داده TEACHING
مشخصات جداول:
ایجاد جداول
متغیرهای
ایجاد فرم ها
فرم مشخصات استاد
فرم لیست حضور غیاب
فرم لیست افراد معرفی شده
فرم دوره
فرم کلاس
فرم مشخصات امتحان
فهرست منابع
مقدمه:
در موسسه آموزشی فعالیت های زیادی صورت می گیرد ، درابتدا یک فرد به موسسه مراجعه می کند ، و درخواست ثبت نام می گند .پس از پرکردن فرم ثبت نام که شامل مشخصات کامل آن فرد می باشد ، این فرم در مکانی ذخیره می شود و ساعت ، تاریخ شروع کلاس و روز کلاس توسط مسئولین موسسه به شخص مراجعه کننده ( دانشجو )اعلام می شود و پس از تایید او نام این فرد در لیست افرادی که در دوره شرکت می کنند نوشته شده و یک کپی نیز از این لیست برای مرکزی که قرار است در آن مرکز از افراد امتحان گرفته شود فرستاده می شود .
در طول مدت دوره هر جلسه حضور و غیاب افراد ثبت می شود و در پایان هر دوره افرادی که در کل جلسات شرکت کرده اند به مرکز برای دادن امتحان معرفی می شوند .
از طرف دیگر در زمان مشخص روز ، ساعت و تاریخ امتحان به اطلاع افراد رسانده می شوند . بعد از اینکه امتحان افراد به پایان رسید نمره هر فرد به موسسه فرستاده می شود و در مکانی ذخیره و بایگانی می شود .
با توجه به مطا لب فوق تا حدودی با فعالیت های یک موسسه آشنا شده اید و مشاهده کردید که در این گونه موسسات اطلاعات فراوانی نگهداری می شود .تصور کنید زمانی که نیاز است مشخصات فردی را مثلا شماره تلفن یک فرد را تغییر دهید باید کل اطلاعات افراد را بررسی کنید و شخص مورد نظر را پیدا کنید تا توانید تغییرات را انجام دهید .
بنا براین نیاز به برنامه کارآمدی داریم که در کمترین زمان اطلاعا ت را جستجو کند و یا حجم زیادی از اطلاعا ت را در مکان کوچکتر با حداقل تکرار در اطلاعات ذخیره کند .
برای ایجاد یک برنامه که بتواند کلیه اطلاعا ت موسسه را ذخیره کند نیاز به یک پایگاه داه است که توانایی مدیریت و نگهداری اطلاعات را داشته باشد .
و از طرف دیگر برای اینکه افرادی که با این برنامه سروکار دارند ممکن است با برنامه SQL آشنای کامل نداشته باشند و یا تایپ کردن هر کد و دستوربرای آنها کمی مشکل با شد با استفاده از برنامه فرم های را طراحی می کنیم که برای همه کارکردن با این برنامه راحت وآسان با شد و همه بتوانند با این برنامه کار کنند .
فرمت فایل : word(قابل ویرایش)
تعداد صفحات:40
فهرست مطالب :
مقدمه
مدلهای هزینه حافظه اصلی
(Office-By-Example (OBE
Smallbase
ساختارهای شاخص در حافظه اصلی
ساختار T-Tree
الگوریتم جستجو
الگوریتم درج
الگوریتم حذف
کنترل همزمانی( Concurrency Control)
Commit Processing
روشهای دستیابی(Access Methods)
نمایش داده ها (Data Representation )
پردازش پرس و جو (Query Processing)
Recovery
خلاصه ای از تکنیک های Recovery
Checkpointing
نتیجه گیری
منابع
مقدمه:
در اواسط دهه 1980، با نزول قیمت DRAM، این ایده مطرح شد که کامپیوترهای آتی با داشتن حافظه اصلی با ظرفیت بالا، می توانند بسیاری از پایگاه داده ها را درحافظه اصلی داشته باشند. در این شرایط می توان همه I/O ها (که بسیار هزینه بر می باشند) را از پردازش DBMS حذف نمود. بنابراین معماری DBMS دستخوش تغییرات جدی می شود و در یک MAIN MEMORY DBMS(MMDBMS)، مدیریت I/O دیگر نقشی نخواهد داشت.
نکته مهم در یک MMDB، چگونگی انجام تراکنشها و recovery بصورت کارا است. برخی از الگوریتمهای پیشنهادی براساس این فرض عمل می کنند که قسمت کوچکی از حافظه اصلی بصورت ماندگار وجود دارد که اطلاعاتش توسط باطری در صورت قطع برق از بین نخواهد رفت. این قسمت از حافظه اصلی برای نگهداری redo log ها استفاده می شود.
تعداد دیگری از الگوریتمهای پیشنهادی پیش فرض حافظه ماندگار را ندارند و همچنان از عملیات I/O برای نوشتن اطلاعات تراکنش در حافظه ماندگار استفاده می کنند. بنابراین در این الگوریتمها عملیات I/O بطور کامل حذف نمی شود، بلکه تعدادشان بسیار کمتر می شود زیرا I/Oمربوط به نوشتن اطلاعات صفحات buffer ها، حذف خواهد شد.
در یک MMDBMS، ساختارداده های ساده مانند T-Tree و همچنین bucket-chained hash جایگزین ساختارداده هایی چون B-Tree و linear hash در DBMS های مبتنی بر دیسک می شوند. بنابراین سرعت اجرای پرس و جو(پرس و جو) و بهنگام سازی بسیار افزایش می یابد و هزینه index lookup و نگهداری ،فقط مربوط به پردازنده و دسترسی به حافظه اصلی خواهد شد.
یکی از مشکلات اصلی در MMDBMS ها بهینه کردن درخواستهاست. عدم وجود I/O به عنوان فاکتور اصلی در هزینه ها به معنای پیچیدگی بیشتر مدل کردن هزینه در یک MMDBMS است زیرا در اینجا یکسری فاکتورهای فازی از قبیل هزینه اجرای پردازنده ، باید در نظر گرفته شوند. در این حالت باید با استفاده از تعامل روش coding، عوامل سخت افزاری مانند پردازنده و معماری حافظه و پارامترهای پرس و جو، به یک مدل قابل اطمینان از هزینه اجرا در حافظه اصلی رسید.
در دهه 1990، MMDBMS ها با افزایش سایز دیسکها و سایز مسائل همراه با افزایش ظرفیت DRAM ها، به اوج محبوبیت خود رسیدند. MMDBMS ها اغلب برای برنامه هایی که به پایگاه داده Real Time نیاز دارند (مانند سیستمهای embedded سوئیجهای تلفن) ، استفاده می شود. از آنجایط که سایز حافظه اصلی در کامپیوترها روز به روز در حال افزایش است، این امید وجود دارد که برای بسیاری از پایگاه داده هایی که امروزه امکان قرارگفتن آنها بصورت کامل در حافظه اصلی وجود ندارد، این شرایط مهیا شود.
مدلهای هزینه حافظه اصلی
متاسفانه تا کنون تلاشهای اندکی جهت مدل کردن هزینه کارایی MMDBMSها صورت گرفته است. تحقیقات اولیه روی طراحی ماشینهای پایگاه داده ها، بیشتر در زمینه وابستگیهای میان الگوریتمها و دسترسی حافظه صورت می گرفت.در صورتیکه امروزه به دلیل محدود شدن استفاده از MMDBMS ها به کاربرد در پایگاه داده های Real Time(به صورت پرس وجوهای ساده، مانند یک hash lookup در یک جدول)، اینگونه تحقیقات از اهمیت کمتری برخوردارند.
در تحقیقات اخیر در زمینه MMDBMS ها دو نمونه تحقیقاتی Office-By-Example (OBE) مربوط به شرکت IBM و Smallbase مربوط به شرکت HP مسائل ارزشمندی را درمورد بهینه سازی پرس وجو ها و مدلسازی هزینه حافظه اصلی مطرح کرده اند که در ادامه به بررسی این دو نمونه می پردازیم.
فرمت فایل : word(قابل ویرایش)
تعداد صفحات:43
فهرست مطالب:
مقدمه :
نیاز به امنیت
اصول امنیت SQL سرور
فرایند بررسی اعتبار
سیستم شناسایی ویندوز
سیستم شناساییServer SQL
برقراری ارتباط با سرویس دهنده و کاربران بانک اطلاعاتی
ساختن Login
مدیریت Login ها
امنیت در سطح پایگاه داده
کاربران پایگاه داده
معرفی و مقدمه
1- برنامه های کاربردی Web SQL njection,
1.1 سابقه
1.2 به رمز در آوردن کاراکترها
2- آزمون آسیب پذیری
2.1 آزمون جامع
2.2 فرایند آزمون
2.3 ارزیابی نتایج
3- حمله ها
3.1 اجازه عبور
3.2 انتخاب کردن
3.2.1 دستور دادن در مقابل Quoted
3.2.2 اتصال اساسی
3.2.3 پرانتر .
3.2.4 query های LTKE
3.2.5 بن بست .
3.2.6 متناسب نبودن ستون عددی .
3.2.7 ستون WHERE اضافی
3.2.8 جدول ونام فیلد
3.2.9 سیکل تک رکوردی
منابع:
مقدمه :
یکی از نکات مهم مدیریت یک پایگاه داده حصول اطمینان از امنیت اطلاعات است شما باید مطمئن باشید هر شخص که لازم است به طور قانونی به اطلاعات دسترسی داشته باشد می تواند به آنها را بدست آورد ولی هیچ کس نمی تواند بدون اجازه به آنها دسترسی داشته باشد .
نیاز به امنیت
قبل ازاینکه به بحث در مورد امنیت در سیکل تک رکوردی بپردازیم لازم است نیاز به امنیت را به درستی درک کنیم خطرات امنیتی از سه ناحیه مورد بحث قرار می گیرند .
اشخاصی که در شرکتتان کار می کنند ، احتمالا متداولترین نوع مزاحمت برای سیستم تا ن به شمار می آیند . این افراد معمولا انگیزه نهائی برای دستیبای به داده هایی دارند که نمی بایست آنها را ببینند . قدری از این انگیزه ممکن است کنجکاوی محض باشد ، و قدری از آن نیز ممکن است سوء نیت صرف باشد . برای متوقف کردن در این نوع مزاحمت ، واقعا باید با سوء ظن به تمام سیستم های خود بنگرید و آنها را تا حد ممکن قفل کنید . وقتی چنین کاری می کنید ، برخی از کاربران شکایت می کنند لازم است به تمامی این گونه مسائل پاسخ دهید وبه آنها توضیح دهید که چرا سیستم ها را قفل می کنید .
مزاحمت تصادفی نیز نسبتا متداول است چیزی که در این حالت رخ می دهد آن است که کاربری وارد سیستم می شود و انتظار دارد که نتیجه خاصی به دست آورد ، ولیکن آن نتیجه را به دست نمی آورد بلکه ، کاربران اطلاعات بسیار بیشتری نسبت به آنچه که انتظار داشتند به دست می آورند .
اصول امنیت SQL سرور
SQL سرور واژه ها و مفاهیم زیادی که باید با آنها آشنا شوید این مفاهیم شامل مراحلی می شوند که SQL سرور با انجام آنها به یک کاربر امکان می دهد تا تحت مدهای امنیتی مختلف ، که به زودی بررسی خواهند شد ،بایک بانک اطلاعاتی ارتباط برقرار کند ابتدا باید واژه های بیشتری را فرا بگیرید این واژه ها عبارتند از :
به جای تخصیص مجوز به هر یک از کاربران بانک اطلاعاتی ، به راحتی میتوانید یک نقش ایجاد کنید و پس از قرار دادن کاربران در آن نقش مجوزها را به آن نقش تخصیص دهید انجام این کار سبب صرفه جویی در وقت مدیریت می شود تنها کاری که باید انجام دهید آن است که وی را دراین نقش قرار دهید چو ن بسیاری از مدیران قدیمی SQL سرور هنوز مشغول کار هستند ، بازهم خواهید دید که از واژه گروه به جای نقش استفاده می شود .
فرمت فایل : word(قابل ویرایش)
تعداد صفحات:110
چکیده:
دستور کار آزمایشگاه پایگاه داده ها
آزمایش 1
آشنایی با محیطQUERY ANALYZER ، نحوه ایجاد پایگاه داده وجداول پیش آگاهی
مقدمه :آشنایی با RDBMSها
از زمانی که در سال 1970مقاله آقای کادتحت عنوان "مدل رابطه ای داده ها برای بانک های اطلاعاتی اشتراکی بزرگ" منتشر شد ، زمان زیادی نمی گذرد. بعد از مطرح شدن این ایده پروژه تحقیقاتی تحت عنوان SYSTEM/Rدر IBM شکل گرفت که حاصل آن ایجاد اولین DBMS وزبان SQL بود. از آن زمان شرکت های مختلفی به تولیدDBMS هاپرداختندتا این که در سال1988،SQL-SERVER معرفی شد. علاوه بر این در سال 1986، SQL توسطANSI استاندارد شد. نسخه ای از این زبان را ، تحت عنوان TRANSACT-SQL استفاده می نماید. همان گونه که می دانید زبان SQL غیررویه ای است یعنی در آن تنها درخواست کاربرارائه می گرددوالگوریتم لازم برای اجرای آن توسط بخش هایی ازDBMS(بهینه ساز) تولید می گردد .
هرسیستم مدیریت پایگاه داده ای بر مبنای مدل رابطه ای ،یک RDBMS نامیده می شود .این سیستم هاازدو بخش عمده به شرح زیرساخته شده اند:
1- هسته :که کارهای مدیریتی را انجام می دهد.
2- فرهنگ داده ها(DataDictionary ) : که شامل اطلاعاتی در مورد عناصرواشیاء مختلف پایگاه داده ای تعریف شده می باشد ازقبیلsysobjectsکه مشخصات اشیاءمختلف تعریف شده درآن نگهداری می گردد یاsysindexes و syscolumns که مشخصات شاخص هاومشخصات ستون های تعریف شده در آن ها ذکر می گردد.
آشنایی با SQL-SERVERبه عنوان یک RDBMS
برای راهبری پایگاه داده ها، SQL-SERVERدو واسط گرا فیکی به نام های Enterprise Manager وQuery Analyzer را در اختیار قرار می دهد. دراین مرحله فرض می کنیم یک سرور ثبت شده وتعدادی شی Login وتعدادی پایگاه داده تعریف شده برروی آن داریم بنابراین ازمباحث مربوط به آنها فعلا چشم می پوشیم . علاوه بر این فرض می کنیم که سرور فوق در حال سرویس دهی است.Query Analyzer اولین واسطی است که به کمک آن می توانید پرس وجو های T-SQLوتوابع و روال های ذخیره شده را اجرا کنید . پس ازورودبهQuery Analyzer اطلاعات Login از شما خواسته می شود که می توانید از تایید اعتبار خود ویندوز استفاده کنیدو به این محیط وارد شوید. این محیط از دوپنجره اصلی تشکیل شده است. درپنجره سمت چپ با نام Object Browserمی توانید اشیایی از قبیل نام سروری که به آن متصل شده اید، پایگاه داده های موجود وبقیه اشیاء اصلی مورد استفاده درSQL-SERVER را مشاهده وویرایش کنید. در این قسمت اشیاء به صورت ساختار درختی نمایش داده می شوند. در هرسرور موجود حداقل چهارپایگاه داده زیر موجود است :
1-Master : شامل تمامی اطلاعات لازم برای مدیریت پایگاه، مانند پایگاه داده های تعریف شده ومشخصات کاربران و رویه های ذخیره شده سیستمی وپیام های خطاست. جداولی که در این پایگاه داده موجود است معمولاکاتالوگ سیستم نامیده می شود .
2- Model : یک الگو برای ساخت پایگاه داده های جدید است وهر شی موجود در آن ،در پایگاه داده های جدید ایجاد می شود. برای مثال اگر یک شناسه کاربر جدید در آن قرار دهید ،در تمامی پایگاه هایی که بعد ازاین ایجاد می شوند این شناسه هم وجود دارد .
3-Msdb : در نگهداری برنا مه های زمان بندی سیستم وJob ها وتاریخچه نسخه های پشتیبان کاربرد دارد .
4- Tempdb: محل موقتی برای اشیائی است که نیاز به فضای موقتی دارند .
در زیر پنجرهobject browser ،با کلیک بر روی تب Templates می توانید بهTemplate های موجود در مورد هر شی دسترسی داشته باشید . پنجره دیگر موجود در محیط Query Analyer پنجره پرس وجو است که از آن برای اجرای پرس وجو های تعاملی استفاده می شود .
برای اجرای اسکریپت ها (مجموعه هایی از دستورات ) باید یکی از پایگاه های داده ای موجود به عنوان پایگاه داده جاری انتخاب شود. برای این کار از دستورUSE، استفاده می شود. این پنجره از دو قسمت تشکیل شده است، که یکی برای ویرایش دستورات و دیگری برای نمایش نتایج به کار می رود. (قسمت اخیر بعداز اجرای یک اسکریپت قابل مشاهده است.)کاربر می تواند با استفاده از گزینهQuery، نحوه نمایش این خروجی ها را به حالت Gridیا Textتنظیم کند یا یک فایل را به عنوان محل ذخیره خروجی های Query تعریف نماید .
به ثبت رساندن وحذف وتغییر یک پایگاه داده جدید درSQL-SERVER
اصولا اطلاعات موجود در هر پایگاه داده در فایل ها ی آن پایگاه داده نگهداری می شوند. این امکان وجود دارد که فایل های مختلف ،گروه های مختلفی را تشکیل دهند که هر فایل به یکی از آن ها اختصاص داشته باشد در این صورت می توان اشیاء پایگاه داده را در یک فایل خاص یا فایل های یک گروه ذخیره کرد. علاوه بر این مثلا دراعمالی مانند پشتیبانی (backup) می توان به جای کل پایگاه داده ای، گروه های فایل اصلی را پشتیبانی کردیا بااعمال برنامه زمانی مورد نظر، هر یک از گروه هارامستقلاپشتیبانی کرد. برای پایگاه داده های تعریف شده در SQL-SERVER سه نوع فایل قابل تصور است :
1- فایل های Primary( باپسوند .mdf) :که حاوی اطلاعات راه اندازی پایگاه هستند وبه بقیه فایل های پایگاه داده ها اشاره دارند .
2- فایل های Secondary( باپسوند .ndf) : بقیه فایل های داده ای به جز فایل های داده ای اصلی در این گروه قرار می گیرند .
3- فایل های Log( باپسوند .ldf) : برای ثبت تراکنش های موجود در پایگاه به کار می روندو عضو هیچ گروه فایلی نیستند. برای بسیاری از پایگاه های داده ای معرفی گروه 1و3کافی است وممکن است پایگاه داده ای چندین فایل از نوع دوم داشته باشد یا هیچ فایلی از این نوع نداشته باشد. یک فایل نمی تواند عضو بیش ازیک گروه فایلی باشد وفایل های سیستم در گروه فایل Primary قرار می گیرند. (برای اطلاعات بیشتر در مورد نحوه استفاده از این امکان در عمل می توانید به مراجع SQL-SERVERمراجعه کنید .)
ایجاد جداول پایگاه داده
این جداول به منظور تعریف فیلدهای مورد استفاده در ایجاد یک پایگاه داده ای مورد استفاده قرار می گیرند که در قسمت پیوست ساختار کلی یک جدول آورده شده است .
درهرجدول پایگاه داده ای برای اطمینان از درستی مقادیر فیلدها انواع جامعیت داده ای، مورداستفاده قرار می گیرد که ازانواع آن می توان به موارد زیر اشاره کرد :
کلیداصلی(primarykey) :که شامل یک یاچندستون است که مقادیرموجود دردوسطر از ستون ها نمیتوانند یکسان باشند. همچنین کلید اصلی نمی تواند مقدارتهی بپذیرد .
کلید کاندیدا(unique) : مانند کلیداصلی است با این تفاوت که درستون های تعریف شده به عنوان کلید کاندیدا می تواند مقدار تهی هم وارد شود .
کلید خارجی(foreignkey) : برای ایجاد ارتباط بین داده های جداول پایگاه داده ای ، ازیک یا ترکیبی از چند ستون با عنوان کلید خارجی استفاده می شود به طوری که داده های یک جدول با مقادیرکلید اصلی جدول مرتبط با آن پرمی شود.
Check : مقادیر قابل پدیرش یک ستون توسط این محدودیت کنترل می شود .
Constraints : برای اعمال محدودیت های داده ای ، مانند کلیداصلی ،کلید خارجی و کلید کاندیدا وcheckمورد استفاده قرار می گیرد .
ستون های محاسباتی در تعریف جداول
این ستون ها عبارت به کار رفته برای محاسبه داده را به جای خودداده ذخیره می کنند و قواعد زیر را دارند :
مثال1 :
Create table author
(au_id1 int primary key clustered,
unique nonclustered, au_id2 int
au_degree smallint,
au_name char(16) not null,
au_family char(16) not null,
au_address char(30) null)
CONSTRAINT au_degree_chk check((au_degree>=0) and(au_degree<=100)
در جدول تعریف شده بالا ،برای هر نویسنده دو شماره ازنوع int تعریف شده که روی اولی شاخص خوشه ای و روی دومی شاخص غیرخوشه ای قرارگرفته است. علاوه بر این روی شماره دوم محدودیت یکتا بودن اعمال می شود. سومین ستون نیز به درجه نویسنده اشاره می کند که با checkروی آن محدودیت بازه ای اعمال می شود .
جدول های موقتی
این جداول زمانی که اتصال به سرورقطع شود از بین می روند. مهم ترین انواع جدول های موقتی مانند متغیرهاانواع عمومی و محلی هستند. تفاوت این دو نوع در این است که ازجداول سراسری همه کاربران سیستم می توانند استفاده کنندو با ## شروع می شوند. جداول محلی فقط برای کاربر سازنده خود قابل استفاده هستند و با # شروع می شوند. برای ایجاد این جداول از دستور CREATEاستفاده می شود :
CREAET TABLE #myTmpTable
(Name VARCHAR(30) NOT NULL ADDRESS VARCHAR(50))
از دستور SELECT ---INTO می توان برای تعریف و پرکردن یک جدول موقتی به صورت همزمان استفاده کرد .
Select Name,Cname INTO #myTmpTable
From STD AS S
INNER JOIN
CRS AS C
ON C.S#=S.S#
شاخص ها در SQL-Server
شاخص ها در SQL-Serverاشیاء خاصی هستند که این امکان را فراهم می آورند که بتوان بر اسا س مقادیر یک یا چند ستون به سرعت به سطر های یک جدول دسترسی پیدا کرد. SQL-Server، دو نوع شاخصClustered و Nonclustered رادر اختیار کاربر برای تعریف قرار می دهد .SQL-Server برای پیاده سازی شاخص ها از ساختار B-TREEاستفاده می کند که در آن برگ ها حاوی داده های واقعی هستند .
1- شاخص Clustered: دراین نوع شاخص ، داده ها واقعا از نظر فیزیکی مرتب می شوند. در این نوع اندیس برگ ها داده های واقعی هستند . همیشه با معرفی یک ستون به عنوان کلید اصلی به صورت خودکار روی آن یک شاخص Clustered ساخته می شود .
2- شاخص Nonclustered: در این نوع شاخص برگ ها بر مبنای ستون هایی که به عنوان شاخص تعریف شده اند مرتب می شوند ولی تفاوت آن با نوع قبلی این است که در صورتی که قبلا روی جدول شاخص Clusteredایجاد نشده باشد برگ های اندیس Nonclustered حاوی آدرس ذخیره تاپل(ونه خود تاپل ) متناسب با کلید شاخص شده است ودرغیراین صورت حاوی مقدار کلید شاخص دارمتناسب با آن تاپل هستند .
با توجه به توضیحات بالا رعایت نکات زیر توصیه می شود :
نکته: سعی کنید ابتدا شاخصClustered را ایجا دکنید و بعد شاخص های Nonclustered راتعریف کنید . (چرا ؟)
تعریف شاخص:
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ ON filegroup ]
توضیح بعضی پارامترهای تعریف بالا:
نزولی بودن شاخص را بیان میکند .
مثال 2: فرض کنید می خواهیم شاخصی با نام Snumindex را روی ستون شمار ه دانشجویی به صورت نزولی در جدول STD ایجاد کنیم :
Create clustered index Snumindex on STD(S# DESC )
On Primary
سوال : فرض کنید درخواست های زیادی مطرح می شود که در آن ها معمو لا در گزینه Where سوال روی شماره دانشجویی های پایین مطرح می شود آیاحذف کردن این اندیس می تواند زمان پاسخگویی ر ابه طور نسبی افزایش دهد؟
تغییر یک جدول
ALTER TABLE author
ADD column_b INT IDENTITY اضافه کردن یک ستون با محدودیت کلید اصلی
CONSTRAINT column_b_pk PRIMARY KEY,
/* Add a column with a constraint to enforce that */
/* nonnull data is in a valid phone number format. */
column_d VARCHAR(16) NULL
CONSTRAINT column_d_chk
CHECK
(column_d IS NULL OR
column_d LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR
column_d LIKE
"([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"),
/* Add a nonnull column with a default. */
column_e DECIMAL(3,3)
CONSTRAINT column_e_default
DEFAULT .081
توجه : برای انجام آزما یش ها سینتکس دستورات create database، Alter database، create table،Alter table و انواع داده ای موجود در ضمیمه را مطالعه کنید.
دستور کار:
بخش اول-آشنایی با Query Analyzer ونحوه اجرای دستورات T-SQL
1- بعد از loginکردن با نام عبوری که به شما داده می شود و روی سروری که به شما معرفی می شود وارد محیط Query Analyzer شوید .
2- روی سروری که به آن Loginکرده اید کلیک کنید وپایگاه داده های موجود روی این سرور را مشاهده کنید .چه پایگاه داده هایی روی این سرور به ثبت رسیده است؟
3- به کمک دستور exec رویه های ذخیره شده sp_help (برای پایگاه داده pubs ) و sp_help dbرا اجرا کنید . در پنجره results خروجی هایی هر کدام را مشاهده می کنید . در مورد عملکرد آن ها توضیح دهید؟
( این دوازرویه های ذخیره شده (stored procedure) سیستمی هستند که بعدا با نحوه ایجاد ومدیریت این رویه ها آشنا می شوید .)
4- الف- اسکریپت زیر را به یکباره اجرا کنید ویک فایل را به عنوان محل ذخیره خروجی ها تعریف کنید . ( دسته مجموعه ای از دستورات T-SQL است که همگی به یکباره به موتور پایگاه ارسال می شوند و کامپایل وبهینه سازی و اجرا می شوند. اسکریپت نیزمجموعه ای از یک یا چند دسته است که به صورت گروهی ذخیره می شوند. از اسکریپت ها برای مثلا بخشی از کار بارگذاری داده ها (Data overloading )یا نگهداری پایگاه داده استفا ده می شود. مثلا اگر نیاز به انجام چندکارمستقل باشد، اسکریپتی از چنددسته می نویسیم و برای مشخص کردن دسته ها از هم از Goدر بین آنها استفاده می کنیم. بدین ترتیب خطاهای روی هر دسته اعم از کامپایل یاخطاهای زمان اجرا ، اجرای دسته های قبلی وبعدی را مختل نمی کند . )
Use pubs
Go
Use Northwind
Select EmployeeID from Employees
where City='London'
ب- در دسته دومEmployeeID را بهEmployee تغییردهیدواین اسکریپت رااجرا کنید . آیاتغییر یک دسته دراجرای کل اسکریپت تاًثیر گذار است ؟ توضیح دهید.
بخش دوم - ایجاد یک پایگاه داده جدید
1- اسکریپتی برای ایجاد پایگاه داده ای بانا م Testبا مشخصات زیر اجرا کنید :
2- رویه های ذخیره شدهsp_helpfilegroup وsp_helpfile را روی پایگاه داده ای که ایجاد کرده اید اجرا کنید . چه خروجی هایی مشاهده می کنید ؟
3- اسکریپتی را اجرا کنید که گروه فایلی test وفایل های آن را حذف کند . (اصولا برای حذف هر گروه فایلی ابتدا گروه فایلی دیگری رابه عنوان گروه فایل پیش فرض تعریف میکنیم در صورتی که گروه فایلی حذف شوند پیش فرض باشد سپس تمام فایل های آن گروه فایلی وبعد خودآن را حذف می کنیم .)