Re: FAQ translation in farsi - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: FAQ translation in farsi |
Date | |
Msg-id | 200409291618.i8TGIrh10533@candle.pha.pa.us Whole thread Raw |
In response to | FAQ translation in farsi (Mahmoud Taghizadeh <m_taghi@yahoo.com>) |
List | pgsql-patches |
I have added your version of the FAQ to CVS. However, I think there might be a problem with the conversion to text, perhaps because of my tools or the encoding specified in the HTML file. I see lots of plus signs in the output: s+w+a+l+a+t+y+ k+h+ a+i+l+b+ d+r+ m+w+r+d+ PostgreSQL p+r+s+y+d+h+ m+y+ snw+n+d+ Perhaps you should email me a text version as well. --------------------------------------------------------------------------- Mahmoud Taghizadeh wrote: > Dear Peter > This is farsi translation of PostgreSQL FAQ ( I got the latest FAQ from www.postgresql.org) > > M. Taghizadeh > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com Content-Description: PostgreSQL FAQ.htm [ text/html is unsupported, treating like TEXT/PLAIN ] > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> > <!-- saved from url=(0122) --> > <HTML dir="ltr"><HEAD><TITLE>PostgreSQL FAQ</TITLE> > <META content="Microsoft FrontPage 6.0" name=GENERATOR> > <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD> > <BODY text=#000000 vLink=#a00000 aLink=#0000ff link=#ff0000 bgColor=#ffffff> > <h1 dir="rtl"><span lang="fa"><font face="Tahoma">سوالاتي كه اغلبدر مورد </font> > </span><font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> > پرسيده مي شوند</font></span></h1> > <p dir="rtl"><font face="Tahoma"><span lang="fa">تاريخ آخريناصلاح اين فايل: > 28 شهریور 1383 هجری شمسی</span></font></p> > <P dir="rtl"><span lang="fa"><font face="Tahoma">نگهدارنده اصليفايل (زبان > انگليسي)در حال حاضر </font></span><fontface="Tahoma">: Bruce Momjian > <A > href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A></font></P> > <P dir="rtl"><span lang="fa"><font face="Tahoma">نگهدارنده فايلبه زبان فارسي: > </font></span><font face="Tahoma"><a href="mailto:m.taghizadeh@imenafzar.net"> > m.taghizadeh@imenafzar.net</a> </font><span lang="fa"><font face="Tahoma"> محمود > تقيزاده مهرجردی</font></span><fontface="Tahoma"><BR></font></P> > <P dir="rtl"><span lang="fa"><font face="Tahoma">آخرين نسخه اينفايل را > ميتوانيد از اين آدرسبگيريد </font></span><font face="Tahoma"> <A > href="http://www.postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A></font></P> > <P dir="rtl"><span lang="fa"><font face="Tahoma">سوالاتي كه درمورد يك > سکوی(پلتفرم) > خاص است در اين آدرس جوابداده شده اند </font></span><fontface="Tahoma"> <A > href="http://www.postgresql.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A></font></P> > <HR dir="rtl"> > > <H2 align=center dir="rtl"><font face="Tahoma"><span lang="fa">سوالات عمومي</span></font></H2> > <p dir="rtl"><font face="Tahoma"><a href="#1.1">1.1</a>) > PostgreSQL</font><span lang="fa"><font face="Tahoma"> چيست و چگونهبايد آن را > تلفظ كرد؟</font></span><font face="Tahoma"><BR><A > href="#1.2">1.2</A>) > <span lang="fa">قانون كپي رايت (حقوقمعنوي) در مورد </span>PostgreSQL > <span lang="fa"> به چه صورت است؟</span><BR><A > href="#1.3">1.3</A>)<span lang="fa"> > </span>PostgreSQL</font><span lang="fa"><font face="Tahoma"> روي چه نوع > يونيكسهايي اجرا ميشود؟</font></span><fontface="Tahoma"><BR><A > href="#1.4">1.4</A>) > </font><span lang="fa"><font face="Tahoma">روي چه محيطهايغير يونيكسيميتوان آن > را اجرا كرد؟</font></span><font face="Tahoma"><BR><A > href="#1.5">1.5</A>) PostgreSQL</font><span lang="fa"><font face="Tahoma"> > را از كجا ميتوانم بگيرم؟</font></span><fontface="Tahoma"><BR><A > href="#1.6">1.6</A>) > </font><span lang="fa"><font face="Tahoma">از كجا خدمات پشتيبانيبگيرم؟</font></span><font face="Tahoma"><BR><A > href="#1.7">1.7</A>)</font><span lang="fa"><font face="Tahoma"> > آخرين نسخه اعلام شدهچيست؟</font></span><font face="Tahoma"><BR><A > href="#1.8">1.8</A>) > </font><span lang="fa"><font face="Tahoma">چه مستندات و راهنمائيهاييوجود دارند؟</font></span><fontface="Tahoma"><BR><A > href="#1.9">1.9</A>) > <span lang="fa">چگونه ميتوانم ازاشكالاتشناخته شدهو يا امكاناتي كه دراين > پايگاه داده وجود ندارد مطلع شوم؟</span><BR><A > href="#1.10">1.10</A>) > </font><span lang="fa"><font face="Tahoma">چگونه ميتوانمزبان </font></span> > <font face="Tahoma">SQL</font><span lang="fa"><font face="Tahoma"> را ياد بگيرم؟</font></span><fontface="Tahoma"><BR><A > href="#1.11">1.11</A>)</font><span lang="fa"><font face="Tahoma"> > آيا </font></span><font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> > مشكل </font></span><font face="Tahoma">Y2K</font><span lang="fa"><font face="Tahoma"> > دارد يا خير؟</font></span><font face="Tahoma"><BR><A > href="#1.12">1.12</A>) > </font><span lang="fa"><font face="Tahoma">چگونه ميتوانمبه تيم برنامهنويس > </font></span><font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> > ملحق شوم؟</font></span><font face="Tahoma"><BR><A > href="#1.13">1.13</A>) > <span lang="fa">چگونه ميتوانم يكاشكال را به گروه برنامهنويس اعلام كنم؟</span><BR><A > href="#1.14">1.14</A>) > </font><span lang="fa"><font face="Tahoma"> وضعيت </font></span> > <font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> در > مقايسه با ساير </font></span><font face="Tahoma">DBMS<spanlang="fa">ها به چه > صورت است؟</span><BR><A > href="#1.15">1.15</A>) > <span lang="fa">من چگونه ميتوانماز نظر ماليبه </span>PostgreSQL<span lang="fa"> > كمك كنم؟</span><BR> > </font></p> > <h2 align="center" dir="rtl"><font face="Tahoma"><span lang="fa">سوالات مربوطبه > استفاده از پايگاه داده</span></font></h2> > <p dir="rtl"><font face="Tahoma"><A > href="#2.1">2.1</A>) > <span lang="fa">آيا هيچ درايور </span>ODBC</font><spanlang="fa"><font face="Tahoma"> > براي </font></span><font face="Tahoma">PostgreSQL</font><font face="Tahoma"><span lang="fa"> > وجود دارد؟</span><BR><A > href="#2.2">2.2</A>) > <span lang="fa">چه ابزارهايي براياستفاده از </span>PostgreSQL<span lang="fa"> > با صفحات وب وجود دارد؟</span><BR><A > href="#2.3">2.3</A>) > <span lang="fa">آيا </span>PostgreSQL<span lang="fa"> يك واسطكاربري گرافيكي > دارد؟</span><BR><A > href="#2.4">2.4</A>) > <span lang="fa">با چه زبانهاي برنامهنويسي ميتوانبا </span>PostgreSQL<span lang="fa"> > ارتباط برقرار كرد؟</span><BR> > </font></p> > <h2 align="center" dir="rtl"><span lang="fa"><font face="Tahoma">سوالات مربوطبه > راهبري</font></span></h2> > <p dir="rtl"><font face="Tahoma"><A > href="#3.1">3.1</A>) > <span lang="fa">چگونه ميتوانم </span>PostgreSQL<spanlang="fa"> را در شاخهاي > غير از </span>/usr/local/pgsql/<span lang="fa"> نصب كنم؟</span><BR><A > href="#3.2">3.2</A>) > <span lang="fa">چرا موقعي كه من برنامه</span>postmaster<span lang="fa"> را > اجرا مي كنم پيام </span>Bad system call<spanlang="fa"> و يا </span>core dump > <span lang="fa">ميگيرم؟</span><BR><A > href="#3.3">3.3</A>) > <span lang="fa">چرا موقعي كه من سعيميكنم برنامه </span>postmaster<spanlang="fa"> > را اجرا كنم خطاي</span> <I>IpcMemoryCreate</I> <span lang="fa">ميگيرم؟</span><BR><A > href="#3.4">3.4</A>)<I><span lang="fa"> > </span></I><span lang="fa">چرا موقعي كه من سعيميكنم برنامه </span>postmaster<spanlang="fa"> > را اجرا كنم خطاي</span> <I><span lang="fa"> </span>IpcSemaphoreCreate<spanlang="fa"> > </span></I><span lang="fa">ميگيرم؟</span><BR><A > href="#3.5">3.5</A>) > <span lang="fa">چگونه ميتوانم اتصالاتساير ماشينهارا كنترل كنم؟</span><BR><A > href="#3.6">3.6</A>) > <span lang="fa">براي كارايي بالاترو بهتر پايگاهداده من چه تنظيماتيرا بايد > انجام دهم؟</span><BR><A > href="#3.7">3.7</A>) > <span lang="fa">چه امكاناتي براي پيداكردن اشكال وجوددارد؟</span><BR><A > href="#3.8">3.8</A>) > <span lang="fa">چرا موقعي كه من ميخواهمبه پايگاه دادهوصل شوم پيام</span> <I>"Sorry, toomany clients" > <span lang="fa"></span></I><span lang="fa">ميگيرم؟</span><BR><A > href="#3.9">3.9</A>)<span lang="fa"> > در شاخه </span> <I>pgsql_tmp</I> <span lang="fa"> چه چيزيقرار دارد؟</span><BR><A > href="#3.10">3.10</A>) > <span lang="fa">چرا براي به روز كردننسخه پايگاه دادهمن بايد كل داده هارا > </span>dump<span lang="fa"> و مجدداً </span>restore<span lang="fa"> كنم؟</span><BR><A > href="#3.11">3.11</A>) > <span lang="fa">از چه سخت افزاري بايداستفاده كنم؟</span><BR> > </font></p> > <H2 align=center dir="rtl"><span lang="fa"><font face="Tahoma">سوالات عملياتي</font></span></H2> > <p dir="rtl"><font face="Tahoma"><A > href="#4.1">4.1</A>) > تفاوت بين <span lang="en-us">binary cursors</span> و <span lang="en-us">Normal > cursors</span> چيست؟<BR><A > href="#4.2">4.2</A>) > <span lang="fa">من چگونه ميتوانمفقط روي چندرديف اول > يا يك رديف تصادفي درخواست</span>SELECT<span lang="fa"> > بزنم؟</span><BR><A > href="#4.3">4.3</A>) > <span lang="fa">من چگونه ميتوانمليستي از جداوليا ساير چيزهاييكه در </span> > psql<span lang="fa"> وجود دارد را ببينم؟</span><BR><A > href="#4.4">4.4</A>) > <span lang="fa">چگونه يك ستون جدولرا حذف ميكنيد؟چگونه نوع دادهآن را عوض > كنيم؟</span><BR><A > href="#4.5">4.5</A>) > <span lang="fa">حداكثر اندازه يك رديف،جدول و خود پايگاهداده چقدر است؟</span><BR><A > href="#4.6">4.6</A>) > <span lang="fa">چقدر فضاي ديسك سختبراي ذخيره كردن دادههاييك فايل متنيمورد > نياز است؟</span><BR><A > href="#4.7">4.7</A>) > <span lang="fa">چگونه ميتوانم بفهممكه چه كاربران،پايگاه داده،نمايه و > جداولي در سيستم تعريفشده است؟</span><BR><A > href="#4.8">4.8</A>) > <span lang="fa">چرا درخواستهاي منكند اجرا ميشوند ياچرا از نمايه ها استفاده > نميكنند؟</span><BR><A > href="#4.9">4.9</A>) > <span lang="fa">چگونه ميتوانم نحوهبررسي درخواست راتوسط بهينهساز درخواستها > مشاهده كنم؟</span><BR><A > href="#4.10">4.10</A>) > <span lang="fa">نمايه </span>R-tree<span lang="fa"> چيست؟</span><BR><A > href="#4.11">4.11</A>) > <span lang="fa">بهينه ساز تكويني درخواستچيست؟</span> (Genetic Query Optimizer)<BR><A > href="#4.12">4.12</A>) > <span lang="fa">چگونه از عبارات منظمبراي جستجو استفادهكنم؟ چگونه جستجوييانجام > دهم كه حساس به متن نباشد؟چگونه براي يكجستجوي غير حساس بهمتن از نمايه استفاده > كنم؟</span><BR><A > href="#4.13">4.13</A>) > <span lang="fa">چگونه ميتوانم دريك درخواست تشخيص دهمكه يك فيلد </span>NULL<span lang="fa"> > است؟</span><BR><A > href="#4.14">4.14</A>) > <span lang="fa">تفاوت بين گونههايمختلف </span>character<span lang="fa">چيست؟</span><BR><A > href="#4.15.1">4.15.1</A>) > <span lang="fa">چگونه ميتوانم يكفيلد سريال يا افزايشيايجاد كنم؟</span><BR><A > href="#4.15.2">4.15.2</A>) > <span lang="fa">چگونه ميتوانم مقداريك درج سريالي رابدانم؟</span><BR><A > href="#4.15.3">4.15.3</A>) <span lang="fa">آیا توابع ()</span>nextval<spanlang="fa"> > و ()</span>currval<span lang="fa"> منجر به ایجادشرایط </span>race<span lang="fa"> > برای سایر کاربران میشوند؟</span><BR><A > href="#4.15.4">4.15.4</A>) > <span lang="fa">چرا اعداد سریالی مربوطبه تراکنشهای </span>abort<spanlang="fa"> > شده مجدداً استفاده نمیشود؟ چرا بین اعدادسریالی یک فاصلهخالی ایجاد می شود؟</span><BR><A > href="#4.16">4.16</A>) > OID<span lang="fa"> و </span>TID<span lang="fa"> چه هستند؟</span><BR><A > href="#4.17">4.17</A>) > <span lang="fa">معني بعضي از ترمهاو كلماتي كه در </span>PostgreSQL<spanlang="fa"> > استفاده ميشود چيست؟</span><BR><A > href="#4.18">4.18</A>)<span lang="fa"> > چرا من خطاي </span><i>"ERROR: Memory exhausted in AllocSetAlloc"</i><spanlang="fa"> > ميگيرم؟</span><BR><A > href="#4.19">4.19</A>) > <span lang="fa">از كجا تشخيص دهم كهويرايش يا نسخه </span>PostgreSQL<spanlang="fa">يي > كه من استفاده ميكنمچيست؟</span><BR><A > href="#4.20">4.20</A>) <span lang="fa">چرا در حین اجرایعملیات روی </span> > large-object<span lang="fa">ها خطای </span>"<I>invalid large obj descriptor</I>"<spanlang="fa">به > وجود می آید؟</span><BR><A > href="#4.21">4.21</A>) > <span lang="fa">چگونه يك ستون ايجادكنم كه مقدار زمانجاري را به عنوانمقدار > پيشفرض داشته باشد؟</span><BR><A > href="#4.22">4.22</A>) > <span lang="fa">چرا زير درخواستهاييكه از </span>IN<spanlang="fa"> استفاده > ميكنند كند هستند؟</span><BR><A > href="#4.23">4.23</A>) > <span lang="fa">چگونه ميتوانم يكالحاق خارجي (</span>outer join<span lang="fa">) > انجام دهم؟</span><BR><A > href="#4.24">4.24</A>) > <span lang="fa">چگونه ميتوان درخواستهايياز چند پايگاهداده توليد كرد؟</span><BR><A > href="#4.25">4.25</A>) > <span lang="fa">چگونه خروجي يك تابعميتواند چند رديفيا ستون باشد؟</span><BR><A > href="#4.26">4.26</A>) > <span lang="fa">در توابع </span>PL/PgSQL<span lang="fa"> چرانميتوان با اطمينان > جداول موقت را ايجاد ياحذف كرد؟</span><BR><A > href="#4.27">4.27</A>) > <span lang="fa">چه گزينههايي برايتكرار (</span>replication<span lang="fa">)</span> > <span lang="fa">وجود دارد؟</span><BR><A > href="#4.28">4.28</A>) > <span lang="fa">چه گزينههايي برايرمزنگاري وجود دارد؟</span><BR> > </font></p> > <h2 align="center" dir="rtl"><font face="Tahoma"><span lang="fa">توسعه </span> > PostgreSQL</font></h2> > <p dir="rtl"><font face="Tahoma"><A > href="#5.1">5.1</A>) > <span lang="fa">من يك تابع نوشتهام.چگونه آن رادر </span>psql<span lang="fa"> > اجرا كنم؟ چرا با اجرايآن </span>core dump<span lang="fa"> ميگيرم؟</span><BR><A > href="#5.2">5.2</A>) > <span lang="fa">چگونه ميتوانم درتوليد نوعها و توابعجديد و جالب براي</span> > PostgreSQL<span lang="fa"> همكاري و مشاركتداشته باشم.</span><BR><A > href="#5.3">5.3</A>) > <span lang="fa">چگونه ميتوانم يكتابع به زبان </span>C<span lang="fa"> بنويسم > كه خروجي آن يك</span> <span lang="fa"></span>tuple<spanlang="fa"> </span> <span lang="fa">(چند > تايي) باشد؟</span><BR><A > href="#5.4">5.4</A>) > <span lang="fa">من يك فايل منبع راعوض كرده ام چرا در عملياتكامپيل مجدد آن > تغيير ديده نميشود؟</span><BR> > </font></p> > <HR dir="rtl"> > > <H2 align=center dir="rtl"><font face="Tahoma"><span lang="fa">سوالات عمومي</span></font></H2> > <H4 dir="rtl"><font face="Tahoma"><A name=1.1>1.1</A>) <span lang="en-us"> > PostgreSQL</span> چيست و چگونه آن رابايد تلفظ كرد؟</font></H4> > <p dir="rtl"><span lang="en-us">PostgreSQL</span> به صورت <span lang="en-us"> > Post-Gres-Q-L</span> تلفظ ميشود. يك فايلصوتي در آدرس > <a href="http://www.postfresql.org/postgresql.mp3"><span lang="en-us"> > http://www.postfresql.org/postgresql.mp3</span></a> براي كسانيكه مايلند تلفظ > صحيح را بشنوند وجود دارد.</p> > <P dir="rtl"><span lang="en-us">PostgreSQL</span> از روي سيستممديريت پايگاه > داده <span lang="en-us">POSTGRES</span> توسعه دادهشده است (هنوز هم بعضيمواقع > براي سادگي به آن <span lang="en-us">Postgres</span>گفته ميشود) كه يكنمونه > تحقيقاتي از پايگاه دادههاينسل بعد است.<span lang="en-us">PostgreSQL</span> > همان الگوي داده قوي وانواع داده را حفظ كردهاست ولي زبان > <span lang="en-us">PostQuel</span> را با يك زيرمجموعهپيشرفته از > <span lang="en-us">SQL</span> جايگزين كرده است.<span lang="en-us">PostgreSQL</span> > متن باز بوده و متن كاملآن در دسترس است.</P> > <P dir="rtl"><font face="Tahoma"><span lang="en-us">PostgreSQL </span> توسط > يك تيم برنامهنويس كههمگي در گروه پست الكترونيك برنامهنويسان > <span lang="en-us">PostgreSQL</span> عضو هستند، انجامميشود. هماهنگكننده > اصلي در حال حاضر <span lang="en-us">MarcG. Fournier</span> به آدرس > <span lang="en-us"><a href="mailto:scrappy@PostgreSQL.org"> > scrappy@PostgreSQL.org</a></span> ميباشد. (برايديدن نحوه ملحق شدنبه اين > تيم قسمت <A > href="#1.6">1.6</A> > را ببينيد). اين تيم درحاضر مسئوليت تماممسائل مربوط به برنامهنويسي > <span lang="en-us">PostgreSQL</span> را بر عهده دارد.اين يك پروژه گروهياست و > تحت كنترل هيچ شركتي نيست.براي اطلاعات بيشتردر مورد اين تيمبه آدرس > <A > href="http://www.postgresql.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A> > مراجعه كنيد.</font></P> > <P dir="rtl"><font face="Tahoma">اولين نسخه <span lang="en-us">PostgreSQL</span> > توسط Andrew Yu and Jolly Chen به وجود آمد.افراد بسياري در توسعهو رفع اشكال و > انتقال آن شركت كردهاند.متن اصلي <span lang="en-us">Postgres</span>كه > <span lang="en-us">PostgreSQL</span> از روي آن نوشتهشده است، توسط تعدادزيادي > دانشجوي كارشناسي ارشدودانشجوي كارشناسيو تيم برنامهنويسيكه تحتنظر پروفسور > Michael Stonebrake در دانشگاه بركلي،كاليفرنيا كارميكردهاند نوشتهشده است.</font></P> > <P dir="rtl"><font face="Tahoma">نام اصلي نرم افزاردر دانشگاه بركلي > <span lang="en-us">Postgres</span> بود. در سال 1995 بعداز اضافه شدن > <span lang="en-us">SQL</span> نام آن به<span lang="en-us"> Postgres95</span> > تغيير داده شد.<span lang="en-us"> </span>درسال 1996 نام آن به > <span lang="en-us">PostgreSQL</span> تغيير داده شد.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=1.2>1.2</A>) قوانين كپيرايت در مورد > <span lang="en-us">PostgreSQL</span> به چه صورت است؟</font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="en-us">PostgreSQL</span> تحت قانون > كپي رايت زير قرار دارد:</font></p> > <P dir="ltr"><font face="Tahoma">PostgreSQL Data Base Management System</font></P> > <P dir="ltr"><font face="Tahoma">Portions copyright (c) 1996-2004, PostgreSQL Global Development Group > Portions Copyright (c) 1994-6 Regents of the University of California</font></P> > <P dir="ltr"><font face="Tahoma">Permission to use, copy, modify, and distribute this software and its > documentation for any purpose, without fee, and without a written agreement is > hereby granted, provided that the above copyright notice and this paragraph and > the following two paragraphs appear in all copies.</font></P> > <P dir="ltr"><font face="Tahoma">IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR > DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST > PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF > THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH > DAMAGE.</font></P> > <P dir="ltr"><font face="Tahoma">THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, > INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND > FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS > IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE > MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.</font></P> > <P dir="rtl"><font face="Tahoma">قانون بالا ليسانس<span lang="en-us">BSD</span> > كه يك ليسانس كلاسيك برايمتنهاي باز استميباشد. هيچ محدوديتيدر مورد نحوه > استفاده از متن در آن ديدهنميشود. ما آن رادوست داريم و هيچ قصديبراي تغيير آن > نداريم.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=1.3>1.3</A>) PostgreSQL</font><span lang="fa"><font face="Tahoma"> رويچه نوع > يونيكسهايي اجرا ميشود؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">در حالت كلي <span lang="en-us">PostgreSQL</span> > روي هر پلتفرم (سكوي) سازگاربا يونيكس اجراميشود. ليست پلتفرمهاييكه تاكنون > <span lang="en-us">PostgreSQL</span> روي آنها نصب وتست شده است درقسمت > دستورالعملهاي نصب آمدهاست.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.4>1.4</A>) </font><span lang="fa"><font face="Tahoma">رويچه محيطهاي غيريونيكسي ميتوانآن > را اجرا كرد؟</font></span></H4> > <P dir="rtl"><font face="Tahoma"><STRONG>Client</STRONG></font></P> > <P dir="rtl"><font face="Tahoma">ميتوان <span lang="en-us">psql, </span> > كتابخانه <span lang="en-us">libpq</span> و سايرواسطها و برنامههايكاربردي را > طوري كامپيل كرد كه رويمحيطهاي ويندوز نيزاجرا شوند. در اين حالت > <span lang="en-us">Client</span> روي ويندوز اجراميشود و از طربقشبكه و پروتكل > <span lang="en-us">TCP/IP</span> با يك سرور كه روييك پلتفرم لينوكسدر حال > اجراست ارتباط برقرارميكند.يك فايل<span lang="en-us">win32.mak</span> همراه با > كدهاي <span lang="en-us">PostgreSQL</span> وجود داردكه براي كامپيل كردن > كتابخانه <span lang="en-us">libpq</span> و برنامه<span lang="en-us">psql</span> > ميباشد. <span lang="en-us">P</span><span lang="en-us">ostgreSQL</span>همچنين > امكان ارتباط به صورت<span lang="en-us">ODBC</span> را نيز دارد.</font></P> > <P dir="rtl"><font face="Tahoma"><STRONG>Server</STRONG></font></P> > <P dir="rtl"><strong style="font-weight: 400"><font face="Tahoma">با استفادهاز > <span lang="en-us">Cygwin</span> و كتابخانه <span lang="en-us">Cygnus</span> > ميتوان پايگاه دادهرا روي ويندوز <span lang="en-us">NT</span>و يا > <span lang="en-us">Win2K</span> اجرا كرد.براي ديدناطلاعات بيشتر فايل<spanlang="en-us"> > </span></font></strong><font face="Tahoma"> <I>pgsql/doc/FAQ_MSWIN<span lang="en-us"> > </span></I>را كه بهمراه توزبعهاي<span lang="en-us">PostgreSQL</span> آمدهاست > ببينيد و يا اينكه به اينصفحه <A > href="http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> > مراجعه كنيد.</font></P> > <P dir="rtl"><font face="Tahoma">در حال حاضر يك عملياتانتقال <span lang="en-us"> > PostgreSQL</span> به روي سكوهاي <span lang="en-us">WinNT/2000/XP</span> در > جريان است. براي ديدن وضعيتاين پروژه به سايتهاي<A > href="http://momjian.postgresql.org/main/writings/pgsql/win32.html"> > http://momjian.postgresql.org/main/writings/pgsql/win32.htm</A> و <A > href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> > مراجعه كنيد. </font></P> > <P dir="rtl"><font face="Tahoma">همچنين يك عملياتانتقال بر روي > <span lang="en-us">Novell Netware 6</span> نيز در حال انجاماست كه در سايت <A > href="http://forge.novell.com/">http://forge.novell.com</A> ميتوانيداطلاعات > بيشتر را ببينيد.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=1.5>1.5</A>) PostgreSQL</font><span lang="fa"><font face="Tahoma"> > را از كجا ميتوانم بگيرم؟</font></span></H4> > <p dir="rtl"><font face="Tahoma"><span lang="en-us">PostgreSQL</span> را از > سايت اصلي آن <A > href="ftp://ftp.postgresql.org/pub">ftp://ftp.PostgreSQL.org/pub</A> ميتوانيد > بگيريد. در صفحه اصلي سايتليست ساير آدرسهاييكه ميتوانيد<span lang="en-us"> > PostgreSQL</span> را از آنها بگيريدآمده است.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.6>1.6</A>) </font><span lang="fa"><font face="Tahoma">از كجاخدمات پشتيباني بگيرم؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">گروه پستي اصلي<A > href="mailto:pgsql-general@PostgreSQL.org">pgsql-general@PostgreSQL.org</A> > ميباشد. اين گروه برايبحث در مورد موضوعاتمختلف در زمينه<span lang="en-us"> > PostgreSQL</span> است. براي عضو شدن دراين گروه پستي يك نامهالكترونيكي > به آدرس گروه با > محتوياتی كه در ادامهآمده است ارسالكنيد. در قسمت <span lang="en-us"> > Subject</span> چيزي ننويسيد.</font></p> > <div dir="rtl"> > <PRE><font face="Tahoma"> subscribe > end > </font></PRE> > </div> > <P dir="rtl"><font face="Tahoma">آدرس گروه: <A > href="mailto:pgsql-general-request@PostgreSQL.org">pgsql-general-request@PostgreSQL.org</A></font></P> > <P dir="rtl"><font face="Tahoma">همچنين يك گروهپستي هم به صورت ارسالچكيده > پيامها وجود دارد. برايعضو شدن در اين گروهيك نامه با محتوياتزير به > این آدرس > ارسال كنيد. <A > href="mailto:pgsql-general-digest-request@PostgreSQL.org">pgsql-general-digest-request@PostgreSQL.org</A> > </font></P> > <div dir="rtl"> > <PRE><font face="Tahoma"> subscribe > end > </font></PRE></div> > <p dir="rtl"><font face="Tahoma">در اين گروه هر موقعحجم نامهها به 30 كيلوبايت > رسيد براي تمام اعضاءارسال ميشود.</font></p> > <p dir="rtl"><font face="Tahoma">گروه پستي بررسياِشكالات هم وجوددارد. براي عضو > شدن در اين گروه يك نامهبا محتويات زير به > <A > href="mailto:pgsql-bugs-request@PostgreSQL.org">pgsql-bugs-request@PostgreSQL.org</A> > ارسال كنيد.</font></p> > <div dir="rtl"> > <PRE><font face="Tahoma"> subscribe > end > </font></PRE></div> > <P dir="rtl"><font face="Tahoma" size="3">گروه پستي مخصوصتوسعه دهندگان > (برنامهنويسان) نيز وجوددارد.براي عضويتدر اين گروه يك نامهبه آدرس زير با > محتويات مشخص شده ارسالكنيد. </font><font face="Tahoma"> > <A > href="mailto:pgsql-hackers-request@PostgreSQL.org"><font size="3">pgsql-hackers-request@PostgreSQL.org</font></A><spanlang="en-us"> > </span> </font></p> > <div dir="rtl"> > <PRE><font face="Tahoma"> subscribe > end > </font></PRE> > </div> > <p dir="rtl"><font face="Tahoma">گروههاي پستي ديگرينيز در زمينه > <span lang="en-us">PostgreSQL</span> وجود دارد كهميتوانيد در سايت<A > href="http://www.postgresql.org/">http://www.postgresql.org</A> ببينيد.</font></p> > <p dir="rtl"><font face="Tahoma">همچنين يك كانال<span lang="en-us">IRC</span> > روي <span lang="en-us">Freenode</span> و <span lang="en-us">EFNet</span> بنام<I>PostgreSQL<span lang="en-us">#</span> </I> > وجود دارد. شما ميتوانيداز فرمان يونيكسي</font> <CODE> > <font face="Tahoma">irc -c '#PostgreSQL' > "$USER" irc.phoenix.net.</font></CODE><font face="Tahoma"> يا </font> <CODE> > <font face="Tahoma">irc -c '#PostgreSQL' "$USER" irc.freenode.net<span lang="en-us"> > </span>استفاده كنيد.</font></CODE></p> > <p dir="rtl"><font face="Tahoma">ليست شركتهاييكه از طريق آنهاميتوانيد خدمات > پشتيباني تجاري در زمينه<span lang="en-us">PostgreSQL</span> دريافت كنيددر اين > آدرس <A > href="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A></font><code><font face="Tahoma"> > موجود است.</font></code></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.7>1.7</A>) </font><span lang="fa"><font face="Tahoma"> > آخرين نسخه اعلام شدهچيست؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">آخرين نسخه <span lang="en-us">PostgreSQL</span><spanlang="en-us"> > </span> كه وجود دارد 7.4.3 است.</font></p> > <p dir="rtl"><font face="Tahoma">هدف ما آن است كههر 6 ماه تا 8 ماه يك نسخهجديد > ارائه شود.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.8>1.8</A>) </font><span lang="fa"><font face="Tahoma">چه مستنداتو راهنمائيهاييوجود دارند؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">چندين كتابچه وصفحات راهنما و مثالهايكوچك > همراه با متن اصلي <span lang="en-us">PostgreSQL</span>در شاخه > <span lang="en-us">doc </span>وجود دارد. براي ديدنصفحات راهنما ميتوانيدبه > سايت <A > href="http://www.postgresql.org/docs">http://www.PostgreSQL.org/docs</A><span lang="en-us"> > </span> نيز مراجعه نماييد.</font></p> > <p dir="rtl"><font face="Tahoma">دو كتاب در زمينه<span lang="en-us">PostgreSQL</span><span lang="en-us"> > </span> در آدرسهاي <A > href="http://www.postgresql.org/docs/awbook.html"> > http://www.PostgreSQL.org/docs/awbook.htm</A> > و <A > href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook</A> > وجود دارد. ليستي از كتابهاييكه قابل خريداست در آدرس <A > href="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A><span lang="en-us"> > </span>وجود دارد. همچنين ليستياز مقالات فني درمورد <span lang="en-us"> > PostgreSQL</span> در آدرس <A > href="http://techdocs.postgresql.org/">http://techdocs.PostgreSQL.org</A><span lang="en-us"> > </span>وجود دارد.</font></p> > <p dir="rtl"><font face="Tahoma">برنامه <span lang="en-us">psql</span> يكدستور > <span lang="en-us">d\</span> دارد كه اطلاعاتيدر مورد انواعدادههاي قابلتعريف > و عملگرها و توابع و ...به ما نشان ميدهد. درسايت اصلي ما اطلاعاتبيشتري را > ميتوانيد پيدا كنيد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.9>1.9</A>) > <span lang="fa">چگونه ميتوانم ازاشكالاتشناخته شدهو يا امكاناتي كه دراين > پايگاه داده وجود ندارد مطلع شوم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="en-us">PostgreSQL</span> يك زير > مجموعه پيشرفته از <span lang="en-us">SQL-92</span>را پشتيباني ميكند.در ليست > <span lang="en-us"> </span><A > href="http://developer.postgresql.org/todo.php">TODO</A> اِشكالات > شناخته شده يا امكاناتيكه وجود نداردو يا برنامههايآينده آمدهاست.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.10>1.10</A>) </font><span lang="fa"><font face="Tahoma">چگونهميتوانم زبان</font></span> > <font face="Tahoma">SQL</font><span lang="fa"><font face="Tahoma"> را ياد بگيرم؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">كتاب <span lang="en-us">PostgreSQL</span> در > آدرس <span lang="en-us">SQL</span> <A > href="http://www.postgresql.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A><span lang="en-us"> > </span>را آموزش ميدهد. همچنينيك كتاب در آدرس<A > href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook </A> > وجود دارد. يك راهنمايخيلي خوب هم درسايتهاي <A > href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</A> > و <A > href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM</A> > و <A href="http://sqlcourse.com/">http://sqlcourse.com</A> در مورد > <span lang="en-us">SQL</span> وجود دارد.</font></p> > <p dir="rtl"><font face="Tahoma">كتاب ديگري كه ميتوانبراي يادگيري > <span lang="en-us">SQL</span> از آن استفاده كردكتاب <span lang="en-us">"SQL</span> > را در 21 روز ياد بگيريد،ويرايش دوم<spanlang="en-us">" </span>در سايت <A > href="http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</A><span lang="en-us"> > </span>ميباشد.</font></p> > <p dir="rtl"><font face="Tahoma">تعداد زيادي ازكاربران كتاب <span lang="en-us"> > The Practical SQL</span> را ترجيح ميدهند.كتاب ديگر <span lang="en-us">The > Complete Refrence SQL</span> انتشارات <span lang="en-us">McGraw-Hill</span> > ميباشد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.11>1.11</A>) </font><span lang="fa"><font face="Tahoma"> > آيا </font></span><font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> > مشكل </font></span><font face="Tahoma">Y2K</font><span lang="fa"><font face="Tahoma"> > دارد يا خير؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">خير،<span lang="en-us">PostgreSQL</span> با > تاريخهاي قبل و بعد از2000 مشكلي ندارد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.12>1.12</A>) </font><span lang="fa"><font face="Tahoma">چگونهميتوانم بهتيم برنامه نويس > </font></span><font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> > ملحق شوم؟</font></span></H4> > <p dir="rtl"><font face="Tahoma">ابتدا،آخرين سورسرا دونلود كرده ومستندات > مربوط به برنامهنويسي<span lang="en-us">PostgreSQL</span>را در سايت مطالعه > كنيد. سپس به گروههاي پستي <I>pgsql-patches </I> > و <i><span lang="en-us">pgsql-hackers > </span> </i>عضو شويد. در مرحلهآخر وصلههاي باكيفيت بالا را به > <span lang="en-us">pgsql-patches</span> ارسال كنيد.</font></p> > <p dir="rtl"><font face="Tahoma">تعداد زيادي ازبرنامهنويسان وجوددارند كه > امتياز انجام تغييراتدر <span lang="en-us">cvs</span> را دارند.هر كدام از آنها > تعداد زيادي وصله باكيفيت بالا به گروهارسال كردهاندكه اعتماد گردانندگان > <span lang="en-us">PostgreSQL</span> را به دست آوردهاند.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.13>1.13</A>) > <span lang="fa">چگونه ميتوانم يكاِشكال را به گروه برنامهنويس اعلام كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">لطفاً صفحه مربوطبه اِشكالات <span lang="en-us"> > PostgreSQL</span> را در سايت <A > href="http://www.postgresql.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A><span lang="en-us"> > </span>مشاهده<span lang="en-us"> </span>كنيد. دراين سايت نحوه گزارشو ارسال يك > اشكال توضيح داده شدهاست.</font></p> > <p dir="rtl"><font face="Tahoma"><span lang="en-us"> </span>همچنين براي > ديدن نسخههاي جديدتر<span lang="en-us">PostgreSQL</span> و يا وجوديك وصله جديد > از سايت <A > href="ftp://ftp.postgresql.org/pub">ftp://ftp.PostgreSQL.org/pub</A> بازديد > كنيد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=1.14>1.14</A>) </font><span lang="fa"><font face="Tahoma"> > وضعيت </font></span> > <font face="Tahoma">PostgreSQL</font><span lang="fa"><font face="Tahoma"> در > مقايسه با ساير </font></span><font face="Tahoma">DBMS<spanlang="fa">ها به چه > صورت است؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">راههاي مختلفيبراي اندازهگيريو مقايسه > نرمافزارها وجود داردكه عبارتند از امكانات،كارايي، قابليتاعتماد، پشتيبانيو > قيمت</font></p> > <DL> > <div dir="rtl"> > <dl> > <dt><b><font face="Tahoma">امكانات</font></b></dt> > <dd><font face="Tahoma"><span lang="en-us">PostgreSQL</span> بيشتر امكانات > موجود در سيستمهايپايگاه دادهتجاري بزرگ نظير<span lang="en-us"> > transactions, subselets, triggers, views, foreign key referential integrity > </span>و <span lang="en-us">sophisticated locking</span> را دارد.در > <span lang="en-us">PostgreSQL</span> امكاناتي وجوددارد كه پايگاههايداده > ديگر آن را ندارند نظير<span lang="en-us">user-defined types</span>و > <span lang="en-us">Inheritance</span>و <span lang="en-us">rules</span>و > <span lang="en-us">multi-version concurrency control</span></font></dd> > </dl> > </div> > <DD> > <p dir="rtl"> <div dir="rtl"> > <b><font face="Tahoma">كارايي</font></b><p><font face="Tahoma"><b> > </b>كارايي <span lang="en-us">PostgreSQL</span> در حد بقيهسيستمهاي تجاريو > متن باز است. در بعضي مواردسريعتر و در بعضيموارد از آنها كندتراست. در > مقايسه با <span lang="en-us">MySQL</span> برايكاربران بيشتر ودرخواستهاي > پيچيده و بار زياد خواندن/نوشتن سريعتراست. در درخواستهايساده<span lang="en-us"> > SELECT</span> از <span lang="en-us">MySQL</span> كندتر است.البته > <span lang="en-us">MySQL</span> خيلي از امكانات<span lang="en-us"> > PostgreSQL</span> كه در بالا به آن اشارهشد را ندارد. هدفاصلي ما امكانات و > قابليت اعتماد بالاستدر ضمن آنكه تلاشميكنيم تا كاراييآن نيز بهبود يابد. > در آدرس <A > href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A> > يك مقايسه جالب بين <span lang="en-us">MySQL</span>و <span lang="en-us"> > PostgreSQL</span> وجود دارد. از طرف ديگر<span lang="en-us">MySQL</span> يك > شركت است كه محصول خودرا به صورت متن بازارائه ميكند وليبراي نرمافزار غير > متن باز خود احتياج بهليسانس تجاري داردبر خلاف <span lang="en-us"> > PostgreSQL</span> كه يك گروه كاملاًمتن باز هستند.</font></div> > <DD> > <p dir="rtl"> <div dir="rtl"> > <dl> > <dt><b><font face="Tahoma">قابليت اطمينان</font></b></dt> > <dd><font face="Tahoma">ما فكر ميكنيم كهيك سيستم پايگاه دادهايكه مطمئن > نباشد ارزشي ندارد. ماتمام تلاشمان را برايارائه كدهاي پايداريكه به خوبي > تست شده باشند و كمتريناِشكالات را داشتهباشند ميكنيم.هر نسخه جديديكه > ارائه ميشود حداقليك ماه را در مرحلهتست بتا ميگذراند.ما بر اين باور > هستيم كه قابليت اطمينان<span lang="en-us">PostgreSQL</span> در مقايسهبا > ساير سيستمهاي پايگاهداده قابل توجهاست و نسخههاييكه تاكنونارائه شده است > نشان ميدهد كه ما تواناييارائه يك سيستمقوي و محكم و مطمئنرا كه آماده > بهرهبرداري است داريم.</font></dd> > </dl> > </div> > <DD> > <div dir="rtl"> > <dl> > <dt><b><font face="Tahoma">پشتيباني</font></b></dt> > <dd><font face="Tahoma">گروههاي پستي ماامكان ارتباط و تماسبه گروه بزرگي از > برنامه نويسان و كاربرانرا ميدهد كهميتوانند در حل مشكلاتبه ديگران كمك > كنند. دسترسي مستقيمبه برنامهنويسانو گروههايكاربران و راهنماهاو كداصلي > باعث ميشود كه پشتيباني<span lang="en-us">PostgreSQL</span> نسبتبه ساير > پايگاههاي داده به نحوبهتري انجام شود. همچنينامكان ارائه خدماتپشتيباني به > صورت تجاري نيز وجوددارد. براي ديدن اطلاعاتبيشتر به <A > href="#1.6">FAQ > section 1.6</A> مراجعه كنيد.</font></dd> > </dl> > </div> > <DD> > <div dir="rtl"> > <dl> > <dt><b><font face="Tahoma">قيمت</font></b></dt> > <dd><font face="Tahoma">هم براي استفادهتجاري و هم غيرتجاري هيچ هزينهاي > نبايد پرداخت شود. هيچمحدوديتي براي انجامتغييرات در <span lang="en-us"> > PostgreSQL</span> توسط استفاده كنندگانوجود ندارد بهجز مواردي كه در ليسانس > <span lang="en-us">BSD</span> به آن اشاره شدهاست.</font></dd> > </dl> > </div> > </DL> > <H4 dir="rtl"><font face="Tahoma"><A name=1.15>1.15</A>) > <span lang="fa">من چگونه ميتوانماز نظر ماليبه </span>PostgreSQL<span lang="fa"> > كمك كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="en-us">PostgreSQL </span> داراي > يك ساختار تشكيلاتي درجهاول است كه آن را مديون<span lang="en-us">Marc Fournier</span> > است كه اين ساختار را ايجادكرده است.</font></p> > <p dir="rtl"><font face="Tahoma">كيفيت يك ساختاربراي يك پروژهمتن باز بسيار > اهميت دارد. يك ساختارخوب ميتواندمانع از حوادثيشود كه در حركتروبهجلوي پروژه > خللي وارد ميكنند.</font></p> > <p dir="rtl"><font face="Tahoma">البته اين ساختارتشكيلاتي ارزاننيست. هزينههاي > ثابت ماهانه و روزمرهبراي نگهداريو حفظ اين ساختارمورد نياز است.اگر شما يا > شركت شما مايل است كه ازنظر مالي به اين حركتكمك كند لطفاً بهسايت <A > href="http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping</A> > مراجعه كرده و كمك خودرا اهدا كنيد.</font></p> > <p dir="rtl"><font face="Tahoma">هر چند در صفحه اصليعبارت <span lang="en-us"> > PostgreSQL,Inc</span> ذكر شده است ولي مشاركتعمدتاً براي پشتيبانياز پروژه > <span lang="en-us">PostgreSQL</span> مي باشد و نه براييك شركت مشخص. اگرترجيح > ميدهيد ميتوانيد يكچك به آدرس مشخص شدهارسال كنيد.</font></p> > <p dir="rtl"><font face="Tahoma">اگر يك استفادهموفق از <span lang="en-us"> > PostgreSQL</span> سراغ داريد لطفاًآن را به سايت <A > href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</A> گزارش > دهيد.</font></p> > <HR dir="rtl"> > > <h2 align="center" dir="rtl"><font face="Tahoma"><span lang="fa">سوالات مربوطبه > استفاده از پايگاه داده</span></font></h2> > <H4 dir="rtl"><font face="Tahoma"><A name=2.1>2.1</A>) > <span lang="fa">آيا هيچ درايور </span>ODBC</font><spanlang="fa"><font face="Tahoma"> > براي </font></span><font face="Tahoma">PostgreSQL<span lang="fa"> > وجود دارد؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">دو درايور </span>ODBC<spanlang="fa"> > بنامهاي </span>psqlODBC<span lang="fa"> و </span>OpenLink<span lang="fa">براي > </span>PostgreSQL<span lang="fa"> وجود دارد.</span></font></p> > <p dir="rtl"><font face="Tahoma"><span lang="fa">براي گرفتن </span>psqlODBC<spanlang="fa"> > به سايت </span> <A > href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A><span lang="fa"> > مراجعه كنيد.</span></font></p> > <p dir="rtl"><font face="Tahoma"><span lang="en-us">OpenLlink</span> را از اين > سايت <A > href="http://www.openlinksw.com/">http://www.openlinksw.com</A> ميتوانيد > بگيريد. اين درايور بانرمافزارهاي مختلف<span lang="en-us">ODBC</span> كار > ميكند بنابراين شماقادر خواهيد بود بااستفاده از <span lang="en-us">OpenLink</span> > روي اكثر سكوهايي كهنرمافزار<span lang="en-us">ODBC</span>دارندبدون مشكلبه > <span lang="en-us">PostgreSQL</span> نيز متصل شويد.</font></p> > <p dir="rtl"><font face="Tahoma">اين محصول به كسانيكه احتياج به خدماتپشتيباني > تجاري دارند فروخته ميشود.ولي نسخه آزاداين نرمافزار هميشهدر درسترس ميباشد. > براي كسب اطلاعات بيشترسوالات خود را بهآدرس <A > href="mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A><span lang="en-us"> > </span>ارسال نماييد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=2.2>2.2</A>) > <span lang="fa">چه ابزارهايي براياستفاده از </span>PostgreSQL<span lang="fa"> > با صفحات وب وجود دارد؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">در سايت <A > href="http://www.webreview.com/">http://www.webreview.com</A> براي استفادهاز > <span lang="en-us">PostgreSQL</span> در صفحات وب راهنماييهايخوبي وجوددارد.</font></p> > <P dir="rtl"><font face="Tahoma">براي تركيب و استفادهدر صفحات وب زبان > <span lang="en-us">PHP</span> يك واسط بسيار مناسباست. اطلاعات بيشترراجع به > <span lang="en-us">PHP</span>در سايت <A > href="http://www.php.net/">http://www.php.net</A><span lang="en-us"> </span>وجود > دارد.</font></P> > <P dir="rtl"><font face="Tahoma">مثالهايي نيز بااستفاده از <span lang="en-us"> > Perl</span> و<span lang="en-us"> CGI.pm</span> و <span lang="en-us">mod_perl</span> > وجود دارد.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=2.3>2.3</A>) > <span lang="fa">آيا </span>PostgreSQL<span lang="fa"> يك واسطكاربري گرافيكي > دارد؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">چند نرم افزار گرافيكيبراي <span lang="en-us"> > PostgreSQL</span> وجود دارد كه شامل<span lang="en-us">pgAccess</span> درسايت <A > href="http://www.pgaccess.org/">http://www.pgaccess.org</A><span lang="en-us"> > </span>و <span lang="en-us">pgAdmin III</span> در سايت <A > href="http://www.pgadmin.org/">http://www.pgadmin.org</A><span lang="en-us"> > </span>و <span lang="en-us">RHDB Admin</span> در سايت <A > href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb</A><span lang="en-us"> > </span>و <span lang="en-us">Rekall</span> در سايت <A href="http://www.thekompany.com/products/rekall/"> > http://www.thekompany.com/products/rekall<span lang="en-us"> </span></A> ميباشد. > همچنين يك <span lang="en-us">phpPgAdmin</span> هم درسايت <A href="http://phppgadmin.sourceforge.net/"> > http://phppgadmin.sourceforge.net</A><span lang="en-us"> </span>وجود داردكه يك > واسط وبي براي مديريت<span lang="en-us">PostgreSQL</span> ميباشد.</font></p> > <P dir="rtl"><font face="Tahoma">براي ديدن اطلاعاتبيشتر راجع بهنرمافزارهاي > گرافيكي براي <span lang="en-us">PostgreSQL</span> بهآدرس <A > href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A><span lang="en-us"> > </span>مراجعه كنيد.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=2.4>2.4</A>) > <span lang="fa">با چه زبانهاي برنامهنويسي ميتوانبا </span>PostgreSQL<span lang="fa"> > ارتباط برقرار كرد؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">بيشتر زبانهاي برنامهنويسي > ميتوانند با </span>PostgreSQL<span lang="fa">ارتباط برقرار كنند.به همراه > سورس </span>PostgreSQL<span lang="fa"> تعدادي ازواسطهاي مورد نيازبراي ارتباط > با پايگاه داده از طريقزبانهاي مختلف آمدهاست كه در زير ليستآنها را مشاهده > ميكنيد.</span></font></p> > <ul dir="rtl"> > <li dir="ltr"> > <p dir="ltr" align="left"><font face="Tahoma">C (libpq) </font></li> > <li dir="ltr"> > <p dir="ltr" align="left"><font face="Tahoma">Embedded C (ecpg) </font> > </li> > <li dir="ltr"> > <p dir="ltr" align="left"><font face="Tahoma">Java (jdbc) </font></li> > <li dir="ltr"> > <p dir="ltr" align="left"><font face="Tahoma">Python (PyGreSQL) </font> > </li> > <li dir="ltr"> > <p dir="ltr" align="left"><font face="Tahoma">TCL (libpgtcl) </font></li> > </ul> > <p dir="rtl" align="right"><span lang="fa"><font face="Tahoma">واسطهاي ديگردر > سايت </font></span><font face="Tahoma"> <A > href="http://gborg.postgresql.org/">http://gborg.postgresql.org</A> > <span lang="fa">در قسمت </span><i>Drivers/Interfaces</i><span lang="fa"> وجود > دارد.</span></font></p> > <HR dir="rtl"> > > <h2 align="center" dir="rtl"><span lang="fa"><font face="Tahoma">سوالات مديريتي</font></span></h2> > <H4 dir="rtl"><font face="Tahoma"><A name=3.1>3.1</A>) > <span lang="fa">چگونه ميتوانم </span>PostgreSQL<spanlang="fa"> را در شاخهاي > غير از </span>/usr/local/pgsql/<span lang="fa"> نصب كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">موقع اجراي دستور<i><span lang="en-us"> > configure</span> </i>از گزينه <span lang="en-us">prefix--</span> استفادهكنيد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.2>3.2</A>) > <span lang="fa">چرا موقعي كه من برنامه</span>postmaster<span lang="fa"> را > اجرا مي كنم پيام </span>Bad system call<spanlang="fa"> و يا </span>core dump > <span lang="fa">ميگيرم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">به دلايل مختلفممكن است اين اتفاقبيفتد. اما در > قدم اول شما مطمئن شويدكه كه امكانات اضافه<span lang="en-us">System V</span> > در كرنل شما نصب شده باشد.<span lang="en-us">PostgreSQL</span> براي اجراشدن > نياز به استفاده از امكاناتحافظه مشتركو سمافورها دارد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.3>3.3</A>) > <span lang="fa">چرا موقعي كه من سعيميكنم برنامه </span>postmaster<spanlang="fa"> > را اجرا كنم خطاي</span> <I>IpcMemoryCreate</I> <span lang="fa">ميگيرم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">احتمالاً قسمتايجاد حافظه مشتركدر كرنل به > درستي تنظيم نشده استو يا اينكه بايد فضايحافظه اشتراكي دركرنل را زياد كرد. > ميزان دقيق حافظه مشتركمورد نياز بستهبه معماري و نحوهاستفاده از بافرهاتوسط > برنامه <span lang="en-us"><i>postmaster </i></span>دارد. برايبيشتر سيستمهاكه > با تنظيمات پيشفرض كارميكنند مقدار اينحافظه حدود <span lang="en-us">1</span> > مگابايت است. براي ديدناطلاعات بيشتر راجعبه حافظه مشترك وسمافور به <A > href="http://www.postgresql.org/docs/view.php?version=current&idoc=1&file=kernel-resources.html">PostgreSQL > Administrator's Guide</A><span lang="en-us"> </span>مراجعه كنيد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.4>3.4</A>) <span lang="fa">چرا موقعيكه من سعي ميكنمبرنامه </span>postmaster<span lang="fa"> > را اجرا كنم خطاي</span> <I><span lang="fa"> </span>IpcSemaphoreCreate<spanlang="fa"> > </span></I><span lang="fa">ميگيرم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">اگر پيغام خطا<span lang="en-us"></span><i> > (pcSemaphoreCreate: semget failed (No space left on devi<span lang="en-us">ce > </span> </i>باشد به اين معني استكه تعداد سمافورهايتنظيم شدهدر كرنل كافي > نيست. <span lang="en-us">PostgreSQL</span> براي هر فراينديكه در > <span lang="en-us">backend</span> اجرا ميشود بهيك سمافور نياز دارد.يك راه حل > موقت براي اين مسئله آناست كه <i><span lang="en-us">postmaster</span> </i>را با > اعمال محدوديت روي تعدادفرايندهايي كهميتواند ايجاد كنداجرا كنيم. براي اينكار > از گزينه <span lang="en-us">N-</span> و يك عددكمتر از 32 استفاده كنيد.راه حل > دائمي اين مشكل آن استكه پارامترهاي <span lang="en-us">SEMMNS,SEMMNI</span> > كرنل را افزايش دهيم.</font></p> > <P dir="rtl"><font face="Tahoma">در زمان دسترسيخيلي زياد به پايگاهداده، > سمافورهاي نامعتبر ميتوانندباعث <span lang="en-us">crash</span>كردن سيستم > شوند.</font></P> > <P dir="rtl"><font face="Tahoma">اگر پيغام خطا چيزديگري باشد احتمالاًبه دليل > آن است كه كرنل از سمافورهاپشتيباني نميكند.براي ديدن اطلاعاتبيشتر راهنماي > مديريتي <span lang="en-us">PostgreSQL</span> را مطالعهكنيد.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=3.5>3.5</A>) > <span lang="fa">چگونه ميتوانم اتصالاتساير ماشينهارا كنترل كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">به صورت پيش فرضفقط از ماشيني كه > <span lang="en-us">PostgreSQL </span>روي آن در حال اجراستميتوان با استفادهاز > سوكتهاي يونيكسي بهآن متصل شد. ساير ماشينهاقادر نيستندبه <span lang="en-us"> > PostgreSQL</span> متصل شوند مگر آنكهگزينه <span lang="en-us">tcp_sockets</span> > در فايل <span lang="en-us">postgresql.conf</span> فعال شدهو همچنين با اصلاح > فايل <span lang="en-us">PGDATA/ph_hba.conf</span> هويتشناسيمبتني برميزبان نيز > فعال شود. با اين كار ميتواناتصالات <span lang="en-us">TCP/IP</span>به > <span lang="en-us">PostgreSQL</span> ايجاد كرد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.6>3.6</A>) > <span lang="fa">براي كارايي بالاترو بهتر پايگاهداده من چه تنظيماتيرا بايد > انجام دهم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">به طور حتم استفادهاز انديسهاباعث بالا رفتن > سرعت پاسخگويي به درخواستهاخواهد شد.دستور <span lang="en-us">EXPLAIN ANALYZE</span> > به شما امكان ديدن نحوهپردازش يك دستورتوسط <span lang="en-us">PostgreSQL</span> > را ميدهد.</font></p> > <p dir="rtl"><font face="Tahoma">اگر شما تعداد زيادي<spanlang="en-us"> INSERT</span> > داريد سعي كنيد آنها رابا قرار دادن در يك فايلبا دستور <span lang="en-us">COPY</span> > اجرا كنيد. اين دستور بهمراتب از <span lang="en-us">INSERT</span> سريعتراست. > حتيالامكان سعي كنيداز تراكنشها استفادهنكنيد. تراكنشهامجموعه دستوراتيهستند > كه بيند <span lang="en-us">BEGIN</span> و <span lang="en-us">COMMIT</span> > ميآيند. اگر يك دستوربه صورت عادي اجراشود <span lang="en-us">PostgreSQL</span> > خود آن دستور را به صورتيك تراكنش مستقلنگاه كرده و اجراميكند. موقعی كه > تغييرات زيادي در پايگاهداده انجام ميشودانديسهاي قبليرا حذف و مجدداًايجاد > كنيد.</font></p> > <p dir="rtl"><font face="Tahoma">استفاده از گزينه<span lang="en-us">o -F-</span> > در فرمان <i><span lang="en-us">postmaster</span></i> باعثغير فعال كردن > <span lang="en-us">()fsync</span> ميشود. اين دستوربعد از هر تراكنشاطلاعات را > روي هاردديسك منتقل ميكند.</font></p> > <p dir="rtl"><font face="Tahoma">براي افزايش تعدادبافرهاي حافظهاشتراكي از > گزينه <span lang="en-us">B-</span> به همراه فرمان<i><span lang="en-us"> > postmaster</span></i> استفاده كنيد. توجهكنيد كه اگر اين عددخيلي بزرگ باشد ممكن > است <i><span lang="en-us">postmaster</span></i> اصلاً اجرانشود. هر بافر 8 كيلو > بايت حافظه نياز داردو تعداد بافرها بهطور پيش فرض 64 است.</font></p> > <p dir="rtl"><font face="Tahoma">همچنين ميتوانبا گزينه <span lang="en-us">S-</span> > ميزان حافظهاي كه برايمرتبسازيهاي موقتتوسط <span lang="en-us">PostgreSQL</span> > استفاده ميشود را افزايشداد. مقدار پيشفرض 512 كيلو بايت است.</font></p> > <p dir="rtl"><font face="Tahoma">استفاده از دستور<span lang="en-us">CLUSTER</span> > نيز براي بالا بردن كاراييموثر ا ست. دستورراهنماي <span lang="en-us">CLUSTER</span> > اطلاعات بيشتري در اينزمينه به شما ميدهد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.7>3.7</A>) > <span lang="fa">چه امكاناتي براي پيداكردن اشكال وجوددارد؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="en-us">PostgerSQL</span> امكانات > مختلفي براي گزارش دادنوضعيت خود دارد كهبراي اشكال زدايي ميتواناز آنها > استفاده كرد.</font></p> > <P dir="rtl"><font face="Tahoma">با استفاده از گزينه<span lang="en-us">enable-assert--</span> > تعداد زيادي <span lang="en-us">()assert</span> برايمونيتور كردن و توقفبرنامه > در صورت بروز خطاهاي ناخواستهفعال ميشود.</font></P> > <P dir="rtl"><font face="Tahoma">هم <i><span lang="en-us">Postmaster</span></i> > و هم <i><span lang="en-us">postgres</span></i> گزينههايزيادي براياشكال زدايي > دارند. موقعي كه <i><span lang="en-us">postmaster</span></i>را اجرا ميكنيد > خروجي استاندارد و خطارا سمت فايل <span lang="en-us">log</span> ارسالكنيد.</font></P> > <div dir="ltr"> > <PRE><font face="Tahoma"> cd /usr/local/pgsql > ./bin/postmaster >server.log 2>&1 & > </font></PRE> > </div> > <P dir="rtl"><font face="Tahoma">اين كار يك فايل<spanlang="en-us"> > log</span> > در بالاترين شاخه <span lang="en-us">PostgreSQL</span>ايجاد ميكند. اينفايل > حاوي اطلاعات مفيدي درمورد مسائل و خطاهايياست كه براي سروراتفاق افتاده است. > براي ديدن جزئيات بيشترميتوان از <span lang="en-us">d-</span> به همراه > فرمان <i><span lang="en-us">postmaster</span></i> استفادهكرد. گزينه > <span lang="en-us">d-</span> همچنين يك عدد ميگيردكه نشان دهندهسطح جزئياتي است > كه در <span lang="en-us">Log</span>فايل نوشتهميشود. با بالابردناين عدد حجم > اطلاعات توليد شده در<span lang="en-us">Log</span>فايل نيز افزايشمييابد.</font></P> > <P dir="rtl"><font face="Tahoma">اگر <i><span lang="en-us">postmaster</span></i> > در حال اجرا نباشد، ميتوانيم<span lang="en-us">postgres</span> را بهطور مستقيم > از خط فرمان اجرا كردهو دستورات <span lang="en-us">SQL</span>را به آن > بدهيم. اين كار فقط براياشكاليابي توصيهميشود. توجه كنيدكه در اين حالت يك > دستور با كاراكتر <span lang="en-us">newline</span>خاتمه پيدا ميكندو نه با > <span lang="en-us">;. </span>اگر <span lang="en-us">postmaster</span> را با > امكانات اشكاليابيكامپيل كردهباشيد ميتوانيدبا استفادهاز يك برنامهاشكالياب > اجراي برنامه را مونيتوركنيد. </font></P> > <P dir="rtl"><font face="Tahoma">اگر <i><span lang="en-us">postmaster</span></i> > در حال اجرا باشد با دستور<span lang="en-us">psql</span> ميتوان به > <span lang="en-us">postgres</span> متصل شد. با پيداكردن <span lang="en-us">PID</span> > فرايند <span lang="en-us">postgres</span> كه <span lang="en-us">psql</span>به > آن متصل شده است ميتوانآن را مونيتوركرد. براي اينكاربايد يك برنامهاشكالياب > را به آن <span lang="en-us">pid</span> متصل كرد.اگر بخواهيم بالاآمدن > <span lang="en-us">postgres</span> را مونيتور كنيمكافي است<span lang="en-us"> > "PGOPTIONS="-W</span> <span lang="en-us">n</span> و <span lang="en-us">psql</span> > را اجرا كنيم. اين كار باعثميشود كه <span lang="en-us">postgres</span>با > <span lang="en-us">n</span> ثانيه تاخير اجراشود و در اين فاصلهشما ميتوانيد > برنامه اشكالياب رابه آن متصل كرده و باقرار دادن يك نقطه توقف روند اجراي > آن را مونيتور كنيد.</font></P> > <P dir="rtl"><font face="Tahoma"><i><span lang="en-us">postgres</span></i> > گزينههاي <span lang="en-us">s-</span> و <span lang="en-us">A-</span>و > <span lang="en-us">t-</span> دارد كه براي پيداكردن اشكالات بسيارمناسب هستند.</font></P> > <p dir="rtl"><font face="Tahoma">شما ميتوانيد<span lang="en-us">postgreSQL</span> > را با امكانات <span lang="en-us">profiling</span> كامپيلكنيد. اين كار باعث > ميشود كه زمان اجرايدقيق هر تابع دربرنامه مشخص شود. خروجيهايتوليد شدهدر اين > حالت در فايل <span lang="en-us">DLINUX_PROFILE.</span> ريختهميشود.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.8>3.8</A>) > <span lang="fa">چرا موقعي كه من ميخواهمبه پايگاه دادهوصل شوم پيام</span> <I>"Sorry, toomany clients" > <span lang="fa"></span></I><span lang="fa">ميگيرم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">شما بايد حداكثرتعداد فرايندهايهمزمان <i> > <span lang="en-us">postmaster</span></i> را افزايش دهيد.مقدار پيش فرض 32 است. > براي افزايش آن ميتواناز گزينه <span lang="en-us">N-</span>استفاده كرد و يا > فايل <i><span lang="en-us">postgresql.conf</span></i> را اصلاحنمود</font></p> > <p dir="rtl"><font face="Tahoma">توجه كنيد كه اگر<span lang="en-us">N-</span> > مقداري بيشتر از 32 داشتهباشد بايد مقدار<span lang="en-us">B-</span> را نيز > افزايش دهيم. اين مقداربايد حداقل دو برابرمقدار <span lang="en-us">N-</span> > باشد. براي اعداد خيليبالا بايد بعضي ازپارامترهاي كرنل رانيز اصلاح كرد. > پارامترهايي نظير حداكثراندازه حافظهاشتراكي <span lang="en-us">SHMMAX</span> ، > حداكثر تعداد سمافورها<spanlang="en-us"> SEMMNI</span> و <span lang="en-us"> > SEMMNS </span>، حداكثر تعداد فرايندها<span lang="en-us">NPROC</span>، حداكثر > فرايندهاي يك كاربر <spanlang="en-us">MAXUPRC</span> و حداكثر فايلهايباز > <span lang="en-us">NFILE</span> و <span lang="en-us">NINODE. </span>يكي از > دلايلي كه تعداد اتصالاتهمزمان <span lang="en-us">postgreSQL</span>محدود است آن > است كه نيازهاي <span lang="en-us">PostgreSQL</span>بيش از منابع موجودسيستم > نباشد.</font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=3.9>3.9</A>) <span lang="fa"> > در شاخه </span> <I>pgsql_tmp</I> <span lang="fa"> چه چيزيقرار دارد؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">دراين شاخه فايلهايموقتي قرار داردكه با اجراي > درخواستها به وجود آمدهاست. به عنوان مثالاگر براي اجراي دستور > <span lang="en-us">order by</span> نياز به انجام مرتبسازي باشد و در صورتيكه > حافظه مشخص شده با گزينه<span lang="en-us">S-</span> براي اينكاركافي نباشد > سيستم يك فايل موقت دراين شاخه ايجاد ميكندتا عمل مرتب سازيرا انجام دهد.</font></p> > <P dir="rtl"><font face="Tahoma">فايلهاي موقت معمولاًبه صورت اتوماتيكپاك > ميشود اما اگر <span lang="en-us">postgreSQL</span>در حين مرتب سازي > <span lang="en-us">crash</span> كند آن فايلهاباقي ميمانند.با > <span lang="en-us">stop</span> و <span lang="en-us">start</span> كردن برنامه<i> > <span lang="en-us">postmaster</span></i> اين فايلها پاكميشوند.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=3.10>3.10</A>) > <span lang="fa">چرا براي به روز كردننسخه پايگاه دادهمن بايد كل داده هارا > </span>dump<span lang="fa"> و مجدداً </span>restore<span lang="fa"> كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">تيم برنامه نويس<span lang="en-us">postgreSQL</span> > در نسخههاي ارائه شدهكه فقط <span lang="en-us">minor</span> آنها متفاوتاست فقط > تغييرات كوچكي اعمالميكنند؛ بنابراينبراي به روزكردن از نسخه > <span lang="en-us">7.2</span>به 7.2.1<span lang="en-us"> </span>نيازيبه > <span lang="en-us">dump</span> و <span lang="en-us">restore</span> نيست. امادر > نسخههايي كه <span lang="en-us">major</span> آنهاتغيير ميكند غالباًساختار > داخلي جداول و فايلهايداده تغيير ميكند.اين تغييرات معمولاًپيچيده هستند.براي > انتقال دادههاي موجوددر پايگاه دادهدر اين حالت بايداز <span lang="en-us"> > dump</span> و <span lang="en-us">restore</span> استفاده كرد.</font></p> > <P dir="rtl"><font face="Tahoma">در نسخههايي كهساختار روي ديسك تغييرينميكند > مي توان از برنامه <span lang="en-us">pg_upgrade</span>براي به روز كردنپايگاه > داده استفاده كرد بدوناينكه نيازي به استفادهاز <span lang="en-us">dump</span> و > <span lang="en-us">restore </span> باشد. در يادداشتيكه به همراههر توزيع > ميآيد ذكر شده است كهآيا برنامه <span lang="en-us">pg_upgrade</span> براياين > توزيع وجود دارد يا خير.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=3.11>3.11</A>) > <span lang="fa">از چه سخت افزاري بايداستفاده كنم؟</span><BR> > </font></H4> > <P dir="rtl"><font face="Tahoma">چون اكثر سختافزارهاي<span lang="en-us">PC > </span> سازگار هستند مردمفكر ميكنند كه كيفيتآنها نيز يكساناست. در > حاليكه اينطور نيست. استفادهاز هاردهاي <span lang="en-us">SCSI</span>و > حافظههاي <span lang="en-us">ECC</span> و مادربردهايبا كيفيتبالا نسبت به سخت > افزارهاي ارزانتر نتايجبهتري از نظر كاراييو پايداري سيستمبهمراه خواهد داشت.<spanlang="en-us"> > PostgreSQL</span> روي بيشتر سخت افزارهااجرا ميشوداما اگر كاراييو اطمينان > فاكتورهاي مهمي هستندبايد سخت افزارمناسب استفادهشود. در گروههايپستي در مورد > سخت افزار مناسب و انتخابآن بحث شده است.</font></P> > <HR dir="rtl"> > > <H2 align=center dir="rtl"><span lang="fa"><font face="Tahoma">سوالات عملياتي</font></span></H2> > <H4 dir="rtl"><font face="Tahoma"><A name=4.1>4.1</A>) تفاوت بين > <span lang="en-us">binary cursors</span> و <span lang="en-us">Normal cursors</span> > چيست؟</font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">راهنماي دستور</span>DECLARE<span lang="fa"> > را مطالعه كنيد.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.2>4.2</A>) > <span lang="fa">من چگونه ميتوانمفقط روي چندرديف اول > يا يك رديف تصادفي درخواست</span>SELECT<span lang="fa"> > بزنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">راهنماي دستور</span>FETCH > <span lang="fa"> يا </span>SELECT...LIMIT<span lang="fa"> را ببينيد.</span></font></p> > <P dir="rtl"><font face="Tahoma"><span lang="fa">در واقع كل درخواستبايد بررسي و > ارزيابي شود حتي اگر شمافقط چند رديف اول رابخواهيد. براي مثالدرخواست </span> > ORDER BY<span lang="fa"> را در نظر بگيريد.اگر انديس يا نمايهايبراي </span>ORDER > BY<span lang="fa"> وجود داشته باشد،</span>postgreSQL<spanlang="fa"> ممكن است > بتواند فقط چند سطر اولدرخواستي را ارزيابيكند و يا اينكهكل درخواست پردازششود > تا تعداد رديفهاي درخواستيتوليد شود.</span></font></P> > <P dir="rtl"><span lang="fa"><font face="Tahoma">براي انتخابيك سطر تصادفيبه > روش زير عمل ميكنيم:</font></span><divdir="ltr"> > <PRE><font face="Tahoma"> SELECT col > FROM tab > ORDER BY random() > LIMIT 1; > </font></PRE> > </div> > <H4 dir="rtl"><font face="Tahoma"><A name=4.3>4.3</A>) > <span lang="fa">من چگونه ميتوانمليستي از جداوليا ساير چيزهاييكه در </span> > psql<span lang="fa"> وجود دارد را ببينم؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">براي ديدن ليستجداول دستور > </span>dt\<span lang="fa"> را در برنامه </span><i>psql</i><spanlang="fa"><i></i> > استفاده كنيد. براي ديدنليست كامل فرمانها</span>?\<span lang="fa"> را اجرا > كنيد. راه ديگر خواندنمتن برنامه </span>psql<spanlang="fa"> است كه در شاخه > </span> <I>pgsql/src/bin/psql/describe.c <span lang="fa"></span></I><span lang="fa">قرار > دارد.<I> </I>اين فايل حاوي فرامين</span>SQL<span lang="fa">يي است كه خروجيرا > براي دستوراتي كه با</span>\<span lang="fa">در </span>psql<span lang="fa"> > شروع ميشوند توليد ميكنند.راه ديگر اجراي</span>psql<span lang="fa"> با گزينه > </span>E-<span lang="fa">است. اينكار باعثميشود كه </span>psql<span lang="fa"> > قبل از اجرا هر دستور </span>SQL<spanlang="fa">متناظر آن را نشاندهد. </span> > PostgreSQL<span lang="fa">همچنين يك برنامه</span>SQLi<span lang="fa"> دارد كه > ميتوان با استفاده ازآن اطلاعات داخليپايگاه داده رااستخراج كرد.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.4>4.4</A>) > <span lang="fa">چگونه يك ستون جدولرا حذف ميكنيد؟چگونه نوع دادهآن را عوض > كنيم؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">حذف يك ستون درتوزيع </span>7.3 > <span lang="fa">با استفاده از دستور</span>ALTER TABLE DROP COLUMN<span lang="fa"> > اضافه شده است. در نسخههايقبلي به روشزير عمل كنيد:</span></font></P> > <div dir="ltr"> > <PRE><font face="Tahoma"> BEGIN; > LOCK TABLE old_table; > SELECT ... -- <span lang="fa">تمام ستونها غيراز ستوني كه ميخواهيدآن را حذف كنيدرا در اينجا بياوريد</span> > INTO TABLE new_table > FROM old_table; > DROP TABLE old_table; > ALTER TABLE new_table RENAME TO old_table; > COMMIT; > </font></PRE> > </div> > <P dir="rtl"><span lang="fa"><font face="Tahoma">براي عوض كردننوع داده يك ستون > به روش زير عمل كنيد:</font></span></P> > <div dir="ltr"> > <PRE><font face="Tahoma"> BEGIN; > ALTER TABLE tab ADD COLUMN new_col <I>new_data_type</I>; > UPDATE tab SET new_col = CAST(old_col AS <I>new_data_type</I>); > ALTER TABLE tab DROP COLUMN old_col; > COMMIT; > </font></PRE> > </div> > <H4 dir="rtl"><font face="Tahoma"><A name=4.5>4.5</A>) > <span lang="fa">حداكثر اندازه يك رديف،جدول و خود پايگاهداده چقدر است؟</span></font></H4> > <p dir="rtl"><span lang="fa"><font face="Tahoma">محدوديتها عبارتنداز:</font></span></p> > <div dir="rtl"> > <PRE><font face="Tahoma"> <span lang="fa">حداكثر اندازهپايگاه داده </span> <span lang="fa">نامحدود (تا 32 ترابايتوجود دارد)</span> > <span lang="fa">حداكثر اندازه يكجدول</span> <span lang="fa">32 ترابايت</span> > <span lang="fa">حداكثر ا ندازه يكرديف</span> <span lang="fa">1.6 ترابايت</span> > <span lang="fa">حداكثر اندازه يكفيلد</span> <span lang="fa">1 گيگا بايت</span> > <span lang="fa">حداكثر اندازه رديفهاييك جدول</span> <span lang="fa"> نامحدود</span> > <span lang="fa">حداكثر ستونهاي يكجدول</span> <span lang="fa"> بسته به نوعجدول بين 250 تا 6000 </span> > <span lang="fa">حداكثر انديسهاييك جدول نا محدود</span> > </font></PRE></div> > <p dir="rtl"><span lang="fa"><font face="Tahoma">البته در حالتنامحدود نيز ما > محدود به حجم هاردديسكو فضاي حافظهخواهيم بود. در صورتي > که مقادير مشخص شده بهعنوان > نامحدود به صورت غير معموليبزرك شوند كاراييسيستم كاهش خواهديافت.</font></span></p> > <P dir="rtl"><span lang="fa"><font face="Tahoma">براي ذخيره كردنجداول با اندازه > خيلي بزرگ نيازي نيستكه سيستم عامل امكانايجاد فايلهايبزرگ را داشتهباشد. بلكه > جداول خيلي بزرگ به صورتفايلهايي به حجميك گيگا بايت نگاهداري ميشوند.</font></span></P> > <P dir="rtl"><font face="Tahoma"><span lang="fa">اگر اندازه بلوكهايداده را > برابر 32 كيلو بايت قراردهيم حداكثر اندازهجدول و حداكثرتعداد ستونها4 برابر > خواهد شد.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.6>4.6</A>) > <span lang="fa">چقدر فضاي ديسك سختبراي ذخيره كردن دادههاييك فايل متنيمورد > نياز است؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">يك پايگاه داده</span> > PostgreSQL<span lang="fa"> تا 5 برابر فضاييروي هاردديسك براينگاهداري يك فايل > متني نياز دارد.</span></font></P> > <P dir="rtl"><font face="Tahoma"><span lang="fa">به عنوان مثاليك فايل با 100000 > خط را در نظر بگيريد كهدر هر خط يك عدد صحيحو يك توضيح متني آمدهاست. فرض كنيد > كه رشته متني به طور متوسط20 بايت باشد. اندازهفايل برابر 2.8 مگابايت خواهد بود > ولي </span>PostgreSQL<span lang="fa"> براي نگاهدارياين فايل به6.4 مگا بايت > اطلاعات نياز خواهد داشت.</span></font></P> > <div dir="rtl"> > <PRE><font face="Tahoma"> 32 bytes: <span lang="fa">اندازه سرايندهر خط به طور تقريبي</span> > 24 bytes: <span lang="fa">يك عدد صحيح و يكرشته 24 بايتي</span> > + 4 bytes: <span lang="fa">اشاره گر روي صفحهبه يك چندتايي</span> > ---------------------------------------- > 60 bytes <span lang="fa">در هر رديف</span> > > <span lang="fa">اندازه صفحات دادهدر </span>PostgreSQL<span lang="fa"> برابر با8 كيلو بايت است</span> > 8192 <span lang="fa">تعداد بايتها درهر صفحه</span> > ------------------- = 136 <span lang="fa">تعداد رديفهادر يك صفحه پايگاهداده</span> > 60 <span lang="fa"> تعداد بايتهاي هررديف</span> > > 100000 <span lang="fa"> تعداد رديفها</span> > -------------------- = <span lang="fa">تعدادصفحات پايگاهداده</span> > 128 <span lang="fa">تعداد رديفها درهر صفحه</span> > > 735 <span lang="fa">تعداد صفحات</span> * 8192 <span lang="fa">تعدادبايتهاي هر صفحه</span> = 6,021,120 <span lang="fa">مگا بايت</span> > </font></PRE> > </div> > <P dir="rtl"><span lang="fa"><font face="Tahoma">سربار انديسهايا نمايههااز > اين مقدار كمتر است وليچون شامل خود دادههاهم هست </font></span> > <font face="Tahoma">م<span lang="fa">مکن است اندازهآنها هم بزرگ شود</span>.</font></P> > <p dir="rtl"><font face="Tahoma">NULL<span lang="fa">ها به صورت </span>bitmap<spanlang="fa"> > ذخيره ميشوند و از اينروفضاي بسيار كميرا اشغال ميكنند.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.7>4.7</A>) > <span lang="fa">چگونه ميتوانم بفهممكه چه كاربران،پايگاه داده،نمايه و > جداولي در سيستم تعريفشده است؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><i>psql<span lang="fa"> </span></i> > <span lang="fa">تعداد زيادي دستوردارد كه با </span>\<span lang="fa"> شروع > ميشوند و اين اطلاعاترا در اختيارما قرار ميدهند.براي ديدن آنهادستور </span> > ?\ <span lang="fa"> را اجرا كنيد. همچنينجداول سيستميكه نام آنها</span> > <span lang="fa">با > </span>pg<span lang="fa">_</span> <span lang="fa">شروع ميشودنيز اين اطلاعات > را در خود دارند. اجرايبرنامه </span>psql<span lang="fa"> باگزينه </span>l- > <span lang="fa"> نيز باعث نشان دادنليست تمام پايگاههايداده ميشود.</span></font></P> > <P dir="rtl"><font face="Tahoma"><span lang="fa">همچنين فايل</span> <I>pgsql/src/tutorial/syscat.source<span lang="fa"> > </span></I><span lang="fa">نيز فرمانهاي </span>SELECT<spanlang="fa"> كه با > استفاده از آن ميتواناطلاعات پايگاهداده را استخراجكرد شرح دادهاست.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.8>4.8</A>) > <span lang="fa">چرا درخواستهاي منكند اجرا ميشوند ياچرا از نمايه ها استفاده > نميكنند؟</span></font></H4> > <p dir="rtl"><span lang="fa"><font face="Tahoma">به طور معمول</font></span> > <font face="Tahoma"><span lang="fa">براي درخواستها > از نمايهها استفادهنميشود. > تنها در صورتي از نمايههااستفاده ميشودكه اندازه جدولاز يك اندازه حداقل > بزرگتر باشد و درخواستهم فقط قسمتياز رديفهاي جدولرا انتخاب كرده باشد.دليل > اين كار آن است كه دسترسيهايتصادفي بههاردديسك كه به خاطرنمايهها ايجادميشود > ممكن است از خواندن مستقيمجدول يا خواندنترتيبي ركوردهاكندتر باشد.</span></font></p> > <p dir="rtl"><font face="Tahoma"><span lang="fa">براي تعيين اينكهاز نمايه > استفاده شود يا خير، </span>PostgreSQL<spanlang="fa"> بايد اطلاعات آماريرا در > مورد يك جدول بداند. ايناطلاعات توسط دستور</span>ANALYZE<span lang="fa"> و > </span>VACUUM ANALYZE<span lang="fa"> به دست ميآيد.با استفاده ازاين اطلاعات، > بهينه ساز از تعداد رديفهاييك جدول اطلاعپيدا ميكند و بهترميتواند تعيينكند > كه آيا از نمايه استفادهشود يا خير. اطلاعاتآماري همچنينبراي تعيين ترتيبالحاق > و روشهاي الحاق به صورتبهينه نيز كاربرددارد. جمع آورياطلاعات آماري بايدبه صورت > دورهاي همزمان با تغييردادههاي جدولانجام شود.</span></font></p> > <P dir="rtl"><font face="Tahoma"><span lang="fa">نمايهها بهطور معمول همراه با > دستور </span>ORDER BY<span lang="fa"> به كار بردهنميشوند. براي يكجدول بزرگ يك > پيمايش ترتيبي همراهبا دستور مرتب سازياز به كار بردن نمايههاسريعتر خواهدبود.</span></font></P> > <p dir="rtl"><font face="Tahoma"><span lang="fa">اما اگر همراهبا </span>ORDER > BY<span lang="fa"> از </span>LIMIT<span lang="fa"> استفادهشود اغلب از نمايهها > استفاده ميشود چون فقطقسمتي از جدول > برگردانده ميشود. درحقيقت هر چند</span> > <span lang="fa">توابع ()</span>MIN<span lang="fa"> و </span>()MAX > <span lang="fa">از نمايهها استفادهنميكنند وليميتوانيم با استفادهاز دستور > زير با استفاده از نمايههاو دستور </span>ORDER BY<spanlang="fa"> و </span> > LIMIT<span lang="fa"> ، آنها را به دست آوريم.</span></font></p> > <div dir="ltr"> > <PRE><font face="Tahoma"> SELECT col > FROM tab > ORDER BY col [ DESC ] > LIMIT 1; > </font></PRE> > </div> > <P dir="rtl"><font face="Tahoma"><span lang="fa">اگر شما فكر ميكنيدكه بهينه > ساز سيستم در انتخاب پيمايشترتيبي اشتباهكرده است با دستور</span>'</font><CODE><font face="Tahoma">SET enable_seqscan TO 'off'</font></CODE><fontface="Tahoma"><span lang="fa"> > ميتوانيد ببينيد آيااستفاده از نمايههاباعث افزايشسرعت درخواستهاخواهد شد > يا خير.</span></font></P> > <P dir="rtl"><font face="Tahoma"><span lang="fa">استفاده از نمايههاهنگامي كه > از علائم ويژه نظير </span>LIKE<spanlang="fa"> و </span>~<span lang="fa"> > استفاده ميكنيد فقطدر بعضي شرايط خاصكه در اينجا ذكر شدهاست ممكن است:</span></font></P> > <ul dir="rtl"> > <li dir="rtl"> > <p dir="rtl"><font face="Tahoma"><span lang="fa">ابتداي رشتهجستجو بايد به > طور صريح مشخص باشد برايمثال:</span></font></li> > </ul> > <p dir="rtl"><span dir="rtl"><font face="Tahoma"><span lang="fa">- دستورات > </span>LIKE<span lang="fa"> نبايد با علامت > </span>%<span lang="fa"> شروع > شوند</span></font></span></p> > <p dir="rtl"><font face="Tahoma"><span lang="fa">- الگوهاي منظميكه با > </span>~<span lang="fa"> ميآيد حتماً بايدبا علامت > </span>^<span lang="fa"> شروع > شود</span></font></p> > <ul dir="rtl"> > <li dir="rtl"> > <p dir="rtl"><font face="Tahoma"><span lang="fa">رشته جستجو نبايدبا يك > مجموعه از كاراكترها مثل </span>[a-e]<span lang="fa">شروع شود</span></font></li> > <li dir="rtl"> > <p dir="rtl"><font face="Tahoma"><span lang="fa">جستجوهاي غيرحساسبه متن مثل > </span>ILIKE<span lang="fa"> و </span>*~<span lang="fa"> از نمايهها > استفاده نميكنند. درعوض از توابع نمايهايكه در قسمت </span> > <A > href="#4.12">4.12</A><span lang="fa"> > توضيح داده شد استفادهميكنند.</span></font></li> > <li dir="rtl"> > <p dir="rtl"><font face="Tahoma"><span lang="fa">مقدار پيش فرض</span>locale<span lang="fa"> > بايد در </span>initdb<span lang="fa"> استفادهشود.</span></font></li> > </ul> > <H4 dir="rtl"><font face="Tahoma"><A name=4.9>4.9</A>) > <span lang="fa">چگونه ميتوانم نحوهبررسي درخواست راتوسط بهينهساز درخواستها > مشاهده كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">راهنماي دستور</span>EXPLAIN<span lang="fa"> > را نگاه كنيد.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.10>4.10</A>) > <span lang="fa">نمايه </span>R-tree<span lang="fa"> چيست؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">از نمايه </span>R-Tree > <span lang="fa"> براي انديس كردن دادههايفاصلهاي استفادهميشود. يك نمايه > </span>hash<span lang="fa"> نميتواند جستجوهايمحدودهاي راانجام دهد. نمايه</span> > "B-tree"<span lang="fa"> نيز براي انجامجستجوي محدودهايدر يك جهت قابلاستفاده > است. اما </span>R-Tree<span lang="fa"> ميتوانددادههاي چندبعدي را نيز > پشتيباني كند. براي مثالاگر از نمايه </span>R-tree<span lang="fa">براي > گونه </span>Point<span lang="fa"> استفاده شودسرعت درخواستهايينظير "</span>select > all points within a bounding rectangle<span lang="fa">" به مراتب افزايشمييابد.</span></font></p> > <P dir="rtl"><font face="Tahoma"><span lang="fa">مقالهاي كهطراحي </span>R-tree<span lang="fa"> > را توضيح داده است </span></font></P> > <P><font face="Tahoma">Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching." > Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.</font></P> > <P dir="rtl"><font face="Tahoma">R-tree<span lang="fa"> ميتواندچندضلعيها و > چند وجهي را پشتيبانيكند. در تئوري،</span>R-tree<span lang="fa"> ميتواندتعداد بعدهاي بالاتري > را نيز پشتيباني كند.در عمل توسعه </span>R-tree<spanlang="fa"> > نياز به كار بيشتري دارد.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.11>4.11</A>) > <span lang="fa">بهينه ساز تكويني درخواستچيست؟</span> (Genetic Query Optimizer)</font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">استفاده از </span>GEQO<spanlang="fa"> > سرعت بهينه سازي درخواسترا هنگاميكهتعداد زياديجدول را با استفادهاز الگوريتم > ژنتيك الحاق ميكنيمافزايش ميدهد.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.12>4.12</A>) > <span lang="fa">چگونه از عبارات منظمبراي جستجو استفادهكنم؟ چگونه جستجوييانجام > دهم كه حساس به متن نباشد؟چگونه براي يكجستجوي غير حساس بهمتن از نمايه استفاده > كنم؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">براي جستجويعبارت منظم ازعملگر > </span>~<span lang="fa"> استفاده ميكنيم.براي جستجويغير حساس به متناز عملگر > </span>*~ <span lang="fa">و يا </span>ILIKE<span lang="fa"> استفادهميكنيم.</span></font></P> > <p dir="rtl"><span lang="fa"><font face="Tahoma">روش ديگر انجامجستجوي غير حساس > به متن در زير نشان دادهشده است.</font></span></p> > <PRE><font face="Tahoma"> SELECT * > FROM tab > WHERE lower(col) = 'abc'; > </font></PRE> > <p dir="rtl"><span lang="fa"><font face="Tahoma">اين از نمايههاي استاندارد > استفاده نميكند. وليشما مي توانيد با دستورزير يك نمايه ايجادكنيد و از آن > استفاده كنيد.</font></span></p> > <PRE><font face="Tahoma"> CREATE INDEX tabindex ON tab (lower(col)); > </font></PRE> > <H4 dir="rtl"><font face="Tahoma"><A name=4.13>4.13</A>) <span lang="fa">چگونه ميتوانمدر يك درخواستتشخيص دهم كهيك فيلد </span>NULL<span lang="fa"> > است؟</span></font></H4> > <p dir="rtl"><font face="Tahoma"><span lang="fa">با استفاده ازتوابع </span>IS > NULL<span lang="fa"> و </span>IS NOT NULL<span lang="fa"> ميتوانيم</span>NULL<span lang="fa"> > بودن يك فيلد را تست كنيم.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.14>4.14</A>) > <span lang="fa">تفاوت بين گونههايمختلف </span>character<span lang="fa">چيست؟</span></font></H4> > <PRE><font face="Tahoma">Type Internal Name Notes > -------------------------------------------------- > VARCHAR(n) varchar <span lang="fa">اندازه، حداكثرطول را نشان ميدهد بدون اضافه شدنكاراكتر اضافه</span> > CHAR(n) <span lang="fa"> </span> bpchar <span lang="fa">كاراكترهايبلانك برايپر شدن طول مشخص شدهاستفاده ميشود</span> > TEXT <span lang="fa"> </span>text <span lang="fa"> </span>ح<span lang="fa">داكثرطول را مشخص نميكند</span> > BYTEA <span lang="fa"> </span> bytea <span lang="fa">آرايهاياز بايت باطول متغير</span> > "char" <span lang="fa"> </span>char <span lang="fa">يك كاراكتر</span> > </font></PRE> > <p dir="rtl"><font face="Tahoma"><span lang="fa">نام داخلي گونههارا در </span> > system catalogue <span lang="fa">و بعضي از پيغامهايخطا ميتوانديد.</span></font></p> > <p dir="rtl"><font face="Tahoma"><span lang="fa">چهار گونه اولهمگي از نوع > </span>varlena <span lang="fa">هستند (4 بايت اولروي ديسك طول را مشخصميكند كه > به دنبال آن دادهها قرار دارند.)بنابراين فضايواقعي استفاده شدهروي ديسك از > اندازه تعريف شده بيشتراست. اما اين گونههارا ميتوان فشردهكرد كه اينكار باعث > ميشود فضاي كمتري رويديسك اشغال كنند.</span></font></p> > <P dir="rtl"><font face="Tahoma"><span lang="fa">براي ذخيره رشتههايبا طول > متغير</span><font size="2">(</font><SMALL>VARCHAR(n<span lang="fa"> > <font size="3">بهترين انتخاب است.در اين گونه حداكثرطول رشته محدوداست بر خلاف > </font></span><font size="3">text<span lang="fa"> كه هيچ محدوديتيروي حداكثر > اندازه رشته نميگذارد.(دراين گونهحداكثر طول يك رشتهيك گيگا بايت خواهدبود)</span></font></SMALL></font></P> > <p dir="rtl"><span lang="fa"><font face="Tahoma">گونه <font size="2">(</font></font></span><fontface="Tahoma">CHAR(n<span lang="fa"> > <font size="3"> براي ذخيره دادههايبا طول يكساناست.يك > گونه</font>ي</span><font size="3"> </font> > <font size="2"><span lang="fa">(</span></font>CHAR(n <span lang="fa"> > <font size="3">با كاراكترهاي بلانك(خالي) پر ميشودتا به طول مشخصشده برسد در > حاليكه گونه </font></span><font size="3">VARCHAR</font><fontsize="3"><span lang="fa"> > كاراكترها را به همانصورت كه هستند ذخيرهميكند. گونه </span>BYTEA<spanlang="fa"> > براي ذخيره دادههايباينري استبه خصوص دادههايباينري كه شاملبايتهاي </span> > NULL<span lang="fa"> هستند. از نظر كاراييتمام اين گونههايكسان هستند.</span></font></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.15.1>4.15.1</A>) > <span lang="fa">چگونه ميتوانم يكفيلد سريال يا افزايشيايجاد كنم؟</span></font></H4> > <p dir="rtl"><font face="Tahoma">PostgreSQL<span lang="fa"> از دادههايسريال > پشتيباني ميكند. برايايجاد يك فيلد سريال(براي داشتن يك فيلدمنحصر به فرد براي > هر رديف )به روش زير عملكنيد:</span></font></p> > <PRE><font face="Tahoma"> CREATE TABLE person ( > id SERIAL, > name TEXT > ); > </font></PRE> > <p dir="rtl"><span lang="fa"><font face="Tahoma">دستور بالا بهطور اتوماتيک به > دستور زير تبديل ميشود:</font></span></p> > <PRE><font face="Tahoma"> CREATE SEQUENCE person_id_seq; > CREATE TABLE person ( > id INT4 NOT NULL DEFAULT nextval('person_id_seq'), > name TEXT > ); > </font></PRE> > <p dir="rtl"><font face="Tahoma"><span lang="fa">براي ديدن اطلاعاتبيشتر به > راهنماي دستور </span> <I>create_sequence</I> <spanlang="fa"> مراجعه كنيد. > همچنين ميتوان از </span>OID<spanlang="fa">هر رديف به عنوانيك مقدار منحصربه > فرد استفاده كرد. اما دراين حالت براي </span>dump<span lang="fa">كردن و </span> > reload<span lang="fa">كردن پايگاه دادهبايد دستور </span><i>pg_dumps</i><spanlang="fa"><i></i> > را با گزينه </span>o-<span lang="fa"> اجراكنيد.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.15.2>4.15.2</A>) <span lang="fa">چگونه ميتوانممقدار يك درجسريالي را بدانم؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">يك روش براي گرفتنمقدار بعدي يك > فيلد سريال استفاده ازتابع </span><i>()nextval</i><span lang="fa"> است.</span> > <span lang="fa">در شبه كُدي كه در ادامهآمده است روش انجاماين كار نشان دادهشده > است:</span></font></P> > <PRE><font face="Tahoma"> new_id = execute("SELECT nextval('person_id_seq')"); > execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); > </font></PRE> > <p dir="rtl"><font face="Tahoma"><span lang="fa">با اجراي دستورفوق مقدار جديدرا > در متغير </span>new_id<span lang="fa"> نيز خواهيدداشتكه ميتوانيدآن را در بقيه > درخواستها نيز استفادهكنيد. توجه داشتهباشيد كه نام </span>SEQUENCE<spanlang="fa">يي > كه به طور اتوماتيك ايجادشده است به صورت</span><i>table</i>_<I>serialcolumn</I>_<I>seq<span lang="fa"> > </span></I><span lang="fa">خواهد بود</span>. <span lang="fa">كهدر آن </span> > table<span lang="fa"> نام جدول و </span>serialcolumn<span lang="fa">نام فيلد > سريال جدول ميباشد.</span></font></p> > <P dir="rtl"><font face="Tahoma"><span lang="fa">براي ديدن مقدارنسبت داده شده > به فيلد سريال نيز ميتواناز تابع <i>()</i></span> <I>currval</I> > <span lang="fa">به صورت زير استفادهكرد. </span></font></P> > <PRE><font face="Tahoma"> execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); > new_id = execute("SELECT currval('person_id_seq')"); > </font></PRE> > <p dir="rtl"><font face="Tahoma"><span lang="fa">و سرانجام شماميتوانيد از > مقدار </span>OID<span lang="fa"> كه خروجي دستور</span>INSERT <span lang="fa"> است > براي ديدن مقدار پيش فرضاستفاده كنيد. هر چنداين روش در همه پلتفرمهاقابل > استفاده نيست و ضمن اينكهفيلد </span>oid<span lang="fa"> بعد ازعدد 4 ميليارد > دوباره صفر ميشود. درزبان </span>perl<span lang="fa"> با استفادهاز </span>DBI<span lang="fa"> > و </span>DBD::Pg<span lang="fa"> مقدار </span>oid<span lang="fa">راميتوانيد > به اين شكل استخراج كنيد:</span><span lang="fa">بعد از اجراي()</span>st->execute<span lang="fa">$ > مقدار </span>oid<span lang="fa"> در متغير</span> <I>sth->pg_oid_status<span lang="fa">$</span></I><span lang="fa"> > ذخيره خواهد شد.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.15.3>4.15.3</A>) <span lang="fa">آیا > توابع ()</span>nextval<span lang="fa"> و ()</span>currval<span lang="fa"> منجر > به ایجاد شرایط </span>race<span lang="fa"> برایسایر کاربران میشوند؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">خیر، استفادهاز این توابعشرایط > </span>race<span lang="fa"> را به وجود نمی آورد.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.15.4>4.15.4</A>)</font><font face="Tahoma"><span lang="fa"> > چرا اعداد سریالی مربوطبه تراکنشهای </span>abort<spanlang="fa"> شده مجدداً > استفاده نمی شود؟ چرابین اعداد سریالییک فاصله خالیایجاد می شود؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">برای بالا بردنامکان اجرای > همزمان تراکنشها، اعدادسریالی به محض اجرایتراکنش به آنهاتخصیص می یابد دراین > حالت اگر بعضی از تراکنشها</span>abort<span lang="fa"> شوند بیناعداد سریالی > استفاده شده یک فاصلهخالی به وجود میآید.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.16>4.16</A>) OID<span lang="fa"> و </span>TID<span lang="fa"> چههستند؟</span></font></H4> > <P dir="rtl"><font face="Tahoma">OID<span lang="fa"> راه حل </span>PostgreSQL<span lang="fa"> > برای داشتن یک شناسه منحصربه فرد برای هر ردیفاست. هر ردیف جدیدیکه ایجاد می شود > یک </span>OID<span lang="fa"> منحصر به فرد بهآن اختصاص می یابد. تمام</span>OID<span lang="fa">هایی > که در حین </span>initdb<span lang="fa"> ایجاد میشوند از 16384 کمتر هستندو > </span>OID<span lang="fa">هایی بعداً تولیدمی شود از این عددبزرگتر خواهد بود. > نکته مهم آن است که </span>OID<spanlang="fa">ها نه تنها در یک جدولشبیه نیستند > بلکه در کل پایگاه دادههیچ دو ردیفی دارای</span>OID<span lang="fa"> یکسان > نخواهد بود.</span></font></P> > <P dir="rtl"><font face="Tahoma">PostgreSQL<span lang="fa"> از </span>OID<span lang="fa"> > در سیستم داخلی خود برایایجاد ارتباط بینردیفهای جداول مختلفاستفاده می کند. > توصیه می شود که یک ستوناز نوع </span>OID<span lang="fa"> برایذخیره این فیلد در > جدول ایجاد کنید. ساختنیک نمایه برای اینفیلد باعث دسترسیسریعتر به آن خواهدشد.</span></font></P> > <P dir="rtl"><font face="Tahoma"><span lang="fa">تمام پایگاههایداده در </span> > PostgreSQL<span lang="fa"> برای گرفتن </span>OID<span lang="fa">جدید از یک > ناحیه مرکزی استفادهمی کند. ولی اگربخواهیم </span>OID<span lang="fa"> را بهروش > دیگری بگیریم و یا اینکهدر حین کپی کردنیک جدول بخواهیم</span>OID<span lang="fa">های > اصلی آن تغییر نکند بهروش زیر می توانیم عملکنیم:</span></font></P> > <P dir="rtl"> </P> > <div dir="ltr"> > <PRE><font face="Tahoma"> CREATE TABLE new_table(mycol int); > SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table; > COPY tmp_table TO '/tmp/pgtable'; > COPY new_table WITH OIDS FROM '/tmp/pgtable'; > DROP TABLE tmp_table; > </font></PRE> > </div> > <P dir="rtl"><font face="Tahoma">OID<span lang="fa"> یک عدد صحیح4 بایتی است و > بنابراین حداکثر مقدارآن 4 میلیارد خواهدبود و بعد از آن مقدارآن سرریز خواهد > شد. البته تا کنون برای کسی این اتفاق نیفتادهاست و تصمیم > گرداندگان </span>PostgreSQL<span lang="fa"> آن استکه قبل از آنکه ایناتفاق رخ > دهد این مشکل را برطرفکنند.</span></font></P> > <P dir="rtl"><font face="Tahoma">TID<span lang="fa">ها برای شناساییمحل فیزیکی > یک ردیف بر اساس بلوک وآفست می باشد. </span>TID<span lang="fa">هابعد از تغییر > پیدا کردن یک ردیف و یا بازخوانی آن عوض می شوند. </span>TID<span lang="fa">ها > توسط نمایه ها استفادهمی شوند.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.17>4.17</A>) > <span lang="fa">معني بعضي از ترمهاو كلماتي كه در </span>PostgreSQL<spanlang="fa"> > استفاده ميشود چيست؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">لیست برخی ازترمها و کلماتی که > استفاده می شوند:</span></font></P> > <UL> > <LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">table, relation, class <span lang="fa"> > :کلاس، رابطه، جدول</span></font><LIdir="ltr"> > <p dir="ltr"><font face="Tahoma">row, record, tuple <span lang="fa">چندتایی، > رکورد، ردیف</span></font><LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">column, field, attribute <span lang="fa"> > صفت، فیلد، ستون</span></font><LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">retrieve, select <span lang="fa">انتخاب، > خواندن</span></font><LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">replace, update<span lang="fa">به روز کردن، > جایگزینی</span> > </font> > <LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">append, insert <span lang="fa">درج، اضافه > کردن</span></font><LI dir="ltr"> > <p dir="ltr"><font face="Tahoma"><SMALL>OID</SMALL>, serial value > <span lang="fa">مقدار سریال</span></font><LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">portal, cursor > </font> > <LI dir="ltr"> > <p dir="ltr"><font face="Tahoma">range variable, table name, table alias > </font> </LI></UL> > <P dir="rtl"><font face="Tahoma"><span lang="fa">یک لیست عمومیاز ترمهای مورد > استفاده در پایگاه دادهدر آدرس </span> <A > href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html"> > http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.htm</A> > <span lang="fa">وجود دارد.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.18>4.18</A>) <span lang="fa"> > چرا من خطاي </span><i>"ERROR: Memory exhausted in AllocSetAlloc"</i><spanlang="fa"> > ميگيرم؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">این خطا احتمالاًیا به خاطر > تمام شدن حافظه مجازیسیستم شماست و یااینکه کرنل برای برنامهها در مورد میزان > استفاده از حافظه مجازیمحدودیت اعمالکرده است. قبل ازاجرای برنامه اصلییکی از > دستورات زیر را اجرا کنید.</span></font></P> > <div dir="ltr"> > <PRE><font face="Tahoma"> ulimit -d 262144 > limit datasize 256m > </font></PRE></div> > <p dir="rtl"><font face="Tahoma"><span lang="fa">بسته به نوع شلیکی از این > دستورات ممکن است با موفقیتاجرا شود. با اجرایآن دستور محدودیتحافظه مجازیبرای > برنامه ها برداشته شدهو با این کار احتمالاًدرخواستی کهقبلاً خطا می داده است > اجرا خواهد شد.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.19>4.19</A>) <span lang="fa">از كجا > تشخيص دهم كه ويرايش يانسخه </span>PostgreSQL<span lang="fa">يي > كه من استفاده ميكنمچيست؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">با اجرای دستور</span> > <span lang="fa">()</span>SELECT version</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.20>4.20</A>) <span lang="fa">چرا > حین اجرای عملیات روی</span>large-object<span lang="fa">ها خطای </span>"<I>invalid > large obj descriptor</I>"<span lang="fa">به وجود می آید؟</span></font></H4> > <p align="right" dir="rtl"><font face="Tahoma"><span lang="fa">شما باید قبلاز > شروع دستوراتی که با </span>large-object<spanlang="fa">ها کار می کنند </span>BEGIN<spanlang="fa"> و بعد از آنها همیک </span>END<span lang="fa"> > بگذارید. در حال حاضر </span>PostgreSQL<spanlang="fa"> هندل </span>large-object<span lang="fa">ها > را در زمان نهایی شدن تراکنش(</span>commit<span lang="fa">شدن)</span> > <span lang="fa">می بندد. به همین دلیلاولین تلاش برایانجام هر کاری باهندل منجر > به خطای </span><i>invalid large obj descriptor</i><span lang="fa"> خواهدشد.</span> > <span lang="fa">برای جلوگیری از اینخطا حتماً باید ازیک تراکنش استفادهکنید. > این کار همانطور که قبلاًگفته شد با استفادهاز قرار دادن</span>BEGIN<span lang="fa"> > و </span>END<span lang="fa"> در ابتدا و انتهایدستورات انجاممی شود.</span></font></p> > <p dir="rtl"><font face="Tahoma"><span lang="fa">اگر این خطا رادر حین استفاده > از یک درایور </span>ODBC<span lang="fa"> دریافتکردید احتمالاًباید این دستوررا > اجرا کنید: </span>set </font> <CODE><font face="Tahoma">auto-commit off</font></CODE></p> > <H4 dir="rtl"><font face="Tahoma"><A name=4.21>4.21</A>) > <span lang="fa">چگونه يك ستون ايجادكنم كه مقدار زمانجاري را به عنوانمقدار > پيشفرض داشته باشد؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">از</span> <I>CURRENT_TIMESTAMP > <span lang="fa"> </span></I><span lang="fa">استفاده کنیددر مثال زیر نحوه > انجام این کار نشان دادهشده است:</span></font></P> > <div dir="ltr"> > <PRE><CODE><font face="Tahoma">CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); > </font></CODE><font face="Tahoma"> > </font></PRE> > </div> > <H4 dir="rtl"><font face="Tahoma"><A name=4.22>4.22</A>) > <span lang="fa">چرا "زير درخواستهايي"كه از </span>IN<spanlang="fa"> استفاده > ميكنند كند هستند؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">در نسخه های قبلاز 7.4 عمل > الحاق زیر درخواست و درخواستاصلی به این صورتانجام می شود که نتایجبه دست آمده > از زیر درخواست به صورتترتیبی برای هر ردیفاعمال می شود. اگرزیردرخواست ردیفهای > کمی را به عنوان خروجیبرگرداند و درخواستبیرونی ردیفهای زیادی را شاملشود > استفاده از </span>IN<span lang="fa"> بهترینروش است در غیراینصورت بهتر استاز > </span>EXISTS<span lang="fa"> استفاده شود</span></font></P> > <div dir="ltr"> > <PRE><font face="Tahoma"> SELECT * > FROM tab > WHERE col IN (SELECT subcol FROM subtab); > </font></PRE></div> > <p dir="rtl"><span lang="fa"><font face="Tahoma">به:</font></span></p> > <div dir="ltr"> > <PRE><font face="Tahoma"> SELECT * > FROM tab > WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); > </font></PRE></div> > <p dir="rtl"><font face="Tahoma"><span lang="fa">برای اجرای سریعاین درخواست > باید برای ستون </span>subcol<span lang="fa"> نمایهایجاد شده باشد.</span></font></p> > <P dir="rtl"><font face="Tahoma"><span lang="fa">در نسخه های بعداز 7.4 </span> > IN<span lang="fa"> برای الحاق از همانتکنیک پیچیده مورداستفاده در دستورات > معمولی استفاده می کندو بنابراین استفادهاز آن نسبت به</span>EXISTS<span lang="fa"> > ارجحیت دارد.</span></font><H4 dir="rtl"><font face="Tahoma"><Aname=4.23>4.23</A>) <span lang="fa">چگونه ميتوانميك الحاق خارجي(</span>outer join<span lang="fa">) > انجام دهم؟</span></font></H4> > <p dir="rtl"><span lang="fa"><font face="Tahoma">برای انجام الحاقخارجی به روش > زیر عمل کنید:</font></span></p> > <div dir="ltr"> > <PRE><font face="Tahoma"> SELECT * > FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); > </font></PRE></div> > <p dir="rtl"><span lang="fa"><font face="Tahoma">یا</font></span></p> > <div dir="ltr"> > <PRE><font face="Tahoma"> SELECT * > FROM t1 LEFT OUTER JOIN t2 USING (col); > </font></PRE> > </div> > <P dir="rtl"><font face="Tahoma"><span lang="fa">درخواستهایبالا </span>t1.col, > t2.col<span lang="fa"> را به هم الحاق میکند و همچنین ردیفهای</span>t1<span lang="fa"> > که نظیر آنها در </span>t2<span lang="fa"> نبودهاست را نیز برمیگرداند. اگر از > </span>RIGHT<span lang="fa"> استفاده شود نتیجهبر عکس است. یعنیردیفهای </span> > t2<span lang="fa"> که نظیر آنها در </span>t1 <spanlang="fa">نباشد را نشان می > دهد و اگر از </span>FULL<span lang="fa"> استفادهشود نتیجه همشامل ردیفهای > </span>t1<span lang="fa"> است و هم شامل ردیفهای</span>t2<span lang="fa">. > استفاده از کلمه </span>OUTER<span lang="fa">اختیاری است چرا که اینکلمه به طور > ضمنی در دستورهای </span>LEFT, RIGHT,FULL<span lang="fa"> وجود دارد.</span></font></P> > <P dir="rtl"><font face="Tahoma"><span lang="fa">در نسخه های قبلیپایگاه داده می > توانیم الحاق خارجی رابه کمک دستورهای </span>UNION,NOT IN<span lang="fa"> شبیه > سازی کنیم. این کار در مثالزیر نشان داده شدهاست:</span><BR></font></P> > <div dir="ltr"> > <PRE><font face="Tahoma"> SELECT tab1.col1, tab2.col2 > FROM tab1, tab2 > WHERE tab1.col1 = tab2.col1 > UNION ALL > SELECT tab1.col1, NULL > FROM tab1 > WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) > ORDER BY col1 > </font></PRE> > </div> > <H4 dir="rtl"><font face="Tahoma"><A name=4.24>4.24</A>) > <span lang="fa">چگونه ميتوان درخواستهايياز چند پايگاهداده توليد كرد؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">در حال حاضر اینکار امکان پذیر > نیست. </span>PostgreSQL<span lang="fa"> فقط امکاندرخواست از پایگاهداده ای را > می دهد که در حال حاضر بهآن متصل باشید و نمیتوانبه طور همزماناز دو پایگاه > داده استفاده کرد. البتهیک برنامه کاربردیخود می تواندبه طور همزمان دو > پایگاه داده را مورد استفادهقرار داده و نتایجرا با هم ترکیب کندولی نمی تواند > در یک درخواست به هر دوپایگاه داده رجوع کند.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.25>4.25</A>) > <span lang="fa">چگونه خروجي يك تابعميتواند چند رديفيا ستون باشد؟</span></font></H4> > <P dir="rtl"><span lang="fa"><font face="Tahoma">در نسخه 7.3 خروجییک تابع می > تواند چند ردیف یا چندستون باشد. برای دیدن اطلاعات بیشتر بهسایت زیر > مراجعه کنید:</font></span><font face="Tahoma"><A > href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A><span lang="fa"> > </span> </font><H4 dir="rtl"><font face="Tahoma"><A name=4.26>4.26</A>) > <span lang="fa">در توابع </span>PL/PgSQL<span lang="fa"> چرانميتوان با اطمينان > جداول موقت را ايجاد ياحذف كرد؟</span></font></H4> > <P dir="rtl"><font face="Tahoma">PL/PgSQL<span lang="fa"> محتوای توابعرا ذخیره > (</span>cache<span lang="fa">) می کند.</span> <span lang="fa">یک اثربد جانبی > این کار آن است که اگر درتابع از یک جدول موقتاستفاده شود و بعداًآن جدول حذف و > یک جدول جدید به جای آنایجاد شود، در فراخوانیمجدد آن تابع،محتوای ذخیره > شده تابع هنوز به جدولقدیمی اشاره می کندو بنابراین اجرایتابع با اشکال > مواجه می شود. راه حل اینمشکل آن است که برایجداول موقت از دستور</span>EXECUTE<span lang="fa"> > استفاده شود که این کارسبب می شود که درخواستبرای هر بار اجرامجدداً پیمایش و > تفسیر شود.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.27>4.27</A>) > <span lang="fa">چه گزينههايي برايتكرار (</span>replication<span lang="fa">)</span> > <span lang="fa">وجود دارد؟</span> > </font> </H4> > <P dir="rtl"><font face="Tahoma">There are several master/slave replication options available. These allow > only the master to make database changes and the slave can only do database > reads. The bottom of <A > href="http://gborg.postgresql.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> > lists them. A multi-master replication solution is being worked on at <A > href="http://gborg.postgresql.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.</font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=4.28>4.28</A>) > <span lang="fa">چه گزينههايي برايرمزنگاري وجود دارد؟</span> > </font> </H4> > <UL> > <LI dir="rtl"> > <p dir="rtl"><font face="Tahoma">contrib<I>/pgcrypto </I><span lang="fa"> > شامل توابع رمزنگاریزیادی است کهمی توان از آنها در دستورات</span>SQL<span lang="fa"> > استفاده کرد.</span></font><LI dir="rtl"> > <p dir="rtl"><font face="Tahoma"><span lang="fa">برای رمز کردنارتباط بین > </span>client<span lang="fa"> و </span>server<span lang="fa"> پایگاهداده > حتماً گزینه </span>SSL<span lang="fa"> را برروی پایگاه داده فعالکنیم.</span></font><LI dir="rtl"> > <p dir="rtl"><font face="Tahoma"><span lang="fa">در نسخه 7.3 به بعدکلمات > عبور کاربران به طوراتوماتیک به صورترمز شده ذخیره میشود ولی در نسخه های > قبلی باید گزینه </span> > <I>PASSWORD_ENCRYPTION</I> <span lang="fa">را در فایل</span><I>postgresql.conf</I> > <span lang="fa">فعال کنیم. </span> > </font> > <LI dir="rtl"> > <p dir="rtl"><span lang="fa"><font face="Tahoma">می توان پایگاههایداده را > روی یک فایل سیستم رمزشدهنگاهداری کرد</font></span></LI></UL> > <HR dir="rtl"> > > <H2 align=center dir="rtl"><font face="Tahoma">Extending PostgreSQL</font></H2> > <H4 dir="rtl"><font face="Tahoma"><A name=5.1>5.1</A>) > <span lang="fa">من يك تابع نوشتهام.چگونه آن رادر </span>psql<span lang="fa"> > اجرا كنم؟ چرا با اجرايآن </span>core dump<span lang="fa"> ميگيرم؟</span></font></H4> > <p dir="rtl"><span lang="fa"><font face="Tahoma">دلایل مختلفیمی تواند باعثبروز > این مشکل شود. اما قبل ازهمه، تابع خود را بهصورت جدا تست کنید.</font></span></p> > <H4 dir="rtl"><font face="Tahoma"><A name=5.2>5.2</A>) <span lang="fa">چگونه ميتوانمدر توليد نوعهاو توابع جديد وجالب براي > </span>PostgreSQL<span lang="fa"> همكاري و مشاركتداشته باشم</span></font><spanlang="fa"><font face="Tahoma">؟</font></span></H4> > <p dir="rtl"><span lang="fa"><font face="Tahoma">کد خود را به گروهپستی </font> > </span><font face="Tahoma"> <I>pgsql-hackers<span lang="fa"> </span></I> > <span lang="fa"> ارسال کنید.</span></font></p> > <H4 dir="rtl"><font face="Tahoma"><A name=5.3>5.3</A>) > <span lang="fa">چگونه ميتوانم يكتابع به زبان </span>C<span lang="fa"> بنويسم > كه خروجي آن يك</span> <span lang="fa"></span>tuple<spanlang="fa"> </span> <span lang="fa">(چند > تايي) باشد؟</span></font></H4> > <P dir="rtl"><font face="Tahoma"><span lang="fa">در نسخه های 7.3به بعد یک تابع > می تواند یک جدول را بهعنوان خروجی برگرداند.این ویژگی درتوابعی که به زبانهای > </span>C<span lang="fa"> و </span>PL/PgSQL<span lang="fa"> نوشته میشوندبه طور > کامل وجود دارد. راهنمابرنامه نویسانرا مطالعه کنید.یک مثال از نحوه برگرداندن > یک جدول به عنوان خروجیدر </span><i>contrib/tablefunc</i><span lang="fa"> آمده > است.</span></font></P> > <H4 dir="rtl"><font face="Tahoma"><A name=5.4>5.4</A>) > <span lang="fa">من يك فايل منبع راعوض كرده ام چرا در عملياتكامپيل مجدد آن، > تغيير ديده نميشود؟</span></font></H4> > <P dir="rtl"><font face="Tahoma">Makefile<span lang="fa"> برای فایلهای</span> > include<span lang="fa"> شده وابستگیها رابه درستی نشان نمی دهد.برای اطمینان از > اینکه فایلی که عوض کردهاید حتماً دوبارهکامپیل میشوددستور </span>make clean<span lang="fa"> > را اجرا کنید. اگر از کامپیلر</span>gcc<span lang="fa"> استفادهمی کنید می > توانید از گزینه </span>enable-depend--<spanlang="fa"> در موقع اجرای برنامه > </span>configure<span lang="fa"> استفاده کنید اینگزینه باعث می شودکه وابستگیها > به طور اتوماتیک تولیدشود.</span></font></P></BODY></HTML> > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
pgsql-patches by date: