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

در این مقاله شما مطالبی درباره ی مفهوم 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) میشوند .
 

دانلود نسخه ی PDF این مطلب