پایگاه داده

با پیشرفت علم در حوزه ی IT حجم زیاد داده های موجود و نیاز ضروری به سرعت و دقت بالا و همچنین وجود ساختاری منظم برای ذخیره، یکپارچه سازی و دسترسی سریع به این اطلاعات وجود یک سیستم که بتواند این امر را آسانتر کند به شدت در دنیای فناوری اطلاعات احساس میشود.پایگاه داده پاسخی بود که مهندسین کامپیوتر در سال ۱۹۶۰ به آن رسیدند.data-2برای دسترسی به این اطلاعات نیاز به یک سیستم مدیریت پایگاه داده (Data Base Management System) است. این سیستم وظیفه های فراوانی از جمله:مدیریت حجم زیادی از اطلاعات وبرقراری امنیت برای دادهافزایش سرعت دستیابی به اطلاعاتداشتن کنترل متمرکز روی داده هاامکان تعریف و ایجاد پایگاه دادهامکان کنترل کارایی حال به تعریف چند واژه که در آینده زیاد با آنها سرو کار داریم میپردازیم:موجودیت: به هر شیء یا پدیده ای که در مورد آن میخواهیم اطلاع داشته باشیم. مانند دانشجو، کارمند و …صفت خاصه: ویژگی جدا کننده یک موجودیت با دیگری. برای مثال یک کارمند دارای صفت خاصه (نام، نام خوانوادگی و…) است که او را از دیگر کارمندان جدا میکند.Relationship: به ارتباط بین موجودیت ها گفته میشود مثلا ارتباط بین کارمند و مدیر.فیلد: کوچکترین واحد داده ذخیره میباشد.رکورد: مجموعه ای از فیلد های مرتبط با هم.فایل: مجموعه ای از تمام نمونه ها یا رویداد های یک نوع رکوردsqlSQL (structured query language) یک زبان ساخت یافته است که برای ایجاد، تغییر و به طور کلی مدیریت پایگاه داده به کار میرود.این زبان توسط موسسه ANSI (American National Standards Institute) در سال ۱۹۸۶ استاندارد سازی شد. این زبان به دلایل متعدد محبوب است از جمله:با بسیاری از زبان های برنامه نویسی سازگار است.زبان نسبتا راحتی برای یادگیری است.و با پایگاه داده هایی از جمله Oracle و SQL Server نیز سازگار میباشد.این زبان بر پایه ی زبان پرس و جوی ساخت یافته میباشد.دو نوع دستور در SQL داریم:DDL – Data Definition Language : زبان تعریف داده که با آن میتوان دستورات حذف یا اضافه کردن را در یک یا چند جدول را در بانک اطلاعاتی انجام داد.DML – DATA Manipulating Language : زبان پردازش داده که با استفاده از این زبان تغییرات را در جدول انجام میدهیم._______________________________________10مورد از بهترین پایگاه داده‌ها که در سال 2018 باید یاد بگیرید پایگاه داده برای توسعه هر نرم‌افزاری ضروری است و این پایگاه داده‌ای که انتخاب می‌شود، یکی از نیازهای اصلی معماری نرم‌افزار می‌باشد. در سال 2018-2019، ما به عنوان توسعه‌دهنده انتخاب‌های زیادی برای پایگاه داده داریم. عمدتا می‌توانیم دو نوع پایگاه داده داشته باشیم. پس بیایید با محبوب‌ترین پایگاه داده‌ها شروع کنیم. SQL، مثل: Oracle، MySQL، Microsoft SQL Server، PostgreSQLNoSQL، مثل: MongoDB، Redis، CasandraSQL پایگاه داده رابطه‌ای و NoSQL پایگاه داده‌ غیررابطه‌ای است. در این مقاله مزایا و معایب 10 مورد از بهترین پایگاه داده‌ها را بررسی می‌کنیم. بنابراین می‌توانید هر کدام که برای برنامه‌یتان مناسب‌تر است را انتخاب کنید.در اینجا لیستی از پایگاه داده‌ها برای سال 2018 وجود دارد.محبوب‌ترین پایگاه داده‌ها در میان برنامه‌نویسانOracleMySQLMicrosoft SQL ServerPostgreSQLMongoDBDB2Microsoft AccessCassandraElasticsearch1. Oracleبله، اوراکل پادشاه محبوب‌ترین پایگاه داده‌ها است. چرا؟ این پایگاه داده واقعا در میان توسعه‌دهندگان معروف است، به آسانی می‌توان از آن استفاده کرد، اسناد به خوبی نوشته می‌شوند، ویژگی‌های جدیدش شگفت‌انگیز است (JSON از SQL، پشتیبانی از اسامی طولانی، بهبود تگ لیست و غیره).آخرین ورژن پایگاه داده اوراکل c12 است.2. MySQLشرکت‌ها می‌توانند با استفاده از سرورهای عمومی رایگان شروع به کار کرده و بعدا آن را به نسخه تجاری ارتقاء دهند.روی لینوکس، ویندوز، OSX و FreeBSD و Solaris اجرا می‌شود.دارای رابط کاربری گرافیکی بصری برای طراحی جداول پایگاه داده می‌باشد.با توجه به open-source بودنش، یک بانک بزرگ از آموزش‌ها و اطلاعات دارد که در دسترس شما قرار می‌گیرد تا مسائل را شروع کرده و حل کنید.از پارتیشن‌بندی و رونوشت پشتیبانی می‌کند، همچنین برای Xpath و ذخیره‌سازی پروسیجرها، triggerها و viewها می‌باشد.3. Microsoft SQL Serverبه طور گسترده برای DBMS تجاری استفاده می‌شود.محدود به ویندوز است، اما اگر شرکت شما بیشتر از محصولات مایکروسافت استفاده می‌کند، این یک مزیت محسوب می‌شود.4. PostgreSQLپایگاه داده شیء-رابطه مقیاس‌پذیر است.بر روی لینوکس، ویندوز، OSX و چندین سیستم دیگر اجرا می‌شود.از tablespaceها، stored procedureها، joinها، viewها، triggerها و غیره پشتیبانی می‌کند.5. MongoDBمحبوب‌ترین پایگاه داده NoSQL است. با این وجود برخی خواص SQL مثل کوئری و ایندکس را حفظ می‌کند.طیف گسترده‌ای از زبان‌های برنامه نویسی مثل Scala، Groovy، Clojure و Java را قدرتمند می‌سازد.عملکرد بالایی در پایگاه داده‌های بسیار بزرگ دارد.برای کوئری‌های داینامیک و تعریف ایندکس‌ها بهترین است.لینوکس، ویندوز و OSX را قدرتمند می‌سازد، اما اندازه پایگاه داده روی سیستم‌های 32 بیتی به 2.5 GB محدود می‌شود.6. DB 2پاسخ IBM به g11 اوراکل است، در host و نسخه‌های ویندوز/لینوکس قابل دسترس می‌باشد.بر روی لینوکس، یونیکس، ویندوز و رایانه‌های بزرگ اجرا می‌شود.برای محیط هاست IBM ایده‌آل است.از هر دو مدل SQL و NoSQL پشتیبانی می‌کند.7. Microsoft Accessبرای پایگاه داده‌های رابطه‌ای مورد استفاده قرار می‌گیرد.مانند Microsoft SQL Server، به ویندوز محدود می‌شود.ایده‌آل برای شروع با تحلیل ترافیک است، اما عملکرد آن برای پروژه‌های با مقیاس بزرگ طراحی نشده است.زبان‌های برنامه‌نویسی محدود شده به C، #C، ++C، Java، VBA و Visual Rudimental.NET را قدرتمند می‌سازد.8. Cassandraپایگاه داده NoSQL با دسترسی‌پذیری بالا است.برای ذخیره‌سازی مجموعه داده‌های بسیار بزرگ با رابط کاربری سازنده می‌باشد.در بانکداری، امور مالی و ثبت محبوب است، به علاوه توسط فیس‌بوک و توییتر هم استفاده می‌شود.ویندوز، لینوکس و OSX، همچنین زبان‌های متعدد دیگری را قدرتمند می‌سازد.در هنگام استفاده با Hadoop، Map/reduce امکان‌پذیر است.9. Redisاین پایگاه داده open-source، شبکه‌ای و in-recollection استکه پایداری کلیدها به صورت انتخابی ذخیره میشود.اطلاعات در این پایگاه داده به صورت کلید/مقدار ذخیره می‌شوند.Redis معمولا روی پلت‌فرم‌های IaaS و PaaS مثل Amazon Web Accommodations، Rackspace یا Heroku قرار می‌گیرد.بسیاری از زبان‌ها اتصال داده Redis دارند، ازجمله ActionScript, C, C++, C#, Clojure, Prevalent Lisp, Dart, Erlang, Go, Haskell, Haxe, Io, Java, JavaScript (Node.js), Lua, Objective-C, Perl, PHP, Pristine Data, Python, R, Ruby, Scala, Smalltalk and Tcl10. ElasticsearchElasticsearch یک موتور جستجوی open-source، به طور گسترده قابل توزیع، به راحتی قابل مقیاس می‌باشد. با استفاده از یک API گسترده و دقیق قابل دسترس است. می‌تواند جستجوهای بسیار سریع که از برنامه‌های یابنده اطلاعات شما پشتیبانی می‌کند را انجام دهد.در Elasticsearch این عملیات ظریف و اغلب متمرکز به طور خودکار و غیر قابل مشاهده رخ می‌دهند:تقسیم‌بندی اسناد در میان ترتیبی از مقیاس‌ها (shard) یا نگهدارنده‌های متمایز.در یک کلاستر(cluster) چند گره‌ای،‌اسناد برای shardهایی که در میان تمام گره‌ها قرار دارند، توزیع می‌شوند.تعادل‌سازی بین Shardهای تمام گره‌ها در یک کلاستر تا ایندکس کردن و لود جستجوها به طور مساوی مدیریت شوند.تکرار و تکثیر هر shard برای ارائه افزونگی داده و failoverدرخواست مسیریابی از هر گره در کلاستر برای گره‌های خاص حاوی داده‌های خاص مورد نیاز شماافزودن و ادغام گره‌های جدید مانند وقتی که می خواهید اندازه کلاستر را افزایش دهید.توزیع مجدد Shardها برای بازیابی خودکار گره‌هایی که از دست رفته‌اند.