جداول اولیه و ارائه شده ، جداول مبنا (base table) نامیده می شوند .
جدولی که توسط بعضی از عبارات رابطه ای از این جداول مبنا بدست می آید ، جدول مشتق شده (driven) نامیده می شود .
بنابراین طبق تعریف ، جداول مبنا دارای وجود و موجودیت مستقل بوده (independent existence) درحالی که جداول مشتق دارای این تعریف نیستند ( جداول مشتق متکی به جداول مبنا هستند ) .
بنابراین مشاهده می شود که یک جدول مشتق دقیقا جدولی است که برحسب جداول دیگری تعریف می شود و واضح است که یک جدول مبنا دقیقا یک جدول مشتق نمی باشد .
اکنون ، سیستم های رابطه ای به طور مشخص باید درمرحله اول امکانی را برای ایجاد جداول مبنا فراهم سازند، برای مثال در SQL این مورد توسط عبارت CREATE TABLE انجام می شود ( توجه کنید دراینجا منظور از TABLE دقیقا جدول مبنا می باشد ) و به طور مشخص جداول مبنا باید نامگذاری شوند ( درواقع نام آنها درعبارت و دستوری که آنها را ایجاد می کند ، قید خواهد شد .
برعکس ، اکثر جداول مشتق دارای نام نیستند ، بهرحال سیستم های رابطه ای معمولا نوع خاصی از جدول مشتق به نام دیدگاه (view) که دارای نام و اسم بوده را پشتیبانی می کنند .
بنابراین یک دیدگاه (view) ، جدول دارای نامی است که برخلاف یک جدول مبنا ، بخودی خود دارای موجودیت مستقلی نمی باشد ، بلکه در عوض برحسب یک یا چند جدول دارای نام مربوطه ( جداول مبنا یا سایر دیدگاه ها ) تعریف شده است .
چنانچه عبارت تعریف دیدگاه بطور واقعی ارزیابی شود ، جدول مربوطه منتج خواهد شد ولی در واقع ، منظورابدا به این صورت نیست که آن جداول به یک نسخه مجزا(separate copy) اشاره می کند .یعنی هدف ما این نیست که پیشنهاد کنیم که واقعا عبارت تعریف دیدگاه ارزیابی می شود .
درحقیقت ، دیدگاه بطور موثری تنها یک پنجره (window) بر روی جدول EMP مربوط می باشد .
البته ، مسلما هر تغییری بر روی جدول مربوطه به طور خودکار خیلی فوری از طریق پنجره قابل رویت خواهد بود ( البته این تغییرات درقسمت بدون سایه جدول EMP قرار میگیرد) .
به طور مشابهی ، تغییرات بر روی TOPEMPS البته به طور خودکار و بلافاصله بر جدول واقعی EMP اعمال می گردد .و لذا قابل رویت از طریق پنجره خواهد بود .
یک نکته نهایی وجود دارد که نیاز است درخصوص موضوع جداول مبنا و دیدگاه مطرح گردد .
تفاوت جدول مبنا و دیدگاه غالبا به صورت زیر تعریف می گردد .
جداول مبنا واقعا وجود دارند بدین مفهوم که آنها داده هایی را نشان می دهند که به طور واقعی در بانک اطلاعاتی ذخیره می شوند .
برعکس دیدگاه ها واقعا وجود ندارند اما آنها صرفا روشهای مختلف نگاه نمودن به داده های واقعی را فراهم می کنند .
هرچند این توصیف در یک حالت غیر رسمی یک بحث مفید است ولی دقیقا وضعیت درست مطالب را منعکس نمی کند .
این مسئله درست است که کاربران می توانند جداول مبنا را همانگونه که آنها به طور فیزیکی وجود دارند ، درنظر بگیرند .
درواقع نکته اصلی و مهم شیوه رابطه ای این است که به کاربران این اجازه را می دهد تا آنها جداول مبنا را به عنوان یک موجودیت فیزیکی درنظر بگیرند.
درحالی که مجبور نیستند به این مسئله توجه و دقت کنند که چگونه این جداول به طور فیزیکی درحافظه ذخیره می شوند .
ولی این مطلب یک اشکال بزرگ دارد بدین مفهوم که این روش تفکر نباید به عنوان مفهومی که یک جدول مبنا یک جدول ذخیره شده فیزیکی است ، درنظر گرفته شود ( یعنی ، مجموعه ای از رکوردهای همجوار فیزیکی و فیزیکی ذخیره شده که هرکدام شامل یک کپی مستقیم از یک جدول مبنا هستند ) جداول مبنا بهترین ایده و اندیشه به عنوان مجردسازی (abstraction) مجموعه ای از داده های ذخیره شده می باشند ( مجردسازی که در آن تمام جزئیات سطح – حافظه پنهان می باشد ) درعمل ، درجه دلخواهی از اختلاف بین یک جدول مبنا و جدول ذخیره شده وجود دارد .
1.
معماری سه سطحی
از آنجا که درچگونگی معماری پایگاه داده ها حداقل درسالهای آغازین ایجاد این تکنولوژی ، بین کارشناسان ( از محافل مختلف علمی و تکنیکی ) اتفاق نظر نبود ، لذا ANSI/SPARC با توجه به اهمیت محیط انتزاعی ، معماری پایگاه داده ها را ( به عنوان یک معماری استانده (استاندارد)) ، پیشنهاد کرد ، این معماری به معماری سه سطحی موسوم است .
نکته 1: باید توجه داشت که این سه سطح اساسا سه سطح تعریف داده ها هستند : دوسطح درمحیط انتزاعی و سطح سوم در محیط فایلینگ منطقی .
داده های ذخیره شده ( درمحیط فیزیکی ) طبعا درفایلهای فیزیکی جای دارند و هم از اینروست که پیشتر گفتیم : ساده ترین و کلی ترین تعریف پایگاه داده ها این است که گفته شود : مجموعه ای است از فایلهای ....
.
حال نمای کاملتر معماری پیشنهادی ANSI رانشان داده ، به شرح هریک از سطوح معماری می پردازیم .
دراین معماری علاوه بر سه سطح ، اجزای دیگر هم دیده می شود که درواقع جزسیستم پایگاه داده ها هستند .
دراینجا سه سطح و نیز اجزا دیگر را نام می بریم :
1.
کاربر 2.
زبان میزبان 3.
زبان داده ای فرعی 4.
دید خارجی 5.
دید ادراکی 6.
دید داخلی 7.
فایل های فیزیکی 8..سیستم مدیریت پایگاه داده ها 9.
مدیر پایگاه داده ها 2.
شرح سطوح سه گانه ازمهمترین سطح این معماری ( حداقل از نظر طراح و پیاده ساز ) شروع می کنیم : 2-1 دید ( نمای ) ادراکی ( مفهومی ) دید طراح پایگاه داده هاست نسبت به داده های ذخیره شدنی درپایگاه این دید جامع ( سرتاسری) است دربرگیرنده تمام نیازهای کاربران در محیط عملیاتی( درخرد جهان واقع ) این دید در یک محیط انتزاعی مطرح است : بنابراین مبتنی است بر یک ساختار داده ای مشخص ( از یک مدل داده ای که انتزاع لازم را تامین می کند ) .
این دید ، با استفاده از عناصر ساختاری اساسی همان ساختار داده ای ، طراحی می شود .
این دید باید ( پس از طراحی طبعا ) توصیف شود .
به وصف یا شرح دید ادراکی ، شمای ادراکی می گوییم ، شمای ادراکی نوعی "برنامه" است حاوی" دستورات داده ها" و "کنترل داده ها" ( و نه دستورات عملیات در داده ها ) سطح ادراکی درواقع همین شمای ادراکی است .
شمای ادراکی به سیستم داده می شود و در کاتالوگ سیستم نگهداری می شود .
تاکید : پس پایگاه داده ها از نظر طراح آن در سطح انتزاعی ، همان دیدادراکی است.
2-2 دید ( نمای ) خارجی دیدکاربر خاص است نسبت به داده های ذخیره شده در پایگاه داده ها این دید جزیی است و نه جامع : نشان دهنده محدوده ای از "پایگاه داده ها" که به نیازهای اطلاعاتی یک کاربر خاص پاسخ می دهد .
این دید هم درسطح انتزاعی مطرح است ، بنابراین مبتنی است که بریک ساختار داده ای مشخص و معمولا همان ساختار داده ای که دید ادراکی براساس آن طراحی و تعریف می شود .
این دید روی دید ادراکی طراحی و تعریف می شود ( به همین دلیل به جدولهای سطح ادراکی ، جدولهای مبنا یا پایه می گویند ) .
به وصف یا تعریف دید خارجی ، شمای خارجی می گوییم .
نوعی برنامه که کاربر سطح خارجی می نویسد حاوی دستورات" تعریف داده ها "و گاه "کنترل داده ها "درهمان سطح خارجی ، شمای خارجی هم به سیستم داده می شود ودرکاتالوگ آن نگهداری می شود .
نکته 1 : حداقل از لحاظ نظری می توان گفت که ساختار (مدل) داده ای دردو سطح انتزاعی یعنی سطح خارجی و سطح ادراکی میتواند یکسان نباشد .
دراین صورت ، طبعا یک واحد نرم افزاری خاص برای تبدیل یک ساختار به ساختار دیگر لازم است .
اصطلاحا می گوییم که سیستم "دوساختاره" است .
به تعریف مجموعه دیدهای خارجی کاربر ، سطح خارجی گفته می شود .
یک کاربر میتواند تعدادی دید داشته باشد .
چندکاربر میتوانند دریک دید مشترک باشند .
نکته 2 : دیدهای V1 از U1 و V1 از U2 روی جدولSTT ، دید V2 از U1 روی جدول COT ، دید V2 از U2 روی جدولهای STT ، STCOT و COT تعریف می شوند .
ضمنا دید V1 از U3 نیز روی جدولهای STT و STCOT تعریف می شود و می بینیم دارای یک ستون (صفت ) مجازی است (AVG : معدل دانشجو درهرترم ).
نکته 3 : کاربر در نامیدن ستونهای دید خود آزاد است ( بارعایت ضوابط خاص هر سیستم ) کاربر U1 در دید V2 ستون شماره درس را با CONUM ، کاربر U2 شماره دانشجو را در دید V1 ، STNUM و ...
انتخاب کرده است .
نکته 4 : می بینیم که دید ادراکی ، جدولی است و دیدخارجی کاربر نیز جدولی است ، اما دید خارجی یک جدول مجازی است ، به این معنا که داده ذخیره شده خاص خود را ندارد .
پس در هردید جدولی، ستونها و سطرهایی از یک ( یا بیش از یک ) جدول وجود دارند .
بنابراین در تعریف این نوع جدول ، به نحوی باید همان عملگرهای RESTRICT ، PROJECT ،JOIN و ...
را متناسبا بکار برد که خواهیم دید .
توجه داشته باشیم که مفهوم دید اساسا نوعی پنجره است که از آن ، کاربر می تواند محدوده پایگاه خود را ببیند و خارج از این محدوده ، هیچ نمی بیند .
نکته 5: آنچه بعد از فراکرد WHERE می آید شرط (شرایط) تعریف دید نام دارد .
تمرین 1: یک تعریف ممکن برای هر یک از دیدهای کاربران U2 و U3 ارائه کنید .
نکته 6 : دستور SELECT درتعریف دید ، یک دستور اجرایی نیست ( بازیابی انجام نمی دهد ) بلکه تنها مکانیسم تعریف دید روی جدول ( های) مبنا را نشان میدهد ( چه ستونهایی و چه سطرهایی ) .
کنجکاوی 1 : اگرکاربربخواهد داده های دید خود را ببیند ، چه باید بکند ؟
تاکید : دید خارجی هرکاربر، نشان دهنده "پایگاه داده های" همان کاربر است .
پس منطقا کاربر، پس از تعریف" پایگاه خود"، باید بتواند درآن عملیات انجام دهد :بازیابی، درج ، حذف و بهنگام سازی.
اما خواهیم دید که عملیات ذخیره سازی دردیدها همیشه امکان پذیر نیست .
تمرین 2 : درمورد دستورهای لا زم برای انجام عملیات ذخیره سازی درسطح خارجی و چگونگی انجام آنها از هم اینک اندیشه کرده ، مثالهایی با TDS قید کنید ، ( توجه داریم که دید در TDS بهرحال نوعی جدول است ) .
موضوع درجای خود بررسی خواهد شد .
کنجکاوی 2 : مفهوم دید خارجی چه مزایا و چه معایبی دارد ، درچه شرایطی میتوان از این مفهوم صرفنظر کرد ( طبعا درسطح طراحی پایگاه داده ها و درنتیجه درتولید برنامه های کاربردی) ؟
2-3 دید( نمای ) داخلی دید DBMS ( و نیز طراح پایگاه داده ها ) است درسطحی پائین تر از سطح ادراکی ، نسبت به کل داده های ذخیره شدنی درپایگاه داده ها .
این دید در سطح فایلینگ منطقی ( وگاه مجازی ) پایگاه داده ها مطرح است .
این دید مبتنی است بر یک ( و گاه بیش از یک ) ساختار فایل که معمولا بانظر و دخالت طراح پایگاه داده ها طراحی می شود ، این طراحی اصطلاحا به طراحی فیزیکی موسوم است .
سطح داخلی پایگاه داده ها ، درواقع سطحی است که درآن فایلهای منطقی پایگاه داده ها تعریف میشود.
به شرح یا تعریف دید داخلی ، شمای داخلی گفته می شود : نوعی" برنامه" که توسط خود یا وصف فایلینگ منطقی پایگاه است که درواقع همان سطح داخلی است .
نکته 7: میزان دخالت طراح و پیاده ساز پایگاه داده درتعیین جنبه های سطح داخلی پایگاه داده ها در سیستم های امروزی، نسبت به سیستم های قدیم تر ، کمتر است .
نکته 8 : همانطور که گاه ممکن است یک برنامه ساز ، درسطح پایین، برنامه سازی کند ( به زبان اسمبلی) دراستفاده و یاکنترل پایگاه داده ها هم ممکن است گاهی بعضی از برنامه ها مستقیما درسطح داخلی( به جای سطح خارجی یا ادراکی ) عمل کنند ، هرچند این کار، این برنامه ها را به محیط فایلینگ پایگاه داده ها تا حدی وابسته می کند (DATE2000) .
توجه داریم که درشمای داخلی ، انواع رکوردها تعریف می شوند و دستورهای لازم جهت ایجاد فایلها و کنترل آنها نیز دراین شما وجود دارد .
توجه : به تفاوت بین نام بعضی ستونهای جدول و فیلدهای رکوردهای متناظر درسطح داخلی دقت شود .از نظر تئوریک ، جنبه های مختلف داده ها می توانند در هر سه سطح معماری متفاوت باشند .
نکته 9: درتعریف رکوردهای سطح