مدل‌های انتزاعی پایگاه داده‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
۵ نمونه از مدل های پایگاه داده

مدل انتزاعی پایگاه داده ها یا به طور خلاصه مدل داده ای نوعی از مدل داده ها است که تعیین کنندۀ ساختار منطقی پایگاه داده بوده و اساساً تعیین می کند که داده ها چگونه ذخیره، سازماندهی و دستکاری شوند. پرطرفدارترین نمونه از مدل پایگاه داده نوع رابطه ای است که از قالب جدولی بهره می برد. مدلهای رایج داده در پایگاه داده ها عبارتند از:

یک پایگاه داده شیئی- رابطه ای ترکیبی است از دو ساختار مرتبط یعنی مدل شیئی و مدل رابطه ای.

مدل فیزیکی داده دربردارندۀ دو نوع زیر است:

دیگر انواع مدلها شامل:


روابط و کارکردها[ویرایش]

یک سامانه مدیر پایگاه داده فراهم کنندۀ یک یا تعداد بیشتری از مدلهای پنج گانه است. ساختار بهینه بستگی به آرایش آغازین داده های کاربرد و نیز نیازهای کاربردی دارد که عبارتند از: آهنگ تراکنش (سرعت)، اطمینان پذیری، نگهداشت پذیری (maintainability)، مقیاس پذیری و هزینه. بیشتر نرم افزارهای مدیریت پایگاه داده بر پایۀ یکی از مدل های داده بنا می شوند اگرچه امکان پشتیبانی از دیگر انواع مدلها در این نرم افزارها نیز وجود دارد.

مدلهای فیزیکی گوناگون توانایی پیاده سازی هر نوع مدل منطقی را دارا هستند. از آنجایی که نوع انتخاب تاثیر قابل توجهی بر کارآیی دارد اغلب نرم افزارهای پایگاه داده سطح مشخصی از قابلیت تغییر در پیاده سازی مدل فیزیکی را در اختیار کاربر قرار می دهند بدین معنا که کاربر می تواند تغییرات جزیی در چگونگی پیاده سازی اعمال کند البته در سطحی محدود.

یک مدل تنها روشی برای ساختاردهی به داده ها نیست بلکه تعریف کنندۀ گروهی از عملیات ها است که می توانند بر روی داده ها اعمال شوند. بعنوان نمونه در مدل رابطه ای عملیاتی همچون select (project) and join تعریف می شود. اگر چه ممکن است این عملیات ها بویژه در مورد query language آشکار نباشند ولیکن همچنان مبنایی را فراهم می کنند که بر آن پرس و جوی زبان (query language) استوار می شود.

مدل تخت[ویرایش]

Flat File Model.

مدل (یا جدول) تخت دربردارندۀ یک آرایۀ دوبعدی از عناصر داده است که در آن فرض می شود که همۀ عضوهای یک ستون مشخص مشابه بوده و همۀ عضوهای یک ردیف با یکدیگر مرتبط اند. نمونه ای از این همانندی را می توان در ستونهای نام و گذرواژه که ممکن است بعنوان بخشی از سامانۀ امنیتی پایگاه داده بکار گرفته شوند مشاهد نمود. هر ردیف در چنین سامانه ای گذرواژۀ مربوط به یک کاربر را در خود جای می دهد. هر ستون جدول دارای نوع مشخصی داده است که تعریف می کند آن داده از کدام یک از انواع نویسه (کاراکتر)، تاریخ و زمان، عدد صحیح یا اعشاری شناور است. چنین قالبی از جدول پیش نیاز یک مدل رابطه ای به شمار می رود.

نخستین مدلهای داده[ویرایش]

این مدلها در دهۀ 1960 و 1970 پرطرفدار بوده ولی امروزه تنها در سامانه های قدیمی که هنوز به دلیل هزینۀ بالا جایگزین نشده اند دیده می شوند. مشخصۀ اصلی آنها امکان ناوبری پایگاه داده با اتصالات نیرومند میان مدلهای منطقی و فیزیکی بوده و البته از دیدگاه استقلال داده ها دارای کاستی هایی هستند.

مدل سلسله مراتبی[ویرایش]

Hierarchical Model.

