http://www.m-w.com adresindeki Merriam-Webster sözlüÄünde bir veritabanı :
Âa usually large collection of data organized especially for
rapid search and retrieval (as by a computer)Â
olarak tanımlanır.Bir veritabanı yönetim sistemi (DBMS: DataBase Management System) library, uygulamalar ve yardımcı programların birleÅmesinden oluÅur ve verilerin saklanması ve yönetilmesi ile ilgili konulardaki ayrıntılardan veritabanı yöneticilerini kurtarır. Aynı zamanda, kayıtların güncellenmesi ve kayıtlar üzerinde araÅtırma yapılması da mümkündür.
Veritabanı yönetim sistemleri zamanla çok daha fazla özellikler kazanmaktadırlar.
Veritabanı yönetim sistemleri teorisi 1970Âde ÂA Relational Model of Data for Large Shared Data BanksÂ, (E. F. Codd) yazısı ile büyük bir ilerleme kaydetmiÅtir. Bu devrim niteliÄindeki yazıda, Codd relation mantıÄını tanıtmıŠve tabloların gerçek dünyadaki nesneleri göstermekte, nitelemekte nasıl kullanılabileceÄini belirtmiÅtir.
Relational veritabanlarını tanımlayan bazı önemli kurallar vardır:
Ãncelikle, tablolardaki kayıtlar matematiksel açıdan tuple olarak tanımlanırlar. Bir tuple tanımlanmıŠbir veri tipi olan bileÅenlerden oluÅan sıralı grup olarak tanımlanır. Tüm tuplelar aynı sayıda ve tipte bileÅenlerden oluÅur. Ãrnek vermek gerekirse,
{Âinetconf7Â, ÂistanbulÂ, Â2001Â}
{Âinetconf5Â, ÂankaraÂ, Â1999Â}
ÃrneÄimizdeki her bir tuple da 3 bileÅen var: Kaçıncı inetconf olduÄu (string), hangi ilde yapıldıÄı (string) ve yıl (numeric). Relational veritabanlarında bu Âkümeye ya da tabloya eklenen tüm kayıtlar aynı biçemde olmalıdırlar, dolayısıyla aÅaÄıdakilere izin verilmez:
{Âinetconf6Â, ÂistanbulÂ}
 eksik bileÅen
{Âinetconf6Â, ÂistanbulÂ, Â2000Â}
- fazla bileÅen
{2000, Âinetconf6Â, ÂistanbulÂ}
 yanlıŠbileÅen tipleri (yanlıŠsırada)
