اگر چه کلمهی دیتابیس از دههی شصت میلادی وارد ادبیات تکنولوژی شده است، اما معنا و کاربردی که امروزه برای پایگاه داده در ذهن تداعی میشود، در دههای هفتاد و هشتاد میلادی شکل گرفته و طی سی سال اخیر، گسترده و فراگیر شده است.
کامپیوتر همانگونه که از نامش پیداست، در ابتدا قرار بود تنها مسئولیت محاسبه را بر عهده داشته باشد و از همین رو، دغدغهی جمع آوری اطلاعات و ثبت اطلاعات و نگهداری اطلاعات و استفاده از اطلاعات، چندان مهم و جدی نبود.
برنامه نویسان قدیمی، به خاطر دارند که واژهی Data در میان نخستین نسل برنامهنویسان، تفاوت چندانی با متغیرهای محاسباتی نداشت و وقتی از دیتا حرفی گفته میشد، عموماً منظور، نتایج میانی یا نهایی محاسبات کامپیوتری بود.
با توسعه فن آوری اطلاعات، محاسبه به نقش فرعی کامپیوترها تبدیل شد و مدیریت دادهها و اطلاعات اهمیت بیشتری پیدا کرد. اگر چه مدیریت اطلاعات هم نیازمند زیرساختهای محاسباتی است، اما در لایههای بیرونی سیستمهای کامپیوتری، آنچه عموم کاربران به آن توجه دارند را میتوان به مدیریت اطلاعات نزدیکتر دانست.
نگهداری اطلاعات کارکنان یک سازمان، نگهداری شماره تلفنهای دوستان، نگهداری ایمیلها، آرشیو کردن فایلها و اسلایدها، نگهداری اطلاعات مشتریان، ذخیره و گزارش دهی فروش سازمان، بیش از اینکه از جنس محاسبه باشند، از جنس دریافت، ذخیره، جستجو و گزارشدهی اطلاعات محسوب میشوند.
نخستین نسل برنامه نویسان و طراحان سیستمهای نرم افزاری، برای مدیریت اطلاعات از سیستم سنتی مدیریت فایلها استفاده میکردند.
البته برنامه نویسان هوشمند، در همان زمان هم به سرعت به راهکارهای کاراتر فکر میکردهاند:
مثلاً به شکلی برنامه مینوشتند که اطلاعات درسهای مختلف یا دانش آموزان مختلف یا محصولات مختلف، همگی در یک فایل و یا تعداد محدودی فایل ثبت شوند و شاید حتی اگر کمی وقت و حوصله داشتند، چیدمان اطلاعات داخل فایل را به شکلی تعریف میکردند که بشود اطلاعات حقوق و مزایای معلمان یا پاداش کارکنان فروش را هم، جایی در گوشه و کنار همان فایل جا داد.
به این شکل، مدیر مدرسه یا مدیر فروشگاه، با یک فایل یا تعداد اندکی فایل روبرو بود و میتوانست با ذخیره کردن و نگهداری از آنها، خوشحال باشد که کل اطلاعات مجموعهی خود را در کیف یا جیبش دارد.
ولی این شیوهی کار با اطلاعات، چالشها و دردسرهای زیادی داشت.
چالش دیتابیس
در ادامه به برخی از چالشها و دردسرهای پایگاه داده های قدیمی میپردازیم و با دلایل بوجود آمدن دیتابیسهای امروزی آشنا میشویم.
کارایی پایین
اولین مشکل، وقتی پدیدار شد که حجم اطلاعات بسیار افزایش یافت بطوریکه حجم اطلاعات زیاد باعث کاهش کارایی شد.
همیشه اطلاعات به چندصد دانش آموز یا مشتری یا شماره تماس چند صد نفر محدود نیست.
فرض کنید یک بانک میخواهد اطلاعات مربوط به یک میلیون مشتری را نگهداری کند و یا یک انبار، میخواهد اطلاعات مربوط به صدها هزار قطعه را ذخیره و بازیابی کند.
در چنین شرایطی، حتی جستجوی یک نام یا عدد یا انتخاب چند محصول یا مشتری با یک ویژگی خاص کاری زمانبر و نیازمند پردازش سنگین است.
در واقع میتوان گفت کار با اطلاعات حجیم، خود یک دانش و تخصص پیچیده است که دیگر از حوزهی کارهای متعارف یک برنامه نویس فراتر میرود. در حدی که به نظر میرسد باید کار با دادهها را به یک سیستم مستقل جدا از نرم افزار اصلی، برونسپاری کرد.
حجیم شدن فضا
در چنین سیستمهایی پیش میآید که یک دادهی ثابت، بارها و بارها ذخیره شود و همین موضوع باعث حجیم شدن فضای نگهداری اطلاعات میشود.
اسم یک دانش آموز یک بار در فهرست دانش آموزان کلاس علوم، یک بار در فهرست دانش آموزان ریاضی، یک بار در کارنامه تکرار خواهد شد.
حتی اگر از این تکرارهای ابتدایی هم اجتناب کنیم، بسیاری از تکرارهای دیگر عملاً غیرقابل اجتناب خواهند بود.
مثلاً قیمت یک محصول، یک بار در فاکتور فروش، یک بار در لیست انبار و یک بار در لیست فروش روزانه ثبت خواهد شد.
کافی است که سیستم کمی پیچیده شود و تعداد حجم اطلاعات کمی زیاد شود تا ببینیم که فضای مورد استفاده برای ذخیره دادهها، چند برابر و شاید چند ده برابر فضای ضروری است و به صورت گسترده گرفتار تکرار ذخیره سازی هستیم.
ناسازگاری دادهها
مشکل دیگر زمانی است که اطلاعات به شکل ناسازگار ذخیره شوند.
نرم افزار انبارداری، کد یک قطعه را DS-13626 ثبت کرده و الان اپراتور نرم افزار فروش، محصول DS-13626 را ثبت میکند.
معلم ریاضی نمرهی دانش آموزی به اسم احمد اکبری در مقطع دوم راهنمایی را ثبت میکند و معلم علوم اشتباهاً نمرهی دانش آموزی به نام مهدی اسدی در مقطع دوم راهنمایی را گزارش میدهد.
شماره تلفن دانش آموز را اصلاح میکنیم و چون به شکلهای مختلف و بهانههای مختلف در جاهای مختلف ذخیره شده، در جای دیگری اصلاح نمیشود.
برای درک بهتر چالشهای ذخیره سازی غیر یکپارچه اطلاعات، یک کشور با ذخیره سازی پراکنده اطلاعات را در نظر بگیرید.
شما همین الان، میتوانید به سادگی بمیرید و دفن شوید و ماه بعد، بیمهی تامین اجتماعی هم برای شما رد شود.
اگر چه بخشی از این مشکلات، در سطح کلان اجتناب ناپذیر است، اما ذخیره سازی جزیرهای اطلاعات در نرم افزارها، این نوع خطاها یا مشکلات پیش بینی نشده را به چالشی روزمره تبدیل میکنند.
وابستگی به نرم افزار خاص
مشکل بعدی زمانی ظهور میکند که بخواهید از شرکتهای مختلف یا برنامه نویسان مختلف و نرم افزارهای جداگانه استفاده کنید.
طراحان نرم افزار حسابداری، با ساختار مورد علاقهی خودشان که احتمالاً آن را بر اساس نیاز و تجربه طراحی کردهاند، اطلاعات حسابداری را ثبت و ذخیره و گزارش میکنند و طراحان نرم افزار انبارداری هم، از شیوهی خودشان استفاده میکنند.
حتی به فرض اینکه دو طرف، علاقمند باشند به شما کمک کنند تا از اطلاعات یک نرم افزار در نرم افزار دیگر استفاده کنید این کار به سادگی امکانپذیر نخواهد بود یا احتمال خطا در آن بسیار بالا خواهد بود.
ضمناً شما تا ابد به برنامه نویس همان نرم افزار وابسته هستید.
شما با از دست دادن برنامه، عملاً دادههای خود را نیز از دست میدهید.
سایر مشکلات مدیریت اطلاعات
موارد فوق، تنها نمونههایی از مشکلات ذخیره سازی و پردازش و بازیابی اطلاعات هستند.
مشکل دیگری را هم میتوان تصور کرد:
- دشوار بودن تعریف سطوح دسترسی متعدد
- دشوار بودن به اشتراک گذاری بخشی از اطلاعات
- امنیت پایین اطلاعات
- انعطاف پذیری پایین
- دشواری مدیریت دادهها
اما مهمترین مشکل، هیچ یک از موارد فوق نیستند.
چون به هر حال، یک تیم نرم افزاری حرفهای میتواند برای همهی آنها راهکار پیدا کند.
اصل مشکل به استاندارد نبودن و یکسان نبودن راهکارها باز میگردد.
ضمن اینکه میتوانید تصور کنید که طی سالهایی که هنوز مدیریت پایگاه دادهها شکل نگرفته بوده، هزاران بار چرخهای مشابهی از اول اختراع شدهاند. از جمله اینکه:
- هر شرکت نرم افزاری پروتکلهای امنیتی و دسترسی خود را جداگانه تعریف کرده است.
- هر شرکت، خود به صورت مستقل الگوریتم فشرده سازی اطلاعات را طراحی کرده است.
- هر شرکت، به صورت جداگانه روشهایی برای اعتبارسنجی دادهها و کاهش تناقض اطلاعات طراحی کرده است.
- هر شرکت، الگوریتمهای متفاوتی برای بازخوانی اطلاعات و گزارش دهی تعریف کرده است.
پایگاه داده
به تدریج به نظر میرسید که هر روز نگهداری و بازیابی و کار با اطلاعات، بیش از پیش جدی میشود و منطقی است که راهکارهای استاندارد شدهای برای این کار طراحی شود.
اگر بخواهیم برای این نیاز یک نام بگذاریم، باید بگوییم که کسب و کارها، در جستجوی یک نظام کارآمد استاندارد برای مدیریت دادههای خود بودند. همان چیزی که امروز آن را بیشتر با نام DBMS یا Database Management System میشناسیم.
طبیعتاً اکوسیستمی از راهکارهای مدیریت پایگاه داده شکل گرفت و گونههای مختلفی از راهکارها رواج یافتند.
اگر بخواهیم برخی از نمونه راهکارهایی را که در رقابت با دیگران موفقتر بودهاند فهرست کنیم میتوان به موارد زیر اشاره کرد:
- شرکت اوراکل سیستمی را ارائه کرده و توسعه میدهد که به Oracle RDBMS یا Oracle مشهور است.
- شرکت مایکروسافت، SQL Server را ارائه کرده است.
- شرکت IBM سیستم DB2 را توسعه داده و عرضه میکند.
- شرکت SAP، سیستم Sybase ASE را عرضه میکند.
- MySQL هم سیستم دیگری است که به صورت نسخه باز عرضه شده است.
میتوان گفت امروزه بحث مدیریت پایگاه دادهها یک تخصص مستقل جداگانه شده که در سطوح مختلف وجود دارد:
- برنامه نویسانی هستند که میتوانند ساختار پایگاههای داده را طراحی کنند.
- کسانی هستند که ممکن است در حد طراحی تخصص نداشته باشند، اما میتوانند از طریق زبانهای مختلفی که شاید SQL مشهورترین آنها باشد با پایگاه داده تعامل داشته باشند.
- افراد دیگری هستند که تخصص آنها، دانش مدیریت اطلاعات است و در شرکتهای مانند مایکروسافت و اوراکل نشستهاند و این زیرساختها را طراحی میکنند.
البته، امروزه شاخهی تخصصی دیگری هم شکل گرفته که در مرز بین دانشهای آمار، داده کاوی و فن آوری اطلاعات است که به آن Big Data Analysis میگویند.
برخی این تخصص را از مدیریت پایگاه دادهها جدا میبینند و برخی دیگر، به علت ارتباط تنگاتنگ بحث DBMS و Big Data، دانش Big Data را نه به عنوان یک علم مستقل، بلکه به عنوان سطح تحلیلی در تخصص مدیریت پایگاه دادهها میدانند.
شاید برای شما جالب باشد که بدانید دیجی دینگ، مانند هر سایت دیگری که بر پایهی پلتفورم WordPress طراحی شده است، از ساختار MySQL برای ذخیره سازی دادهها شامل اطلاعات کاربران، رفتار کاربران، کامنتها و سایر دادههای خود استفاده میکند.
در انتها اگر شما هم در خصوص پایگاه داده اطلاعات تکمیل کنندهی دیگری دشته باشید، خوشحال میشویم که آنها را با ما به اشتراک بگذارید.