پایگاه داده یا Database چیست؟
در علم کامپیوتر، پایگاه داده یک مجموعه سازمان یافته از داده ها یا نوعی فضای ذخیره سازی داده هست که بر اساس استفاده از سیستم مدیریت پایگاه داده (DBMS) ساخته میشه. DBMS نرم افزاریه که با کاربران، اپلیکیشن ها و خود پایگاه داده تعامل داره تا داده ها رو ذخیره و تحلیل کنه. علاوه بر این، DBMS شامل امکانات اصلی برای مدیریت پایگاه داده هم میشه.مجموعه ای از پایگاه داده، سیستم مدیریت پایگاه داده و اپلیکیشن های مرتبط رو میشه یک سیستم پایگاه داده نامید. البته، اصطلاح "پایگاه داده" گاهی به صورت کلی برای اشاره به DBMS، سیستم پایگاه داده یا حتی یک اپلیکیشن مرتبط با پایگاه داده هم به کار میره.پایگاه داده های کوچک میتونن روی یک سیستم فایل ذخیره بشن، در حالی که پایگاه داده های بزرگ معمولا روی کلاستر های کامپیوتری یا فضای ابری میزبانی میشن. طراحی پایگاه داده شامل تکنیک های رسمی و ملاحظات عملی مثل مدل سازی داده، ذخیره سازی و نمایش کارآمد داده ها، زبان های پرس و جو، امنیت و حفظ حریم خصوصی داده های حساس و مسائل محاسبات توزیع شده مثل دسترسی همزمان و تحمل خطا میشه.
تاریخچه پایگاه داده
دانشمندان کامپیوتر سیستم های مدیریت پایگاه داده رو بر اساس مدل های پایگاه داده ای که پشتیبانی میکنن طبقه بندی میکنن. پایگاه داده های رابطه ای از دهه 1980 به مدل غالب تبدیل شدن. این پایگاه داده ها، داده ها رو به شکل ردیف ها و ستون ها در مجموعه ای از جداول مدل سازی میکنن و اکثرا ازSQL برای نوشتن و جستجوی داده استفاده میکنن.از دهه 2000 به بعد، پایگاه داده های غیر رابطه ای محبوب شدن که به طور کلی با نام NoSQL شناخته میشن، چون از زبان های پرس و جوی متفاوتی نسبت به پایگاه داده های رابطه ای استفاده میکنن.
رشد، عملکرد و توسعه پایگاه های داده
اندازه، قابلیت ها و عملکرد پایگاه های داده و سیستم های مدیریت پایگاه داده (DBMS) طی سال ها رشد چشمگیری داشته. این افزایش عملکرد به دلیل پیشرفت های تکنولوژیکی در پردازنده ها، حافظه کامپیوتر، فضای ذخیره سازی و شبکه های کامپیوتری ممکن شده.مفهوم پایگاه داده با ظهور رسانه های ذخیره سازی با دسترسی مستقیم مثل دیسک های مغناطیسی که در اواسط دهه 1960 به طور گسترده در دسترس قرار گرفتن، امکان پذیر شد. قبل از اون، سیستم ها به ذخیره سازی ترتیبی داده ها روی نوار های مغناطیسی متکی بودن.
مراحل توسعه فناوری پایگاه داده
توسعه فناوری پایگاه داده رو میشه بر اساس مدل داده یا ساختار اون به سه دوره تقسیم کرد:
- مدل های ناوبری (Navigational)
- مدل رابطه ای (SQL/Relational)
- مدل های پسارابطه ای (Post-Relational)
رویکرد یکپارچه برای پایگاه داده
در دهه 1970 و 1980، تلاش هایی برای ساخت سیستم های پایگاه داده با سخت افزار و نرم افزار یکپارچه انجام شد. فلسفه اصلی این رویکرد این بود که یکپارچه سازی سخت افزار و نرم افزار میتونه عملکرد بالاتری رو با هزینه کمتر ارائه بده. نمونه هایی از این سیستم ها عبارتند از:
- IBM System/38
- اولین نسخه های Teradata
- دستگاه پایگاه داده Britton Lee, Inc.
یکی دیگه از رویکرد های پشتیبانی سخت افزاری برای مدیریت پایگاه داده، شتاب دهنده CAFS از شرکت ICL بود. این شتاب دهنده یک کنترلر دیسک سخت افزاری بود که قابلیت های جستجوی قابل برنامه ریزی داشت.
چرا این رویکرد موفق نشد؟
در بلندمدت، این تلاش ها عموما ناموفق بودن چون ماشین های پایگاه داده تخصصی نتونستن همگام با پیشرفت سریع کامپیوتر های عمومی رشد کنن.امروزه، بیشتر سیستم های پایگاه داده نرم افزاری هستن که روی سخت افزار های عمومی اجرا میشن و از فضای ذخیره سازی کامپیوتر های عمومی استفاده میکنن.
آیا این ایده کاملا کنار گذاشته شده؟
خیر، با اینکه رویکرد یکپارچه سازی سخت افزار و نرم افزار در سطح گسترده کنار گذاشته شده، اما برخی شرکت ها مثل Netezza و Oracle (با محصول Exadata) همچنان این ایده رو در برخی کاربرد های خاص دنبال میکنن.
زبان های پایگاه داده
زبان های پایگاه داده، زبان های تخصصی هستن که برای انجام یک یا چند مورد از وظایف زیر استفاده میشن و گاهی به عنوان زیر زبان های پایگاه داده شناخته میشن:
- زبان کنترل داده (DCL) – کنترل دسترسی به داده ها
- زبان تعریف داده (DDL) – تعریف ساختار داده ها، شامل ایجاد، تغییر یا حذف جداول و روابط بین اون ها
- زبان دستکاری داده (DML) – انجام عملیات هایی مثل درج، بروزرسانی یا حذف داده ها
- زبان پرس و جوی داده (DQL) – جستجوی اطلاعات و محاسبه داده های مشتق شده
انواع زبان های پایگاه داده
زبان های پایگاه داده برای مدل های داده ای خاص طراحی میشن. نمونه های برجسته شامل:
- SQL – این زبان ترکیبی از تعریف داده، دستکاری داده و پرس و جو در یک زبان واحد هست. SQLیکی از اولین زبان های تجاری برای مدل رابطه ای بود، با اینکه در بعضی موارد با مدل رابطه ای کاد (Codd) تفاوت هایی داره (مثلا در SQL، ردیف ها و ستون های یک جدول میتونن مرتب باشن).
SQL در سال 1986 به عنوان استاندارد ANSI و در سال 1987 به عنوان استاندارد ISO شناخته شد. از اون زمان، این استاندارد بار ها ارتقا پیدا کرده و تمام DBMS های رابطه ای تجاری اصلی از اون پشتیبانی میکنن (البته با سطح های مختلفی از سازگاری).
- OQL – یک استاندارد برای مدل داده شیءگرا که توسط Object Data Management Groupارائه شده. OQLروی طراحی زبان های پرس و جوی جدیدتری مثل JDOQLو EJB QLتأثیر گذاشته.
- XQuery – یک زبان پرس و جوی استاندارد برای XMLکه توسط پایگاه داده های XMLمثل MarkLogicو eXist، پایگاه داده های رابطه ای با قابلیت XMLمثل Oracleو Db2و پردازنده های XMLدرون حافظه مثل Saxonاستفاده میشه.
- SQL/XML – ترکیبی از XQueryو SQLبرای پردازش داده های XMLدر پایگاه داده های رابطه ای.
ویژگی های دیگر زبان های پایگاه داده
یک زبان پایگاه داده ممکنه شامل ویژگی های زیر هم باشه:مدیریت پیکربندی و موتور ذخیره سازی مخصوص DBMSعملیات محاسباتی روی نتایج پرس و جو، مثل شمارش، جمع بندی، میانگین گیری، مرتب سازی، گروه بندی و ارتباط متقابل داده هااجرای محدودیت ها، مثلا در یک پایگاه داده خودرو، فقط یک نوع موتور برای هر خودرو مجاز باشهرابط برنامه نویسی (API) برای پرس و جو ها، که کار برنامه نویسان رو ساده تر میکنه