|
|
 |
 |
 |
 |
| |
 |
 |
PostgreSQL (قسمت دوم) |
 |
|
 |
بعد از آشنايی مختصری که با PostgreSQL پيدا کرديم، وقت اون رسیده تا در مورد شرايط نصب و راه اندازی اون توضيح بدم.
PostgreSQL را معمولا روی لينوکس و گونه های مختلف يونيکس نصب می کنند و این سیستم عامل ها بهترین پلت فرم(بستر اجرایی) هم برای اين بانک به شمار می آيند. خوب دوستانی که از ويندوز استفاده می کنند(مثل خود بنده!) می توانند با استفاده از فريم ورک Cygwin اقدام به نصب و راه اندازی اين بانک کارآمد بکنند. (تا الان من از همین فریم ورک استفاده کردم) اين فريم ورک يه شبيه سازی هست که می تونيم برنامه های تحت لينوکس رو در محيط ويندوز اجرا کنيم. يک Package Manager يا مدير بسته های نرم افزاری بسيار قوی هم داره که کار رو خيلی راحت ميکنه. اما اگه کارایی يا پرفورمنس در اولويت قرار داشته باشه، اجرای PostgreSQL تحت ويندوز زياد بهينه نيست. روال نصب PostgreSQL روی لينوکس و يونيکس تقريبا شبيه به هم هست و می تونيد با مراجعه به مستند اون، به راحتی از پس اش بربيايد. اما می رسيم به کاربران ويندوز؛ اگه به اين نتيجه رسيديد که PostgreSQL رو روی ويندوز اجرا کنيد، چندين گزينه پيش روی شما خواهد بود:
PowerGres را امتحان کنيد؛ Software Research Associates (انجمن تحقیقات نرم افزاری) اومده و نسخه ۷.۳ را پورت کرده رو ویندوز. برای دانلود اون به اينجا مراجعه کنید؛ سایت به زبان ژاپنی هست پس چشماتون رو ببندید و کلیک کنید!
گزينه بعدی Cygwin هست که البته داخل مستند PostgreSQL چيزی در اين مورد گفته نشده و بنابراين پشتيبانی رسمی هم از اون صورت نگرفته. اما دو تا بچه مثبت اومدن و راهنماي خوبی به صورت پرسش و پاسخ برای اون نوشتند که در اينجا قابل مشاهده است. این راهنما شما رو خیلی سریع راه می اندازه.
گزینه بعدی UltraSQL هست که توسط NuSphere عرضه شده و ادعا داره که PostgreSQL رو می تونید با همان پایداری و کارایی لینوکس، در ویندوز اجرا کنید. [...]
توسعه دهندگان PostgreSQL قرار بود در نسخه ۷.۵ يا ۸ پشتیبانی ذاتی از ویندوز رو عملی کنند. میگم ذاتی چون تمام نسخه هایی که روی ویندوز اجرا میشه، یک نسخه هسته مثلا ۷.۳ را Port کردن رو ویندوز. در حال حاضر هم کار توسعه نسخه ۸ به پایان رسیده و البته مراحل تست خود رو سپری می کنه ولی قابل دانلود و استفاده هست. اگه دوست دارید این نسخه بتا زودتر به نسخه فاینال برسه و منتشر بشه بشینید و باگهاشو دربیارید. [...]
با این تفاسیر من خودم میخوام نسخه ۸ رو دانلود کنم و دیگه بخاطر PostgreSQL از Cygwin استفاده نکنم. فکر کنم اين عاقلانه ترين راهه! 
نمی دونم چند تا از خواننده های اين وبلاگ با PostgreSQL کار ميکنند ولی اگه مايل به ادامه بحث اين بانک قوی داشتيد، يه کامنت بگذاريد.
|
 |
سطح: پيشرفته
نوشته شده در تاريخ: شنبه، 7 شهريور 1383
ساعت: 20:27 |
|
| |
 |
 |
PostgreSQL (قسمت اول) |
 |
|
 |
