دید در مدل رابطه ای
1- دیدهای رابطه ای
2- دید در SQL
3- مزایا و معایب دید
4- عملیات در دیدهای رابطه ای
5- انواع دید از نظر پذیرش عملیات ذخیره سازی
6- انواع دیدهای پذیرا
7- انواع دیدهای ناپذیرا
8- ویژگیهای دیدهای قابل بهنگام سازی
آنچه در این جلسه می خوانید:
هدفهای کلی: آشنایی با دید در مدل رابطه ای
هدفهای رفتاری: دانشجو در پایان این جلسه می تواند:
دید را تعریف کند و دستورات SQL مرتبت با آن را بکار برد.
مزایای استفاده از دید را برشمارد.
عملیات قابل انجام روی دید را شرح دهد.
انواع دید از لحاظ پذیرا و ناپذیرا را نام ببرد.
دیدهای رابطه ای
دید در مدل رابطه ای نوعی رابطه است، بنابراین می توان آن را به کمک یک عبارت جبر رابطه ای یا حساب رابطه ای به شکل زیر تعریف کرد:
View name= Relational expression
دید در SQL
دستور ایجاد دید
CREATE VIEW Viewname [(Column-name(s))]
AS Subquery
.
.
.
[WITH [CASCADE|LOCAL] CHECK OPTION];
مثال
CREATE VIEW MAPHSTUD( STNUM, STLEV, STAREA)
AS SELECT STID, STDEG, STMJR
FROM STT
WHERE STMJR=‘Math’ OR STMJR=‘Phys’
WITH LOCAL CHECK OPTION;
دید در SQL
دستور حذف دید
DROP VIEW Viewname {restrict | cascade}
مثال:
DROP VIEW MAPHSTUD CASCADE;
مزایای دید
تامین کننده محیط انتزاعی برای کاربران سطح خارجی
تامین کننده پویایی بالا در تعریف پایگاه توسط کاربر
تسهیل کننده واسط کاربر برنامه ساز با پایگاه
امکانی است برای کوتاه نویسی یا ماکرونویسی پرسشها
تامین کننده اشتراک داده ای
تامین کننده نوعی مکانیسم خودکار ایمنی داده ها
تامین کننده استقلال داده ای فیزیکی و منطقی
امکان تعریف شیئ با اندازه های مختلف
معایب دید
ایجاد فزونکاری در سیستم برای انجام تبدیل خارجی/ادراکی و احیانا خارجی/خارجی
عدم امکان انجام عملیات ذخیره سازی در بسیاری از گونه های دید و در نتیجه ایجاد محدودیت برای کاربر
عملیات در دیدهای رابطه ای
بازیابی از دید رابطه ای
چون دید خود نوعی رابطه است، پس برای بازیابی از دید هم یک عبارت جبری یا حسابی می نویسیم
مثال بازیابی از یک دید با استفاده از دستورات SQL
CREATE VIEW
AS SELECT STID, STDEG
FROM STT
WHERE STPROG=‘Math’
SELECT STID
FROM
WHERE STDEG=‘bs’;
عملیات در دیدهای رابطه ای
عملیات ذخیره سازی در دیدهای رابطه ای
برای انجام عملیات ذخیره سازی در دید از همان دستورات سه گانه INSERT، UPDATE و DELETE استفاده می شود.
دیدها از نظر پذیرش عملیات ذخیره سازی
دیدهای پذیرا
دیدهای ناپذیرا
دیدهای پذیرا
دیدهای گزینشی
دید گزینش – پرتوی دارای کلید رابطه مبنا
دید پیوندی CK-CK
دید پیوندی CK-FK
دید حاصل اجتماع، اشتراک و تفاضل دو رابطه
دید گزینشی حاصل عملگر گزینش در یک رابطه است.
در دید ”گزینش-پرتوی دارای کلید رابطه مبنا“ علاوه بر گزینش تاپلهایی از رابطه مبنا، عملگر پرتو نیز اعمال شده است. این نوع دید را اصطلاحا دید دارای کلید با تاپلهای ناقص می گوئیم.
دید پیوندی CK-CK، حاصل پیوند دو رابطه روی کلید کاندید مشترک آنها است و در عملیات ذخیره سازی مشکلی ندارد
دید پیوندی CK-FK، حاصل پیوند روی کلید کاندید یک رابطه و کلید خارجی رابطه دیگر است. این دید در حذف مشکل دارد، زیرا با حذف یک تاپل از این دید، در هریک از دو رابطه مبنا، یک تاپل حذف می شود و چنانچه کاربر بخواهد محتوای دید خود را نمایش دهد، تاپلهای دیگر هم از دید او حذف می شوند که درخواست نکرده است.
دید حاصل اجتماع، اشتراک و تفاضل دو رابطه در عملیات ذخیره سازی مشکلی ندارد، به شرط آنکه سیستم بتواند تشخیص دهد که عمل درخواست شده، در کدامیک از دو رابطه مبنا انجام شود.
مشکلات مهمتر دیدهای پذیرا
بروز عارضه جانبی در خود دید
بروز عارضه جانبی در دیدهای دیگر
نقض قاعده جامعیت
بروز فزونکاری در سیستم
تغییر ماهیت عمل درخواست شده
تعدد تبدیلات و مشکل تصمیم گیری
دیدهای ناپذیرا
دید پرتوی یا گزینشی فاقد کلید رابطه مبنا
دید پیوندی NK-NK
دید پیوندی FK-FK
دید حاوی صفت مجازی
دید حاصل تقسیم
ویژگیهای دیدهای قابل بهنگام سازی
عبارت تعریف کننده محدوده دید، یک عبارت معتبر SELECT باشد.
در کلاز FROM، عبارت SELECT، فقط یک جدول وجود داشته باشد.
جدول قیدشده در کلاز FROM، یک جدول مبنا یا یک دید قابل بهنگام سازی باشد.
در item-list عبارت SELECT، ستونهای مورد نظر باید در جدول مبنا متناظر باشد.
در عبارت SELECT نباید کلاز GROUP BY و HAVING و گزینه DISTINCT وجود داشته باشد.
در کلاز WHERE عبارت SELECT نباید عبارتی حاوی کلاز FROM باشد، به گونه ای که در آن به همان جدولی ارجاع داده شده باشد که در کلاز FROM قبلی به آن ارجاع شده است.