پایگاه داده

پایگاه داده

آنچه در این صفحه می خوانید:

معرفی پایگاه داده

پایگاه داده مجموعه ای سازمان یافته از اطلاعات ساختار یافته یا داده ها است که معمولا بصورت الکترونیکی در یک سیستم رایانه ای ذخیره می شود. سیستم مدیریت پایگاه داده (DBMS) نرم افزاری است که با کاربران نهایی، برنامه ها و خود پایگاه داده در تعامل و ضبط اطلاعات است. علاوه بر این، نرم افزار DBMS شامل امکانات اصلی ارائه شده برای اداره پایگاه داده است. از مجموع دیتابیس، DBMS و برنامه های مرتبط می توان به عنوان "سیستم پایگاه داده" نام برد. غالباً اصطلاح "بانک اطلاعاتی" نیز به کار می رود تا به راحتی از هر DBMS، سیستم پایگاه داده یا برنامه کاربردی مرتبط با پایگاه داده استفاده شود. داده ها در متداول ترین انواع پایگاه داده ها در حال فعالیت امروزه به طور معمول در ردیف ها و ستون ها در یک سری جداول مدل سازی می شوند تا پردازش و پرس و جو داده ها کارآمد باشد. سپس بر روی داده ها می توان به راحتی قابلیت دسترسی، مدیریت، اصلاح، به روز رسانی، کنترل و سازماندهی را قرار داد. اکثر بانک های اطلاعاتی برای نوشتن و جستجوی داده از زبان پرس و جو ساختار یافته (SQL) استفاده می کنند.

SQL یک زبان برنامه نویسی است که تقریبا توسط کلیه بانک های اطلاعاتی رابطه ای مورد استفاده قرار می گیرد تا برای پرس و جو، دستکاری و تعریف داده ها و کنترل دسترسی استفاده شود. SQL برای اولین بار در IBM در دهه 1970 با اوراکل به عنوان یکی از مشارکت کنندگان اصلی توسعه داده شد، که منجر به اجرای استاندارد SQL ANSI شد، SQL بسیاری از برنامه های افزودنی از شرکت هایی مانند IBM ،oracle و Microsoft را تحریک کرده است. اگرچه SQL هنوز هم امروزه به طور گسترده مورد استفاده قرار می گیرد، زبان های برنامه نویسی جدیدی در حال ظهور هستند.

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

تاریخچه پایگاه داده

اندازه ها، قابلیت ها و عملکرد بانک های اطلاعاتی و DBMS های مربوطه به ترتیب بزرگی افزایش یافته اند. این پیشرفت های عملکرد با پیشرفت فناوری در زمینه پردازنده ها، حافظه کامپیوتر، ذخیره سازی رایانه و شبکه های رایانه ای امکان پذیر شد. توسعه فناوری پایگاه داده بر اساس مدل یا ساختار داده می تواند به سه دوره تقسیم شود: ناوبری، SQL / رابطه و پس از رابطه. دو مدل پیمایش داده اولیه، مدل سلسله مراتبی و مدل CODASYL (مدل شبکه) بود.

مدل رابطه ای، اولین بار در سال 1970 توسط Edgar F. Codd ارائه شد، با اصرار بر اینکه برنامه ها باید به جستجوی داده ها براساس محتوا بپردازند، نه با پیوندهای زیر، این سنت را ترک کرد. مدل رابطه ای مجموعه ای از جداول سبک را به کار می برد، هر کدام برای نوع دیگری از موجودیت مورد استفاده قرار می گیرند. فقط در اواسط دهه 1980 سخت افزار محاسباتی به اندازه کافی قدرتمند شد که امکان استقرار گسترده سیستم های رابطه ای (DBMS ها به علاوه برنامه ها) را فراهم کرد. با این حال، در اوایل دهه 1990، سیستم های رابطه ای در تمام برنامه های کاربردی پردازش داده در مقیاس بزرگ حاکم بودند و از سال 2018 آنها همچنان پابرجا هستند: IBM DB2 ، racle ، ySQL و Microsoft SQL Server بیشترین جستجوی DBMS هستند. زبان پایگاه داده غالب، SQL استاندارد برای مدل رابطه، زبان های پایگاه داده را برای سایر مدل های داده تأثیر گذاشته است.

پایگاه داده شی گرا در دهه 1980 برای غلبه بر ناراحتی عدم تطابق امپدانس شی-رابطه ایجاد شد، که منجر به ایجاد اصطلاح "پس از رابطه" و همچنین توسعه پایگاه داده های ترکیبی شی-رابطه شد. نسل بعدی بانک های اطلاعاتی پس از رابطه در اواخر دهه 2000 به عنوان پایگاه داده های NoSQL شناخته شد و به معرفی سریع فروشگاه های دارای ارزش کلیدی و بانک اطلاعاتی مبتنی بر اسناد پرداخت. "نسل بعدی" رقیب شناخته شده به عنوان پایگاه داده های NewSQL تلاش کرد تا پیاده سازی های جدیدی را حفظ کند که مدل رابطه / SQL را حفظ کند و در عین حال هدف از مطابقت با عملکرد عالی NoSQL را در مقایسه با DBMS های ارتباطی تجاری داشته باشد.

اصطلاحات پایگاه داده

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

پایگاه داده (Database): پایگاه داده مجموعه ای از داده ها است که به روشی خاص سازماندهی می شود. داده ها به گونه ای ذخیره می شوند که دسترسی به سؤالات را آسان می کند. به عنوان مثال پایگاه داده "Simpsons".

جدول (Table): یک پایگاه داده می تواند چندین جدول در آن داشته باشد. تمام داده ها در جداول ذخیره می شوند. یک جدول دارای مجموعه ای از فیلدها در آن است. این فیلدها باعث طراحی یا ساختار پایگاه داده می شوند. پایگاه داده "Simpsons" دارای دو جدول به نام های "Character" و "Quote" است.

رشته (Field): هر جدول دارای مجموعه ای از فیلدها است.جدول مثال "Character" ما دارای چهار قسمت است - شناسه، نام، ضریب هوشی و جنسیت.

نوع داده (Data Type): هر فیلد فقط می تواند یک نوع داده داشته باشد. که به آن نوع داده می گویند. این می تواند یک رشته، یک عدد صحیح، یک تاریخ و غیره باشد. هنگام ایجاد جدول، باید نوع داده هایی را که می تواند در آن قسمت ذخیره شود، مشخص کنید. یک قسمت را می توان برای ذخیره یک شماره، دیگری برای یک رشته استفاده کرد. از آنجا که هر جدول دارای تعدادی فیلد است، انواع مختلفی از داده ها در یک جدول قابل ذخیره هستند. نوع داده در جدول مثال "Character" ماست .

  • ID - عدد صحیح
  • Name - رشته
  • iq - عدد صحیح
  • رشته جنسیت ( "m" یا "f")

ردیف (Row): کلیه اصطلاحات تاکنون با ساختار - ردیف مربوط به داده ها است. همچنین می توان آن را یک رکورد نامید. مجموعه مجموعه ای از مقادیر برای همه زمینه ها در یک جدول با هم ردیف نامیده می شود.

کلید اصلی (Primary Key): کلید اصلی فیلدهایی است که هر ردیف جدول را بطور منحصر به فرد مشخص می کند. مقدار این فیلد از طریق جدول بی نظیر خواهد بود. در جدول مثال ما "id" کلید اصلی است.

رابطه (Relation): موارد بسیاری وجود خواهد داشت که داده ها در یک جدول می توانند به داده های جدول دیگری مرتبط باشند. این ارتباط بین دو جدول یک رابطه نامیده می شود.

کلید خارجی (Foreign Key): هنگامی که بین 2 جدول رابطه ای وجود دارد، این جدول ها با وارد کردن کلید اصلی یک جدول در ردیف مربوط به جدول دیگر متصل می شوند. فیلد مورد استفاده در چنین راهی برای اتصال 2 جدول کلید خارجی است. به عنوان مثال، جدول "Quote" دارای 3 قسمت id ،person_id و Quote است. همانطور که در اینجا نشان داده شده است، قسمت کاراکتر شناسه شخصیتی را دارد که Quote را بیان می کند.

انواع پایگاه داده

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

پایگاه داده در حافظه (In-memory Database)

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

پایگاه داده فعال (Active Database)

پایگاه داده فعال شامل یک معماری مبتنی بر رویداد است که می تواند به شرایط داخل و خارج از پایگاه داده پاسخ دهد. کاربردهای ممکن شامل نظارت امنیتی، هشدار، جمع آوری آمار و مجوز است. بسیاری از دیتابیس ها ویژگی های فعال پایگاه داده را در قالب محرک های پایگاه داده ارائه می دهند.

انبارهای داده (Data warehouses)

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

پایگاه داده قیاسی (Deductive Database)

یک پایگاه داده قیاسی برنامه نویسی منطق را با یک پایگاه داده رابطه ای ترکیب می کند.

پایگاه داده سند گرا (Document-oriented database)

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

پایگاه داده تعبیه شده (Embedded database)

یک سیستم دیتابیس تعبیه شده DBMS است که کاملاً با نرم افزار کاربردی یکپارچه شده است و نیاز به دسترسی به داده های ذخیره شده دارد به گونه ای که DBMS از کاربران نهایی برنامه پنهان شده و نیاز به کمی و یا هیچ تعمیر و نگهداری مداوم دارد.

پایگاه داده کاربر نهایی (End-user databases)

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

سیستم پایگاه داده فدرال (Federated database system)

یک سیستم پایگاه داده فدرال دارای چندین پایگاه داده مجزا است که هر یک دارای DBMS خاص خود هستند. این سیستم به عنوان یک پایگاه داده واحد توسط یک سیستم مدیریت پایگاه داده فدرال (FDBMS) اداره می شود، که بطور شفاف چندین DBMS های مستقل، احتمالاً انواع مختلفی را ادغام می کند (که در این صورت این سیستم یک پایگاه داده ناهمگن خواهد بود)، و یک نمای مفهومی یکپارچه برای آنها فراهم می کند.

چند پایگاه داده ای (Multi-database)

بعضی اوقات اصطلاح چند دیتابیس به عنوان مترادف پایگاه داده فدرال استفاده می شود، اگرچه ممکن است به یک گروه کمتر یکپارچه شده (مثلاً بدون FDBMS و یک شمای یکپارچه مدیریت شده) از بانک های اطلاعاتی که در یک برنامه واحد همکاری می کنند، اشاره شود. در این حالت، به طور معمول از وسایل میانی برای توزیع استفاده می شود، که به طور معمول شامل یک پروتکل متعهد اتمی (ACP)، به عنوان مثال، پروتکل متعهد دو فاز، اجازه می دهد تا معاملات توزیع شده (جهانی) در سراسر بانکهای اطلاعاتی شرکت کننده انجام شود.

آرایه پایگاه داده Array DBMS

یک آرایه DBMS نوعی DBMS NoSQL است که امکان مدل سازی، ذخیره سازی و بازیابی (معمولاً بزرگ) آرایه های چند بعدی مانند تصاویر ماهواره ای و خروجی شبیه سازی آب و هوا را فراهم می کند.

پایگاه داده ابر متن hypertext

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

پایگاه داده عملیاتی (Operational databases)

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

پایگاه داده موازی (Parallel database)

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

  • معماری حافظه مشترک، که در آن چندین پردازنده فضای حافظه اصلی و سایر ذخیره داده ها را به اشتراک می گذارند.
  • معماری دیسک مشترک، که در آن هر واحد پردازش (به طور معمول متشکل از چندین پردازنده) حافظه اصلی خود را دارد، اما همه واحدها حافظه دیگر را به اشتراک می گذارند.
  • هیچ معماری مشترکی نیست، جایی که هر واحد پردازش حافظه اصلی و سایر ذخیره های خاص خود را دارد.

پایگاه داده رابطه ای (Relational database)

پایگاه داده رابطه ای، که توسط E.F. Codd در IBM در سال 1970 اختراع شده است، یک پایگاه داده جدولی است که در آن داده ها به گونه ای تعریف شده اند که می تواند به روش های مختلف سازماندهی مجدد و دسترسی پیدا کند. بانکهای اطلاعاتی رابطه ای از مجموعه جداول با داده هایی تشکیل شده اند که در یک دسته از پیش تعریف شده قرار می گیرند. در هر جدول حداقل یک دسته داده در یک ستون وجود دارد و هر ردیف برای دسته هایی که در ستون ها تعریف می شوند دارای یک نمونه داده خاص است. SQL رابط استاندارد کاربر و برنامه برای یک پایگاه داده رابطه است. پایگاه داده های ارتباطی به آسانی قابل گسترش هستند، و بدون نیاز به تغییر همه برنامه های موجود، می توانید دسته جدید داده ها را بعد از ایجاد پایگاه داده اصلی اضافه کنید. پایگاه داده رابطه ای در دهه 1980 حاکم شدند. موارد موجود در یک پایگاه داده رابطه ای به عنوان مجموعه ای از جداول با ستون ها و ردیف ها سازماندهی می شوند. فن آوری داده های رابطه ای کارآمدترین و انعطاف پذیرترین روش برای دستیابی به اطلاعات ساختار یافته را فراهم می کند.

پایگاه داده توزیع شده (Distributed database)

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

پایگاه داده ابری (Cloud database)

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

پایگاه داده NoSQL

پایگاه داده های NoSQL برای مجموعه های بزرگی از داده های توزیع شده مفید هستند. بانکهای اطلاعاتی NoSQL برای مشکلات عملکرد داده های بزرگ که پایگاه داده های رابطه ای برای حل آنها ساخته نشده مؤثر هستند. آنها زمانی مؤثر هستند که یک سازمان باید بخش های بزرگی از داده ها یا داده های بدون ساختار را که در چندین سرور مجازی در ابر ذخیره می شوند، تجزیه و تحلیل کند. پایگاه داده NoSQL یا غیرمرتبط، اجازه می دهد تا داده های بدون ساختار و نیمه ساختار یافته ذخیره و دستکاری شوند، برخلاف یک پایگاه داده رابطه ای، که تعریف می کند چگونه باید تمام داده های وارد شده در پایگاه داده تهیه شود. هرچه برنامه های وب رایج تر و پیچیده تر شدند، پایگاه داده های NoSQL محبوبیت زیادی پیدا کردند.

پایگاه داده شی گرا (Object-oriented database)

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

پایگاه داده گراف (Graph database)

پایگاه داده گراف یا پایگاه داده گرافیکی نوعی پایگاه داده NoSQL است که از تئوری نمودار برای ذخیره، نقشه و روابط پرس و جو استفاده می کند. بانکهای اطلاعاتی نمودارها اساساً مجموعه ای از گره ها و لبه ها هستند، جایی که هر گره یک موجودیت را نشان می دهد و هر لبه نشان دهنده اتصال بین گره ها است. پایگاه دادههای نمودار به دلیل تجزیه و تحلیل اتصالات در حال افزایش محبوبیت هستند. به عنوان مثال، شرکت ها ممکن است از داده های گرافیکی برای داده های مربوط به مشتریان از رسانه های اجتماعی استفاده کنند. پایگاه داده های نمودار اغلب از SPARQL، یک زبان برنامه نویسی اعلانی و پروتکل برای تجزیه و تحلیل پایگاه داده گراف استفاده می کنند. SPARQL این قابلیت را دارد که تمام تجزیه و تحلیل هایی را که SQL می تواند انجام دهد، به علاوه بتوان از آن برای تجزیه و تحلیل معنایی، بررسی روابط استفاده کرد. این امر می تواند برای انجام تجزیه و تحلیل بر روی مجموعه داده هایی که دارای داده های ساختاری و بدون ساختار هستند، مفید باشد. SPARQL به کاربران اجازه می دهد تا تجزیه و تحلیل اطلاعات ذخیره شده در یک پایگاه داده رابط و کوتاهترین مسیر را انجام دهند.

رابط برنامه کاربردی

یک برنامه نویس از طریق یک رابط برنامه (API) یا از طریق یک زبان پایگاه داده تعامل با پایگاه داده را رمزگذاری می کند. API یا زبان انتخاب شده خاص باید توسط DBMS پشتیبانی شود، بطور غیرمستقیم از طریق یک پردازنده قبل یا یک API Bridge. هدف برخی از API به صورت مستقل از پایگاه داده است و ODBC یک نمونه مشهور است. سایر API رایج شامل JDBC و ADO.NET است.

زبان های پایگاه داده

زبان های پایگاه داده زبان های خاص هستند که اجازه می دهند یک یا چند کار زیر را که بعضاً در زیر زبان مشخص می شوند، انجام دهد:

  • زبان کنترل داده (DCL) - دسترسی به داده ها را کنترل می کند.
  • زبان تعریف داده (DDL) - انواع داده ها از جمله ایجاد، تغییر یا رها کردن و روابط بین آنها را تعریف می کند.
  • زبان دستکاری داده ها (DML) - کارهایی مانند درج، به روزرسانی یا حذف وقایع داده را انجام می دهد.
  • زبان جستجوی داده (DQL) - امکان جستجوی اطلاعات و محاسبه اطلاعات مشتق شده را می دهد.

زبان های پایگاه داده مخصوص یک مدل داده خاص هستند. نمونه های قابل توجه عبارتند از:

  • SQL نقش تعریف داده، دستکاری داده ها و پرس و جو را به یک زبان واحد ترکیب می کند. این یکی از اولین زبان های تجاری برای مدل رابطه بود، اگرچه از بعضی جهات از مدل رابطه ای همانطور که توسط Codd توضیح داده شد فاصله می گیرد (برای مثال، می توان ترتیب و ردیف ها و ستون های یک جدول سفارش داد). SQL در سال 1986 به مؤسسه استاندارد ملی آمریكا (ANSI) و سازمان بین المللی استاندارد سازی (ISO) در سال 1987 تبدیل شد. این استاندارد ها از سال به طور مرتب بهبود یافته و توسط کلیه تجارت های اصلی پشتیبانی می شود.
  • OQL یک استاندارد زبان مدل شی (از گروه مدیریت داده های شی) است. این طرح در برخی از زبانهای جدیدتر پرس و جو مانند JDOQL و EJB QL تأثیر گذاشته است.
  • XQuery یک زبان پرس و جو استاندارد XML است که توسط سیستم های پایگاه داده XML مانند MarkLogic و eXist، توسط پایگاه داده های رابطه ای با قابلیت XML مانند Oracle و DB2 و همچنین توسط پردازنده های XML در حافظه مانند Saxon اجرا می شود.SQL / XML XQuery را با SQL ترکیب می کند.

یک زبان پایگاه داده همچنین ممکن است دارای ویژگی هایی مانند:

  • مدیریت پیکربندی و ذخیره سازی اختصاصی DBMS
  • محاسبات برای تغییر نتایج پرس و جو، مانند شمارش، جمع بندی، میانگین، مرتب سازی، گروه بندی و ارجاع متقابل
  • اجرای محدودیت (به عنوان مثال در بانک اطلاعاتی اتومبیل، فقط اجازه یک نوع موتور در هر اتومبیل)
  • نسخه رابط برنامه نویسی برنامه از زبان پرس و جو، برای راحتی برنامه نویس

انواع نرم افزار مدیریت پایگاه داده

انواع پایگاه داده

MongoDB

یک پایگاه داده سند گرا، چند سکویی، مقیاس پذیر و انعطاف پذیر است که نیازهای فهرست بندی و ایجاد کوئری را بر آورده می کند. داده ها را در اسناد انعطاف پذیر مانند جی سون ذخیره می کند، به این معنی که فیلدها می توانند از در هر سند متفاوت باشند و ساختار داده ها را می توان در طول زمان تغییر داد. MongoDB از اسناد JSON مانند اسکریپت به عنوان یک برنامه پایگاه داده NoSQL استفاده می کند. مدل سند گرا در کد برنامه برای اشیا نقشه ایجاد می کند که کار را برای داده ها آسان تر می کند.

MySQL

سرور مای اس کیو ال نوعی سیستم مدیریت پایگاه داده‌های متن‌باز و رابطه ای می باشد که امکانات زیادی را برای کاربران فراهم می کند. در واقع، یک سرور چند کاربره است. از کاربران سرشناس مای‌ اس‌ کیوال می توان از ویکی‌پدیا، فیسبوک، لینکداین، دیگ فلیکر نام برد.

SQL Server

مایکروسافت SQL Server یک سیستم مدیریت پایگاه داده رابطه ای یا RDBMS است که از طیف گسترده ای از پردازش تراکنش، اپلیکیشن های هوشمند و تجزیه و تحلیل کسب و کار در محیط های فناوری اطلاعات پشتیبانی می کند. این یکی از سه تکنولوژی پایگاه داده پیشرو در کنار پایگاه داده اوراکل و DB2 IBM است.