Ayrıca tuple lardan oluÅan bir tabloda aynı veriler bulunmaz.(no duplicate record). Dolayısıyla relational veritabanlarındaki herhangi bir tabloda birbiriyle tamamen aynı iki kayıt (row or record) bulunamaz.
Bu, çok gereksiz bir sınırlama olarak görünebilir. Ãrnek vermek gerekirse, aynı kullanıcının aynı malı iki kez sipariÅ etmesi görünürde engellenmiÅtir. Bunu da tabloya bir bileÅen ekleyerek çözebilirsiniz.
Bir kayıttaki her bir bileÅen ÂatomikÂ, yani bir veri olmalıdır; baÅka bir kayıt ya da diÄer bileÅenlerin listesi olamaz. Aynı zamanda, daha önce de belirttiÄimiz gibi, tablodaki bileÅenlerin veri tipleri de üsttekilerle ve dolayısıyla tablo tanımlarındakilerle aynı olmalıdır. DiÄer bir deyiÅle, veritabanı tarafından desteklenen veri tiplerinden biri olmalıdır.
Birbiriyle eÅ kayıtları ayırmak için kullanılan bileÅenlere key denir.
Tablodaki bir kaydı diÄer tüm kayıtlardan ayırmak için kullandımız bileÅene, primary key adı verilir. Primary key, o kaydı Âunique yapar. Tüm relational veritabanlarında her bir tablo ya da relationda mutlaka primary key olmalıdır.
Relational veritabanı yapısını belirleyen son bir kural da Âreferential integrity dir Veritabanında uygulama geliÅtiren programcılar yazdıkları kodun veritabanının bütünlüÄünü bozmamasına dikkat etmelidirler. Uygun bir örnek bir müÅteri kaydının silinmesi olabilir. EÄer müÅteri tablosundan bir kayıt silinecekse, o kiÅinin siparis tablosundaki sipariÅlerinin de silinmesi gerekir. Aksi takdirde olmayan bir müÅteriye ait sipariÅler veritabanında bulunacaktır.
Veritabanı transactionları konusunda, ACID, Atomic, Consistent, Isolation ve Durable sözcüklerinin baÅ harflerinden oluÅur. Bir transaction ya iÅlenir (commit : Tüm iÅlemleri yerine getirilir) ya da iptal edilir (abort : Hiç bir iÅlem yapılmaz).
PostgreSQL özellikleri (PostgreSQL FAQÂda listelendiÄi gibi):
                       Transactions                        Subselects                        Views                        Foreign key referential integrity                        Sophisticated Locking                        User-defined types                        Inheritance                        Rules                        Multi-version concurrency control6.5 sürümünden sonraki tüm sürümlerde PostgreSQL oldukça stable olmuÅtur. Her bir sürüme bol miktarda regression testleri uygulanmıÅtır.
 7.X sürümü ile birlikte SQL92 standartlarına uyum daha da artmıÅtır ve row büyüklüÄü sınırı kaldırılmıÅtır. PostgreSQLÂin güvenilirliÄi kanıtlanmıÅtır. Her bir sürümü defalarca kontrollerden geçirilmiÅ ve her bir beta sürümü en az bir aylık testlere tabi tutulmuÅtur. GeniÅ kullanıcı grubu ve kaynak koduna dünyanın her yerinden eriÅilebilir olması nedeniyle olası hatalar çok çabuk kapatılmaktadır. PostgreSQL in performansı her yeni sürümle birlikte artmaktadır. Son benchmarklar , PostgreSQL in belirli koÅullarda diÄer ticari veritabanları ile aynı performansı verdiÄini göstermektedir.PostgreSQLÂin gücü, onun mimarisinden gelir. Ticari veritabanı sistemleri ile ortak olarak PostgreSQL sunucu-istemci ortamında kullanılabilir. Bu hem kullanıcılar hem de geliÅtiriciler açısında oldukça fazla yarar saÄlar.
PostgreSQL kurulumunun kalbi veritabanı sunucu iÅlemidir (process). Postmaster olarak adlandırılır .Tek bir sunucu üzerinde çalıÅabilir. (PostgreSQL enterprise sınıfındaki ticari veritabanı sistemlerindeki gibi yükü birçok sunucuya henüz daÄıtamamaktadır.)
Veritabanındaki bilgilere eriÅebilecek programlar sunucu tarafında çalıÅır. Ä°stemci tarafındaki programlar, sunucu ile aynı makinede olsalar bile veriye direk olarak eriÅemezler.
Ä°Åte bu istemci  sunucu ayrımı uygulamaların ayrı ayrı makinelerde çalıÅmasına izin verir. Ä°stemcilerimizi sunucudan ayırmak için bir aÄ kurabilir, ve istemci uygulamalarınızı geliÅtirmek için kullanıcılara uygun bir ortam kullanabilirsiniz. Ãrnek vermek gerekirse, veritabanınızı UNIX ortamında çalıÅtırabilir ve istemci programlarını Microsoft WindowsÂda kodlayabilirsiniz.
AÅaÄıda tipik olarak daÄıtılmıŠbir PostgreSQL uygulamasının Åemasını görebilirsiniz:
Burada bir aÄ ortamında sunucuya baÄlanan bir çok istemci görülebilir. PostgreSQL için bunun bir TCP  IP aÄı  yerel aÄ ya da internet - olması gerekmektedir.
Her bir istemci, bu istemciden gelen eriÅim isteklerine spesifik olarak servis yapmak için yeni bir sunucu iÅlemi yaratan bir ana veritabanı sunucu iÅlemine (burada postmaster olarak gösterilir) baÄlanır.
Ä°stemci programları PostgreSQLÂe özel bir mesaj protokolu kullanarak baÄlanırlar. Buna raÄmen istemciye uygulamanın çalıÅması için standart bir arayüz saÄlayan yazılım kurmak mümkündür. Bu Open DataBase Connection (ODBC) standardıdır. Bu, Access ve Excel gibi Microsoft Office ürünlerini de içeren programların PostgreSQL i veritabanı olarak kullanmalarına olanak saÄlar. Bunlarla ilgili ayrıntılı bilgiyi http://techdocs.postgresql.org ya da resmi tek yansısı http://techdocs.oper.metu.edu.tr adresinde bulabilirsiniz. Excel den PostgreSQLÂe veri aktarımı konusunda ayrıntılı yardım dökümanı çok yakında http://seminer.devrim.oper.metu.edu.tr adresinde bulunabilir.
PostgreSQLÂin istemci-sunucu mimarisi iÅ gücünün bölünmesine yardımcı olur. Büyük miktarda veriyi tutabilecek ve eriÅebilecek Åekilde düzenlenmiÅ bir sunucu makinesi güvenli bir veri deposu olarak kullanılabilir. GeliÅmiÅ grafiksel uygulamalar istemciler için geliÅtirilebilir. Alternatif olarak, web tabanlı uygulamalar da istemci tarafındaki iÅlemlerinizi görebilir.
PostgreSQL Veritabanı Sınırları
Bilgileri saklamak için tablolar yaratıp onlara veri ekleyerek veritabanı kullanıldıÄında, hiç bir platformda sınırsız veri saklama lüksümüz olmadıÄı ortadadır. Tüm veritabanı sistemleri bir Åekilde sınırlandırılmıÅtır, PostgreSQL in burada bir ayrıcalıÄı yoktur. Tek bir kolonda saklanabilecek veri miktarı, tabloda izin verilen en fazla kolon sayısı ve tablonun toplam sayısı; bunların hepsinin bir sınırı vardır. Son PostgreSQL sürümleri tüm sınırlarda esneklik getirmiÅ, hatta bir kısmında da sınırları kaldırmıÅtır. Burada PostgreSQL 7.1.3 de kalan sınırlamalardan bahsedilecektir. http://www.postgresql.org adresinden sonraki sürümler için son bilgileri alabilirsiniz. Buradaki bilgi PostgreSQL geliÅtiricileri tarafından derlenen e-posta arÅivleri ve PostgreSQL FAQ sayfalarından derlenmiÅtir. Bir büyüklük için Âsınırsız denmiÅse, bunun anlamı buna PostgreSQLÂin bir sınırlama koymamasıdır. Maximum büyüklük, boÅ disk alanı ya da sanal bellekle sınırlıdır. Sınıra yaklaÅıldıÄında veritabanının performansı düÅer. ÃrneÄin, eldeki sanal belleÄi tamamen kullanacak kadar büyük alanlarda iÅlem yapılacaksa, PostgreSQLÂin baÅarımı fiziksel açıdan çok kötü olacaktır (ya da bir iÅlem olmayacaktır!). ÂTom Lane : ÂHow much do you trust on PostgreSQL? Well, it depends on your kernel and hard disk!Â
Burada bahsedilmeyen diÄer sınırlamalar iÅletim sistemi ya da aÄın veri iletme hızına baÄlıdır. ÃrneÄin, ODBC ile yapılan sorguların sürücüye baÄlı olan sınırları vardır. Hafıza ile ilgili sınırlamalar da vardır (çok büyük bir sorgunun sonucu gibi)