از دیر باز تاکنون نوع بشر همواره نیازمند تولید، ذخیرهسازی، بازیابی و پردازش اطلاعات بوده است و نیاز به توضیح نیست که این امر در طول زندگی بشر از ابتدا تاکنون به اَشکال مختلفی صورت گرفته است که برای رسیدن به این مقصود، روشهای مختلفی در طول تاریخ به کار گرفته شده است تا اینکه در عصر فناوری لزوم ایجاد Database (پایگاه داده) و استفاده از آن مطرح شد.
پایگاه داده مجموعهای از دادههای ذخیرهشدهٔ مرتبط به یکدیگر و با حداقل اصطلاحاً Redundancy (افزونگی) است که مطابق با یک Data Model مشخص سازماندهی شدهاند به طوری که استفاده از پایگاه داده موجب افزایش کارایی در ذخیره، بازیابی و حذف اطلاعات میشود به طوری که مثلاً پایگاه دادهٔ یک دانشگاه میتواند شامل اطلاعات مربوط به چیزهای مختلفی همچون دانشجو، استاد، درس، دانشکده، کارکنان و غیره باشد.
به خاطر داشته باشید Redundancy به تکرار ذخیرهسازی دادههای یکسان در دیتابیس گفته میشود که البته باید ذکر کنیم ثبت برخی دادههای یکسان در دیتابیس کاملاً طبیعی است و مشکلی ایجاد نمیکند مانند سن دانشجویان که ممکن است برای برخی از دانشجویان یکسان باشد ولی گاهی اوقات نیز این مسئله ناشی از طراحی نادرست ساختار دیتابیس است که میتواند در آینده و زمانی که سیستم حجیم شد مشکلساز گردد.
آشنایی با مفهوم دیتا مدل و انواع آن
Data Model ساختار منطقی یک پایگاه داده را نشان میدهد که شامل روابط و محدودیتهای مربوط به نحوهٔ ذخیرهسازی و دسترسی به دادهها است. به طور کلی، دیتا مُدل انواع مختلفی دارد که مطرحترین آنها را در ادامه بررسی می کنیم.
Hierarchical Model - مدل سلسله مراتبی
دادهها در این مدل بر طبق یک ساختار درختی سلسلهمراتبی سازماندهی میشوند به طوری که هر رکورد یک والد و یک یا چند فرزند دارد و اساساً این ساختار برای توصیف رابطههای یکبهیک و یکبهچند مناسب است (هرچند شرکت IBM طی دهههای ۶۰ و ۷۰ میلادی از این مدل در سیستمهای مدیریت اطلاعات خود استفاده میکرد، اما امروزه به علت ناکارآمدی عملیاتی این ساختار در برخی از موارد، به ندرت از مورد استفاده قرار میگیرد.)
Network Model - مدل شبکه ای
این مدل شبکهای که بر اساس مدل سلسلهمراتبی به صورت رسمی در کنفرانس Data Systems Languages در دههٔ ۷۰ میلادی معرفی گردید و به یکی از محبوبترین مدلهای دادهای در آن زمان تبدیل شد، امکان ایجاد رابطههای چندبهچند را به رکوردهایی که با یکدیگر مرتبط هستند میدهد. در واقع، برخلاف مدل سلسلهمراتبی، در این مدل یک رکورد میتواند چندین والد داشته باشد.
بر اساس نظریهٔ مجموعهها در ریاضیات، یک مدل شامل مجموعههایی از رکوردهای مرتبط با یکدیگر است به طوری که هر مجموعه دارای یک رکورد والد و یک یا چند رکورد فرزند است اما در مدل شبکهای یک رکورد میتواند عضو چندین مجموعه باشد که این سبب میشود تا مدل شبکهای برای پیادهسازی رابطههای پیچیده گزینهٔ مناسبی باشد.
Relational Model - مدل رابطه ای
پرکاربردترین مدلی که امروزه مورد استفاده قرار میگیرد و در سال ۱۹۷۰ معرفی شد، مدل رابطهای است که در این مدل دادهها در قالب جداول دستهبندی میشوند و هر جدول که برای ذخیرهسازی اطلاعات یک موجودیت (مانند استاد، دروس، دانشجویان و غیره در مثال فوقالذکر) استفاده میشود، از یکسری سطر و ستون تشکیل شده به طوری که هر ستون شامل یک به اصطلاح Attribute (ویژگی) از موجودیتی همچون student_no
یا «شمارهٔ دانشجویی» است که میخواهیم در دیتابیس ذخیره کنیم و هر سطر که تاپِل نیز نامیده میشود، شامل اطلاعات یک نمونهٔ خاص از آن موجودیت است به طوری که مثلاً ۹۰۱۶۶۸۳ به عنوان شمارهٔ دانشجویی یک دانشجوی خاص در نظر گرفته میشود.
💎 در ادامه ی همین دورهی آموزشی در بخش درآمدی بر پایگاه داده های رابطه ای و انواع کوئری به آموزش این مدل از پایگاه داده پرداختهایم.
در این مدل، یک ویژگی و یا ترکیبی از ویژگیها میتواند به عنوان اصطلاحاً Primary Key (کلید اصلی) انتخاب شود مضاف بر اینکه برای ایجاد رابطه بین جدولها، کلید اصلی یک جدول به عنوان Foreign Key (کلید خارجی) در جداول دیگر مورد استفاده قرار میگیرد (معمولاً هر جدول دارای یک ویژگی به نام ID
است که معمولاً به عنوان کلید اصلی در هر جدول نظر گرفته میشود.) در این مدل میتوان انواع رابطه بین جداول که شامل رابطههای یکبهیک، یکبهچند و چندبهچند است به خوبی پیادهسازی کرد. خوب است بدانید زبان تعامل با پایگاه داده های رابطه ای، Sql است.
Object-oriented Model - مدل شی گرا
بر اساس این دیتا مدل، پایگاه داده به عنوان مجموعهای از آبجکتها با قابلیت استفادهٔ مجدد همراه با یکسری از فیچرها و متدهای مرتبط تعریف میشود (دقیقاً همانگونه از مفاهیم شییٔگرایی در OOP استفاده میکنیم.) برخی از دیتابیسهای شییٔگرایی همچون دیتابیسهای مالتیمدیا برای ذخیرهسازی مدیا و عکس استفاده میشوند و برخی دیگر نیز مانند دیتابیسهای به اصطلاح Hypertext که اجازهٔ برقراری ارتباط به آبجکتها را میدهند، برای سازماندهی دادههای متفاوت مفید خواهند بود (از آنجایی که این نوع دیتا مدل از جداول برای ذخیرهسازی دیتا استفاده میکند، به طور کلی جزو مدلهای ترکیبی نیز شناخته میشود.)
Object-relational Model - مدل رابطه ای شی گرا
این دیتا مدل ترکیبی سادگی Relational Model را با برخی از فیچرهای پیشرفتهٔ Object-oriented Model ادغام کرده است به طوری که این مدل به طراحان پایگاه داده اجازه میدهد تا بتوانند آبجکتها را در قالبی مشابه با ساختار جداول مختلف با یکدیگر ترکیب کنند.
Entity-relationship Model
این دیتا مدل در واقع یک نمایش گرافیکی از یک Entity (موجودیت) و روابط بین چندین موجودیت مختلف در دنیای واقعی است.
NoSQL Model - مدل نو اس کیو ال
در مقابل مدلهای رابطهای، ایدهٔ مدلهای NoSQL شکل گرفت که امروزه توسط شرکتهای معروفی همچون فیسبوک، گوگل و بسیاری استارتاپها استفاده میشود که برای آشنایی بیشتر با این نوع دیتابیسها، میتوانید به مقاله دیتابیس NoSQL چیست؟ نیز مراجعه کنید.
در پایان لازم به ذکر است که امروزه دیتابیسهای مبتنی بر مدلهای Relational و NoSQL بیشترین کاربرد را نسبت به سایر دیتابیسها دارند. برای مطالعهی عمیق تر در مورد این تفاوت های این دو مدل، میتوانید به مقالهی SQL با NoSQL چه تفاوت هایی دارد؟ مراجعه کنید.