دیتابیس های خود را بشناسید (پارت اول)

دیتابیس های خود را بشناسید (پارت اول)

اول از همه بریم ببینیم که دیتا چیه؟

داده یا Data به واحدهای کوچیک اطلاعات گفته میشه. دیتا ها میتونن اشکال مختلفی داشته باشن؛ مثلا متن، عدد، مدیا یا بایتی باشن. داده ها میتونن در یک حافظه فیزیکی مثل روی کاغذ یا یک حافظه ی الکترونیکی مثل رم(Ram) ذخیره بشن. کلمه ی "Data" از کلمه "Datum" گرفته شده که به معنای "یک تکه از جنس اطلاعات" است. دیتا جمع کلمه ی داتوم است.

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

دیتا بیس چیه؟

دیتابیس یک دسته بندی منظم از داده هاست که قابل دسترسی و مدیریت کردن است. با استفاده از دیتابیس شما میتوانید داده های مختلفی را به شکل های: جدولی، ستونی، ردیفی، اشاره گری(indexed) و گراف و ... مرتب و مدیریت کنید؛ این قابلیت به شما اجازه میدهد تا ساختار مناسب و مورد نظر خود را داشته باشید.

مدیریت کننده های دیتابیس(Database handlers):

نرم افزار هایی هستند که یک دیتابیس را به گونه ای ایجاد میکنند که بتوانید دسترسی به دیتابیس بین کاربران رو محدود کنید و تنها با ابزار خاصی بتونید به دیتابیس دسترسی داشته باشید.

هدف اصلی دیتابیس:

هدف اصلی دیتابیس انجام عملیات بر روی حجم زیادی از اطلاعات است که میتوانند ذخیره، بازیابی و مدیریت شوند.

وبسایت های دینامیک:

وبسایت های دینامیک زیادی در بستر وب وجود دارند که محتوای آنها توسط دیتابیس ها مدیریت میشود. برای مثال همین مقاله در فضای مشخص در دیتابیس codingcogs قرار دارد. یا مثلا زمانی که یک سفارش آنلاین را ثبت می کنید، اطلاعات خرید شما و اقلام خریداری شده توسط شما در یک دیتابیس ذخیره، بازیابی و مدیریت میشوند.

دیتابیس ها پرطرفدار:

دیتابیس های زیادی برای استفاده وجود دارند و هرکدام مزایا و معایب خود را دارند. دیتابیس های رایگان پرطرفدار :MySQL، PostgreSQL، MongoDB و Redis هستند.

دیتابیس های مدرن توسط سیستم های مدیریت دیتابیس(DBMS) مدیریت میشوند.

و اما SQL:

اس کیو ال (یا سی کوئل) مخفف "Structured Query Language " به معنای زبان کوئری های ساختار یافته است. با استفاده از این زبان عملیات پردازش بر روی داده های ذخیره شده درون دیتابیس انجام می شود. SQL با استفاده از جبر ارتباطی(انگلیسیش قابل فهم تره: elational algebra ) و محاسبات ارتباطی چند تایی( tuple relational calculus ) بر روی دیتابیس عملیات انجام میدهد.

برای نمایش دیتابیس در تصاویر و ساختار ها از شکل زیر (ستون سیلندر مانند) استفاده می شود.

دیتابیس

تکامل دیتابیس ها

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

تکامل:

مبتنی بر فایل:

در سال 1968 دیتابیس های مبتنی بر فایل معرفی شدند. در این دیتا بیس ها به جای یک فایل سیستم سنگین چند فایل سیستم سبک تر داشتیم. هرچند که همین مسئله باعث شده بود که بتوان راحت تر از دیتابیس ها استفاده نمود، هنوز هم چندین محدودیت وجود داشت.

یکی از برتری های این روش ممکن بودن دسترسی به دیتابیس با چندین روش مختلف بود اما این دیتابیس ها برای زبان های برنامه نویسی جدید مثل COBOL و BASIC (جدید توی سال 1968 !) مناسب نبودن و نیاز به برنامه نویسی پیچیده ای داشتن که اون موقع نمیشد به راحتی از این کارا کرد.

مدل داده ی سلسله مراتبی

انتهای سال 1968 میلادی دیتابیس های مبتنی بر فایل به خاطر پرطرفدار شدن BASIC نادیده گرفته شدند و دیتابیس های جدید از این سال تا 1980 فرمانروایی خود را بر دنیای نرم افزار آغاز کردند. این دیتابیس ها ساختار جدیدی داشتند و معروف ترین آنها PHD نام داشت که متعلق به شرکت IBM بود و سیستم DBMS آن IMS ( Information Management System ) یا سیستم مدیریت اطلاعات نام داشت.

این مدل هنوز هم مبتنی بر فایل بود با این تفاوت که فایل ها به صورت والد/فرزند (Parent/Child) در مدل قرار میگرفتند. نمونه ی این ساختار را در تصویر پایین مشاهده میکنید.

استفاده از سلسله مراتب شاید دیتابیس های مبتنی بر فایل را ارتقا داده بود اما هنوز کلی مشکل وجود داشت. با توجه به ساختار بالا رابطه های one-one و one-many قابل پیاده سازی بودند (شکل زیر):

یک به یک:

relational.07.03.2

یک به چندتا:

relational.07.04.2

اما زمانی که ممکن بود هر child بیشتر از یک parent داشته باشد ( مانند many-many و many-one) دیتابیس قادر به انجام این کار نبود( به خاطر فایل ها و فولدر بندی ها).(تصاویر زیر را ببینید):

چندتا به یکی:

Simplified-version-of-the-SCC-database-structure-Multiple-arrows-indicate-one-to-many

چندتا به چندتا:

Predictive-toxicology-relational-database-schema-showing-the-one-to-many-links

خلاصه:

در قسمت اول تاریخچه ی اولین دیتابیس ها را بررسی کردیم و با معایب سیستم های گذشته و رابطه ی المان های دیتابیس آشنا شدیم. در قسمت بعدی به دنیای دیتابیس های مدرن وارد میشویم و تاریخچه و مفاهیم دیتابیس های SQL را بررسی میکنیم. اگر علاقه به توسعه ی back-end دارید این مجموعه را از دست ندهید.

منبع