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









