درآمدی بر مفهوم Database و انواع Data Model

درآمدی بر مفهوم Database و انواع Data Model

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

Database (پایگاه داده) چیست؟
در حالت کلی، دیتابیس مجموعه‌ای است از داده‌های ذخیره‌شدهٔ مرتبط به هم و با حداقل اصطلاحاً Redundancy است که مطابق با یک Data Model مشخص سازمان‌دهی شده‌اند به طوری که استفاده از دیتابیس موجب افزایش کارایی در ذخیره، بازیابی و حذف اطلاعات می‌شود (به‌ عنوان مثال، دیتابیس یک دانشگاه می‌تواند شامل اطلاعات مربوط به چیزهای مختلفی همچون دانشجو، استاد، درس، دانشکده، کارکنان و غیره باشد.) Redundancy (افزونگی) به تکرار ذخیره‌سازی داده‌های یکسان در دیتابیس گفته می‌شود که البته باید ذکر کنیم ثبت برخی داده‌های یکسان در دیتابیس کاملاً طبیعی است و مشکلی ایجاد نمی‌کند (مانند سن دانشجویان در مثال فوق که ممکن است برای برخی از دانشجویان یکسان باشد) ولی برخی نیز ناشی از طراحی نادرست دیتابیس است که این مسئله می‌تواند در آینده و زمانی که دیتابیس حجیم شود، مشکل‌ساز گردد. 

آشنایی با مفهوم Data Model و انواع آن
Data Model نیز ساختار منطقی یک دیتابیس را نشان می‌دهد که شامل روابط و محدودیت‌های مربوط به نحوهٔ ذخیره‌سازی و دسترسی به داده‌ها است. به طور کلی، دیتا مُدل انواع مختلفی دارد که شناخته‌‌شده‌ترین آن‌ها عبارتند:

- Hierarchical Model: در این مدل، داده‌ها بر طبق یک ساختار درختی سلسله‌مراتبی سازمان‌دهی می‌شوند به طوری که هر رکورد یک والد و یک یا چند فرزند دارد و اساساً این ساختار برای توصیف رابطه‌های یک‌به‌یک و یک‌به‌چند مناسب است (هرچند شرکت IBM طی دهه‌های ۶۰ و ۷۰ میلادی از این مدل در سیستم‌های مدیریت اطلاعات خود استفاده می‌کرد، اما امروزه به‌ علت ناکارآمدی عملیاتی این ساختار در برخی از موارد، به‌ ندرت از Hierarchical Model استفاده می‌شود.)

- Network Model: این مدل شبکه‌ای، که بر اساس مدل سلسله‌مراتبی به‌ صورت رسمی در کنفرانس Data Systems Languages در دههٔ ۷۰ میلادی معرفی شد و به یکی از محبوب‌ترین مدل‌های داده‌ای در آن زمان تبدیل شد، اجازهٔ ایجاد رابطه‌های چندبه‌چند را به رکوردهایی که با یکدیگر مرتبط هستند می‌دهد. در واقع، برخلاف مدل سلسله‌مراتبی، در این مدل یک رکورد می‌تواند چندین والد داشته باشد (بر اساس نظریهٔ مجموعه‌ها در ریاضیات، یک مدل شامل مجموعه‌هایی از‌ رکوردهای مرتبط با یکدیگر است به طوری که هر مجموعه دارای یک رکورد والد و یک یا چند رکورد فرزند است اما در Network Model، یک رکورد می‌تواند عضو چندین مجموعه باشد که این موضوع سبب می‌شود تا مدل شبکه‌ای برای پیاده‌سازی رابطه‌های پیچیده گزینهٔ مناسبی باشد.)

- Relational Model: پرکاربردترین مدلی که امروزه مورد استفاده قرار می‌گیرد و توسط کاد در سال ۱۹۷۰ معرفی شد، 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: در مقابل مدل‌های رابطه‌ای، ایدهٔ مدل‌های NoSQL شکل گرفت که امروزه توسط شرکت‌های معروفی همچون فیسبوک، گوگل و بسیاری استارتاپ‌ها استفاده می‌شود که برای آشنایی بیشتر با این نوع دیتابیس‌ها، می‌توانید به مقاله درآمدی بر انواع مختلف دیتابیس‌های NoSQL نیز مراجعه کنید.

در پایان لازم به ذکر است که امروزه دیتابیس‌های مبتنی بر مدل‌های Relational و NoSQL بیشترین کاربرد را نسبت به سایر دیتابیس‌ها دارند.



علی اسدی