مفهوم viewها در SQL Server
پنجشنبه 17 تیر 1395در این مقاله شما مطالبی درباره ی مفهوم viewها ، چگونگی استفاده از آن ، تفاوت آن با table و معایب و مزایای 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
- 17k بازدید
- 5 تشکر