diff options
author | Bruce Momjian | 2004-07-29 16:30:32 +0000 |
---|---|---|
committer | Bruce Momjian | 2004-07-29 16:30:32 +0000 |
commit | a3b9a02716fd775c8635bc89b19eb52ab5cd2de1 (patch) | |
tree | 2f1270619df298f72ade7bc3c5f4059ba0078421 /doc/FAQ_turkish | |
parent | e57243ea7e4a93ef80546ff79f9499028199fdff (diff) |
Update Turkish FAQ.
Devrim GUNDUZ
Diffstat (limited to 'doc/FAQ_turkish')
-rw-r--r-- | doc/FAQ_turkish | 1741 |
1 files changed, 808 insertions, 933 deletions
diff --git a/doc/FAQ_turkish b/doc/FAQ_turkish index 494ee468457..242d7d9b5d9 100644 --- a/doc/FAQ_turkish +++ b/doc/FAQ_turkish @@ -1,678 +1,575 @@ - PostgreSQL i�in S�k�a Sorulan Sorular (SSS) - - Son g�ncelleme : 23 �ubat 2004 Pazartesi - 13:34:26 - - Bruce Momjian (pgman@candle.pha.pa.us) - �eviren : Devrim G�ND�Z (devrim@gunduz.org), Nicolai Tufar (ntufar@yahoo.com), Volkan YAZICI (vyazici@phreaker.net) - - Bu belgenin en g�ncel hali, http://www.gunduz.org/seminer/pg/FAQ_turkish.html ve - http://www.PostgreSQL.org/docs/faq-turkish.html - adreslerinde gor�lebilir. - - Platforma �zel sorular�n�z, - http://www.PostgreSQL.org/users-lounge/docs/faq.html adresinde yan�tlan�r. - _________________________________________________________________ - - Genel Sorular - - 1.1) PostgreSQL nedir? Nas�l okunur? - 1.2) PostgreSQL' in haklar� nedir? - 1.3) PostgreSQL, hangi Unix platformlar�nda �al�s�r? - 1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? - 1.5) PostgreSQL'i nereden indirebilirim? - 1.6) Deste�i nereden alabilirim? - 1.7) En son s�r�m� nedir? - 1.8) Hangi belgelere ulasabilirim? - 1.9) Bilinen hatalar ya da eksik �zelliklere nereden ulasabilirim? - 1.10) Nas�l SQL �grenebilirim? - 1.11) PostgreSQL 2000 y�l�na uyumlu mudur? - 1.12) Geli�tirme tak�m�na nas�l kat�labilirim? - 1.13) Bir hata raporunu nas�l g�nderebilirim? - 1.14) PostgreSQL, diger DBMS'lerle nas�l kar��la�t�r�labilir? - 1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? - - Kullan�c�/istemci Sorular� - - 2.1) PostgreSQL icin ODBC s�r�c�leri var m�? - 2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar bulunmaktad�r? - 2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? - Report generator var m�d�r? G�m�l� sorgu dili arabirimi var m�d�r? - 2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? - - Y�netimsel Sorular - - - 3.1) PostgreSQL'i, /usr/local/pgsql dizininden ba�ka dizinlere nas�l kurabilirim? - 3.2) Postmaster'i baslatt�g�mda, Bad System Call ya da core dumped mesaj� - al�yorum. Neden? - 3.3) Postmaster'i ba�latt���mda, IpcMemoryCreate hatas� al�yorum. Neden? - 3.4) Postmaster'i ba�latt���mda, IpcSemaphoreCreate hatas� al�yorum. Neden? - 3.5) Di�er bilgisayarlar�n benim PostgreSQL veritaban� sunucuma ba�lant�lar�n� nas�l - kontrol edebilirim? - 3.6) Veritaban� motorunu daha iyi ba�ar�m icin nas�l ayarlayabilirim? - 3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? - 3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� al�yorum? - 3.9) pgsql_tmp dizininin i�indeki dosyalar nelerdir? - 3.10) PostgreSQL s�r�mlerini y�kselmek i�in neden bir dump/reload i�lemi ger�ekle�tirmek - zorunday�m? - - ��letimsel Sorular - - 4.1) Binary cursor ve normal cursor aras�ndaki fark nedir? - 4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? - 4.3) psql'in i�inde g�rd���m tablolar�n ya da di�er �eylerin listesini nas�l alabilirim? - 4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? - 4.5) Bir sat�r, tablo ve veritaban� icin en fazla b�y�kl�k nedir? - 4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� gereklidir? - 4.7) Veritaban�nda hangi tablo ya da indexlerin tan�mland�g�n� nas�l g�rebilirim? - 4.8) Sorgular�m cok yava�, ya da indexlerimi kullanm�yorlar. Neden? - 4.9) Query-optimizer in sorgular�m� nas�l de�erlendirdigini, i�leme soktu�unu nas�l g�rebilirim? - 4.10) R-tree index nedir? - 4.11) Genetic Query Optimizer nedir? - 4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe duyars�z aramalar� nas�l yapabilirim? - Bu b�y�k(k���k harfe duyarl� aramalar i�in indeksi nas�l kullanabilirim? - - 4.13) Bir sorguda, bir alan�n "NULL" oldu�unu nas�l ortaya ��karabilirim? - 4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? - 4.15.1) Nas�l serial/otomatik artan(auto-incrementing) bir alan yaratabilirim? - 4.15.2) SERIAL giri�inin de�erini nas�l alabilirim? - 4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? - 4.15.4) Neden sequence say�lar�n transaction i�leminin iptalinden sonra yeniden kullan�l�yor? Neden sequence/SERIAL - kolonumdaki say�larda atlamalar oluyor? - 4.16) OID nedir? TID nedir? - 4.17) PostgreSQL' de kullan�lan baz� terimlerin anlamlar� nelerdir? - 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()"? hatas�n� al�yorum? - 4.19) Hangi PostgreSQL s�r�m�n� �al�st�rd���m� nas�l g�rebilirim? - 4.20) Neden large-object i�lemlerim, "invalid large obj descriptor"? hatas�n� veriyor? - 4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden kolonu nas�l yarat�r�m? - 4.22) Neden IN kullanan subquerylerim �ok yava�? - 4.23) Outer join i�lemini nas�l yapabilirim? - 4.24) Ayn� anda birden fazla veritaban�nda nas�l i�lem yapabilirim? - 4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? - 4.26) Neden PL/pgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo yaratma/kald�rma i�lemlerini yapam�yoruz? - 4.27) Hangi replikasyon se�enekleri bulunmaktad�r? - 4.28) Hangi �ifreleme se�enekleri bulunmaktad�r? - - PostgreSQL �zelliklerini Geni�letmek - - 5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman neden - core dump ediyor? - 5.2) PostgreSQL'e nas�l yeni veri tipleri/fonksiyonlar ekleyebilirim? - 5.3) Bir tuple d�nd�rmek i�in bir C fonksiyonunu nas�l yazar�m? - 5.4) Bir kaynak dosyas�nda de�isiklik yapt�m. Yeniden derlememe ra�men - de�i�iklik ge�erli olmuyor. Neden? - _________________________________________________________________ - - Genel sorular - - 1.1) PostgreSQL nedir? - - PostgreSQL, Post-Gres-Q-L olarak okunur. - - PostgreSQL, yeni-nesil VTYS arast�rma prototipi olan POSTGRES veritaban� - y�netim sisteminin geli�tirilmesidir. POSTGRES' in zengin veri - tiplerini ve g��l� veri modelini tutarken, SQL'in geli�tirilmis alt k�mesi - olan PostQuel dilini kullan�r. PostgreSQL �cretsizdir ve kaynak kodu a��k da��t�l�r. - - PostgreSQL, PostgreSQL gelistirme listesine �ye olan bir �nternet gelistirici - tak�m� taraf�ndan geli�tirilir. �u andaki koordinat�r, Marc G. Fournier - (scrappy@PostgreSQL.org). (Bu tak�ma nas�l kat�lacag�n�z� �grenmek i�in - 1.6 numaral� maddeyi okuyunuz.) Bu tak�m, t�m PostgreSQL geli�iminden sorumludur. - - PostgreSQL 1.01 s�r�m�n�n yazarlar� Andrew Yu ve Jolly Chen idi. Bunlar�n d�s�nda bir ka� kisi de uyarlama, - hata ay�klama ve kodun gelistirilmesi i�in �al�sm�st�. PostgreSQL'in t�redigi orijinal Postgres kodu, - lisans, lisans�st� ve akademisyenler tarafindan, Professor Michael Stonebraker ) University of - California, Berkeley) koordinat�rl�g�nde yaz�lm�st�r. - - Berkley'deki yaz�l�m�m ad� Postgres idi. SQL uyumlulugu 1995'te eklenince, ad� Postgres 95 - oldu. 1996 y�l�n�n sonlar�nda ad� PostgreSQL olarak degistirildi. - - 1.2) PostgreSQL'in haklar� nedir? - - PostgreSQL Data Base Management System - - Portions copyright (c) 1996-2002, PostgreSQL Global Development Group - Portions Copyright (c) 1994-6 Regents of the University of California - - 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. - - 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. - - 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. - - �stteki metin klasik a��k-kod lisans� olan BSD lisans�d�r. Kaynak kodun nas�l - kullan�labilece�ine dair s�n�rlamalar� yoktur. Bu lisansi seviyoruz ve de�i�tirme - niyetimiz bulunmamaktad�r. - - 1.3) PostgreSQL, hangi Unix platforlar�nda �al�s�r? - - Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i �al�st�racakt�r. - Ayr�nt�l� bilgi i�in kurulum belgelerine bakabilirsiniz - - 1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? - - �stemci - - libpq C k�t�phanesini, psql ve diger arabirimleri ve binary dosyalar�, MS - Windows ortamlar�nda �al�smas� i�in derlemeniz m�mk�nd�r. Bu �rnekte istemcide - MS Windows �al�s�yor ve desteklenen Unix platformlar�ndan birinde �al�san PostgreSQL - sunucuna TCP/IP ile baglanmaktad�r. Da��t�m i�indeki win32.mak dosyas� ile, - Win32 libpg k�t�phanesi ve psql yaratabilirsiniz. PostgreSQL ayn� zamanda ODBC - istemcileri ile haberlesebilmektedir. - - Sunucu - - Veritaban� sunucusu Cygwin kullanarak Windows NT, 2K ya da XP �zerinde �al��t�r�labilir. - Da��t�m i�indeki pgsql/doc/FAQ_MSW�N dosyas�n� ya da web sitemizdeki MS Windows FAQ'u - inceleyebilirsiniz. - - Do�al Windows NT/2000/XP portu i�in �u anda �al��malar devam etmektedir. Windows s�r�m� - hakk�nda g�ncel bilgi i�in, http://techdocs.postgresql.org/guides/Windows adresini - ziyaret edebilirsiniz. - - Ayr�ca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktad�r. - - 1.5) PostgreSQL'i nereden indirebilirim? - - PostgreSQL i�in ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub ' dur. - Yans�lar i�in, ana web sayfam�za bakabilirsiniz. - - 1.6) Deste�i nereden alabilirim? - - Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL konusundaki tart��malara - a��kt�r. �ye olmak i�in, asa��daki sat�rlar� e-postan�z�n g�vde k�sm�na (konu k�sm�na de�il) - yaz�p, pgsql-general-request@PostgreSQL.org adresine g�nderin: - - subscribe - end - - Ayn� zamanda, bir digest listesi bulunmaktad�r. Bu listeye �ye olmak i�in, - pgsql-general-digest-request@PostgreSQL.org adresine, body k�sm�nda - - subscribe - end - - yazan bir e-posta atman�z yeterli olacakt�r. - - Digest postalar, ana liste 30k civar�nda e-postaya ulast���nda �yelere g�nderilmektedir. - - Buglar i�in bir e-posta listesi bulunmaktad�r. Bu listeye �ye olmak i�in, - pgsql-bugs-request@PostgreSQL.org adresine, body k�sm�nda - - subscribe - end - - yazan bir e-posta atman�z yeterli olacakt�r. - - Ayn� zamanda, geli�tiriciler i�in tart��ma listesi bulunmaktad�r. Bu listeye �ye olmak - i�in, pgsql-hackers-request@PostgreSQL.org adresine, g�vde k�sm�nda - - subscribe - end - - yazan bir e-posta atman�z yeterli olacakt�r. - - Bunlar�n d���ndaki e-posta listelerine ve PostgreSQL hakk�nda bilgiye, PostgreSQL WWW - ana sayfas�ndan ula�abilirsiniz: - - http://www.PostgreSQL.org - - Ayn� zamanda, EFNet ve OpenProjects �zerinde, #PostgreSQL adl� bir IRC kanal� bulunmaktad�r. Bunun i�in, - irc -c '#PostgreSQL' "$USER" irc.phoenix.net Unix komutunu kullanabilirsiniz. - - Ticari destek veren firmalar�n listesine, - - http://www.postgresql.org/users-lounge/commercial-support.html - - adresinden ulasabilirsiniz. - - 1.7) En son s�r�m� nedir? - - PostgreSQL'in son s�r�m� 7.3.3't�r. - - Her 4 ayda major release ��kar�lmas� planlanmaktad�r. - - 1.8) Hangi belgelere ulasabilirim? - - Da��t�m�n icinde, kitapciklar, kitapcik sayfalari ve bazi k���k �rnekler verilmektedir. - /doc dizinine bak�n�z. Ayrica, bu el kitap��klar�n� online olarak - http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz. - - http://www.PostgreSQL.org/docs/awbook.html ve http://www.commandprompt.com/ppbook - adreslerinde PostgreSQL kitaplar� bulunmaktad�r. PostgreSQL kitablar�n�n listesine, - http://www.ca.PostgreSQL.org/books/ adresinden ula�aiblirsiniz. Ayr�ca, PostgreSQL - konusundaki teknik makalelere de http://techdocs.PostgreSQL.org/ adresinden - ula�abilirsiniz. - - psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, aggregateler,vb. ile - ilgili g�zel komutlar� vard�r. - - Web sitemiz daha fazla belgeyi i�ermektedir. - - 1.9) Bilinen hatalar ya da eksik �zelliklere nereden ulasabilirim? - - PostgreSQL SQL-92 uyumlugugu icindedir, standartlardan fazla da �zellikleri - bulunmaktad�r. Bilinen hatalar, eksik �zellikler ve gelecek ile ilgili planlar i�in - TODO listesine bak�n�z. - - 1.10) Nas�l SQL �grenebilirim? - - http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL �gretecektir. - http://www.commandprompt.com/ppbook adresinde de bir baska PostgreSQL kitab� bulunmaktad�r. - - http://www.intermedia.net/support/sql/sqltut.shtm, - http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM - http://sqlcourse.com ve http://sqlcourse2.com adreslerinde de g�zel belgeler bulunmaktad�r. - - Bir ba�kas� da, http://members.tripod.com/er4ebus/sql/index.htm adresinde bulunan - "Teach Yourself SQL in 21 Days, Second Edition" kitab�d�r. - - Baz� kullan�c�lar�m�z da �u kitab� �nermektedirler: - The Practical SQL Handbook, Bowman, Judith S., et al.,Addison-Wesley. Others - like The Complete Reference SQL, Groff et al., McGraw-Hill. - - 1.11) PostgreSQL 2000 y�l�na uyumlu mudur? - - Evet. - - 1.12) Gelistirme tak�m�na nas�l kat�labilirim? - - �ncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da dag�t�m�n i�indeki - PostgreSQL Developer belgesini okuyun. Ardindan, pgsql-hackers ve pgsql-patches - listelerine �ye olun. ���nc� olarak da, pgsql-pacthes listesine y�ksek kalitede - yamalar g�nderin. - - PostgreSQL CVS arsivine erisim izni olan, 10 kadar gelistirici bulunmaktadir. - Hepsi defalarca, diger kisilerin yaptigindan cok daha y�ksek-kaliteli patchler - gondermislerdir. Ayrica biz de bu gelistiricilerin ekledikleri yamalarin y�ksek - kalitede olduguna g�veniyoruz. - - 1.13) Bir hata raporunu nas�l g�nderebilirim? - - PostgreSQL BugTool sayfasina gidiniz. O sayfada bir bug bildirmek icin neleri - yapman�z gerektigi anlatilmistir. - - Ayr�ca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir PostgreSQL s�r�m� - ya da yamasi olup olmadigini kontrol ediniz. - - 1.14) PostgreSQL, diger DBMS'lerle nas�l karsilast�r�labilir? - - Bir yazilimin g�c�n� �l�mek i�in �esitli yollar vardir: Yazilimin �zellikleri, - basar�m�, g�venilirligi, destegi ve �creti. - - �zellikler - - PostgreSQL mevcut b�y�k ticari veritabanlarinin, transaction, subselect, - trigger, view, foreign key referential integrity ve sophisticated locking gibi - t�m �zelliklerine sahiptir. Onlarin sahip olmadiklari, kullanici-tanimli tipler - (user-defined types), rules, inheritance ve lock cak��malar�n� d���rmek i�in - multi-version uyumluluk �zellikleri bulunmaktadir. - - Performans (Ba�ar�m) - - PostgreSQL, di�er ticari ve a��k kaynak kodlu veritabanlar�yla yak�n ba�ar�m� sa�lar. - Baz� a��lardan daha h�zl�d�r, di�er a��lardan da yava�t�r. MySQL ya da daha zay�f - veritabanlar� ile kar��la�t�r�ld���nda,insert/update islemlerinde, transaction bazl� - �al�st���m�z i�in daha yava��z. MySQL, yukar�daki "�zellikler" k�sm�nda belirtilenlerden - hi� birine sahip de�ildir. Biz, ba�ar�m�m�z� her s�r�mde artt�rsak da, esneklik ve - geli�mi� �zellikler i�in yap�lanm�s durumday�z . PostgreSQL'i MySQL ile kar��la�t�ran - �u web sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html - - G�venilirlik - DBMSlerin g�venilir olmas� gerketigi, yoksa degerleri olmayacagini d�s�n�yoruz - �ok iyi test edilmis, dengeli �al�san minimum say�da hata i�eren kod sunmaya �al�s�yoruz. - Her bir s�r�m en az 1 ayl�k beta testlerinden ge�irilmektedir. S�r�m ge�mi�ine bakarsan�z, - �retime haz�r, dengeli ve kararl� kodlar sundugumuzu g�rebilirsiniz. Bu alanda, diger - veritaban� yaZ�l�mlar�na �st�nl�g�m�z olduguna inanmaktay�z - - Destek - E-posta listemiz, olusan herhangi bir sorunu ��zebilecek b�y�k say�da kullan�c� - ve gelistirici grubunu i�erir. Sorununuz i�in, en az bir ticari veritaban� kadar - rahat ��z�m bulabilirsiniz. Gelistiricilere, kullan�c� grubuna, belgelere ve - kaynak koda direk olarak erisebilme, PostgreSQL destegini, diger DBMSlere g�re daha - �nemli k�lar. Gereksinimi olanlara, ticari destek verilebilir. (Destek i�in 1.6 b�l�m�ne bak�n�z.) - - Fiyat - Ticari ve ticari olmayan t�m kullan�mlar�n�z i�in PostgreSQL �cretsizdir. Kodumuzu, yukar�da belirtilen - BSD-stili lisanstaki s�n�rlamalar hari�, �r�n�n�z�n i�ine ekleyebilirsiniz. - - 1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? - - PostgreSQL, 1996 y�l�ndan beri 1.s�n�f altyap�ya ashiptir. Bunun i�in, y�llar boyu �al�s�p bu altyap�y� - olusturup y�neten Marc Fournier'e tesekk�rler. - - Bir a��k kaynak kodlu proje i�in, kaliteli altyap� �ok �nemlidir. Bu altyap�, projenin - kesilmesini �nler ve projenin ilerlemesini h�zland�r�r. - - Tabii ki bu altyap� ucuz degildir. �slerin y�r�mesi i�in �e�itli y�l�k ve anl�k - harcamalar�m�z olmaktad�r. Eger siz ya da sirketinizin bu �abam�za bag�sta - bulunabilecek paras� varsa, l�tfen http://www.pgsql.com/pg_goodies adresine - gidiniz ve bag�sta, hibede bulununuz. - - Web sayfas�n�n PostgreSQL, �nc.' den bahsetmesine ragmen, "katk�da bulunanlar" - (contributors) maddesi sadece PostgreSQL projesini desteklemek i�indir ve belirli bir - sirketin para kaynag� degildir. isterseniz, baglant� adresine bir �ek g�nderebilirsiniz. - - ____________________________________________________________________________ - - Kullan�c�/istemci Sorular� - - 2.1) PostgreSQL icin ODBC s�r�c�leri var m�? - - iki tane ODBC s�r�c�s� bulunmaktad�r: PsqlODBC ve OpenLink ODBC. - - PsqlODBC'i http://gborg.postgresql.org/project/psqlodbc/projdisplay.php adresinden - indirebilirsiniz. - - OpenLink ODBC http://www.openlinksw.com adresinden al�nabilir.Bu s�r�c�, - kendi standart ODBC istemci yaz�l�m� ile �al�st���ndan, destekledikleri - her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC bulunmalidir. - - �cretsiz s�r�m� olmakla beraber, ticari kalitede destek almak isteyenlere satmak isteyeceklerdir. - Sorular�n�z� l�tfen postgres95@openlink.co.uk adresine g�nderiniz. - - 2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar bulunmaktad�r? - - http://www.webreview.com adresinde, arka planda veritaban� �al�st�ran Web sayfalar� - i�in giris seviyesinde bilgi bulunmaktad�r. - - Web ile b�t�nlesme i�in, PHP m�kemmel bir arabirim sunar. http://www.php.net . - - Karma��k sorunlar i�in, �o�u kisi Perl arabirimini ve CGI.pm ya da mod_perl kullan�r. - - - 2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? - - �e�itli grafik arabirimlerimiz bulunmaktad�r. Bunlar�n aras�nda, PgAccess (http://www.pgaccess.org), - PgAdmin II (http://www.pgadmin.org, sadece Win32 i�in), RHDB Admin (http://sources.redhat.com/rhdb/ ) - ve Rekall (http://www.thekompany.com/products/rekall/) bulunmaktad�r. Ayr�ca, PostgreSQL i�in web - tabanl� bir arabirim olan PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ) bulunmaktad�r. - - Daha ayr�nt�l� liste i�in http://techdocs.postgresql.org/guides/GUITools adresine bakabilirsiniz. - - 2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? - - * C (libpq) - * Embedded C (ecpg) - * Java (jdbc) - * Python (PyGreSQL) - * TCL (libpgtcl) - - Di�erleri i�in, http://gborg.postgresql.org adresindeki Drivers/Interfaces b�l�m�ne - bakabilirsiniz. - _________________________________________________________________ - - Y�netimsel Sorular - - 3.1) PostgreSQL'i, /usr/local/pgsql dizininden baska dizinlere nas�l kurabilirim? - - configure betigini �al�st�r�rken, --prefix se�enegini veriniz. - - 3.2) postmaster'i baslatt�g�mda, a Bad System Call ya da core dumped mesaj� - al�yorum. Neden? - - Bunun bir�ok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, �ekirdeginize - System V uzant�lar�n�n kurulu olup olmad�g�n� kontrol etmek olabilir. PostgreSQL - shared memory ve semaphores i�in �ekirdek destegine gereksinim duyar. - - 3.3) postmaster'i baslatt�g�mda, a �pcMemoryCreate hatas� al�yorum. Neden? - - Ya �ekirdeginizde shared memory desteginiz d�zg�nce yap�land�r�lmam�st�r, ya da - �ekirdeginizdeki mevcut shared memory miktar�n� b�y�tmeniz gerekecektir. Gereksinim - duyacag�n�z miktar, mimarinize ve postmaster i�in ayarlad�g�n�z tampon ile backend - islemi say�s�na bagl�d�r. T�m sistemler i�in, tamponlar ve islemlerde �ntan�ml� say�larla, - ~ 1MB kadar yere gereksinmeniz olacaktir.PostgreSQL Administrator's Guide' a, shared memory - ve semaphorelar hakk�ndaki ayr�nt�l� bilgi i�in bakabilirsiniz. - - 3.4) postmaster'i baslatt�g�mda, a �pcSemaphoreCreate hatas� al�yorum. Neden? - - Eger hata, "�pcSemaphoreCreate: semget failed (No space left on device)" ise, - �ekirdeginiz yeterli semaphore ile yap�land�r�lmam�s demektir. Postgres, her - bir potansiyel backend i�in bir semaphore gereksinmesi duyar. Ge�ici bir ��z�m, - postmaster� backend islemleri i�in daha az miktarda s�n�rla baslatmak olabilir. - -N i varsa�lan deger olan 32'den k���k bir degerle baslat�n�z. Daha kal�c� bir - ��z�m, �ekirde�inizin SEMMNS ve SEMMNI parametrelerini y�kseltmek olacakt�r. - - �al��mayan semaphorelar a��r veritaban� islemlerinde ��kme yaratabilirler. - - Eger hata mesaj�n�z baska birsey ise, �ekirdeginizde semaphore destegini - yap�land�rmam�s olabilirsiniz. Shared memory ve semaphorelar hakk�ndaki daha - ayr�nt�l� bilgi i�in PostgreSQL Administrator's Guide'a bakabilirsiniz. - - 3.5) Diger bilgisayarlar�n benim PostgreSQL veritaban� sunucuma baglant�lar�n� - nas�l kontrol edebilirim? - - �n tan�ml� olarak, PostgreSQL sadece yerel makineden Unix domain sockets kullanarak - baglan�lmas�na izin verir. Diger makineler, postmaster'a -i etiketini ge�irmezseniz - ve $PGDATA_pg_hba.conf dosyas�n� d�zenleyerek host-based authentication'a - olanak vermezseniz, baglant� yapamayacaklard�r. - - 3.6) Veritabani motorunu daha iyi basarim icin nas�l ayarlayabilirim? - - Indexler sorgular� h�zland�rabilir. EXPLAIN komutu, PostgreSQL'in sorgunuzu nas�l - yorumlad���n� ve hangi indexleri kullandigini g�rmenize izin verir. - - E�er cok fazla INSERT islemi yapiyorsaniz, bunlar� b�y�k bir toplu islem dosyasi kullan�p - COPY komutu ile veritabanina girmeyi deneyiniz. Bu, tekil �NSERTlerden daha h�zl�d�r. - ikinci olarak, BEG�N WORK/COMM�T transaction blogu i�inde olmayan ifadeler kendi - transactionlarindaymis gibi d�s�n�l�r. �oklu ifadeleri tek bir transaction blo�u i�inde - yapabilirsiniz. Bu, transaction overheadini d���recektir. Tek bir - transaction blo�u i�inde birden �ok ifadeyi �al��t�rmay� - deneyebilirsiniz. Bu, transaction overhead ini d���r�r. - - �e�itli ayarlama se�enekleri mevcuttur. fsync() i�lemini, postmaster'� -o -F se�ene�i ile - ba�latarak devre d��� b�rakabilirsiniz. Bu i�lem, fsync()'lerin her transactiondan sonra - diske flush etmesini engelleyecektir. - - Ayn� zamanda, postmaster'i -B se�ene�i ile ba�lat�p, backend i�lemleri taraf�ndan kullan�lan - shared memorf buffers say�lar�n� artt�rabilirsiniz. Eger bu parametreyi �ok y�ksek tutarsan�z, - �ekirde�inizin shared memory b�lgesindeki limiti a�ma olas�l���n�z y�z�nden postmaster - ba�layamayabilir. Her bir tampon (buffer) 8K'd�r. �ntan�ml� say� ise 64 tampondur. - - Ayn� �ekilde, backend'in -S se�ene�ini ge�ici s�ralamalar i�in backend s�re�leri taraf�ndan - kullan�lacak haf�zay� artt�rmak amac�yla kullanabilirsiniz. -S se�ene�i kilobayt cinsinden de�er al�r - ve �n tan�ml� de�eri 512'dir (512 K) - - Tablolardaki veriyi bir indekse e�lemek amac�yla gruplama i�in CLUSTER komutunu kullanabilirsiniz. - Ayr�nt�l� bilgi i�in CLUSTER komutunun yard�m sayfas�na bakabilirsiniz. - - 3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? - - PostgreSQL, hata ay�klama amac�yla kullan�labilecek durum bilgisi rapor eden �e�itli - �zeliklere sahiptir. - - �ncelikle, configure beti�ini --enable-cassert se�ene�iyle �al��t�r�rsan�z, bir �ok assert() backend cal��mas�n� - g�zlemler ve beklenmeyen bir durumda program� durdurur. - - Postmaster ve postgres �e�itli hata ay�klama se�eneklerine sahiptir. �ncelikle, - postmaster'i ba�latt���n�zda, standart ��kt�y� ve hatalar� bir log dosyas�na - y�nlendirdi�inize emin olun: - - cd /usr/local/pgsql - ./bin/postmaster >server.log 2>&1 & - - Bu i�lem PostgreSQL ana dizinine server.log dosyas� yerle�tirecektir. Bu dosya sunucunun - ya�ad��� sorunlar ya da hatalar hakk�nda yararl� bilgiler i�erir. -d se�ene�i, hata - ay�klama seviyesini belirten bir rakam ile kullan�l�r. Y�ksek hata ay�klama - seviyelerinin b�y�k log dosyalar� olu�turaca��n� unutmay�n�z. - - E�er postmaster �al��m�yorsa, postgres backend'ini komut sat�r�ndan �al��t�rabilir ve SQL ifadenizi - direk olarak yazabilirsiniz. Bu sadece hata ay�klama amac�yla �nerilir. Burada, noktal� virg�l�n de�il de - yeni bir sat�r�n sorguyu sonland�rd���n� unutmay�n�z. E�er hata ay�klama sembolleri ile derlediyseniz, - ne oldu�unu g�rmek i�in bir hata ay�klay�c� kullanabilirsiniz. backend postmasterdan ba�lat�lmad���ndan, - e�de�er bir ortamda �al��mamaktad�r ve locking/backend etkile�im sorunlar� artabilir. - - E�er postmaster �al���yorsa, bir pencerede psql'i �al��t�r�n ve psql taraf�ndan kullan�lan postgres s�recinin s�re� - numaras�n� (PID) bulun. Postgres s�reci ile ili�kilendirmek i�in bir hata ay�klar�c� kullan�n. Sorgular� psql - arac�l��� ile �al��t�rabilirsiniz. E�er postgres ba�lang�c�nda hata ay�klamak istiyorsan�z, PGOPTIONS="-W n" - se�ene�ini ayarlayabilir ve psql'i ba�latabilirsiniz. Bu i�lem, ba�lang�c�n n saniye kadar gecikmesini - sa�layacakt�r; b�ylece hata ay�klay�c�y� s�rece ili�kilendirdikten sonra ba�lang�� s�recinin devam etmesini - sa�layabilirsiniz. - - postgres program� hata ay�klama ve ba�ar�m �l��mleri i�in -s, -A ve -t se�eneklerine sahiptir. - - 3.8) Baglanmaya �al�s�ken, neden "Sorry, too many clients" hatas�n� al�yorum? - - Postmaster'in e�zamanl� olarak ba�latabilece�i backend s�re�leri s�n�rlar�n� - artt�rman�z gerekmektedir. - - �n tan�ml� de�er 32 s�re�tir. Bunu, postmaster'i uygun -N de�eri ile ya da - postgresql.conf dosyas�n� d�zenleyerek yeniden ba�latmakla artt�rabilirsiniz. - - E�er -N de�erini 32'den b�y�k yapacaksan�z, ayn� zamanda -B de�erini de de�i�tirmeniz - gerekti�ini unutmay�n. -B -N'nin en az 2 kat� kadar olmal�d�r; daha iyi ba�ar�m i�in - bu say�y� daha da artt�rmal�s�n�z. Y�ksek say�daki backend s�re�leri i�in, �e�itli �ekirdek yap�land�rma - parametrelerini artt�rman�z gerekecektir. Yap�lmas� gerekenler, SHMMAX, SEMMNS, SEMMNI, NPROC, MAXUPRC ve - a��labilecek dosyalar�n maksimum say�s� olan NFILE ve NINODE de�erlerini kar��t�rmakt�r. Bunun nedeni, PostgreSQL'in - izin verilen backend s�re�lerinin say�s� �zerinde bir s�n�r� olmas�d�r. B�ylelikle sistem kaynaklar�n�n d���na - ��k�lmayacakt�r. - - PostgreSQL'in 6.5 s�r�m�ne kadar, en fazla backend say�s� 64 idi ve bunu de�i�tirmek i�in - include/storage/sinvaladt.h dosyas� i�indeki MaxBAckendid sabitini de�i�tirdek sonra - yaz�l�m� yeniden derlemek gerekiyordu. - - 3.9) pgsql_tmp dizinin i�indeki dosyalar nelerdir? - - Sorgu �al�st�r�c� (query executer) taraf�ndan yarat�lan ge�ici dosyalard�r. �rnegin, - bir s�ralama ORDER BY ile yapilacaksa ve s�ralama backend'in -s parametresinin izin - verdiginden daha fazla alana gereksinim duyuyorsa, ekstra veriyi tutmak i�in ge�ici - dosyalar yarat�l�r. - - Ge�ici dosyalar, eger s�ralama s�ras�nda backend g��mezse otomatik olarak silinecektir. - Eger �al�san durumda bir backendiniz yoksa, pg_tempNNN.NN dosyalar�n� silmeniz g�venlidir.. - - 3.10) PostgreSQL s�r�mlerini y�kselmek i�in neden bir dump/reload i�lemi ger�ekle�tirmek zorunday�m? - - PostgreSQL tak�m� ara s�r�mlerde sadece k���k de�i�iklikler yapmaktad�r; bu y�zden 7.2 - s�r�m�nden 7.2.1'e y�kseltmek dump/restore i�lemi gerekmemektedir. Ancak, esas s�r�mlerde - (�rnek: 7.2'den 7.3'e) �o�unlukla sistem tablolar�n�n ve veri dosyalar�n�n i� yap�s� - de�i�tirilir. Bu de�i�iklikler �o�unlukla karma��kt�r; dolay�s�yla veri dosyalar�n�n - geriye d�n�k uyumlulu�u i�lemlerini yapm�yoruz. Dump i�lemi, veriyi genel bi�imde - alaca��ndan yeniden y�kleme esnas�nda veri, yeni i� bi�ime uygun �ekilde - yerle�tirilecektir. - - Disk bi�iminin de�i�medi�i s�r�mlerde, pg_upgrade beti�i g�ncellemenin bir dump/restore - gerektirmeden yap�lmas�n� sa�layacakt�r. pg_upgrade beti�inin o s�r�m i�in bulunup - bulunmad���n� s�r�m notlar� i�inde bulabilirsiniz. - - _________________________________________________________________ - - ��letimsel Sorular - - - 4.1) Binary cursor ve normal cursor arasindaki fark nedir? - - DECLARE yard�m sayfasina bakiniz. - - 4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? - - FETCH yard�m sayfasina bakiniz, aya da SELECT ... LIMIT.... kullan�n�z. - - �lk birka� sat�r� almak isteseniz bile, t�m sorgu de�erlendirilmek durumunda kal�nabilir. ORDER BY i�eren bir - sorgu d���n�n. E�er ORDER BY i�e e�le�en bir index varsa, PostgreSQL istenen ilk birka� sat�r� i�leyebilir, ya da - t�m sorgu istenen sat�rlar �retilene kadar i�lenebilir. - - 4.3) psql'in i�inde g�rd�g�m tablolarin ya da diger seylerin listesini nas�l alabilirim? - - pgsql/src/bin/psql/describe.c i�indeki psql kaynak kodunu okuyabilirsiniz. Bu kod, - psql'in \ ile baslayan komutlar�n�n ��kt�s�n� olusturan SQL komutlarini i�erir. Ayn� - zamanda, psql'i -E se�ene�i ile ba�lat�p, verdi�iniz komutlar� �al��t�rmak i�in yapt��� - sorgular�n ��kt�lar�n� g�rebilirsiniz. - - 4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? - - Bu �zellik (ALTER TABLE DROP COLUMN) 7.3 s�r�m� ile gelmi�tir. Eski s�r�mlerde - a�a��dakileri uygulamal�s�n�z: - - BEGIN; - LOCK TABLE old_table; - SELECT ... -- select all columns but the one you want to remove - INTO TABLE new_table - FROM old_table; - DROP TABLE old_table; - ALTER TABLE new_table RENAME TO old_table; - COMMIT; - - 4.5) Bir sat�r, tablo ve veritaban� icin en fazla b�y�kl�k nedir? +PostgreSQL i�in S�k�a Sorulan Sorular (SSS) + +Son g�ncelleme : 26 Temmuz 2004 Pazartesi - 16:05:26 + +Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) + +�evirenler : Devrim G�nd�z (devrim@tdmsoft.com) +Nicholas Morris Tufar (ntufar@tdmsoft.com) +Volkan YAZICI (volkany@phreaker.net) + +Bu belgenin en g�ncel hali, http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve +http://www.gunduz.org/seminer/pg/FAQ_turkish.html adreslerinde g�r�lebilir. + +Platforma �zel sorular�n�z, http://www.PostgreSQL.org/docs/index.html adresinde yan�tlan�r. +Genel Sorular +1.1) PostgreSQL nedir? Nas�l okunur? +1.2) PostgreSQL'in haklar� nedir? +1.3) PostgreSQL, hangi Unix platformlar�nda �al���r? +1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? +1.5) PostgreSQL'i nereden indirebilirim? +1.6) Deste�i nereden alabilirim? +1.7) En son s�r�m� nedir? +1.8) Hangi belgelere ula�abilirim? +1.9) Bilinen hatalar ya da eksik �zelliklere nereden ulasabilirim? +1.10) Nas�l SQL ��renebilirim? +1.11) PostgreSQL 2000 y�l�na uyumlu mudur? +1.12) Geli�tirme tak�m�na nas�l kat�labilirim?? +1.13) Bir hata raporunu nas�l g�nderebilirim? +1.14) PostgreSQL, di�er VTYS(DBMS) lerle nas�l kar��la�t�r�labilir? +1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? +Kullan�c�/istemci Sorular� +2.1) PostgreSQL i�in ODBC s�r�c�leri var m�? +2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar bulunmaktad�r? +2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? +2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? +Y�netimsel Sorular +3.1) PostgreSQL'i /usr/local/pgsql dizininden ba�ka dizinlere nas�l kurabilirim? +3.2) Postmaster'� ba�latt���mda Bad System Call ya da core dumped mesaj� al�yorum. Neden? +3.3) Postmaster'� ba�latt���mda, IpcMemoryCreate hatas� al�yorum. Neden? +3.4) Postmaster'�, ba�latt���mda, IpcSemaphoreCreate hatas� al�yorum. Neden? +3.5) Di�er bilgisayarlar�n benim PostgreSQL veritaban� sunucuma ba�lant�lar�n� nas�l kontrol edebilirim? +3.6) Veritaban� motorunu daha iyi ba�ar�m icin nas�l ayarlayabilirim? +3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? +3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� al�yorum. Neden? +3.9) pgsql_tmpdizinin i�indeki dosyalar nelerdir? +3.10) PostgreSQL s�r�mlerini y�kseltmek i�in neden bir dump/reload i�lemi ger�ekle�tirmek zorunday�m? +3.11) Nas�l bir donan�m kullanmal�y�m?br> +��letimsel Sorular +4.1) Binary cursor ve normal cursor aras�ndaki fark ned�r? +4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? +4.3) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini nas�l alabilirim? +4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? +4.5) Bir sat�r, tablo ve veritaban� i�in en fazla b�y�kl�k nedir? +4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� gereklidir? +4.7) Veritaban�nda hangi tablo ya da index'lerin tan�mland���n� nas�l g�rebilirim? +4.8) Sorgular�m cok yava�, ya da index'lerimi kullanm�yorlar. Neden? +4.9) Query-optimizer'�n sorgular�m� nas�l de�erlendirdi�ini, i�leme soktu�unu nas�l g�rebilirim? +4.10) R-tree index nedir? +4.11) Genetic Query Optimizer nedir? +4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe duyars�z aramalar� nas�l yapabilirim? Bu +b�y�k/k���k harfe duyarl� aramalar i�in index'i nas�l kullanabilirim? +4.13) Bir sorguda, bir alan�n NULL oldu�unu nas�l ortaya ��karabilirim? +4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? +4.15.1) Nas�l serial/otomatik artan (auto-incrementing) bir alan yaratabilirim? +4.15.2) Serial giri�inin de�erini nas�l alabilirim? +4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? +4.15.4) Neden sequence say�lar�n transaction i�leminin iptalinden sonra yeniden kullan�l�yor? Neden sequence/SERIAL +kolonumdaki say�larda atlamalar oluyor? +4.16) OID nedir? TID nedir? +4.17) PostgreSQL' de kullan�lan baz� terimlerin anlamlar� nelerdir? +4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatas�n� al�yorum? +4.19) Hangi PostgreSQL s�r�m�n� �al�st�rd���m� nas�l g�rebilirim? +4.20) Neden large-object i�lemlerim, "invalid large obj descriptor" hatas�n� veriyor? +4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden kolonu nas�l yarat�r�m? +4.22) Neden IN kullanan subquery'lerim �ok yava�? +4.23) Outer join i�lemini nas�l yapabilirim? +4.24) Ayn� anda birden fazla veritaban�nda nas�l i�lem yapabilirim? +4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? +4.26) Neden Pl/PgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo yaratma/kald�rma i�lemlerini yapam�yoruz? +4.27) Hangi replikasyon se�enekleri bulunmaktad�r? +4.28) Hangi �ifreleme se�enekleri bulunmaktad�r? +PostgreSQL �zelliklerini Geni�letmek +5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman neden core dump ediyor? +5.2) PostgreSQL'e nas�l yeni veri tipleri/fonksiyonlar ekleyebilirim? +5.3) Bir tuple d�nd�rmek i�in bir C fonksiyonunu nas�l yazar�m? +5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men de�i�iklik ge�erli olmuyor. Neden? +Genel Sorular +1.1) PostgreSQL nedir? Nas�l okunur? + +PostgreSQL, Post-Gres-Q-L. olarak okunur + +PostgreSQL, yeni-nesil VTYS ara�t�rma prototipi olan POSTGRES veritaban� y�netim sisteminin geli�tirilmesidir. +POSTGRES'in zengin veri tiplerini ve g��l� veri modelini tutarken, SQL'in geli�tirilmi� alt k�mesi olan PostQuel dilini +kullan�r. PostgreSQL �cretsizdir ve kaynak kodu a��k da��t�l�r. + +PostgreSQL, PostgreSQL geli�tirme listesine �ye olan bir Internet geli�tirici tak�m� taraf�ndan geli�tirilir. �u andaki +koordinat�r, Marc G. Fournier (scrappy@PostgreSQL.org). (Bu tak�ma nas�l kat�lacag�n�z� ��renmek i�in 1.6 numaral� +maddeyi okuyunuz.) Bu tak�m, t�m PostgreSQL geli�iminden sorumludur. + +PostgreSQL 1.01 s�r�m�n�n yazarlar� Andrew Yu ve Jolly Chen idi. Bunlar�n d���nda bir ka� kisi de uyarlama, hata +ay�klama ve kodun geli�tirilmesi i�in �al�sm��t�. PostgreSQL'in t�redi�i orijinal Postgres kodu, lisans, lisans�st� ve +akademisyenler taraf�ndan, Professor Michael Stonebraker (University of California, Berkeley) koordinat�rl�g�nde +yaz�lm��t�r. + +Berkley'deki yaz�l�m�n ad� Postgres idi. SQL uyumlulu�u 1995'te eklenince, ad� Postgres 95 oldu. 1996 y�l�n�n +sonlar�nda ad� PostgreSQL olarak de�i�tirildi. +1.2) PostgreSQL'in haklar� nedir? + +PostgreSQL Data Base Management System + +Portions copyright (c) 1996-2002, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the +University of California + +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. + +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. + +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. + +�stteki metin klasik a��k-kod lisans� olan BSD lisans�d�r. Kaynak kodun nas�l kullan�labilece�ine dair s�n�rlamalar� +yoktur. Bu lisans� seviyoruz. De�i�tirme niyetimiz bulunmamaktad�r. +1.3) PostgreSQL, hangi Unix platforlar�nda �al���r? + +Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i �al��t�racakt�r. Ayr�nt�l� bilgi i�in kurulum belgelerine +bakabilirsiniz. +1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? + +�stemci + +libpq C k�t�phanesini, psql ve diger arabirimleri ve binary dosyalar�, MS Windows ortamlar�nda �al�smas� i�in +derlemeniz m�mk�nd�r. Bu �rnekte istemcide MS Windows �al���yor ve desteklenen Unix platformlar�ndan birinde �al��an +PostgreSQL sunucuna TCP/IP ile ba�lanmaktad�r. Da��t�m i�indeki win31.mak dosyas� ile, Win32 libpg k�t�phanesi ve psql +yaratabilirsiniz. PostgreSQL ayn� zamanda ODBC istemcileri ile haberle�ebilmektedir. + +Sunucu + +Veritaban� sunucusu Cygwin kullanarak Windows NT, 2K ya da XP �zerinde �al��t�r�labilir. Dag�t�m i�indeki +pgsql/doc/FAQ_MSWIN dosyas�n� ya da web sitemizdeki MS Windows FAQ'u inceleyebilirsiniz. + +Do�al Windows NT/2000/XP portu i�in �u anda �al��malar devam etmektedir. Windows s�r�m� hakk�nda g�ncel bilgi i�in, +http://techdocs.postgresql.org/guides/Windows adresini ziyaret edebilirsiniz. + +Ayr�ca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktad�r. +1.5) PostgreSQL'i nereden indirebilirim? + +PostgreSQL i�in ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub adresidir. Yans�lar i�in, ana web sayfam�za +bakabilirsiniz. +1.6) Nereden destek alabilirim? + +Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL konusundaki tart��malara a��kt�r. �ye olmak i�in, +a�a��daki sat�rlar� e-postan�z�n body k�sm�na (konu k�sm�na de�il) yaz�p, pgsql-general-request@PostgreSQL.org adresine +g�nderin: + +subscribe +end + +Ayn� zamanda, bir digest listesi bulunmaktad�r. Bu listeye �ye olmak i�in, pgsql-general-digest-request@PostgreSQL.org +adresine, body k�sm�nda + +subscribe +end + +yazan bir e-posta atman�z yeterli olacakt�r. + +Digest postalar, ana liste 30k civar�nda e-postaya ula�t���nda �yelere g�nderilmektedir. + +Bug'lar i�in bir e-posta listesi bulunmaktad�r. Bu listeye �ye olmak i�in, pgsql-bugs-request@PostgreSQL.org adresine, +body k�sm�nda + +subscribe +end + +yazan bir e-posta atman�z yeterli olacakt�r. + +Ayn� zamanda, geli�tiriciler i�in tart��ma listesi bulunmaktad�r. Bu listeye �ye olmak i�in, +pgsql-hackers-request@PostgreSQL.org adresine, body k�sm�nda + +subscribe +end + +yazan bir e-posta atman�z yeterli olacakt�r. + +Bunun d���ndaki e-posta listelerine ve PostgreSQL hakk�nda bilgiye, PostgreSQL WWW ana sayfas�ndan ulasabilirsiniz: +http://www.PostgreSQL.org + +Ayn� zamanda, EFNet �zerinde, #PostgreSQL adl� bir IRC kanal� bulunmaktad�r. Bunun i�in, irc -c '#PostgreSQL' "$USER" +irc.phoenix.net Unix komutunu kullanabilirsiniz. + +Ticari destek veren firmalar�n listesine + +http://www.postgresql.org/users-lounge/commercial-support.html + +adresinden ula�bilirsiniz. +1.7) En son s�r�m nedir? + +PostgreSQL'in son s�r�m� 7.3.3't�r. + +Her 4 ayda major release ��kar�lmas� planlanmaktad�r. +1.8) Hangi belgelere ula�abilirim? + +Da��t�m�n i�inde, kitap��klar, kitap��k sayfalar� ve baz� k���k �rnekler verilmektedir. /doc dizinine bak�n�z. Ayr�ca, +bu el kitap��klar�n� online olarak http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz. + +http://www.PostgreSQL.org/docs/awbook.html ve http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplar� +bulunmaktad�r. PostgreSQL kitablar�n�n listesine, http://www.ca.PostgreSQL.org/books/ adresinden ula�aiblirsiniz. +Ayr�ca, PostgreSQL konusundaki teknik makalelere de http://techdocs.PostgreSQL.org/ adresinden ula�abilirsiniz. + +psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, aggregate'ler, vb. ile ilgili g�zel komutlar� vard�r. + +Web sitemiz daha fazla belgeyi i�ermektedir. +1.9) Bilinen hatalar ya da eksik �zelliklere nereden ula�abilirim? + +PostgreSQL SQL-92 uyumlulu�u i�indedir, standartlardan fazla da �zellikleri bulunmaktad�r. Bilinen hatalar, eksik +�zellikler ve gelecek ile ilgili planlar i�in TODO listesine bak�n�z. +1.10) Nas�l SQL ��renebilirim? + +http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL �gretecektir. http://www.commandprompt.com/ppbook +adresinde de bir baska PostgreSQL kitab� bulunmaktad�r. + +http://www.intermedia.net/support/sql/sqltut.shtm, +http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM http://sqlcourse.com ve http://sqlcourse2.com +adreslerinde de g�zel belgeler bulunmaktad�r. + +Bir ba�kas� da, http://members.tripod.com/er4ebus/sql/index.htm adresinde bulunan "Teach Yourself SQL in 21 Days, +Second Edition" kitab�d�r. + +Baz� kullan�c�lar�m�z da �u kitab� �nermektedirler: "The Practical SQL Handbook, Bowman, Judith S., et +al.,Addison-Wesley". Baz�lar� ise "The Complete Reference SQL, Groff et al., McGraw-Hill" kitab�n� �nermektedirler. +1.11) PostgreSQL 2000 y�l�na uyumlu mudur? + +Evet. +1.12) Geli�tirme tak�m�na nas�l kat�labilirim? + +�ncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da da��t�m�n i�indeki PostgreSQL Developer belgesini +okuyun. Ard�ndan, pgsql-hackers ve pgsql-patches listelerine �ye olun. ���nc� olarak da, pgsql-pacthes listesine y�ksek +kalitede yamalar g�nderin. + +PostgreSQL CVS ar�ivine eri�im izni olan, 10 kadar geli�tirici bulunmaktad�r. Hepsi defalarca, di�er ki�ilerin +yapt���ndan �ok daha y�ksek-kaliteli yamalar g�ndermi�lerdir. Ayr�ca biz de bu geli�tiricilerin ekledikleri yamalar�n +y�ksek kalitede oldu�una g�veniyoruz. +1.13) Bir hata raporunu nas�l g�nderebilirim? + +PostgreSQL BugTool sayfas�na gidiniz. O sayfada bir bug bildirmek i�in neleri yapman�z gerekti�i anlat�lm��t�r. + +Ayr�ca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir PostgreSQL s�r�m� ya da yamas� olup olmad���ni kontrol +ediniz. +1.14) PostgreSQL, diger DBMS'lerle nas�l kar��last�r�labilir? + +Bir yaz�l�m�n g�c�n� �l�mek i�in �e�itli yollar vard�r: Yaz�l�m�n �zellikleri, ba�ar�m�, g�venilirli�i, deste�i ve +�creti. + +�zellikler: + +PostgreSQL mevcut b�y�k ticari veritabanlar�n�n, transaction, subselect, trigger, view, foreign key referential +integrity ve sophisticated locking gibi (user-defined types), rules, inheritance ve lock cak��malar�n� d���rmek i�in +multi-version uyumluluk �zellikleri bulunmaktad�r. + +Performans (Ba�ar�m): + +PostgreSQL, di�er ticari ve a��k kaynak kodlu veritabanlar�yla yak�n ba�ar�m� sa�lar. Baz� a��lardan daha h�zl�d�r, +di�er a��lardan da yava�t�r. MySQL ya da daha zay�f veritabanlar� ile kar��la�t�r�ld���nda, INSERT/UPDATE i�lemlerinde, +transaction bazl� �al�st���m�z i�in daha yava��z. MySQL, yukar�daki "�zellikler" k�sm�nda belirtilenlerden hi� birine +sahip de�ildir. Biz, ba�ar�m�m�z� her s�r�mde artt�rsak da, esneklik ve geli�mi� �zellikler i�in yap�lanm�� durumday�z. +PostgreSQL'i MySQL ile kar��la�t�ran �u web sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html + +G�venilirlik: + +DBMS'lerin g�venilir olmas� gerketi�i, yoksa de�erleri olmayaca��n� d���n�yoruz. �ok iyi test edilmi�, dengeli �al�san +minimum say�da hata i�eren kod sunmaya �al���yoruz. Her bir s�r�m en az 1 ayl�k beta testlerinden ge�irilmektedir. +S�r�m ge�mi�ine bakarsan�z, �retime haz�r, dengeli ve kararl� kodlar sundu�umuzu g�rebilirsiniz. Bu alanda, di�er +veritaban� yaz�l�mlar�na �st�nl���m�z oldu�una inanmaktay�z. + +Destek: + +E-posta listemiz, olu�an herhangi bir sorunu ��zebilecek b�y�k say�da kullan�c� ve geli�tirici grubunu i�erir. +Sorununuz i�in, en az bir ticari veritaban� kadar rahat ��z�m bulabilirsiniz. Gelistiricilere, kullan�c� grubuna, +belgelere ve kaynak koda direk olarak eri�ebilme, PostgreSQL deste�ini, di�er DBMS'lere g�re daha �nemli k�lar. +Gereksinimi olanlara, ticari destek verilebilir. (Destek i�in 1.6 b�l�m�ne bak�n�z.) + +Fiyat: + +Ticari ve ticari olmayan t�m kullan�mlar�n�z i�in PostgreSQL �cretsizdir. Kodumuzu, yukar�da belirtilen BSD-stili +lisanstaki s�n�rlamalar hari�, �r�n�n�z�n i�ine ekleyebilirsiniz. +1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? + +PostgreSQL, 1996 y�l�ndan beri 1. s�n�f altyap�ya sahiptir. Bunun i�in, y�llar boyu �al���p bu altyap�y� olu�turup +y�neten Marc Fournier'e te�ekk�rler. + +Bir a��k kaynak kodlu proje i�in, kaliteli altyap� �ok �nemlidir. Bu altyap�, projenin kesilmesini �nler ve projenin +ilerlemesini h�zland�r�r. + +Tabii ki bu altyap� ucuz de�ildir. ��lerin y�r�mesi i�in �e�itli y�l�k ve anl�k harcamalar�m�z olmaktad�r. E�er siz ya +da �irketinizin bu �abam�za ba���ta bulunabilecek paras� varsa, l�tfen http://www.pgsql.com/pg_goodies adresine gidiniz +ve ba���ta, hibede bulununuz. + +Web sayfas�n�n 'PostgreSQL Inc.' den bahsetmesine ra�men, "katk�da bulunanlar" (contributors) maddesi sadece PostgreSQL +projesini desteklemek i�indir ve belirli bir �irketin para kayna�� de�ildir. isterseniz, ba�lant� adresine bir �ek +g�nderebilirsiniz. +Kullan�c�/�stemci Sorular� +2.1) PostgreSQL icin ODBC s�r�c�leri var m�? + +iki tane ODBC s�r�c�s� bulunmaktad�r: PsqlODBC ve OpenLink ODBC. + +PsqlODBC'i http://gborg.postgresql.org/project/psqlodbc/projdisplay.php adresinden indirebilirsiniz. + +OpenLink ODBC http://www.openlinksw.com adresinden al�nabilir.Bu s�r�c�, kendi standart ODBC istemci yaz�l�m� ile +�al�st���ndan, destekledikleri her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC bulunmalidir. + +�cretsiz s�r�m� olmakla beraber, ticari kalitede destek almak isteyenlere satmak isteyeceklerdir. Sorular�n�z� l�tfen +postgres95@openlink.co.uk adresine g�nderiniz. +2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar bulunmaktad�r? + +http://www.webreview.com/ adresinde, arka planda veritaban� �al�st�ran Web sayfalar� i�in giri� seviyesinde bilgi +bulunmaktad�r. + +Web ile b�t�nle�me i�in, PHP () m�kemmel bir arabirim sunar. + +Karma��k sorunlar i�in, �o�u kisi Perl arabirimini ve CGI.pm ya da mod_perl kullan�r. +2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? + +�e�itli grafik arabirimlerimiz bulunmaktad�r. Bunlar�n aras�nda, PgAccess (http://www.pgaccess.org/), PgAdmin II +(http://www.pgadmin.org/, sadece Win32 i�in), RHDB Admin (http://sources.redhat.com/rhdb/) ve Rekall +(http://www.thekompany.com/products/rekall/) bulunmaktad�r. Ayr�ca, PostgreSQL i�in web tabanl� bir arabirim olan +PHPPgAdmin (http://phppgadmin.sourceforge.net/) bulunmaktad�r. + +Daha ayr�nt�l� liste i�in http://techdocs.postgresql.org/guides/GUITools adresine bakabilirsiniz. +2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? + + * C (libpq) + * Embedded C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + +Di�erleri i�in, http://gborg.postgresql.org adresindeki Drivers/Interfaces b�l�m�ne bakabilirsiniz. +Y�netimsel Sorular +3.1) PostgreSQL'i, /usr/local/pgsql dizininden ba�ka dizinlere nas�l kurabilirim? + +configure beti�ini �al�st�r�rken, --prefix se�ene�ini veriniz. +3.2) postmaster'i baslatt�g�mda, a Bad System Call ya da core dumped mesaj� al�yorum. Neden? + +Bunun bir�ok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, �ekirdeginize System V uzant�lar�n�n kurulu olup +olmad�g�n� kontrol etmek olabilir. PostgreSQL shared memory ve semaphores i�in �ekirdek destegine gereksinim duyar. +3.3) postmaster'i ba�latt���mda, �pcMemoryCreate hatas� al�yorum. Neden? + +Ya �ekirde�inizde shared memory deste�iniz d�zg�nce yap�land�r�lmam��t�r, ya da �ekirde�inizdeki mevcut shared memory +miktar�n� b�y�tmeniz gerekecektir. Gereksinim duyaca��n�z miktar, mimarinize ve postmaster i�in ayarlad�g�n�z tampon +ile backend i�lemi say�s�na ba�l�d�r. T�m sistemler i�in, tamponlar ve i�lemlerde �ntan�ml� say�larla, ~ 1MB kadar yere +gereksinmeniz olacakt�r. PostgreSQL 7.3.2 Sistem Y�neticileri Rehberi'ne, shared memory ve semaphorelar hakk�ndaki +ayr�nt�l� bilgi i�in bakabilirsiniz. +3.4) postmaster'� ba�latt���mda, �pcSemaphoreCreate hatas� al�yorum. Neden? + +E�er hata, "�pcSemaphoreCreate: semget failed (No space left on device)" ise, �ekirde�iniz yeterli semaphore ile +yap�land�r�lmam�� demektir. Postgres, her bir potansiyel backend i�in bir semaphore gereksinimi duyar. Ge�ici bir +��z�m, postmaster� backend i�lemleri i�in daha az miktarda s�n�rla ba�latmak olabilir. -N'i varsay�lan de�er olan +32'den k���k bir de�erle ba�lat�n�z. Daha kal�c� bir ��z�m, �ekirde�inizin SEMMNS ve SEMMNI parametrelerini y�kseltmek +olacakt�r. + +�al��mayan semaphore'lar a��r veritaban� i�lemlerinde ��kme yaratabilirler. + +E�er hata mesaj�n�z ba�ka bir �ey ise, �ekirde�inizde semaphore deste�ini yap�land�rmam�� olabilirsiniz. Shared memory +ve semaphore'lar hakk�ndaki daha ayr�nt�l� bilgi i�in PostgreSQL 7.3.2 Sistem Y�neticileri Rehberi'ne bakabilirsiniz. +3.5) Diger bilgisayarlar�n benim PostgreSQL veritaban� sunucuma ba�lant�lar�n� nas�l kontrol edebilirim? + +�n tan�ml� olarak, PostgreSQL sadece yerel makineden Unix domain sockets kullanarak ba�lan�lmas�na izin verir. Diger +makineler, postmaster'a -i etiketini ge�irmezseniz ve $PGDATA/pg_hba.conf dosyas�n� d�zenleyerek host-based +authentication'a olanak vermezseniz, ba�lant� yapamayacaklard�r. +3.6) Veritabani motorunu daha iyi ba�ar�m i�in nas�l ayarlayabilirim? + +Index'ler sorgular� h�zland�rabilir. EXPLAIN komutu, PostgreSQL'in sorgunuzu nas�l yorumlad���n� ve hangi index'leri +kulland���n� g�rmenize izin verir. + +E�er cok fazla INSERT i�lemi yap�yorsan�z, bunlar� b�y�k bir toplu i�lem dosyas�kullan�p COPY komutu ile veritaban�na +girmeyi deneyiniz. Bu, tekil INSERT'lerden daha h�zl�d�r. �kinci olarak, BEGIN WORK/COMMIT transaction blo�u i�inde +olmayan ifadeler kendi transaction'lar�ndaym�� gibi d���n�l�r. �oklu ifadeleri tek bir transaction blo�u i�inde +yapabilirsiniz. Bu, transaction overhead'ini d���recektir. Tek bir transaction blo�u i�inde birden �ok ifadeyi +�al��t�rmay� deneyebilirsiniz. Bu da ayn� �ekilde, transaction overhead'ini d���r�r. + +�e�itli ayarlama se�enekleri mevcuttur. fsync() i�lemini, postmaster'� -o -F se�ene�i ile ba�latarak devre d��� +b�rakabilirsiniz. Bu i�lem, fsync()'lerin her transactiondan sonra diski flush etmesini engelleyecektir. + +Ayn� zamanda, postmaster'i -B se�ene�i ile ba�lat�p, backend i�lemleri taraf�ndan kullan�lan shared memory buffers +say�lar�n� artt�rabilirsiniz. E�er bu parametreyi �ok y�ksek tutarsan�z, �ekirde�inizin shared memory b�lgesindeki +limiti a�ma olas�l���n�z y�z�nden postmaster ba�layamayabilir. Her bir tampon (buffer) 8K'd�r. �ntan�ml� say� ise 64 +tampondur. + +Ayn� �ekilde, backend'in -S se�ene�ini ge�ici s�ralamalar i�in backend s�re�leri taraf�ndan kullan�lacak haf�zay� +artt�rmak amac�yla kullanabilirsiniz. -S se�ene�i kilobayt cinsinden de�er al�r ve �n tan�ml� de�eri 512'dir (512 K) + +Tablolardaki veriyi bir index'e e�lemek amac�yla gruplama i�in CLUSTER komutunu kullanabilirsiniz. Ayr�nt�l� bilgi i�in +CLUSTER komutunun yard�m sayfas�na bakabilirsiniz. +3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? + +PostgreSQL, hata ay�klama amac�yla kullan�labilecek durum bilgisi rapor eden �e�itli �zeliklere sahiptir. + +�ncelikle, configure beti�ini --enable-cassert se�ene�iyle �al��t�r�rsan�z, bir �ok assert() backend cal��mas�n� +g�zlemler ve beklenmeyen bir durumda program� durdurur. + +Postmaster ve postgres �e�itli hata ay�klama se�eneklerine sahiptir. �ncelikle, postmaster'� ba�latt���n�zda, standart +��kt�y� ve hatalar� bir log dosyas�na y�nlendirdi�inize emin olun: + +cd /usr/local/pgsql +./bin/postmaster >server.log 2>&1 & + +Bu i�lem PostgreSQL ana dizinine server.log dosyas� yerle�tirecektir. Bu dosya sunucunun ya�ad��� sorunlar ya da +hatalar hakk�nda yararl� bilgiler i�erir. -d se�ene�i, hata ay�klama seviyesini belirten bir rakam ile kullan�l�r. +Y�ksek hata ay�klama seviyelerinin b�y�k log dosyalar� olu�turaca��n� unutmay�n�z. + +E�er postmaster �al��m�yorsa, postgres backend'ini komut sat�r�ndan �al��t�rabilir ve SQL ifadenizi direk olarak +yazabilirsiniz. Bu sadece hata ay�klama amac�yla �nerilir. Burada, noktal� virg�l�n de�il de yeni bir sat�r�n sorguyu +sonland�rd���n� unutmay�n�z. E�er hata ay�klama sembolleri ile derlediyseniz, ne oldu�unu g�rmek i�in bir hata +ay�klay�c� kullanabilirsiniz. backend postmaster'dan ba�lat�lmad���ndan, e�de�er bir ortamda �al��mamaktad�r ve +locking/backend etkile�im sorunlar� artabilir. + +E�er postmaster �al���yorsa, bir pencerede psql'i �al��t�r�n ve psql taraf�ndan kullan�lan postgres s�recinin s�re� +numaras�n� (PID) bulun. Postgres s�reci ile ili�kilendirmek i�in bir hata ay�klar�c� kullan�n. Sorgular� psql arac�l��� +ile �al��t�rabilirsiniz. E�er postgres ba�lang�c�nda hata ay�klamak istiyorsan�z, PGOPTIONS="-W n" se�ene�ini +ayarlayabilir ve psql'i ba�latabilirsiniz. Bu i�lem, ba�lang�c�n n saniye kadar gecikmesini sa�layacakt�r; b�ylece hata +ay�klay�c�y� s�rece ili�kilendirdikten sonra ba�lang�� s�recinin devam etmesini sa�layabilirsiniz. + +postgres program� hata ay�klama ve ba�ar�m �l��mleri i�in -s, -A ve -t se�eneklerine sahiptir. +3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� al�yorum? + +Postmaster'�n e�zamanl� olarak ba�latabilece�i backend s�re�leri s�n�rlar�n� artt�rman�z gerekmektedir. + +�n tan�ml� de�er 32 s�re�tir. Bunu, postmaster'� uygun -N de�eri ile ya da postgresql.conf dosyas�n� d�zenleyerek +yeniden ba�latmakla artt�rabilirsiniz. + +E�er -N de�erini 32'den b�y�k yapacaksan�z, ayn� zamanda -B de�erini de de�i�tirmeniz gerekti�ini unutmay�n. -B, -N'nin +en az 2 kat� kadar olmal�d�r; daha iyi ba�ar�m i�in bu say�y� daha da artt�rmal�s�n�z. Y�ksek say�daki backend +s�re�leri i�in, �e�itli �ekirdek yap�land�rma parametrelerini artt�rman�z gerekecektir. Yap�lmas� gerekenler, SHMMAX, +SEMMNS, SEMMNI, NPROC, MAXUPRC ve a��labilecek dosyalar�n maksimum say�s� olan NFILE ve NINODE de�erlerini +kar��t�rmakt�r. Bunun nedeni, PostgreSQL'in izin verilen backend s�re�lerinin say�s� �zerinde bir s�n�r� olmas�d�r. +B�ylelikle sistem kaynaklar�n�n d���na ��k�lmayacakt�r. + +PostgreSQL'in 6.5 s�r�m�ne kadar, en fazla backend say�s� 64 idi ve bunu de�i�tirmek i�in include/storage/sinvaladt.h +dosyas� i�indeki MaxBAckendid sabitini de�i�tirdek sonra yaz�l�m� yeniden derlemek gerekiyordu. +3.9) pgsql_tmp dizinin i�indeki dosyalar nelerdir? + +Sorgu �al�st�r�c� (query executer) taraf�ndan yarat�lan ge�ici dosyalard�r. �rnegin, bir s�ralama ORDER BY ile +yap�lacaksa ve s�ralama backend'in -s parametresinin izin verdi�inden daha fazla alana gereksinim duyuyorsa, ekstra +veriyi tutmak i�in ge�ici dosyalar yarat�l�r. + +Ge�ici dosyalar, e�er s�ralama s�ras�nda backend g��mezse otomatik olarak silinecektir. E�er �al��an durumda bir +backend'iniz yoksa, pg_tempNNN.NN dosyalar�n� silmeniz g�venlidir. +3.10) PostgreSQL s�r�mlerini y�kseltmek i�in neden bir dump/reload i�lemi ger�ekle�tirmek zorunday�m? + +PostgreSQL tak�m� ara s�r�mlerde sadece k���k de�i�iklikler yapmaktad�r; bu y�zden 7.2 s�r�m�nden 7.2.1'e y�kseltmek +dump/restore i�lemi gerekmemektedir. Ancak, esas s�r�mlerde (�rnek: 7.2'den 7.3'e) �o�unlukla sistem tablolar�n�n ve +veri dosyalar�n�n i� yap�s� de�i�tirilir. Bu de�i�iklikler �o�unlukla karma��kt�r; dolay�s�yla veri dosyalar�n�n geriye +d�n�k uyumlulu�u i�lemlerini yapm�yoruz. Dump i�lemi, veriyi genel bi�imde alaca��ndan yeniden y�kleme esnas�nda veri, +yeni i� bi�ime uygun �ekilde yerle�tirilecektir. + +Disk bi�iminin de�i�medi�i s�r�mlerde, pg_upgrade beti�i g�ncellemenin bir dump/restore gerektirmeden yap�lmas�n� +sa�layacakt�r. pg_upgrade beti�inin o s�r�m i�in bulunup bulunmad���n� s�r�m notlar� i�inde bulabilirsiniz. +3.11) Nas�l bir donan�m kullanmal�y�m? + +PC donan�m� tamamen uyumlu oldu�u i�in, insanlar t�m PC donan�mlar�n�n ayn� kalitede oldu�unu d���n�rler. Oysa b�yle +de�ildir. ECC RAM, SCSI ve kaliteli anakartlar daha ucuz donan�mlara g�re daha �ok g�venilirlerdir ve ba�ar�mlar� daha +y�ksektir. PostgreSQL hemen hemen t�m donan�mda �al��abilmektedir, ancak g�venilirlik ve ba�ar�m �nemli ise donan�m +se�eneklerini �ok iyi ara�t�rmak gereklidir. E-posta listelerimi donan�mlarla ilgili sorular ve de ticaret i�in +kullan�labilir. +��letimsel Sorular +4.1) Binary cursor ve normal cursor aras�ndaki fark nedir? + +DECLARE yard�m sayfas�na bak�n�z. +4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? + +FETCH yard�m sayfas�na bak�n�z, ya da SELECT ... LIMIT ... kullan�n�z. + +�lk birka� sat�r� almak isteseniz bile, t�m sorgu de�erlendirilmek durumunda kal�nabilir. ORDER BY i�eren bir sorgu +d���n�n. E�er ORDER BY i�e e�le�en bir index varsa, PostgreSQL istenen ilk birka� sat�r� i�leyebilir, ya da t�m sorgu +istenen sat�rlar �retilene kadar i�lenebilir. +4.3) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini nas�l alabilirim? + +pgsql/src/bin/psql/describe.c i�indeki psql kaynak kodunu okuyabilirsiniz. Bu kod, psql'in \ ile ba�layan komutlar�n�n +��kt�s�n� olusturan SQL komutlar�n� i�erir. Ayn� zamanda, psql'i -E se�ene�i ile ba�lat�p, verdi�iniz komutlar� +�al��t�rmak i�in yapt��� sorgular�n ��kt�lar�n� g�rebilirsiniz. +4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? + +Bu �zellik (ALTER TABLE DROP COLUMN) 7.3 s�r�m� ile gelmi�tir. Eski s�r�mlerde a�a��dakileri uygulamal�s�n�z: + +BEGIN; +LOCK TABLE old_table; +SELECT ... -- select all columns but the one you want to remove +INTO TABLE new_table +FROM old_table; +DROP TABLE old_table; +ALTER TABLE new_table RENAME TO old_table; +COMMIT; + + +4.5) Bir sat�r, tablo ve veritaban� i�in en fazla b�y�kl�k nedir? + +S�n�rlar: + +Veritaban� i�in en fazla b�y�kl�k nedir? +S�n�rs�z (32 TB'l�k veritaban� bulunmaktad�r) + +Bir tablo i�in en fazla b�y�kl�k nedir? +32 TB + +Bir sat�r i�in en fazla b�y�kl�k nedir? +1.6 TB + +Bir alan i�in en fazla b�y�kl�k nedir? +1 GB + +Tabloda en fazla sat�r say�s� ka�t�r? +S�n�rs�z + +Bir tabloda olabilecek en fazla kolon say�s� ka�t�r? +Kolon tiplerine ba�l� olarak 250-1600 + +Bir tabloda olabilecek en fazla index say�s� ka�t�r? +S�n�rs�z + +Tabii ki bunlar asl�nda s�n�rs�z degildir. Burada belirtilen s�n�rlar, fiziksel s�n�rlar�n haricindeki s�n�rlard�r. Bo� +disk alan�, haf�za/takas alan� na ba�l� s�n�rlamalar vard�r. Ba�ar�m, s�n�r de�erlere yakla�t�k�a, ya da de�erler �ok +b�y�k oldu�unda d��ebilir. + +Bir tablo i�in b�y�kl�k s�n�r� olan 32 TB, i�letim sisteminin b�y�k dosya deste�i olup olmamas�ndan ba��ms�zd�r. B�y�k +tablolar, 1 GB'lik dosyalarda sakland��� i�in, dosya sistemi s�n�rlar�nin bir �nemi yoktur. + +Tablo ve kolon say�s� b�y�kl�kleri, �n tan�ml� blok b�y�kl��� 32k ya ��kar�larak artt�r�labilir. +4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� gereklidir? + +Bir PostgreSQL veritaban�, veriyi "flat" metin dosyas�nda saklamak i�in gereken alan�n 5 kat fazla disk alan�na +gereksinim duyabilir. + +Her sat�r�nda bir tamsay� ve metin (text) i�eren, 100.000 sat�rl�k bir dosya d���n�n. Her sat�r�n ortalama 20 byte +oldu�unu farzedelim. Metin dosyas� 2.8 MB olacakt�r. Bu veriyi tutan PostgreSQL veritaban� yakla��k 6.4 MB yer +kaplayacakt�r. + + 36 byte: Her bir sat�r ba�l��� (yakla��k) ++ 24 byte: Bir tamsay� (int) alan� ve bir metin (text) alan� ++ 4 byte: Sayfada tuple a pointer +---------------------------------------- + 64 byte -> kay�t ba��na + +PostgreSQL'de veri sayfas� (data page) b�y�kl��� 8192 byte (8k)d�r, dolay�s�yla: + +8192 byte -> page ba��na +------------------------- = Her bir veritaban� page'� ba��na 128 sat�r (yakla��k) + Sat�r ba��na 64 byte - S�n�rlar: - - Veritabani icin en fazla b�y�kl�k nedir? S�n�rs�z (32 TB'l�k veritaban� bulunmaktad�r) - Bir tablo icin en fazla b�y�kl�k nedir? 32 TB - Bir sat�r i�in en fazla b�y�kl�k nedir? 1.6 TB - Bir alan i�in en fazla b�y�kl�k nedir? 1 GB - Tabloda en fazla sat�r say�s� ka�t�r? S�n�rs�z - Bir tabloda olabilecek en fazla kolon say�s� ka�t�r? Kolon tiplerine ba�l� olarak 250-1600 - Bir tabloda olabilecek en fazla index say�s� ka�t�r? s�n�rs�z - - Tabii ki bunlar aslinda s�n�rs�z degildir. Burada belirtilen s�n�rlar, fiziksel - s�n�rlar�n haricindeki s�n�rlard�r. Bo� disk alan�, haf�za/takas alan� na ba�l� - s�n�rlamalar vard�r. Ba�ar�m, s�n�r de�erlere yaklast�k�a, ya da de�erler cok b�y�k - oldu�unda d��ebilir. - - Bir tablo i�in b�y�kl�k s�n�r� olan 16 TB, i�letim sisteminin b�y�k dosya deste�i olup - olmamas�ndan ba��ms�zd�r. B�y�k tablolar, 1 GB'lik dosyalarda sakland��� i�in, dosya - sistemi s�n�rlar�nin bir �nemi yoktur. - - Tablo ve kolon say�s� b�y�kl�kleri, �n tan�ml� blok b�y�kl��� 32k ya ��kar�larak - artt�r�labilir. - - 4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� gereklidir? - - Bir PostgreSQL veritaban�, veriyi "flat" metin dosyas�nda saklamak i�in gereken - alan�n 5 kat fazla disk alan�na gereksinim duyabilir. - - Her sat�r�nda bir tamsay� ve metin (text) i�eren, 100.000 sat�rl�k bir dosya d���n�n. - Her sat�r�n ortalama 20 byte oldu�unu farzedelim. Metin dosyas� 2.8 MB olacakt�r. Bu veriyi - tutan PostgreSQL veritaban� yakla��k 6.4 MB yer kaplayacakt�r. - - 36 byte: Her bir sat�r basl�g� (yaklasik) - + 24 byte: Bir tamsay� (int) alani ve bir metin (text) alan� - + 4 byte: Sayfada tuple a pointer - ---------------------------------------- - 64 byte -> kay�t bas�na - - PostgreSQL'de data page b�y�kl��� 8192 byte (8k)dir, dolay�s�yla: - - 8192 byte -> page bas�na - ------------------------- = Her bir veritabani page i ba��na 128 sat�r (yakla��k) - Sat�r bas�na 64 byte - - 100000 veri sat�r� - -------------------- = 782 veritaban� sayfas� - 128 sat�r - - 782 veritaban� sayfas� * sayfa ba��na 8192 byte = 6,406,144 bytes (6.4 MB) - - Indexler cok fazla yere gereksinim duymazlar, ama indexlenmis veriyi tutacaklar�ndan - b�y�k olabilirler. - - NULL de�erler bitmapler i�inde tutulur; dolay�s�yla �ok az yer kaplarlar. - - 4.7) Veritaban�nda hangi tablo ya da indexlerin tan�mland�g�n� nas�l g�rebilirim? - - psql, bu t�r bilgileri g�stermek i�in, \ ile ba�layan bir �ok komut sunmaktad�r. - \? komutu ile bu komutlar� g�rebilirsiniz. Ayr�ca, bunlar� a��klayan ve pg_ ile ba�layan - �ok say�da sistem tablosu bulunmaktad�r. Ayn� zamanda, psql -l ile t�m veritabanlar�n� - listeyelebirsiniz. - - Ayr�ca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu dosya, veritaban� - sistem dosyalarindan bilgiyi almak i�in gereksinim duyulan bir �ok SELECTleri g�sterir. - - 4.8) Sorgular�m cok yava�, ya da indexlerimi kullanm�yorlar. Neden? +100000 veri sat�r� +-------------------- = 782 veritaban� sayfas� + 128 sat�r + +782 veritaban� sayfas� * sayfa ba��na 8192 byte = 6,406,144 bytes (6.4 MB) + +Index'ler �ok fazla yere gereksinim duymazlar, ama index'lenmi� veriyi tutacaklar�ndan b�y�k olabilirler. + +NULL de�erler bitmapler i�inde tutulur; dolay�s�yla �ok az yer kaplarlar. +4.7) Veritaban�nda hangi tablo ya da index'lerin tan�mland���n� nas�l g�rebilirim? + +psql, bu t�r bilgileri g�stermek i�in, \ ile ba�layan bir �ok komut sunmaktad�r. \? komutu ile bu komutlar� +g�rebilirsiniz. Ayr�ca, bunlar� a��klayan ve pg_ ile ba�layan �ok say�da sistem tablosu bulunmaktad�r. Ayn� zamanda, +psql -l ile t�m veritabanlar�n� listeyelebirsiniz. + +Ayr�ca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu dosya, veritaban� sistem dosyalar�ndan bilgiyi +almak i�in gereksinim duyulan bir �ok SELECT'leri g�sterir. +4.8) Sorgular�m cok yava�, ya da index'lerimi kullanm�yorlar. Neden? + Indexler her sorgu taraf�ndan otomatik olarak kullan�lmazlar. Indexler e�er bir tablonun b�y�kl��� minimum bir b�y�kl�kten fazla ise ve sorgu tablodaki sat�rlar�n sadece k���k bir y�zdesini se�iyorsa kullan�l�r. Bunun nedeni, index eri�iminin neden oldu�u raslansal disk eri�imi nin diskin ya da tablonun s�ral� okunmas�ndan daha yavas @@ -695,8 +592,8 @@ ve LIMIT kullanarak da almak olas�d�r: ORDER BY col [ DESC ] LIMIT 1; -E�er optimizer'�n s�ral� arama yapmas�n�n yanl�� oldu�una inan�yorsan�z, SET enable_seqscan TO 'off' kullan�n ve -index kullanan aramalar�n hala daha h�zl� olup olmad���n� g�r�n. +E�er optimizer'�n s�ral� arama yapmas�n�n yanl�� oldu�una inan�yorsan�z, SET enable_seqscan TO 'off' kullan�n ve index +kullanan aramalar�n hala daha h�zl� olup olmad���n� g�r�n. LIKE ya da ~ gibi operat�rler kullan�yorsan�z, index'ler sadece a�a��daki ko�ullarda kullan�labilir: @@ -708,11 +605,11 @@ LIKE ya da ~ gibi operat�rler kullan�yorsan�z, index'ler sadece a�a��daki ko�ull anlat�lan fonksiyonel index'leri kullanabilirsiniz. * initdb s�ras�nda �ntan�ml� C locale'i kullan�lmal�d�r. - 4.9) query-optimizer in sorgular�m� nas�l de�erlendirdi�ini, i�leme soktu�unu nas�l g�rebilirim? - - EXPLAIN yard�m sayfas�na bak�n�z. - - 4.10) R-tree index nedir? +4.9) query-optimizer'�n sorgular�m� nas�l de�erlendirdi�ini, i�leme soktu�unu nas�l g�rebilirim? + +EXPLAIN yard�m sayfas�na bak�n�z. +4.10) R-tree index nedir? + R-tree index, uzaysal (spatial) verileri indexlemek i�in kullan�l�r. Bir hash index, dizi aramalar�nda (range search) kullan�lamaz. B-tree index dizi aramalar�nda sadece tek boyutlu �al��maktad�r. R-tree, �ok boyutlu veriyi destekler. �rne�in, e�er bir R-tree index point veri tipi �zerinde in�a edililebilirse, sistem "select all points within a @@ -725,309 +622,287 @@ on Mgmt of Data, 45-57. Bu belgeyi, Stonebraker'�n "Readings in Database Systems" kitab�nda bulabilirsiniz. -G�m�l� R-tree indexleri poligon ve boxlar� kullanabilir. Teorik olarak, R-tree indexlerin �zelliklerini -geni�letmek bir miktar �aba gerektirir ve bunun nas�l yap�laca��na dair bir belgemiz hen�z bulunmamaktad�r. +G�m�l� R-tree indexleri poligon ve boxlar� kullanabilir. Teorik olarak, R-tree indexlerin �zelliklerini geni�letmek bir +miktar �aba gerektirir ve bunun nas�l yap�laca��na dair bir belgemiz hen�z bulunmamaktad�r. +4.11) Genetic Query Optimizer nedir? - 4.11) Genetic Query Optimizer nedir? - - GEQO mod�l�, Genetic Algorith(GA) kullan�larak tablolar birle�tirildi�inde sorgu optimizasyonunu h�zland�r�r. - - 4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe duyars�z aramalar� nas�l yapabilirim? - Bu b�y�k(k���k harfe duyarl� aramalar i�in indeksi nas�l kullanabilirim? - - ~ operat�r� d�zenli ifade e�le�mesi ve ~* b�y�k/k���k harfe duyars�z d�zenli ifade e�le�mesi yapar. - B�y�k/k���k harfe duyarl� olan LIKE'in b�y�k/k���k harfe duyars�z olan bi�ini ILIKE't�r ve PostgreSQL - 7.1 s�r�m� ile birlikte gelmi�tir. - - B�y�k-k���k harfe duyars�z e�itlik kar��la�t�rmalar� a�a��daki gibi ifade edilir: - - SELECT * - FROM tab - WHERE lower(col) = 'abc' +GEQO mod�l�, Genetic Algorithm(GA) kullan�larak tablolar birle�tirildi�inde sorgu optimizasyonunu h�zland�r�r. +4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe duyars�z aramalar� nas�l yapabilirim? Bu +b�y�k(k���k harfe duyarl� aramalar i�in index'i nas�l kullanabilirim? + +~ operat�r� d�zenli ifade e�le�mesi ve ~* b�y�k/k���k harfe duyars�z d�zenli ifade e�le�mesi yapar. B�y�k/k���k harfe +duyarl� olan LIKE'�n b�y�k/k���k harfe duyars�z olan bi�imi ILIKE't�r ve PostgreSQL 7.1 s�r�m� ile birlikte gelmi�tir. + +B�y�k-k���k harfe duyars�z e�itlik kar��la�t�rmalar� a�a��daki gibi ifade edilir: + +SELECT * +FROM tab +WHERE lower(col) = 'abc' + - Bu standart bir indeks yaratmayacakt�r. Ancak e�er fonksiyonel bir indeks yarat�rsan�z; o kullan�lacakt�r: +Bu standart bir index yaratmayacakt�r. Ancak e�er fonksiyonel bir index yarat�rsan�z; o kullan�lacakt�r: - CREATE INDEX tabindex on tab (lower(col)); +CREATE INDEX tabindex on tab (lower(col)); - 4.13) Bir sorguda, bir alanin "NULL" oldugunu nas�l ortaya ��karabilirim? - - Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz. - - 4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? - -Veri Tipi �� Ad� Not +4.13) Bir sorguda, bir alanin "NULL" oldu�unu nas�l ortaya ��karabilirim? + +Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz. +4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? + +Veri Tipi �� Ad� Not -------------------------------------------------- VARCHAR(n) varchar boyut en b�y�k uzunlu�u verir; sadece verilen kadar veri tutulur. -CHAR(n) bpchar belirtilen uzunlupa kadar sonuna bo�luk eklenir. +CHAR(n) bpchar belirtilen uzunlu�a kadar sonuna bo�luk eklenir. TEXT text uzunlukta herhangi bir �st s�n�r yoktur. BYTEA bytea variable-length byte array (null-byte safe) "char" char bir karakter + -�� adlar� (internal name) sistem kataloglar�n� ve baz� hata meajlar�n� incelerken g�receksiniz. - - �lk d�rt veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt uzunluktur; devam� da veridir.) Dolay�s�yla, - B�ylece, kullan�lan ger�ek alan, belirtilen alandan biraz daha b�y�kt�r. Ancak, bu veri tipleri, s�k��t�r�lmaya tabi - tutulabilir; dolay�s�yla disk alan� beklenilenden k�c�k olabilir. VARCHAR(n) b�y�kl��� artabilen ama en b�y�k - uzunlu�u s�n�rl� oan verileri saklamak i�in en uygun y�ntemdir. TEXT, 1 GB b�y�kl��e kadar olan verileri tutmak i�in - kullan�l�r. - - CHAR(n), ayn� uzunluktaki dizilerin saklanmas� i�in kullan�m�r. CHAR(n) belirtilen uzunlu�a kadar bo�luk ile - doldurur; ancak VARCHAR(n) sadece verilen karakterleri saklar.BYTEA binary veri saklamak i�indir; ayr�ca "NULL" bayt - i�eren de�erleri de saklar. Burada anlat�lan �� veri tipi de benzer ba�ar�m karakteristiklere sahiptir. - - 4.15.1) nas�l serial/otomatik artan(auto-incrementing) bir alan yaratabilirim? - - PostgreSQL'de SERIAL veri tipi vard�r. Bu veri tipi bir sequence ve kolon �zerinde bir indeks yarat�r. - - �rnek, a�a��daki sorgu: - - CREATE TABLE person ( - id SERIAL, - name TEXT - ); - - buna �evrilir: - - CREATE SEQUENCE person_id_seq; - CREATE TABLE person ( - id �NT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT - ); - CREATE UNIQUE �NDEX person_id_key ON person ( id ); - - Sequenceler hakk�nda daha fazla bilgi i�in create_sequence yard�m sayfas�na bakabilirsiniz. Her sat�r�n OID alan�n� - tekil bir say� olarak alabilirsiniz. Ancak, veritaban�n�z�n dump'�n� al�p yeniden y�klerseniz, OID de�erlerini - koruyabilmek i�in pg_dump'�n -o parametresini ya da "COPY WITH OIDS" se�ene�ini kullanman�z gerekecektir. - - 4.15.2) SERIAL giri�inin degerini nas�l alabilirim? - - Bir yakla��m, sequence nesnesindeki SERIAL de�erini, veriyi girmeden �nce nextval() ile al�p, ald���n�z de�eri +�� adlar� (internal name) sistem kataloglar�n� ve baz� hata mesajlar�n� incelerken g�receksiniz. + +�lk d�rt veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt uzunluktur; devam� da veridir.) Dolay�s�yla, kullan�lan +ger�ek alan, belirtilen alandan biraz daha b�y�kt�r. Ancak, bu veri tipleri, s�k��t�r�lmaya tabi tutulabilir; +dolay�s�yla disk alan� beklenilenden k���k olabilir. VARCHAR(n) b�y�kl��� artabilen ama en b�y�k uzunlu�u s�n�rl� olan +verileri saklamak i�in en uygun y�ntemdir. TEXT, 1 GB b�y�kl��e kadar olan verileri tutmak i�in kullan�l�r. + +CHAR(n), ayn� uzunluktaki dizilerin saklanmas� i�in kullan�m�r. CHAR(n) belirtilen uzunlu�a kadar bo�luk ile doldurur; +ancak VARCHAR(n) sadece verilen karakterleri saklar. BYTEA binary veri saklamak i�indir; ayr�ca "NULL" bayt i�eren +de�erleri de saklar. Burada anlat�lan �� veri tipi de benzer ba�ar�m karakteristiklere sahiptir. +4.15.1) Nas�l serial/otomatik artan (auto-incrementing) bir alan yaratabilirim? + +PostgreSQL'de SERIAL veri tipi vard�r. Bu veri tipi bir sequence ve kolon �zerinde bir index yarat�r. + +�rnek, a�a��daki sorgu: + +CREATE TABLE person ( + id SERIAL, + name TEXT +); + + +buna �evrilir: + +CREATE SEQUENCE person_id_seq; +CREATE TABLE person ( + id INT4 NOT NULL DEFAULT nextval('person_id_seq'), + name TEXT +); +CREATE UNIQUE INDEX person_id_key ON person ( id ); + + +Sequenceler hakk�nda daha fazla bilgi i�in create_sequence yard�m sayfas�na bakabilirsiniz. Her sat�r�n OID alan�n� +tekil bir say� olarak alabilirsiniz. Ancak, veritaban�n�z�n dump'�n� al�p yeniden y�klerseniz, OID de�erlerini +koruyabilmek i�in pg_dump'�n -o parametresini ya da "COPY WITH OIDS" se�ene�ini kullanman�z gerekecektir. +4.15.2) SERIAL giri�inin degerini nas�l alabilirim? + +Bir yakla��m, sequence nesnesindeki SERIAL de�erini, veriyi girmeden �nce nextval() ile al�p, ald���n�z de�eri kendinizin girmesidir. 4.15.1'deki �rnek tabloyu kullanarak bir �rnek verelim: - new_id = execute("SELECT nextval('person_id_seq')"); - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); +new_id = execute("SELECT nextval('person_id_seq')"); - Di�er sorgular i�in new_id'de yeni de�erin saklanmas� gerekir. Otomatik olarak yarat�lan SEQUENE nesnesinin ad�, - <tablo ad�>_<serial kolonu ad�>_seq �eklinde olacakt�r (< > i�aretleri olmadan). + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); - Alternatif olarak, atanm�� SERIAL de�erini, de�er girildikten sonra currval() fonksiyonu ile alabilirsiniz: +Di�er sorgular i�in new_id'de yeni de�erin saklanmas� gerekir. Otomatik olarak yarat�lan SEQUENE nesnesinin ad�, __seq +�eklinde olacakt�r (< > i�aretleri olmadan). - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); +Alternatif olarak, atanm�� SERIAL de�erini, de�er girildikten sonra currval() fonksiyonu ile alabilirsiniz: - Son olarak, �n tan�ml� de�eri bulmak i�in INSERT ifadesinden d�nen OID de�erini kullanabilirsiniz; ancak bu - en az ta��nabilir ��z�m olacakt�r. Perl'de, Edmund Mergl'in DBD:Pg m�d�l� ile birlikte DBI kullanarak, OID de�eri - $sth->execute() �al��t�r�ld�ktan sonra $sth->(pg_OID_status) ile al�nabilir. + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); + - 4.15.3) currval() ve nextval() diger kullanicilara sorun yaratmaz m�? - - Hay�r. curval(), t�m kullan�c�lar degil, backend taraf�ndan atanan ge�erli - degeri d�nd�r�r. - - 4.15.4) Neden sequence say�lar�n transaction i�leminin iptalinden sonra yeniden kullan�l�yor? Neden sequence/SERIAL - kolonumdaki say�larda atlamalar oluyor? +Son olarak, �n tan�ml� de�eri bulmak i�in INSERT ifadesinden d�nen OID de�erini kullanabilirsiniz; ancak bu en az +ta��nabilir ��z�m olacakt�r. Perl'de, Edmund Mergl'in DBD:Pg m�d�l� ile birlikte DBI kullanarak, OID de�eri +$sth->execute() �al��t�r�ld�ktan sonra $sth->(pg_oid_status) ile al�nabilir. +4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? - Uyumlulu�u artt�rmak i�in, sequence de�erleri �al��an transactionlara gerekti�i �ekilde aktar�l�r ve transaction - bitene kadar o de�er kilitlenmez. Bu, iptal edilen transaction i�lemleri nedeniyle bo�luklara neden olur. +Hay�r. curval(), t�m kullan�c�lar de�il, backend taraf�ndan atanan ge�erli de�eri d�nd�r�r. +4.15.4) Neden sequence say�lar� transaction i�leminin iptalinden sonra yeniden kullan�l�yor? Neden sequence/SERIAL +kolonumdaki say�larda atlamalar oluyor? - 4.16) OID nedir? TID nedir? +Uyumlulu�u artt�rmak i�in, sequence de�erleri �al��an transaction'lara gerekti�i �ekilde aktar�l�r ve transaction +bitene kadar o de�er kilitlenmez. Bu, iptal edilen transaction i�lemleri nedeniyle bo�luklara neden olur. +4.16) OID nedir? TID nedir? -OIDler, tekil sat�r numaralar�na PostgreSQL'in yan�t�d�r. PostgreSQL'de yarat�lan her say�, tekil bir OID al�r. -initdb i�lemi s�ras�nda yarat�lan t�m OID'ler 16384'ten k���kt�r (backend/access/transam.h). Kullan�c�lar taraf�ndan -yarat�lan t�m OID'ler bu say�ya e�it ya da bu say�dan b�y�kt�r. Varsay�lan durumda, t�m bu OIDler sadece bir tablo ya -da veritaban�nda de�il, t�m PostgreSQL kurulumunda tekildir. +OIDler, tekil sat�r numaralar�na PostgreSQL'in yan�t�d�r. PostgreSQL'de yarat�lan her say�, tekil bir OID al�r. initdb +i�lemi s�ras�nda yarat�lan t�m OID'ler 16384'ten k���kt�r (backend/access/transam.h). Kullan�c�lar taraf�ndan yarat�lan +t�m OID'ler bu say�ya e�it ya da bu say�dan b�y�kt�r. Varsay�lan durumda, t�m bu OIDler sadece bir tablo ya da +veritaban�nda de�il, t�m PostgreSQL kurulumunda tekildir. -PostgreSQL OIDleri, tablolar aras�nda sat�rlar� ili�kilendirmek i�in kendi i� tablolar�nda kullan�r. Bu OIDler -belirli kullan�c� sat�rlar�n� belirtmek i�in kullanabilir ve join i�lemlerinde kullan�l�r. OID de�erlerini saklamak -i�in OID kolon tipini kullanman�z �nerinir. Daha h�zl� bir eri�im i�in, OID alan�nda bir index yaratabilirsiniz. +PostgreSQL OIDleri, tablolar aras�nda sat�rlar� ili�kilendirmek i�in kendi i� tablolar�nda kullan�r. Bu OIDler belirli +kullan�c� sat�rlar�n� belirtmek i�in kullanabilir ve join i�lemlerinde kullan�l�r. OID de�erlerini saklamak i�in OID +kolon tipini kullanman�z �nerinir. Daha h�zl� bir eri�im i�in, OID alan�nda bir index yaratabilirsiniz. -OID'ler yeni sat�rlara, t�m veritabanlar� taraf�nda kullan�lan ortak bir alandan atan�rlar. E�er OID'i ba�ka bir -de�ere e�itlemek isterseniz ya da tablonun bir kopyas�n� orijinal OIDler ile ��karmak isterseniz, bu m�mk�nd�r: +OID'ler yeni sat�rlara, t�m veritabanlar� taraf�nda kullan�lan ortak bir alandan atan�rlar. E�er OID'i ba�ka bir de�ere +e�itlemek isterseniz ya da tablonun bir kopyas�n� orijinal OIDler ile ��karmak isterseniz, bu m�mk�nd�r: - CREATE TABLE new_table(old_OID OID, mycol int); - SELECT old_OID, mycol �NTO new FROM old; - COPY new TO '/tmp/pgtable'; - DELETE FROM new; - COPY new WITH OIDS FROM '/tmp/pgtable'; + CREATE TABLE new_table(old_oid oid, mycol int); + SELECT old_oid, mycol INTO new FROM old; + COPY new TO '/tmp/pgtable'; + DELETE FROM new; + COPY new WITH OIDS FROM '/tmp/pgtable'; + OIDler 4-bit tamsay� olarak saklan�rlar ve 4 milyarda overflow olacakt�r. Kimse bu say�ya ula�t���na dair bir bilgi iletmedi ve bu s�n�r� kimse bu s�n�ra ula�madan kald�raca��z. TIDler, belirli fiziksel sat�rlar block ve offset de�erleri ile belirtmekte kullan�l�r. TIDler, sat�rlar de�i�ti�inde ya da yeniden y�klendi�inde de�i�irler. Index girdileri taraf�ndan fiziksel sat�rlar� g�stermek i�in kullan�l�rlar. - - 4.17) PostgreSQL'de kullan�lan baz� terimlerin anlamlar� nelerdir? - - Kaynak kodun bir k�sm� ve eski belgeler, daha geni� kullan�m alan� olan terimleri - kullan�rlar. Bunlar�n baz�lar�: - - * table, relation, class - * row, record, tuple - * column, field, attribute - * retrieve, select - * replace, update - * append, insert - * OID, serial value - * portal, cursor - * range variable, table name, table alias - - Genel veritaban� terimleri, - - http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html - adresinde bulunabilir. - - 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()"? hatas�n� al�yorum? - - Sisteminizde sanal belle�inizi t�ketmis olabilirsiniz, ya da �ekirde�iniz - belli kaynaklar icin d���k bir s�n�ra sahip olabilir. Postmaster'i ba�latmadan �nce - a�a��dakileri deneyebilirsiniz: - - ulimit -d 262144 - limit datasize 256m - - Kabu�unuza ba�l� olarak, bunlardan sadece biri olumlu sonu� verecektir, ama - bu i�lem veri segment s�n�r�n�z� artt�racak, ve belki de sorgunuzun tamamlanmas�n� - saglayacakt�r. Bu komut, varolan s�rece (current process) ve komut �al�st�r�ld�ktan - sonraki t�m alt islemlere uygulan�r. E�er SQL istemcinizle, backendin �ok fazla veri - d�nd�rmesi nedeniyle bir sorun ya��yorsan�z, bunu istemciyi ba�latmadan �nce deneyiniz. - - 4.19) Hangi PostgreSQL s�r�m�n� �al�st�rd�g�m� nas�l g�rebilirim? - - psql arabiriminde, SELECT version(); yaz�n�z. - - 4.20) Neden large-object islemlerim, "invalid large obj descriptor"? hatas�n� veriyor? - - Large object i�lemlerinizin u�lar�na, yani lo_open ... lo_close komutlar�n�n �evresine, - BEGIN WORK ve COMMIT koyman�z gerekmektedir. - - Eger ODBC gibi bir istemci arabirimi kullan�yorsan�z, auto-commit'i kapatman�z gerekebilir. - - 4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden kolonu nas�l yaratabilirim? - - Alttakini kullanabilirsiniz: - - CURRENT_TIMESTAMP: - CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); - - 4.22) Neden IN kullanan subquerylerim �ok yavas? - -7.4 s�r�m�nden �nce, subqueryler. E�er subquery sadece birka� sat�r ve outer query bol say�da sat�r d�nd�r�yorsa, IN -en h�zl�s�d�r. Sorgular� h�zland�rmak i�in IN yerine EXISTS kullan�n: - - SELECT * - FROM tab - WHERE col IN (SELECT subcol FROM subtab); +4.17) PostgreSQL'de kullan�lan baz� terimlerin anlamlar� nelerdir? -sorgusunu, a�a��daki ile de�i�tirin: +Kaynak kodun bir k�sm� ve eski belgeler, daha geni� kullan�m alan� olan terimleri kullan�rlar. Bunlar�n baz�lar�: + + * table, relation, class + * row, record, tuple + * column, field, attribute + * retrieve, select + * replace, update + * append, insert + * OID, serial value + * portal, cursor + * range variable, table name, table alias + +Genel veritaban� terimleri, http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html +adresinde bulunabilir. +4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatas�n� al�yorum? + +Sisteminizde sanal belle�inizi t�ketmi� olabilirsiniz, ya da �ekirde�iniz belli kaynaklar icin d���k bir s�n�ra sahip +olabilir. postmaster'� ba�latmadan �nce a�a��dakileri deneyebilirsiniz: + +ulimit -d 262144 +limit datasize 256m + + +Kabu�unuza ba�l� olarak, bunlardan sadece biri olumlu sonu� verecektir, ama bu i�lem veri segment s�n�r�n�z� +artt�racak, ve belki de sorgunuzun tamamlanmas�n� sa�layacakt�r. Bu komut, varolan i�leme (current process) ve komut +�al��t�r�ld�ktan sonraki t�m alt i�lemlere uygulan�r. E�er SQL istemcinizle, backend'in �ok fazla veri d�nd�rmesi +nedeniyle bir sorun ya��yorsan�z, bunu istemciyi ba�latmadan �nce deneyiniz. +4.19) Hangi PostgreSQL s�r�m�n� �al��t�rd���m� nas�l g�rebilirim? + +psql arabiriminde, select version(); yaz�n�z. +4.20) Neden large-object i�lemlerim, "invalid large obj descriptor" hatas�n� veriyor? + +Large object i�lemlerinizin u�lar�na, yani lo_open ... lo_close komutlar�n�n �evresine, BEGIN WORK ve COMMIT koyman�z +gerekmektedir; + +�u anda, PostgreSQL kurallar� large objectleri transaction commit edildi�inde kapatarak uygulamaktad�r. Dolay�s�yla +handle ile yap�lacak ilk �ey invalid large obj descriptor hatas� ile sonu�lanacakt�r.Dolay�s�yla �al��an kodunuz e�er +transaction kullanmazsan�z hata mesajlar� �retecektir. + +E�er ODBC gibi bir istemci arabirimi kullan�yorsan�z, auto-commit'i kapatman�z gerekebilir. +4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden How do I create a column that will default to the current +time? - SELECT * +Alttakini kullanabilirsiniz: + +CURRENT_TIMESTAMP: +CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); + + +4.22) Neden IN kullanan subquery'lerim �ok yavas? + +7.4 s�r�m�nden �nce, subqueryler. E�er subquery sadece birka� sat�r ve outer query bol say�da sat�r d�nd�r�yorsa, IN en +h�zl�s�d�r. Sorgular� h�zland�rmak i�in IN yerine EXISTS kullan�n: + +SELECT * FROM tab - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); + WHERE col1 IN (SELECT col2 FROM TAB2) + - Bunun h�zl� olabilmesi i�in, subcol'un indekslenmi� bir kolon olmas� gerekmektedir. - - 7.4 s�r�m� ve sonras�nda, IN asl�nda normal sorgularla ayn� karma��k join tekniklerini kullan�r ve EXISTS'e tercih - edilir. - - 4.23) Outer join islemini nas�l yapabilirim? - - PostgreSQL outer join i�lemlerini SQL standartlar�n� kullanarak ger�ekle�tirmektedir. - A�a��da 2 �rnek bulunmaktad�r: +sorgusunu, a�a��daki ile de�i�tirin: - SELECT * - FROM t1 LEFT OUTER JO�N t2 ON (t1.col = t2.col); +SELECT * + FROM tab + WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + - ya da +Bu i�lemin h�zl� olmas� i�in, subcol'un indexlenmi� bir kolon olmas� gerekmektedir. - SELECT * - FROM t1 LEFT OUTER JO�N t2 US�NG (col); +7.4 s�r�m� ve sonras�nda, IN asl�nda normal sorgularla ayn� karma��k join tekniklerini kullan�r ve EXISTS'e tercih +edilir. +4.23) Outer join i�lemini nas�l yapabilirim? - Bu �zde� sorgular t1.col ' i t2.col'ye join ederler ve ayn� zamanda t1'deki unjoined sat�rlar� - (t2'de e�lenmenis olanlarla) d�nd�r�rler. RIGHT JO�N t2'nin unjoined sat�rlar�n� ekleyecektir. - Bir FULL join, e�le�mi� b�t�n sat�rlar� ve t1 ile t2'den t�m ba�lanmam�� (unjoined) sat�rlar� al�r. - OUTER s�zc��� se�imseldir ve LEFT, RIGHT ve FULL join i�lemlerinde oldu�u kabul edilir. S�radan - join i�lemleri INNER join olarak adland�r�l�r. +PostgreSQL outer joins islemlerini SQL standartlar�n� kullanarak ger�ekle�tirmektedir. A�a��da 2 �rnek bulunmaktad�r: - �nceki s�r�mlerde, OUTER JOINler UNION ve NOT IN kullan�larak sim�le edilebiliyordu. �rne�in, tab1 - ve tab2'yi birle�tirirken, a�a��daki sorgu iki tablonun d��tan ba�lanmas�n� sa�lar: +SELECT * +FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + - 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 �N (SELECT tab2.col1 FROM tab2) - ORDER BY col1 +ya da - 4.24) Ayn� anda birden fazla veritaban�nda nas�l i�lem yapabilirim? +SELECT * +FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + - Mevcut veritaban�n�z d�s�ndaki baska bir veritaban�n�z� sorgulaman�z�n bir yolu bulunmamaktad�r. - bunun nedeni, PostgreSQL'in veritaban�na �zel sistem kataloglar� y�klemesidir. Bu nedenle, - cross-database bir sorgunun nas�l davranacag�n� kestirmek zordur. - - contrib/dblink fonksiyon �a�r�lar�n� kullanarak cross-database sorgulara izin vermektedir. Tabii ki, - bir istemci de�i�ik veritabanlar�na ayn� anda eri�im sa�layabilir ve bilgiyi bu sekilde - birle�tirebilir. +Bu �zde� sorgular t1.col' i t2.col'ye join ederler ve ayn� zamanda t1'deki unjoined sat�rlar� (t2'de e�lenmemi� +olanlarla) d�nd�r�rler. RIGHT JOIN t2'nin unjoined sat�rlar�n� ekleyecektir. Bir FULL join, e�le�mi� b�t�n sat�rlar� ve +t1 ile t2'den t�m ba�lanmam�� (unjoined) sat�rlar� al�r. OUTER s�zc��� se�imseldir ve LEFT, RIGHT ve FULL join +i�lemlerinde oldu�u kabul edilir. S�radan join i�lemleri INNER JOIN olarak adland�r�l�r. - 4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? +�nceki s�r�mlerde, OUTER JOINler UNION ve NOT IN kullan�larak sim�le edilebiliyordu. �rne�in, tab1 ve tab2'yi +birle�tirirken, a�a��daki sorgu iki tablonun d��tan ba�lanmas�n� sa�lar: - 7.3 s�r�m�nde, bir fonksiyondan kolayl�kla �oklu sat�r ya da s�tun d�nd�rebilirsiniz. +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 + - http://techdocs.postgresql.org/guides/SetReturningFunctions . +4.24) Ayn� andan birden fazla veritaban�nda nas�l i�lem yapabilirim? - 4.26) Neden PL/pgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo yaratma/kald�rma i�lemlerini yapam�yoruz? +Mevcut veritaban�n�z d���ndaki ba�ka bir veritaban�n�z� sorgulaman�z�n bir yolu bulunmamaktad�r. Bunun nedeni, +PostgreSQL'in veritaban�na �zel sistem kataloglar� y�klemesidir. Bu nedenle, cross-database bir sorgunun nas�l +davranaca��n� kestirmek zordur. - PL/pgSQL fonksiyon i�erikleri cacheler. Bunun istenmeyen bir taraf�, e�er bir PL/pgSQL fonksiyonu ge�ici bir - tabloya eri�iyorsa ve bu tablo ileride kald�r�l�p yeniden olu�turulduktan sonra fonksiyon yeniden �a�r�l�rsa, - fonksiyon �al��mayacakt�r; ��nk� cachelenmi� fonksiyon hala eski ge�ici tabloyu g�steriyor olacakt�r. ��z�m, - ge�ici tablo eri�imleri i�in PL/pgSQL'de EXECUTE kullanmakt�r. Bu, sorgunun her seferinde yeniden i�lenmesini - sa�layacakt�r. +contrib/dblink fonksiyon �a�r�lar�n� kullanarak cross-database sorgulara izin verir. Tabii ki, bir istemci de�i�ik +veritabanlar�na ayn� anda eri�im sa�layabilir ve bilgiyi bu �ekilde birle�tirebilir. +4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? - 4.27) Hangi replikasyon se�enekleri bulunmaktad�r? +7.3 s�r�m�nde, bir fonksiyondan kolayl�kla �oklu sat�r ya da s�tun d�nd�rebilirsiniz. +(http://techdocs.postgresql.org/guides/SetReturningFunctions) +4.26) Neden Pl/PgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo yaratma/kald�rma i�lemlerini yapam�yoruz? - �e�itli master/slave replikasyon se�enekleri bulunmaktad�r. Bunlar master veritaban�n�n veritaban� de�i�ikliklerini - yaparken, slave sunucunun sadece veritaban�nda okuma yapmas�na izin verir. - http://gborg.PostgreSQL.org/genpage?replication_research sayfas�n�n alt�nda bunlar�n listesini bulabilirsiniz. - http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php adresinde, �oklu-master replikasyon ��z�m� - �zerinde �al���l�yor. +PL/PgSQL fonksiyon i�erikleri cache'ler. Bunun istenmeyen bir taraf�, e�er bir PL/PgSQL fonksiyonu ge�ici bir tabloya +eri�iyorsa ve bu tablo ileride kald�r�l�p yeniden olu�turulduktan sonra fonksiyon yeniden �a�r�l�rsa, fonksiyon +�al��mayacakt�r; ��nk� cache'lenmi� fonksiyon hala eski ge�ici tabloyu g�steriyor olacakt�r. ��z�m, ge�ici tablo +eri�imleri i�in PL/PgSQL'de EXECUTE kullanmakt�r. Bu, sorgunun her seferinde yeniden i�lenmesini sa�layacakt�r. +4.27) Hangi replikasyon se�enekleri bulunmaktad�r? - 4.28) Hangi �ifreleme se�enekleri bulunmaktad�r? +�e�itli master/slave replikasyon se�enekleri bulunmaktad�r. Bunlar master veritaban�n�n veritaban� de�i�ikliklerini +yaparken, slave sunucunun sadece veritaban�nda okuma yapmas�na izin verir. +http://gborg.PostgreSQL.org/genpage?replication_research sayfas�n�n alt�nda bunlar�n listesini bulabilirsiniz. +http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php adresinde, �oklu-master replikasyon ��z�m� �zerinde +�al���l�yor. +4.28) 4.28) Hangi �ifreleme se�enekleri bulunmaktad�r? * contrib/pgcrypto SQL sorgular�nda kullan�labilmesi i�in �ifreleme fonksiyonlar� i�ermektedir. - * �stemciden sunucuya ileti�imi �ifrelemek i�in, sunucuda ssl se�ene�i postgresql.conf i�inde a��k olmal�d�r. - Ayr�ca,pg_hba.conf dosyas� i�inde host ya da hostssl kayd� mutlaka olmal�d�r ve istemci sslmode - kapat�lmamal�d�r. (Ayn� zamanda,PostgreSQL'in do�al SSL ba�lant�lar� d���nda ssh ya da ssl gibi 3.parti - �ifrelenmi� veri iletimi de m�mk�nd�r.) - * Veritaban� kullan�c� ad� ve �ifreleri 7.3 s�r�m� ile birlikte otomatik olarak �ifrelenirler. �nceki - s�r�mlerde, postgresql.conf i�indeki PASSWORD_ENCRYPTION se�ene�ini aktif hale getirmeniz gerekmektedir. + * �stemciden sunucuya ileti�imi �ifrelemek i�in, sunucuda ssl se�ene�i postgresql.conf i�inde a��k olmal�d�r. +Ayr�ca,pg_hba.conf dosyas� i�inde host ya da hostssl kayd� mutlaka olmal�d�r ve istemci sslmode kapat�lmamal�d�r. (Ayn� +zamanda,PostgreSQL'in do�al SSL ba�lant�lar� d���nda ssh ya da ssl gibi 3.parti �ifrelenmi� veri iletimi de m�mk�nd�r.) + * Veritaban� kullan�c� ad� ve �ifreleri 7.3 s�r�m� ile birlikte otomatik olarak �ifrelenirler. �nceki s�r�mlerde, +postgresql.conf i�indeki PASSWORD_ENCRYPTION se�ene�ini aktif hale getirmeniz gerekmektedir. * Sunucunun kendisini �ifreli dosya sistemi �zerinde �al��t�rabilirsiniz. - _________________________________________________________________ - - PostgreSQL �zelliklerini Geni�letmek - - 5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman neden core dump ediyor? - - Sorunun nedeni birden fazla sey olabilir. Kullanici-tanimli fonksiyonunuzu stand-alone bir programda - calistirmayi deneyiniz. - - 5.2) PostgreSQL'e nas�l yeni veri tipleri/fonksiyonlar ekleyebilirim? - - �al��malar�n�z� pgsql-hackers e-posta listesine g�nderiniz. Kodunuz incelendikten sonra - /contrib dizinine konacakt�r. - - 5.3) Bir tuple d�nd�rmek icin bir C fonksiyonunu nas�l yazar�m? - - PostgreSQL 7.3 s�r�m� ile birlikte, C, PL/pgSQL ve SQL kullan�larak tablo-d�nd�ren - fonksiyonlar tamamen desteklenmektedir. Ayr�nt�l� bilgi i�in "Programmer's Guide" a - bakabilirsiniz. Bir �rne�i contrib/tablefunc i�inde bulabilirsiniz. - - 5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men de�i�iklik - ge�erli olmuyor. Neden? - - Makefile'lar include dosyalar� i�in tam bir ba��ml�l�k i�ermezler. - �ncelikle make clean, ard�ndan da baska bir make i�lemi yapman�z gerekir. - GCC kullan�yorsaniz, configure beti�inin --enable-depend se�ene�ini, derleyicinin - ba��ml�l�klar� otomatik olarak hesaplamas� i�in kullanabilirsiniz. +PostgreSQL �zelliklerini Geni�letmek +5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman neden core dump ediyor? + +Sorunun nedeni birden fazla �ey olabilir. Kullan�c�-tan�ml� fonksiyonunuzu stand-alone bir programda �al��t�rmay� +deneyiniz. +5.2) PostgreSQL'e nas�l yeni tipler/fonksiyonlar ekleyebilirim? + +�al��malar�n�z� pgsql-hackers e-posta listesine g�nderiniz. Kodunuz incelendikten sonra /contrib dizinine konacakt�r. +5.3) Bir tuple dond�rmek icin bir C fonksiyonunu nasil yazar�m? + +PostgreSQL 7.3 s�r�m� ile birlikte, C, PL/PgSQL ve SQL kullan�larak tablo-d�nd�ren fonksiyonlar tamamen +desteklenmektedir. Ayr�nt�l� bilgi i�in PostgreSQL 7.3.2 Kullan�c� Rehberi'ne bakabilrisiniz. Bir �rne�i +contrib/tablefunc i�inde bulabilirsiniz. +5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men de�i�iklik ge�erli olmuyor. Neden? + +Makefile'lar include dosyalar� i�in tam bir ba��ml�l�k i�ermezler. �ncelikle make clean, ard�ndan da baska bir make +i�lemi yapman�z gerekir. GCC kullan�yorsan�z, configure beti�inin --enable-depend se�ene�ini, derleyicinin +ba��ml�l�klar� otomatik olarak hesaplamas� i�in kullanabilirsiniz. |