مفهوم viewها در SQL Server

پنجشنبه 17 تیر 1395

در این مقاله شما مطالبی درباره ی مفهوم viewها ، چگونگی استفاده از آن ، تفاوت آن با table و معایب و مزایای view در SQL server یاد خواهید گرفت .

مفهوم viewها در SQL Server

view چیست ؟
view یک کالکشن منطقی از جدولها در SQL server است که در پایگاه داده SQL ذخیره شده است . ( View یک جدول مجازی است که بصورت فیزیکی وجود نداره اما بوسیله اتصال جدولها ( Joinned Table ) در SQL ساخته میشود ) .


view برای کاربر پایگاه داده همانند یک جدول ظاهر می شود . viewها باعث بالا رفتن کارایی سرور میشوند . viewها همانند جدول ها در SQL Server دارای سطر و ستون هستند . این تعریف ها از جدولها در پایگاه داده ذخیره شده است .

viewها برای مقاصد امنیتی در پایگاه داده مورد استفاده قرار میگیرند ، و viewها کاربر رو در دسترسی و دیدن سطرها و ستون ها محدود می کند که این بدین معنی ست که ، ما بوسیله viewها میتوانیم محدودیت هایی رو برای دسترسی کابرهای متفاوت ، به سطر ها و ستون های خاصی ، اعمال کنیم  . viewها فقط داده هایی که در Qurey زیر ذکر شدند ، را نمایش میدهد . بنابراین فقط داده هایی که توسط Query برگردانده میشود را نمایش میدهد که این امر در زمان ساخت view تعریف میشود . 

Syntax of View

CREATE VIEW [schema_name.]view_name AS  
[ WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }  
SELECT expressions  
FROM tables  
[WHERE conditions];

1. در تکه کد بالا schema_name نموداری است که ما قصد ساختن آن را داریم .
2. View_name  نام view است که ما قصد ساختن آن را داریم .
 
Encryption3. ، امنیتی است که ما میتوانیم بر روی view ها اعمال کنیم .
4. schemabinding تضمین میکند که تعاریف بنیادی و اساسی جدول قابل تغییر نیستند . 
5. view_metadata تضمین خواهد کرد که پایگاه داده ما metdata در مورد view دارد.
6. سطرها و محاسباتی که شما میخواهید به view اضافه کنید ، با استفاده از عبارت experssion است .
7. Table ، در اینجا جدولی را اضافه میکنیم که نمودار view را تعریف میکند ، ما در اینجا برای ساختن view حداقل یک جدول را باید وارد کنیم.
8. در این بند ، ما شرط هایی رو به کار میبریم که بهتر است توسط view ها رعایت شود ، اما همه این شرط ها اختیاری هستند . 

یک مثال ساده از view :

 CREATE VIEW PRODINVENTION AS  
SELECT products.product_id, products.product_name, inventory.quantity  
FROM products  
INNER JOIN inventory  
ON products.product_id = inventory.product_id  
WHERE products.product_id >= 1000; 

 9. با استفاده از عبارت SELECT ما میتوانیم جدول را بازیابی کنیم ، همانند انتخاب یک جدول . 

SELECT *FROM PRODINVENTION

10.با استفاده از عبارت ALTER ما میتوانیم view را بروزرسانی کنیم و بوسیله عبارت DROP میتوانیم view را حذف کنیم.

نکته : ما میتوانیم جداول استفاده شده توسط view رو DROP کنیم ، اگر این جداول را حذف کنیم view در پایگاه داده باقی میماند.

Syntax for Update & Drop

---for updation of view  
ALTER VIEW [schema_name.]view_name AS  
[ WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }  
SELECT expressions  
FROM tables  
WHERE conditions;  
--to drop view  
DROP VIEW view_name; 

مزایای View

Security – امنیت :
ما میتوانیم دسترسی کاربر به View محرمانه که حاوی اطلاعات مهمی است را محدود کنیم .

سادگی کوئری :
یک View میتواند چندین جدول اطلاعاتی را بازیابی کرده و آن را در یک جدول نمایش دهد ، تبدیل کوئری های چند-جدول به کوئیر یک-جدول با استفاده از ویو. بنابراین به جای نوشتن تمام اظهارات با استفاده از عبارت ساده SELECT در View ها میتوانیم اطلاعات را بازیابی کینیم .

سادگی ساختار :

view ها میتوانند به کاربران یه دید شخصی از ساختار پایگاه داده بدهند ، ارائه پایگاه داده در قالب مجموعه ای مجازی از جدولها که یک دید بصری برای کاربر میسازد .  

انسجام :
یک View میتواند سازگار باشد ، تصویر بدون تغییر از ساختار پایگاه داده ، حتی اگر جداول بنیادی و اساسی منبع تقسیم ، بازسازی یا تغییر نام داد . برای مثال ، اگر ما جدولی را که در view بکار برده شده را تغییر دهیم ، با وجود اینکه داده های جدول تغییر میکند اما داده های view تغییری نخواهد کرد.  

یکپارچگی داده :
اگر داده پردازش شده و در یک View ثبت شده باشد ، مدیر پایگاه داده میتواند برای اینکه مطمئن شود که  داده مطابق محدودیت یکپارچگی مشخص شده است ، بصورت خودکار داده چک کند .

استقلال داده های منطقی :
view میتواند به نرم افزار و جداول پایگاه داده را تا یک حد معینی استقلال دهد . اگر در این جا view نباشد ، اساس و پایه ما باید بر روی جداول باشد . با view ، این برنامه میتواند در نمای بالا مستقر گردد ، برای مشاهده برنامه با یک جدول پایگاه داده باید از هم جدا باشد .  

کارایی:
viewها ظاهر جداول را میسازند ، اما همچنان مدیر پایگاه داده باید کوئری ها را ترجمه کند . اگه view با کوئری های پیچیده و چند-جدولی (multi-table) تعریف شده باشد انگاه کوئری های ساده در اجرای ویو ممکن است زمان قابل توجهی را بگیرند .


محدودیت بروزرسانی :
وقتی یک کاربر سعی در بروزرسانی یک سطر از View را دارد ، مدیر پایگاه داده باید این درخواست را به بروزرسانی سطر های جداول بنیادی منبع ترجمه کند . این امکان برای viewهای ساده وجود دارد ، اما viewهای پیچیده اغلب محدود به فقط-خواندن (read-only) میشوند .
 

آموزش نصب sql server 2017

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید