سطوح معماری پایگاه داده
معماری ANSI/SPARC سه سطح مجزا را برای توصیف داده در یک پایگاه داده تعیین میکند
- سطح خارجی (external level)
- سطح ادراکی (conceptual level)
- سطح داخلی (internal level)
هدف معماری سه سطحی این است که امکاناتی را فراهم کند تا کاربران بتوانند با دیدگاههای شخصی خود به داده موردنیاز دسترسی پیدا کنند. یعنی هر کاربری بتواند به داده مشترک دسترسی پیدا کند اما دید خاص خود را داشته باشد.
بررسی دیدگاه خارجی External Level
سطح خارجی، سطح هرکاربر ازجمله محصولات خاص SQL مانند Oracle است. کاربر میتواند یک برنامه نویس کاربردی یا یک کاربر نهایی با هر درجهای از تخصص باشد (مدیر بانک اطلاعاتی ، فرد خاصی است و باید به سطوح داخلی و ادراکی علاقه مند باشد).
- هرکاربر دارای یک زبان است:
برای برنامه نویسان کاربردی، این زبان ممکن است یک زبان برنامه نویسی (مثل ++C جاوا یا PL/I) باشد یا یک زبان اختصاصی باشد که مربوط به خود آن سیستم است . این زبان های اختصاصی را معمولا زبان های نسل چهارم میگویند. زبان ماشین، زبان اسمبلی و زبانهایی مثل ++C را میتوان جزء زبانهای سه نسل قبلی دانست. زبانهای نسل چهارم با تغییراتی بر روی زبانهای ۳ نسل قبلی ایجاد میشوند. زبان کاربر نهایی ، زبان تقاضا یا زبان خاصی مثل منوگرا و فرم گرا است که خواستههای کاربران را برآورده میکند و توسط برنامههای کاربردی آنلاین پشتیبانی میشود.
بخشی از این زبانها که با اشیا و عملیات بانک اطلاعاتی سروکار دارد، مهم است. این بخش را Data Sub Language یا DSL در زبان میزبان متناظر تعبیه شده است . زبان میزبان مسئول تهیه امکانات گوناگون غیر بانک اطلاعاتی است، مثل متغیرهای محلی، اعمال محاسباتی، منطق تصمیم گیری و غیره. یک سیستم ممکن است هرتعدادی از زبانهای میزبان و تعدادی از DSL را پشتیبانی کند . اما یک DSL خاص که توسط اغلب سیستمهای فعلی پشتیبانی میشود SQL است. در اغلب این سیستمها میتوان از SQL هم به صورت محاورهای و به عنوان یک زبان مستقل تقاضا استفاده کرد و هم به عنوان زبان تعبیه شده در زبانهایی مثل جاوا استفاده نمود.
هر DSL ترکیبی از دو زبان دیگر است : زبان تعریف دادهها (DDL) که تعریف یا اعلان اشیای بانک اطلاعاتی را پشتیبانی میکند و زبان دستکاری دادهها (DML) که پردازش این اشیا را امکان پذیر میسازد. DSL این کاربر متشکل از ویژگیهایی از PL/I است که برای برقراری ارتباط با سیستم مدیریت بانک اطلاعاتی به کار میرود.
بررسی سطح ادراکی (Conceptual Level)
دیدگاه ادراکی نمایشی از کل اطلاعات موجود در بانک اطلاعاتی است (همچون دیدگاه خارجی) و در مقایسه با روش ذخیره فیزیکی دادهها، تا حدی انتزاعی است . بطور کلی، با نگرش کاربر به دادهها متفاوت است. در دیدگاه ادراکی، به دادهها به همان شکلی که هستند نگاه میشود، نه به شکلی که کاربران به دلیل محدودیتهای موجود در یک زبان یا سخت افزار، مجبور به دیدن آنها میشوند.
دیدگاه ادراکی شامل رویدادهای متعددی از هریک از انواع رکورد ادراکی است . به عنوان مثال، ممکن است شامل رویدادهای رکورد سازمان، به علاوه مجموعه ای از رویدادهای رکورد کارمند، به علاوه مجموعه ای از رویدادهای رکورد عرضه کننده، به علاوه مجموعهای از رویدادهای رکورد قطعات و غیره باشد. رکورد ادراکی، الزاما با رکورد خارجی یا رکورد ذخیره شده یکسان نیست. دیدگاه ادراکی به وسیله شمای ادراکی تعریف میشود که حاوی تعاریف هریک از انواع مختلف رکورد ادراکی است.
شمای ادراکی با استفاده از یک زبان تعریف داده به نام DDL ادراکی نوشته میشود . اگر استقلال فیزیکی دادهها حفظ شود، این تعریف DDL ادراکی نباید شامل ملاحظاتی در خصوص نمایش فیزیکی یا تکنیکهای دستیابی باشد . فقط باید محتویات اطلاعات را تعریف کنند. بنابراین، در شمای ادراکی نباید به نمایش فیلد ذخیره شده، دنباله رکورد ذخیره شده، شاخصها، روشهای درهم سازی، اشارهگرها و جزئیات ذخیره سازی و دستیابی، ارجاع شود. اگر شمای ادراکی کاملا مستقل از دادهها ساخته شود، آنگاه شمای خارجی، که برحسب شمای ادراکی تعریف شده است، مستقل از دادهها خواهد بود.
- به بیان دیگر
پس، دیدگاه ادراکی، دیدگاهی نسبت به کل محتویات بانک اطلاعاتی است و شمای ادراکی، آن دیدگاه را تعریف میکند نمیتوان گفت شمای ادراکی همان تعاریف رکورد در زبان کوبول است. تعاریف در شمای ادراکی شامل ویژگیهای متعددی است. بعضی از مؤلفین پیشنهاد میکنند که هدف نهایی شمای ادراکی، توصیف کل مؤسسه است.
نه فقط خود داده ها، بلکه چگونگی استفاده از داده ها نیز هست: داده ها در مؤسسه، چگونه از نقطه ای به نقطه دیگر می روند و غیره. یادآوری می شود که هیچکدام از سیستم های امروزی از شمای ادراکی که این درجه از تمامیت را شامل شود، پشتیبانی نمی کنند . در اغلب سیستم های موجود ، شمای ادراکی کمی بیشتر از اجتماع تمام شماهای خارجی، به اضافه قیدهای امنیتی و جامعیت است. اما سیستم های آینده ممکن است در استفاده از شمای ادراکی تخصص داشته باشند.
بررسی سطح داخلی (Internal Level)
دیدگاه ادراکی، نمایش سطح پایینی از کل بانک اطلاعاتی است و شامل رویدادهای متعددی از انواع مختلف رکورد داخلی است. رکورد داخلی اصطلاح ANSI/SPARC برای ساختاری است که آن را رکورد ذخیره شده نامیدیم. دیدگاه داخلی بالاتر از سطح فیزیکی است، زیرا با اصطلاح رکوردهای فیزیکی که بلوک ها یا صفحات نیز نامیده می شوند، سروکار ندارد . همچنین با ملاحظات دستگاه ها مثل اندازه سیلندرها و شیارها نیز سروکار ندارد . بعبارت دیگر، دیدگاه داخلی، فضای خطی نامحدودی را فرض می کند، جزئیات چگونگی نگاشت فضای آدرس به حافظه فیزیکی کاملا وابسته به سیستم است و از معماری کلی حذف شده است.
دیدگاه داخلی به وسیله شمای داخلی توصیف می شود که نه تنها انواع رکورد ذخیره شده را تعریف می کند بلکه مشخص می کند چه شاخص هایی وجود دارد، فیلدهای ذخیره شده چگونه نمایش داده می شوند، ترتیب ف یزیکی ذخیره رکوردها چگونه است و غیره. شمای داخلی با استفاده از یک زبان تعریف داده ها به نام DDL داخلی نوشته می شود.
- توجه: در اینجا از اصطلاح بانک اطلاعاتی ذخیره شده بجای دیدگاه داخلی و از اصطلاح تعریف ساختار حافظه به جای شمای داخلی استفاده میکنیم.
در حالتهایی، برنامههای کاربردی (به خصوص برنامه های سودمند )، ممکن است این امکان را فراهم کنند که بجای کارکردن در سطح خارجی، بتوان مستقیما در سطح داخلی کارکرد . این کار پیشنهاد نمیشود . در این حالت خطر امنیتی و خطر جامعیت وجود دارد زیرا محدودیتهای آنها نادیده گرفته میشود و برنامه نیز به دادهها وابسته خواهد بود . اما گاهی، این روش، تنها راه دستیابی به عملکرد کارایی مطلوب است . مثل حالتی که برنامه نویسان در زبانهای سطح بالا مجبور میشوند از زبان اسمبلی استفاده کنند تا کارایی مطلوب را به دست آورند.