{"id":33752,"date":"2025-11-06T16:21:10","date_gmt":"2025-11-06T13:21:10","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/"},"modified":"2025-11-06T16:21:10","modified_gmt":"2025-11-06T13:21:10","slug":"veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/","title":{"rendered":"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#8217;da Kullan\u0131lmal\u0131?"},"content":{"rendered":"<p><title>Ubuntu&#8217;da PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Detayl\u0131 Rehber<\/title><br \/>\n<body><\/p>\n<p>Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL&#8217;i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL&#8217;in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.<\/p>\n<h2>Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#8217;da Kullan\u0131lmal\u0131?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, her \u00f6l\u00e7ekten uygulaman\u0131n ve hizmetin temelinde g\u00fcvenilir bir veri depolama ve y\u00f6netim sistemi yatar. Bu sistemler aras\u0131nda \u00f6ne \u00e7\u0131kanlardan biri de hi\u00e7 \u015f\u00fcphesiz PostgreSQL&#8217;dir. PostgreSQL, g\u00fc\u00e7l\u00fc, a\u00e7\u0131k kaynakl\u0131, nesne-ili\u015fkisel bir veritaban\u0131 y\u00f6netim sistemidir (ORDBMS). Y\u0131llar i\u00e7inde kazand\u0131\u011f\u0131 itibar, sadece kararl\u0131l\u0131\u011f\u0131 ve geli\u015fmi\u015f \u00f6zellikleriyle de\u011fil, ayn\u0131 zamanda geni\u015fletilebilir yap\u0131s\u0131 ve kat\u0131 standartlara uygunlu\u011fuyla da peki\u015fmi\u015ftir. Geli\u015ftiriciler ve i\u015fletmeler i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmesinin ard\u0131nda yatan nedenler olduk\u00e7a fazlad\u0131r. \u00d6zellikle ACID (Atomicity, Consistency, Isolation, Durability) uyumlulu\u011fu sayesinde, i\u015flem b\u00fct\u00fcnl\u00fc\u011f\u00fc ve veri g\u00fcvenli\u011fi konusunda en \u00fcst d\u00fczeyde garanti sunar. Bu, finansal uygulamalardan e-ticaret platformlar\u0131na, hatta kritik altyap\u0131 sistemlerine kadar geni\u015f bir yelpazede tercih edilmesini sa\u011flar.<\/p>\n<p>Peki, bu kadar g\u00fc\u00e7l\u00fc bir veritaban\u0131 sistemini neden \u00f6zellikle Ubuntu \u00fczerinde kullanmal\u0131y\u0131z? Ubuntu, hem sunucu hem de masa\u00fcst\u00fc ortamlar\u0131nda yayg\u0131n olarak kullan\u0131lan, kararl\u0131 ve geli\u015ftirici dostu bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Geni\u015f bir toplulu\u011fa sahip olmas\u0131, s\u00fcrekli g\u00fcncel paketler sunmas\u0131 ve kullan\u0131c\u0131 dostu aray\u00fcz\u00fc sayesinde, PostgreSQL gibi karma\u015f\u0131k sistemlerin kurulumu ve y\u00f6netimi i\u00e7in ideal bir platform sunar. Ayr\u0131ca, Ubuntu&#8217;nun &#x20;<code>apt<\/code>&#x20; paket y\u00f6netim sistemi, PostgreSQL&#8217;in en son s\u00fcr\u00fcmlerine kolayca eri\u015fim sa\u011flayarak kurulum s\u00fcrecini olduk\u00e7a basitle\u015ftirir. G\u00fcvenlik g\u00fcncellemeleri ve yamalar konusunda da Ubuntu&#8217;nun h\u0131zl\u0131 tepki vermesi, veri taban\u0131 sunucunuzun her zaman g\u00fcvende kalmas\u0131na yard\u0131mc\u0131 olur. Sonu\u00e7 olarak, PostgreSQL&#8217;in sa\u011flaml\u0131\u011f\u0131 ile Ubuntu&#8217;nun kullan\u0131m kolayl\u0131\u011f\u0131 ve kararl\u0131l\u0131\u011f\u0131 birle\u015fti\u011finde, hem ba\u015flang\u0131\u00e7 seviyesindeki kullan\u0131c\u0131lar hem de deneyimli profesyoneller i\u00e7in m\u00fckemmel bir kombinasyon ortaya \u00e7\u0131kar. Bu rehberde, bu g\u00fc\u00e7l\u00fc ikilinin nas\u0131l bir araya getirilece\u011fini ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: PostgreSQL&#8217;in &#8220;nesne-ili\u015fkisel&#8221; yap\u0131s\u0131, sadece geleneksel ili\u015fkisel veritaban\u0131 \u00f6zelliklerini de\u011fil, ayn\u0131 zamanda JSON, XML gibi karma\u015f\u0131k veri tiplerini ve \u00f6zel fonksiyonlar\u0131 da desteklemesini sa\u011flar. Bu, modern uygulama geli\u015ftirme ihtiya\u00e7lar\u0131 i\u00e7in onu olduk\u00e7a esnek k\u0131lar.\n<\/div>\n<h2>PostgreSQL Kurulumuna Haz\u0131rl\u0131k: Neden Ubuntu ve \u00d6n Gereksinimler Nelerdir?<\/h2>\n<p>PostgreSQL&#8217;i sorunsuz bir \u015fekilde kurmak ve y\u00f6netmek i\u00e7in do\u011fru temel haz\u0131rl\u0131k \u015fartt\u0131r. Bu noktada, Ubuntu&#8217;nun tercih edilmesi olduk\u00e7a mant\u0131kl\u0131d\u0131r. Ubuntu, \u00f6zellikle sunucu taraf\u0131nda, g\u00fcvenlik, kararl\u0131l\u0131k ve geni\u015f topluluk deste\u011fi ile \u00f6ne \u00e7\u0131kar. Geli\u015ftiriciler i\u00e7in sundu\u011fu kolayl\u0131klar ve &#x20;<code>apt<\/code>&#x20; paket y\u00f6neticisinin g\u00fcc\u00fc, PostgreSQL gibi karma\u015f\u0131k yaz\u0131l\u0131mlar\u0131n kurulumunu ve g\u00fcncellemelerini basitle\u015ftirir. Ayr\u0131ca, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcmleri sayesinde, veritaban\u0131 sunucunuzu y\u0131llarca g\u00fcvenle ve minimum bak\u0131m gereksinimiyle \u00e7al\u0131\u015ft\u0131rabilirsiniz. Peki, bu kurulum s\u00fcreci i\u00e7in nelere ihtiyac\u0131m\u0131z var?<\/p>\n<h3>Sistem Gereksinimleri ve Temel Haz\u0131rl\u0131k Ad\u0131mlar\u0131<\/h3>\n<p>PostgreSQL, genellikle olduk\u00e7a optimize edilmi\u015f bir veritaban\u0131 oldu\u011fu i\u00e7in, m\u00fctevaz\u0131 sistem kaynaklar\u0131yla bile iyi performans g\u00f6sterebilir. Ancak, uygulaman\u0131z\u0131n \u00f6l\u00e7e\u011fine ve beklenen y\u00fck miktar\u0131na ba\u011fl\u0131 olarak donan\u0131m gereksinimleri de\u011fi\u015fecektir. Genel bir ba\u015flang\u0131\u00e7 noktas\u0131 olarak, en az 2GB RAM ve \u00e7ift \u00e7ekirdekli bir i\u015flemci \u00e7o\u011fu k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli proje i\u00e7in yeterli olacakt\u0131r. Disk alan\u0131 ise depolayaca\u011f\u0131n\u0131z veri miktar\u0131na g\u00f6re de\u011fi\u015fir, ancak i\u015fletim sistemi ve PostgreSQL i\u00e7in ba\u015flang\u0131\u00e7ta en az 20GB bo\u015f alana sahip olman\u0131z \u00f6nerilir. Daha da \u00f6nemlisi, veritaban\u0131 performans\u0131n\u0131 do\u011frudan etkileyece\u011fi i\u00e7in h\u0131zl\u0131 bir SSD kullanmak her zaman daha iyidir.<\/p>\n<p>Kuruluma ba\u015flamadan \u00f6nce, Ubuntu sunucunuzun g\u00fcncel oldu\u011fundan emin olmak hayati \u00f6nem ta\u015f\u0131r. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve en son yaz\u0131l\u0131m paketlerine eri\u015fmenizi sa\u011flar. Terminali a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\nsudo apt update\nsudo apt upgrade -y\n<\/code><\/pre>\n<p>Bu komutlar, paket listelerinizi g\u00fcncelleyecek ve mevcut t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltecektir. Ayr\u0131ca, bir veritaban\u0131 sunucusu \u00e7al\u0131\u015ft\u0131r\u0131rken g\u00fcvenlik duvar\u0131 (firewall) yap\u0131land\u0131rmas\u0131 kritik \u00f6neme sahiptir. Ubuntu&#8217;da varsay\u0131lan olarak gelen UFW (Uncomplicated Firewall) arac\u0131n\u0131 kullanarak PostgreSQL&#8217;in varsay\u0131lan portu olan 5432&#8217;ye eri\u015fime izin vermeniz gerekebilir. Ancak, bu portu sadece belirli IP adreslerinden veya uygulama sunucular\u0131n\u0131zdan eri\u015fime a\u00e7mak, genel g\u00fcvenlik duru\u015funuzu \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r. E\u011fer t\u00fcm d\u00fcnyadan eri\u015fime izin vermek isterseniz (ki bu genellikle \u00f6nerilmez), a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nsudo ufw allow 5432\/tcp\nsudo ufw enable\nsudo ufw status\n<\/code><\/pre>\n<p>Ancak, daha g\u00fcvenli bir yakla\u015f\u0131m, yaln\u0131zca belirli bir IP adresinden (\u00f6rne\u011fin, uygulama sunucunuzun IP adresi) eri\u015fime izin vermektir:<\/p>\n<pre><code>\nsudo ufw allow from 192.168.1.100 to any port 5432\n<\/code><\/pre>\n<p>Bu \u00f6n haz\u0131rl\u0131k ad\u0131mlar\u0131, PostgreSQL kurulumunuzun sa\u011flam bir temel \u00fczerine in\u015fa edilmesini sa\u011flayacak ve gelecekteki olas\u0131 sorunlar\u0131n \u00f6n\u00fcne ge\u00e7ecektir. Art\u0131k PostgreSQL&#8217;i kurmaya haz\u0131r\u0131z.<\/p>\n<h2>Ubuntu \u00dczerine PostgreSQL Nas\u0131l Kurulur? Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>Ubuntu&#8217;da PostgreSQL kurulumu, &#x20;<code>apt<\/code>&#x20; paket y\u00f6neticisi sayesinde olduk\u00e7a basit bir s\u00fcre\u00e7tir. Ancak, en g\u00fcncel s\u00fcr\u00fcm\u00fc edinmek ve s\u00fcr\u00fcm y\u00f6netimini kolayla\u015ft\u0131rmak i\u00e7in PostgreSQL&#8217;in kendi resmi deposunu kullanmak genellikle iyi bir uygulamad\u0131r. Bu, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131nda bulunan s\u00fcr\u00fcmden daha yeni \u00f6zelliklere ve performans iyile\u015ftirmelerine eri\u015fmenizi sa\u011flar.<\/p>\n<h3>PostgreSQL Resmi Deposunu Ekleme ve Kurulum<\/h3>\n<p>\u0130lk olarak, PostgreSQL GPG anahtar\u0131n\u0131 sisteminize eklememiz gerekiyor. Bu anahtar, indirdi\u011fimiz paketlerin ger\u00e7ekten PostgreSQL taraf\u0131ndan sa\u011fland\u0131\u011f\u0131n\u0131 do\u011frulamam\u0131z\u0131 sa\u011flar:<\/p>\n<pre><code>\nsudo sh -c 'echo \"deb http:\/\/apt.postgresql.org\/pub\/repos\/apt $(lsb_release -cs)-pgdg main\" > \/etc\/apt\/sources.list.d\/pgdg.list'\nwget --quiet -O - https:\/\/www.postgresql.org\/media\/keys\/ACCC4CF8.asc | sudo apt-key add -\n<\/code><\/pre>\n<p>Bu komutlar, PostgreSQL deposunu &#x20;<code>sources.list.d<\/code>&#x20; dizininize ekler ve ard\u0131ndan GPG anahtar\u0131n\u0131 i\u00e7e aktar\u0131r. Depo eklendikten sonra, paket listemizi tekrar g\u00fcncelleyerek yeni depo i\u00e7eri\u011fini sistemimize tan\u0131tmam\u0131z gerekir:<\/p>\n<pre><code>\nsudo apt update\n<\/code><\/pre>\n<p>\u015eimdi, PostgreSQL sunucusunu ve gerekli yard\u0131mc\u0131 programlar\u0131 kurmaya haz\u0131r\u0131z. &#x20;<code>postgresql<\/code>&#x20; paketi ana veritaban\u0131 sunucusunu i\u00e7erirken, &#x20;<code>postgresql-contrib<\/code>&#x20; paketi \u00e7e\u015fitli ek mod\u00fcller ve ara\u00e7lar sa\u011flar:<\/p>\n<pre><code>\nsudo apt install postgresql postgresql-contrib -y\n<\/code><\/pre>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, PostgreSQL servisi otomatik olarak ba\u015flayacak ve sistem ba\u015flang\u0131c\u0131nda etkinle\u015ftirilecektir. Kurulumun ba\u015far\u0131l\u0131 oldu\u011funu ve servisin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nsudo systemctl status postgresql\n<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, \u00e7\u0131kt\u0131da &#8220;active (exited)&#8221; veya &#8220;active (running)&#8221; benzeri bir durum g\u00f6rmelisiniz. Bu, PostgreSQL sunucunuzun Ubuntu \u00fczerinde ba\u015far\u0131yla kuruldu\u011fu ve \u00e7al\u0131\u015fmaya haz\u0131r oldu\u011fu anlam\u0131na gelir. Varsay\u0131lan olarak, PostgreSQL, &#x20;<code>postgres<\/code>&#x20; ad\u0131nda bir s\u00fcper kullan\u0131c\u0131 hesab\u0131 olu\u015fturur ve bu hesap, Ubuntu&#8217;daki &#x20;<code>postgres<\/code>&#x20; sistem kullan\u0131c\u0131s\u0131yla ili\u015fkilendirilir. Veritaban\u0131 y\u00f6netim i\u015flemlerine ba\u015flamak i\u00e7in bu kullan\u0131c\u0131ya ge\u00e7i\u015f yapmam\u0131z gerekecektir. Bu ad\u0131mlar\u0131n ard\u0131ndan, veritaban\u0131 olu\u015fturma, kullan\u0131c\u0131 tan\u0131mlama ve temel SQL sorgular\u0131 gibi i\u015flemlere ge\u00e7ebiliriz. Art\u0131k g\u00fc\u00e7l\u00fc bir PostgreSQL sunucusuna sahipsiniz ve veri y\u00f6netimi yolculu\u011funuza devam etmek i\u00e7in sa\u011flam bir temeliniz var.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Birden fazla PostgreSQL s\u00fcr\u00fcm\u00fcn\u00fc ayn\u0131 sunucuda \u00e7al\u0131\u015ft\u0131rmak isterseniz, &#x20;<code>apt install postgresql-&lt;s\u00fcr\u00fcm_numaras\u0131&gt;<\/code>&#x20; komutunu kullanabilirsiniz (\u00f6rn. &#x20;<code>postgresql-15<\/code>&#x20;). Bu, farkl\u0131 projeler i\u00e7in farkl\u0131 s\u00fcr\u00fcm gereksinimlerini y\u00f6netmenize olanak tan\u0131r.\n<\/div>\n<h2>PostgreSQL Veritaban\u0131 Y\u00f6netimi: Kullan\u0131c\u0131lar, Rol ve Veritaban\u0131 Olu\u015fturma<\/h2>\n<p>PostgreSQL kurulumu tamamland\u0131ktan sonra, ilk ad\u0131m veritaban\u0131 ortam\u0131n\u0131z\u0131 yap\u0131land\u0131rmakt\u0131r. Bu, yeni kullan\u0131c\u0131lar olu\u015fturmay\u0131, onlara uygun roller atamay\u0131 ve verilerinizin depolanaca\u011f\u0131 veritabanlar\u0131n\u0131 kurmay\u0131 i\u00e7erir. PostgreSQL, rol tabanl\u0131 bir kimlik do\u011frulama sistemi kullan\u0131r ve bu, veritaban\u0131 g\u00fcvenli\u011finin temelini olu\u015fturur.<\/p>\n<h3>Varsay\u0131lan Kullan\u0131c\u0131 ve Veritaban\u0131 Eri\u015fimi<\/h3>\n<p>Kurulumdan sonra, PostgreSQL otomatik olarak &#x20;<code>postgres<\/code>&#x20; ad\u0131nda bir s\u00fcper kullan\u0131c\u0131 ve &#x20;<code>postgres<\/code>&#x20; ad\u0131nda bir varsay\u0131lan veritaban\u0131 olu\u015fturur. Bu &#x20;<code>postgres<\/code>&#x20; kullan\u0131c\u0131s\u0131, veritaban\u0131 sunucusu \u00fczerindeki en y\u00fcksek yetkilere sahiptir. Bu kullan\u0131c\u0131ya eri\u015fmek i\u00e7in, \u00f6nce Ubuntu&#8217;daki &#x20;<code>postgres<\/code>&#x20; sistem kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yapman\u0131z gerekir:<\/p>\n<pre><code>\nsudo -i -u postgres\n<\/code><\/pre>\n<p>\u015eimdi, PostgreSQL komut sat\u0131r\u0131 aray\u00fcz\u00fcne (&#x20;<code>psql<\/code>&#x20;) ba\u011flanabilirsiniz:<\/p>\n<pre><code>\npsql\n<\/code><\/pre>\n<p>Bu komut sizi &#x20;<code>postgres=#<\/code>&#x20; istemine getirecektir. Buradan, veritaban\u0131 y\u00f6netim komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz. \u0130\u015finiz bitti\u011finde &#x20;<code>\\q<\/code>&#x20; yazarak &#x20;<code>psql<\/code>&#8216;den \u00e7\u0131kabilirsiniz.<\/p>\n<h3>Yeni Kullan\u0131c\u0131 (Rol) ve Veritaban\u0131 Olu\u015fturma<\/h3>\n<p>G\u00fcvenlik ve iyi uygulama prensipleri gere\u011fi, uygulamalar\u0131n\u0131z ve di\u011fer kullan\u0131c\u0131lar i\u00e7in &#x20;<code>postgres<\/code>&#x20; s\u00fcper kullan\u0131c\u0131s\u0131n\u0131 do\u011frudan kullanmaktan ka\u00e7\u0131nmal\u0131s\u0131n\u0131z. Bunun yerine, her uygulama veya kullan\u0131c\u0131 i\u00e7in ayr\u0131 bir rol (PostgreSQL&#8217;de kullan\u0131c\u0131lar asl\u0131nda birer rold\u00fcr) ve veritaban\u0131 olu\u015fturmal\u0131s\u0131n\u0131z. \u00d6rne\u011fin, bir web uygulamas\u0131 i\u00e7in &#x20;<code>webapp_user<\/code>&#x20; ad\u0131nda bir kullan\u0131c\u0131 ve &#x20;<code>webapp_db<\/code>&#x20; ad\u0131nda bir veritaban\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>\n-- Yeni bir kullan\u0131c\u0131 (rol) olu\u015fturma\nCREATE USER webapp_user WITH PASSWORD 'gucluvegizlisifre';\n\n-- Yeni bir veritaban\u0131 olu\u015fturma ve sahibini belirleme\nCREATE DATABASE webapp_db OWNER webapp_user;\n\n-- Kullan\u0131c\u0131ya veritaban\u0131 \u00fczerinde t\u00fcm yetkileri verme\nGRANT ALL PRIVILEGES ON DATABASE webapp_db TO webapp_user;\n<\/code><\/pre>\n<p>Bu komutlar\u0131 &#x20;<code>psql<\/code>&#x20; isteminde &#x20;<code>postgres<\/code>&#x20; kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, &#x20;<code>webapp_user<\/code>&#x20; art\u0131k &#x20;<code>webapp_db<\/code>&#x20; veritaban\u0131na &#x20;<code>gucluvegizlisifre<\/code>&#x20; \u015fifresiyle ba\u011flanabilir. Yeni kullan\u0131c\u0131yla ba\u011flanmay\u0131 deneyelim:<\/p>\n<pre><code>\npsql -U webapp_user -d webapp_db\n<\/code><\/pre>\n<p>Bu komut, sizi &#x20;<code>webapp_db=><\/code>&#x20; istemine getirecektir. Bu, &#x20;<code>webapp_user<\/code>&#x20; olarak &#x20;<code>webapp_db<\/code>&#x20; veritaban\u0131na ba\u015far\u0131yla ba\u011fland\u0131\u011f\u0131n\u0131z anlam\u0131na gelir. Kullan\u0131c\u0131 ve veritaban\u0131 y\u00f6netimi, PostgreSQL&#8217;in g\u00fc\u00e7l\u00fc g\u00fcvenlik modelinin temelini olu\u015fturur. Rolleri ve yetkileri do\u011fru bir \u015fekilde yap\u0131land\u0131rmak, veritaban\u0131 g\u00fcvenli\u011finizi art\u0131r\u0131r ve yetkisiz eri\u015fimi engeller. Ayr\u0131ca, birden fazla veritaban\u0131 ve kullan\u0131c\u0131 ile \u00e7al\u0131\u015f\u0131rken, her birine \u00f6zg\u00fc yetkiler atamak, sisteminizin daha d\u00fczenli ve y\u00f6netilebilir olmas\u0131n\u0131 sa\u011flar. Bu sayede, farkl\u0131 projeleriniz veya farkl\u0131 departmanlar\u0131n\u0131z i\u00e7in ayr\u0131 ayr\u0131, izole edilmi\u015f veri ortamlar\u0131 yaratabilirsiniz. Bu yap\u0131land\u0131rma, PostgreSQL&#8217;in esnekli\u011fini ve kurumsal kullan\u0131ma uygunlu\u011funu g\u00f6steren \u00f6nemli bir ad\u0131md\u0131r.<\/p>\n<h2>PostgreSQL ile \u0130lk Ad\u0131mlar: Veritaban\u0131 Ba\u011flant\u0131s\u0131 ve Temel SQL Komutlar\u0131<\/h2>\n<p>PostgreSQL sunucunuzu kurup gerekli kullan\u0131c\u0131lar\u0131 ve veritabanlar\u0131n\u0131 olu\u015fturduktan sonra, s\u0131ra veritaban\u0131yla etkile\u015fime ge\u00e7meye gelir. Bu b\u00f6l\u00fcm, &#x20;<code>psql<\/code>&#x20; komut sat\u0131r\u0131 arac\u0131n\u0131 kullanarak veritaban\u0131na nas\u0131l ba\u011flanaca\u011f\u0131n\u0131z\u0131 ve tablolar olu\u015fturmaktan veri manip\u00fclasyonuna kadar temel SQL komutlar\u0131n\u0131 nas\u0131l uygulayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h3>Veritaban\u0131na Ba\u011flanma<\/h3>\n<p>Daha \u00f6nce olu\u015fturdu\u011fumuz &#x20;<code>webapp_user<\/code>&#x20; kullan\u0131c\u0131s\u0131 ve &#x20;<code>webapp_db<\/code>&#x20; veritaban\u0131n\u0131 kullanarak &#x20;<code>psql<\/code>&#x20; istemcisi \u00fczerinden ba\u011flant\u0131 kural\u0131m. Terminalinizde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\npsql -U webapp_user -d webapp_db -h localhost\n<\/code><\/pre>\n<p>&#x20;<code>-U<\/code>&#x20; kullan\u0131c\u0131 ad\u0131n\u0131, &#x20;<code>-d<\/code>&#x20; veritaban\u0131 ad\u0131n\u0131 ve &#x20;<code>-h<\/code>&#x20; ise sunucu adresini belirtir. E\u011fer ba\u015fka bir sunucudan ba\u011flan\u0131yorsan\u0131z &#x20;<code>localhost<\/code>&#x20; yerine o sunucunun IP adresini veya alan ad\u0131n\u0131 yazmal\u0131s\u0131n\u0131z. \u015eifreniz istendi\u011finde, &#x20;<code>webapp_user<\/code>&#x20; i\u00e7in belirledi\u011finiz \u015fifreyi girin. Ba\u015far\u0131l\u0131 bir ba\u011flant\u0131dan sonra &#x20;<code>webapp_db=><\/code>&#x20; istemini g\u00f6receksiniz.<\/p>\n<h3>Temel SQL Komutlar\u0131: Tablo Olu\u015fturma ve Veri Manip\u00fclasyonu<\/h3>\n<p>\u015eimdi &#x20;<code>webapp_db<\/code>&#x20; i\u00e7inde bir tablo olu\u015ftural\u0131m. Bir blog uygulamas\u0131 i\u00e7in &#x20;<code>posts<\/code>&#x20; ad\u0131nda bir tablo hayal edelim:<\/p>\n<pre><code>\nCREATE TABLE posts (\n    id SERIAL PRIMARY KEY,\n    title VARCHAR(255) NOT NULL,\n    content TEXT,\n    author VARCHAR(100),\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n<\/code><\/pre>\n<p>Bu komut, &#x20;<code>posts<\/code>&#x20; ad\u0131nda bir tablo olu\u015fturur. &#x20;<code>SERIAL PRIMARY KEY<\/code>&#x20; otomatik artan bir anahtar, &#x20;<code>VARCHAR<\/code>&#x20; ve &#x20;<code>TEXT<\/code>&#x20; metin alanlar\u0131, &#x20;<code>TIMESTAMP WITH TIME ZONE<\/code>&#x20; ise zaman damgas\u0131 i\u00e7indir. &#x20;<code>NOT NULL<\/code>&#x20; o alan\u0131n bo\u015f b\u0131rak\u0131lamayaca\u011f\u0131n\u0131 belirtirken, &#x20;<code>DEFAULT CURRENT_TIMESTAMP<\/code>&#x20; varsay\u0131lan de\u011feri o anki zaman olarak ayarlar.<\/p>\n<h4>Veri Ekleme (INSERT)<\/h4>\n<p>Tabloya veri eklemek i\u00e7in &#x20;<code>INSERT INTO<\/code>&#x20; komutunu kullan\u0131r\u0131z:<\/p>\n<pre><code>\nINSERT INTO posts (title, content, author) VALUES\n('\u0130lk Blog Yaz\u0131m', 'Bu benim PostgreSQL ile yazd\u0131\u011f\u0131m ilk blog yaz\u0131m.', 'Ali Can'),\n('PostgreSQL G\u00fcc\u00fc', 'PostgreSQL ile veri y\u00f6netimi hi\u00e7 bu kadar kolay olmam\u0131\u015ft\u0131.', 'Ay\u015fe Y\u0131lmaz');\n<\/code><\/pre>\n<h4>Veri Sorgulama (SELECT)<\/h4>\n<p>Ekledi\u011fimiz verileri g\u00f6rmek i\u00e7in &#x20;<code>SELECT<\/code>&#x20; komutunu kullan\u0131r\u0131z:<\/p>\n<pre><code>\nSELECT * FROM posts;\n<\/code><\/pre>\n<p>Belirli ko\u015fullara g\u00f6re veri se\u00e7mek i\u00e7in &#x20;<code>WHERE<\/code>&#x20; ifadesini kullan\u0131r\u0131z:<\/p>\n<pre><code>\nSELECT title, author FROM posts WHERE author = 'Ali Can';\n<\/code><\/pre>\n<h4>Veri G\u00fcncelleme (UPDATE)<\/h4>\n<p>Mevcut bir kayd\u0131 g\u00fcncellemek i\u00e7in &#x20;<code>UPDATE<\/code>&#x20; komutunu kullan\u0131r\u0131z:<\/p>\n<pre><code>\nUPDATE posts SET content = 'G\u00fcncellenmi\u015f i\u00e7erik: PostgreSQL ger\u00e7ekten harika!' WHERE id = 1;\n<\/code><\/pre>\n<h4>Veri Silme (DELETE)<\/h4>\n<p>Bir kayd\u0131 silmek i\u00e7in &#x20;<code>DELETE FROM<\/code>&#x20; komutunu kullan\u0131r\u0131z:<\/p>\n<pre><code>\nDELETE FROM posts WHERE id = 2;\n<\/code><\/pre>\n<h4>Tablo Silme (DROP TABLE)<\/h4>\n<p>Bir tabloyu tamamen silmek i\u00e7in &#x20;<code>DROP TABLE<\/code>&#x20; komutunu kullan\u0131r\u0131z (dikkatli olun, bu geri al\u0131namaz bir i\u015flemdir):<\/p>\n<pre><code>\nDROP TABLE posts;\n<\/code><\/pre>\n<p>Bu temel SQL komutlar\u0131, PostgreSQL veritaban\u0131n\u0131zla etkile\u015fim kurman\u0131z i\u00e7in bir ba\u015flang\u0131\u00e7 noktas\u0131 sunar. &#x20;<code>psql<\/code>&#x20; istemcisini kullanarak bu komutlar\u0131 pratik etmek, veritaban\u0131 y\u00f6netimi becerilerinizi geli\u015ftirmenin en iyi yollar\u0131ndan biridir. Unutmay\u0131n, SQL dili olduk\u00e7a zengin ve karma\u015f\u0131kt\u0131r; bu sadece y\u00fczeyini \u00e7izdi\u011fimiz bir ba\u015flang\u0131\u00e7t\u0131r. Ancak, bu temel bilgilerle bile bir\u00e7ok yayg\u0131n veritaban\u0131 i\u015flemini ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Bir Web Uygulamas\u0131 i\u00e7in PostgreSQL Kullan\u0131m\u0131<\/h2>\n<p>Teorik bilgileri pratik bir senaryo ile peki\u015ftirmek, PostgreSQL&#8217;in ger\u00e7ek d\u00fcnyadaki de\u011ferini anlamak i\u00e7in kritik \u00f6neme sahiptir. Bir web uygulamas\u0131 geli\u015ftirirken, veritaban\u0131 se\u00e7imi ve tasar\u0131m\u0131, uygulaman\u0131n performans\u0131, \u00f6l\u00e7eklenebilirli\u011fi ve g\u00fcvenli\u011fi \u00fczerinde do\u011frudan bir etkiye sahiptir. Bu b\u00f6l\u00fcmde, basit bir blog platformu \u00f6rne\u011fi \u00fczerinden PostgreSQL&#8217;in nas\u0131l kullan\u0131labilece\u011fini ve baz\u0131 \u00f6nemli tasar\u0131m kararlar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h3>Vaka Analizi: Basit Bir Blog Uygulamas\u0131<\/h3>\n<p>Hayal edin ki bir blog platformu geli\u015ftiriyorsunuz. Bu platformda kullan\u0131c\u0131lar yaz\u0131 yazabilir, yorum yapabilir ve di\u011fer kullan\u0131c\u0131lar\u0131n yaz\u0131lar\u0131n\u0131 okuyabilir. Bu senaryoda ihtiya\u00e7 duyaca\u011f\u0131m\u0131z temel varl\u0131klar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Kullan\u0131c\u0131lar (Users):<\/strong> Bloga kay\u0131tl\u0131 ki\u015filer.<\/li>\n<li><strong>Yaz\u0131lar (Posts):<\/strong> Kullan\u0131c\u0131lar\u0131n yazd\u0131\u011f\u0131 blog yaz\u0131lar\u0131.<\/li>\n<li><strong>Yorumlar (Comments):<\/strong> Yaz\u0131lara yap\u0131lan yorumlar.<\/li>\n<\/ul>\n<p>Bu varl\u0131klar\u0131 PostgreSQL&#8217;de tablolar olarak modelleyece\u011fiz ve aralar\u0131ndaki ili\u015fkileri tan\u0131mlayaca\u011f\u0131z. Daha \u00f6nce olu\u015fturdu\u011fumuz &#x20;<code>webapp_db<\/code>&#x20; veritaban\u0131na &#x20;<code>webapp_user<\/code>&#x20; olarak ba\u011flanarak a\u015fa\u011f\u0131daki tablolar\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>\n-- Kullan\u0131c\u0131lar tablosu\nCREATE TABLE users (\n    id SERIAL PRIMARY KEY,\n    username VARCHAR(50) UNIQUE NOT NULL,\n    email VARCHAR(100) UNIQUE NOT NULL,\n    password_hash VARCHAR(255) NOT NULL,\n    registered_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Yaz\u0131lar tablosu\nCREATE TABLE posts (\n    id SERIAL PRIMARY KEY,\n    user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n    title VARCHAR(255) NOT NULL,\n    content TEXT NOT NULL,\n    published_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Yorumlar tablosu\nCREATE TABLE comments (\n    id SERIAL PRIMARY KEY,\n    post_id INTEGER NOT NULL REFERENCES posts(id) ON DELETE CASCADE,\n    user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n    comment_text TEXT NOT NULL,\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n<\/code><\/pre>\n<p>Burada dikkat edilmesi gereken \u00f6nemli noktalar:<\/p>\n<ul>\n<li>&#x20;<code>UNIQUE NOT NULL<\/code>&#x20; k\u0131s\u0131tlamalar\u0131, &#x20;<code>username<\/code>&#x20; ve &#x20;<code>email<\/code>&#x20; alanlar\u0131n\u0131n benzersiz ve bo\u015f olamayaca\u011f\u0131n\u0131 garanti eder.<\/li>\n<li>&#x20;<code>REFERENCES users(id) ON DELETE CASCADE<\/code>&#x20; gibi &#x20;<code>FOREIGN KEY<\/code>&#x20; k\u0131s\u0131tlamalar\u0131, tablolar aras\u0131ndaki ili\u015fkileri (\u00f6rne\u011fin, bir yaz\u0131n\u0131n hangi kullan\u0131c\u0131ya ait oldu\u011fu) tan\u0131mlar. &#x20;<code>ON DELETE CASCADE<\/code>&#x20; ise bir kullan\u0131c\u0131 silindi\u011finde, o kullan\u0131c\u0131n\u0131n t\u00fcm yaz\u0131 ve yorumlar\u0131n\u0131n da otomatik olarak silinmesini sa\u011flar.<\/li>\n<\/ul>\n<h3>Performans Optimizasyonu: \u0130ndeksler<\/h3>\n<p>Uygulaman\u0131z b\u00fcy\u00fcd\u00fck\u00e7e ve veritaban\u0131n\u0131zdaki veri miktar\u0131 artt\u0131k\u00e7a, sorgular\u0131n performans\u0131 \u00f6nem kazan\u0131r. \u00d6zellikle &#x20;<code>WHERE<\/code>&#x20; ko\u015fullar\u0131nda s\u0131k\u00e7a kullan\u0131lan s\u00fctunlara indeks eklemek, sorgu h\u0131z\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. \u00d6rne\u011fin, kullan\u0131c\u0131 ad\u0131yla s\u0131k\u00e7a arama yap\u0131l\u0131yorsa veya belirli bir yaz\u0131n\u0131n yorumlar\u0131 getirilirken &#x20;<code>post_id<\/code>&#x20; kullan\u0131l\u0131yorsa, bu s\u00fctunlara indeks eklemek mant\u0131kl\u0131d\u0131r:<\/p>\n<pre><code>\nCREATE INDEX idx_users_username ON users (username);\nCREATE INDEX idx_posts_user_id ON posts (user_id);\nCREATE INDEX idx_comments_post_id ON comments (post_id);\n<\/code><\/pre>\n<p>\u0130ndeksler, veritaban\u0131n\u0131n belirli bir veriyi daha h\u0131zl\u0131 bulmas\u0131n\u0131 sa\u011flayan veri yap\u0131lar\u0131d\u0131r. Ancak, her s\u00fctuna indeks eklemek, yazma i\u015flemlerini yava\u015flataca\u011f\u0131 i\u00e7in iyi bir denge kurulmal\u0131d\u0131r.<\/p>\n<h3>Uygulama Ba\u011flant\u0131s\u0131 ve G\u00fcvenlik<\/h3>\n<p>Web uygulaman\u0131z\u0131n (\u00f6rne\u011fin, Python Django, Node.js Express, PHP Laravel gibi bir framework ile yaz\u0131lm\u0131\u015f) PostgreSQL&#8217;e ba\u011flanmas\u0131 i\u00e7in, genellikle bir veritaban\u0131 ba\u011flant\u0131 dizesi kullan\u0131l\u0131r. Bu dize, veritaban\u0131 sunucusunun adresi, portu, veritaban\u0131 ad\u0131, kullan\u0131c\u0131 ad\u0131 ve \u015fifre gibi bilgileri i\u00e7erir:<\/p>\n<pre><code>\nDATABASE_URL=\"postgresql:\/\/webapp_user:gucluvegizlisifre@localhost:5432\/webapp_db\"\n<\/code><\/pre>\n<p>Uygulama kodunuzda bu ba\u011flant\u0131 dizesini kullanarak veritaban\u0131na ba\u011flan\u0131r ve SQL sorgular\u0131n\u0131z\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rs\u0131n\u0131z. G\u00fcvenlik a\u00e7\u0131s\u0131ndan, bu ba\u011flant\u0131 bilgilerini do\u011frudan kod i\u00e7inde saklamak yerine, ortam de\u011fi\u015fkenleri (environment variables) veya g\u00fcvenli bir yap\u0131land\u0131rma y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla y\u00f6netmek en iyi uygulamad\u0131r. Ayr\u0131ca, veritaban\u0131 kullan\u0131c\u0131s\u0131na (&#x20;<code>webapp_user<\/code>&#x20;) sadece ihtiyac\u0131 olan minimum yetkileri vermek (Principle of Least Privilege) \u00f6nemlidir. \u00d6rne\u011fin, sadece &#x20;<code>SELECT<\/code>, &#x20;<code>INSERT<\/code>, &#x20;<code>UPDATE<\/code>, &#x20;<code>DELETE<\/code>&#x20; yetkileri yeterli olabilir; &#x20;<code>CREATE TABLE<\/code>&#x20; veya &#x20;<code>DROP DATABASE<\/code>&#x20; gibi yetkilere genellikle bir uygulama kullan\u0131c\u0131s\u0131n\u0131n ihtiyac\u0131 yoktur. Bu ad\u0131mlar, uygulaman\u0131z\u0131n veritaban\u0131 ile g\u00fcvenli ve performansl\u0131 bir \u015fekilde etkile\u015fim kurmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>PostgreSQL \u0130leri D\u00fczey Kullan\u0131m \u0130pu\u00e7lar\u0131 ve Optimizasyon Stratejileri<\/h2>\n<p>PostgreSQL&#8217;in temel kurulumu ve kullan\u0131m\u0131 \u00f6nemli bir ba\u015flang\u0131\u00e7 noktas\u0131 olsa da, ger\u00e7ek d\u00fcnya senaryolar\u0131nda performans, g\u00fcvenilirlik ve g\u00fcvenlik gibi fakt\u00f6rler devreye girer. Bu b\u00f6l\u00fcmde, deneyimli kullan\u0131c\u0131lar i\u00e7in PostgreSQL&#8217;i daha verimli hale getirecek ileri d\u00fczey ipu\u00e7lar\u0131 ve optimizasyon stratejilerini ele alaca\u011f\u0131z.<\/p>\n<h3>Yedekleme ve Geri Y\u00fckleme (Backup and Restore)<\/h3>\n<p>Veri kayb\u0131, her i\u015fletme i\u00e7in ciddi bir felaket olabilir. Bu nedenle d\u00fczenli yedeklemeler yapmak hayati \u00f6nem ta\u015f\u0131r. PostgreSQL, bu ama\u00e7la &#x20;<code>pg_dump<\/code>&#x20; ve &#x20;<code>pg_restore<\/code>&#x20; gibi g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Tam bir veritaban\u0131 yede\u011fi almak i\u00e7in:<\/p>\n<pre><code>\npg_dump -U webapp_user -d webapp_db > webapp_db_yedek.sql\n<\/code><\/pre>\n<p>Bu komut, &#x20;<code>webapp_db<\/code>&#x20; veritaban\u0131n\u0131n t\u00fcm yap\u0131s\u0131n\u0131 ve verilerini &#x20;<code>webapp_db_yedek.sql<\/code>&#x20; adl\u0131 bir SQL dosyas\u0131na yedekler. Bu yedek, daha sonra &#x20;<code>psql<\/code>&#x20; ile geri y\u00fcklenebilir:<\/p>\n<pre><code>\npsql -U webapp_user -d webapp_db &lt; webapp_db_yedek.sql\n<\/code><\/pre>\n<p>Daha esnek ve performans\u0131 y\u00fcksek yedeklemeler i\u00e7in &#x20;<code>pg_dump<\/code>&#8216;\u0131n \u00f6zel format\u0131n\u0131 kullanmak daha iyidir. Bu format, &#x20;<code>pg_restore<\/code>&#x20; ile daha gran\u00fcler geri y\u00fcklemelere olanak tan\u0131r (\u00f6rne\u011fin, sadece belirli tablolar\u0131 geri y\u00fckleme):<\/p>\n<pre><code>\npg_dump -U webapp_user -d webapp_db -F c -b -v -f webapp_db_yedek.backup\n<\/code><\/pre>\n<p>Bu yede\u011fi geri y\u00fcklemek i\u00e7in:<\/p>\n<pre><code>\npg_restore -U webapp_user -d webapp_db webapp_db_yedek.backup\n<\/code><\/pre>\n<p>Yedekleme stratejinizin bir par\u00e7as\u0131 olarak, bu yedekleri d\u00fczenli olarak test etmeyi unutmay\u0131n!<\/p>\n<h3>Performans \u0130zleme ve Ayarlama<\/h3>\n<p>PostgreSQL&#8217;in performans\u0131n\u0131 izlemek ve ayarlamak, uzun vadede veritaban\u0131n\u0131z\u0131n sa\u011fl\u0131kl\u0131 kalmas\u0131 i\u00e7in kritiktir. &#x20;<code>pg_stat_activity<\/code>&#x20; g\u00f6r\u00fcn\u00fcm\u00fc, o an \u00e7al\u0131\u015fan sorgular\u0131 ve ba\u011flant\u0131lar\u0131 g\u00f6rmenizi sa\u011flar:<\/p>\n<pre><code>\nSELECT datname, usename, client_addr, state, query FROM pg_stat_activity WHERE state = 'active';\n<\/code><\/pre>\n<p>Bu, uzun s\u00fcren veya kilitlenmelere neden olan sorgular\u0131 tespit etmek i\u00e7in \u00e7ok faydal\u0131d\u0131r. &#x20;<code>postgresql.conf<\/code>&#x20; dosyas\u0131, PostgreSQL&#8217;in davran\u0131\u015f\u0131n\u0131 kontrol eden ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Bu dosyada yap\u0131lan baz\u0131 \u00f6nemli ayarlamalar:<\/p>\n<ul>\n<li>&#x20;<code>shared_buffers<\/code>&#x20;: Veritaban\u0131n\u0131n payla\u015f\u0131lan bellek havuzunun boyutu. Genellikle toplam RAM&#8217;in %25&#8217;i \u00f6nerilir.<\/li>\n<li>&#x20;<code>work_mem<\/code>&#x20;: Her bir sorgu i\u015flemi i\u00e7in kullan\u0131lan bellek miktar\u0131.<\/li>\n<li>&#x20;<code>wal_buffers<\/code>&#x20;: Write-Ahead Log (WAL) i\u00e7in kullan\u0131lan bellek miktar\u0131.<\/li>\n<li>&#x20;<code>max_connections<\/code>&#x20;: Maksimum e\u015fzamanl\u0131 ba\u011flant\u0131 say\u0131s\u0131.<\/li>\n<\/ul>\n<p>Bu ayarlar\u0131 sunucunuzun donan\u0131m\u0131na ve i\u015f y\u00fck\u00fcne g\u00f6re optimize etmek, performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. De\u011fi\u015fiklik yapt\u0131ktan sonra PostgreSQL servisini yeniden ba\u015flatman\u0131z gerekir: &#x20;<code>sudo systemctl restart postgresql<\/code>.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Veritaban\u0131 g\u00fcvenli\u011fi, asla g\u00f6z ard\u0131 edilmemesi gereken bir konudur.<\/p>\n<ul>\n<li>&#x20;<code>pg_hba.conf<\/code>&#x20;: Bu dosya, istemci kimlik do\u011frulamas\u0131n\u0131 kontrol eder. Hangi kullan\u0131c\u0131lar\u0131n hangi veritabanlar\u0131na hangi IP adreslerinden ve hangi kimlik do\u011frulama y\u00f6ntemiyle ba\u011flanabilece\u011fini tan\u0131mlar. \u00d6rne\u011fin, &#x20;<code>host all all 0.0.0.0\/0 md5<\/code>&#x20; yerine &#x20;<code>host all all 192.168.1.0\/24 md5<\/code>&#x20; gibi daha k\u0131s\u0131tlay\u0131c\u0131 kurallar belirlemek, yetkisiz eri\u015fimi engeller.<\/li>\n<li><strong>SSL\/TLS Kullan\u0131m\u0131<\/strong>: Veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 \u015fifrelemek i\u00e7in SSL\/TLS kullan\u0131n. Bu, a\u011f \u00fczerinden g\u00f6nderilen hassas verilerin g\u00fcvenli\u011fini sa\u011flar.<\/li>\n<li><strong>En Az Yetki Prensibi<\/strong>: Kullan\u0131c\u0131lara ve uygulamalara sadece i\u015flerini yapmalar\u0131 i\u00e7in gerekli olan minimum yetkileri verin. S\u00fcper kullan\u0131c\u0131 yetkilerini m\u00fcmk\u00fcn oldu\u011funca az kullan\u0131n.<\/li>\n<\/ul>\n<h3>Replikasyon ve Y\u00fcksek Eri\u015filebilirlik<\/h3>\n<p>Y\u00fcksek eri\u015filebilirlik gereksinimleri olan ortamlar i\u00e7in PostgreSQL, streaming replication (ak\u0131\u015f replikasyonu) gibi geli\u015fmi\u015f \u00f6zellikler sunar. Bu, birincil (master) veritaban\u0131n\u0131n bir veya daha fazla ikincil (slave\/replica) veritaban\u0131na ger\u00e7ek zamanl\u0131 olarak kopyalanmas\u0131n\u0131 sa\u011flar. B\u00f6ylece, birincil veritaban\u0131 \u00e7\u00f6kt\u00fc\u011f\u00fcnde, ikincil veritabanlar\u0131ndan biri h\u0131zl\u0131ca birincil rol\u00fcn\u00fc \u00fcstlenebilir. Bu konu kendi ba\u015f\u0131na ayr\u0131 bir rehber gerektirse de, PostgreSQL&#8217;in bu t\u00fcr kurumsal d\u00fczeyde \u00e7\u00f6z\u00fcmleri destekledi\u011fini bilmek \u00f6nemlidir.<\/p>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131 ve optimizasyon stratejileri, PostgreSQL veritaban\u0131n\u0131z\u0131n sadece \u00e7al\u0131\u015fmas\u0131n\u0131 de\u011fil, ayn\u0131 zamanda g\u00fcvenli, performansl\u0131 ve \u00f6l\u00e7eklenebilir bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. D\u00fczenli bak\u0131m, izleme ve ayarlamalarla, PostgreSQL yat\u0131r\u0131m\u0131n\u0131zdan en iyi \u015fekilde yararlanabilirsiniz.<\/p>\n<h2>Sonu\u00e7: Veri Y\u00f6netiminde PostgreSQL&#8217;in G\u00fcc\u00fc ve Gelece\u011fi<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, PostgreSQL&#8217;in Ubuntu \u00fczerinde kurulumundan temel veritaban\u0131 i\u015flemlerine, ger\u00e7ek d\u00fcnya senaryolar\u0131ndan ileri d\u00fczey optimizasyon stratejilerine kadar bir\u00e7ok konuyu ele ald\u0131k. PostgreSQL&#8217;in sadece bir veritaban\u0131 y\u00f6netim sistemi olman\u0131n \u00f6tesinde, modern uygulama geli\u015ftirme ve veri analizi ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layabilen, son derece g\u00fc\u00e7l\u00fc ve esnek bir platform oldu\u011funu g\u00f6rd\u00fck. A\u00e7\u0131k kaynak yap\u0131s\u0131, geni\u015fletilebilirli\u011fi, ACID uyumlulu\u011fu ve g\u00fc\u00e7l\u00fc topluluk deste\u011fi sayesinde, k\u00fc\u00e7\u00fck ki\u015fisel projelerden b\u00fcy\u00fck kurumsal sistemlere kadar her \u00f6l\u00e7ekteki \u00e7\u00f6z\u00fcm i\u00e7in g\u00fcvenilir bir temel sunmaktad\u0131r.<\/p>\n<p>Ubuntu&#8217;nun kullan\u0131m kolayl\u0131\u011f\u0131 ve kararl\u0131l\u0131\u011f\u0131 ile birle\u015fti\u011finde, PostgreSQL geli\u015ftiriciler i\u00e7in ideal bir ortam sa\u011flar. Kurulumun basitli\u011fi, y\u00f6netim ara\u00e7lar\u0131n\u0131n zenginli\u011fi ve performans ayarlamalar\u0131 i\u00e7in sundu\u011fu derinlemesine kontrol, onu veri y\u00f6netiminde tercih edilen bir se\u00e7enek haline getirir. Gelecekte, veri hacimleri ve karma\u015f\u0131kl\u0131\u011f\u0131 artmaya devam ettik\u00e7e, PostgreSQL&#8217;in co\u011frafi veri (PostGIS), zaman serisi verileri ve di\u011fer \u00f6zel veri tipleri i\u00e7in sundu\u011fu eklentiler ve yetenekler sayesinde pop\u00fclaritesinin daha da artaca\u011f\u0131 \u00f6ng\u00f6r\u00fclmektedir. Veri g\u00fcvenli\u011fi, performans ve \u00f6l\u00e7eklenebilirlik konular\u0131nda s\u00fcrekli geli\u015fen yap\u0131s\u0131yla PostgreSQL, veri odakl\u0131 d\u00fcnyam\u0131zda vazge\u00e7ilmez bir rol oynamaya devam edecektir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>1. PostgreSQL ve MySQL aras\u0131ndaki temel fark nedir?<\/h4>\n<p>PostgreSQL ve MySQL, her ikisi de pop\u00fcler a\u00e7\u0131k kaynakl\u0131 ili\u015fkisel veritabanlar\u0131d\u0131r, ancak \u00f6nemli farklar\u0131 vard\u0131r. PostgreSQL, daha kat\u0131 SQL standartlar\u0131na uyum, daha zengin veri tipleri, geli\u015fmi\u015f \u00f6zellikler (\u00f6rne\u011fin, tablo miras alma, fonksiyonel indeksler, JSONB deste\u011fi) ve i\u015flem b\u00fct\u00fcnl\u00fc\u011f\u00fc (ACID uyumlulu\u011fu) konusunda genellikle daha yetenekli kabul edilir. MySQL ise genellikle daha basit web uygulamalar\u0131 i\u00e7in daha h\u0131zl\u0131 ve kolay kurulum sunar. PostgreSQL genellikle daha karma\u015f\u0131k, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn kritik oldu\u011fu ve esneklik gerektiren projelerde tercih edilirken, MySQL daha \u00e7ok \u00f6l\u00e7eklenebilirlik ve h\u0131z odakl\u0131, daha az karma\u015f\u0131k web uygulamalar\u0131nda kullan\u0131l\u0131r.<\/p>\n<h4>2. PostgreSQL performans\u0131n\u0131 nas\u0131l optimize edebilirim?<\/h4>\n<p>PostgreSQL performans\u0131n\u0131 optimize etmek i\u00e7in birka\u00e7 temel ad\u0131m vard\u0131r:<\/p>\n<ol>\n<li><strong>\u0130ndeksleme<\/strong>: Sorgular\u0131n\u0131zda s\u0131k\u00e7a kullan\u0131lan s\u00fctunlara do\u011fru indeksleri ekleyin.<\/li>\n<li><strong>Sorgu Optimizasyonu<\/strong>: Yava\u015f \u00e7al\u0131\u015fan sorgular\u0131 &#x20;<code>EXPLAIN ANALYZE<\/code>&#x20; ile analiz edin ve optimize edin.<\/li>\n<li><strong>Yap\u0131land\u0131rma Ayarlar\u0131<\/strong>: &#x20;<code>postgresql.conf<\/code>&#x20; dosyas\u0131ndaki &#x20;<code>shared_buffers<\/code>&#x20;, &#x20;<code>work_mem<\/code>&#x20;, &#x20;<code>maintenance_work_mem<\/code>&#x20; gibi parametreleri sunucunuzun donan\u0131m\u0131na ve i\u015f y\u00fck\u00fcne g\u00f6re ayarlay\u0131n.<\/li>\n<li><strong>VACUUM \u0130\u015flemleri<\/strong>: D\u00fczenli &#x20;<code>VACUUM<\/code>&#x20; ve &#x20;<code>ANALYZE<\/code>&#x20; i\u015flemleri ile tablolar\u0131 optimize edin ve sorgu planlay\u0131c\u0131s\u0131n\u0131n g\u00fcncel istatistiklere sahip olmas\u0131n\u0131 sa\u011flay\u0131n.<\/li>\n<li><strong>Donan\u0131m Y\u00fckseltme<\/strong>: \u00d6zellikle h\u0131zl\u0131 SSD diskler ve yeterli RAM, performans\u0131 do\u011frudan etkiler.<\/li>\n<\/ol>\n<h4>3. Veritaban\u0131 yede\u011fi almak neden \u00f6nemlidir ve nas\u0131l yap\u0131l\u0131r?<\/h4>\n<p>Veritaban\u0131 yede\u011fi almak, veri kayb\u0131 riskine kar\u015f\u0131 en \u00f6nemli sigortad\u0131r. Donan\u0131m ar\u0131zalar\u0131, yaz\u0131l\u0131m hatalar\u0131, yanl\u0131\u015fl\u0131kla yap\u0131lan silme i\u015flemleri veya siber sald\u0131r\u0131lar gibi durumlarda verilerinizi kurtarabilmenizi sa\u011flar. PostgreSQL&#8217;de &#x20;<code>pg_dump<\/code>&#x20; arac\u0131 ile yedekleme yap\u0131l\u0131r. \u00d6rne\u011fin, bir veritaban\u0131n\u0131n tam yede\u011fini almak i\u00e7in: &#x20;<code>pg_dump -U [kullan\u0131c\u0131_ad\u0131] -d [veritaban\u0131_ad\u0131] > yedek.sql<\/code>&#x20; komutu kullan\u0131l\u0131r. Daha geli\u015fmi\u015f yedekleme formatlar\u0131 i\u00e7in &#x20;<code>-F c<\/code>&#x20; (custom) veya &#x20;<code>-F t<\/code>&#x20; (tar) se\u00e7enekleri kullan\u0131labilir.<\/p>\n<h4>4. &#x20;<code>pg_hba.conf<\/code>&#x20; dosyas\u0131 ne i\u015fe yarar?<\/h4>\n<p>&#x20;<code>pg_hba.conf<\/code>&#x20; (Host-Based Authentication) dosyas\u0131, PostgreSQL&#8217;e kimlerin, hangi veritaban\u0131na, hangi IP adreslerinden ve hangi kimlik do\u011frulama y\u00f6ntemiyle ba\u011flanabilece\u011fini belirleyen bir yap\u0131land\u0131rma dosyas\u0131d\u0131r. Bu dosya, veritaban\u0131 g\u00fcvenli\u011finin temelini olu\u015fturur. \u00d6rne\u011fin, &#x20;<code>host all all 127.0.0.1\/32 md5<\/code>&#x20; sat\u0131r\u0131, t\u00fcm veritabanlar\u0131na t\u00fcm kullan\u0131c\u0131lar\u0131n sadece yerel makineden (localhost) &#x20;<code>md5<\/code>&#x20; \u015fifrelemesiyle ba\u011flanmas\u0131na izin verir. Bu dosyay\u0131 do\u011fru yap\u0131land\u0131rmak, yetkisiz eri\u015fimi engellemek i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h4>5. PostgreSQL&#8217;i farkl\u0131 bir portta \u00e7al\u0131\u015ft\u0131rabilir miyim?<\/h4>\n<p>Evet, PostgreSQL&#8217;i varsay\u0131lan 5432 portu yerine farkl\u0131 bir portta \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bunu yapmak i\u00e7in &#x20;<code>postgresql.conf<\/code>&#x20; dosyas\u0131n\u0131 d\u00fczenlemeniz gerekir. Dosyay\u0131 a\u00e7\u0131n ve &#x20;<code>port = 5432<\/code>&#x20; sat\u0131r\u0131n\u0131 bulun. Bu de\u011feri istedi\u011finiz ba\u015fka bir port numaras\u0131yla de\u011fi\u015ftirin, \u00f6rne\u011fin &#x20;<code>port = 5433<\/code>. De\u011fi\u015fikli\u011fi kaydettikten sonra, PostgreSQL servisini yeniden ba\u015flatman\u0131z gerekir: &#x20;<code>sudo systemctl restart postgresql<\/code>. Ayr\u0131ca, g\u00fcvenlik duvar\u0131n\u0131zda (UFW) yeni porta izin verdi\u011finizden emin olmal\u0131s\u0131n\u0131z.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu&#8217;da PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Detayl\u0131 Rehber Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-33752","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#039;da Kullan\u0131lmal\u0131?<\/title>\n<meta name=\"description\" content=\"Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL&#039;i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL&#039;in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#039;da Kullan\u0131lmal\u0131?\" \/>\n<meta property=\"og:description\" content=\"Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL&#039;i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL&#039;in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-06T13:21:10+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#8217;da Kullan\u0131lmal\u0131?\",\"datePublished\":\"2025-11-06T13:21:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\"},\"wordCount\":4235,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\",\"name\":\"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu'da Kullan\u0131lmal\u0131?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-06T13:21:10+00:00\",\"description\":\"Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL'i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL'in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#8217;da Kullan\u0131lmal\u0131?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu'da Kullan\u0131lmal\u0131?","description":"Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL'i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL'in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/","og_locale":"tr_TR","og_type":"article","og_title":"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu'da Kullan\u0131lmal\u0131?","og_description":"Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL'i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL'in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.","og_url":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-06T13:21:10+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#8217;da Kullan\u0131lmal\u0131?","datePublished":"2025-11-06T13:21:10+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/"},"wordCount":4235,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/","url":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/","name":"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu'da Kullan\u0131lmal\u0131?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-06T13:21:10+00:00","description":"Veri y\u00f6netimi, modern yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve g\u00fc\u00e7l\u00fc, g\u00fcvenilir bir veritaban\u0131 sistemi se\u00e7imi kritik \u00f6neme sahiptir. Peki, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n y\u0131ld\u0131zlar\u0131ndan PostgreSQL'i Ubuntu sunucunuzda sorunsuz bir \u015fekilde nas\u0131l kurar ve etkili bir \u015fekilde kullanmaya ba\u015flars\u0131n\u0131z? Bu kapsaml\u0131 rehber, PostgreSQL'in kurulumundan temel veritaban\u0131 i\u015flemlerine, hatta ileri d\u00fczey ipu\u00e7lar\u0131na kadar her ad\u0131m\u0131 detayland\u0131rarak, veri y\u00f6netimi yolculu\u011funuzda size rehberlik edecek anahtar bilgileri sunuyor.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/veri-yonetiminin-kalbi-postgresql-nedir-ve-neden-ubuntuda-kullanilmali\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Veri Y\u00f6netiminin Kalbi: PostgreSQL Nedir ve Neden Ubuntu&#8217;da Kullan\u0131lmal\u0131?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33752"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33752\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}