دید ادراکی در پایگاه داده
نویسنده : مینا علی زاده | زمان انتشار : 02 فروردین 1401 ساعت 14:01
جهت انجام پروژه های دانشجویی و یا تمرینهای برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید
@AlirezaSepand
معماری سه سطحی 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)
هدف معماری سه سطحی اين است که امکاناتی را فراهم کند تا کاربران بتوانند با ديدگاه های شخصی خود به داده موردنياز دسترسی پيدا کنند. يعنی هر کاربری بتواند به داده مشترک دسترسی پيدا کند اما ديد خاص خود را داشته باشد.
از طرف ديگر فاصله بین سطح داخلی از سطح خارجی دلالت بر این دارد که کاربر نیازی به دانستن جزئیات فیزکی داده ذخیره شده در پایگاه داده ندارد. این تفکیک سطح اجازه تغییر ساختار ذخیره سازی پایگاه داده را بدون تاثیر روی دیدهای کاربران می دهد. لازمه اين استقلال سطوح از همديگر است به نحوی که تغييرات روی يک سطح روی بقيه تاثير نگذارد.
سطح خارجی
سطح خارجی دید کاربر از داده های ذخیره شده در پايگاه داده است. منظور از دید کاربر (user view) قسمتی از پایگاه داده است که کاربر با آن سروکار دارد. يعنی مجموعه ای از صفات خاصه موجوديت هائی است که در اختيار کاربر قرار داده می شود. هر کاربر دیدگاه های خاص خود را از پايگاه داده می تواند داشته باشد.
دید هر کاربر باید تعریف شود. به تعریف و شرح دید کاربر شمای خارجی (external schema) می گویند. برای تعريف شمای خارجی از یک مدل داده استفاده می شود که معمولا همان است که در سطح ادراکی بکار رفته است.
سطح ادراکی
سطح ادراکی کل داده های که در پایگاه داده ذخیره می شوند و ارتباط مابين آنها را شرح می دهد. یعنی داده هائی درباره انواع موجودیت ها و ارتباط آنها در محیط عملیاتی را توصيف می کند.
سطح ادراکی دید طراح پایگاه داده از داده های ذخیره شده در پايگاه داده است. داده های دنيای واقعی آنطور که واقعا هستند توسط طراح پايگاده داده مدل می شوندد.
برای تعریف سطح ادراکی از یک ساختار یا مدل داده استفاده می شود که شمای ادراکی (conceptual schema) ناميده می شود. شمای ادراکی کلیه داده ها و ارتباط بین آنها را توصیف می کند. علاوه بر اين رويه های شناسائی و قیدهای جامعیت را نيز دربر می گيرد.
برای کسب استقلال داده، شمای ادراکی تنها درگير معنی داده است و جنبه های نمایش داده، سازماندهی فیزیکی و استراتژی های دستيابی نديده گرفته می شود.
شمای خارجی از شمای ادراکی مشتق می شود و اگر مدل داده در هر دو سطح یکسان نباشد سیستم پایگاه داده را دوساختاری می نامند.
سطح داخلی
سطح داخلی درگیر چگونگی نمایش فیزیکی پایگاه داده روی سیستم کامپیوتری است و شرح می دهد چگونه داده واقعا در پایگاه داده و سخت افزار ذخیره می شود.
سطح داخلی دید طراح پايگاه داده از محیط فیزیکی ذخیره سازی و درواقع فایل های محیط فیزیکی است که توسط شمای داخلی (internal schema) توصيف می شود. شمای داخلی نحوه نمايش فيزيکی داده هایی را که در شمای ادراکی شرح داده شده را مشخص می کند. انواع مختلف رکوردها، فيلدهای داده، فایل ها، نحوه نمایش رکوردها در فایل، استراتژی دستیابی، شاخص ها و چگونگی ترتیب رکوردها در فایل توسط شمای داخلی تشریح می شوند.
جزئيات تبديل به منبع ذخيره سازی در معماری سه سطحی بيان نمی شود و از این سطح به پائین در اختیار DBMS نیست و به عهده سیستم عامل و درایورهای دستگاه ذخیره سازی است.
مثال. در يک سازمان موجوديت کارمند را درنظر بگيريد. دوکاربرUser1 و User2 با دو ديد مختلف با اين موجوديت کار می کنند. تعريف ديدهای خارجی، ادراکی و داخلی می توانند چنين باشند:
خارجی.
User View 1(PL/1):
DCL 1 EMPP,
2 Emp# Char(6),
2 Sal Fixed Bin (31);
User View 2(COBOL):
01 EMPC.
02 Empano Pic x(6).
02 Pic x(4).
ادراکی.
Employee
Employee_Number Character(6)
Department_Number Character(4)
Salary Numeric (5)
داخلی.
Stored_Emp
Prefix Type=Byte(6), Offset = 0
Emp# Type = Byte (6), Offset = 6, Index = Empx
Dept# Type = Byte (4), Offset = 12
Pay Type = FullWord, Offset = 16
تبديلات بين سطوح
در معماری سه سطحی روش هائی برای تبديل سطوح به يکديگر وجود دارد. دو سطح از تبديل موجود است:
• تبديل ادراکی/داخلی ارتباط ديد داخلی و ادراکی را تعريف می کند. تعيين می کند رکوردها و فيلدهای سطح ادراکی چگونه در سطح داخلی نمايش داده شوند. تغييرات در سطح داخلی باعث عوض شدن تبديل ادراکی/داخلی می شود. بنابراين شِمای ادراکی ممکن است ثابت بماند تا استقلال فيزيکی حاصل شود.
• تبديل خارجی/ادراکی ارتباط ديد ادراکی و يک ديد خاص خارجی را برقرار می کند. مثلا يک صفت خاصه از ديد کاربری ممکن است ترکيبی از چندين فيلد در سطح ادراکی باشد. تغيير در تعاريف ادراکی باعث تغيير نگاشت ادراکی/خارجی می شود. از اين رو شِمای خارجی ممکن است ثابت بماند تا استقلال داده منطقی بدست بيايد.
استقلال داده
سيستم های قديمی وابسته به داده بودند به اين معنی که روش سازماندهی داده در دستگاه جانبی و روش دسترسی به آن توسط برنامه و در منطق آن ساخته می شدند. در چنين سيستمی تغيير در ساختار دخيره سازی يا استراتژی دستيابی بدون تاثير روی برنامه غيرممکن است.
يکی از مزايای سيستم پايگاه داده استقلال داده است. استقلال داده به معنی مصونيت برنامه ها از تغييرات ساختار ذخيره سازی و استراتژی دستيابی است. ساختار ذخيره سازی بدون تاثير روی ديدهای کاربران است می تواند تغيير کند. پايگاه داده و برنامه های کاربری هم می توانند مستقل از يکديگر تغيير کنند.
دو نوع استقلال داده وجود دارد:
1. استقلال فیزیکی داده
• استقلال فیزیکی داده نشان می دهد تا چه اندازه شمای داخلی می تواند بدون تاثیر روی برنامه های کاربردی تغییر کند.
2. استقلال منطقی داده
• استقلال منطقی داده نشان می دهد تا چه اندازه شمای ادراکی می تواند بدون تاثیر روی برنامه کاربردی تغییر کند.
زبان ميزبان و زبان فرعي داده
برنامه نويسان، برنامه های کاربردی را با استفاده از يک زبان های سطح بالا نظير Visual basic، Java و Visial C پياده سازی می کنند. زبان سطح بالائی که علاوه بر داشتن امکانات گوناگون دارای دستوراتی برای تعريف و کار با داده هستند زبان ميزبان (host language) ناميده می شوند.
زيرمجموعه ای از زبان ميزبان که مختص عمليات ذخيره و بازيابی اطلاعات از پايگاه داده است زبان فرعی داده (Data Sub Language) نام دارد.
هر DSL ترکيبی از سه زبان ديگر است:
1. احکام تعريف داده (DDL)
2. احکام کارکردن با داده (DML)
3. احکام کنترلی (DCL)
زبان تعریف داده
DDL مخفف Data Definition Language امکان تعريف يا توصيف اشيای پايگاه داده را می دهد. ساختار ركوردها، تعریف فیلدها، محل فایل ها و شیوه ذخیره سازی داده ها در بانك به وسیله احكام DDL انجام می پذیرد.
مثال. نوع رکور زير را درنظر بگيريد.
create table account (
account-number char(10),
balance integer)
زبان دستکاری داده
DML مخفف Data Manipulation Language عمليات پردازشی و دستکاری اشيای پايگاه داده مانند insert، select، update را پشتيبانی می کند.
DML به عنوان زبان پرس و جو هم شناخته می شود واغلب دارای قابلیت انجام محاسبات ریاضی و آماری است كه عملیات گزارش گیری از پايگاه داده را آسان تر می کند.
زبان کنترل داده
DCL مخفف Data Control Language امکان تعيين نوع استراتژی های دستيابی، تعريف شاخص ها و مرتب سازی داده های پايگاه داده را می دهد.
دو دسته زبان DSL وجود دارد:
• رویه ای (Procedural). کاربر داده ای که نياز دارد و نحوه دريافت آن را تعيين می کند.
• غیررویه ای (nonprocedural) يا (Declarative). کاربر تعیین می کند چه داده ای مورد نیاز است ولی نحوه حصول آن را بيان نمی کند.
هر سیستم پایگاه داده DSL خاص خود را دارد به عبارت دیگر هر مدل داده زبان فرعی خاص دارد. يک DSL خاص که توسط اغلب سيستم های فعلی پستيبانی می شود SQL است. SQL يک زبان غير رويه ای است.
سطوح داخلی، ادراکی و خارجی هريک DSL خاص خود را دارند. شِمای هر سطح توسط DSL مربوطه نوشته می شود.
XML مخفف Extensible Markup Language که توسط کنسرسیم W3C معرفی شده است زبان نشانه گذاری مستندات است تا زبان پایگاه داده. اما توانائی آن در تعیین تگ های جدید و تولید ساختارهای تودرتو باعث شد روش مهمی برای تبادل داده بشود و اکنون XML اساس کلیه فرمت های تبادل داده نسل جدید شده است. ابزارهای گوناگونی برای تجزیه، مرور و پرس و جو داده/مستندات XML موجود است.
کاربران پایگاه داده
کاربران يک سيستم پايگاه داده توسط روش هائی که با سيستم تعامل می کنند از هم تفکيک می شوند.
تحلیل گران سیستم
تحليل گران سيستم (system analysts) با گروه کاربران پایگاه داده به منظور درک نیازهای اطلاعاتی و پردازشی آنها ارتباط دارند. نیاز های اطلاعاتی و پردازشی هر گروه را مجتمع می کنند و مستندسازی می کنند.
طراحان پایگاه داده
طراحان پايگاه داده (database designers) ساختار مناسبی را برای نمایش اطلاعات مشخص شده توسط تحلیل گر سیستم به طریق نرمالسازی شده به منظور تضمین جامعیت و سازگاری داده انتخاب می کنند و با استفاده از DDL داده های پايگاه داده را تعريف می کنند.
پیاده سازان برنامه های کاربردی
برنامه نويسان برنامه های کاربردی (Application Developers) برای برآوردن نيازهای کاربران و کار با پايگاه داده برنامه هایی را آماده می کنند. تست، اشکالزدائی و مستندسازی برنامه و پايگاه داده از وظايف برنامه نويسان است. برنامه نويسان با سيستم توسط احکام DML ارتباط برقرار می کنند.
مدیر پایگاه داده
مدير پايگاه داده (database administrator) يا بطور خلاصه DBA فردی است که مسئول کنترل عمليات کل سيستم پايگاه داده است. DBA کلیه فعالیت های سیستم پایگاه داده را هماهنگ می کنند. اين فرد بايد درک خوبی از منابع و نیازهای اطلاعاتی کل سازمان داشته باشد و برای حصول اطمينان از اينکه داده موردنياز قابل دسترس کاربران قرار می گيرد با آنها در ارتباط باشد.
بعضی از وظایف DBA شامل:
• تعريف شِماها توسط DDL
• تعريف ساختار ذخيره سازی و متدهای دسترسی توسط DDL
• اصلاح شِما و سازماندهی فيزيکی
• اعطای مجوز دسترسی پايگاه داده به کاربران
• تعيين قيدهای جامعيت
• عامل ارتباطی کاربران
• نظارت اجرا و واکنش برای تغییر درصورت نیاز
• برقراری ديکشنری داده
کاربران نهائی
کاربران نهائی (End Users) شامل:
• کاربران پارامتری : که توسط برنامه های کاربردی نوشته شده با سيستم سروکار دارند. مانند تحويلدار بانک و کارکنان دفتری.
• کاربران ماهر : که نیاز های پیچیده تری دارند و با قابلیت های DBMS آشنائی کامل دارند. درخواست های خود از پایگاه داده را توسط یک زبان پرس و جو می سازند.
• کاربران نهائی اتفاقی : کسانی که دسترسی گاه و بیگاه به پایگاه داده دارند اما ممکن است هر بار نیازهای متفاوتی داشته باشند. از زبان های پرس و جوی و مرورگرهای حرفه ای تر استفاده می کنند.
ديکشنری داده
دیكشنری داده ها (Data Catalog) یكی از امكاناتی است كه در سيستم پايگاه داده در اختيار DBA قرار می گیرد. دیكشنری داده ها كه به آن راهنمای سیستم نیز می گویند يک متا داده است يعنی اطلاعاتی درباره خود پايگاه داده و داده های ذخیره شده در آن را نگهداری می کند.
دیکشنری داده تعيين می کند چه داده ای موجود است و چه معنی دارد، داده چگونه ذخیره می شود و در کجا قرار دارد، مالک آن چه کسی است و چه کسانی اجازه دسترسی به داده را دارند، تاریخچه و آمار استفاده از داده را دربردارد.
سوالات چند گزينه ای معماری پايگاه داده
منبع: www.hpkclasses.ir