در یک مدل سلسله مراتبی داده ها در یک ساختار درخت مانند سازماندهی شده که در آن هر رکورد دارای یک والد است. یک ستون مرتب سازی نیز رکوردهای خواهر/برادر را مرتب نگه می دارد. ساختار سلسله مراتبی در دوران سامانه های مدیریت پایگاه داده ابررایانه ها (mainframe) از جمله در سامانه های مدیریت اطلاعات (IMS) بوسیله IBM به طور گسترده ای استفاده می شد و هم اکنون الگویی از ساختار سندهای XML است. این ساختار امکان یک رابطۀ تک-به-بسیار میان دو نوع داده را فراهم می کند. چنین ساختاری برای نشان دادن بسیاری از روابط در جهان واقعی نیز بسیار کارآمد است مانند دستور پخت، جدول محتویات، ترتیب پارگرافها/ابیات شعر، یا هر نوع اطلاعات تودرتو.

چنین سلسله مراتبی به صورت ترتیبی فیزیکی از رکوردها در حافظه بکار گرفته می شود. دستیابی به رکوردها با ترکیبی از یک نشانگر و پویش پی در پی در در درون ساختار داده ها انجام می پذیرد. از اینرو ساختار سلسله مراتبی برای برخی از عملیات های پایگاه داده در هنگامی که مسیر کامل (در مقایسه با پیوندک (لینک) رو به بالا و ستون مرتب سازی) ذخیره سازی آن رکورد مشخص نباشد روشی ناکارآمد است. چنین محدودیتهایی با افزودن سلسله مراتب منطقی به سلسله مراتب فیزیکی مبنا در ویرایش های بعدی IMS مرتفع گردید.

مدل شبکه ای[ویرایش]

Network Model.

مدل شبکه ای تعمیم یافتۀ ساختار سلسله مراتبی بوده و بنابراین امکان برقراری رابطۀ چند- به -چند را در ساختار درخت مانندی با امکان داشتن چندین والد را فراهم می کند. این مدل پیش از این که با مدل رابطه ای جایگزین شود پرطرفدارترین مدل داده بود و مشخصات آن بوسیلۀ CODASYL تعریف شده است. مدل شبکه ای با بهره گیری از دو مفهوم داده ها را سازماندهی می کند که عبارتند از "رکوردها" و "مجموعه ها" (sets). رکوردها همانند زبان برنامه نویسی کوبول دارای ستون هایی هستند(که ممکن است به طور سلسله مراتبی سازماندهی شده باشند). مجموعه ها (نباید با مجموعه های ریاضی اشتباه گرفته شوند) روابط یک- به- چند میان رکوردها تعریف می کنند: مانند یک مالک و بسیاری عضو. یک رکورد می تواند در هر تعداد مجموعه یک مالک و در بسیاری از مجموعه ها عضو باشد.


الگوی کاری کاربران پایگاه داده‌ها را در سطح منطقی مشخص می‌کند. شگردهای مختلفی برای مدل‌های داده‌ای وجود دارد. برای هر یک از مدل‌های منطقی اجراهای فیزیکی مختلفی قابل پیاده سازی است و سطوح کنترل مختلفی در انطباق فیزیکی برای کاربران مهیا می‌کند. یک انتخاب مناسب تأثیر موثری بر اجرا دارد. یک مدل داده‌ای تنها شیوه ساختمان بندی داده‌ها نیست بلکه معمولاً به صورت مجموعه‌ای از عملیات‌ها که می‌تواند روی داده‌ها اجرا شود تعریف می‌شوند.

مدل تخت[ویرایش]

مدل تخت یا جدولی تشکیل شده است از یک آرایه دو بعدی با عناصر داده‌ای که همه اجزای یک ستون به صورت داده‌های مشابه فرض می‌شود و همه عناصر یک سطر با هم در ارتباط هستند. برای نمونه در ستون هایی که برای نام کاربری و رمز عبور در جزئی از سیستم‌های پایگاه داده‌ای امنیتی مورد استفاده قرار می‌گیرد هر سطر شامل رمز عبوری است که مخصوص یک کاربر خاص است. ستون‌های جدول که با آن در ارتباط هستند به صورت داده کاراکتری، اطلاعات زمانی، عدد صحیح یا اعداد ممیز شناور تعریف می‌شوند. این مدل پایه برنامه‌های محاسباتی است. پایگاه داده ه با فایل‌های تخت به سادگی توسط فایل‌های متنی تعریف می‌شوند. هر رکورد یک خط است و فیلدها به کمک جدا کننده‌هایی از هم مجزا می‌شوند.

مدل سلسله مراتبی[ویرایش]

