بررسی ساختار امکانات و محدودیتهای موجود در ساختار نسخه ها و روایتهای مختلف پایگاه داده قدرتمند Microsoft sql server

تفاوتهای نسخه های sql server

توسط admin | گروه sql | 1396/03/13

نظرات 0

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

در این مقاله امکاناتی که به SQL استاندارد ANSI اضلفه شده اند بررسی شده اند. اگرچه بیشتر نسخه های SQL در بسیاری از زمینه ها مطابق استاندارد هستند، اما بسیاری از فروشندگان امکاناتی را به شکلهای مختلف به SQL استاندارد اضافه کرده اند.
عناوین مهم این فصل عبارتند از:
نسخه های مختلف SQL
تفاوت بین نسخه های مختلف SQL
سازگاری با ANSI SQL
دستورات محاوره ای SQL
استفاده از متغیرها
استفاده از پارامترها
 
نسخه های مختلف SQL
نسخه های زیادی از SQL وجود دارند که توسط فروشندگان گوناگون عرضه می‌شوند. البته نمی‌توان تمام فروشندگان بانکهای اطلاعاتی رابطه ای ذکر نمود؛ اما تعداد کمی از آنها در این فصل بررسی شده اند. نسخه های مورد بررسی این فصل عبارتند از: dBASE, Sybase ، میکرسلفت SQL Server و ارکل. سایر فروشندگان محصولات اطلاعاتی عبارتند از: بورلند، IBM، اینفور میکس، progress، CA-Ingres و بسیار بیشتر.
 
تفاوت نسخه های sql server
 
تفاوت بین نسخه های مختلف 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 در بیشتر موارد مساله ای نیست.

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر