بانکهای اطلاعاتی بر اساس نحوه ساختاردهی، ذخیره و بازیابی دادهها به مدلهای مختلفی تقسیم میشوند. شناخت این مدلها برای انتخاب راهکار مناسب در پروژههای مختلف ضروری است. در ادامه به بررسی مهمترین آنها میپردازیم:
۱. مدل رابطهای (Relational Database)
این رایجترین و محبوبترین نوع بانک اطلاعاتی است که در آن دادهها در جداول (Tables) با سطرها و ستونها سازماندهی میشوند. روابط بین جداول از طریق کلیدهای مشترک برقرار میگردد. زبان استاندارد مورد استفاده در این مدل، SQL است. از مزایای این مدل میتوان به پایداری بالا، یکپارچگی دادهها و پشتیبانی گسترده نرمافزاری اشاره کرد. نمونههایی از این سیستمها عبارتند از: SQL SERVER, MySQL، PostgreSQL و Oracle.
۲. مدل سلسلهمراتبی (Hierarchical Database)
در این مدل، دادهها به صورت ساختار درختی (مانند ساختار فایلها در کامپیوتر) ذخیره میشوند. در اینجا یک ریشه (Root) وجود دارد و دادههای دیگر به صورت والد و فرزند زیرمجموعه آن قرار میگیرند. این مدل برای ذخیره دادههایی که روابط یکبهمکرر دارند بسیار سریع است، اما انعطافپذیری کمی در تغییر ساختار دارد.
۳. مدل شبکهای (Network Database)
این مدل مشابه مدل سلسلهمراتبی است، اما با این تفاوت که اجازه میدهد هر فرزند دارای چندین والد باشد (روابط چندبهچند). این ویژگی باعث میشود که ساختار پیچیدهتری نسبت به مدل درختی داشته باشد و برای ارتباطات گستردهتر بین دادهها مناسبتر است.
۴. مدل شیءگرا (Object-Oriented Database)
در این مدل، دادهها به صورت اشیاء (Objects) همانطور که در برنامهنویسی شیءگرا استفاده میشوند، ذخیره میشوند. این بانکها با زبانهایی مانند جاوا یا سیپلاسپلاس هماهنگی بالایی دارند و برای مدیریت دادههای پیچیده و چندرسانهای (مانند تصاویر و ویدیوها) کاربرد دارند.
۵. مدل NoSQL (غیررابطهای)
این دسته از بانکهای اطلاعاتی برای حجم عظیمی از دادهها (Big Data) و نیاز به مقیاسپذیری بالا طراحی شدهاند. برخلاف مدلهای رابطهای، آنها از جداول ثابت استفاده نمیکنند و انعطافپذیری بسیار بالایی در ذخیره دادههای بدون ساختار یا نیمهساختار دارند. این مدل به زیرشاخههایی مانند «مبتنی بر سند» (مانند MongoDB)، «مبتنی بر کلید-مقدار» و «مبتنی بر گراف» تقسیم میشود.
با توجه به اهمیت بانک های اطلاعاتی رابطه ای و کاربرد بسیار گسترده آنها، تمرکز اصلی این درس بر روی بانک اطلاعاتی رابطه ای (Relational DataBase) می باشد.