اکثر برنامه های کاربردی تحت وبی که نوشته می شوند، برای ذخيره دائمی اطلاعات خود از بانک اطلاعاتی استفاده می کنند. هر گاه از بانک اطلاعاتی صحبتی می شود، برنامه نويس می بايست فاکتورهايی را برای انتخاب بانک در نظر بگيرد و با حلاجی آنها، بهترين انتخاب را انجام دهد. ويژگيهای مشترکی که هر برنامه نویس به دنبال آنهاست و در واقع حداقل نيازمندی های او از يک بانک اطلاعاتی است را می توان در سه صفت خلاصه کرد:
سرعت، پايداری و قابليت اطمينان
آيا MySQL و يا حتی فايلهای متنی ساده، تمام نيازمندی های ذخیره و بازيابی داده های شما را تامين می کنند؟!
در اين مقاله نگاهی به PostgreSQL می اندازيم که شاید بتوان آن را پدربزرگ بانک های اطلاعاتی کدباز دانست. (تلفظ PostgreSQL به صورت post-gress-q-l می باشد)
چرا PostgreSQL را انتخاب کنيم؟
اينجاست که جماعت متعصب کدباز، دستان خود را در هوا تاب می دهند و با هيجان ناشی از خشم خود فرياد بر می آورند!(چقدر ادبی شد! :D) البته شعف و هيجان آنها قابل درک است!
PostgreSQL يک بانک اطلاعاتی کدباز به معنای واقعی کلمه است که تحت جواز(Licence) ساده و قابل انتقال BSD منتشر شده است. در اينجا متن کوتاهی در مورد اين جواز یا پروانه بهره برداری نوشته شده است.
PostgreSQL کاملا مجانی هست. وقتی میگیم مجانیه نه اینکه صرفا هزینه ای نداره، بلکه همانند جواز GNU General Public License می توان کدهای آن را تغییر داده، دوباره بسته بندی کرده و اصلا به عنوان یک برنامه کاربردی Standalone یا تحت برنامه کاربردی که خودتون نوشتید، دوباره توزیع کرد.
PostgreSQL دارای امکانات ويژه ای هست و از استاندارهای ANSI SQL92 و SQL99 هم تبعيت کرده که يا در بانک های ديگه وجود نداره و اگر هم باشه، همچین کامل و شسته رفته نيست؛ علاوه بر اين کار با آبجکت ها و داده های سلسه مراتبی هم با اين بانک اطلاعاتی ميسر است.
البته، هیچ گلی بی عیب نیست. نخست، توانايی PostgreSQL را در زمينه آبجکت ها و داده های سلسه مراتبی را در نظر بگيريد. يه دقيقه صبر کنيد! ما همين الان اين امکان را برای محاسن اين بانک خرج کرديم! می بينم که دوستداران PostgreSQL همچين چپ چپ به بنده نگاه می کنند که چرا اين ويژگی خفن را جز معايب برشمردم. بنده برای تفسير اين گفته از فلسفه KISS* استفاده می کنم! 
شما اگه بخواین یه تابلو به دیوار بزنین از میخ طویله استفاده می کنید؟!! خوب برادر من اگه صرفا بخوای یه مشت آدرس و شماره تلفن و آی دی در بانک ات ذخیره کنی، نیازی به یه بانک اطلاعاتی رابطه ای شی گرا(Objct Relational) نداری که! شاید برخی از شما در این زمینه بخواین جر و بحث کنید، اما حسابیش رو بخواین، PostgreSQL در شرایط low-load، به اندازه MySQL سریع نیست. البته جاهایی هم پیش میاد که طراحی قدرتمندتر PostgreSQL در مجموعه نتایج(Resultset) واقعا بزرگ، کارایی خودش رو به رخ MySQL می کشه؛ اما به طور متوسط MySQL برای بیشتر عملیات بازخوانی، رقیب خوبی هست. اگه نیاز شما صرفا یه ذخیره و بازیابی ساده است، بهتره دور و بر PostgreSQL آفتابی نشید.
حسن ختام اینه که PostgreSQL پیچیده تر و خفن تر از MySQL هست. مدیریت مجوزها به سادگی MySQL نیست. در ضمن PostgreSQL با امکاناتی که مهیا کرده، باعث میشه که کاربران مبتدی تا چند وقت همینطور گیج بزنند. شماها(Schemas) و رویه های ذخیره شده(Stored Procedures) با اینکه مفید هستند اما کاملا ضروری و واجب نیستند و شاید فکر کنید وجود اونها جز شلوغ و پلوغ کردن، خاصیتی نداره! بعضی ها هستند وقتی ملزومات کارشون روی میزشون نباشه، بهتر کار می کنند!(تفکرات عجیب غریب اما منطقی!)
همه اینا رو گفتم اما باید اذعان کرد PostgreSQL یک ابزار بسیار خوب حتی عالی برای اکثر کارهاست. ممکنه کاربران اون کمتر از کاربران MySQL باشند، اما همین کاربران محدوداش هم خیلی به اون وفادار هستند. بنده اینجا فرصتی برای توضیح کامل و جامع اون ندارم و صرفا جهت دهی می کنم.
بانک های اطلاعاتی Object Relational یا ORDBMS در مقایسه با بانک های اطلاعاتی رابطه ای که در اوایل دهه ۷۰ میلادی توسعه پیدا کردند، محصولات تقریبا جدیدی هستند.
ORDBMSها علاوه بر بهره گیری از مدل رابطه ای، از بانک های اطلاعاتی آبجکتی هم، مفاهیمی را وام گرفته اند که این نوع بانکها توانایی هندل کردن داده های زنجیره ای، فضایی و Media Objectها را دارند.
یک ORDBMS با بکارگیری خصایص یا پراپرتی های یک آبجکت روی مولفه های یک بانک اطلاعاتی رابطه ای، از مزایای هر دو(رابطه و آبجکت) سود می برد.
در نتیجه با توجه به امکانات آبجکتی جدید PHP 5، این دو ابزار می توانند تقابل خوبی با هم داشته باشند.
این بدان معنی است که انتخاب PostgreSQL، دست توسعه دهنده را به مراتب بازتر گذاشته چنانکه امکان تعریف و افزودن نوع داده های جدید، توابع، عملگرها و حتی تعیین شیوه های شاخص گذاری برای توسعه دهنده امکان پذیر است. خوب از این گفته میشه اینطور نتیجه گرفت که مقایسه پرفورمنس یا کارایی و تلاش برای میزون کردن بانک، کمی دور از دسترس هست؛ بخصوص وقتی با ساختارهای داده پیچیده سرکار داریم.
در سطح ساختار داده، جداول و آبجکت های PostgreSQL، می توانند از توارث ایستا و پویا بهره مند شوند. یعنی اینکه، یک آبجکت فرزند که از آبجکت والد ساخته می شود، می تواند تمام ویژگی های والد خود را به ارث ببرد. حالا این ارث بری یا یکبار در زمان ایجاد آبجکت انجام می شود یا اینکه می توان آن را همیشگی کرد؛ یعنی هر تغییری که در آبجکت والد صورت پذیرد، بچه آبجکت بی نصیب نمونه و خصوصیات عینا منتقل بشه.
در قسمت بعدی در مورد نحوه نصب و کارکردن با این بانک اطلاعاتی توضیحاتی می دهم.
*) KISS = Keep It Simple Stupid
|
 |
سطح: پيشرفته
نوشته شده در تاريخ: چهارشنبه، 4 شهريور 1383
ساعت: 08:16 |
|
| |
 |
|
 |
|
 |
 |
 |
 |
|
|
 |
 |
 |
 |
 |
نام:
نيما شايافر
متولد:
7/7/1362
تحصيلات:
دانشجو
شغل:
طراح وب و برنامه نويس
وضعيت:
آفلاين |
 |
|
 |
 |
 |
 |
|