معماری پایگاه داده Database معماری ANSI-SPARC
معماری ANSI-SPARC پایگاه داده چیست؟
هر بانك اطلاعاتي با تبعيت از يك نوع معماري طراحي مي گردد. طبق معماری 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 داخلي نوشته مي شود.
توجه: دراينجا از اصطلاح بانك اطلاعاتي ذخيره شده بجاي ديدگاه داخلي و از اصطلاح تعريف ساختار حافظه به جاي شماي داخلي استفاده مي كنيم.
در حالت هايي، برنامه هاي كاربردي (به خصوص برنامه هاي سودمند )، ممكن است اين امكان را فراهم كنند كه بجاي كاركردن در سطح خارجي، بتوان مستقيما در سطح داخلي كاركرد . اين كار پيشنهاد نمي شود . در اين حالت خطر امنيتي و خطر جامعيت وجود دارد زيرا محدوديت هاي آنها ناديده گرفته مي شود و برنامه نيز به داده ها وابسته خواهد بود . اما گاهي، اين روش، تنها راه دستيابي به عملكرد كارايي مطلوب است . مثل حالتي كه برنامه نويسان در زبان هاي سطح بالا مجبور مي شوند از زبان اسمبلي استفاده كنند تا كارايي مطلوب را به دست آورند.
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.