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: