تبلیغات
بانك های اطلاعاتی تحت داس و ویندوز - امکانات جدید SQL Server 2005
یکشنبه 26 اردیبهشت 1389

امکانات جدید SQL Server 2005

   نوشته شده توسط: هوشنگ كرمی    نوع مطلب :بانك اطلاعاتی SQL SERVER ،

 
 مقدمه
عرضه شدن نسخه 2005 پایگاه داده‌ای مشهور مایکروسافت یعنی SQLServer، بازار نرم‌افزارهای بانک اطلاعاتی را به شدت تحت تأثیر خود قرار داد. امکانات گسترده‌ای که در این نسخه جدید تعبیه شده، طراحی و پیاده‌سازی بانک‌های اطلاعاتی را سرعت بخشیده و تلفیق و انطباق آن با انواع فناوری‌های نو مانند XML وADO.NET، باعث افزایش قدرت و کارایی آن شده است. در این فصل به برخی از ویژگی‌های جدید این برنامه نگاهی خواهیم داشت.

 

 مقدمه
عرضه شدن نسخه 2005 پایگاه داده‌ای مشهور مایکروسافت یعنی SQLServer، بازار نرم‌افزارهای بانک اطلاعاتی را به شدت تحت تأثیر خود قرار داد. امکانات گسترده‌ای که در این نسخه جدید تعبیه شده، طراحی و پیاده‌سازی بانک‌های اطلاعاتی را سرعت بخشیده و تلفیق و انطباق آن با انواع فناوری‌های نو مانند XML وADO.NET، باعث افزایش قدرت و کارایی آن شده است. در این فصل به برخی از ویژگی‌های جدید این برنامه نگاهی خواهیم داشت.
 
Snapshot Isolation Level
یکی از روش‌هایی که به انواع متدهای قفل کردن ردیف ‌های یک جدول بانک‌اطلاعاتی در نسخه جدید اضافه شده است، شیوه تصویربرداری از رکورد است. در روش‌های قبلی، اگر یک یا چند رکورد بانک اطلاعاتی توسط دستور BeginTrans که شروع یک فرآیند را مشخص می‌کند در شرف تغییر یا حذف قرار می‌گرفتند، تا مادامی‌ که فرآیند مذکور توسط دستور Commit Trans تأیید یا توسط RollBack منتفی نشود، از هیچ جا و برنامه‌ای نمی‌توان رکوردهای مذکور را حتی با دستور ساده SELECT خواند. اما در روش جدید قفل‌گذاری، در صورت بروز چنین رویدادی سایر کاربران می‌توانند همواره آخرین ارزش رکوردهای مذکور را با این فرض که هنوز هیچ تغییری در آن‌ها ایجاد نشده است بخوانند و مورد استفاده قرار دهند.
 
 باز هم دات‌نت
با نسخه جدید SQL Server، برنامه‌نویسان بانک‌های اطلاعاتی قادرند از امکانات و قابلیت‌های موجود در پلتفرم دات‌نت و کلیه توابع و کلاس‌های ساخته شده در آن بهره‌مند شوند. یکی از ابتدایی‌ترین و در عین حال اساسی‌ترین این قابلیت‌ها، امکان استفاده از دو زبان مهم و کاربرپسند دات‌نت یعنی ویژوال بیسیک و سی‌شارپ در پیاده‌سازی اجزای مختلف یک بانک‌اطلاعاتی است. این عامل نه‌تنها باعث می‌شود که برنامه‌نویسان برای نوشتن ماژول‌هایی مثل تریگرها، روال‌ها (Stored Procedures) در توابع به جای استفاده از زبان استاندارد و در عین حال پیچیده T-SQL ، بتوانند از زبان‌های محیط دات‌نت با تمام ساختارها، دستورات، کلاس‌ها، آرایه‌ها، و خلاصه تمام ویژگی‌های یک زبان شی گرا استفاده کنند، بلکه این همکاری نزدیک بین موتور برنامه‌نویسی دات‌نت یعنی CLR (که مسؤول تبدیل کدهای نوشته شده دات‌نت به زبان سیستم‌عامل است) و موتور بانک اطلاعاتی SQLServer باعث شده تا به غیر از تنوع زبان‌های برنامه‌نویسی قابل استفاده درSQLServer، تغییر قابل توجهی نیز در کارایی ماژول‌های مذکور پیش آید. در واقع موضوع از این قرار است که اصولاً کدهای نوشته شده به زبان‌های دات‌نت، ابتدا توسط کامپایلر به زبان (IL) ترجمه می‌شوند. سپس CLR این کد میانی را به کد قابل فهم سیستم‌عامل تبدیل و آماده اجرا می‌نماید. این کار سبب می‌شود تا کدهای نهایی به دلیل این‌که بسیار به سیستم‌عامل نزدیک می‌باشد سریع‌تر از کدهای TSQL (که فقط توسط موتور بانک اطلاعاتی قابل اجرا هستند) اجرا شوند و در زمان اجرا از کارایی بیشتری برخوردار باشند. البته این مسأله بدین معنی نیست که استفاده از زبان‌های دات‌نت همیشه بر زبان‌های SQL ارجحیت دارد، بلکه منظور آن است که در برخی موارد ممکن است آن قدر منطق و الگوریتم یک ماژول پیچیده باشد که برنامه‌نویس استفاده از زبان‌های دات‌نت را به دلیل آسان‌تر بودن ساختار و دستورات آن به زبان SQL ترجیح دهد. بنابراین زمانی که بیشترعملیات یک ماژول مربوط به خواندن و نوشتن اطلاعات باشد بهتر است از همان دستورات استاندارد SQL یعنی SELECT ،UPDATE ،DELETE وINSERT استفاده کرده و بی‌جهت منابع سیستم را صرف تعریف متغیرها و کلاس‌های دات‌نت ننماید. اما در ماژول‌هایی که بیشتر عملیاتشان شامل پردازش اطلاعات مثل انجام عملیات‌های ریاضی یا مقایسه اطلاعات با یکدیگر است بهتر است تا هم از امکانات برنامه‌نویسی و هم از سرعت و کارایی بالای دات‌نت در این زمینه بهره برد و ماژول‌های مذکور را با زبان‌های دات‌نت پیاده‌سازی کرد.
 
ADO.NET
طبق یک سنت نه‌چندان قدیمی برنامه‌نویسی در محیط ویندوز، برنامه‌نویسان SQLServer، بانک اطلاعاتی موردنظرشان را برروی سرور و برنامه کاربردی نوشته شده با زبانی مثل ویژوال بیسیک را بر روی کلاینت‌ها قرار می‌دهند. سپس از طریق این برنامه کاربردی و با استفاده از اشیایی از جنس ADO داده‌های موردنیاز خود را از سمت سرور دریافت کرده و یا به آن ارسال می‌کنند. اکنون این ارتباط به لطف نسخه جدید SQLServer و همچنین محیط دات‌نت، با امکانات جدیدADO.NET بسیار کامل‌تر از قبل شده است. این ارتباط جدید با استفاده از مکانیسمی به نام اعلان (Notification) به یک ارتباط دو‌طرفه فعال تبدیل شده به طوری که ADO.NET قادر است پیغام‌هایی را از سمت پایگاه داده به سمت کلاینت ارسال کند. به عنوان مثال فرض کنید که شما با استفاده ازADO تعدادی از رکوردهای یک جدول بانک اطلاعاتی را انتخاب کرده و مشغول کار برروی آن‌ها هستید. در همین هنگام کاربر دیگری از طریق کلاینت و ADO خود، رکوردی در محدوده رکوردهای مورد انتخاب شما را تغییر می‌دهد یا حذف می‌کند. در این وقت موتور پایگاه داده با ارسال پیغامی به ADO شما، این مسأله را با استفاده از فراخوانی یک رخداد (Event) شی ADO به اطلاعتان می‌رساند.
علاوه براین قابلیت جدید، فناوری جدید دیگری هم با استفاده ازADO.NET به نسخه جدید SQLServer اضافه شده و آن امکان چند پرس‌وجوی همزمان توسط یک شی ADO است. در این شیوه اگر یک شی ADO با استفاده از دستور SELECT مشغول خواندن تعدادی از رکوردهای یک جدول بانک اطلاعاتی باشد، می‌تواند بدون این‌که منتظر به پایان رسیدن این عملیات شود، تعداد دیگری از رکوردهای یک جدول دیگر بانک اطلاعاتی را بخواند. این قابلیت جدید با نام (Multiple Active Result Set (MARS که قبلاً فقط در کرسرهای سمت سرور (server side) و آن هم نه با کارایی بالا وجود داشت اکنون در کرسرهای سمت راست کلاینت هم وجود دارد و تفاوت عمده آن با شکل قدیمی هم علاوه بر مورد مذکور، امکان ایجاد چند کرسر در یک شی ADO به صورت همزمان است. SQLServer نسخه 2005 به خوبی از تمام این ویژگی‌ها، پشتیبانی می‌کند.
 
تکنولوژی XML
اکنون که XML به یک استاندارد ارتباطی بین سکوهای مختلف تبدیل شده است، نسخه جدید SQLServer هم از توجه کافی به آن و ایجاد یک انقلاب در ساده‌تر استفاده کردن از آن طفره نرفته است. در نسخه 2000 کاربران قادر بودند تا با استفاده از دستور FOR XML نتیجه یک پرس‌وجوی SELECT از یک بانک اطلاعاتی را به درون یک فایل XML بریزند یا مثلاً با دستور OPEN XML می‌توانستند یک فایل XML را باز کرده و شروع به خواندن دستورات درون آن نمایند.
از آن‌جا که در نسخه جدید SQLServer توجه خاصی به این استاندارد و زبان ارتباطی شده است، یک نوع داده جدید (Data type) به انواع داده‌های قبلی و استاندارد SQL مثل int ، char و امثال آن اضافه شده است. این نوع داده جدید که XML نام دارد و دارای خصوصیات یک نوع داده موجود در یک محیط شی‌گرا است، دارای متدهای پیشرفته‌ای چون nodes() ،Value() ،exist() ،query و ()modify بوده و قادر است انواع پردازش‌های قابل انجام برروی اسناد XML را به راحتی انجام دهد. عملیات جستجو، تغییر، حذف و درج مقادیر موردنظر در داخل یک فایل XML را می‌توان با استفاده از متدهای مذکور و صرفاً با چند خط برنامه‌نویسی انجام داد. همچنین در این نسخه برخلاف نسخه 2000، با استفاده از دستور FOR XML می‌توان یک شیء از جنس XML را بدون ارسال آن به کلاینت، برروی سرور ساخته و از آن نگهداری کرد. با این کار می‌توان جداولی را که مرتباً مورد رجوع کاربران قرار می‌گیرند هر از گاهی در قالب XML به داخل حافظه آورد و کاربران مذکور به جای رجوع به جداول اصلی در هارددیسک، با استفاده از دستورات ویژه جستجو درXML ، متغیر مذکور را در حافظه سرور مورد جستجو قرار دهند و بدین‌وسیله یک نوع عمل Cache کردن را جهت افزایش سرعت دسترسی به اطلاعات تکراری شبیه‌سازی کنند. در این حالت، کاربران به جای استفاده از دستورSELECT استاندارد می‌توانند از OPEN XML که در نسخه 2005 قادر است متغیرهای جدید از نوع XML را بخواند استفاده کرده و به سرعت به اطلاعات موردنیاز خود دسترسی پیدا کنند. این قابلیت جدید آن‌قدر در سریع‌تر کردن جستجو در برنامه‌های تحت وب مهم و مؤثر است که جای هیچ مشکلی را در استفاده از آن باقی نمی‌گذارد.
 
سرویس اعلان (Notification)
همان‌طور که گفتیم سیستم اعلان درSQLServer قادر است پیغام‌هایی را طی زمان‌های مشخص به سمت کاربران بفرستد. مثلاً تصور کنید که تعدادی کاربر در حال اتصال به یک بانک حاوی اطلاعات مربوط به ارزش سهام در بورس هستند. از آن‌جایی که ممکن است قیمت سهام هر شرکت یا مؤسسه برای تعدادی از کاربران از اهمیت زیادی برخوردار باشد، می‌توان این سیستم را طوری تنظیم کرد تا هرگاه ارزش سهام خاصی که موردنظر هر کاربر است تغییر کرد، به صورت اتوماتیک به وی اعلام شود. کاربر هم می‌تواند این تغییرات را برروی برنامه کاربردی خود، تلفن همراه (در قالب Windows Messenger ،(SMS و یا ایمیل به‌صورت مرتب دریافت و مشاهده کند.
 
سرویس گزارش‌گیری
سرویس جدید تولید گزارش‌های متنوع در نسخه 2005 به یکی از جالب‌ترین و پرکاربردترین قابلیت‌های این نسخه تبدیل شده است، وجود یک موتور گزارشگر قوی در سمت سرور و یک ابزار مناسب ساخت گزارش با واسط کاربر عالی، باعث شده تا برنامه‌نویسان بتوانند گزارش‌های موردنظر خود را با کارایی و سرعت مناسب در سمت سرور بسازند به طوری که این گزارش‌های سمت سرور توسط هر برنامه کاربردی سمت کلاینت در هر پلتفرمی با همان امکانات اتصال به SQLServer قابل مشاهده است.
 
بهبودهای ایجاد شده در زبان
در 2005 SQLServer تغییرات بسیار مثبتی در زبان TSQL ایجاد شده است. این تغییرات در زمینه‌های مختلف مثل مدیریت خطاها، جستجوهای بازگشتی (Recursive Query) و حتی در بدنه موتور پایگاه داده‌ها انجام شده و کارایی کلی ذخیره و یا خواندن اطلاعات را به نحو مطلوبی افزایش داده است. به عنوان مثال دردستورات TSQL، دو اپراتور جدید دیده می‌شود، که PIVOT وUNPIVOT نام دارند. این دو اپراتور که در قسمت FROM یک پرس‌وجو مورد استفاده قرار می‌گیرند می‌توانند نتیجه یک جستجوی انجام شده توسط دستور SELECT را به جای برگرداندن در قالب ردیف‌ها یا رکوردهای پشت‌سرهم، به صورت ستون‌های مختلف یک یا چند رکورد برگردانند. در این روش یکی از ستون‌های (فیلدهای) یک جستجو به عنوان محور معرفی شده و بقیه ستون‌ها براساس آن به صورت افقی طبقه‌بندی می‌شوند. به یک مثال توجه کنید:
 
SELECT CUSTOMER ID, order No
FROM orders PIVOT CustomerID
Order No
Order No
Order No
Order No
Customer ID
 
4400
1120
25
1
 
 
 
350
2
 
 
1780
443
3
8989
2222
1980
555
4
نتیجه جستجوی فوق چیزی شبیه جدول بالا‌ خواهد بود
 
همان‌طور که مشاهده می‌کنید با استفاده از اپراتور مذکور، نتیجه پرس‌وجوی انجام شده به این صورت که هر ردیف به یک شماره مشتری و چندین شماره سفارش مربوطه به آن مشتری در قالب ستون‌های مختلف است، در می‌آید. این همان چیزی است که سال‌ها درSQLServer وجود نداشت و ابزارهای مختلف گزارش‌سازی مثل CrystalReport آن را با نام Cross Tab به کاربران خود ارایه می‌دادند. در همین رابطه اپراتورUNPIVOT هم عمل عکس اپراتور مذکور را انجام می‌دهد.
اپراتور دیگری که می‌تواند نقش مهمی را در دستورات SQL بازی کند APPLY نام دارد که در قسمت FROM یک دستور SQL به کار می‌رود. با استفاده از این دستور می‌توان خروجی یک تابع (Function) را با یک یا چند جدول دیگر ترکیب (Join) کرد همان‌طور که می‌دانید در 2005 SQLServer توابع می‌توانند یک یا چند ردیف یک جدول اطلاعاتی را برگردانند که این خروجی می‌تواند با یک جدول دیگر با استفاده از اپراتور مذکور ترکیب شود.
 
تهیه و تنظیم: حسین الله یار بیگی
منبع سایت http://article.mjsoft.ir

برچسب ها: sqlserver 2005 ، امكانات ، جدید ، اس كی ال سرور ، فاكس پرو ، ویندوز ، داس ،

myfreecam token generator
یکشنبه 30 مهر 1396 01:00 ق.ظ
آنچه که من نمی فهمم این است که حقیقت این است که شما واقعا خیلی بهتر از شما نیستید.

شما خیلی هوشمند هستید بنابراین شما به طور قابل توجهی در ارتباط با این موضوع متوجه شده اید، به نظر من تولید آن را از بسیاری از افراد تصور کنید
زوایای مختلف مانند زنان و مردان شگفت زده مگر اینکه
یکی از دلایلی است که با لیدی گاگا انجام دهید! مواد شخصی شما عالی است.
همیشه حمایتش کن!
real psychics
دوشنبه 17 مهر 1396 02:56 ق.ظ
سلام! من فقط می خواهم به شما یک شگفت انگیز بزرگ برای
اطلاعات عالی شما در اینجا در این پست دارید.
من به زودی به وبسایت شما خواهم رفت.
cheap phone psychics
دوشنبه 20 شهریور 1396 01:20 ب.ظ
سلام، پس از خواندن این پاراگراف قابل توجه من هستم
همچنین خوشحالم که با دوستانم آشنا خواهم شد.
cheap phone psychics
دوشنبه 20 شهریور 1396 12:05 ب.ظ
وای، این پست خوب است، خواهر کوچکتر من این چیزها را تحلیل می کند، بنابراین می خواهم به او بگویم.
free std testing near me
دوشنبه 20 شهریور 1396 10:47 ق.ظ
من تعجب کردم اگر شما تا به حال به تغییر طرح سایت خود فکر کرده اید؟
بسیار خوب نوشته شده است من عاشق آنچه شما باید بگویید.
اما شاید شما می توانید کمی بیشتر در راه محتوای، بنابراین مردم می توانند ارتباط برقرار کنند
با آن بهتر است شما متن زیادی برای متن گذاشتید
فقط داشتن 1 یا 2 تصویر. آیا شما می توانید آنرا در فضای بهتری جا دهید؟
cheap phone psychic reading
دوشنبه 20 شهریور 1396 08:11 ق.ظ
برای آخرین اطلاعات شما باید به وب سایت جهانی و وب مراجعه کنید
من این وب سایت را به عنوان یک سایت عالی برای این سایت پیدا کردم
آخرین به روز رسانی های اخیر
anonymous std testing
دوشنبه 20 شهریور 1396 05:33 ق.ظ
پست بزرگ
std screening
دوشنبه 20 شهریور 1396 03:30 ق.ظ
آیا من فکر می کنم اگر چند مقاله ای را نقل می کنم تا زمانی که اعتبار و منابع خود را به وبلاگ شما اضافه کنم؟
سایت وبلاگ من در همان منطقه مورد علاقه به عنوان شما است
و بازدیدکنندگان من واقعا از برخی اطلاعاتی که در اینجا ارائه می کنید بهره مند می شوند.

لطفا اجازه دهید من این را با شما بسازم.
با احترام!
Where are the femur tibia and fibula?
شنبه 14 مرداد 1396 04:17 ق.ظ
Having read this I thought it was very enlightening.
I appreciate you taking the time and energy to put this
informative article together. I once again find myself spending a lot
of time both reading and commenting. But so what, it
was still worth it!
sordidelection650.wordpress.com
جمعه 13 مرداد 1396 07:51 ب.ظ
Thank you for the auspicious writeup. It in truth used to be a entertainment account it.

Look complex to more brought agreeable from you! By the way, how can we keep up a correspondence?
chaturbate account hack
پنجشنبه 12 مرداد 1396 09:07 ب.ظ
Everything is very open with a clear explanation of the issues.
It was definitely informative. Your website is
extremely helpful. Thanks for sharing!
Alfonzo
سه شنبه 10 مرداد 1396 08:08 ب.ظ
Hi there it's me, I am also visiting this website on a regular basis,
this site is really good and the viewers are actually sharing good thoughts.
Carin
جمعه 16 تیر 1396 06:25 ب.ظ
Hello! I'm at work browsing your blog from my new iphone 4!
Just wanted to say I love reading your blog and look forward to all your posts!

Carry on the excellent work!
std clinics near me
جمعه 2 تیر 1396 10:12 ب.ظ
بسیار core از خود نوشتن در حالی که ظاهر شدن
دلنشین اصل آیا نه نشستن بسیار
خوب با من پس از برخی از زمان. جایی درون جملات شما قادر به من مؤمن متاسفانه تنها برای while.
من این مشکل خود را با جهش در منطق و یک
خواهد را سادگی به پر کسانی که شکاف.

اگر شما در واقع که می توانید انجام من می قطعا تا پایان مجذوب.
std clinic near me
سه شنبه 26 اردیبهشت 1396 04:54 ق.ظ
بسیار چلیپا از خود نوشتن در حالی که ظاهر
شدن دلنشین در آغاز آیا نه کار بسیار خوب با من پس از برخی از زمان.
جایی درون پاراگراف شما در واقع موفق به من مؤمن متاسفانه تنها برای
کوتاه در حالی که. من این کردم مشکل خود را
با فراز در مفروضات و شما ممکن است
را سادگی به پر کسانی که معافیت.
در صورتی که شما در واقع که می توانید انجام من خواهد
قطعا تا پایان در گم.
Stephaine
دوشنبه 25 اردیبهشت 1396 05:58 ق.ظ
Hello, I think your site might be having browser compatibility issues.
When I look at your blog site in Opera, it looks fine but when opening in Internet Explorer, it has
some overlapping. I just wanted to give you a quick heads up!
Other then that, awesome blog!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر