فایلکو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فایلکو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلودمقاله امکانات اضافه شده به SQL استاندارد

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

 

 

 

 

 

امکانات اضافه شده به SQL استاندارد
در این فصل امکاناتی که به SQL استاندارد ANSI اضلفه شده اند بررسی شده اند. اگرچه بیشتر نسخه های SQL در بسیاری از زمینه ها مطابق استاندارد هستند، اما بسیاری از فروشندگان امکاناتی را به شکلهای مختلف به SQL استاندارد اضافه کرده اند.
عناوین مهم این فصل عبارتند از:
• نسخه های مختلف SQL
• تفاوت بین نسخه های مختلف SQL
• سازگاری با ANSI SQL
• دستورات محاوره ای SQL
• استفاده از متغیرها
• استفاده از پارامترها
نسخه های مختلف SQL
نسخه های زیادی از SQL وجود دارند که توسط فروشندگان گوناگون عرضه می‌شوند. البته نمی‌توان تمام فروشندگان بانکهای اطلاعاتی رابطه ای ذکر نمود؛ اما تعداد کمی از آنها در این فصل بررسی شده اند. نسخه های مورد بررسی این فصل عبارتند از: dBASE, Sybase ، میکرسلفت SQL Server و ارکل. سایر فروشندگان محصولات اطلاعاتی عبارتند از: بورلند، IBM، اینفور میکس، progress، CA-Ingres و بسیار بیشتر.
تفاوت بین نسخه های مختلف SQL
اگرچه نسخه های فهرست شده در این فصل بانکهای اطلاعاتی رابطه ای هستند اما تفاوتهای ویژه ای بین آنها وجود دارد. این تفاوتها از طراحی محصول و شیوه مدیریت داه ها توسط موتور بانک اطلاعاتی ناشی می‌شوند؛ اما این کتاب برروی جنبه SQL این تفاوتها تمرکز دارد. همان گونه که توسط ANSI مشخص شده است، تمام نسخه های از SQL به عنوان زبان برقراری ارتباط با بانک اطلاعاتت استفاده می‌کنند. بسیاری از آنها نوعی امکانات اضافه دارند که خاص همان نسخه است.
توجه: تفاوتهای موجود در SQL توسط فروشندگان گوناگون پذیرفته شده اند تا کارایی و سهولت استفاده از ANSI SQL بهبود یابد. فروشندگان همچنین کوشش می‌کنند تا امکاناتی را اضافه کنند که نسخه تولیدی آنها نسبت به فروشندگان دیگر بهتر باشد و در نتیجه برای مشتریان جذاب تر شود.
حال که با SQL آشنا هستند، می‌بایست در تطبیق خود با تفاوت موجود در بین نسخههای مختلف مشکل چندانی نداشته باشید. به عبارت دیگر اگر بتوانید دستورات SQL را در نسخه Sybase بنویسید، در آن صورت می‌بایست بتوانید این کار را در اراکل نیز انجام دهید. به علاوه، دانستن SQL در نسخههای مختلف هیچ چیزی به غیر از افزایش کارایی خودتان به همراه ندارد.
در قسمتهای ذیل دستور SELECT در نسخه های استاندارد برخی فروشندگان مقایسه شده است:
قالب دستور استاندارد ANSI
select [DISTINCT] {* | COLUMN2]
[INTO HOST_VARIABLE]
FROM TABLE1 [, TABLE2]
[WHERE SEARCH_CONDITION]
GROUP BY [TABLE_ALIAS | COLUMN1 [ , COLUMN2]
[HAVING [SEARCH_CONDITION]
[{UNION | INTERSECT | EXCEPT} [ALL]
[CORRESPONDING [BY COLUMN1 [,COLUMN2] ) ]
QUERY SPEC | SELECT * FROM TABLE | TABLE_CONSTRUCTOR]
[ORDER BY SPORT_LIST]
قالب دستوری SQL BASE
SELECT [ALL | DISTINCT] COLUMN1 [ , COLUMN2]
FROM TABLE1 [, TABLE2]
[WHERE SEARCH_ CONDITION]
[GROUP BY COLUMN1 [ , COLUMN2]
[HAVING SEARCH_ CONDITION]
[UNION [ALL]]
[ORDER BY SPORT_LIST]
[FOR UPDATE OF COLUMN1 [ , COLUMN2]
قالب دستوری اراکل:
SELECT [ALL | DISTINCT] COLUMN1 [ , COLUMN2]
FROM TABLE1 [, TABLE2]
[WHERE SEARCH_ CONDITION]
[[START WITH SEARCH_ CONDITION]
CONNEST BY SEARCH_ CONDITION]
[GROUP BY COLUMN1 [ , COLUMN2]
[HAVING SEARCH_ CONDITION]
[UNION [ALL] | INTERSECT | MINUS} QOERY_SOEC]
[ORDER BY COLUMN1 [ , COLUMN2]
[NOWAIT]
قالب دستوری اینفورمیکسل:
SELECT [ALL] | DISTINCT | UNIQUE] COLUMN1 [ , COLUMN2]
FROM TABLE1 [, TABLE2]
[WHERE SEARCH_ CONDITION]
[GROUP BY COLUMN1 [ , COLUMN2] | INTEGER}
[HAVING SEARCH_ CONDITION]]
[ORDER BY COLUMN1 [ , COLUMN2]
[INTO TEMP TABLE [WITH NO LOG]]
همان گونه که از مقایسه قالبها مشاهده می‌کنید، اصول تمام دستورها یکسان است. تمام آنها عبارتهای SELECT، FROM، WHERE، GROUP BY، HAVING، UNION و ORDER BY را دارند. تمام این عبارتها اساسا به یک شکل عمل می‌کنند اما برخی از آنها گزینه هایی دارند که ممکن است در نسخههای دیگر موجود نباشد. این گزینه ها همان امکانات اضافه هستند.
سازگاری با ANSI SQL
فروشندگان کوشش می‌کنند تا نسخه هایشان با ANSI SQL سازگار باشد؛ اما هیچیک از آنها 100 درصد با استاندارد ANSI سازگار نیستند. برخی از فروشندگان دستورات یا توبعی را به ANSI SQL افزوده اند و ANSI SQL بسیاری از این دستورات یا توابع جدید را پذیرفته است. سازگاری با استاندارد بنا به دلایل زیادی برای یک فروشنده مفید است. یک فایده آشکار آن این است که یادگیری نسخه SQL فروشند آسان خواهد بود و دستورات SQL یک نسخه در نسخه های دیگر نیز قابل استفاده خواهد بود. قابلیت اجرای دستورات SQL در نسخههای دیگر یقینا یک عامل مهم در انتقال دستورات است. چرا یک شرکت باید مبلغ زیادی را برای تبدیل دستورات نسخه ای که با استاندارد سازگار نیست هزینه کند؟ چنانچه تغییرات بسیار زیادی در برنامه کاربردی لازم باشد و یادگیری نسخه SQL جدید دشوار باشد، در آن صورت احتمالا شرکتها تمایلی به انجام این کار از خود نشان نخواهند داد. بنابراین سازگاری با ANSI SQL در بیشتر موارد مساله ای نیست.
امکانات اضافه شده به SQL
عملا تمام فروشندگان امکانات اضافه ای را SQL افزوده اند. این گونه امکانات اضافی ویژه همان نسخه بوده و عموما قابل استفاده در نسخههای دیگر نیستند. اما امکانات اضافی استاندارد مشهور توسط ANSI بررسی و مرور شده و گاهی اوقات به عنوان بخشی از استاندارد جدید پیاده سازی می‌شوند.
PL/ SQL که محصول شرکت اراکل می‌باشد و Travsact- SQL که توسط Sybase و میکروسافت SQL Server مورد استفاده قرار می‌گیرد، دونمونه از امکانات اضافی استاندارد هستند. هر دو ویژگی به طور نسبتا مفصل در مثالهای این فصل بررسی می‌شوند.
مثالهایی از امکانات اضافی برخی نسخه های SQL
PL/ SQL و Travsact- SQL از زبانها برنامه سازی نسل چهارم به شمار می‌آیند. هر دو در مقایسه با SQL که یک زبان غیر پروسیجرال است، پروسیجرال می‌باشند.
زبان غیر پروسیجرال SQL دستورات ذیل را دارد:
• INSERT
• UPDATE
• DELETE
• SELECT
• COMIT
• ROLLBACK
آن دسته از نسخه های SQL کخ امکانات اضافی دارند، علاوه بر دستورات فوق و توابع SQL استاندارد، موارد ذیل را نیز در بر می‌گیرند.
• تعریف متغیرها
• افزایش متغیرها
• تعریف Cursor ها
• تبدیل تاریخ ها
• دستورات شرطی
• عملگرهای جانشین
• حلقه ها
• trigger ها
• مدیریت خطا
• رویه های ذخیره شده
این دستورات به برنامه ساز امکان می‌دهد تا در یک زبان محاوره ای کنترل بیشتری بر شیوه مدیریت داده ها داشته باشد.
توجه: SQL استاندارد اصولا یک زبان غیر پروسیجرال است، بدین معنا که دستورات برای سرویس دهنده بانک اطلاعاتی صادر می‌شود. سرویس دهنده بانک اطلاعاتی تصمیم می‌گیرد که دستور را چگونه به طور بهینه اجرا کند. زبانهای پروسیجرال نه تنها به برنامه ساز امکان می‌دهند که بازیابی یا پردازش داده ها را درخواست کند، بلکه برای سرویس دهنده دقیقا مشخص می‌کند که درخواست را چگونه اجرا کند.
Travsact- SQL
Travsact- SQL یک زبان پروسیجرال است، بدین معنا که چگونگی و محل پیدا کردن و پردازش داده ها توسط شما برای بانک اطلاعاتی مشخص می‌شود؛ SQL یک زبان غیر پروسیجرال است و بانک اطلاعاتی درباره شیوه محل انتخاب و پردازش داده ها تصمصیم می‌گیرد. برخی از قابلیت های مهم Travsact- SQL عبارتند از: تعریف متغیرهای محلی و عمومی، cursor ها، مدیریت خطا، triggerها، رویه ای های ذخیره شده، حلقه ها، عملگرهای جانشین، تبدیل تاریخ ها و گزارشهای خلاصه.
مثالی از یک دستور در ذیل نشان داده شده است:
IF (SELECT AVG (COST) FROM PRODUCTS_TBL) > 50
BEGIN
PRINT "LOWER ALL COSTE BY 10 PERCENT."
END
ELSE
PRINT "COSTS ARE REASONABLE."
END
تحلیل: دستور بالا یک دستور بسیار ساده در Travsact- SQL است. این دستور مشخص می‌کند که اگر میانگین در جدول PRODUCTS_TBL بزرگتر از 50 باشد، در آن صورت پیام "LOWER ALL COSTE BY 10 PERCENT." نمایش داده می‌شود. چنانچه کیانگین قیمت کمتر یا مساوی 50 باشد، پیام "COSTS ARE REASONABLE." نمایش داده می‌شود.
به کاربرد دستور IF … ELSE برای ارزشیابی شرطهای مقادیر داده ها توجه کنید. دستور PRINT جدید است. این گزینه های اضافی تنها بخش بسیار ناچیزی از قابلیت های Travsact- SQL هستند.
PL/ SQL
PL/ SQL محصوا اراکل است. همچون Travsact- SQL ، PL/ SQL نیز یک زبان پرسیجرال است. دستورات PL/ SQL به صورت بلوکهای منطقی سازماندهی می‌شوند. در هر بلوک سه قسمت وجود دارد که دو مورد از آنها اختیاری هستندو نخستین قسمت DECLARE است که اختیازی است. دومین قسمت PROCEDURE نام دارد. این قسمت دربرگیرنده دستورات اختیاری SQL است. این قسمت همان محل کنترل بلوک است. این قسمت یک قسمت اجباری ایت. قسمت سوم، EXCEPTION نام دارد. این قسمت تعیین می‌کند که برنامه خطاها و استثناهای تعریف شده کاربر را چگونه مدیریت کند. این قسمت نیز همچون قسمت نخست اختیاری است. عناوین مهم PL/ SQL عبارتند از: استفاده از متغیرها، ثابت ها، cursor ها، صفات مشخصات، حلقه ها، مدیریت استثناها، نمایش خروجیها برای برنامه ساز، کنترل تراکنشی، رویه های ذخیره شده، triggerها و package ها.
مثالی از یک دستور PL/ SQL در ذیل نشان داده شده است:
DECLARE
CURSOR EMP_CURSOR IS SELECT EMP_ID, LAST_NAME, FRIST_NAME, MID_INIT.
FROM EMPLOYEE_TAB;
BEGIN
OPEN EMP_CURDOR;
LOOP
FETCH EMP_CURSOR INTO EMP_REC;
EXIT WHEN EMP_CUPSOR&NOTEFOUND;
IF (EMP_REC. MID_INIT IS NULL) THEN
UPDATE EMPLOYEE_TBL
SET MID_INIT = 'X'
WHERE EMP_ID = EMP_REC. EMP_ID;
COMMIT;
END IF;
END LOOP;
CLOSE EMP_CURSORE;
END;
تحلیل: دو قسمت از سه قسمت ممکن در این مثال مورد استفاده قرار گرفته اند: قسمتهای DECLARE و PROCEDURE. نخست، cursor ی به نام EMP_CURSOR توسط یک پرس و جو تعریف می‌شود. دوم، متغیری به نام EMP_REC تعریف می‌شود که نوع داده آن همچون هر ستون cursor است. نخستین گام در قسمت PROCEDURE، بازکردن cursor است. پس بازشدن cursor هریک از رکوردهای آن با استفاده از دستور LOOP تا رسیدن به END LOOP پردازش می‌شوند. جدول EMPLOYEE_TAB باید برای تمامی سطرهای cursor به روز رسانده شود، چنانچه نام میانی یک کارمند تهی باشد. به روز رسانی سبب تغییر نام میانی به 'X' می‌شود. تغییرات اعمال شده و cursor در پایان بسته می‌شود.

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله  29  صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید


دانلود با لینک مستقیم


دانلودمقاله امکانات اضافه شده به SQL استاندارد
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد