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:

Previous
From: Alvaro Herrera
Date:
Subject: Re: plperl features
Next
From: Sergej Sergeev
Date:
Subject: Re: plperl features