رفتن به مطلب

یک سيستم مديريت پايگاه داده پیشرفته و آزاد


Fahim

ارسال های توصیه شده

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

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

پايگاه داده PostgreSQL یک سیستم مدیریت پایگاه داده رابطه‌ای‌شیء یا ORDBMS است. این نرم‌افزار تحت مجوزي شبیه به BSD عرضه شده و به همین دلیل، یک نرم‌افزار آزاد به شمار می‌آید. مانند دیگر پروژه‌های اپن‌سورس، شرکت خاصی پی‌گیر بحث توسعه آن نیست و جامعه‌ای از توسعه‌دهندگان به توسعه و بهینه‌سازی آن مشغول هستند.تاریخچه

نخستين مشکلي که کاربران اين نرم‌افزار با آن رو‌به‌رو مي‌شوند، چگونگي تلفظ نام آن است. تلفظ PostgreSQL به صورت (پست جرس کیو اِل ) است که در بيشتر مواقع و برای راحتی از طرف کاربران، Postgres خوانده می‌شود. با این‌که در سال‌های 2007 تلاش‌هایی از طرف هواداران برای استفاده از Postgre به‌عنوان نام رسمی نرم‌افزار صورت گرفت، اما گروه اصلی توسعه آن اعلام کرد که آن را همچنان

PostgreSQL خواهد نامید. نام نرم‌افزار، از ایده اولیه ایجاد و توسعه آن یعنی پايگاه داده Post-Ingres گرفته شده‌است. پايگاه داده Ingres، یک پايگاه داده رابطه‌ایِ اپن‌سورس و تجاری است که توسعه آن توسط شرکت Ingres کنترل می‌شود.

نرم‌افزار Postgres در طی توسعه پروژه Ingres که در اواسط دهه 1980 در دانشگاه برکلی پی‌گیری می‌شد، متولد شد. در سال 1982 مدیر پروژه، مایکل استون بریکر، برکلی را با هدف ایجاد نسخه‌ای شخصی از Ingres ترک کرد، اما در سال 1985 به برکلی بازگشت و پروژه‌ای با هدف حل مشکلات پایگاه‌های داده‌ آن زمان با نام Post-Ingres آغاز کرد. گام اول، با اضافه کردن تعدادي قابلیت جدید به سیستم قبلی برداشته شد. این قابلیت‌های جدید شامل امکان تعریف انواع (Type) جدید و توصیف کامل رابطه‌ها بود. با این‌که توصیف رابطه‌ها در پایگاه‌های داده‌ای آن زمان به‌وفور استفاده می‌شد، اما تمام وظایف مربوط به آن بر عهده کاربر بود. اگرچه معماری سیستم و عملیات درونی Postgres از Ingres الهام گرفته شد، اما در پایه‌ریزی اولیه قرار بر آن شد که پايگاه داده رابطه‌ها را درک کرده و امکان بازیابی اطلاعات از جدول‌هاي مرتبط را با استفاده از قوانین (Rules) داشته باشد.

با این‌که Ingres تأثیر زیادی در معماری Postgres دارد، اما از کد آن برای نرم‌افزار جدید استفاده نشد. گروه توسعه، در سال 1986 مقالاتی درباره شالوده سیستم و معماری آن منتشر و در سال 1988 یک نمونه اولیه از آن را تولید کردند. نسخه یک Postres در سال 1989، نسخه دو (با سیستم قوانین بازنویسی‌شده) در سال 1990 و نسخه 3 در سال 1991 عرضه شد. در سال 1993 مشتریان زیادی به استفاده از آن هجوم آوردند و این واقعیت، نیاز به ایجاد گروه تجاری و پشتیبانی از Postgres را پررنگ‌تر کرد. در همین زمان، نسخه چهار نیز عرضه شد و پروژه پایان یافت.

با این حال، چون دانشگاه برکلی Postgres را تحت مجوز BSD عرضه کرده بود، افراد دیگر می‌توانستند با تغییر در کد سیستم نسخه‌های جدید به جامعه اپن‌سورس عرضه کنند. در این راستا و در سال1994، دو تن از دانش‌آموختگان برکلی به‌نام‌های اندرو یو و جالی چِن، مفسر زبان پرس‌و‌جوی QUEL در Postgres را که از پروژه Ingres الهام گرفته شده بود، با یک مفسر جدید برای زبان SQL عوض کرده و Postgres95 را عرضه کردند. پس از این وقایع و در سال 1996، مارک فورنیه در شرکت Hub.org نخستين سرور توسعه غیر دانشگاهی Postgres را راه اندازی کرد و با همکاری تنی چند و با پایدار سازی کد موجود، نسخه جدید Postgres را عرضه کرد. همزمان، برای القای این‌که نرم‌افزار از SQL پشتیبانی می‌کند، نام آن به PostgreSQL تغییر کرد و اولین عرضه با نام PostgreSQL تحت عنوان نسخه 7 در سال 1997 عرضه شد. پس از آن نیز جامعه اپن‌سورس و گروه بزرگي از کاربران، توسعه Postgres را برعهده گرفتند. نسخه PostgreSQL 8.4 در تاریخ یکم ژوئیه 2009 عرضه شده‌است.

 

قابلیت‌ها

توابع، سیستم شاخص‌ها، Trigger‌ها، MVCC، قوانین، انواع داده‌ای، و انواع داده‌ای(Data Type) قابل تعریف توسط کاربر، از مهم‌ترین قابلیت‌هایی هستند که Postgres در آن‌ها با دیگر پایگاه‌های داده‌ای متفاوت است.توابع امکان اجرای حجمی از کد توسط سرور را فراهم می‌سازند و با این‌که در حالت استاندارد، کد‌های مذکور به زبان SQL نوشته می‌شوند اما PostgreSQL امکان کد‌نویسی به زبان‌هایی مانند PL/pgSQL که شبیه زبان رویه‌ای PL/SQL اوراکل است، زبان‌های اسکریپتی PL/Perl، PL/PHP، PL/Python، PL/Ruby، زبان‌های کامپایل شده C++ ،C و PL/Java و زبان آماری R با استفاده از PL/R را فراهم می‌کند. این توابع، امکان بازگرداندن مقادیری از داده‌ها را به‌صورت جدول دارند و می‌توان آن‌ها را با تنظیم حقوق دسترسی کاربر اجرا‌کننده آن یا کاربر سازنده آن محدود کرد. همان‌طور که می‌دانید، Trigger‌ها، رویدادهایی هستند که در صورت اجرای اتفاقی خاص در سیستم، اجرا می‌شوند. Postgres Trigger‌ها می‌توانند به‌جز view‌ها به اشیاء مختلف تخصیص یابند و توابعی از جنس PL/pgSQL یا PL/Perl را اجرا کنند.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

قابلیت همزمانی سیستم از طریق MVCC یا Multi-Version Concurren y Control انجام می‌شود که با تخصیص یک Snapshot از پايگاه داده به هر کاربر، تغییرات را به‌طور موقت به آن اعمال کرده و از مشاهده تغییرات اعمال‌شده کاربر در پايگاه داده قبل از اجرای موفقیت‌آمیز تراکنش وی خودداری می‌کند. این قابلیت، قفل‌های خواندن یا Read lock‌های عظیم را حذف کرده و در عین حال، اصول ACID را به خوبی برآورده می‌کند. نرم‌افزار PostgreSQL مانند بسیاری از پایگاه‌های داده از طیف وسیعی از انواع داده‌‌ها همچون آرایه‌هایي با طول متغیر (تا یک گیگابایت)، مقادیر رقمی با دقت‌های مختلف، آدرس‌های IPv4 و IPv6، بلوک‌های CIDR، XML و UUID پشتیبانی می‌کند. به‌علاوه، کاربران می‌توانند انواع داده‌‌هاي جدیدی در سیستم ایجاد کنند که داده‌های پیشرفته GIS مثالی از این انواع هستند. از دیگر ویژگی‌های خاص Postgres قابلیت تعریف طیف وسیعی از شيء‌ها در پایگاه داده است. در این نرم‌افزار می‌توان اشیاء جدیدی مانند Cast ،Conversion ،Data Type ،Domain ،Function،Index ،Operator و Procedural Language تعریف و استفاده کرد.

از دیگــر قابلیــت‌های ایــن سیستـــم مـــی‌توان بــهReferential integrity constraints ،Sub-Select، پشتیبانـــی از اکثر قابلیت‌های SQL 2008، اتصال رمز‌نگاری شده با SSL، پشتیبان‌گیـــری آنــــلاین، TableSpace ،SavePoint،اTOAST (سرنام The Oversized-Attribute Storage Technique) و Commit (اعمال نهایی تغییرات در پایگاه داده) در دو مرحله اشاره کرد. در جدول 1 می‌توانید، فهرستی از الحاقيه‌هاي PostgreSQL را مشاهده کنید.نرم‌افزارهای مدیریتی PostgreSQLرابط اصلی Pos tgres، یک برنامه خط فرمانی با نام psql است که امکان وارد کردن پرس‌و‌جو‌های SQL یا اجرای آن‌ها از طریق یک فایل را فراهم می‌کند. به‌علاوه، psql از مجموعه بزرگی از Meta-Command‌ها پشتیبانی کرده و امکان استفاده از قابلیت‌های جدید خط فرمانی را برای اتوماسیون وظایف فراهم می‌کند. نرم‌افزار PgAdmin، یکی دیگر از نرم‌افزارهای رابط Postgres است، که یک رابط گرافیکی است و نسخه‌های آن برای بيشتر پلتفرم‌هاي رایج امروزی توسعه داده شده و قابل اجرا است. این نرم‌افزار آزاد، تحت مجوز Artistic عرضه شده و از بیش از دوازده زبان پشتیبانی می‌کند. اولین نسخه از این نرم‌افزار با نام pgManager، همراه با PostgreSQL 6.3.2 در سال 1998 عرضه شد. نسخه بعدی آن در سال 2002 تحت عنوان pgAdmin II عرضه شد و نسخه نهایی آن همراه PostgreSQL 8.3 عرضه می‌شود و pgAdmin III نام دارد (شکل2).

علاوه بر دو نرم‌افزار فوق، نرم‌افزاری برای مدیریت PostgreSQL از طریق وب نیز وجود دارد که phpPgAdmin نام دارد. همان‌طور که از نام آن پیدا است، این رابط به زبان PHP نوشته شده و بر پایه رابط وب معروف phpMyAdmin که برای مدیریت MySQL از طریق وب به‌کار می‌رود، توسعه داده شده است. همچنین، در این میان، تعدادی نرم‌افزار تجاری و اختصاصي (غیر آزاد) برای مدیریت PostgreSQL نیز وجود دارد که از آن‌ها می‌توان به Navicat، SQL Maestro و ابزارهای مدل سازی داده‌ها مانند DeZign for Database یا ModelRight اشاره کرد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
شكل 1

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
شكل 2 - SpgAdminIII همراه PostgreSQL8.3 عرضه شد

ارزیابی عملکرد

آزمایش‌های بسیاری برای ارزیابی سرعت و کارایی PostgreSQL در دنیا انجام شده است. با این حال، اولین آزمایش استاندارد در ابعاد صنعتی روی آن، در سال 2007 و با استفاده از Sun Java System Application Server 9.0 Platform Edition و روی یک سرور Sun Fire انجام شد که در آن، سیستم به سرعت 778 JOPS دست یافت . این مقدار به طرز قابل توجهی با مقدارJOPS ر 874 به‌دست آمده توسط Oracle 10 روی سرورهای ايتانيوم با HP-UX قابل مقایسه است.JOPS سرنام jAppServer Operations Per Second است و توسط آزمایشی که SPECjAppServer2004 نامیده می‌شود به دست می‌آید. این آزمایش برای ارزیابی چندبعدی عملکرد سرورهای برپایه J2EE طراحی شده و کارایی فناوری‌هایی نظیر JSP، EJB، EJB 2.0، JMS، مدیریت تراکنش و اتصال به پايگاه داده را ارزیابی می‌کند. در این سرور، هزینه برای هر JOPS هفتاد دلار بوده که بسیار قابل توجه است و از آنچه اوراکل عرضه می‌کند، بسیار پایین‌تر است. در جدول 2، می‌توانید فهرستی از آزمایش‌های انجام‌شده را روی مجموعه‌های مختلف مشاهده کنید. البته، اين توضيح لازم است که باید در این جدول به سخت‌افزار سرورها توجه کنيد و هزینه برای هر JOPS را نیز در نظر داشته باشید.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
جدول 2 – نتایج آزمایش SPECjAppServer2004 روی مجموعه سرورهای مختلف. به سخت‌افزار سرورها نیز توجه داشته باشید.

کاربران نام آشنا

معروف ترین کاربر PostgreSQL یاهو است که ادعا می‌کند با استفاده از آن، دو پتابایت اطلاعات ذخیره کرده است. نسخه مورد استفاده یاهو، نسخه‌ای کاملاً اختصاصی و تغییر‌یافته از PostgreSQL است که موتور ذخیره‌سازی ستونی و لایه پردازش پرس‌و‌جوي آن کاملاً متفاوت بوده و بازنویسی شده است. نقشه Open Street Map که یک پروژه مشترک برای ایجاد نقشه ویرایش‌پذیر جهان است نیز از دیگر کاربران PostgreSQL است. از دیگر کاربران PostgreSQL می‌توان به Afilias (ثبت‌کننده دامین‌های org. و info.اSony Online، BASF، hi5.com، Skype، Sun xVM، Evergreen، NetBus، Snooth و The Weather Channel اشاره کرد.

 

PostgreSQL در برابر رقبا

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

اما زور‌آزمایی با رقیب هم‌جنسی مانند MySQL برای Postgres مشکل‌تر است. پايگاه داده MySQL مانند Postgres اپن‌سورس بوده و به‌صورت رایگان قابل استفاده است. به‌علاوه، معماری و ساختار آن ساده‌تر بوده و کاربرانی که با حجم عظیمی از داده‌ها سر و کار ندارند، ترجیح می‌دهند از آن استفاده کنند. به‌علاوه، MySQL به دلیل سبکی و سادگی، نسبت به Postgres سریع تر است و همین، استفاده از آن را گسترش داده است. در مقابل، Postgres به دلیل ماهیت بسیار پیشرفته‌تر خود، برای استفاده در محیط‌های بزرگ مناسب تر است و امکانات بسیار بیشتری در اختیار کاربر می‌گذارد. به‌علاوه، با اعمال تغییرات در نسخه‌های اخیر Postgres، سرعت عملکرد آن به شدت در حال بهبود بوده و به‌نظر مي‌رسد در آینده، چیزی از MySQL کم نخواهد داشت. به‌طور کلی، PostgreSQL در دنیای اپن‌سورس معادل اوراکل محسوب می‌شود و به همین دلیل، تنها در محیط‌های بزرگ مورد استفاده قرار می‌گیرد. جدول 3 مقایسه‌ای سریع از پایگاه‌های داده‌ای موجود ارائه می‌دهد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
جدول 3 – محدودیت‌های پایگاه‌های داده‌ مشهور

جمع‌بندي

با توجه به توضیحات بالا و قابلیت‌های ذاتی مطرح‌شده، PostgreSQL یکی از بهترین نرم‌افزارهای پايگاه داده برای حجم عظیمی از داده‌ها به شمار می‌آید که هر روز شاهد گسترش استفاده از آن هستیم. این پايگاه داده، با توجه به قابلیت‌های جدید و پیشرویی که دارد، از بسیاری از راه‌حل‌های تجاری موجود بهتر بوده و در عین حال اپن‌سورس و رایگان است. به همین دلیل، در بحبوحه بحران اقتصادی و در حالی که شرکت‌های بزرگ به دنبال کاهش هزینه‌های خود هستند، Postgres می‌تواند به یکی از گزینه‌های اصلی برای قلب ذخیره‌سازی سیستم‌های آن‌ها تبديل شود. به‌علاوه، با استفاده از الحاقيه‌هاي پیشرفته‌ای مانندPostGIS و گسترش روز‌افزون استفاده از GIS و داده‌های مکانی در دنیا، PostgreSQL بیش از پیش در مقابل رقبا به قدرت‌نمایی خواهد پرداخت. در آینده، خبرهای بیشتری درباره PostgreSQL خواهید شنید.

 

 

 

 

ادامه دارد

  • Like 2
لینک به دیدگاه
×
×
  • اضافه کردن...