مفهوم پایگاه داده ها : پایگاه داده ها در ساده ترین وجه به مثابه مخزنی میماند که اطلاعات و داده ها به صورت منسجم و احتمالا ساخت یافته در آن نگهداری میشود . این مخزن میتواند یک فایل متنی یا باینری ساده باشد .
همزمان با پیدایش تکنولوژی ذخیره سازی اطلاعات و فایلها ، پایگاه داده ها نیز متولد شد و همزمان با رشد تکنولوژی ذخیره و بازیابی اطلاعات و سیستم فایلینگ ، پایگاه داده ها نیز به صورت موازی و با آن رشد کرد . پایگاه داده ها از زمان تولد تا کنون پنج نسل را سپری کرده است .
همزمان با گسترش نیاز کاربران برای ذخیره سازی و بازیابی اطلاعات برنامه نویسان متعددی اقدام به ایجاد برنامه هایی با اهداف و کاربردهای متفاوت کردند . صرف نظر از برنامه هایی که از نظر کاربرد کاملا متفاوت بودند برنامه هایی نیز وجود داشتند که ماهیت و کاربرد یکسانی داشتند ولی توسط برنامه نویسان متعدد ایجاد شده بودند . بهترین مثال برای این مطلب دفترچه تلفن میباشد . چندین و چند نسخه متفاوت دفترچه تلفن موجود بود که همه آنها امکانات کاملا مشابهی داشتند ولی الگوریتمها و روشهای برنامه نویسی آنها کاملا متفاوت بود . مهمترین وعمده ترین تفاوتهای که بین این برنامه ها وجود داشت در زیر ذکر شده اند :
نوع و ماهیت فایلی که اطلاعات در آن ذخیره میشد ( بعضیهااز نوع باینری و بعضی TXT و... بودند )
الگوریتم و روش ذخیره سازی داده ها در فایل
نام توابع ( فرضا تابع مربوط به جستجو در هر برنامه نامی مطابق با سلیقه برنامه نویس داشت )
تمام این برنامه ها در واقع نوعی بانک اطلاعاتی هستند که برای اهداف خاص ایجاد شده اند . لذا به منابع داده در هر برنامه به جز در همان برنامه در جای دیگری کاربرد نداشت و به هیچ درد دیگری نمیخورد حتی برنامه هایی که مشابه بودند ( مانند دفترچه تلفن ) نیز ( بنا به دلایل ذکر شده ) نمیتوانستند با هم تبادل اطلاعات داشته باشند و اگر میخواستیم از فایل حاوی داده های یک دفترچه تلفن در دفترچه تلفن دیگری استفاده کنیم هیچ راهی وجود نداشت . در ضمن در تمام این برنامه ها به جز فایل و برنامه نوشته شده توسط برنامه نویس هیچ چیز دیگری وجود نداشت که بتواند امنیت داده ها را تضمین کند . و به طور کلی داده ها را کنترل و مدیریت کند . مشکل دیگری که این برنامه ها داشتند این بود که این برنامه ها تنها قابلیت این را داشتند که یک کاربر از آنها استفاده کند و استفاده به صورت اشتراکی از منابع داده ها امکان پذیر نبود . با گسترش روز افزون اطلاعات و نیاز روز افزون کاربران برای ذخیره و بازیابی اطلاعات و دسترسی سریع به اطلاعات و لزوم تامین امنیت اطلاعات ، لازم بود برنامه های تخصصی و ویژه ای برای این منظور ایجاد شوند . لذا چندین شرکت تصمیم به طراحی و تولید چنین برنامه هایی را گرفتند که از شرکتهای IBM و Microsoft و چند شرکت دیگر به عنوان پیشگامان این امر میتوان نام برد .
برنامه های مذکور پایگاه داده ها نام گرفتند . شرکتهای مذکور باید برنامه هایی را ایجاد میکردند که قابلیت استفاده برای مصارف گوناگون را داشته باشد . در ضمن این برنامه ها باید دارای قسمتی باشند که به عنوان واسط بین برنامه کاربردی و فایلها (منابع داده ) قرار بگیرد و عملیاتهای مربوط به ایجاد ، حذف و تغییر و ... را در منابع داده را کنترل و مدیریت کند . این برنامه واسط را DBMS نامیدند .
DBMS اختصار (DATABASE MANANGMENT SYSTEM ) میباشد که معنای لغوی آن سیستم مدیریت پایگاه داده یا سیستم مدیریت داده ها میباشد .
باید خدمتتون عرض کنم که بزرگترین جهشی که پایگاه داده ها در راستای رشد و تکامل داشت مربوط به همین قسمت یعنی تولید و تکامل DBMS میباشد . گفتیم که وظیفه DBMS این است که بین برنامه کاربردی و منابع داده ها قرار بگیرد و کلیه عملیاتهای مربوط به( ایجاد ، تغییر ، حذف و .... ) منابع داده ها را کنترل و مدیریت کند . کنترل و مدیریت منابع داده ها بسیار کلی و میباشد و اگر بخواهیم منظور از کنترل و مدیریت را کامل شرح دهیم باید ساعتها وقت صرف کنیم و دهها صفحه مطلب بنویسیم که قطعا در این مجموعه نخواهد گنجید ضمن آنکه این مطالب کاربردی نیط نیستند و تنها جنبه اطلاعاتی دارند لذا تنها چند نکته مهم را ذکر میکنم و در صورتی که علاقمند بودید بیشتر بدانید میتوانید به کتابهای موجود در این زمینه مراجعه فرمایید .
منظور از کنترل و مدیریت :
مصون کردن برنامه های کاربردی در قبال تغییرات در سخت افزار ذخیره سازی .
مدیریت رکوردهای سرریز که پس از لود اولیه باید در فایل وارد شوند .
ایجاد فایل با ساختارهای گوناگون
فراهم کردن امکاناتی برای دستیابی مستقیم و ترتیبی به رکوردها و فیلدها
جدا کردن ساختار فیزیکی و منطقی فایلها از یکدیگر
تامین ایمنی و حفاظت داده ها
جلوگیری از تکرار ذخیره سازی داده ها ( تاحدی )
فراهم کردن امکاناتی برای پردازش بلادرنگ (real time ) بسته به نوع سیستم عامل
تامین صحت داده های ذخیره شده ( تاحدی )
فراهم کردن امکاناتی برای بازیابی بکمک چند کلید
فراهم کردن امکاناتی برای استفاده چند کاربر به صورت همزمان از منبع داده و کنترل آن
کنترل و مدیریت مسائل مربوط به همزمانی و سطح دسترسی کاربران به منبع داده ها
و .....
با توجه به موارد ذکر شده شرکتها سیستمهای گوناگونی را به این منظور طراحی و تولید کردند که هر سیستم دارای یک رابط گرافیکی برای گرفتن و انجام فرامین کاربر و یک DBMS بود که تمام مطالب ذکر شده در بالا در این سیستمها لحاظ شده بودند . علاوه بر این دو دفترچه ای نیز به همراه سیستم ارائه میشد که حاوی نام و کاربرد توابع موجود در سیستم بود . برنامه نویسان در صورت نیاز میتوانستند از این توابع در برنامه های خود استفاده کنند و دستوری را به سیستم ارسال کنند . رابطه این توابع با سیستم مورد نظر دقیقا مانند رابطه توابع API موجود در ویندوز و خود ویندوز میباشد . اندک زمانی پس از تولید این سیستمها کنسرسیومی تشکیل شد که اقدام به تهیه استانداردهایی در زمینه تولید نرم افزارهای بانک اطلاعاتی کرد و از آن پس تمام شرکتهای تولید کننده ملزم به رعایت این استانداردها بودند . یکی از این تصمیمات و استانداردها یکسان سازی نام توابع در تمام سیستمها بود . دیگر آنکه قرار بر آن شد که یکسری کلمات و عبارات ویژه درنظر گرفته شوند که هر یک معرف عملیاتی ویژه باشند و برنامه ای به تمام سیستمها اضافه شود که وظیفه آن دریافت ، تفسیر و اجرای این عبارات (دستورات ) باشد . مجموعه این کلمات و برنامه ای که وظیفه تفسیر آنها را داشت ، منجر به تولید زبان مشترکی برای بانک های اطلاعاتی شد . این زبان برنامه نویسی زبان پایه تمام بانکهای اطلاعاتی میباشد که آن را T-SQL مینامند که اختصار (Transact Structured Query Language ) میباشد