Oracle

پایگاه داده اوراکل بانک اطلاعاتی است که از طریق سیستم مدیریت پایگاه داده ی شرکت اوراکل مدیریت و سازماندهی می شود. اولین نسخه اوراکل در سال 1979 منتشر شد. وظیفه ی پایگاه داده اوراکل مدیریت و نگهداری اطلاعات و داده ها می باشد. در حقیقت می توان آن را یک سیستم مدیریت بانک اطلاعاتی رابطه ای یا RDBMS دانست.

Access

مایکروسافت اکسس یک سیستم مدیریت پایگاه داده (DBMS) از مایکروسافت است که ترکیبی از رابط Microsoft Jet Database Engine با یک رابط کاربری گرافیکی و ابزارهای توسعه نرم افزار می باشد. این عضو از مجموعه برنامه های مایکروسافت آفیس شامل نسخه های حرفه ای و بالاتر بوده و یا به طور جداگانه فروخته می شود.

SQLite

یک کتابخانه نرم افزاری مبتنی بر زبان استاندارد SQL است که یک سیستم مدیریت پایگاه داده Relational را فراهم می کند. lite در SQLite بدین معنی است که از لحاظ تنظیم، مدیریت پایگاه داده و منابع مورد نیاز کم حجم است. SQLite تنها برنامه مدیریت پایگاه داده مستقل است که عکس مدل های دیگر پایگاه داده که به صورت Client/Server هستند می باشد.

PostgreSQL

یک سیستم مدیریت پایگاه داده منبع باز و Relational است که توسط داوطلبانی از سراسر جهان طراحی شده است. PostgreSQL به هیچ شرکتی یا سایر نهادهای خصوصی تعلق ندارد و تحت کنترل آنها نیست و دسترسی به کد منبع آن رایگان است. از متن، تصاویر، صدا و ویدئو پشتیبانی می کند و شامل رابط های برنامه نویسی برای C/C++ ،Java ،Perl ،Python ،Ruby ،Tcl و ODBC است. این برنامه بر روی سیستم عامل های متعددی شامل لینوکس، اکثر برنامه های کاربردی یونیکس، MAC OS X، سولاریس، Tru64 و ویندوز اجرا می شود.

MariaDB

MariaDB یک سیستم مدیریت پایگاه داده منبع باز مبتنی بر MySQL است. در واقع، مشتق توسعه ای MySQL و جایگزینی برای MySQL می باشد. پایگاه داده بعد از اینکه MySQL توسط شرکت اوراکل به دست آمد، توسعه یافت. یکی از نقاط قوت MariaDB این است که بر روی امنیت پایگاه داده متمرکز شده است و تیم MariaDB به طور مداوم مسائل امنیتی MySQL و MariaDB را پیدا و رفع می کند.

Redis

ردیس یک ذخیره کننده ساختار داده در حافظه و متن باز (BSD مجوز) است که به عنوان یک پایگاه داده، cache و message broker استفاده می شود. ردیس از ساختارهای داده مانند string ،hash ،list ،set ،sorted set با کوئری ها، bitmaps ،hyperloglogs و geospatial indexes با کوئری های ردیس پشتیبانی می کند.

مزایای پایگاه داده

سیستم مدیریت پایگاه داده از مزایای بسیاری برخوردار است. برخی از این مزایا در زیر آورده شده است:

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

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

یکپارچگی داده: یکپارچگی داده به این معنی است که داده ها در پایگاه داده دقیق و سازگار هستند. یکپارچگی داده بسیار مهم است زیرا چندین پایگاه داده در DBMS وجود دارد. همه این پایگاه داده ها حاوی داده هایی هستند که برای چندین کاربر قابل مشاهده است. بنابراین لازم است که از صحت و سازگاری داده ها در کلیه بانکهای اطلاعاتی و برای همه کاربران اطمینان حاصل شود.

امنیت داده ها: امنیت داده ها یک مفهوم اساسی در یک پایگاه داده است. فقط کاربران مجاز باید به پایگاه داده دسترسی پیدا کنند و هویت آنها باید با استفاده از نام کاربری و رمز عبور تأیید شود. کاربران غیرمجاز نباید تحت هیچ شرایطی به این پایگاه داده دسترسی داشته باشند زیرا این امر محدودیت های یکپارچگی را نقض می کند.

حریم خصوصی: قانون حفظ حریم خصوصی در یک پایگاه داده به این معنی است که فقط کاربران مجاز می توانند با توجه به محدودیت های حریم خصوصی آن به یک پایگاه داده دسترسی پیدا کنند. سطح دسترسی به پایگاه داده وجود دارد و یک کاربر فقط می تواند داده هایی را که به او اجازه داده شده است مشاهده کند. به عنوان مثال در سایت های شبکه های اجتماعی محدودیت های دسترسی برای حساب های مختلفی که ممکن است کاربر بخواهد به آنها دسترسی داشته باشد متفاوت است.

تهیه نسخه پشتیبان و بازیابی: سیستم مدیریت پایگاه داده به طور خودکار از پشتیبان گیری و بازیابی مراقبت می کند. کاربران نیازی به تهیه نسخه پشتیبان از داده های دوره ای ندارند زیرا این امر توسط DBMS مورد توجه قرار می گیرد. علاوه بر این، این پایگاه داده همچنین پس از خرابی یا خرابی سیستم به وضعیت قبلی خود بازیابی می کند.

ثبات داده ها: ثبات داده ها در یک پایگاه داده تضمین می شود زیرا هیچ افزونگی داده ای وجود ندارد. همه داده ها به طور مداوم در سرتاسر پایگاه داده ظاهر می شوند و داده ها برای همه کاربرانی که پایگاه داده را مشاهده می کنند یکسان است. علاوه بر این، هرگونه تغییر در دیتابیس بلافاصله تمام کاربران منعکس می شود و هیچ ناهماهنگی داده ای وجود ندارد.

عملکرد پایگاه داده

اگر DBA یا تحلیلگر عملکرد پایگاه داده هستید، احتمال دارد که هر روز از هفته با مسائل مربوط به عملکرد در مورد سیستم های پایگاه داده خود سر و کار داشته باشید. اما آیا تا به حال برای لحظه ای متوقف شده اید و سعی کرده اید وقتی می گویید "عملکرد پایگاه داده" منظورتان چیست؟ انجام این کار تنها در صورت سازماندهی افکار خود در مورد موضوع می تواند یک تمرین ارزشمند باشد. در مورد آن فکر کنید؛ آیا قبل از تلاش برای مدیریت عملکرد پایگاه های داده خود نیاز به تعریف کاملی از عملکرد پایگاه داده نداریم؟

فکر کردن در مورد عملکرد پایگاه داده با استفاده از مفاهیم آشنا عرضه و تقاضا می تواند مفید باشد. کاربران از DBMS اطلاعات می خواهند. DBMS اطلاعات را در اختیار متقاضیان قرار می دهد. نرخی که DBMS تقاضا برای اطلاعات را تأمین می کند را می توان به سادگی، "عملکرد پایگاه داده" تصور کرد. اما بیایید کمی عمیق تر بررسی کنیم. پنج عامل مؤثر بر عملکرد پایگاه داده وجود دارد: حجم کار، توان عملیاتی، منابع، بهینه سازی و بحث. حجم کاری که از DBMS درخواست می شود، تقاضا را تعریف می کند. این ترکیبی از معاملات آنلاین، مشاغل دسته ای، پرس و جوهای موقت، پرس و جوهای اطلاعات کسب و کار و تجزیه و تحلیل، برنامه های کاربردی و دستورات سیستم است که در هر زمان معین از طریق DBMS هدایت می شوند. حجم کار می تواند از روز به روز، ساعت به ساعت، دقیقه به دقیقه و بله، حتی از دوم تا دوم به شدت تغییر کند. گاهی اوقات می توان حجم کار را پیش بینی کرد (مانند پردازش سنگین ماه پرداخت حقوق و دستمزد یا دسترسی بسیار سبک بعد از ساعت 7 بعد از ظهر که اکثر کاربران برای روز ترک کرده اند)، اما در مواقع دیگر غیرقابل پیش بینی است. حجم کار کلی می تواند تأثیر عمده ای بر عملکرد پایگاه داده داشته باشد.

توان عملیاتی توانایی کلی رایانه را برای پردازش داده ها تعریف می کند. این کامپوزیت از سرعت I/O، سرعت CPU، قابلیت های موازی دستگاه و کارایی سیستم عامل و نرم افزار سیستم است. و فقط فرضیات توان خود را بر اساس رقم ظرفیت سخت افزاری (به عنوان مثال، مگاهرتز برای جعبه های Wintel ،MSU و MIPS برای اصلی ترین فرمت ها) پایه گذاری نکنید. شاید شما بسته های سخت یا نرم را روی جعبه خود نصب کرده باشید، که می تواند بر توان کارایی تأثیر بگذارد و اگر یک پردازنده اصلی DBA هستید، پردازشگرهای ویژه (zIIPs و AAP) را فراموش نکنید. ابزارهای سخت افزاری و نرم افزاری در اختیار سیستم به عنوان منابع سیستم شناخته می شوند. نمونه ها شامل حافظه هستند (مانند نمونه اختصاص داده شده به فضای بافر یا فضای آدرس)، دیسک، کنترل کننده های حافظه نهان و میکرو کد.

چهارمین عنصر تعیین کننده عملکرد پایگاه داده، بهینه سازی است. همه نوع سیستم ها می توانند بهینه سازی شوند، اما سیستم های پایگاه داده رابطه ای منحصر به فرد هستند زیرا بهینه سازی پرس و جو در درجه اول داخلی برای DBMS انجام می شود. اطمینان از ارائه اطلاعات به روز و دقیق پایگاه داده برای بهینه سازی پرس و جو از اهمیت بسیار بالایی در دستیابی به سؤالات بهینه SQL برخوردار است. البته به خاطر داشته باشید که فاکتورهای دیگری نیز وجود دارد که باید بهینه سازی شوند (پارامترهای پایگاه داده، پارامترهای سیستم و غیره) برای فعال کردن بهینه ساز رابطه برای ایجاد کارآمدترین مسیرهای دسترسی. همچنین جنبه های بهینه سازی وجود دارد که خارج از محدوده و کنترل بهینه ساز رابطه است، مانند کدگذاری اسکریپت کارآمد، طراحی مناسب برنامه، کدگذاری گزینه های کارآمد ابزار و غیره.

هنگامی که تقاضا (حجم کار) برای یک منبع خاص زیاد باشد، مشاجره می تواند نتیجه بگیرد. مشاجره شرطی است که در آن دو یا چند مؤلفه بار کار سعی دارند از یک منبع واحد به روشی متناقض استفاده کنند (برای مثال، به روزرسانی های دوتایی در همان قطعه داده ها). هنگامی که یک برنامه سعی می کند داده هایی را که در حال تغییر است توسط دیگری بخوانید، DBMS باید دسترسی را ممنوع اعلام کند تا اصلاح کامل شود تا از یکپارچگی داده اطمینان حاصل شود. DBMS از مکانیسم قفل استفاده می کند تا چندین کاربر همزمان، دسترسی و تغییر داده ها را در پایگاه داده امکان پذیر کند. با استفاده از قفل های DBMS به طور خودکار تمامیت داده ها را تضمین می کند. استراتژی های قفل کردن DBMS به چندین کاربر از چندین محیط اجازه می دهد همزمان و به داده ها در پایگاه داده دسترسی پیدا کنند و تغییر دهند. با افزایش مشاجره، قفل شدن و افزایش قدرت کاهش می یابد. بنابراین قرار دادن همه این موارد، عملکرد پایگاه داده می تواند به عنوان بهینه سازی استفاده از منابع برای افزایش کارآیی و به حداقل رساندن مشاجره تعریف شود، و این امکان را می دهد تا بزرگترین حجم کاری ممکن پردازش شود.

علاوه بر این، برنامه های کاربردی دیتابیس مرتباً با سایر نرم افزارهای سیستم ارتباط برقرار می کنند که باید در برنامه ریزی عملکرد نیز مورد بررسی قرار گیرند. بسیاری از عوامل نه تنها بر عملکرد DBMS و برنامه های کاربردی دسترسی به پایگاه داده های آن بلکه عملکرد سایر مؤلفه های سیستم را تأثیر می گذارد (به عنوان مثال، پردازنده معاملات، نرم افزار شبکه، سرورهای برنامه و غیره)

آیا این نوشته را دوست داشتید؟