در این مدل اطلاعات بوسیله اشاره گرهایی که توسط کاربر و در سطح فیزیکی تعریف می‌شوند به هم متصل می‌شوند. اطلاعات در این مدل به شکل یک درخت شبیه سازی می‌شوند. مثلاً اگر هنگام طراحی کلاس در سطح بالای دانشجو قرار گیرد، از هر دانشجو تعدادی اشاره گر به کلاسهایی که وی در آن ثبت نام کرده است، اشاره خواهند کرد. بنابراین زمان گزارش گیری نامتقارن خواهد شد و زمان پیدا کردن کلاسهایی که یک دانشجو دارد بسیار کوتاه و زمان پیدا کردن دانشجویانی که در یک کلاس ثبت نام نموده اند بسیار طولانی خواهد بود. طراحی چنین پایگاهی بسیار مشکل است. با وجود تمام این معایب کارایی این مدل از فایل‌های تخت بسیار بیشتر است.

مدل شبکه‌ای[ویرایش]

در سال ۲۰۱۰ و در کنفرانس زبانهای سیستم‌های داده‌ای توسط ارائه شد. در سال۲۰۱۰ مجدداً مطرح شد و اساس کار پایگاه داده‌ای قرار گرفت و در اوایل دهه ۸۰ با ثبت آن درسازمان بین‌المللی استانداردهای جهانی یا ISO به اوج رسید.

مدل شبکه‌ای بر پایه دو سازه مهم یعنی مجموعه‌ها و رکوردها ساخته می‌شود و برخلاف روش سلسله مراتبی که از درخت استفاده می‌کند، گراف را به کار می‌گیرد. مزیت این روش بر سلسله مراتبی این است که مدل‌های ارتباطی طبیعی بیشتری را بین موجودیت‌ها فراهم می‌کند. علی‌رغم این مزیت‌ها به دو دلیل اساسی این مدل با شکست مواجه شد: اول اینکه شرکت IBM با تولید محصولات IMS و DL/I که بر پایه مدل سلسله مراتبی است این مدل را نادیده گرفت. دوم اینکه سرانجام مدل رابطه‌ای جای آن را گرفت چون سطح بالاتر و واضح تر بود. تا اوایل دهه ۸۰ به علت کارایی رابط‌های سطح پایین مدل سلسله مراتبی و شبکه‌ای پیشنهاد می‌شد که بسیاری از نیازهای آن زمان را برطرف می‌کرد. اما با سریعتر شدن سخت‌افزار به علت قابلیت انعطاف و سودمندی بیشتر سیستم‌های رابطه‌ای به پیروزی رسیدند.

رکوردها در این مدل شامل فیلدهایی است(ممکن است همچون زبان COBOL به صورت سلسله مراتب اولویتی باشد). مجموعه‌ها با ارتباط یک به چند بین رکوردها تعریف می‌شود: یک مالک و چند عضو. عملیات‌های مدل شبکه‌ای از نوع هدایت کننده‌است: یک برنامه در موقعیت جاری خود باقی می‌ماند و از یک رکورد به رکورد دیگر می‌رود هر گاه که ارتباطی بین آنها وجود داشته باشد. معمولاً از اشاره گر ها(pointers) برای آدرس دهی مستقیم به یک رکورد در دیسک استفاده می‌شود. با این تکنیک کارایی بازیابی اضافه می‌شود هر چند در نمایش ظاهری این مدل ضروری نیست .

مدل رابطه‌ای[ویرایش]

این مدل اساس کار سامانه مدیریت پایگاه داده‌های امروزی است.

مقاله اصلی: مدل رابطه‌ای مدل رابطه ای (relational model) در سال 1970 توسط ریاضیدانی به نام Edgar.F.Codd طراحی شد. مدل داده پيشنهادی یک مدل منطقی بر مبنای ریاضیات است که از منطق گزاره ها و تئوری مجموعه ها به عنوان زیربنا استفاده شده است.

يک پايگاه داده رابطه ای (relational database) پايگاه داده ای است که با مدل رابطه ای مطابقت داشته باشد و به صورت مجموعه ای از جدول هائی که از ديد کاربر قابل درک هستند ديده می شود.

یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) سيستمی است که داده را طبق مدل رابطه ای مديريت می کند.

RDBMS ها معمول ترین نوع سيستم های مديريتی پایگاه داده امروزی هستند (نظير Microsoft SQL Server، Microsoft Access، Oracle، MySQL، Sybase، DB2 و Informix).

اکثر RDBMS ها SQL را به عنوان زبان پرس و جوی خود بکار می برند.

  • متداول ترین مدل است
• بر اساس تئوری ریاضی است 
• داده ها و ارتباطات بين آنها در پايگاه داده به صورت مجموعه ای از جداول ديده می شود
• هيچ جدولی دارای سطرهای تكراری نيست
• ترتیب سطرها و ستون ها در هر جدول مهم نيست
• ستون ها اتميک هستند يعنی مقادیر ستون ها غیر قابل تجزیه اند
• هر مقدار که در دو رکورد مختلف واقع می شود رابطه ای را بین دو آن رکورد می فهماند
• ارتباط رابطه ها با يکديگر از طریق صفات خاصه مشترک انجام می گيرد
• ایجاد، دسترسی و توسعه آن آسان است. بعد از ایجاد پایگاه داده اولیه، جداول جدید می توانند اضافه شوند بدون اینکه نیاز به تغییر کاربردهای موجود باشد 
• مدل دید کاربر است نه روشی که داده بطور داخلی سازماندهی می شود

پایگاه داده‌های چند بعدی[ویرایش]

پایگاه داده‌های رابطه‌ای توانست به سرعت بازار را تسخیر کند، هرچند کارهایی نیز وجود داشت که این پایگاه داده‌ها نمی‌توانست به خوبی انجام دهد. به ویژه به کارگیری کلیدها در چند رکورد مرتبط به هم و در چند پایگاه داده مشترک، کندی سیستم را موجب می‌شد. برای نمونه برای یافتن نشانی کاربری با نام دیوید، سیستم رابطه‌ای باید نام وی را در جدول کاربر جستجو کند و کلید اصلی را بیابد و سپس در جدول نشانی‌ها، دنبال آن کلید بگردد. اگر چه این وضعیت از نظر کاربر، فقط یک عملیات محسوب، اما به جستجو درجداول نیازمند است که این کار پیچیده و زمان بر خواهد بود. راه کار این مشکل این است که پایگاه داده‌ها اطلاعات صریح درباره ارتباط بین داده‌ها را ذخیره نماید. می‌توان به جای یافتن نشانی دیوید با جستجو ی کلید در جدول نشانی، اشاره‌گر به داده‌ها را ذخیره نمود. در واقع، اگر رکورد اصلی، مالک داده باشد، در همان مکان فیزیکی ذخیره خواهد شد و از سوی دیگر سرعت دسترسی افزایش خواهد یافت. چنین سیستمی را پایگاه داده‌های چند بعدی می‌نامند. این سیستم در هنگامی که از مجموعه داده‌های بزرگ استفاده می‌شود، بسیار سودمند خواهد بود. از آنجاییکه این سیستم برای مجموعه داده‌های بزرگ به کار می‌رود، هیچگاه در بازار به طور مستقیم عمومیت نخواهد یافت.

پایگاه داده‌های شی گرا[ویرایش]

اگر چه سیستم‌های چند بعدی نتوانستند بازار را تسخیر نمایند، اما به توسعه سیستم‌های شی گرا منجر شدند. این سیستم‌ها که مبتنی بر ساختار و مفاهیم سیستم‌های چند بعدی هستند، به کاربر امکان می‌دهند تا اشیاء را به طور مستقیم در پایگاه داده‌ها ذخیره نماید. بدین ترتیب ساختار برنامه نویسی شیء گرا (object oriented ) را می‌توان به طور مستقیم و بدون تبدیل نمودن به سایر فرمت‌ها، در پایگاه داده‌ها مورد استفاده قرار داد. این وضعیت به دلیل مفاهیم مالکیت در سیستم چند بعدی، رخ می‌دهد. در برنامه شی گرا، یک شی خاص "مالک " سایر اشیا در حافظه است، مثلاً دیوید مالک نشانی خود می‌باشد. در صورتی که مفهوم مالکیت در پایگاه داده‌های رابطه‌ای وجود ندارد.

پایگاهِ داده‌هایِ سندگرا[ویرایش]

این اجازه می‌دهد که مدل داده‌های برنامه بیشتر به شکل طبیعی‌شان نزدیک باشد به این خاطر که داده‌ها می‌توانند در سلسله مراتبی پیچیده و تودرتو قرار بگیرند اما قابلیت اجرای درخواست و شماره‌بندی‌شان را از دست ندهند.

منابع[ویرایش]